diff --git a/.circleci/config.yml b/.circleci/config.yml index e7568d5e76e37e7e6075e0cddb0b7fc8111a7c10..1666fdb90ce8a68eaf2a47077271093626c6d000 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -75,7 +75,7 @@ executors: working_directory: /home/circleci/metabase/metabase/ docker: - image: circleci/clojure:lein-2.8.1 - - image: circleci/mongo:3.4 + - image: circleci/mongo:4.0 presto: working_directory: /home/circleci/metabase/metabase/ @@ -187,6 +187,15 @@ jobs: do echo `md5sum $file` >> backend-checksums.txt; done; echo `md5sum project.clj` >> backend-checksums.txt + # Do the same for the frontend + - run: + name: Generate checksums of all frontend source files to use as Uberjar cache key + command: > + for file in `find ./frontend -type f | sort`; + do echo `md5sum $file` >> frontend-checksums.txt; + done; + echo `md5sum yarn.lock` >> frontend-checksums.txt + echo `md5sum webpack.config.js` >> frontend-checksums.txt - persist_to_workspace: root: /home/circleci/ paths: @@ -380,6 +389,7 @@ jobs: - /home/circleci/.yarn-cache - /home/circleci/metabase/metabase/node_modules - /home/circleci/yarn.lock.checksum + - /home/circleci/.cache/Cypress fe-linter-eslint: executor: node @@ -423,6 +433,13 @@ jobs: command-name: Run frontend integration tests command: run test-integration + fe-tests-timezones: + executor: node + steps: + - run-yarn-command: + command-name: Run frontend timezone tests + command: run test-timezones + build-uberjar: executor: clojure-and-node steps: @@ -430,16 +447,16 @@ jobs: - restore-be-deps-cache - restore_cache: keys: - - uberjar-{{ checksum "./backend-checksums.txt" }} + - uberjar-{{ checksum "./backend-checksums.txt" }}-{{ checksum "./frontend-checksums.txt" }} - run: name: Build uberjar if needed command: > if [ ! -f './target/uberjar/metabase.jar' ]; - then ./bin/build version uberjar; + then ./bin/build version frontend uberjar; fi no_output_timeout: 5m - save_cache: - key: uberjar-{{ checksum "./backend-checksums.txt" }} + key: uberjar-{{ checksum "./backend-checksums.txt" }}-{{ checksum "./frontend-checksums.txt" }} paths: - /home/circleci/metabase/metabase/target/uberjar/metabase.jar @@ -457,6 +474,23 @@ jobs: name: Generate version file command: ./bin/build version + fe-tests-cypress: + executor: clojure-and-node + steps: + - run-yarn-command: + command-name: Run Cypress tests + command: run test-cypress-no-build + before-steps: + - restore_cache: + keys: + - uberjar-{{ checksum "./backend-checksums.txt" }} + - run: + name: Generate version file + command: ./bin/build version + - store_artifacts: + path: /home/circleci/metabase/metabase/cypress + - store_test_results: + path: cypress/results ######################################################################################################################## # DEPLOYMENT, ETC. # @@ -572,7 +606,7 @@ workflows: requires: - be-tests jdbc-driver-source: ORACLE_JDBC_JAR - jdbc-driver-dest: ojdbc7.jar + jdbc-driver-dest: ojdbc8.jar driver: oracle - test-driver: @@ -670,6 +704,9 @@ workflows: - fe-tests-integration: requires: - fe-deps + - fe-tests-timezones: + requires: + - fe-deps - build-uberjar: requires: - be-deps @@ -677,6 +714,10 @@ workflows: requires: - build-uberjar - fe-deps + - fe-tests-cypress: + requires: + - build-uberjar + - fe-deps - deploy-master: requires: @@ -716,6 +757,7 @@ workflows: - fe-tests-e2e - fe-tests-integration + - fe-tests-timezones - fe-tests-karma - fe-tests-unit filters: diff --git a/.dir-locals.el b/.dir-locals.el index dfd4f9b2597f957ecef770e94c07f2024fb77ea2..1d6a066efc5f313d565b1a9ad9bd33d95c25e33a 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -21,7 +21,6 @@ (let-404 1) (match 1) (merge-with 1) - (with-redefs-fn 1) (p.types/defprotocol+ '(1 (:defn))) (p.types/def-abstract-type '(1 (:defn))) (p.types/deftype+ '(2 nil nil (:defn))) diff --git a/.eslintrc b/.eslintrc index 08e08bf79caf165bfc127ffa1cb301d3aadcacad..40c65bb4e3b59641700eb8e679a4e43342e6de58 100644 --- a/.eslintrc +++ b/.eslintrc @@ -22,7 +22,9 @@ "prefer-const": [1, { "destructuring": "all" }] }, "globals": { - "pending": false + "pending": false, + "cy": true, + "Cypress": true }, "env": { "browser": true, diff --git a/.flowconfig b/.flowconfig index a206d17f6a15d7daa4cb5365469d29a693c713e1..145077888cf60f5a812bff519a5ca296dce82cf3 100644 --- a/.flowconfig +++ b/.flowconfig @@ -16,6 +16,7 @@ .*/node_modules/@babel/standalone/.* .*/node_modules/@testing-library/jest-dom/.* .*/node_modules/.*/node_modules/chalk/.* +.*/node_modules/react-draggable/lib/.* [include] .*/frontend/.* diff --git a/OSX/Metabase.xcodeproj/project.pbxproj b/OSX/Metabase.xcodeproj/project.pbxproj index 2d365e2dab970d331fca38f1942e9bb9199670e6..276aedc9b65822c86be50179790a7fb540b1c83f 100644 --- a/OSX/Metabase.xcodeproj/project.pbxproj +++ b/OSX/Metabase.xcodeproj/project.pbxproj @@ -21,7 +21,7 @@ D105B2431BB5BE4A00A5D850 /* refresh_icon@1x.png in Resources */ = {isa = PBXBuildFile; fileRef = D105B23A1BB5BE4A00A5D850 /* refresh_icon@1x.png */; }; D105B2441BB5BE4A00A5D850 /* refresh_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D105B23B1BB5BE4A00A5D850 /* refresh_icon@2x.png */; }; D121FD651BC5B2AF002101B0 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D121FD641BC5B2AF002101B0 /* Sparkle.framework */; }; - D121FD671BC5B375002101B0 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D121FD641BC5B2AF002101B0 /* Sparkle.framework */; }; + D121FD671BC5B375002101B0 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D121FD641BC5B2AF002101B0 /* Sparkle.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; D121FD691BC5B4E7002101B0 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = D121FD681BC5B4E7002101B0 /* dsa_pub.pem */; }; D162C4A81BC87D2B009F678F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D162C49A1BC87D2B009F678F /* AppDelegate.m */; }; D162C4A91BC87D2B009F678F /* MetabaseTask.m in Sources */ = {isa = PBXBuildFile; fileRef = D162C49C1BC87D2B009F678F /* MetabaseTask.m */; }; @@ -388,7 +388,7 @@ D18853B31BB0CEC600D89803 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0510; + LastUpgradeCheck = 1120; ORGANIZATIONNAME = Metabase; TargetAttributes = { D18853BA1BB0CEC600D89803 = { @@ -401,7 +401,7 @@ }; buildConfigurationList = D18853B61BB0CEC600D89803 /* Build configuration list for PBXProject "Metabase" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -537,23 +537,37 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", @@ -578,24 +592,37 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; @@ -614,6 +641,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "-"; COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -622,6 +650,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "Metabase/Metabase-Prefix.pch"; INFOPLIST_FILE = "Metabase/Metabase-Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = "com.metabase.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -631,6 +660,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "-"; COMBINE_HIDPI_IMAGES = YES; DEAD_CODE_STRIPPING = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -641,6 +671,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "Metabase/Metabase-Prefix.pch"; INFOPLIST_FILE = "Metabase/Metabase-Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = "com.metabase.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; diff --git a/OSX/Metabase/Metabase-Info.plist b/OSX/Metabase/Metabase-Info.plist index 3b3557973bfeb13c118b13d958beaafdddc469c9..6448265fff3a792f830637defe2c9e097a67cdfa 100644 --- a/OSX/Metabase/Metabase-Info.plist +++ b/OSX/Metabase/Metabase-Info.plist @@ -9,7 +9,7 @@ <key>CFBundleIconFile</key> <string></string> <key>CFBundleIdentifier</key> - <string>com.metabase.${PRODUCT_NAME:rfc1034identifier}</string> + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> diff --git a/README.md b/README.md index 1f61263beebbb9aee60718a321178d56eeee6f3b..30db7b2ce1b3685bc98792e008174876724f9334 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ Then take a look at our [Contribution Guide](docs/contributing.md) for informati Talk to other contributors [in our Gitter room](https://gitter.im/metabase/metabase). # Internationalization -We want Metabase to be avaliable in as many languages as possible. See what translations are avaliable and help contribute to internationalization using our project [over at POEditor](https://poeditor.com/join/project/ynjQmwSsGh) +We want Metabase to be available in as many languages as possible. See what translations are available and help contribute to internationalization using our project [over at POEditor](https://poeditor.com/join/project/ynjQmwSsGh) # Extending and Deep Integrations diff --git a/bin/docker/Dockerfile b/bin/docker/Dockerfile index 00568a43de40b3e253a9ad6e578e7ac1551e57ea..e212a778ec9a6024fb07797a192ed0e221b9e6ac 100644 --- a/bin/docker/Dockerfile +++ b/bin/docker/Dockerfile @@ -4,11 +4,10 @@ ENV FC_LANG en-US ENV LC_CTYPE en_US.UTF-8 # dependencies -RUN apk add --update bash ttf-dejavu fontconfig +RUN apk add --no-cache bash ttf-dejavu fontconfig # add Metabase jar COPY ./metabase.jar /app/ -RUN chmod o+r /app/metabase.jar # add our run script to the image COPY ./run_metabase.sh /app/ diff --git a/bin/docker/run_metabase.sh b/bin/docker/run_metabase.sh index af607b04b3676e63c7625b6f6fb600dee4f60b92..f4f0695c9e85fb35334cc74fda7edb1cf3916977 100755 --- a/bin/docker/run_metabase.sh +++ b/bin/docker/run_metabase.sh @@ -119,6 +119,9 @@ if [ ! -z "$JAVA_TIMEZONE" ]; then JAVA_OPTS="${JAVA_OPTS} -Duser.timezone=${JAVA_TIMEZONE}" fi +# Ensure JAR file is world readable +chmod o+r /app/metabase.jar + # Initialize the Metabase db from H2 dump, if available INITIAL_DB=$(ls /app/initial*.db 2> /dev/null | head -n 1) if [ -f "${INITIAL_DB}" ]; then diff --git a/bin/version b/bin/version index c47af52425d2311609abd03e2e8f06a97956226c..5ee72a4a73b4ab81a5aeedd536057c5716cfa48f 100755 --- a/bin/version +++ b/bin/version @@ -1,6 +1,6 @@ #!/usr/bin/env bash -VERSION="v0.33.7.3" +VERSION="v0.34.0-snapshot" # dynamically pull more interesting stuff from latest git commit HASH=$(git show-ref --head --hash=7 head) # first 7 letters of hash should be enough; that's what GitHub uses diff --git a/dev/src/dev.clj b/dev/src/dev.clj index ff1a33208c88e06e334b3d96f5e0ef2d04e44736..d2d79a049aaa767a0800bbfbf19e86036ea7c85e 100644 --- a/dev/src/dev.clj +++ b/dev/src/dev.clj @@ -1,16 +1,20 @@ (ns dev "Put everything needed for REPL development within easy reach" - (:require [clojure.set :as set] + (:require [clojure.java.jdbc :as jdbc] [metabase [core :as mbc] [db :as mdb] + [driver :as driver] [handler :as handler] [plugins :as pluguns] - [query-processor-test :as qp.test] [server :as server] [util :as u]] [metabase.api.common :as api-common] - [metabase.test.data.env :as tx.env])) + [metabase.driver.sql-jdbc + [connection :as sql-jdbc.conn] + [execute :as sql-jdbc.execute]] + [metabase.test.data :as data] + [metabase.test.data.impl :as data.impl])) (defn init! [] @@ -37,17 +41,23 @@ and want to make sure you didn't miss a reference or when you redefine a multimethod. (ns-unmap-all *ns*)" - [a-namespace] - (doseq [[symb] (ns-interns a-namespace)] - (ns-unmap a-namespace symb))) + ([] + (ns-unmap-all *ns*)) + + ([a-namespace] + (doseq [[symb] (ns-interns a-namespace)] + (ns-unmap a-namespace symb)))) (defn ns-unalias-all "Remove all aliases for other namespaces from the current namespace. (ns-unalias-all *ns*)" - [a-namespace] - (doseq [[symb] (ns-aliases a-namespace)] - (ns-unalias a-namespace symb))) + ([] + (ns-unalias-all *ns*)) + + ([a-namespace] + (doseq [[symb] (ns-aliases a-namespace)] + (ns-unalias a-namespace symb)))) (defmacro require-model "Rather than requiring all models inn the ns declaration, make it easy to require the ones you need for your current @@ -60,25 +70,39 @@ `(binding [api-common/*current-user-permissions-set* (delay ~permissions)] ~@body)) -(defn do-with-test-drivers [test-drivers thunk] - {:pre [((some-fn sequential? set?) test-drivers)]} - (with-redefs [tx.env/test-drivers (atom (set test-drivers)) - qp.test/non-timeseries-drivers (atom (set/difference - (set test-drivers) - (var-get #'qp.test/timeseries-drivers)))] - (thunk))) - -(defmacro with-test-drivers - "Temporarily change the drivers that Metabase tests will run against as if you had set the `DRIVERS` env var. - - ;; my-test will run against any non-timeseries driver (i.e., anything except for Druid) that is listed in the - ;; `DRIVERS` env var - (deftest my-test - (datasets/test-drivers @qp.test/non-timeseries-drivers - ...)) - - ;; Run `my-test` against H2 and Postgres regardless of what's in the `DRIVERS` env var - (dev/with-test-drivers #{:h2 :postgres} - (my-test))" - [test-driver-or-drivers & body] - `(do-with-test-drivers ~(u/one-or-many test-driver-or-drivers) (fn [] ~@body))) +(defn query-jdbc-db + "Execute a SQL query against a JDBC database. Useful for testing SQL syntax locally. + + (query-jdbc-db :oracle SELECT to_date('1970-01-01', 'YYYY-MM-DD') FROM dual\") + + `sql-args` can be either a SQL string or a tuple with a SQL string followed by any prepared statement args. By + default this method uses the same methods to set prepared statement args and read columns from results as used by + the `:sql-jdbc` Query Processor, but you pass the optional third arg `options`, as `nil` to use the driver's default + behavior. + + You can query against a dataset other than the default test data DB by passing in a `[driver dataset]` tuple as the + first arg: + + (dev/query-jdbc-db + [:sqlserver 'test-data-with-time] + [\"SELECT * FROM dbo.users WHERE dbo.users.last_login_time > ?\" (java-time/offset-time \"16:00Z\")])" + {:arglists '([driver sql-args] [[driver dataset] sql-args] + [driver sql-args options] [[driver dataset] sql-args options])} + ([driver-or-driver+dataset sql-args] + (let [[driver dataset] (u/one-or-many driver-or-driver+dataset)] + (query-jdbc-db + driver-or-driver+dataset + sql-args + {:read-columns (partial sql-jdbc.execute/read-columns driver) + :set-parameters (partial sql-jdbc.execute/set-parameters driver)}))) + + + ([driver-or-driver+dataset sql-args options] + (let [[driver dataset] (u/one-or-many driver-or-driver+dataset)] + (driver/with-driver driver + (letfn [(thunk [] + (let [spec (sql-jdbc.conn/db->pooled-connection-spec (data/db))] + (jdbc/query spec sql-args options)))] + (if dataset + (data.impl/do-with-dataset (data.impl/resolve-dataset-definition *ns* dataset) thunk) + (thunk))))))) diff --git a/docs/administration-guide/01-managing-databases.md b/docs/administration-guide/01-managing-databases.md index 3df9809ee53cc0eb884d0e0fbd99950057f382af..a304360d4e934598167c9851769325d4f8447f06 100644 --- a/docs/administration-guide/01-managing-databases.md +++ b/docs/administration-guide/01-managing-databases.md @@ -14,7 +14,7 @@ Now you’ll see a list of your databases. To connect another database to Metaba - [Google BigQuery](databases/bigquery.md) - H2 - [MongoDB (version 3.4 or higher)](databases/mongodb.md) -- [MySQL (version 4.1 or higher, as well as MariaDB)](databases/mysql.md) +- [MySQL (version 5.5.3 or higher, as well as MariaDB)](databases/mysql.md) - Postgres - SQLite - SQL Server diff --git a/docs/administration-guide/05-setting-permissions.md b/docs/administration-guide/05-setting-permissions.md index a692398d439fdd83dd8fd43538e58b6f6bb1ebaf..ecadf7f4f96dbaff78606f389d5ecb7bf5950b4c 100644 --- a/docs/administration-guide/05-setting-permissions.md +++ b/docs/administration-guide/05-setting-permissions.md @@ -22,10 +22,11 @@ You’ll notice that you already have two default groups: Administrators and All You’ll also see that you’re a member of the **Administrators** group — that’s why you were able to go to the Admin Panel in the first place. So, to make someone an admin of Metabase you just need to add them to this group. Metabase admins can log into the Admin Panel and make changes there, and they always have unrestricted access to all data that you have in your Metabase instance. So be careful who you add to the Administrator group! -The **All Users** group is another special one. Every Metabase user is always a member of this group, though they can also be a member of as many other groups as you want. We recommend using the All Users group as a way to set default access levels for new Metabase users. If you have [Google single sign-on](10-single-sign-on.md) enabled, new users who join that way will be automatically added to the All Users group. +The **All Users** group is another special one. Every Metabase user is always a member of this group, though they can also be a member of as many other groups as you want. We recommend using the All Users group as a way to set default access levels for new Metabase users. If you have [Google single sign-on](10-single-sign-on.md) enabled, new users who join that way will be automatically added to the All Users group. #### An important note on the All Users group -As we mentioned above, a user is given the *most permissive* setting she has for a given database/schema/table across *all* groups she is in. Because of that, it is important that your All Users group should never have *greater* access for an item than a group for which you're trying to restrict access — otherwise the more permissive setting will win out. This goes for both data access as well as [collection permission](06-collections.md) settings. + +As we mentioned above, a user is given the _most permissive_ setting she has for a given database/schema/table across _all_ groups she is in. Because of that, it is important that your All Users group should never have _greater_ access for an item than a group for which you're trying to restrict access — otherwise the more permissive setting will win out. This goes for both data access as well as [collection permission](06-collections.md) settings. If you’ve set up the [Slack integration](09-setting-up-slack.md) and enabled [Metabot](../users-guide/11-metabot.md), you’ll also see a special **Metabot** group, which will allow you to restrict which questions your users will be able to access in Slack via Metabot. @@ -73,12 +74,14 @@ Lastly, data access levels for tables are almost exactly the same as well: - **Unrestricted access:** can ask questions about this table and see saved questions and dashboard cards using this table. - **No access:** can’t ask questions about this table or see saved questions or dashboard cards using this table. -*Note: you’ll notice that tables don’t have the option for limited access. In the future, column-level permissions will be added to Metabase, and setting limited access on a table will allow you to choose which columns the group should have access to.* +_Note: you’ll notice that tables don’t have the option for limited access. In the future, column-level permissions will be added to Metabase, and setting limited access on a table will allow you to choose which columns the group should have access to._ ### A note about Pulses + Pulses act a bit differently with regard to permissions. When a user creates a new Pulse, they will only have the option to include saved questions that they have permission to view. Note, however, that they are not prevented from emailing that Pulse to anyone, or posting that Pulse to a Slack channel (if you have Slack integration set up), regardless of the recipients’ permissions. Unlike dashboards, where individual cards are blocked based on a user’s permissions, a Pulse will always render all of its cards. --- -## Next: custom segments and metrics +## Next: collections + Metabase lets you create and set permissions on collections of dashboards and questions. [Learn how](06-collections.md). diff --git a/docs/enterprise-guide/audit.md b/docs/enterprise-guide/audit.md index 3fa31f47441a986c6a1ed325235f29d6f6e341cb..88a6f1934a379206fbb3a4e49bb9bbd506defe93 100644 --- a/docs/enterprise-guide/audit.md +++ b/docs/enterprise-guide/audit.md @@ -14,31 +14,31 @@ The Team Members panel has a view of other options for viewing your team's usage The Audit Log tab will display, in chronological order, each query, who viewed it, and when. Note that if the user did not save their query, its name will be listed as `Ad-hoc`. Each query name can be clicked to view more details about your users' interactions with it, including a full revision history. You will also be able to view the query in Metabase. Note that this link will always show the latest version of the query - use the revision history to see changes over time. - #### Drilling In Throughout the People section, names can be clicked to access the profile of a specific user’s activity. This profile includes: -* Dashboard views -* Query views -* Downloads +- Dashboard views +- Query views +- Downloads  ### Data -The Data section focuses on your databases, schemas and tables, and is divided into corresponding sections. Look here if you're trying to uncover queries and schemas that need optimization. Each section provides visualizations around the use and speed of querying against your databases, schemas or tables. You will also be able to view lists of stats about all of your databases, schemas and tables. +The Data section focuses on your databases, schemas and tables, and is divided into corresponding sections. Look here if you're trying to uncover queries and schemas that need optimization. Each section provides visualizations around the use and speed of querying against your databases, schemas or tables. You will also be able to view lists of stats about all of your databases, schemas and tables.  ### Items + The Items section focuses on questions, dashboards and downloads, and is divided into corresponding sections. Use these pages to gain a better understanding of what your users are interacting with. #### Questions -The Questions section will show you your most popular queries, as well as your slowest queries. If queries you think are important aren't appearing on your most popular queries list, you may want to make sure your team is focusing on the right things. +The Questions section will show you your most popular queries, as well as your slowest queries. If queries you think are important aren't appearing on your most popular queries list, you may want to make sure your team is focusing on the right things. -If important queries are appearing on the list of slowest queries, you will want to look at optimizing them. One option is to adjust your [caching settings](../../14-caching.html), but there are plenty of other options as well. To help you determine if your optimization efforts are heading in the right direction, use the `Query views and speed per day` visualization at the bottom of the page. +If important queries are appearing on the list of slowest queries, you will want to look at optimizing them. One option is to adjust your [caching settings](../administration-guide/14-caching.md), but there are plenty of other options as well. To help you determine if your optimization efforts are heading in the right direction, use the `Query views and speed per day` visualization at the bottom of the page.  @@ -48,9 +48,9 @@ A list of all of your questions is available as well, and you can see various da You can also click on any question to drill into a more detailed profile showing: -* View activity -* Revision History -* A full audit log of who viewed the question, and when +- View activity +- Revision History +- A full audit log of who viewed the question, and when #### Dashboards diff --git a/docs/enterprise-guide/authenticating-with-saml.md b/docs/enterprise-guide/authenticating-with-saml.md index 146e251536648ee31112a883ef651e0b4f8dca24..7b630b4be69fdfb71dc3b7f6e022412e376733b0 100644 --- a/docs/enterprise-guide/authenticating-with-saml.md +++ b/docs/enterprise-guide/authenticating-with-saml.md @@ -1,58 +1,39 @@ ## Authenticating with SAML -The open source edition of Metabase includes the option to [set up SSO with Google Sign-in or LDAP](../administration-guide/10-single-sign-on.md), but the Enterprise edition of Metabase additionally lets you connect your SAML- or JWT-based SSO. Integrating your SSO with Metabase allows you to: -* automatically pass user attributes from your SSO to Metabase in order to power data sandboxes -* let your users access Metabase without re-authenticating. +The open source edition of Metabase includes the option to set up single sign-on (SSO) with [Google Sign-in or LDAP](../administration-guide/10-single-sign-on.md), but the Enterprise edition of Metabase additionally lets you connect your SAML- or JWT-based SSO. Integrating your SSO with Metabase allows you to: -There are slightly different steps to take depending on whether your SSO solution uses SAML or JWT. We'll cover SAML first. - -> **Tip!** Before beginning your SAML set-up, make sure you know the password for your admin account. If anything becomes misconfigured during the set-up process, an "Admin backup login" option on the sign-in screen is available. - -### Setting Up Your SAML Provider - -Before you get started, you'll need to make sure things are configured correctly with your SAML provider. Each provider handles this differently, so here are some links that may help: - -[Click here if you use OKTA!](https://developer.okta.com/docs/guides/saml-application-setup/overview/) - -[Click here if you use Auth0!](https://auth0.com/docs/protocols/saml/saml-idp-generic) - -[Click here if you use OneLogin!](https://onelogin.service-now.com/support?id=kb_article&sys_id=83f71bc3db1e9f0024c780c74b961970) +- automatically pass user attributes from your SSO to Metabase in order to power data sandboxes +- let your users access Metabase without re-authenticating. -Once you've configured your SAML provider, leave it open - we're going to need some information for the next step. +There are slightly different steps to take depending on whether your SSO solution uses SAML or JWT. We'll cover SAML first. +> **Tip:** Before beginning your SAML set-up, make sure you know the password for your Metabase admin account. If anything becomes misconfigured during the set-up process, an "Admin backup login" option on the sign-in screen is available. -### Enabling SAML authentication in Metabase +### Turning on SAML-based SSO -Head over to the Settings section of the Admin Panel, then click on the Authentication tab. Click the `Configure` button in the SAML section of the Authentication page, and you'll see this form: +To get started, head over to the Settings section of the Admin Panel, then click on the Authentication tab. Click the `Configure` button in the SAML section of the Authentication page, and you'll see this form:  -Click the toggle at the top of the form to enable SAML authentication, then fill in the form with the information about your identity provider. **Make sure to turn this on**, otherwise SAML-based authentication won't work, even if all of your settings are right. +At the top, **make sure to click the toggle to enable SAML authentication**, otherwise things won't work even if all of your settings are right. -Here's a breakdown of each of the settings: +The form itself is broken up into three parts: information about Metabase that you'll have to input into your identity provider (IdP); information about your IdP that you'll need to tell Metabase about; and some optional settings at the bottom. -**Identity Provider (IDP) URI:** This is where Metabase will redirect login requests. That is, it's where your users go to log in to your SSO. Your SAML provider may label it a little differently. Here are some of the names we've found: +### Setting up SAML with your IdP -| Provider | Name | -| ----------- | ----------- | -| Auth0 | Identity Provider Login URL | -| Okta | Identity Provider Single-Sign On URL | -| OneLogin | Issuer URL | +So, first you'll need to make sure things are configured correctly with your IdP. Each provider handles SAML setup differently, so here are some documentation links that may help: -**Identity Provider Certificate:** This is an encoded certificate that we will use when connecting to the IDP provider URI. This will look like a big blob of text that you'll want to copy and paste carefully — the spacing is important! Again, different providers may have slightly different labels: +- [Okta](https://developer.okta.com/docs/guides/saml-application-setup/overview/) +- [Auth0](https://auth0.com/docs/protocols/saml/saml-idp-generic) +- [OneLogin](https://onelogin.service-now.com/support?id=kb_article&sys_id=83f71bc3db1e9f0024c780c74b961970) -| Provider | Name | -| ----------- | ----------- | -| Auth0 | Signing Certificate | -| Okta | X.509 Certificate | -| OneLogin | X.509 Certificate | +The top portion of the form in Metabase has some of the information you'll need, with buttons to make copying the information easy. +**URL the IdP should redirect back to:** this is called something different in each IdP. Okta calls it "Single Sign On URL," Auth0 calls it the "Application Callback URL," and OneLogin calls it the "ACS (Consumer) URL." This is the URL that your IdP should redirect users back to after they authenticate, and it needs to be the URL where Metabase is hosted, with `/auth/sso` at the end. -#### Configuring your SAML identity provider - -Metabase will automatically log in Users authenticated with your SAML -identity provider, but in order to do so the SAML assertion *must* -contain attributes for each User's first name, last name, and email. The assertion should look something like the following: +**SAML attributes:** Metabase will automatically log in users authenticated with your SAML +identity provider, but in order to do so the SAML assertion _must_ +contain attributes for each user's first name, last name, and email. The assertion should look something like the following: ``` <saml2:Assertion @@ -94,93 +75,99 @@ contain attributes for each User's first name, last name, and email. The asserti </saml2:Assertion> ``` -Most SAML identity providers we've used already include these -assertions by default, but some (such as Okta) must be configured to -include them. Here's an example of what your assertions configuration -should look like in Okta. (You can find this page by going to `Admin > Applications > Metabase > General > SAML Settings [Edit]`). +Most SAML identity providers we've used already include these assertions by default, but some (such as Okta) must be configured to include them. Here's an example of what your assertions configuration should look like in Okta. (You can find this page by going to Admin > Applications > Metabase > General > SAML Settings > Edit).  -You can use other attribute names for these attributes if so desired; -see the section below. The important thing is that first name (given -name), last name (surname), and email address are included as -attributes of the first assertion returned in the identity provider's -SAML response. +You can use other attribute names for these attributes if so desired; see the section below. The important thing is that first name (given name), last name (surname), and email address are included as attributes of the first assertion returned in the identity provider's SAML response. -We've pulled the attributes out of the XML above for easy copy/pasting into your SAML identity provider. We've found that generally, you need to paste this into a field labelled "Name" but the location of the field may vary depending on the provider. Look for it in a section labelled "Attributes" or "Parameters." +We've pulled the attributes out of the XML above for easy copy/pasting into your SAML identity provider. We've found that generally you need to paste this into a field labelled "Name," but the location of the field may vary depending on the provider. Look for it in a section labeled "Attributes" or "Parameters." -| Name | Value | -| ----------- | ----------- | -| ```http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname``` | user.firstName | -| ```http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress``` | user.email | -| ```http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname``` | user.lastName | +| Name | Value | +| -------------------------------------------------------------------- | -------------- | +| `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname` | user.firstName | +| `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress` | user.email | +| `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname` | user.lastName | -##### IMPORTANT NOTE! +**Important note:** the email address _attribute_ is used to log in an end-user into a corresponding Metabase account (creating it if needed). So it's extremely critical that this email address **must not be editable** by end-users themselves. Otherwise they could potentially access Metabase accounts other than their own by changing their email address. -The email address *attribute* is used to log in an end user into a -corresponding Metabase account (creating it if needed). Thus it is -extremely critical that this email address MUST NOT be editable by end -users themselves. Otherwise they could potentially access Metabase -accounts other than their own by changing their email address. +That should be all the info you'll need to get from Metabase while setting up SAML in your IdP, but keep your IdP open for the next step — you'll need to get some information there to put into Metabase now. -#### Settings for signing SSO requests (optional) -These are additional settings you can fill in to sign SSO requests to -ensure they don’t get tampered with. +### Enabling SAML authentication in Metabase -**SAML keystore path:** the absolute path to the keystore file to use for signing SAML requests. +Metabase will now need to know some things about your IdP. Here's a breakdown of each of the settings: -**SAML keystore password:** if it wasn't already self-evident, this is just the password for opening the keystore. +**SAML Identity Provider URL:** This is where Metabase will redirect login requests. That is, it's where your users go to log in to your SSO. Your IdP may label it a little differently. Here are some of the names we've found: -**SAML keystore alias:** the alias for the key that Metabase should use for signing SAML requests. +| Provider | Name | +| -------- | ------------------------------------ | +| Auth0 | Identity Provider Login URL | +| Okta | Identity Provider Single-Sign On URL | +| OneLogin | Issuer URL | -#### Settings for user attribute configuration (optional) -These settings allow Metabase to automatically get each user's email address and first and last name. +**SAML Identity Provider Certificate:** This is an encoded certificate that Metabase will use when connecting to the IdP URI. This will look like a big blob of text that you'll want to copy and paste carefully — the spacing is important! Your IdP might have you download this certificate as a file, which you'll then need to open up in a text editor in order to copy the contents to then paste into the box in Metabase. Again, different providers may have slightly different labels for this: -The settings that Metabase defaults to here might work for you out of the box, but you can override them if you know that your settings are different. +| Provider | Name | +| -------- | ------------------- | +| Auth0 | Signing Certificate | +| Okta | X.509 Certificate | +| OneLogin | X.509 Certificate | -Each of these input boxes needs a URI that points to the location of a SAML attribute. +### Settings for signing SSO requests (optional) -### Group Schema +These are additional settings you can fill in to sign SSO requests to ensure they don’t get tampered with. -The group schema setting allows you to set Metabase groups based on an attribute of your user in your SAML provider. Please note that this may not correlate to group functionality provided by your SAML provider - you may need to create a separate attribute on your users to set their Metabse group, like `metabaseGroups`. +**SAML keystore path:** the absolute path to the keystore file to use for signing SAML requests. + +**SAML keystore password:** if it wasn't already self-evident, this is just the password for opening the keystore. + +**SAML keystore alias:** the alias for the key that Metabase should use for signing SAML requests. + +### Synchronizing group membership with your IdP + +This setting allows you to assign users to Metabase groups based on an attribute of your users in your IdP. Please note that this may not correlate to group functionality provided by your IdP — you may need to create a separate attribute on your users to set their Metabase group, like `metabaseGroups`. -#### Configuring the group schema in your SAML provider +#### Configuring the group schema in your IdP -First, you will need to create a user attribute that you will use to indicate which Metabase groups the user should be a part of. Different SAML providers have different ways of handling this, but you will likely need to edit your user profiles. For the rest of this example, let's say that you named your attribute `metabaseGroups`. +First, you will need to create a user attribute that you will use to indicate which Metabase groups the user should be a part of. Different IdPs have different ways of handling this, but you will likely need to edit your user profiles. For the rest of this example, let's say that you named your attribute `metabaseGroups`. Once you've created your `metabaseGroups` attribute, you will need to update it for each user you would like to be automatically added to a Metabase group. For ease of use, we recommend using the same name for the groups you would use in Metabase. -After that, you will need to add an additional SAML attribute to the ones we added above. The screenshot below is for Okta, but may vary dependng on your SAML provider. +After that, you will need to add an additional SAML attribute to the ones we added above. The screenshot below is for Okta, but may vary depending on your SAML provider.  - #### Configuring the group schema in Metabase -Once you've gotten everything set up in your SAML provider, it's just a few simple steps on the Metabase side! +Once you've gotten everything set up in your SAML provider, there are just a few simple steps on the Metabase side. - +To start, make sure the toggle to synchronize group memberships is set to "Enabled." Then, click Edit Mappings > Create a Mapping. Enter in the name of one of the groups you entered as your `metabaseGroups` attribute values, then click the Add button. Next click the dropdown that appears under the `Groups` heading to select the Metabase group(s) that users with this particular `metabaseGroups` value should be added to. Then click Save. -To start, make sure the toggle is set to "Enabled." Then, click Edit Mappings -> Create a Mapping. This will allow you to enter the group name(s) you entered as your metabaseGroup attribute values and the Metabase group it should correlate to. +After that, type in the name of the user attribute you added in your SAML provider. In this case, we told Okta that the `metabaseGroups` attribute should be named `MetabaseGroupName`, so that's what we'll enter in the Group Attribute Name field in Metabase. -After that, add the name of the user attribute you added in your SAML provider. In this case, we told Okta that the `metabaseGroups` attribute should be named `MetabaseGroupName`, so that's what we'll enter in the Group Attribute Name field in Metabase. + ### Troubleshooting Tips Here are a few things to double check if you're experiencing issues setting up your SAML connection: -* Verify that the application you created with your SAML provider supports SAML - sometimes other options are presented during the app creation process. -* Read all field labels and tooltips carefully - since SAML providers each use different labeling for their fields, it's important to make sure the correct information is being placed into the correct fields. -* Set your attributes and check your assertions! Many SAML providers make this pretty easy to do - just look for a button marked "Preview the SAML assertion." -* Verify that the Single Sign On URL (or equivalent) that you enter on your SAML provider's website has "/auth/sso" appended to it. For instance, if you want your users to end up at ``https://metabase.mycompany.com``, the full url should be ``https://metabase.mycompany.com/auth/sso`` +- Verify that the application you created in your IdP supports SAML. Sometimes other options are presented during the app creation process. +- Read all field labels and tooltips carefully. Since SAML providers each use different labeling for their fields, it's important to make sure the correct information is being placed into the correct fields. +- Set your attributes and check your assertions! Many SAML providers make this pretty easy to do - just look for a button marked "Preview the SAML assertion." +- Verify that the Single Sign On URL (or equivalent) that you enter on your SAML provider's website has `/auth/sso` appended to it. For instance, if you want your users to end up at `https://metabase.mycompany.com`, the full URL should be `https://metabase.mycompany.com/auth/sso` -### Disabling Password Log-in +### Disabling password log-in -Once you have configured your SAML authentication, you can choose to disable the option for users to log in via username and password. To do this, return to the main Authentication settings page and scroll to the bottom. A toggle will now be visible allowing you to make this change. +Once you have configured SAML authentication, you can choose to disable the option for users to log in via email and password. To do this, return to the main Authentication settings page and scroll to the bottom. A toggle will now be visible allowing you to disable password authentication.  +### New user notification emails + +When users log in to Metabase for the first time via SSO, this will automatically create a Metabase account for them, which will trigger an email notification to Metabase administrators. If you don't want these notifications to be sent, you can turn this toggle off at the bottom of the Authentication page. + --- ## Next: JWT-based SSO + If SAML isn’t your bag, find out how to enable [JWT-based SSO](authenticating-with-jwt.md). diff --git a/docs/enterprise-guide/full-app-embedding.md b/docs/enterprise-guide/full-app-embedding.md index ab167bf0a8e4918fef5e20f4367e790fc57eebf3..a27cd75e088862d84082f7c456a277dc6793137c 100644 --- a/docs/enterprise-guide/full-app-embedding.md +++ b/docs/enterprise-guide/full-app-embedding.md @@ -15,7 +15,10 @@ Once you do, you'll see a set of options: * **Embedding secret key:** You can ignore this setting, which is only for standalone chart or dashboard embeds. -* **Embedding the entire metabase app:** Here's where you'll enter the base URL of the web application that you want to allow to embed Metabase. Only include the protocol and the host. For example, `http://my-web-app.example.com/`. If you're a fancy person, you can specify this URL in the environment variable `MB_EMBEDDING_APP_ORIGIN`. +* **Embedding the entire Metabase app:** Here's where you'll enter the base URLs of the web applications that you want to allow to embed Metabase. + This value will be used to populate the `Content-Security-Policy` HTTP header's [`frame-ancestors` directive](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors), and should follow the same format. + For example, `https://*.metabase.com http://my-web-app.example.com:8080/`. Leaving this empty will default to a `frame-ancestors` value of `'none'`. + If you're a fancy person, you can specify this URL in the environment variable `MB_EMBEDDING_APP_ORIGIN`. ### Setting things up in your web app To give you a picture of what you'll need to do in your app, we've created this [reference app](https://github.com/metabase/sso-examples/tree/master/app-embed-example). If you use React in your application, [this React component](https://github.com/metabase/sso-examples/blob/master/app-embed-example/src/MetabaseAppEmbed.js) may be helpful. diff --git a/docs/enterprise-guide/images/saml-form.png b/docs/enterprise-guide/images/saml-form.png index 716eefc3682dcad60c205e34238dda2cf4df705d..2febc8233db5cb464abfc01b5152b767fc9fada0 100644 Binary files a/docs/enterprise-guide/images/saml-form.png and b/docs/enterprise-guide/images/saml-form.png differ diff --git a/docs/enterprise-guide/images/saml-group-schema.png b/docs/enterprise-guide/images/saml-group-schema.png index af4f3c3c2466e4b14028d92f64cd80867f20cf9d..5390364cc9bf81e59c598ce6c3ce309523e84292 100644 Binary files a/docs/enterprise-guide/images/saml-group-schema.png and b/docs/enterprise-guide/images/saml-group-schema.png differ diff --git a/docs/faq/general/how-do-i-ask-for-help.md b/docs/faq/general/how-do-i-ask-for-help.md index 6cb0dc8ea9d143cd1c967a7b92ed9231c1cc7d2d..8a5dc4ef4aa4b29cf77d576690664c92cb9a431b 100644 --- a/docs/faq/general/how-do-i-ask-for-help.md +++ b/docs/faq/general/how-do-i-ask-for-help.md @@ -1,5 +1,5 @@ # How do I ask for help? -The best place to start when asking for help are our [Troubleshooting guides](../../troubleshooting-guide/index.html). We’ve compiled a list of common problems that users experience, along with common symptoms and error messages to help you self-diagnose and resolve your issues. +The best place to start when asking for help are our [Troubleshooting guides](../../troubleshooting-guide/index.md). We’ve compiled a list of common problems that users experience, along with common symptoms and error messages to help you self-diagnose and resolve your issues. -As hard as we’ve tried to make the documentation as complete as possible, we know that you might need additional help or have a general question about Metabase not answered here. The best way to get help in these cases is to post on our [Discourse](https://discourse.metabase.com/) and harness the power of our community to get your question answered. \ No newline at end of file +As hard as we’ve tried to make the documentation as complete as possible, we know that you might need additional help or have a general question about Metabase not answered here. The best way to get help in these cases is to post on our [Discourse](https://discourse.metabase.com/) and harness the power of our community to get your question answered. diff --git a/docs/faq/general/supported-browsers.md b/docs/faq/general/supported-browsers.md new file mode 100644 index 0000000000000000000000000000000000000000..cc905b6d94f6de5e7c6ceb8ed8a7cd83bbdfe37f --- /dev/null +++ b/docs/faq/general/supported-browsers.md @@ -0,0 +1,14 @@ +## Browser Support + +### Which browsers does Metabase support? + +We try our best to make sure Metabase works in as many browsers as possible but as this is the internet, there may be little quirks from time to time in different settings. Here are the browsers and major supported versions we know Metabase will work on (and will attempt to fix browser specific bugs on if found). + +- Chrome (v 70+) +- IE (v11) +- Microsoft Edge (17+) +- Firefox (v68+) +- Safari (v11+) + +Metabase _may_ run perfectly fine on older versions of your browser of choice or a specific browser not listed above, but your mileage may vary. We always recommend you use the most up to date browser you can. + diff --git a/docs/faq/setup/how-do-i-integrate-with-sso.md b/docs/faq/setup/how-do-i-integrate-with-sso.md index afea7746bbc44d5adb63bd1118aaf1a8fd2b8963..3892a584329d3744a8906bf39e2f16246e5b52b8 100644 --- a/docs/faq/setup/how-do-i-integrate-with-sso.md +++ b/docs/faq/setup/how-do-i-integrate-with-sso.md @@ -1,3 +1,3 @@ # How do I integrate Metabase and our single-sign on (SSO) option? -The open-source edition of Metabase allows you to [integrate with LDAP or Google sign-in](../../administration-guide/10-single-sign-on.md). If you’re using a [SAML](../../enterprise-guide/authenticating-with-saml.md) or [JWT](../..enterprise-guide/authenticating-with-jwt.html) SSO solution, you will need the [Enterprise Edition](https://metabase.com/enterprise/). \ No newline at end of file +The open-source edition of Metabase allows you to [integrate with LDAP or Google sign-in](../../administration-guide/10-single-sign-on.md). If you’re using a [SAML](../../enterprise-guide/authenticating-with-saml.md) or [JWT](../../enterprise-guide/authenticating-with-jwt.md) SSO solution, you will need the [Enterprise Edition](https://www.metabase.com/enterprise/). diff --git a/docs/faq/setup/what-is-h2.md b/docs/faq/setup/what-is-h2.md index 0d0ba0267c10631bb4601f1e6f77e492328f8033..9979d16967096c400c0c6f23d9d055a7e0f5e2d2 100644 --- a/docs/faq/setup/what-is-h2.md +++ b/docs/faq/setup/what-is-h2.md @@ -1,3 +1,3 @@ # What's H2? -H2 is the underlying application database that’s packaged with Metabase. H2 is a lightweight, in-memory database: perfect for getting spun up quickly, not so perfect for long-term usage. We recommend that you [migrate away from H2](../../operations-guide/start.html#migrating-from-using-the-h2-database-to-mysql-or-postgres) for production instances of Metabase. \ No newline at end of file +H2 is the underlying application database that’s packaged with Metabase. H2 is a lightweight, in-memory database: perfect for getting spun up quickly, not so perfect for long-term usage. We recommend that you [migrate away from H2](../../operations-guide/migrating-from-h2.md) for production instances of Metabase. diff --git a/docs/faq/setup/when-should-i-migrate-h2.md b/docs/faq/setup/when-should-i-migrate-h2.md index 82c4f33aaa65f8d80ad4ea01b1cbc963ebda3615..e7461ea93370d1b2eaa94bf575f7ca8e9dc0344b 100644 --- a/docs/faq/setup/when-should-i-migrate-h2.md +++ b/docs/faq/setup/when-should-i-migrate-h2.md @@ -1,3 +1,3 @@ # When should I migrate H2 to mySQL or Postgres? -As soon as you’re planning on using Metabase for anything other than testing. H2 is fairly easily corruptible, so it’s better to be safe than sorry when running Metabase in production. The migration is fairly simple, and [full instructions](../../operations-guide/start.html#migrating-from-using-the-h2-database-to-mysql-or-postgres) are available. \ No newline at end of file +As soon as you’re planning on using Metabase for anything other than testing. H2 is fairly easily corruptible, so it’s better to be safe than sorry when running Metabase in production. The migration is fairly simple, and [full instructions](../../operations-guide/migrating-from-h2.md) are available. diff --git a/docs/faq/start.md b/docs/faq/start.md index b0b16822e556af679658342b9e45b23c560e0316..88b0dedea26b6ef3afa8b8899c8415fe82076cf8 100644 --- a/docs/faq/start.md +++ b/docs/faq/start.md @@ -11,6 +11,7 @@ Here is a list of some frequently asked questions about Metabase. - [Does Metabase have access to my data?](general/does-metabase-have-access-to-my-companys-data.md) - [Is Metabase accessible or 508 compliant?](general/is-metabase-508-compliant.md) - [Do we need a Data Processing Agreement with Metabase to comply with GDPR?](general/do-we-need-a-data-processing-agreement.md) +- [What browsers does Metabase support?](general/supported-browsers.md) ## Set-up and Admin Questions diff --git a/docs/faq/using-metabase/how-do-i-ask-questions.md b/docs/faq/using-metabase/how-do-i-ask-questions.md index 87bfb69bdde2dbaa1d6b23209fc2fed162f9d9f0..714875cd22cad0031667f65aeb6044b97ba36416 100644 --- a/docs/faq/using-metabase/how-do-i-ask-questions.md +++ b/docs/faq/using-metabase/how-do-i-ask-questions.md @@ -1,3 +1,3 @@ # How do I ask questions about my organization's data? -Metabase provides a variety of ways to ask questions about your organization’s data, from using our GUI interface to construct a question, to writing a SQL query from scratch. Read all about how to ask questions [here](../../users-guide/04-asking-questions.md). \ No newline at end of file +Metabase provides a variety of ways to ask questions about your organization’s data, from using our GUI interface to construct a question, to writing a SQL query from scratch. Read all about how to ask questions [here](../../users-guide/04-asking-questions.md). diff --git a/docs/faq/using-metabase/how-do-i-reset-my-password.md b/docs/faq/using-metabase/how-do-i-reset-my-password.md index f6d37258b0fec1aa0f503563f66bc031e2b30cc2..ab7c1e5a13ab7db6630a6df5c0b24fe7cc6f0ec7 100644 --- a/docs/faq/using-metabase/how-do-i-reset-my-password.md +++ b/docs/faq/using-metabase/how-do-i-reset-my-password.md @@ -1,3 +1,3 @@ # How do I reset my password? -If you're having trouble logging in due to a forgotten password, click the `I seem to have forgotten my password` button in the lower right of the log-in screen. If your Metabase administrator has already [configured your email settings](02-setting-up-email.md), you will be able to generate a Reset Password email. If email has not been configured, you will need to contact them to perform a password reset. \ No newline at end of file +If you're having trouble logging in due to a forgotten password, click the `I seem to have forgotten my password` button in the lower right of the log-in screen. If your Metabase administrator has already [configured your email settings](../../administration-guide/02-setting-up-email.md), you will be able to generate a Reset Password email. If email has not been configured, you will need to contact them to perform a password reset. diff --git a/docs/information-collection.md b/docs/information-collection.md index 26e2c9c219af447d43ea5b10e72cca2e8e415ca5..ccaca558a5884b31cdbf3b0426dbf7ff05260faa 100644 --- a/docs/information-collection.md +++ b/docs/information-collection.md @@ -2,7 +2,7 @@ Metabase uses Google Analytics to collect anonymous usage information from the installed servers that enable this feature. Below are the events we have instrumented, as well as the information we collect about the user performing the action and the instance being used. -We also will phone home some anonymized metrics from the metabase application server on a nightly basis. Note that we don't collect any usernames, any emails, the server IP, database details of any kind or any personally identifiable information in this process. +We also will phone home some anonymized metrics from the metabase application server on a nightly basis. Note that we don't collect any usernames, any emails, the server IP, database details of any kind or any personally identifiable information in this process. While this list of anonymous information we collect might seem long, it’s useful to compare this to other alternatives. With a typical SaaS platform, not only will this information be collected, but it will also be accompanied by information about your data, how often it is accessed, the specific queries that you use, specific numbers of records all tied to your company and current plan. @@ -12,74 +12,72 @@ In the list below, we spell out exactly why we collect each bit of information. If you prefer not to provide us with this anonymous usage data, please go to your instance’s admin section and toggle off the option for `Anonymous Tracking`. - ### Example questions we want to answer: -* Is our query interface working? - * Are users stopping halfway through a question? - * Are users using filters? - * Are users using groupings? - * How often are users using bare rows vs other aggregation options? - * are people clicking on column headings to sort or manually adding a sort clause? -* How often are users writing SQL instead of using the query interface? - * are these queries written by a select group of analysts or is the entire company sql literate? -* Are people using dashboards as a starting point for queries? -* how many clicks are there on dashboard cards? -* How many of these clicks result in modified queries that are executed? -* How often are questions saved? -* How often are saved questions added to dashboards? +- Is our query interface working? + - Are users stopping halfway through a question? + - Are users using filters? + - Are users using groupings? + - How often are users using bare rows vs other aggregation options? + - are people clicking on column headings to sort or manually adding a sort clause? +- How often are users writing SQL instead of using the query interface? + - are these queries written by a select group of analysts or is the entire company sql literate? +- Are people using dashboards as a starting point for queries? +- how many clicks are there on dashboard cards? +- How many of these clicks result in modified queries that are executed? +- How often are questions saved? +- How often are saved questions added to dashboards? ### What we will do with the answers to these questions: -* Prioritize improvements in the query interface vs the SQL interface. -* Optimize the product for the usage patterns our users are using the product for -* Stay on top of browser incompatibilities -* Optimize our dashboards for either passive consumption or as a starting point for further exploration depending on how they are being used -While we will closely follow reported issues and feature requests, we aim to make as many of our users happy and provide them with improvements in features that matter to them. Allowing us to collect information about your instance gives your users a vote in future improvements in a direct way. +- Prioritize improvements in the query interface vs the SQL interface. +- Optimize the product for the usage patterns our users are using the product for +- Stay on top of browser incompatibilities +- Optimize our dashboards for either passive consumption or as a starting point for further exploration depending on how they are being used +While we will closely follow reported issues and feature requests, we aim to make as many of our users happy and provide them with improvements in features that matter to them. Allowing us to collect information about your instance gives your users a vote in future improvements in a direct way. # The data we collect: -NOTE: we never capture any specific details in any of our tracking methodology such as user details, table names, field names, etc. collected data is limited to the types of actions users are taking with the product. - +NOTE: we never capture any specific details in any of our tracking methodology such as user details, table names, field names, etc. collected data is limited to the types of actions users are taking with the product. ### Google Analytics Events -| Category | Action | Why we collect this | -|----------|--------|---------------------| -| Links and Page Views | General website tracking of what pages are most used | This provides better understanding of what parts of the application are liked and used by customers so we know what's popular and potentially what needs more improvement. | -| Dashboards | When the dashboard dropdown is used, when dashboards are created and updated, what types of edits occur such as adding/removing cards and repositioning. | We use this information to understand how dashboards are being used and what types of activities users most commonly do on their dashboards. | -| Pulses | When pulses are created and updated, what types of pulses are created, and how many cards typically go in a pulse. | This is used to have a sense for how teams are structuring their push based communication. When and where is information most often sent and how much information allows Metabase to continue improving features around push based data interactions. | -| Query Builder | When questions are saved and viewed along with what types of choices are made such as chart types and query clauses used. | Helps the Metabase team understand the basic patterns around how users are accessing their data. | -| SQL Query | When a SQL query is saved or run. | This mostly just gives us a sense for when users are bypassing the GUI query interface. We never capture the actual SQL written. | -| Admin Settings | We capture some very basic stats about when settings are updated and if there are ever errors. We also capture non-intrusive settings such as the chosen timezone. | We use this information to make sure that users aren't having problems managing their Metabase instance and it provides us some sense for the most common configuration choices so we can optimize for those cases. | -| Databases | We simply capture when databases are created or removed and what types of databases are being used | This helps Metabase ensure that we spend the most time and attention on the types of databases that are most popular to users. | -| Data Model | The saving and updates on tables, fields, segments, and metrics are all counted, along with a few other details such as what types of special metadata choices are made. | We use this data to help ensure that Metabase provides an appropriate set of options for users to describe their data and also gives us a sense for how much time users spend marking up their schemas. | - +| Category | Action | Why we collect this | +| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Links and Page Views | General website tracking of what pages are most used | This provides better understanding of what parts of the application are liked and used by customers so we know what's popular and potentially what needs more improvement. | +| Dashboards | When the dashboard dropdown is used, when dashboards are created and updated, what types of edits occur such as adding/removing cards and repositioning. | We use this information to understand how dashboards are being used and what types of activities users most commonly do on their dashboards. | +| Pulses | When pulses are created and updated, what types of pulses are created, and how many cards typically go in a pulse. | This is used to have a sense for how teams are structuring their push based communication. When and where is information most often sent and how much information allows Metabase to continue improving features around push based data interactions. | +| Query Builder | When questions are saved and viewed along with what types of choices are made such as chart types and query clauses used. | Helps the Metabase team understand the basic patterns around how users are accessing their data. | +| SQL Query | When a SQL query is saved or run. | This mostly just gives us a sense for when users are bypassing the GUI query interface. We never capture the actual SQL written. | +| Admin Settings | We capture some very basic stats about when settings are updated and if there are ever errors. We also capture non-intrusive settings such as the chosen timezone. | We use this information to make sure that users aren't having problems managing their Metabase instance and it provides us some sense for the most common configuration choices so we can optimize for those cases. | +| Databases | We simply capture when databases are created or removed and what types of databases are being used | This helps Metabase ensure that we spend the most time and attention on the types of databases that are most popular to users. | +| Data Model | The saving and updates on tables, fields, segments, and metrics are all counted, along with a few other details such as what types of special metadata choices are made. | We use this data to help ensure that Metabase provides an appropriate set of options for users to describe their data and also gives us a sense for how much time users spend marking up their schemas. | ### Server-side Analytics -| Metric | An example of why we collect this | -|--------|-----------------------------------| -| Number of Users/Admins and whether SSO is enabled | To understand which auth methods are being used, and whether to prioritize features that scale with number of users. | -| Number of user groups | To understand how complicated a permissions model most of our users have, and to make sure that we don't over-simplify our designs. | -| Number of Dashboards | Whether we need to provide ways to organize dashboards. | -| Number of Cards per Dashboards | Do we need to provide more structure to make long dashboards easier to parse? | -| Number of Dashboards per Card | Are our users only creating a card to put it in a dashboard or are they used in many places? | -| Types of Databases | Which database driver bugs to prioritize | -| Number of pulses with attachments | Are people using attachments? | -| Number of alerts | Are people using alerts? Do they typically have a few or does each user have them? | -| Number of Collections | Do we need to add additional organization tools? | -| Number of Databases | Are users using a single DB or many? How large should the icons for a database in the databrowser be? | -| Number of Schema | Are users actively using namespaces on redshift? Do we actually need to design for 100s of schemas or is that just a small percentage of our users? | -| Number of Tables | What kind of data models are people using? Do we need table search? | -| Number of Fields | Can we pre-fetch all the fields in our metadata api to improve performance for most usres, or should we fetch them per table to scale more efficiently? | -| Number of Segments | Are people using segments widely? If so, should we surface them up higher in the UI? | -| Number of Metrics | Are metrics common? If not, should we remove the Metrics option in the New Question Flow | -| Number of Queries Run | How many queries do our most active instances run per day? Do we need to improve caching? | -| Number of Query Errors | Do we need to change how we display errors in the logs? Are they being spammed? | -| Query Latencies | What percentage of our user base runs queries that allow for iterative querying (<1second) | -| Timezone | We have a bug in a certain timezone, how many users are in that timezone? | -| Language | How many non-english speaking users do we have? How fast should we be pushing internationalization? | -| OS and JVM Version | Can we deprecate Java 7 already? | + +| Metric | An example of why we collect this | +| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Number of Users/Admins and whether SSO is enabled | To understand which auth methods are being used, and whether to prioritize features that scale with number of users. | +| Number of user groups | To understand how complicated a permissions model most of our users have, and to make sure that we don't over-simplify our designs. | +| Number of Dashboards | Whether we need to provide ways to organize dashboards. | +| Number of Cards per Dashboards | Do we need to provide more structure to make long dashboards easier to parse? | +| Number of Dashboards per Card | Are our users only creating a card to put it in a dashboard or are they used in many places? | +| Types of Databases | Which database driver bugs to prioritize | +| Number of pulses with attachments | Are people using attachments? | +| Number of alerts | Are people using alerts? Do they typically have a few or does each user have them? | +| Number of Collections | Do we need to add additional organization tools? | +| Number of Databases | Are users using a single DB or many? How large should the icons for a database in the databrowser be? | +| Number of Schema | Are users actively using namespaces on redshift? Do we actually need to design for 100s of schemas or is that just a small percentage of our users? | +| Number of Tables | What kind of data models are people using? Do we need table search? | +| Number of Fields | Can we pre-fetch all the fields in our metadata api to improve performance for most usres, or should we fetch them per table to scale more efficiently? | +| Number of Segments | Are people using segments widely? If so, should we surface them up higher in the UI? | +| Number of Metrics | Are metrics common? If not, should we remove the Metrics option in the New Question Flow | +| Number of Queries Run | How many queries do our most active instances run per day? Do we need to improve caching? | +| Number of Query Errors | Do we need to change how we display errors in the logs? Are they being spammed? | +| Query Latencies | What percentage of our user base runs queries that allow for iterative querying (less than 1 second) | +| Timezone | We have a bug in a certain timezone, how many users are in that timezone? | +| Language | How many non-english speaking users do we have? How fast should we be pushing internationalization? | +| OS and JVM Version | Can we deprecate Java 7 already? | Note this is meant to be representative. The actual code that is running to generate this can be audited at [https://github.com/metabase/metabase/blob/master/src/metabase/util/stats.clj](https://github.com/metabase/metabase/blob/master/src/metabase/util/stats.clj). diff --git a/docs/operations-guide/configuring-application-database.md b/docs/operations-guide/configuring-application-database.md index ec598561a62208c563fa60ae319477f27770f9e3..ff189cb1178023c5041f91dcf9e5f6bae2dab990 100644 --- a/docs/operations-guide/configuring-application-database.md +++ b/docs/operations-guide/configuring-application-database.md @@ -5,18 +5,19 @@ data needed to run the application. The default settings use an embedded H2 data ##### Notes -* Using Metabase with an H2 application database is not recommended for production deployments. For production - deployments, we highly recommend using Postgres, MySQL, or MariaDB instead. If you decide to continue to use H2, - please be sure to back up the database file regularly. -* You cannot change the application database while the application is running. Connection configuration information is - read only once when the application starts up and will remain constant throughout the running of the application. -* Metabase provides limited support for migrating from H2 to Postgres or MySQL if you decide to upgrade to a more - production-ready database. See [Migrating from H2 to MySQL or Postgres](migrating-from-h2.md) for more details. +- Using Metabase with an H2 application database is not recommended for production deployments. For production + deployments, we highly recommend using Postgres, MySQL, or MariaDB instead. If you decide to continue to use H2, + please be sure to back up the database file regularly. +- You cannot change the application database while the application is running. Connection configuration information is + read only once when the application starts up and will remain constant throughout the running of the application. +- Metabase provides limited support for migrating from H2 to Postgres or MySQL if you decide to upgrade to a more + production-ready database. See [Migrating from H2 to MySQL or Postgres](migrating-from-h2.md) for more details. +#### [H2](https://www.h2database.com/) (default) -#### [H2](http://www.h2database.com/) (default) +**For production installations of Metabase we recommend that users [replace the H2 database with a more robust option](./migrating-from-h2.md) such as Postgres.** This offers a greater degree of performance and reliability when Metabase is running with many users. -To use the H2 database for your Metabase instance you don't need to do anything at all. When the application is first launched it will attempt to create a new H2 database in the same filesystem location the application is launched from. +To use the H2 database for your Metabase instance you don't need to do anything at all. When the application is first launched it will attempt to create a new H2 database in the same filesystem location the application is launched from. You can see these database files from the terminal: @@ -27,7 +28,7 @@ You should see the following files: metabase.db.h2.db # Or metabase.db.mv.db depending on when you first started using Metabase. metabase.db.trace.db -If for any reason you want to use an H2 database file in a separate location from where you launch Metabase you can do so using an environment variable. For example: +If for any reason you want to use an H2 database file in a separate location from where you launch Metabase you can do so using an environment variable. For example: export MB_DB_TYPE=h2 export MB_DB_FILE=/the/path/to/my/h2.db @@ -35,9 +36,7 @@ If for any reason you want to use an H2 database file in a separate location fro Note that H2 automatically appends `.mv.db` or `.h2.db` to the path you specify; do not include those in you path! In other words, `MB_DB_FILE` should be something like `/path/to/metabase.db`, rather than something like `/path/to/metabase.db.mv.db` (even though this is the file that actually gets created). -#### [Postgres](http://www.postgresql.org/) - -**For production installations of Metabase we recommend that users replace the H2 database with a more robust option such as Postgres.** This offers a greater degree of performance and reliability when Metabase is running with many users. +#### [Postgres](https://www.postgresql.org/) You can change the application database to use Postgres using a few simple environment variables. For example: @@ -54,8 +53,9 @@ This will tell Metabase to look for its application database using the supplied export MB_DB_CONNECTION_URI="postgres://localhost:5432/metabase?user=<username>&password=<password>" java -jar metabase.jar -#### [MySQL](http://www.mysql.com/) -If you prefer to use MySQL we've got you covered. You can change the application database to use MySQL using these environment variables. For example: +#### [MySQL](https://www.mysql.com/) or [MariaDB](https://www.mariadb.org/) + +If you prefer to use MySQL or MariaDB we've got you covered. The minimum recommended version is MySQL 5.7.7 or MariaDB 10.2.2, and the `utf8mb4` character set is required. You can change the application database to use MySQL using environment variables like this: export MB_DB_TYPE=mysql export MB_DB_DBNAME=metabase @@ -68,4 +68,4 @@ If you prefer to use MySQL we've got you covered. You can change the applicatio This will tell Metabase to look for its application database using the supplied MySQL connection information. Metabase also supports providing a full JDBC connection URI if you have additional parameters: export MB_DB_CONNECTION_URI="mysql://localhost:3306/metabase?user=<username>&password=<password>" - java -jar metabase.jar \ No newline at end of file + java -jar metabase.jar diff --git a/docs/operations-guide/handling-timezones.md b/docs/operations-guide/handling-timezones.md index 1ce1a8648e52653421462eebdba66c53d57b5c72..35f5fcbb17615c84a16c87f5fcea03c7a707f27c 100644 --- a/docs/operations-guide/handling-timezones.md +++ b/docs/operations-guide/handling-timezones.md @@ -4,19 +4,20 @@ Metabase does its best to ensure proper and accurate reporting in whatever timez The following places where timezones are set can all impact the data you see: -* `Database` - includes global database timezone settings, specific column type settings, and even individual data values. -* `OS & JVM` - on whatever system is running Metabase the timezone settings of the Operating System as well as the Java Virtual Machine can impact your reports. -* `Metabase` - inside Metabase the reporting timezone setting (if set) will influence how your data is reported. +- `Database` - includes global database timezone settings, specific column type settings, and even individual data values. +- `OS & JVM` - on whatever system is running Metabase the timezone settings of the Operating System as well as the Java Virtual Machine can impact your reports. +- `Metabase` - inside Metabase the reporting timezone setting (if set) will influence how your data is reported. -To ensure proper reporting it's important that timezones be set consistently in all places. Metabase recommends the following settings: - -* Make sure all of your database columns are properly setup to include timezone awareness. -* Unless you have a special need it's best to set your database reporting timezone to UTC and store all of your date/time related values in UTC. -* Configure your JVM to use the same timezone you want to use for reporting, which ideally should also match the timezone of your database. -* Set the Metabase `Report Timezone` to match the timezone you want to see your reports in, again, this should match the rest of the timezone settings you've made. +To ensure proper reporting it's important that timezones be set consistently in all places. Metabase recommends the following settings: +- Make sure all of your database columns are properly setup to include timezone awareness. +- Unless you have a special need it's best to set your database reporting timezone to UTC and store all of your date/time related values in UTC. +- Configure your JVM to use the same timezone you want to use for reporting, which ideally should also match the timezone of your database. +- Set the Metabase `Report Timezone` to match the timezone you want to see your reports in, again, this should match the rest of the timezone settings you've made. Common Pitfalls: -1. Your database is using date/time columns without any timezone information. Typically when this happens your database will assume all the data is from whatever timezone the database is configured in or possible just default to UTC (check your database vendor to be sure). -2. Your JVM timezone is not the same as your Metabase `Report Timezone` choice. This is a very common issue and can be corrected by launching java with the `-Duser.timezone=<timezone>` option properly set to match your Metabase report timezone. \ No newline at end of file +1. Your database is using date/time columns without any timezone information. Typically when this happens your database will assume all the data is from whatever timezone the database is configured in or possible just default to UTC (check your database vendor to be sure). +2. Your JVM timezone is not the same as your Metabase `Report Timezone` choice. This is a very common issue and can be corrected by launching java with the `-Duser.timezone=<timezone>` option properly set to match your Metabase report timezone. + +If you are still experiencing timezone problems, then have a look at the [timezone troubleshooting guide](../troubleshooting-guide/timezones.md). diff --git a/docs/operations-guide/java-versions.md b/docs/operations-guide/java-versions.md index 486ce99f3a855115c66b63e452512bbadbec5c23..9b1196063a2b1a49e5a699a6454248527b63f4b3 100644 --- a/docs/operations-guide/java-versions.md +++ b/docs/operations-guide/java-versions.md @@ -1,3 +1,3 @@ # Java Versions -Metabase will run on Java version 8, 9, or 10. Java 11 support is still a work in progress, so please be patient while we get everything working. \ No newline at end of file +Metabase will run on Java version 8 and 11. diff --git a/docs/operations-guide/migrating-from-h2.md b/docs/operations-guide/migrating-from-h2.md index ac65de83e27fc1939f0b8ebc7ddee4bbc8d049d8..014a7a87d1e1783f9f2a08d6ea44bed188866042 100644 --- a/docs/operations-guide/migrating-from-h2.md +++ b/docs/operations-guide/migrating-from-h2.md @@ -6,7 +6,7 @@ Metabase provides a custom migration command for upgrading H2 application databa 1. Shutdown your Metabase instance so that it's not running. This ensures no accidental data gets written to the db while migrating. 2. Make a backup copy of your H2 application database by following the instructions in [Backing up Metabase Application Data](backing-up-metabase-application-data.md). Safety first! -3. Run the Metabase data migration command using the appropriate environment variables for the target database you want to migrate to. You can find details about specifying MySQL and Postgres databases at [Configuring the application database](configuring-application-database.md). Here's an example of migrating to Postgres: +3. Run the Metabase data migration command using the appropriate environment variables for the target database you want to migrate to. You can find details about specifying MySQL and Postgres databases at [Configuring the application database](configuring-application-database.md). Here's an example of migrating to Postgres: ``` export MB_DB_TYPE=postgres @@ -22,7 +22,8 @@ It is expected that you will run the command against a brand-new (empty!) databa ###### Notes -* Avoid upgrading and migrating at the same time, since it can cause problems with one of database schemas not matching. -* It is required that you can connect to the target MySQL or Postgres database in whatever environment you are running this migration command in. So, if you are attempting to move the data to a cloud database, make sure you take that into consideration. -* The code that handles these migrations uses a Postgres SQL command that is only available in Postgres 9.4 or newer versions. Please make sure you Postgres database is version 9.4 or newer. -* H2 automatically adds a `.h2.db` or `.mv.db` extension to the database path you specify, so make sure the path to the DB file you pass to the command *does not* include it. For example, if you have a file named `/path/to/metabase.db.h2.db`, call the command with `load-from-h2 /path/to/metabase.db`. \ No newline at end of file +- Avoid upgrading and migrating at the same time, since it can cause problems with one of database schemas not matching. +- It is required that you can connect to the target MySQL or Postgres database in whatever environment you are running this migration command in. So, if you are attempting to move the data to a cloud database, make sure you take that into consideration. +- For MySQL or MariaDB, the minimum recommended version is MySQL 5.7.7 and MariaDB 10.2.2, while `utf8mb4` character set is required. +- The code that handles these migrations uses a Postgres SQL command that is only available in Postgres 9.4 or newer versions. Please make sure you Postgres database is version 9.4 or newer. +- H2 automatically adds a `.h2.db` or `.mv.db` extension to the database path you specify, so make sure the path to the DB file you pass to the command _does not_ include it. For example, if you have a file named `/path/to/metabase.db.h2.db`, call the command with `load-from-h2 /path/to/metabase.db`. diff --git a/docs/troubleshooting-guide/bugs.md b/docs/troubleshooting-guide/bugs.md index 5eee371c2f379a00a5086c28ee4fc246a3401fa1..46224c61d3681af4833bb289ea40c3bc72c071c1 100644 --- a/docs/troubleshooting-guide/bugs.md +++ b/docs/troubleshooting-guide/bugs.md @@ -1,6 +1,6 @@ If you come across something that looks like a bug, start by searching our [Github issues](https://github.com/metabase/metabase/issues) to see if it has already been reported. If it has, please let us know you're experiencing the same issue by reacting with a thumbs up emoji or adding a comment providing additional information. -If the bug has not yet been reported, go ahead and [open a bug report](https://github.com/metabase/metabase/issues/new?assignees=&labels=Bug&template=bug_report.md&title=). We suggest collecting the following information to help us reproduce the issue: +If the bug has not yet been reported, go ahead and [open a bug report](https://github.com/metabase/metabase/issues/new/choose). We suggest collecting the following information to help us reproduce the issue: 1. Metabase server logs 2. Javascript console logs @@ -14,12 +14,14 @@ If the bug has not yet been reported, go ahead and [open a bug report](https://g ## Helpful tidbits ### Accessing the Metabase server logs + While you can always look for the logs Metabase leaves on your server file system (or however you collect logs), if you are logged into Metabase with an admin account, you can also access them from the gear drop down menu in the upper right hand corner -> Admin -> Troubleshooting -> Logs. ### Checking for Javascript console errors + Metabase will send debugging information and errors to your browser's developer console. To open the developer console, follow the instructions for your web browser of choice: -* [Chrome](https://developers.google.com/web/tools/chrome-devtools/open#console) -* [Firefox](https://developer.mozilla.org/en-US/docs/Tools/Web_Console/Opening_the_Web_Console) -* [Safari](https://support.apple.com/guide/safari-developer/develop-menu-dev39df999c1/mac) -* [Edge](https://docs.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium) +- [Chrome](https://developers.google.com/web/tools/chrome-devtools/open#console) +- [Firefox](https://developer.mozilla.org/en-US/docs/Tools/Web_Console/Opening_the_Web_Console) +- [Safari](https://support.apple.com/guide/safari-developer/develop-menu-dev39df999c1/mac) +- [Edge](https://docs.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium) diff --git a/docs/troubleshooting-guide/loggingin.md b/docs/troubleshooting-guide/loggingin.md index 632481d0ad69c506a47ad487206a17f6e4106efe..dac33f56781110fb3b8d568ebd7a52a854053b43 100644 --- a/docs/troubleshooting-guide/loggingin.md +++ b/docs/troubleshooting-guide/loggingin.md @@ -1,39 +1,43 @@ ## Troubleshooting Process + 1. Try to log in with a local account 2. Try to log in with a Google Auth SSO account 3. Example JavaScript and Server logs if you are not able to log in. ## Specific Problems: - ### Invalid Google Auth Token: + Sometimes your token from Google will expire. #### How to detect this: + Open up the JavaScript console. Try to log in with Google Auth, see if there are any error messages in the JavaScript console indicating an invalid account. Also open up your server logs, and see if there are any errors related to authentication. If there are, try recreating the token. #### How to fix this: + Remove the old token from the Google Auth SSO tab in the Admin Panel and create a new one. If the root cause was an invalid auth token, this should fix the problem. ### Forgotten Password -[This FAQ](../faq/how-do-i-reset-my-password.md) will tell you what to do in the event of a forgotten password. - - +[This FAQ](../faq/using-metabase/how-do-i-reset-my-password.md) will tell you what to do in the event of a forgotten password. ## Helpful tidbits ### Accessing the Metabase server logs + While you can always look for the logs Metabase leaves on your server file system (or however you collect logs), if you are logged into Metabase with an admin account, you can view the server logs as well as task and job logs in the Admin Panel by clicking the Troubleshooting tab in the nav bar. ### Checking for JavaScript errors in your web browser + Metabase will print debugging information and errors to your browser's JavaScript Console. You can open the JavaScript console by following the instructions for your specific browser: -* [Google Chrome](https://developers.google.com/web/tools/chrome-devtools/console/) -* [Mozilla Firefox](https://developer.mozilla.org/en-US/docs/Tools/Web_Console) -* [Safari](https://developer.apple.com/library/content/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/Introduction/Introduction.html) -* [Internet Explorer](https://msdn.microsoft.com/en-us/library/gg589530(v=vs.85).aspx) (On many versions of IE you can also access the console by pressing the F12 key on your keyboard.) -* [Microsoft Edge](https://docs.microsoft.com/en-us/microsoft-edge/f12-devtools-guide/console) + +- [Google Chrome](https://developers.google.com/web/tools/chrome-devtools/console/) +- [Mozilla Firefox](https://developer.mozilla.org/en-US/docs/Tools/Web_Console) +- [Safari](https://developer.apple.com/library/content/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/Introduction/Introduction.html) +- [Internet Explorer](<https://msdn.microsoft.com/en-us/library/gg589530(v=vs.85).aspx>) (On many versions of IE you can also access the console by pressing the F12 key on your keyboard.) +- [Microsoft Edge](https://docs.microsoft.com/en-us/microsoft-edge/f12-devtools-guide/console) diff --git a/docs/users-guide/05-visualizing-results.md b/docs/users-guide/05-visualizing-results.md index c5157375cf3a2087f29ca493c5795f9b5de55c14..1d69ba9c618f11f3e2fd49f37a2b96e0eb76d64f 100644 --- a/docs/users-guide/05-visualizing-results.md +++ b/docs/users-guide/05-visualizing-results.md @@ -5,7 +5,7 @@ While tables are useful for looking up information or finding specific numbers, In Metabase, an answer to a question can be visualized in a number of ways: - [Number](#numbers) -- [Trend](#smart-numbers) +- [Trend](#trends) - [Progress bar](#progress-bars) - [Gauge](#gauges) - [Table](#tables) @@ -41,11 +41,11 @@ This option is for displaying a single number, nice and big. The options for num The Trend visualization is great for displaying how a single number has changed over time. To use this visualization, you'll need to have a single number grouped by a Time field, like the Count of Orders by Created At. The Trend will show you the value of the number during the most recent period, and below that you'll see how much the number has increased or decreased compared to its value in the period before that. The period is determined by your group-by field: if you're grouping by Day, the Trend will show you the most recent day compared to the day before that. - + By default, Trends will display increases as green (i.e. "good") and decreases as red ("bad"). If your number is something where an increase is bad and a decrease is good (such as Bounce Rate, or Costs), you can reverse this behavior in the visualization settings: - + #### Progress bars @@ -189,10 +189,32 @@ By default, Metabase will automatically choose a good way to bin your results. B These three charting types have very similar options, which are broken up into the following: -- **Data** — choose the fields you want to plot on your x and y axes. This is mostly useful if your table or result set contains more than two columns, like if you're trying to graph fields from an unaggregated table. You can also add additional metrics to your chart by clicking the `Add another series` link below the y-axis dropdown, or break your current metric out by an additional dimension by clicking the `Add a series breakout` link below the x-axis dropdown (note that you can't add an additional series breakout if you have more than one metric/series). -- **Display** — here's where you can make some cosmetic changes, like setting colors, and stacking bar or area charts. With line and area charts, you can also change the line style (line, curve, or step). You can also set a goal line for your chart, display a trend line, or configure how your chart deals with x-axis points that have missing y-axis values. -- **Axes** — this is where you can hide axis markers or change their ranges, and turn split axes on or off. You can also configure the way your axes are scaled, if you're into that kind of thing. -- **Labels** — if you want to hide axis labels or customize them, here's where to go. +**Data** + +Here's where you can choose the columns you want to plot on your x and y axes. This is mostly useful if your table or result set contains more than two columns, like if you're trying to graph fields from an unaggregated table. You can also add additional metrics to your chart by clicking the `Add another series` link below the y-axis dropdown, or break your current metric out by an additional dimension by clicking the `Add a series breakout` link below the x-axis dropdown (note that you can't add an additional series breakout if you have more than one metric/series). + +**Display** + +There's quite a bit you can do in this tab: + +- Set the colors and labels for the series on your chart. +- Change the style of your lines for Line and Area charts, and choose whether or not to display dots on them. +- Use the "Replace missing values with…" setting to change how your chart deals with missing values. You can use linear interpolation, or display those points as zero or as nothing. +- Add a goal line. This can be used in conjunction with [alerts](15-alerts.md) to send an email or a Slack message when your metric cross this line. +- If you're looking at a time series chart, you can turn on a trend line to show where things are heading. +- Show values on data points. The default setting will try and fit as many values on your chart as will fit nicely, but you can also force Metabase to show the values for each and every data point, which it will do begrudgingly. + +**Axes** + +There are three main things you can do here: + +- Change the scale for your axes. If you're looking at a time series chart, your x-axis can use a time series scale or an ordinal one. Your y-axis can use a linear, power, or logarithmic scale. +- Hide or show the tick marks on your axes. You can also choose to rotate the tick marks on the x-axis to help them fit better. +- Edit the range of your y-axis. Metabase sets an automatic range by default, but you can toggle that off and input a custom minimum and maximum value for the y-axis if you'd like. + +**Labels** + +Here's where you can choose to hide the label for your x- or y-axis. You can also customize the text for your axis labels here. #### Scatterplots and bubble charts diff --git a/docs/users-guide/13-sql-parameters.md b/docs/users-guide/13-sql-parameters.md index ba99ea45d03d2c64fe87694c03596ad7a54877e5..412b7cdb1e6b15847caa9e1650b96958d4d4a427 100644 --- a/docs/users-guide/13-sql-parameters.md +++ b/docs/users-guide/13-sql-parameters.md @@ -20,25 +20,38 @@ FROM products WHERE category = {% raw %}{{cat}}{% endraw %} ``` -#### The Field Filter variable type +If you're writing a native MongoDB query, your query would look more like this, with the `cat` variable being defined inside of the `match` clause. -Setting a variable to the `field filter` type allows you to map it to a field in any table in the current database, and lets you display a dropdown filter widget filled with the values of the field you connected it to. Field filter variables also allow you to connect your SQL question to a dashboard filter if you put it in a dashboard. +``` +{% raw %}[{ $match: { category: {{cat}} } }]{% endraw %} +``` + +### The Field Filter variable type + +Setting a variable to the "Field Filter" type allows you to map it to a field in any table in the current database, and lets you display a dropdown filter widget filled with the values of the field you connected it to. Field filter variables also allow you to connect your SQL question to a dashboard filter if you put it in a dashboard. -A field filter variable inserts SQL similar to that generated by the GUI query builder when adding filters on existing columns. This is useful because it lets you do things like insert dynamic date range filters into your native query. When adding a field filter, you should link that variable to a specific column. Field filter variables should be used inside of a `WHERE` clause. +A field filter variable inserts SQL similar to that generated by the GUI query builder when adding filters on existing columns. This is useful because it lets you do things like insert dynamic date range filters into your native query. When adding a field filter, you should link that variable to a specific column. Field filter variables should be used inside of a `WHERE` clause in SQL, or a `$match` clause in MongoDB. **Note:** Table aliases are not supported. This is because field filters generate SQL based on the mapped field. +Some databases require the schema in the `FROM` clause. An example for Oracle would be `FROM "schema"."table"`. In BigQuery, back ticks are needed, like `` FROM `dataset_name.table` ``. Example: ``` SELECT count(*) FROM products -WHERE {% raw %}{{created_at}}{% endraw %} +WHERE {% raw %}{{date_var}}{% endraw %} ``` -##### Creating SQL question filters using field filter variables +A MongoDB native query example might look like this: + +``` +{% raw %}[ {$match: {{date_var}} } ]{% endraw %} +``` -First, insert a variable tag in your SQL, like `{% raw %}{{my_var}}{% endraw %}`. Then, in the side panel, select the `Field Filter` variable type, and choose which field to map your variable to. In order to display a filter widget, you'll have to choose a field whose Type in the Data Model section of the Admin Panel is one of the following: +#### Creating SQL question filters using field filter variables + +First, insert a variable tag in your SQL, like `{% raw %}{{my_var}}{% endraw %}`. Then, in the side panel, select the Field Filter variable type, and choose which field to map your variable to. In order to display a filter widget, you'll have to choose a field whose Type in the Data Model section of the Admin Panel is one of the following: - Category - City @@ -50,9 +63,11 @@ First, insert a variable tag in your SQL, like `{% raw %}{{my_var}}{% endraw %}` - UNIX Timestamp (Milliseconds) - ZIP or Postal Code -The field can also be a datetime one (which can be left as `No special type` in the Data Model). +The field can also be a datetime, which can be left as "No special type" in the Data Model. + +You'll then see a dropdown labeled "Widget," which will let you choose the kind of filter widget you want on your question, which is especially useful for datetime fields. You can select "None" if you don't want a widget on the question at all, which you might do e.g. if you're just wanting to allow this question to be mapped to a dashboard filter (see more on that below). -You'll then see a dropdown labeled `Widget`, which will let you choose the kind of filter widget you want on your question, which is especially useful for datetime fields (you can select `None` if you don't want a widget at all). **Note:** If you're not seeing the option to display a filter widget, make sure the mapped field is set to one of the above types, and then try manually syncing your database from the Databases section of the Admin Panel to force Metabase to scan and cache the field's values. +**Note:** If you're not seeing the option to display a filter widget, make sure the mapped field is set to one of the above types, and then try manually syncing your database from the Databases section of the Admin Panel to force Metabase to scan and cache the field's values. Filter widgets **can't** be displayed if the variable is mapped to a field marked as: @@ -67,15 +82,15 @@ Filter widgets **can't** be displayed if the variable is mapped to a field marke - Longitude - URL -##### Setting a default value +#### Setting a default value -If you input a default value for your field filter, this value will be selected in the filter whenever you come back to this question. If you clear out the filter, though, no value will be passed (i.e., not even the default value). The default value has no effect on the behavior of your SQL question when viewed in a dashboard. +If you input a default value for your field filter, this value will be selected in the filter whenever you come back to this question. If you clear out the filter, though, no value will be passed (i.e., not even the default value). **The default value has no effect on the behavior of your SQL question when viewed in a dashboard.** ###### Default value in the query -You can also define default value directly in your query, useful for complex default value. +You can also define default values directly in your query, which are useful when defining complex default values. Note that the hash (`#`) might need to be replaced by the comment syntax of the database you're using. Some databases use double-dashes (`--`) as comment syntax. -Current date example: +Current example for a Date filter: ``` SELECT p.* @@ -83,15 +98,15 @@ FROM products p WHERE p.createdAt = [[ {% raw %}{{dateOfCreation}}{% endraw %} #]]CURRENT_DATE() ``` -##### Connecting a SQL question to a dashboard filter +#### Connecting a SQL question to a dashboard filter -In order for a saved SQL question to be usable with a dashboard filter, it must contain at least one field filter. The kind of dashboard filter that can be used with the SQL question depends on the field that you map to the question's field filter(s). For example, if you have a field filter called `{% raw %}{{var}}{% endraw %}` and you map it to a State field, you can map a Location dashboard filter to your SQL question. In this example, you'd create a new dashboard or go to an existing one, click the Edit button, and the SQL question that contains your State field filter, add a new dashboard filter or edit an existing Location filter, then click the dropdown on the SQL question card to see the State field filter. [Learn more about dashboard filters here](08-dashboard-filters.md). +In order for a saved SQL/native question to be usable with a dashboard filter, it must contain at least one field filter. The kind of dashboard filter that can be used with the SQL question depends on the field that you map to the question's field filter(s). For example, if you have a field filter called `{% raw %}{{var}}{% endraw %}` and you map it to a State field, you can map a Location dashboard filter to your SQL question. In this example, you'd create a new dashboard or go to an existing one, click the Edit button, add the SQL question that contains your State field filter, add a new dashboard filter or edit an existing Location filter, then click the dropdown on the SQL question card to see the State field filter. [Learn more about dashboard filters here](08-dashboard-filters.md).  ### Optional Clauses -To make an optional clause in your native query, type `[[brackets around a {% raw %}{{variable}}{% endraw %}]]`. If `variable` is given a value, then the entire clause is placed into the template. If not, then the entire clause is ignored. +To make a clause optional in your native query, type `[[brackets around a {% raw %}{{variable}}{% endraw %}]]`. If `variable` is given a value, then the entire clause is placed into the template. If not, then the entire clause is ignored. In this example, if no value is given to `cat` from its filter widget or URL, then the query will just select all the rows from the `products` table. But if `cat` does have a value, like `Widget`, then the query will only grab the products with a category type of `Widget`: @@ -101,6 +116,21 @@ FROM products [[WHERE category = {% raw %}{{cat}}{% endraw %}]] ``` +Or in MongoDB: + +``` +{% raw %} +[ + [[{ + $match: {category: {{cat}}} + },]] + { + $count: "Total" + } +] +{% endraw %} +``` + To use multiple optional clauses you must include at least one regular `WHERE` clause followed by optional clauses, each starting with `AND`. Example: diff --git a/docs/users-guide/custom-questions.md b/docs/users-guide/custom-questions.md index 50f77869af03fc6503c685642ca00026ec8ce4f5..90201809a2d804bb1b204f5e75677d4d73736cfd 100644 --- a/docs/users-guide/custom-questions.md +++ b/docs/users-guide/custom-questions.md @@ -14,7 +14,7 @@ The notebook is made up of a sequence of individual steps. Under each step you'l This first step is required, and is where you pick the data that you want to base your question on. In most cases you'll pick one of the tables in your database, but you can also choose a previously saved question's result as the starting point for your new question. What this means in practice is that you can do things like use complex SQL queries to create new tables that can be used as starting data in a question just like any other table in your database. -You can use most saved questions as source data, provided you have [permission](../administration-guide/05-setting-permissions.html) to view that question. You can even use questions that were saved as a chart rather than a table. +You can use most saved questions as source data, provided you have [permission](../administration-guide/05-setting-permissions.md) to view that question. You can even use questions that were saved as a chart rather than a table. There are some kinds of saved questions that can't be used as source data: diff --git a/docs/users-guide/images/SQL-filter-widget.png b/docs/users-guide/images/SQL-filter-widget.png index da337b7deaeffef218e90272d59cf2125ba22bf9..f4af9e26b7b6374557fda37f2f77d26047125c2d 100644 Binary files a/docs/users-guide/images/SQL-filter-widget.png and b/docs/users-guide/images/SQL-filter-widget.png differ diff --git a/docs/users-guide/images/SQLInterface.png b/docs/users-guide/images/SQLInterface.png index f399193731be3e908edaae873e13798bf3eb828a..57c03b6ab76c61914b62bda4686ba898a02f59e8 100644 Binary files a/docs/users-guide/images/SQLInterface.png and b/docs/users-guide/images/SQLInterface.png differ diff --git a/docs/users-guide/images/visualizations/smart-scalar-settings.png b/docs/users-guide/images/visualizations/trend-settings.png similarity index 100% rename from docs/users-guide/images/visualizations/smart-scalar-settings.png rename to docs/users-guide/images/visualizations/trend-settings.png diff --git a/docs/users-guide/images/visualizations/smart-number.png b/docs/users-guide/images/visualizations/trend.png similarity index 100% rename from docs/users-guide/images/visualizations/smart-number.png rename to docs/users-guide/images/visualizations/trend.png diff --git a/docs/users-guide/writing-sql.md b/docs/users-guide/writing-sql.md index a016cc61263b3b60569c2e644af7f98b70454aef..6c910d6d8a7234a30802c2e0779c33120043495d 100644 --- a/docs/users-guide/writing-sql.md +++ b/docs/users-guide/writing-sql.md @@ -16,9 +16,9 @@ You can write SQL (or your database's native querying language) directly into th  -To try it out, type the command `select sum(subtotal), created_at from orders group by created_at`. Don't worry if you don't understand this just yet. Click the blue run button and note the table that comes back is the same as if you had asked for the sum of Subtotal in the Orders table, grouped by Created At. +To try it out, select the Sample Dataset, then type the command `select sum(subtotal), created_at from orders group by created_at`. Don't worry if you don't understand this just yet. Click the blue run button and note the table that comes back is the same as if you had asked for the sum of Subtotal in the Orders table, grouped by Created At. -**Tip!** You can run your SQL query by pressing `ctrl` + `enter` on Windows, or `command` + `return` on a Mac. You can also run only a specific section of a query by selecting the part you'd like to run and pressing `ctrl` + `alt` + `enter` on Windows, or `command` + `option` + `return` on a Mac. +**Tip:** You can run your SQL query by pressing **ctrl + enter** on Windows and Linux, or **⌘ + return** on a Mac. You can also run only the selected section of a query by highlighting the part you'd like to run before clicking the run button or using the run shortcut key. Questions asked using SQL can be saved, downloaded, or added to a dashboard just like questions asked using the question builder. @@ -34,4 +34,4 @@ Writing SQL queries that use variables or parameters can be very powerful, but i ## Next: Creating charts -Now that you have an answer to your question, you can now learn more about [visualizing answers](05-visualizing-results.md). +Now that you have an answer to your question, you can learn about [visualizing answers](05-visualizing-results.md). diff --git a/frontend/src/metabase-lib/lib/Dimension.js b/frontend/src/metabase-lib/lib/Dimension.js index add910c0baccb83d02ac8214e305f61fdf5bfab5..96ba79779f9e28a5f7fb957441d7af38cb51e672 100644 --- a/frontend/src/metabase-lib/lib/Dimension.js +++ b/frontend/src/metabase-lib/lib/Dimension.js @@ -821,6 +821,11 @@ export class ExpressionDimension extends Dimension { } } +// These types aren't aggregated. e.g. if you take the distinct count of a FK +// column, you now have a normal integer and should see relevant filters for +// that type. +const UNAGGREGATED_SPECIAL_TYPES = new Set([TYPE.FK, TYPE.PK]); + /** * Aggregation reference, `["aggregation", aggregation-index]` */ @@ -841,8 +846,11 @@ export class AggregationDimension extends Dimension { column(extra = {}) { const aggregation = this.aggregation(); + const { special_type, ...column } = super.column(); return { - ...super.column(), + ...column, + // don't pass through `special_type` when aggregating these types + ...(!UNAGGREGATED_SPECIAL_TYPES.has(special_type) && { special_type }), base_type: aggregation ? aggregation.baseType() : TYPE.Float, source: "aggregation", ...extra, diff --git a/frontend/src/metabase-lib/lib/Question.js b/frontend/src/metabase-lib/lib/Question.js index 26c042170262d1a92ad720f5ae062e538007fb05..e1c10c4f6d42f14779a390128e78b2fecac18734 100644 --- a/frontend/src/metabase-lib/lib/Question.js +++ b/frontend/src/metabase-lib/lib/Question.js @@ -276,7 +276,61 @@ export default class Question { return this.setCard(assoc(this.card(), "display", display)); } + // The selected display is set when the user explicitly chooses a + // visualization type. Having it set prevents auto selecting a new type, + // unless the selected type isn't sensible. + setSelectedDisplay(display): Question { + return this.setCard( + assoc(this.card(), "selectedDisplay", display), + ).setDisplay(display); + } + selectedDisplay(): string { + return this._card && this._card.selectedDisplay; + } + + // This feels a bit hacky because it stores result-dependent info on card. We + // use the list of sensible displays to override a user-selected display if it + // no longer makes sense for the data. + setSensibleDisplays(displays): Question { + return this.setCard(assoc(this.card(), "sensibleDisplays", displays)); + } + sensibleDisplays(): string[] { + return (this._card && this._card.sensibleDisplays) || []; + } + + // This determines whether `setDefaultDisplay` should replace the current + // display. If we have a list of sensibleDisplays and the user-selected + // display is one of them, we won't overwrite it in `setDefaultDisplay`. If + // the user hasn't selected a display or `sensibleDisplays` hasn't been set, + // we can let `setDefaultDisplay` choose a display type. + shouldNotSetDisplay(): boolean { + return this.sensibleDisplays().includes(this.selectedDisplay()); + } + + // Switches display based on data shape. For 1x1 data, we show a scalar. If + // our display was a 1x1 type, but the data isn't 1x1, we show a table. + switchTableScalar({ rows = [], cols }): Question { + const display = this.display(); + const isScalar = ["scalar", "progress", "gauge"].includes(display); + const isOneByOne = rows.length === 1 && cols.length === 1; + + const newDisplay = + !isScalar && isOneByOne + ? // if we have a 1x1 data result then this should always be viewed as a scalar + "scalar" + : isScalar && !isOneByOne + ? // any time we were a scalar and now have more than 1x1 data switch to table view + "table" + : // otherwise leave the display unchanged + display; + + return this.setDisplay(newDisplay); + } + setDefaultDisplay(): Question { + if (this.shouldNotSetDisplay()) { + return this; + } const query = this.query(); if (query instanceof StructuredQuery) { // TODO: move to StructuredQuery? diff --git a/frontend/src/metabase/admin/settings/components/widgets/FormattingWidget.jsx b/frontend/src/metabase/admin/settings/components/widgets/FormattingWidget.jsx index 8d7a82a62a39b69d736072a1f02931add777d161..496b954c40766f07f19a0a81071b02ec5acc5483 100644 --- a/frontend/src/metabase/admin/settings/components/widgets/FormattingWidget.jsx +++ b/frontend/src/metabase/admin/settings/components/widgets/FormattingWidget.jsx @@ -7,7 +7,7 @@ import ColumnSettings from "metabase/visualizations/components/ColumnSettings"; const SETTING_TYPES = [ { name: "Dates and Times", - type: TYPE.DateTime, + type: TYPE.Temporal, settings: [ "date_style", "date_separator", @@ -16,7 +16,7 @@ const SETTING_TYPES = [ "time_style", ], column: { - special_type: TYPE.DateTime, + special_type: TYPE.Temporal, unit: "second", }, }, diff --git a/frontend/src/metabase/components/BrowseApp.jsx b/frontend/src/metabase/components/BrowseApp.jsx index 5ef2142b4cc245f2f01a7f2e9cbf3897a9c94f52..43cd70e561d9099087276a3f2763adc206640e59 100644 --- a/frontend/src/metabase/components/BrowseApp.jsx +++ b/frontend/src/metabase/components/BrowseApp.jsx @@ -202,6 +202,7 @@ export class DatabaseBrowser extends React.Component { <Link to={`browse/${database.id}`} data-metabase-event={`${ANALYTICS_CONTEXT};Database Click`} + display="block" hover={{ color: color("brand") }} > <Card p={3} hover={{ color: color("brand") }}> diff --git a/frontend/src/metabase/components/EmptyState.jsx b/frontend/src/metabase/components/EmptyState.jsx index 546603f923e56e0dd62fa35094712eb9edabd7a5..7289d25600412f8afd8f1d0a28f0aee854c4f2ed 100644 --- a/frontend/src/metabase/components/EmptyState.jsx +++ b/frontend/src/metabase/components/EmptyState.jsx @@ -19,7 +19,9 @@ type EmptyStateProps = { // Don't break existing empty states // TODO - remove these and update empty states with proper usage of illustrationElement const LegacyIcon = props => - props.icon ? <Icon name={props.icon} size={40} /> : null; + props.icon ? ( + <Icon name={props.icon} className="text-light" size={40} /> + ) : null; const LegacyImage = props => props.image ? ( <img diff --git a/frontend/src/metabase/components/FieldValuesWidget.jsx b/frontend/src/metabase/components/FieldValuesWidget.jsx index 3feb108af6ea2264736758b348ecf1f098f400ae..e81070c740ed4b44ffb9ea7e8708ec42b90efefc 100644 --- a/frontend/src/metabase/components/FieldValuesWidget.jsx +++ b/frontend/src/metabase/components/FieldValuesWidget.jsx @@ -16,6 +16,8 @@ import { defer } from "metabase/lib/promise"; import { debounce } from "underscore"; import { stripId } from "metabase/lib/formatting"; +import Fields from "metabase/entities/fields"; + import type Field from "metabase-lib/lib/metadata/Field"; import type { FieldId } from "metabase/meta/types/Field"; import type { Value } from "metabase/meta/types/Dataset"; @@ -29,6 +31,13 @@ const mapDispatchToProps = { fetchFieldValues, }; +function mapStateToProps(state, { field }) { + const selectedField = + field && Fields.selectors.getObject(state, { entityId: field.id }); + // try and use the selected field, but fall back to the one passed + return { field: selectedField || field }; +} + type Props = { value: Value[], onChange: (value: Value[]) => void, @@ -380,6 +389,6 @@ const OptionsMessage = ({ message }) => ( ); export default connect( - null, + mapStateToProps, mapDispatchToProps, )(FieldValuesWidget); diff --git a/frontend/src/metabase/components/List.css b/frontend/src/metabase/components/List.css index 02bd56af9a7d2a6ae24c0575201541d3addba67b..76c31959a1874b7285bdbc059668f3fcded85f9e 100644 --- a/frontend/src/metabase/components/List.css +++ b/frontend/src/metabase/components/List.css @@ -1,18 +1,14 @@ :root { - --title-color: var(--color-text-medium); + --title-color: var(--color-text-dark); --subtitle-color: var(--color-text-medium); --muted-color: var(--color-text-light); - --blue-color: var(--color-brand); } :local(.list) { - max-width: var(--md-width); composes: ml-auto mr-auto from "style"; - padding-bottom: 40px; } :local(.list-wrapper) { - max-width: var(--md-width); composes: ml-auto mr-auto from "style"; } @@ -29,10 +25,10 @@ } :local(.headerBody) { - composes: flex flex-full pb2 border-bottom from "style"; + composes: flex flex-full border-bottom from "style"; align-items: center; height: 100%; - border-color: var(--color-border); + border-color: var(--color-brand); } :local(.headerLink) { @@ -56,40 +52,30 @@ } :local(.itemBody) { - composes: border-top from "style"; composes: flex-full from "style"; - max-width: 550px; - padding-top: 20px; - padding-bottom: 20px; - border-color: var(--color-border); + max-width: 100%; } :local(.itemTitle) { - composes: text-bold inline-block from "style"; + composes: text-bold from "style"; max-width: 100%; overflow: hidden; - color: var(--title-color); - font-size: 18px; } :local(.itemName) { - composes: mr1 from "style"; - composes: inline-block from "style"; + composes: text-brand-hover mr1 from "style"; max-width: 100%; overflow: hidden; } -:local(.itemName):hover { - color: var(--blue-color); -} - :local(.itemSubtitle) { color: var(--subtitle-color); + max-width: 600px; font-size: 14px; } :local(.itemSubtitleLight) { - color: var(--subtitle-color); + composes: text-light from "style"; font-size: 14px; } @@ -101,13 +87,16 @@ composes: flex flex-row align-center from "style"; } :local(.leftIcons) { - composes: flex-no-shrink flex layout-centered mr2 from "style"; + composes: flex-no-shrink flex align-self-start mr2 from "style"; composes: icons; - width: 48px; } :local(.rightIcons) { composes: icons; } +:local(.itemIcons) { + composes: leftIcons; + padding-top: 4px; +} :local(.extraIcons) { composes: icons; @@ -134,8 +123,7 @@ visibility: visible; } :local(.icon):hover { - color: var(--blue-color); - transition: color 0.3s linear; + color: var(--color-brand); } /* ITEM CHECKBOX */ @@ -150,7 +138,7 @@ display: inline; } :local(.item.selected) :local(.itemCheckbox) { - color: var(--blue-color); + color: var(--color-brand); } /* ITEM ICON */ @@ -179,23 +167,6 @@ composes: mx1 from "style"; } -/* TAG */ -:local(.open) :local(.tagIcon) { - visibility: visible; - color: var(--blue-color); -} - -/* FAVORITE */ -:local(.item.favorite) :local(.favoriteIcon) { - visibility: visible; - color: var(--blue-color); -} - -/* ARCHIVE */ -:local(.item.archived) :local(.archiveIcon) { - color: var(--blue-color); -} - :local(.trigger) { line-height: 0; } diff --git a/frontend/src/metabase/components/ListItem.jsx b/frontend/src/metabase/components/ListItem.jsx index b0fd19885a5f5b1c09d05ce41065db6441faed60..656e49daf1c27ba73e05719454423fa50c592574 100644 --- a/frontend/src/metabase/components/ListItem.jsx +++ b/frontend/src/metabase/components/ListItem.jsx @@ -3,41 +3,40 @@ import React from "react"; import PropTypes from "prop-types"; import { Link } from "react-router"; import S from "./List.css"; -import { t } from "ttag"; import Icon from "./Icon"; import Ellipsified from "./Ellipsified"; import cx from "classnames"; import pure from "recompose/pure"; +import Card from "metabase/components/Card"; //TODO: extend this to support functionality required for questions const ListItem = ({ index, name, description, placeholder, url, icon }) => ( - <div className={cx(S.item)}> - <div className={S.leftIcons}> - {icon && <Icon className={S.chartIcon} name={icon} size={20} />} - </div> - <div - className={S.itemBody} - style={index === 0 ? { borderTop: "none" } : {}} - > - <div className={S.itemTitle}> - <Ellipsified - className={S.itemName} - tooltip={name} - tooltipMaxWidth="100%" - > - {url ? <Link to={url}>{name}</Link> : { name }} - </Ellipsified> + <Link to={url} className="text-brand-hover"> + <Card hoverable className="mb2 p3 bg-white rounded bordered"> + <div className={cx(S.item)}> + <div className={S.itemIcons}> + {icon && <Icon className={S.chartIcon} name={icon} size={16} />} + </div> + <div className={S.itemBody}> + <div className={S.itemTitle}> + <Ellipsified + className={S.itemName} + tooltip={name} + tooltipMaxWidth="100%" + > + <h3>{name}</h3> + </Ellipsified> + </div> + {(description || placeholder) && ( + <div className={cx(S.itemSubtitle)}> + {description || placeholder} + </div> + )} + </div> </div> - <div - className={cx(description ? S.itemSubtitle : S.itemSubtitleLight, { - mt1: true, - })} - > - {description || placeholder || t`No description yet`} - </div> - </div> - </div> + </Card> + </Link> ); ListItem.propTypes = { diff --git a/frontend/src/metabase/components/QueryButton.css b/frontend/src/metabase/components/QueryButton.css index 2f874b50799f4b226563c584f4edc051d4ff735c..fdb2d0b5a9485b64b18b848231d45cd25bececb2 100644 --- a/frontend/src/metabase/components/QueryButton.css +++ b/frontend/src/metabase/components/QueryButton.css @@ -1,16 +1,8 @@ :local(.queryButton) { - composes: flex align-center no-decoration text-medium py1 from "style"; + composes: flex align-center no-decoration text-brand py1 from "style"; } :local(.queryButtonText) { - composes: flex-full mx2 text-default from "style"; + composes: flex-full ml2 from "style"; max-width: 100%; } - -:local(.queryButtonCircle) { - composes: flex align-center justify-center text-brand from "style"; - border: 1px solid currentColor; - border-radius: 99px; - width: 1.25rem; - height: 1.25rem; -} diff --git a/frontend/src/metabase/components/QueryButton.jsx b/frontend/src/metabase/components/QueryButton.jsx index d3f503129d0518b57fe55a154863deb2132eeb75..dfcb11ba72ba00dea1df6fe26bce2c560b77be35 100644 --- a/frontend/src/metabase/components/QueryButton.jsx +++ b/frontend/src/metabase/components/QueryButton.jsx @@ -10,16 +10,13 @@ import Icon from "metabase/components/Icon"; const QueryButton = ({ className, text, icon, iconClass, onClick, link }) => ( <div className={className}> - <Link className={S.queryButton} onClick={onClick} to={link}> - <Icon - className={iconClass} - size={14} - {...(typeof icon === "string" ? { name: icon } : icon)} - /> - <span className={cx(S.queryButtonText, "text-brand-hover")}>{text}</span> - <span className={S.queryButtonCircle}> - <Icon size={8} name="chevronright" /> - </span> + <Link + className={cx(S.queryButton, "bg-light-hover px1 rounded")} + onClick={onClick} + to={link} + > + <Icon name={icon} /> + <span className={S.queryButtonText}>{text}</span> </Link> </div> ); diff --git a/frontend/src/metabase/components/Radio.jsx b/frontend/src/metabase/components/Radio.jsx index 9759b9766fa40554397242de3680db6c32a8d552..b1a65e4fa6046b707441c218a55182d662ae9742 100644 --- a/frontend/src/metabase/components/Radio.jsx +++ b/frontend/src/metabase/components/Radio.jsx @@ -62,6 +62,12 @@ export default class Radio extends Component { ? [UnderlinedList, UnderlinedItem] : [NormalList, NormalItem]; + if (underlined && value === undefined) { + console.warn( + "Radio can't underline selected option when no value is given.", + ); + } + return ( <List {...props} vertical={vertical} showButtons={showButtons}> {options.map((option, index) => { diff --git a/frontend/src/metabase/components/Sidebar.css b/frontend/src/metabase/components/Sidebar.css index f24b2b89e5375b8cf726ca854a60aa15964de121..5120ff0106ead48234cdbc27e4f95a3edb514726 100644 --- a/frontend/src/metabase/components/Sidebar.css +++ b/frontend/src/metabase/components/Sidebar.css @@ -1,22 +1,8 @@ -:root { - --item-padding: 45px; -} - -:local(.sidebar-padding) { - padding-left: var(--item-padding); - padding-right: var(--item-padding); -} - -:local(.sidebar-margin) { - margin-left: var(--item-padding); - margin-right: var(--item-padding); -} - :local(.sidebar) { composes: py2 from "style"; - width: 345px; + width: 30%; + max-width: 500px; background-color: var(--color-bg-light); - border-right: 1px solid var(--color-border); color: var(--color-text-medium); } @@ -24,20 +10,14 @@ text-decoration: none; } -:local(.breadcrumbs) { - composes: sidebar-padding; -} - :local(.item), :local(.sectionTitle) { composes: flex align-center from "style"; - composes: py2 from "style"; - composes: sidebar-padding; + composes: py1 mb1 from "style"; } :local(.item) { - composes: transition-color from "style"; - composes: transition-background from "style"; + composes: rounded pl2 from "style"; font-size: 1em; color: var(--color-text-light); } @@ -52,19 +32,25 @@ font-size: 16px; } -:local(.item.selected), -:local(.item.selected) :local(.icon), -:local(.sectionTitle.selected), :local(.item):hover, :local(.sectionTitle):hover { background-color: var(--color-bg-medium); color: var(--color-brand); } +:local(.item.selected), +:local(.item.selected) :local(.icon), +:local(.sectionTitle.selected) { + color: var(--color-brand); +} +:local(.item.selected), +:local(.sectionTitle.selected) { + background-color: rgba(80, 158, 227, 0.15); +} + :local(.divider) { composes: my2 from "style"; composes: border-bottom from "style"; - composes: sidebar-margin; } :local(.name) { @@ -89,5 +75,4 @@ composes: text-centered from "style"; composes: p2 my3 from "style"; composes: text-brand-light from "style"; - composes: sidebar-margin; } diff --git a/frontend/src/metabase/components/TextEditor.jsx b/frontend/src/metabase/components/TextEditor.jsx index e3be2f7f9a792521998acc390e953544593f9f04..d56025c795812aa531f2893250497ba4f028184f 100644 --- a/frontend/src/metabase/components/TextEditor.jsx +++ b/frontend/src/metabase/components/TextEditor.jsx @@ -40,6 +40,10 @@ export default class TextEditor extends Component { _update() { const element = ReactDOM.findDOMNode(this); + if (this._editor == null) { + return; // _editor is undefined when ace isn't loaded in tests + } + this._updateValue(); this._editor.getSession().setMode(this.props.mode); @@ -74,6 +78,11 @@ export default class TextEditor extends Component { }; componentDidMount() { + if (typeof ace === "undefined" || !ace || !ace.edit) { + // fail gracefully-ish if ace isn't available, e.x. in integration tests + return; + } + const element = ReactDOM.findDOMNode(this); this._editor = ace.edit(element); diff --git a/frontend/src/metabase/containers/Overworld.jsx b/frontend/src/metabase/containers/Overworld.jsx index c303777eb0d97aecbff85da31b0069109a5a1077..c5198d003d679245dd0fdb11f08b5befb08958ed 100644 --- a/frontend/src/metabase/containers/Overworld.jsx +++ b/frontend/src/metabase/containers/Overworld.jsx @@ -11,6 +11,8 @@ import ExplorePane from "metabase/components/ExplorePane"; import Tooltip from "metabase/components/Tooltip"; import MetabotLogo from "metabase/components/MetabotLogo"; import CollectionList from "metabase/components/CollectionList"; +import ModalWithTrigger from "metabase/components/ModalWithTrigger"; +import Button from "metabase/components/Button"; import Card from "metabase/components/Card"; import { Grid, GridItem } from "metabase/components/Grid"; @@ -27,8 +29,13 @@ import Database from "metabase/entities/databases"; import Search from "metabase/entities/search"; import { ROOT_COLLECTION } from "metabase/entities/collections"; +import { updateSetting } from "metabase/admin/settings/settings"; + import { getUser } from "metabase/home/selectors"; -import { getXraysEnabled } from "metabase/selectors/settings"; +import { + getShowHomepageData, + getShowHomepageXrays, +} from "metabase/selectors/settings"; const PAGE_PADDING = [1, 2, 4]; @@ -60,15 +67,24 @@ const getParitionedCollections = createSelector( query: { collection: "root" }, wrapped: true, }) -@connect((state, props) => ({ - // split out collections, pinned, and unpinned since bulk actions only apply to unpinned - ...getParitionedCollections(state, props), - user: getUser(state, props), - xraysEnabled: getXraysEnabled(state), -})) +@connect( + (state, props) => ({ + // split out collections, pinned, and unpinned since bulk actions only apply to unpinned + ...getParitionedCollections(state, props), + user: getUser(state, props), + showHomepageData: getShowHomepageData(state), + showHomepageXrays: getShowHomepageXrays(state), + }), + { updateSetting }, +) class Overworld extends React.Component { render() { - const { user, xraysEnabled } = this.props; + const { + user, + showHomepageData, + showHomepageXrays, + updateSetting, + } = this.props; return ( <Box> <Flex px={PAGE_PADDING} pt={3} pb={1} align="center"> @@ -85,7 +101,7 @@ class Overworld extends React.Component { d => d.model === "dashboard" && d.collection_position != null, ); - if (xraysEnabled && !pinnedDashboards.length > 0) { + if (showHomepageXrays && !pinnedDashboards.length > 0) { return ( <CandidateListLoader> {({ candidates, sampleCandidates, isSample }) => { @@ -96,12 +112,48 @@ class Overworld extends React.Component { return ( <Box mx={PAGE_PADDING} mt={[1, 3]}> {user.is_superuser && <AdminPinMessage />} - <Box mt={[1, 3]}> - <Flex align="center"> - <SectionHeading> + <Box + mt={[1, 3]} + className="hover-parent hover--visibility" + > + <SectionHeading> + <Flex align="center"> {t`Try these x-rays based on your data.`} - </SectionHeading> - </Flex> + {user.is_superuser && ( + <ModalWithTrigger + triggerElement={ + <Tooltip + tooltip={t`Remove these suggestions`} + > + <Icon + ml="2" + name="close" + className="hover-child text-brand-hover" + /> + </Tooltip> + } + title={t`Remove these suggestions?`} + footer={ + <Button + danger + onClick={onClose => { + updateSetting({ + key: "show-homepage-xrays", + value: false, + }); + }} + > + {t`Remove`} + </Button> + } + > + <Box> + {t`These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables.`} + </Box> + </ModalWithTrigger> + )} + </Flex> + </SectionHeading> <Box> <ExplorePane candidates={candidates} @@ -158,7 +210,6 @@ class Overworld extends React.Component { ); }} </CollectionItemsLoader> - <Box px={PAGE_PADDING} my={3}> <SectionHeading>{ROOT_COLLECTION.name}</SectionHeading> <Box p={[1, 2]} mt={2} bg={color("bg-medium")}> @@ -202,64 +253,104 @@ class Overworld extends React.Component { </Link> </Box> </Box> - - <Database.ListLoader> - {({ databases }) => { - if (databases.length === 0) { - return null; - } - return ( - <Box pt={2} px={PAGE_PADDING}> - <SectionHeading>{t`Our data`}</SectionHeading> - <Box mb={4}> - <Grid> - {databases.map(database => ( - <GridItem w={[1, 1 / 3]} key={database.id}> - <Link - to={`browse/${database.id}`} - hover={{ color: color("brand") }} - data-metabase-event={`Homepage;Browse DB Clicked; DB Type ${database.engine}`} + {showHomepageData && ( + <Database.ListLoader> + {({ databases }) => { + if (databases.length === 0) { + return null; + } + return ( + <Box + pt={2} + px={PAGE_PADDING} + className="hover-parent hover--visibility" + > + <SectionHeading> + <Flex align="center"> + {t`Our data`} + {user.is_superuser && ( + <ModalWithTrigger + triggerElement={ + <Tooltip tooltip={t`Hide this section`}> + <Icon + ml="4" + name="close" + className="block hover-child text-brand-hover" + /> + </Tooltip> + } + title={t`Remove this section?`} + footer={ + <Button + danger + onClick={onClose => { + updateSetting({ + key: "show-homepage-data", + value: false, + }); + }} + > + {t`Remove`} + </Button> + } > - <Box - p={3} - bg={color("bg-medium")} - className="hover-parent hover--visibility" + <Box> + {t`"Our Data" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation.`} + </Box> + </ModalWithTrigger> + )} + </Flex> + </SectionHeading> + <Box mb={4}> + <Grid> + {databases.map(database => ( + <GridItem w={[1, 1 / 3]} key={database.id}> + <Link + to={`browse/${database.id}`} + hover={{ color: color("brand") }} + data-metabase-event={`Homepage;Browse DB Clicked; DB Type ${database.engine}`} > - <Icon - name="database" - color={color("database")} - mb={3} - size={28} - /> - <Flex align="center"> - <h3 className="text-wrap">{database.name}</h3> - <Box ml="auto" mr={1} className="hover-child"> - <Flex align="center"> - <Tooltip - tooltip={t`Learn about this database`} - > - <Link - to={`reference/databases/${database.id}`} + <Box + p={3} + bg={color("bg-medium")} + className="hover-parent hover--visibility" + > + <Icon + name="database" + color={color("database")} + mb={3} + size={28} + /> + <Flex align="center"> + <h3 className="text-wrap">{database.name}</h3> + <Box ml="auto" mr={1} className="hover-child"> + <Flex align="center"> + <Tooltip + tooltip={t`Learn about this database`} > - <Icon - name="reference" - color={color("text-light")} - /> - </Link> - </Tooltip> - </Flex> - </Box> - </Flex> - </Box> - </Link> - </GridItem> - ))} - </Grid> + <Link + to={`reference/databases/${database.id}`} + > + <Icon + name="reference" + color={color("text-light")} + /> + </Link> + </Tooltip> + </Flex> + </Box> + </Flex> + </Box> + </Link> + </GridItem> + ))} + </Grid> + </Box> </Box> - </Box> - ); - }} - </Database.ListLoader> + ); + }} + </Database.ListLoader> + )} </Box> ); } diff --git a/frontend/src/metabase/css/core/flex.css b/frontend/src/metabase/css/core/flex.css index bc4db12f488eedf44958a6bee6fd921ee396fa32..ac7d0c09b1deea4caaba673d9ead49c2ccd3286a 100644 --- a/frontend/src/metabase/css/core/flex.css +++ b/frontend/src/metabase/css/core/flex.css @@ -20,6 +20,16 @@ flex: 0.5; } +.flex-3-quarters, +:local(.flex-3-quarters) { + flex: 0.75; +} + +.flex-1-quarter, +:local(.flex-1-quarter) { + flex: 0.25; +} + .flex-no-shrink, :local(.flex-no-shrink) { flex-shrink: 0; diff --git a/frontend/src/metabase/css/query_builder.css b/frontend/src/metabase/css/query_builder.css index 2e870313a0c21a26e9aa3a47e48443dbebf44eed..8e7c769f5240b5acca85c5cbea91707417386661 100644 --- a/frontend/src/metabase/css/query_builder.css +++ b/frontend/src/metabase/css/query_builder.css @@ -489,6 +489,24 @@ border-right: none; } +.NativeQueryEditorDragHandleWrapper { + position: absolute; + height: 8px; + width: 100%; + bottom: -4px; + cursor: row-resize; + display: flex; + justify-content: center; + align-items: center; +} + +.NativeQueryEditorDragHandle { + background: color(var(--color-border) blackness(+ 3%)); + width: 100px; + height: 5px; + border-radius: 4px; +} + /* VISUALIZATION SETTINGS */ .VisualizationSettings .GuiBuilder-section { @@ -674,3 +692,23 @@ .ParameterValuePickerNoPopover input::-webkit-input-placeholder { color: var(--color-text-medium); } + +text.value-label-outline { + font-weight: 900; + stroke-width: 4px; + stroke: var(--color-text-white); +} + +text.value-label { + fill: var(--color-text-dark); + font-weight: 900; +} + +text.value-label-outline, +text.value-label { + pointer-events: none; +} + +.Dashboard--night text.value-label-outline { + stroke: var(--night-mode-card); +} diff --git a/frontend/src/metabase/dashboard/components/DashCard.jsx b/frontend/src/metabase/dashboard/components/DashCard.jsx index 33bbe4cdd8b659478965f3c7c09fa1ebc7f7b257..ce738bf84b1b99ebfd2519ed324f2c07db07e29d 100644 --- a/frontend/src/metabase/dashboard/components/DashCard.jsx +++ b/frontend/src/metabase/dashboard/components/DashCard.jsx @@ -242,6 +242,7 @@ const ChartSettingsButton = ({ series, onReplaceAllVisualizationSettings }) => ( triggerClasses="text-light text-medium-hover cursor-pointer flex align-center flex-no-shrink mr1 drag-disabled" > <ChartSettingsWithState + className="spread" series={series} onChange={onReplaceAllVisualizationSettings} isDashboard diff --git a/frontend/src/metabase/dashboard/components/DashboardHeader.jsx b/frontend/src/metabase/dashboard/components/DashboardHeader.jsx index 16de5e8dae82acd463f887d81e5cb6ed7d906e8c..da14d314231bafeb4d0a8a7d0b8d6ef842141108 100644 --- a/frontend/src/metabase/dashboard/components/DashboardHeader.jsx +++ b/frontend/src/metabase/dashboard/components/DashboardHeader.jsx @@ -173,7 +173,7 @@ export default class DashboardHeader extends Component { key="archive" ref="archiveDashboardModal" triggerClasses="Button Button--small" - triggerElement="Archive" + triggerElement={t`Archive`} > <ArchiveDashboardModal onArchive={() => this.onArchive(this.props.dashboard)} diff --git a/frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx b/frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx index 024bda39f7fa12bedd74ffc92c8840cf1a82a406..d3f553f3d3e02c1847090b0a670e6a02223bec52 100644 --- a/frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx +++ b/frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx @@ -71,6 +71,7 @@ export default class DashboardEmbedWidget extends Component { className={className} resource={dashboard} resourceParameters={dashboard && dashboard.parameters} + resourceType="dashboard" onCreatePublicLink={() => createPublicLink(dashboard)} onDisablePublicLink={() => deletePublicLink(dashboard)} onUpdateEnableEmbedding={enableEmbedding => diff --git a/frontend/src/metabase/entities/collections.js b/frontend/src/metabase/entities/collections.js index b2d8cd3457c8e8815ee8ae7a9627a8c692212820..7e8d08aab238d109c406c1af5923e3ce7b825e10 100644 --- a/frontend/src/metabase/entities/collections.js +++ b/frontend/src/metabase/entities/collections.js @@ -92,7 +92,7 @@ const Collections = createEntity({ { name: "name", title: t`Name`, - placeholder: "My new fantastic collection", + placeholder: t`My new fantastic collection`, validate: name => (!name && t`Name is required`) || (name && name.length > 100 && t`Name must be 100 characters or less`), @@ -101,7 +101,7 @@ const Collections = createEntity({ name: "description", title: t`Description`, type: "text", - placeholder: "It's optional but oh, so helpful", + placeholder: t`It's optional but oh, so helpful`, normalize: description => description || null, // expected to be nil or non-empty string }, { diff --git a/frontend/src/metabase/icon_paths.js b/frontend/src/metabase/icon_paths.js index 04a75944f003cd45d443459b9285fae32e56c988..12cd04099783ce6d85c20f27802e9987413ed8e0 100644 --- a/frontend/src/metabase/icon_paths.js +++ b/frontend/src/metabase/icon_paths.js @@ -120,8 +120,11 @@ export const ICON_PATHS = { "M3.033 3.791v22.211H31.09c.403 0 .882.872.882 1.59 0 .717-.48 1.408-.882 1.408H0V3.791c0-.403.875-.914 1.487-.914.612 0 1.546.511 1.546.914zm3.804 17.912C5.714 21.495 5 20.318 5 19.355c0-.963.831-2.296 1.837-2.296 2.093 0 2.965-1.207 4.204-5.242l.148-.482C12.798 6.077 14.18 3 17.968 3c3.792 0 5.17 3.08 6.765 8.343l.145.478c1.227 4.034 2.093 5.238 4.181 5.238 1.006 0 1.875 1.29 1.875 2.296 0 1.007-.898 2.184-1.875 2.348-3.656.612-6.004-2.364-7.665-7.821l-.146-.482c-1.14-3.76-1.8-6.754-3.28-6.754-1.483 0-2.147 2.995-3.297 6.754l-.148.486c-1.675 5.454-3.93 8.514-7.686 7.817z", document: "M29,10.1052632 L29,28.8325291 C29,30.581875 27.5842615,32 25.8337327,32 L7.16626728,32 C5.41758615,32 4,30.5837102 4,28.8441405 L4,3.15585953 C4,1.41292644 5.42339685,9.39605581e-15 7.15970573,8.42009882e-15 L20.713352,8.01767853e-16 L20.713352,8.42105263 L22.3846872,8.42105263 L22.3846872,0.310375032 L28.7849894,8.42105263 L20.713352,8.42105263 L20.713352,10.1052632 L29,10.1052632 Z M7.3426704,12.8000006 L25.7273576,12.8000006 L25.7273576,14.4842112 L7.3426704,14.4842112 L7.3426704,12.8000006 Z M7.3426704,17.3473687 L25.7273576,17.3473687 L25.7273576,19.0315793 L7.3426704,19.0315793 L7.3426704,17.3473687 Z M7.3426704,21.8947352 L25.7273576,21.8947352 L25.7273576,23.5789458 L7.3426704,23.5789458 L7.3426704,21.8947352 Z M7.43137255,26.2736849 L16.535014,26.2736849 L16.535014,27.9578954 L7.43137255,27.9578954 L7.43137255,26.2736849 Z", - download: - "M19.3636364,15.0588235 L19.3636364,0 L13.6363636,0 L13.6363636,15.0588235 L7.90909091,15.0588235 L16.5,24.9411765 L25.0909091,15.0588235 L19.3636364,15.0588235 Z M27,26.3529412 L27,32 L6,32 L6,26.3529412 L27,26.3529412 Z", + download: { + path: + "M26 0c7.264 0 13.323 5.164 14.704 12.022C47.004 12.384 52 17.609 52 24c0 6.627-5.373 12-12 12H12C5.373 36 0 30.627 0 24c0-6.391 4.997-11.616 11.297-11.98C12.677 5.164 18.736 0 26 0zm0 6a3 3 0 00-3 3v13.649l-5.232-5.511-.13-.128a2.409 2.409 0 00-3.406.128c-.976 1.028-.976 2.696 0 3.724l10 10.533.13.129a2.409 2.409 0 003.406-.129l10-10.533.122-.138c.852-1.034.812-2.602-.122-3.586l-.13-.128a2.409 2.409 0 00-3.406.128L29 22.649V9a3 3 0 00-3-3z", + attrs: { viewBox: "0 0 52 32" }, + }, edit_document: "M19.27 20.255l-5.642 2.173 1.75-6.085L28.108 3.45 32 7.363 19.27 20.255zM20.442 6.9l-2.044-2.049H4.79v23.29h18.711v-6.577l4.787-4.83V31a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h18.024a1 1 0 0 1 .711.297L23.85 3.45 20.442 6.9z", ellipsis: { @@ -242,8 +245,6 @@ export const ICON_PATHS = { "M36 0a6 6 0 016 6v20a6 6 0 01-6 6H6a6 6 0 01-6-6V6a6 6 0 016-6h30zm-3.292 5.473L21 15.38 9.292 5.473a2 2 0 10-2.584 3.054l13 11a2 2 0 002.584 0l13-11a2 2 0 10-2.584-3.054z", attrs: { viewBox: "0 0 42 32" }, }, - mine: - "M28.4907419,50 C25.5584999,53.6578499 21.0527692,56 16,56 C10.9472308,56 6.44150015,53.6578499 3.50925809,50 L28.4907419,50 Z M29.8594823,31.9999955 C27.0930063,27.217587 21.922257,24 16,24 C10.077743,24 4.9069937,27.217587 2.1405177,31.9999955 L29.8594849,32 Z M16,21 C19.8659932,21 23,17.1944204 23,12.5 C23,7.80557963 22,3 16,3 C10,3 9,7.80557963 9,12.5 C9,17.1944204 12.1340068,21 16,21 Z", moon: "M11.6291702,1.84239429e-11 C19.1234093,1.22958025 24.8413559,7.73631246 24.8413559,15.5785426 C24.8413559,24.2977683 17.7730269,31.3660972 9.05380131,31.3660972 C7.28632096,31.3660972 5.58667863,31.0756481 4,30.5398754 C11.5007933,28.2096945 16.9475786,21.2145715 16.9475786,12.9472835 C16.9475786,7.90001143 14.9174312,3.32690564 11.6291702,1.70246039e-11 L11.6291702,1.84239429e-11 Z", move: diff --git a/frontend/src/metabase/lib/browser.js b/frontend/src/metabase/lib/browser.js index 24ea8d99d61a208bb109c584cd5f4bf79ce62825..11b5e5a149677029f93c558c84b0bcac7855ef26 100644 --- a/frontend/src/metabase/lib/browser.js +++ b/frontend/src/metabase/lib/browser.js @@ -26,3 +26,8 @@ export function updateQueryString(location, optionsUpdater) { search: queryString ? `?${queryString}` : null, }; } + +export function isMac() { + const { platform = "" } = navigator; + return Boolean(platform.match(/^Mac/)); +} diff --git a/frontend/src/metabase/lib/formatting/date.js b/frontend/src/metabase/lib/formatting/date.js index 009863ed4f005e7e70bfe86c6d312b018e89d645..a57995e92181449d06a4e31364da3be774d5979f 100644 --- a/frontend/src/metabase/lib/formatting/date.js +++ b/frontend/src/metabase/lib/formatting/date.js @@ -13,7 +13,7 @@ export type DateStyle = | "D MMMM, YYYY" | "dddd, MMMM D, YYYY"; -export type TimeStyle = "h:mm A" | "k:mm"; +export type TimeStyle = "h:mm A" | "k:mm" | "h A"; export type MomentFormat = string; // moment.js format strings export type DateFormat = MomentFormat; @@ -25,7 +25,6 @@ const DEFAULT_DATE_FORMATS: { [unit: DatetimeUnit]: MomentFormat } = { year: "YYYY", quarter: "[Q]Q - YYYY", "minute-of-hour": "m", - "hour-of-day": "h A", "day-of-week": "dddd", "day-of-month": "D", "day-of-year": "DDD", @@ -86,7 +85,12 @@ export function getDateFormatFromStyle( return replaceSeparators(style); } -const UNITS_WITH_HOUR: DatetimeUnit[] = ["default", "minute", "hour"]; +const UNITS_WITH_HOUR: DatetimeUnit[] = [ + "default", + "minute", + "hour", + "hour-of-day", +]; const UNITS_WITH_DAY: DatetimeUnit[] = [ "default", "minute", diff --git a/frontend/src/metabase/lib/performance.js b/frontend/src/metabase/lib/performance.js new file mode 100644 index 0000000000000000000000000000000000000000..88766fad52898b66d731969ebd25c3e60be0c6a0 --- /dev/null +++ b/frontend/src/metabase/lib/performance.js @@ -0,0 +1,14 @@ +// startTimer starts a timer and returns a callback function. +// Example usage: +// const t = startTimer() +// await vSlow() +// t(duration => console.log(`That took ${duration}ms!`)) +// The function passed to `t` won't get called if `performance` isn't available. +export function startTimer() { + if (typeof performance !== "object") { + // if the current environment doesn't have performance return a no-op function + return () => {}; + } + const start = performance.now(); + return f => f(performance.now() - start); +} diff --git a/frontend/src/metabase/lib/schema_metadata.js b/frontend/src/metabase/lib/schema_metadata.js index 82a3c17f1671da737838a3d8bde5f6c7e32af9bf..20f93742f6aad52bcd56af56cef19da2928acd9b 100644 --- a/frontend/src/metabase/lib/schema_metadata.js +++ b/frontend/src/metabase/lib/schema_metadata.js @@ -14,10 +14,11 @@ export const NUMBER = "NUMBER"; export const STRING = "STRING"; export const STRING_LIKE = "STRING_LIKE"; export const BOOLEAN = "BOOLEAN"; -export const DATE_TIME = "DATE_TIME"; +export const TEMPORAL = "TEMPORAL"; export const LOCATION = "LOCATION"; export const COORDINATE = "COORDINATE"; export const FOREIGN_KEY = "FOREIGN_KEY"; +export const PRIMARY_KEY = "PRIMARY_KEY"; // other types used for various purporses export const ENTITY = "ENTITY"; @@ -30,9 +31,9 @@ export const UNKNOWN = "UNKNOWN"; // define various type hierarchies // NOTE: be sure not to create cycles using the "other" types const TYPES = { - [DATE_TIME]: { - base: [TYPE.DateTime], - special: [TYPE.DateTime], + [TEMPORAL]: { + base: [TYPE.Temporal], + special: [TYPE.Temporal], }, [NUMBER]: { base: [TYPE.Number], @@ -60,9 +61,12 @@ const TYPES = { [FOREIGN_KEY]: { special: [TYPE.FK], }, + [PRIMARY_KEY]: { + special: [TYPE.PK], + }, [SUMMABLE]: { include: [NUMBER], - exclude: [ENTITY, LOCATION, DATE_TIME], + exclude: [ENTITY, LOCATION, TEMPORAL], }, [CATEGORY]: { base: [TYPE.Boolean], @@ -71,7 +75,7 @@ const TYPES = { }, // NOTE: this is defunct right now. see definition of isDimension below. [DIMENSION]: { - include: [DATE_TIME, CATEGORY, ENTITY], + include: [TEMPORAL, CATEGORY, ENTITY], }, }; @@ -115,10 +119,11 @@ export function isFieldType(type, field) { export function getFieldType(field) { // try more specific types first, then more generic types for (const type of [ - DATE_TIME, + TEMPORAL, LOCATION, COORDINATE, FOREIGN_KEY, + PRIMARY_KEY, NUMBER, STRING, STRING_LIKE, @@ -130,7 +135,7 @@ export function getFieldType(field) { } } -export const isDate = isFieldType.bind(null, DATE_TIME); +export const isDate = isFieldType.bind(null, TEMPORAL); export const isNumeric = isFieldType.bind(null, NUMBER); export const isBoolean = isFieldType.bind(null, BOOLEAN); export const isString = isFieldType.bind(null, STRING); @@ -385,7 +390,7 @@ const FILTER_OPERATORS_BY_TYPE_ORDERED = { { name: "is-null", verboseName: t`Is empty` }, { name: "not-null", verboseName: t`Not empty` }, ], - [DATE_TIME]: [ + [TEMPORAL]: [ { name: "=", verboseName: t`Is` }, { name: "<", verboseName: t`Before` }, { name: ">", verboseName: t`After` }, @@ -410,6 +415,7 @@ const FILTER_OPERATORS_BY_TYPE_ORDERED = { { name: "not-null", verboseName: t`Not empty` }, ], [FOREIGN_KEY]: DEFAULT_FILTER_OPERATORS, + [PRIMARY_KEY]: DEFAULT_FILTER_OPERATORS, [UNKNOWN]: DEFAULT_FILTER_OPERATORS, }; @@ -634,7 +640,7 @@ export function foreignKeyCountsByOriginTable(fks) { } export const ICON_MAPPING = { - [DATE_TIME]: "calendar", + [TEMPORAL]: "calendar", [LOCATION]: "location", [COORDINATE]: "location", [STRING]: "string", diff --git a/frontend/src/metabase/modes/components/drill/QuickFilterDrill.jsx b/frontend/src/metabase/modes/components/drill/QuickFilterDrill.jsx index d8500807440152eff610569b8ef93b9aa624027b..d8ac19131711967989174b1ac5cb5879e427e6b2 100644 --- a/frontend/src/metabase/modes/components/drill/QuickFilterDrill.jsx +++ b/frontend/src/metabase/modes/components/drill/QuickFilterDrill.jsx @@ -14,7 +14,7 @@ import type { function getFiltersForColumn(column) { if ( isa(column.base_type, TYPE.Number) || - isa(column.base_type, TYPE.DateTime) + isa(column.base_type, TYPE.Temporal) ) { return [ { name: "<", operator: "<" }, diff --git a/frontend/src/metabase/modes/lib/modes.js b/frontend/src/metabase/modes/lib/modes.js index ca861d0d5c46fe3d83caf88c20bc508284381fb9..9650d018a87883c78f8f8ef1b86b3ef7e43ed788 100644 --- a/frontend/src/metabase/modes/lib/modes.js +++ b/frontend/src/metabase/modes/lib/modes.js @@ -33,21 +33,23 @@ export function getMode(question: ?Question): ?QueryMode { const filters = query.filters(); if (aggregations.length === 0 && breakouts.length === 0) { - const isPKFilter = filter => { + const isPKFilterWithOneID = filter => { if (filter.isFieldFilter()) { const field = filter.field(); if ( field && field.isPK() && field.table && - field.table.id === query.sourceTableId() + field.table.id === query.sourceTableId() && + filter.operatorName() === "=" && + filter.arguments().length === 1 ) { return true; } } return false; }; - if (filters.some(isPKFilter)) { + if (filters.some(isPKFilterWithOneID)) { return ObjectMode; } else { return SegmentMode; diff --git a/frontend/src/metabase/nav/containers/Navbar.jsx b/frontend/src/metabase/nav/containers/Navbar.jsx index b04a1d7179c88eff4c1feb7a36dbbf3c06c0a23f..7a7c8ab366026a508b6ecde50f27ba14147cfd80 100644 --- a/frontend/src/metabase/nav/containers/Navbar.jsx +++ b/frontend/src/metabase/nav/containers/Navbar.jsx @@ -227,31 +227,37 @@ export default class Navbar extends Component { name={t`Settings`} path="/admin/settings" currentPath={this.props.path} + key="admin-nav-settings" /> <AdminNavItem name={t`People`} path="/admin/people" currentPath={this.props.path} + key="admin-nav-people" /> <AdminNavItem name={t`Data Model`} path="/admin/datamodel" currentPath={this.props.path} + key="admin-nav-datamodel" /> <AdminNavItem name={t`Databases`} path="/admin/databases" currentPath={this.props.path} + key="admin-nav-databases" /> <AdminNavItem name={t`Permissions`} path="/admin/permissions" currentPath={this.props.path} + key="admin-nav-permissions" /> <AdminNavItem name={t`Troubleshooting`} path="/admin/troubleshooting" currentPath={this.props.path} + key="admin-nav-troubleshooting" /> </ul> diff --git a/frontend/src/metabase/query_builder/actions.js b/frontend/src/metabase/query_builder/actions.js index 80bb7730b94c206a9d64712995518321da97b150..66027a73f8dae548e4e346cf99ca80e2e2f8f428 100644 --- a/frontend/src/metabase/query_builder/actions.js +++ b/frontend/src/metabase/query_builder/actions.js @@ -14,6 +14,7 @@ import { push, replace } from "react-router-redux"; import { setErrorPage } from "metabase/redux/app"; import MetabaseAnalytics from "metabase/lib/analytics"; +import { startTimer } from "metabase/lib/performance"; import { loadCard, startNewCard, @@ -53,6 +54,7 @@ import querystring from "querystring"; import StructuredQuery from "metabase-lib/lib/queries/StructuredQuery"; import NativeQuery from "metabase-lib/lib/queries/NativeQuery"; +import { getSensibleDisplays } from "metabase/visualizations"; import { getCardAfterVisualizationClick } from "metabase/visualizations/lib/utils"; import { getPersistableDefaultSettingsForSeries } from "metabase/visualizations/lib/settings/visualization"; @@ -462,6 +464,14 @@ export const initializeQB = (location, params) => { } } + let question = card && new Question(card, getMetadata(getState())); + if (params.cardId) { + // loading a saved question prevents auto-viz selection + question = question && question.setSelectedDisplay(question.display()); + } + + card = question && question.card(); + // Update the question to Redux state together with the initial state of UI controls dispatch.action(INITIALIZE_QB, { card, @@ -469,8 +479,6 @@ export const initializeQB = (location, params) => { uiControls, }); - const question = card && new Question(card, getMetadata(getState())); - // if we have loaded up a card that we can run then lets kick that off as well // but don't bother for "notebook" mode if (question && uiControls.queryBuilderMode !== "notebook") { @@ -624,8 +632,12 @@ export const updateTemplateTag = createThunkAction( // using updateIn instead of assocIn due to not preserving order of keys return updateIn( updatedCard, - ["dataset_query", "native", "template-tags"], - tags => ({ ...tags, [templateTag.name]: templateTag }), + ["dataset_query", "native", "template-tags", templateTag.name], + tag => + // when we switch type, null out any default + tag.type !== templateTag.type + ? { ...templateTag, default: null } + : templateTag, ); }; }, @@ -841,7 +853,15 @@ export const apiCreateQuestion = question => { createdQuestion.query().datasetQuery().type, ); - dispatch.action(API_CREATE_QUESTION, createdQuestion.card()); + // Saving a card, locks in the current display as though it had been + // selected in the UI. We also copy over `sensibleDisplays` since those were + // not persisted onto `createdQuestion`. + const card = createdQuestion + .setSensibleDisplays(question.sensibleDisplays()) + .setSelectedDisplay(question.display()) + .card(); + + dispatch.action(API_CREATE_QUESTION, card); }; }; @@ -927,23 +947,27 @@ export const runQuestionQuery = ({ const startTime = new Date(); const cancelQueryDeferred = defer(); + const queryTimer = startTimer(); + question .apiGetResults({ cancelDeferred: cancelQueryDeferred, ignoreCache: ignoreCache, isDirty: cardIsDirty, }) - .then(queryResults => - dispatch(queryCompleted(question.card(), queryResults)), - ) + .then(queryResults => { + queryTimer(duration => + MetabaseAnalytics.trackEvent( + "QueryBuilder", + "Run Query", + question.query().datasetQuery().type, + duration, + ), + ); + return dispatch(queryCompleted(question, queryResults)); + }) .catch(error => dispatch(queryErrored(startTime, error))); - MetabaseAnalytics.trackEvent( - "QueryBuilder", - "Run Query", - question.query().datasetQuery().type, - ); - // TODO Move this out from Redux action asap // HACK: prevent SQL editor from losing focus try { @@ -957,50 +981,16 @@ export const runQuestionQuery = ({ export const CLEAR_QUERY_RESULT = "metabase/query_builder/CLEAR_QUERY_RESULT"; export const clearQueryResult = createAction(CLEAR_QUERY_RESULT); -const getDisplayTypeForCard = (card, queryResults) => { - // TODO Atte Keinänen 6/1/17: Make a holistic decision based on all queryResults, not just one - // This method seems to has been a candidate for a rewrite anyway - const queryResult = queryResults[0]; - - let cardDisplay = card.display; - - // try a little logic to pick a smart display for the data - // TODO: less hard-coded rules for picking chart type - const isScalarVisualization = - card.display === "scalar" || - card.display === "progress" || - card.display === "gauge"; - if ( - !isScalarVisualization && - queryResult.data.rows && - queryResult.data.rows.length === 1 && - queryResult.data.cols.length === 1 - ) { - // if we have a 1x1 data result then this should always be viewed as a scalar - cardDisplay = "scalar"; - } else if ( - isScalarVisualization && - queryResult.data.rows && - (queryResult.data.rows.length > 1 || queryResult.data.cols.length > 1) - ) { - // any time we were a scalar and now have more than 1x1 data switch to table view - cardDisplay = "table"; - } else if (!card.display) { - // if our query aggregation is "rows" then ALWAYS set the display to "table" - cardDisplay = "table"; - } - - return cardDisplay; -}; - export const QUERY_COMPLETED = "metabase/qb/QUERY_COMPLETED"; -export const queryCompleted = (card, queryResults) => { +export const queryCompleted = (question, queryResults) => { return async (dispatch, getState) => { - dispatch.action(QUERY_COMPLETED, { - card, - cardDisplay: getDisplayTypeForCard(card, queryResults), - queryResults, - }); + const [{ data }] = queryResults; + const card = question + .setSensibleDisplays(getSensibleDisplays(data)) + .setDefaultDisplay() + .switchTableScalar(data) + .card(); + dispatch.action(QUERY_COMPLETED, { card, queryResults }); }; }; diff --git a/frontend/src/metabase/query_builder/components/DataSelector.jsx b/frontend/src/metabase/query_builder/components/DataSelector.jsx index 2343d97f83c5c4b1c946e8c94bc6c07012a20ec3..bcb9dd7a7f6fc4c1371aa64b11f445577e47f022 100644 --- a/frontend/src/metabase/query_builder/components/DataSelector.jsx +++ b/frontend/src/metabase/query_builder/components/DataSelector.jsx @@ -246,15 +246,17 @@ export default class DataSelector extends Component { }; componentWillMount() { + this.hydrateActiveStep(); + } + + componentDidMount() { const useOnlyAvailableDatabase = !this.props.selectedDatabaseId && this.props.databases.length === 1 && !this.props.segments; if (useOnlyAvailableDatabase) { - setTimeout(() => this.onChangeDatabase(0, true)); + this.onChangeDatabase(0, true); } - - this.hydrateActiveStep(); } componentWillReceiveProps(nextProps) { diff --git a/frontend/src/metabase/query_builder/components/NativeQueryEditor.css b/frontend/src/metabase/query_builder/components/NativeQueryEditor.css index 7b533963b892ca764bc8a36c4ac45b48d78dca2f..55efb7ed17997a710d27feec2444bcab99afc3d4 100644 --- a/frontend/src/metabase/query_builder/components/NativeQueryEditor.css +++ b/frontend/src/metabase/query_builder/components/NativeQueryEditor.css @@ -47,7 +47,8 @@ .NativeQueryEditor .ace_editor .ace_gutter { background-color: var(--color-bg-light); - border-right: 1px solid var(--color-border); - padding-left: 5px; - padding-right: 5px; +} + +.NativeQueryEditor .ace_editor .ace_content { + padding-left: 7px; } diff --git a/frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx b/frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx index 0463fa4429a370546c8649c68789be78ec1cfebe..18b3755e0edf2161f1ae3767a29ce5bd4cab0f0a 100644 --- a/frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx +++ b/frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx @@ -3,6 +3,7 @@ import React, { Component } from "react"; import ReactDOM from "react-dom"; +import cx from "classnames"; import "./NativeQueryEditor.css"; @@ -18,6 +19,7 @@ import "ace/mode-pgsql"; import "ace/mode-sqlserver"; import "ace/mode-json"; +import "ace/snippets/text"; import "ace/snippets/sql"; import "ace/snippets/mysql"; import "ace/snippets/pgsql"; @@ -25,23 +27,26 @@ import "ace/snippets/sqlserver"; import "ace/snippets/json"; import { t } from "ttag"; +import { isMac } from "metabase/lib/browser"; +import { delay } from "metabase/lib/promise"; import { SQLBehaviour } from "metabase/lib/ace/sql_behaviour"; import _ from "underscore"; import Icon from "metabase/components/Icon"; +import ExplicitSize from "metabase/components/ExplicitSize"; import Parameters from "metabase/parameters/components/Parameters"; const SCROLL_MARGIN = 8; const LINE_HEIGHT = 16; -const MIN_HEIGHT_LINES = 1; -const MAX_AUTO_SIZE_LINES = 12; +const MIN_HEIGHT_LINES = 10; const ICON_SIZE = 18; const getEditorLineHeight = lines => lines * LINE_HEIGHT + 2 * SCROLL_MARGIN; +const getLinesForHeight = height => (height - 2 * SCROLL_MARGIN) / LINE_HEIGHT; import Question from "metabase-lib/lib/Question"; import NativeQuery from "metabase-lib/lib/queries/NativeQuery"; @@ -57,6 +62,7 @@ import { SchemaAndTableDataSelector, } from "metabase/query_builder/components/DataSelector"; +import RunButtonWithTooltip from "./RunButtonWithTooltip"; import DataReferenceButton from "./view/DataReferenceButton"; import NativeVariablesButton from "./view/NativeVariablesButton"; @@ -80,12 +86,22 @@ type Props = { isNativeEditorOpen: boolean, setIsNativeEditorOpen: (isOpen: boolean) => void, + + isRunnable: boolean, + isRunning: boolean, + isResultDirty: boolean, + isPreviewing: boolean, + isNativeEditorOpen: boolean, + + viewHeight: number, + width: number, }; type State = { initialHeight: number, - firstRun: boolean, + hasTextSelected: boolean, }; +@ExplicitSize() export default class NativeQueryEditor extends Component { props: Props; state: State; @@ -96,14 +112,17 @@ export default class NativeQueryEditor extends Component { constructor(props: Props) { super(props); - const lines = Math.min( - MAX_AUTO_SIZE_LINES, - (props.query && props.query.lineCount()) || MAX_AUTO_SIZE_LINES, + const lines = Math.max( + Math.min( + this.maxAutoSizeLines(), + (props.query && props.query.lineCount()) || this.maxAutoSizeLines(), + ), + MIN_HEIGHT_LINES, ); this.state = { initialHeight: getEditorLineHeight(lines), - firstRun: true, + hasTextSelected: false, }; // Ace sometimes fires mutliple "change" events in rapid succession @@ -112,6 +131,16 @@ export default class NativeQueryEditor extends Component { this.onChange = _.debounce(this.onChange.bind(this), 1); } + maxAutoSizeLines() { + // This determines the max height that the editor *automatically* takes. + // - On load, long queries will be capped at this length + // - When loading an empty query, this is the height + // - When the editor grows during typing this is the max height + const FRACTION_OF_TOTAL_VIEW_HEIGHT = 0.4; + const pixelHeight = this.props.viewHeight * FRACTION_OF_TOTAL_VIEW_HEIGHT; + return Math.ceil(getLinesForHeight(pixelHeight)); + } + static defaultProps = { isOpen: false, }; @@ -126,7 +155,7 @@ export default class NativeQueryEditor extends Component { document.addEventListener("keydown", this.handleKeyDown); } - componentDidUpdate() { + componentDidUpdate(prevProps: Props) { const { query } = this.props; if (!query || !this._editor) { return; @@ -158,12 +187,9 @@ export default class NativeQueryEditor extends Component { this._editor.getSession().$mode.$behaviour = new SQLBehaviour(); } } - } - componentWillReceiveProps(nextProps: Props) { - if (this.state.firstRun && nextProps.isRunning && !this.props.isRunning) { - this.setState({ firstRun: false }); - this._updateSize(true); + if (this.props.width !== prevProps.width && this._editor) { + this._editor.resize(); } } @@ -171,28 +197,55 @@ export default class NativeQueryEditor extends Component { document.removeEventListener("keydown", this.handleKeyDown); } + // Debouncing this avoids race condition between checking the current version + // of state and asynchronously setting state. We could pass a function to + // setState, but then we'd risk calling setState too much as this event is + // triggered multiple times per user-perceived selection. + handleSelectionChange = _.debounce(() => { + const hasTextSelected = Boolean(this._editor.getSelectedText()); + if (this.state.hasTextSelected !== hasTextSelected) { + this.setState({ hasTextSelected }); + } + }, 100); + handleKeyDown = (e: KeyboardEvent) => { + const ENTER_KEY = 13; + if (e.keyCode === ENTER_KEY && (e.metaKey || e.ctrlKey)) { + this.runQuery(); + } + }; + + runQuery = () => { const { query, runQuestionQuery } = this.props; - const ENTER_KEY = 13; - if (e.keyCode === ENTER_KEY && (e.metaKey || e.ctrlKey) && query.canRun()) { - const { query } = this.props; - if (e.altKey) { - // run just the selected text, if any - const selectedText = this._editor.getSelectedText(); - if (selectedText) { - const temporaryCard = query - .setQueryText(selectedText) - .question() - .card(); - runQuestionQuery({ - overrideWithCard: temporaryCard, - shouldUpdateUrl: false, - }); - } - } else { - runQuestionQuery(); - } + // if any text is selected, just run that + const selectedText = this._editor && this._editor.getSelectedText(); + if (selectedText) { + const temporaryCard = query + .setQueryText(selectedText) + .question() + .card(); + runQuestionQuery({ + overrideWithCard: temporaryCard, + shouldUpdateUrl: false, + }); + } else if (query.canRun()) { + // $FlowFixMe + runQuestionQuery() + // <hack> + // This is an attempt to fix a conflict between Ace and react-draggable. + // TableInteractive uses react-draggable for the column headers. When + // that's first added (as a result of runninga query), Ace freezes until + // the arrow keys are hit or text is deleted. + // Bluring and refocusing gets it out of that state. Here we try and + // wait until just after a table is added. That's super error prone, but + // we're just doing a best effort to eliminate the freezing. + .then(() => delay(1500)) + .then(() => { + this._editor.blur(); + this._editor.focus(); + }); + // </hack> } }; @@ -211,6 +264,17 @@ export default class NativeQueryEditor extends Component { // listen to onChange events this._editor.getSession().on("change", this.onChange); + this._editor.on("changeSelection", this.handleSelectionChange); + + const minLineNumberWidth = 20; + this._editor.getSession().gutterRenderer = { + getWidth: (session, lastLineNumber, config) => + Math.max( + minLineNumberWidth, + lastLineNumber.toString().length * config.characterWidth, + ), + getText: (session, row) => row + 1, + }; // initialize the content this._editor.setValue(query ? query.queryText() : ""); @@ -256,14 +320,18 @@ export default class NativeQueryEditor extends Component { }); } - _updateSize(allowShrink: boolean = false) { + _updateSize() { const doc = this._editor.getSession().getDocument(); const element = ReactDOM.findDOMNode(this.refs.resizeBox); - const newHeight = getEditorLineHeight(doc.getLength()); - if ( - (allowShrink || newHeight > element.offsetHeight) && - newHeight <= getEditorLineHeight(MAX_AUTO_SIZE_LINES) - ) { + // set the newHeight based on the line count, but ensure it's within + // [MIN_HEIGHT_LINES, this.maxAutoSizeLines()] + const newHeight = getEditorLineHeight( + Math.max( + Math.min(doc.getLength(), this.maxAutoSizeLines()), + MIN_HEIGHT_LINES, + ), + ); + if (newHeight > element.offsetHeight) { element.style.height = newHeight + "px"; this._editor.resize(); } @@ -318,6 +386,10 @@ export default class NativeQueryEditor extends Component { setParameterValue, location, isNativeEditorOpen, + isRunnable, + isRunning, + isResultDirty, + isPreviewing, } = this.props; const database = query.database(); @@ -377,20 +449,21 @@ export default class NativeQueryEditor extends Component { ); } - let editorClasses, toggleEditorText, toggleEditorIcon; + let toggleEditorText, toggleEditorIcon; if (isNativeEditorOpen) { - editorClasses = ""; - toggleEditorText = query.hasWritePermission() - ? t`Hide Editor` - : t`Hide Query`; + toggleEditorText = null; toggleEditorIcon = "contract"; } else { - editorClasses = "hide"; toggleEditorText = query.hasWritePermission() ? t`Open Editor` : t`Show Query`; toggleEditorIcon = "expand"; } + const dragHandle = ( + <div className="NativeQueryEditorDragHandleWrapper"> + <div className="NativeQueryEditorDragHandle" /> + </div> + ); return ( <div className="NativeQueryEditor bg-light full"> @@ -407,18 +480,6 @@ export default class NativeQueryEditor extends Component { commitImmediately /> <div className="flex-align-right flex align-center text-medium pr1"> - {isNativeEditorOpen && - DataReferenceButton.shouldRender(this.props) && ( - <DataReferenceButton {...this.props} size={ICON_SIZE} /> - )} - {isNativeEditorOpen && - NativeVariablesButton.shouldRender(this.props) && ( - <NativeVariablesButton - {...this.props} - size={ICON_SIZE} - className="mx3 flex align-center" - /> - )} <a className="Query-label no-decoration flex align-center mx3 text-brand-hover transition-all" onClick={this.toggleEditor} @@ -432,16 +493,46 @@ export default class NativeQueryEditor extends Component { </div> <ResizableBox ref="resizeBox" - className={"border-top " + editorClasses} + className={cx("border-top flex ", { hide: !isNativeEditorOpen })} height={this.state.initialHeight} minConstraints={[Infinity, getEditorLineHeight(MIN_HEIGHT_LINES)]} axis="y" + handle={dragHandle} onResizeStop={(e, data) => { this.props.handleResize(); this._editor.resize(); }} + resizeHandles={["s"]} > - <div id="id_sql" ref="editor" /> + <div className="flex-full" id="id_sql" ref="editor" /> + <div className="flex flex-column align-center border-left"> + <DataReferenceButton + {...this.props} + size={ICON_SIZE} + className="mt3" + /> + <NativeVariablesButton + {...this.props} + size={ICON_SIZE} + className="mt3" + /> + <RunButtonWithTooltip + disabled={!isRunnable} + isRunning={isRunning} + isDirty={isResultDirty} + isPreviewing={isPreviewing} + onRun={this.runQuery} + compact + className="mx2 mb2 mt-auto p2" + getTooltip={() => + (this.state.hasTextSelected + ? t`Run selected text` + : t`Run query`) + + " " + + (isMac() ? t`(⌘ + enter)` : t`(Ctrl + enter)`) + } + /> + </div> </ResizableBox> </div> ); diff --git a/frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx b/frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx index d8eff87ce34f6217bc8de3d99842102ffe380d0b..2930dbcdc6c17f1a7107ba2580d8208d227c27cb 100644 --- a/frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx +++ b/frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx @@ -32,7 +32,7 @@ const QueryDownloadWidget = ({ <PopoverWithTrigger triggerElement={ <Tooltip tooltip={t`Download full results`}> - <Icon title={t`Download this data`} name={icon} size={16} /> + <Icon title={t`Download this data`} name={icon} size={20} /> </Tooltip> } triggerClasses={cx(className, "text-brand-hover")} diff --git a/frontend/src/metabase/query_builder/components/QueryVisualization.jsx b/frontend/src/metabase/query_builder/components/QueryVisualization.jsx index 09d037cf48801778beb801039856d08996ba3995..45202e49968a39c47d96eaa7827e0737de172923 100644 --- a/frontend/src/metabase/query_builder/components/QueryVisualization.jsx +++ b/frontend/src/metabase/query_builder/components/QueryVisualization.jsx @@ -39,6 +39,7 @@ type Props = { isAdmin: boolean, isResultDirty: boolean, isObjectDetail: boolean, + isNativeEditorOpen: boolean, runQuestionQuery: any => void, cancelQuery?: any => void, className: string, @@ -95,6 +96,7 @@ export default class QueryVisualization extends Component { isRunning, isObjectDetail, isResultDirty, + isNativeEditorOpen, result, } = this.props; @@ -103,7 +105,7 @@ export default class QueryVisualization extends Component { {isRunning ? <VisualizationRunningState className="spread z2" /> : null} <VisualizationDirtyState {...this.props} - hidden={!isResultDirty || isRunning} + hidden={!isResultDirty || isRunning || isNativeEditorOpen} className="spread z2" /> {!isObjectDetail && ( @@ -119,9 +121,7 @@ export default class QueryVisualization extends Component { "Visualization--loading": isRunning, })} > - {result && result.error && isResultDirty ? null : result && - result.error && - !isResultDirty ? ( + {result && result.error ? ( <VisualizationError className="spread" error={result.error} @@ -145,9 +145,9 @@ export default class QueryVisualization extends Component { } export const VisualizationEmptyState = ({ className }) => ( - <div - className={cx(className, "flex flex-column layout-centered text-light")} - /> + <div className={cx(className, "flex flex-column layout-centered text-light")}> + <h3>{t`Here's where your results will appear`}</h3> + </div> ); export const VisualizationRunningState = ({ className }) => ( @@ -186,12 +186,11 @@ export const VisualizationDirtyState = ({ py={2} px={3} result={result} - isRunnable={isRunnable} + hidden={!isRunnable || hidden} isRunning={isRunning} isDirty={isResultDirty} onRun={() => runQuestionQuery({ ignoreCache: true })} onCancel={() => cancelQuery()} - hidden={hidden} /> </div> ); diff --git a/frontend/src/metabase/query_builder/components/RunButton.jsx b/frontend/src/metabase/query_builder/components/RunButton.jsx index 6fab38b968653dd29e23e96a4cafeb8c8a8b29ff..36928f7de7a2907b8cef66a4018a72d5c467c3f6 100644 --- a/frontend/src/metabase/query_builder/components/RunButton.jsx +++ b/frontend/src/metabase/query_builder/components/RunButton.jsx @@ -9,7 +9,6 @@ import cx from "classnames"; export default class RunButton extends Component { static propTypes = { className: PropTypes.string, - isRunnable: PropTypes.bool.isRequired, isRunning: PropTypes.bool.isRequired, isDirty: PropTypes.bool.isRequired, isPreviewing: PropTypes.bool, @@ -21,7 +20,6 @@ export default class RunButton extends Component { render() { const { - isRunnable, isRunning, isDirty, isPreviewing, @@ -40,18 +38,15 @@ export default class RunButton extends Component { if (!compact) { buttonText = t`Cancel`; } - } else if (isRunnable && isDirty) { + } else if (isDirty) { if (compact) { buttonIcon = "play"; } else { buttonText = isPreviewing ? t`Get Preview` : t`Get Answer`; } - } else if (isRunnable && !isDirty) { + } else { buttonIcon = "refresh"; } - if (!buttonIcon && !buttonText) { - return null; - } return ( <Button {...props} diff --git a/frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx b/frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx index cddc846fa5d7c359fb5d761cf70cd9ab60c6e507..3a3ab14b5dc1c6597dfe8e2377200b3bfead7baf 100644 --- a/frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx +++ b/frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx @@ -8,25 +8,24 @@ import RunButton from "./RunButton"; const REFRESH_TOOLTIP_THRESHOLD = 30 * 1000; // 30 seconds -const RunButtonWithTooltip = props => { - const { isDirty, result } = props; - let runButtonTooltip; - if ( - !isDirty && - result && - result.cached && - result.average_execution_time > REFRESH_TOOLTIP_THRESHOLD - ) { - runButtonTooltip = t`This question will take approximately ${duration( - result.average_execution_time, - )} to refresh`; - } +const defaultGetTooltip = ({ isDirty, result }) => { + const { cached, average_execution_time } = result || {}; + return !isDirty && + cached && + average_execution_time > REFRESH_TOOLTIP_THRESHOLD + ? t`This question will take approximately ${duration( + average_execution_time, + )} to refresh` + : null; +}; +export default function RunButtonWithTooltip({ + getTooltip = defaultGetTooltip, + ...props +}) { return ( - <Tooltip tooltip={runButtonTooltip}> + <Tooltip tooltip={getTooltip(props)}> <RunButton {...props} /> </Tooltip> ); -}; - -export default RunButtonWithTooltip; +} diff --git a/frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx b/frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx index d708dd4fcffe19e72ac2db480e399687f8c0ded0..edbed84054b53b4d61e4d1c76f23987a7aa90bbf 100644 --- a/frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx +++ b/frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx @@ -2,8 +2,9 @@ import React from "react"; import { t, jt } from "ttag"; import Code from "metabase/components/Code"; import MetabaseSettings from "metabase/lib/settings"; +import Utils from "metabase/lib/utils"; -const EXAMPLES = { +const SQL_EXAMPLES = { variable: { database: null, type: "native", @@ -11,6 +12,7 @@ const EXAMPLES = { query: "SELECT count(*)\nFROM products\nWHERE category = {{category}}", "template-tags": { category: { + id: Utils.uuid(), name: "category", display_name: "Category", type: "text", @@ -27,6 +29,7 @@ const EXAMPLES = { query: "SELECT count(*)\nFROM products\nWHERE {{created_at}}", "template-tags": { created_at: { + id: Utils.uuid(), name: "created_at", display_name: "Created At", type: "dimension", @@ -44,6 +47,7 @@ const EXAMPLES = { "SELECT count(*)\nFROM products\n[[WHERE category = {{category}}]]", "template-tags": { category: { + id: Utils.uuid(), name: "category", display_name: "Category", type: "text", @@ -60,12 +64,14 @@ const EXAMPLES = { "SELECT count(*)\nFROM products\nWHERE 1=1\n [[AND id = {{id}}]]\n [[AND category = {{category}}]]", "template-tags": { id: { + id: Utils.uuid(), name: "id", display_name: "ID", type: "number", required: false, }, category: { + id: Utils.uuid(), name: "category", display_name: "Category", type: "text", @@ -82,6 +88,101 @@ const EXAMPLES = { "SELECT count(*)\nFROM products\nWHERE 1=1\n [[AND {{category}}]]", "template-tags": { category: { + id: Utils.uuid(), + name: "category", + display_name: "Category", + type: "dimension", + dimension: null, + required: false, + }, + }, + }, + }, +}; + +const MONGO_EXAMPLES = { + variable: { + database: null, + type: "native", + native: { + query: "[{ $match: { price: {{price}} } }]", + "template-tags": { + category: { + id: Utils.uuid(), + name: "price", + display_name: "Price", + type: "number", + required: true, + default: "2", + }, + }, + }, + }, + dimension: { + database: null, + type: "native", + native: { + query: "[{ $match: {{created_at}} }]", + "template-tags": { + created_at: { + id: Utils.uuid(), + name: "created_at", + display_name: "Created At", + type: "dimension", + dimension: null, + required: false, + }, + }, + }, + }, + optional: { + database: null, + type: "native", + native: { + query: "[{ $match: { [[ _id: {{id}} ]] } }]", + "template-tags": { + category: { + id: Utils.uuid(), + name: "id", + display_name: "ID", + type: "text", + required: false, + }, + }, + }, + }, + multipleOptional: { + database: null, + type: "native", + native: { + query: + "[{ $match: { [[ _id: {{id}} [[, category: {{category}} ]] ]] } }]", + "template-tags": { + id: { + id: Utils.uuid(), + name: "id", + display_name: "ID", + type: "number", + required: false, + }, + category: { + id: Utils.uuid(), + name: "category", + display_name: "Category", + type: "text", + required: false, + }, + }, + }, + }, + optionalDimension: { + database: null, + type: "native", + native: { + query: "[{ $match: { $and: [ { _id: 1 } [[, {{category}} ]] ] } }]", + "template-tags": { + category: { + id: Utils.uuid(), name: "category", display_name: "Category", type: "dimension", @@ -111,19 +212,30 @@ const TagExample = ({ datasetQuery, setDatasetQuery }) => ( </div> ); -const TagEditorHelp = ({ setDatasetQuery, sampleDatasetId }) => { - let setQueryWithSampleDatasetId = null; - if (sampleDatasetId != null) { - setQueryWithSampleDatasetId = (dataset_query, run) => { +const TagEditorHelp = ({ + database, + setDatasetQuery, + sampleDatasetId, + switchToSettings, +}) => { + const driver = database && database.engine; + const examples = driver === "mongo" ? MONGO_EXAMPLES : SQL_EXAMPLES; + const datasetId = driver === "mongo" ? database.id : sampleDatasetId; + + let setQueryWithDatasetId = null; + if (datasetId != null) { + setQueryWithDatasetId = (dataset_query, run) => { setDatasetQuery( { ...dataset_query, - database: sampleDatasetId, + database: datasetId, }, run, ); + switchToSettings(); }; } + return ( <div> <h4>{t`What's this for?`}</h4> @@ -135,23 +247,23 @@ const TagEditorHelp = ({ setDatasetQuery, sampleDatasetId }) => { <p> {jt`${( <Code>{"{{variable_name}}"}</Code> - )} creates a variable in this SQL template called "variable_name". Variables can be given types in the side panel, which changes their behavior. All variable types other than "Field Filter" will automatically cause a filter widget to be placed on this question; with Field Filters, this is optional. When this filter widget is filled in, that value replaces the variable in the SQL template.`} + )} creates a variable in this query template called "variable_name". Variables can be given types in the side panel, which changes their behavior. All variable types other than "Field Filter" will automatically cause a filter widget to be placed on this question; with Field Filters, this is optional. When this filter widget is filled in, that value replaces the variable in the query template.`} </p> <TagExample - datasetQuery={EXAMPLES.variable} - setDatasetQuery={setQueryWithSampleDatasetId} + datasetQuery={examples.variable} + setDatasetQuery={setQueryWithDatasetId} /> <h4 className="pt2">{t`Field Filters`}</h4> <p> - {t`Giving a variable the "Field Filter" type allows you to link SQL cards to dashboard filter widgets or use more types of filter widgets on your SQL question. A Field Filter variable inserts SQL similar to that generated by the GUI query builder when adding filters on existing columns.`} + {t`Giving a variable the "Field Filter" type allows you to link questions to dashboard filter widgets or use more types of filter widgets on your SQL question. A Field Filter variable inserts SQL similar to that generated by the GUI query builder when adding filters on existing columns.`} </p> <p> {t`When adding a Field Filter variable, you'll need to map it to a specific field. You can then choose to display a filter widget on your question, but even if you don't, you can now map your Field Filter variable to a dashboard filter when adding this question to a dashboard. Field Filters should be used inside of a "WHERE" clause.`} </p> <TagExample - datasetQuery={EXAMPLES.dimension} - setDatasetQuery={setQueryWithSampleDatasetId} + datasetQuery={examples.dimension} + setDatasetQuery={setQueryWithDatasetId} /> <h4 className="pt2">{t`Optional Clauses`}</h4> @@ -161,22 +273,22 @@ const TagEditorHelp = ({ setDatasetQuery, sampleDatasetId }) => { )} create an optional clause in the template. If "variable" is set, then the entire clause is placed into the template. If not, then the entire clause is ignored.`} </p> <TagExample - datasetQuery={EXAMPLES.optional} - setDatasetQuery={setQueryWithSampleDatasetId} + datasetQuery={examples.optional} + setDatasetQuery={setQueryWithDatasetId} /> <p> {t`To use multiple optional clauses you can include at least one non-optional WHERE clause followed by optional clauses starting with "AND".`} </p> <TagExample - datasetQuery={EXAMPLES.multipleOptional} - setDatasetQuery={setQueryWithSampleDatasetId} + datasetQuery={examples.multipleOptional} + setDatasetQuery={setQueryWithDatasetId} /> <p>{t`When using a Field Filter, the column name should not be included in the SQL. Instead, the variable should be mapped to a field in the side panel.`}</p> <TagExample - datasetQuery={EXAMPLES.optionalDimension} - setDatasetQuery={setQueryWithSampleDatasetId} + datasetQuery={examples.optionalDimension} + setDatasetQuery={setQueryWithDatasetId} /> <p className="pt2 link"> diff --git a/frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx b/frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx index 7e291f3b37c56e3ae54070c97af9dc810114b380..ca3e1fb4f5856a7f15c1ec372ad2e2ee54fbad74 100644 --- a/frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx +++ b/frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx @@ -5,6 +5,7 @@ import { connect } from "react-redux"; import { Link } from "react-router"; import Toggle from "metabase/components/Toggle"; +import Card from "metabase/components/Card"; import InputBlurChange from "metabase/components/InputBlurChange"; import Select, { Option } from "metabase/components/Select"; import ParameterValueWidget from "metabase/parameters/components/ParameterValueWidget"; @@ -126,23 +127,23 @@ export default class TagEditorParam extends Component { isDimension && Array.isArray(tag.dimension); const hasWidgetOptions = widgetOptions && widgetOptions.length > 0; return ( - <div className="pb2 mb2 border-bottom border-dark"> - <h3 className="pb2">{tag.name}</h3> + <Card className="p2 mb2"> + <h3 className="pb2 text-brand">{tag.name}</h3> - <div className="pb1"> - <h5 className="pb1 text-normal">{t`Filter label`}</h5> + <div className="pb3"> + <h4 className="pb1">{t`Filter label`}</h4> <InputBlurChange type="text" value={tag["display-name"]} - className="AdminSelect p1 text-bold text-medium bordered border-medium rounded full" + className="AdminSelect p1 text-bold text-dark bordered border-medium rounded full" onBlurChange={e => this.setParameterAttribute("display-name", e.target.value) } /> </div> - <div className="pb1"> - <h5 className="pb1 text-normal">{t`Variable type`}</h5> + <div className="pb3"> + <h4 className="pb1">{t`Variable type`}</h4> <Select className="border-medium bg-white block" value={tag.type} @@ -159,13 +160,13 @@ export default class TagEditorParam extends Component { </div> {tag.type === "dimension" && ( - <div className="pb1"> - <h5 className="pb1 text-normal"> + <div className="pb3"> + <h4 className="pb1"> {t`Field to map to`} {tag.dimension == null && ( <span className="text-error mx1">(required)</span> )} - </h5> + </h4> {(!hasSelectedDimensionField || (hasSelectedDimensionField && fieldMetadataLoaded)) && ( @@ -185,8 +186,8 @@ export default class TagEditorParam extends Component { )} {hasSelectedDimensionField && ( - <div className="pb1"> - <h5 className="pb1 text-normal">{t`Filter widget type`}</h5> + <div className="pb3"> + <h4 className="pb1">{t`Filter widget type`}</h4> <Select className="border-med bg-white block" value={tag["widget-type"]} @@ -222,8 +223,8 @@ export default class TagEditorParam extends Component { </div> )} - <div className="flex align-center pb1"> - <h5 className="text-normal mr1">{t`Required?`}</h5> + <div className="pb2"> + <h4 className="pb1">{t`Required?`}</h4> <Toggle value={tag.required} onChange={value => this.setRequired(value)} @@ -232,8 +233,8 @@ export default class TagEditorParam extends Component { {((tag.type !== "dimension" && tag.required) || (tag.type === "dimension" || tag["widget-type"])) && ( - <div className="pb1"> - <h5 className="pb1 text-normal">{t`Default filter widget value`}</h5> + <div className="pb2"> + <h4 className="pb1">{t`Default filter widget value`}</h4> <ParameterValueWidget parameter={{ type: @@ -248,7 +249,7 @@ export default class TagEditorParam extends Component { /> </div> )} - </div> + </Card> ); } } diff --git a/frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx b/frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx index b1243edbdb67e0c33e78770878be9e325c27961c..0c4eedacd583a6325d24aad1319da25373ee3265 100644 --- a/frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx +++ b/frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx @@ -108,8 +108,10 @@ export default class TagEditorSidebar extends React.Component { /> ) : ( <TagEditorHelp + database={database} sampleDatasetId={sampleDatasetId} setDatasetQuery={setDatasetQuery} + switchToSettings={() => this.setSection("settings")} /> )} </div> diff --git a/frontend/src/metabase/query_builder/components/view/View.jsx b/frontend/src/metabase/query_builder/components/view/View.jsx index b696ac6b7c0b51ee8d5bfab2847f7499d84295ee..ff75078be52852a1fcdb57145b71bcb5180cca85 100644 --- a/frontend/src/metabase/query_builder/components/view/View.jsx +++ b/frontend/src/metabase/query_builder/components/view/View.jsx @@ -3,6 +3,7 @@ import { t } from "ttag"; import cx from "classnames"; +import ExplicitSize from "metabase/components/ExplicitSize"; import Popover from "metabase/components/Popover"; import DebouncedFrame from "metabase/components/DebouncedFrame"; import Subhead from "metabase/components/Subhead"; @@ -42,6 +43,7 @@ const DEFAULT_POPOVER_STATE = { breakoutPopoverTarget: null, }; +@ExplicitSize() export default class View extends React.Component { state = { ...DEFAULT_POPOVER_STATE, @@ -97,6 +99,7 @@ export default class View extends React.Component { queryBuilderMode, mode, fitClassNames, + height, } = this.props; const { aggregationIndex, @@ -249,10 +252,11 @@ export default class View extends React.Component { "hide sm-show": isSidebarOpen, })} > - {query instanceof NativeQuery && ( + {isNative && ( <div className="z2 hide sm-show border-bottom mb2"> <NativeQueryEditor {...this.props} + viewHeight={height} isOpen={!card.dataset_query.native.query || isDirty} datasetQuery={card && card.dataset_query} /> diff --git a/frontend/src/metabase/query_builder/components/view/ViewHeader.jsx b/frontend/src/metabase/query_builder/components/view/ViewHeader.jsx index 791538332802c85c8b15761e7e335413f1de982e..b574347776e07b91b6ecc19631e7355272f4e432 100644 --- a/frontend/src/metabase/query_builder/components/view/ViewHeader.jsx +++ b/frontend/src/metabase/query_builder/components/view/ViewHeader.jsx @@ -68,6 +68,7 @@ export class ViewTitleHeader extends React.Component { isRunning, isResultDirty, isPreviewing, + isNativeEditorOpen, runQuestionQuery, cancelQuery, isShowingSummarySidebar, @@ -259,7 +260,7 @@ export class ViewTitleHeader extends React.Component { /> </Box> )} - {isRunnable && ( + {isRunnable && !isNativeEditorOpen && ( <RunButtonWithTooltip className={cx("text-brand-hover hide", { "sm-show": !isShowingNotebook || isNative, @@ -270,7 +271,6 @@ export class ViewTitleHeader extends React.Component { ml={1} compact result={result} - isRunnable={isRunnable} isRunning={isRunning} isDirty={isResultDirty} isPreviewing={isPreviewing} diff --git a/frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx b/frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx index 73d5b9ef2f4b1f4e636384cfd1198636680b0c97..96915c8d6e7bdf25c1dfc05666acca08fd56bc04 100644 --- a/frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx +++ b/frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx @@ -60,7 +60,9 @@ const ChartTypeSidebar = ({ visualization.isSensible(result.data) } onClick={() => { - question.setDisplay(type).update(null, { reload: false }); + question + .setSelectedDisplay(type) + .update(null, { reload: false }); onOpenChartSettings({ section: t`Data` }); setUIControls({ isShowingRawTable: false }); }} diff --git a/frontend/src/metabase/query_builder/reducers.js b/frontend/src/metabase/query_builder/reducers.js index fd807908bae1fa1aa0500b8107bbb243b42ff316..884e4872ee86394093343dd6053768cd7d760e35 100644 --- a/frontend/src/metabase/query_builder/reducers.js +++ b/frontend/src/metabase/query_builder/reducers.js @@ -199,7 +199,9 @@ export const card = handleActions( [QUERY_COMPLETED]: { next: (state, { payload }) => ({ ...state, - display: payload.cardDisplay, + sensibleDisplays: payload.card.sensibleDisplays, + selectedDisplay: payload.card.selectedDisplay, + display: payload.card.display, }), }, diff --git a/frontend/src/metabase/query_builder/selectors.js b/frontend/src/metabase/query_builder/selectors.js index 355e1beba518b8dd76b2a7a356260f4359b22526..d9820abcafccd6de99c807c5746d910038307943 100644 --- a/frontend/src/metabase/query_builder/selectors.js +++ b/frontend/src/metabase/query_builder/selectors.js @@ -143,6 +143,30 @@ const getNextRunParameterValues = createSelector( parameters.map(parameter => parameter.value).filter(p => p !== undefined), ); +// Certain differences in a query should be ignored. `normalizeQuery` +// standardizes the query before comparision in `getIsResultDirty`. +function normalizeQuery(query, tableMetadata) { + if (!query) { + return query; + } + if (query.query && tableMetadata) { + query = updateIn(query, ["query", "fields"], fields => { + fields = fields + ? // if the query has fields, copy them before sorting + [...fields] + : // if the fields aren't set, we get them from the table metadata + tableMetadata.fields.map(({ id }) => ["field-id", id]); + return fields.sort((a, b) => + JSON.stringify(b).localeCompare(JSON.stringify(a)), + ); + }); + } + if (query.native && query.native["template-tags"] == null) { + query.native["template-tags"] = {}; + } + return query; +} + export const getIsResultDirty = createSelector( [ getLastRunDatasetQuery, @@ -158,22 +182,8 @@ export const getIsResultDirty = createSelector( nextParameters, tableMetadata, ) => { - // this function sorts fields so that reordering doesn't dirty the result - const queryWithSortedFields = query => - query && query.query && tableMetadata - ? updateIn(query, ["query", "fields"], fields => { - fields = fields - ? // if the query has fields, copy them before sorting - [...fields] - : // if the fields aren't set, we get them from the table metadata - tableMetadata.fields.map(({ id }) => ["field-id", id]); - return fields.sort((a, b) => - JSON.stringify(b).localeCompare(JSON.stringify(a)), - ); - }) - : query; - lastDatasetQuery = queryWithSortedFields(lastDatasetQuery); - nextDatasetQuery = queryWithSortedFields(nextDatasetQuery); + lastDatasetQuery = normalizeQuery(lastDatasetQuery, tableMetadata); + nextDatasetQuery = normalizeQuery(nextDatasetQuery, tableMetadata); return ( !Utils.equals(lastDatasetQuery, nextDatasetQuery) || !Utils.equals(lastParameters, nextParameters) diff --git a/frontend/src/metabase/reference/Reference.css b/frontend/src/metabase/reference/Reference.css index 6001693df14924d6f87ac189a7ade8b955298591..a263098939cf056e7f8077722845efc7da79a39f 100644 --- a/frontend/src/metabase/reference/Reference.css +++ b/frontend/src/metabase/reference/Reference.css @@ -1,7 +1,7 @@ :root { --title-color: var(--color-text-medium); --subtitle-color: var(--color-text-medium); - --icon-width: calc(48px + 1rem); + --icon-width: 60px; } :local(.guideEmpty) { @@ -20,7 +20,6 @@ :local(.columnHeader) { composes: flex flex-full from "style"; - margin-left: var(--icon-width); padding-top: 20px; padding-bottom: 20px; } @@ -37,7 +36,16 @@ } :local(.tableActualName) { - color: var(--subtitle-color); + font-family: "Lucida Console", Monaco, monospace; + font-size: 13px; + line-height: 1.4em; + letter-spacing: 1px; + white-space: pre-wrap; + color: var(--color-text-medium); + background-color: var(--color-bg-light); + border: 1px solid var(--color-text-light); + border-radius: 4px; + padding: 0.2em 0.4em; } :local(.guideLeftPadded) { diff --git a/frontend/src/metabase/reference/components/Detail.css b/frontend/src/metabase/reference/components/Detail.css index 117833b87a2329647078a35117f8db8d92144c23..b15eac4ae763c912b482b4394b7cec7f470d04cb 100644 --- a/frontend/src/metabase/reference/components/Detail.css +++ b/frontend/src/metabase/reference/components/Detail.css @@ -1,38 +1,35 @@ :root { --title-color: var(--color-text-medium); - --subtitle-color: var(--color-text-medium); --muted-color: var(--color-text-light); --blue-color: var(--color-brand); - --icon-width: calc(48px + 1rem); } :local(.detail) { composes: flex align-center from "style"; composes: relative from "style"; - margin-left: var(--icon-width); } :local(.detailBody) { - composes: flex-full from "style"; - max-width: 550px; - padding-top: 20px; - padding-bottom: 20px; + composes: pb4 from "style"; + max-width: 900px; } :local(.detailTitle) { composes: text-bold inline-block from "style"; color: var(--title-color); - font-size: 18px; } :local(.detailSubtitle) { - composes: text-dark mt2 text-paragraph from "style"; + composes: text-dark text-paragraph from "style"; white-space: pre-wrap; + font-size: 16px; + line-height: 24px; + padding-top: 6px; } :local(.detailSubtitleLight) { - composes: mt2 text-paragraph from "style"; - color: var(--subtitle-color); + composes: text-light from "style"; + padding-top: 6px; } :local(.detailTextarea) { @@ -41,4 +38,5 @@ font-size: 16px; width: 100%; min-height: 100px; + border-color: var(--color-text-light); } diff --git a/frontend/src/metabase/reference/components/Detail.jsx b/frontend/src/metabase/reference/components/Detail.jsx index 38758076261e0898f6185fbba5a188a704f24750..8735684875f11ee1ce51c567262801f900765146 100644 --- a/frontend/src/metabase/reference/components/Detail.jsx +++ b/frontend/src/metabase/reference/components/Detail.jsx @@ -18,7 +18,7 @@ const Detail = ({ field, }) => ( <div className={cx(S.detail)}> - <div className={S.detailBody}> + <div className={isEditing ? cx(S.detailBody, "flex-full") : S.detailBody}> <div className={S.detailTitle}> {url ? ( <Link to={url} className={S.detailName}> @@ -29,9 +29,7 @@ const Detail = ({ )} </div> <div - className={cx(description ? S.detailSubtitle : S.detailSubtitleLight, { - mt1: true, - })} + className={cx(description ? S.detailSubtitle : S.detailSubtitleLight)} > {isEditing ? ( <textarea diff --git a/frontend/src/metabase/reference/components/EditButton.css b/frontend/src/metabase/reference/components/EditButton.css deleted file mode 100644 index a945c7420a10b4bbc46eb9253b3112816066a86a..0000000000000000000000000000000000000000 --- a/frontend/src/metabase/reference/components/EditButton.css +++ /dev/null @@ -1,15 +0,0 @@ -:local(.editButton) { - composes: flex align-center text-dark p0 mx1 from "style"; - color: var(--color-brand); - font-weight: normal; - font-size: 16px; -} - -:local(.editButton):hover { - color: var(--color-brand); - transition: color 0.3s linear; -} - -:local(.editButtonBody) { - composes: flex align-center relative from "style"; -} diff --git a/frontend/src/metabase/reference/components/EditButton.jsx b/frontend/src/metabase/reference/components/EditButton.jsx deleted file mode 100644 index 3084e652c411833855c7d39ee81cc5b41ab69a5b..0000000000000000000000000000000000000000 --- a/frontend/src/metabase/reference/components/EditButton.jsx +++ /dev/null @@ -1,28 +0,0 @@ -import React from "react"; -import PropTypes from "prop-types"; -import cx from "classnames"; -import pure from "recompose/pure"; -import { t } from "ttag"; -import S from "./EditButton.css"; - -import Icon from "metabase/components/Icon"; - -const EditButton = ({ className, startEditing }) => ( - <button - className={cx("Button", "Button--borderless", S.editButton, className)} - type="button" - onClick={startEditing} - > - <div className={S.editButtonBody}> - <Icon name="pencil" size={16} /> - <span className="ml1">{t`Edit`}</span> - </div> - </button> -); - -EditButton.propTypes = { - className: PropTypes.string, - startEditing: PropTypes.func.isRequired, -}; - -export default pure(EditButton); diff --git a/frontend/src/metabase/reference/components/EditHeader.css b/frontend/src/metabase/reference/components/EditHeader.css index a71c5bc8147839ea4b06a922fed0cf061b513b89..2bc005749a153acd1f58b08a039c78c8ada15c78 100644 --- a/frontend/src/metabase/reference/components/EditHeader.css +++ b/frontend/src/metabase/reference/components/EditHeader.css @@ -9,7 +9,7 @@ left: 0; right: 0; height: 43px; - background-color: var(--edit-header-color); + background-color: color(var(--color-bg-white) alpha(-85%)); } :local(.editHeaderButtons) { diff --git a/frontend/src/metabase/reference/components/EditHeader.jsx b/frontend/src/metabase/reference/components/EditHeader.jsx index 4d24715dddec36c8470ed11cee5acf6c28e44e8b..04c2c6239dbd2cb4eb0a13ec7671326670665b2c 100644 --- a/frontend/src/metabase/reference/components/EditHeader.jsx +++ b/frontend/src/metabase/reference/components/EditHeader.jsx @@ -15,7 +15,7 @@ const EditHeader = ({ onSubmit, revisionMessageFormField, }) => ( - <div className={cx("EditHeader wrapper p1", S.editHeader)}> + <div className={cx("EditHeader wrapper py1 px3", S.editHeader)}> <div>{t`You are editing this page`}</div> <div className={S.editHeaderButtons}> <button diff --git a/frontend/src/metabase/reference/components/EditableReferenceHeader.jsx b/frontend/src/metabase/reference/components/EditableReferenceHeader.jsx index 2916bb830fa643e1273098ee2e38e85761285f3e..2872191056af3eeb405227c48731c6b7b6355af5 100644 --- a/frontend/src/metabase/reference/components/EditableReferenceHeader.jsx +++ b/frontend/src/metabase/reference/components/EditableReferenceHeader.jsx @@ -6,15 +6,11 @@ import pure from "recompose/pure"; import { t } from "ttag"; import S from "./ReferenceHeader.css"; import L from "metabase/components/List.css"; -import E from "metabase/reference/components/EditButton.css"; -import IconBorder from "metabase/components/IconBorder"; import Icon from "metabase/components/Icon"; import InputBlurChange from "metabase/components/InputBlurChange"; import Ellipsified from "metabase/components/Ellipsified"; -import EditButton from "metabase/reference/components/EditButton"; - -import { color } from "metabase/lib/colors"; +import Button from "metabase/components/Button"; const EditableReferenceHeader = ({ entity = {}, @@ -31,24 +27,11 @@ const EditableReferenceHeader = ({ displayNameFormField, nameFormField, }) => ( - <div className="wrapper wrapper--trim"> - <div - className={cx("relative", L.header)} - style={type === "segment" ? { marginBottom: 0 } : {}} - > - <div className={L.leftIcons}> + <div className="wrapper"> + <div className={cx("relative", L.header)}> + <div className="flex align-center mr1"> {headerIcon && ( - <IconBorder - borderWidth="0" - style={{ backgroundColor: color("bg-medium") }} - > - <Icon - className="text-brand" - name={headerIcon} - width={24} - height={24} - /> - </IconBorder> + <Icon className="text-light" name={headerIcon} size={21} /> )} </div> {type === "table" && !hasSingleSchema && !isEditing && ( @@ -86,44 +69,29 @@ const EditableReferenceHeader = ({ : name} </Ellipsified>, headerLink && ( - <div key="2" className={cx("flex-full", S.headerButton)}> - <Link - to={headerLink} - className={cx( - "Button", - "Button--borderless", - "ml3", - E.editButton, - )} - data-metabase-event={`Data Reference;Entity -> QB click;${type}`} - > - <div className="flex align-center relative"> - <span className="mr1 flex-no-shrink">{t`See this ${type}`}</span> - <Icon name="chevronright" size={16} /> - </div> - </Link> - </div> + <Button + primary + className="flex flex-align-right mr2" + style={{ fontSize: 14 }} + data-metabase-event={`Data Reference;Entity -> QB click;${type}`} + > + <Link to={headerLink}>{t`See this ${type}`}</Link> + </Button> ), ] )} {user && user.is_superuser && !isEditing && ( - <EditButton className="ml1" startEditing={startEditing} /> + <Button + secondary + icon="pencil" + style={{ fontSize: 14 }} + onClick={startEditing} + > + {t`Edit`} + </Button> )} </div> </div> - {type === "segment" && table && ( - <div className={S.subheader}> - <div className={cx(S.subheaderBody)}> - {t`A subset of`}{" "} - <Link - className={S.subheaderLink} - to={`/reference/databases/${table.db_id}/tables/${table.id}`} - > - {table.display_name} - </Link> - </div> - </div> - )} </div> ); EditableReferenceHeader.propTypes = { diff --git a/frontend/src/metabase/reference/components/Field.css b/frontend/src/metabase/reference/components/Field.css index f0de738eca40dc0514c342cbc27121d6880fd041..c5087edd07223b42cbd946380b4f2e08b88fc31f 100644 --- a/frontend/src/metabase/reference/components/Field.css +++ b/frontend/src/metabase/reference/components/Field.css @@ -7,12 +7,11 @@ } :local(.fieldNameTitle) { - composes: flex-full pr2 from "style"; + composes: flex-half pr2 from "style"; } :local(.fieldName) { composes: fieldNameTitle; - font-size: 16px; } :local(.fieldNameTextInput) { @@ -27,13 +26,13 @@ } :local(.fieldType) { - composes: flex-half pr2 from "style"; + composes: flex-1-quarter text-medium pr2 from "style"; overflow: hidden; white-space: nowrap; } :local(.fieldDataType) { - composes: flex-half from "style"; + composes: flex-1-quarter text-medium from "style"; } :local(.fieldSecondary) { @@ -43,7 +42,9 @@ :local(.fieldActualName) { composes: fieldNameTitle; - composes: text-monospace from "style"; + composes: text-monospace text-light from "style"; + font-size: 12px; + letter-spacing: 1px; } :local(.fieldForeignKey) { diff --git a/frontend/src/metabase/reference/components/Field.jsx b/frontend/src/metabase/reference/components/Field.jsx index e7f8b0b1bbd6efc9aafcb0551a0a0141782a1420..8512a7789d255aa08e87c99f70d5b96705615324 100644 --- a/frontend/src/metabase/reference/components/Field.jsx +++ b/frontend/src/metabase/reference/components/Field.jsx @@ -20,9 +20,6 @@ import pure from "recompose/pure"; const Field = ({ field, foreignKeys, url, icon, isEditing, formField }) => ( <div className={cx(S.item)}> - <div className={S.leftIcons}> - {icon && <Icon className={S.chartIcon} name={icon} size={20} />} - </div> <div className={S.itemBody} style={{ maxWidth: "100%", borderTop: "none" }}> <div className={F.field}> <div className={cx(S.itemTitle, F.fieldName)}> @@ -35,9 +32,14 @@ const Field = ({ field, foreignKeys, url, icon, isEditing, formField }) => ( defaultValue={field.display_name} /> ) : ( - <Link to={url} className={S.itemName}> - {field.display_name} - </Link> + <div> + <Link to={url}> + <span className="text-brand">{field.display_name}</span> + <span className={cx(F.fieldActualName, "ml2")}> + {field.name} + </span> + </Link> + </div> )} </div> <div className={F.fieldType}> @@ -64,18 +66,31 @@ const Field = ({ field, foreignKeys, url, icon, isEditing, formField }) => ( onChange={type => formField.special_type.onChange(type.id)} /> ) : ( - <span> - {getIn(MetabaseCore.field_special_types_map, [ - field.special_type, - "name", - ]) || t`No field type`} - </span> + <div className="flex"> + <div className={S.leftIcons}> + {icon && <Icon className={S.chartIcon} name={icon} size={20} />} + </div> + <span + className={ + getIn(MetabaseCore.field_special_types_map, [ + field.special_type, + "name", + ]) + ? "text-medium" + : "text-light" + } + > + {getIn(MetabaseCore.field_special_types_map, [ + field.special_type, + "name", + ]) || t`No field type`} + </span> + </div> )} </div> <div className={F.fieldDataType}>{field.base_type}</div> </div> <div className={cx(S.itemSubtitle, F.fieldSecondary, { mt1: true })}> - <div className={F.fieldActualName}>{field.name}</div> <div className={F.fieldForeignKey}> {isEditing ? (isFK(formField.special_type.value) || diff --git a/frontend/src/metabase/reference/components/FieldToGroupBy.css b/frontend/src/metabase/reference/components/FieldToGroupBy.css index babb272e142e204e021cdcfb7eb3c988d62dfe32..81c761f56ada006c881607032c361ce89fcf8bb3 100644 --- a/frontend/src/metabase/reference/components/FieldToGroupBy.css +++ b/frontend/src/metabase/reference/components/FieldToGroupBy.css @@ -1,5 +1,5 @@ :local(.fieldToGroupByText) { composes: flex-full from "style"; - font-size: 16px; + font-size: 14px; color: var(--color-text-medium); } diff --git a/frontend/src/metabase/reference/components/FieldToGroupBy.jsx b/frontend/src/metabase/reference/components/FieldToGroupBy.jsx index 6c56d7382075960af0db10a74a5a63a4a8fb2000..f7d92622449482908d203786976dd7f4ed02e420 100644 --- a/frontend/src/metabase/reference/components/FieldToGroupBy.jsx +++ b/frontend/src/metabase/reference/components/FieldToGroupBy.jsx @@ -2,6 +2,7 @@ import React from "react"; import PropTypes from "prop-types"; import pure from "recompose/pure"; import { t } from "ttag"; +import cx from "classnames"; import S from "./FieldToGroupBy.css"; import Q from "metabase/components/QueryButton.css"; @@ -18,13 +19,13 @@ const FieldToGroupBy = ({ }) => ( <div className={className}> <a className={Q.queryButton} onClick={onClick}> - <span className={S.fieldToGroupByText}> - <span>{`${metric.name} ` + t`by` + ` `}</span> - <span className="ml1 text-brand">{field.display_name}</span> - </span> + <div className={S.fieldToGroupByText}> + <div className="text-brand text-bold">{field.display_name}</div> + </div> <Icon - className={iconClass} - size={20} + className={cx(iconClass, "pr1")} + tooltip={field.description ? field.description : t`Look up this field`} + size={16} name="reference" onClick={secondaryOnClick} /> diff --git a/frontend/src/metabase/reference/components/FieldsToGroupBy.jsx b/frontend/src/metabase/reference/components/FieldsToGroupBy.jsx index fdd986042a9d26e8d4ef9aabdca29e194ad5b18d..fb870af43807381f9d13578bc68d74699059d5c0 100644 --- a/frontend/src/metabase/reference/components/FieldsToGroupBy.jsx +++ b/frontend/src/metabase/reference/components/FieldsToGroupBy.jsx @@ -1,5 +1,4 @@ import React, { Component } from "react"; -import cx from "classnames"; import { connect } from "react-redux"; import S from "./UsefulQuestions.css"; @@ -47,7 +46,7 @@ export default class FieldsToGroupBy extends Component { } = this.props; return ( - <div className={cx(D.detail)}> + <div> <div className={D.detailBody}> <div className={D.detailTitle}> <span className={D.detailName}>{title}</span> @@ -57,7 +56,7 @@ export default class FieldsToGroupBy extends Component { Object.values(fields).map((field, index, fields) => ( <FieldToGroupBy key={field.id} - className={cx("border-bottom", "pt1", "pb1")} + className="px1 mb1 rounded bg-light-hover" iconClass={L.icon} field={field} metric={metric} diff --git a/frontend/src/metabase/reference/components/Formula.css b/frontend/src/metabase/reference/components/Formula.css index 945461add2420e1b638636e723dd019494a133ae..37f489a3290119eec70604297474c86abd8fbc8e 100644 --- a/frontend/src/metabase/reference/components/Formula.css +++ b/frontend/src/metabase/reference/components/Formula.css @@ -1,12 +1,6 @@ -:root { - --icon-width: calc(48px + 1rem); -} - :local(.formula) { - composes: bordered rounded my2 from "style"; + composes: bordered rounded from "style"; background-color: var(--color-bg-light); - margin-left: var(--icon-width); - max-width: 550px; cursor: pointer; } diff --git a/frontend/src/metabase/reference/components/GuideHeader.jsx b/frontend/src/metabase/reference/components/GuideHeader.jsx index bc4a732cb766727f2835ff7ce86c71ac7135a004..7962f8963d380db2d9c45c08e7a39b5d205160f8 100644 --- a/frontend/src/metabase/reference/components/GuideHeader.jsx +++ b/frontend/src/metabase/reference/components/GuideHeader.jsx @@ -2,7 +2,7 @@ import React from "react"; import PropTypes from "prop-types"; import pure from "recompose/pure"; import { t } from "ttag"; -import EditButton from "metabase/reference/components/EditButton"; +import Button from "metabase/components/Button"; const GuideHeader = ({ startEditing, isSuperuser }) => ( <div> @@ -13,7 +13,9 @@ const GuideHeader = ({ startEditing, isSuperuser }) => ( </h1> {isSuperuser && ( <span className="ml-auto"> - <EditButton startEditing={startEditing} /> + <Button primary icon="pencil" onClick={startEditing}> + {t`Edit`} + </Button> </span> )} </div> diff --git a/frontend/src/metabase/reference/components/ReferenceHeader.css b/frontend/src/metabase/reference/components/ReferenceHeader.css index c3173e09efd76505a443002a9331fede0267d840..609c4a78cb6d95bbb213647012d79ffb2b916ddd 100644 --- a/frontend/src/metabase/reference/components/ReferenceHeader.css +++ b/frontend/src/metabase/reference/components/ReferenceHeader.css @@ -1,10 +1,9 @@ :root { --title-color: var(--color-text-medium); - --icon-width: calc(48px + 1rem); } :local(.headerBody) { - composes: flex flex-full border-bottom text-dark text-bold from "style"; + composes: flex flex-full text-dark text-bold from "style"; overflow: hidden; align-items: center; border-color: var(--color-border); @@ -23,9 +22,8 @@ } :local(.subheaderBody) { - composes: text-dark from "style"; - margin-left: var(--icon-width); - font-size: 16px; + composes: text-medium text-bold from "style"; + font-size: 14px; } :local(.subheaderLink) { @@ -40,7 +38,6 @@ :local(.headerSchema) { composes: text-light absolute from "style"; - left: var(--icon-width); top: -10px; font-size: 12px; } diff --git a/frontend/src/metabase/reference/components/ReferenceHeader.jsx b/frontend/src/metabase/reference/components/ReferenceHeader.jsx index 390ecc28389157b4f8aa3c220150f4a0d91311a6..78a4f4c088ed391e789871ea9b0b588115396f66 100644 --- a/frontend/src/metabase/reference/components/ReferenceHeader.jsx +++ b/frontend/src/metabase/reference/components/ReferenceHeader.jsx @@ -6,13 +6,10 @@ import pure from "recompose/pure"; import S from "./ReferenceHeader.css"; import L from "metabase/components/List.css"; -import E from "metabase/reference/components/EditButton.css"; -import IconBorder from "metabase/components/IconBorder"; import Icon from "metabase/components/Icon"; import Ellipsified from "metabase/components/Ellipsified"; import { t } from "ttag"; -import { color } from "metabase/lib/colors"; const ReferenceHeader = ({ name, @@ -21,23 +18,13 @@ const ReferenceHeader = ({ headerBody, headerLink, }) => ( - <div className="wrapper wrapper--trim"> + <div className="wrapper"> <div className={cx("relative", L.header)}> - <div className={L.leftIcons}> - {headerIcon && ( - <IconBorder - borderWidth="0" - style={{ backgroundColor: color("bg-medium") }} - > - <Icon - className="text-brand" - name={headerIcon} - width={24} - height={24} - /> - </IconBorder> - )} - </div> + {headerIcon && ( + <div className="flex align-center mr2"> + <Icon className="text-light" name={headerIcon} size={21} /> + </div> + )} <div className={S.headerBody}> <Ellipsified key="1" @@ -51,12 +38,7 @@ const ReferenceHeader = ({ <div key="2" className={cx("flex-full", S.headerButton)}> <Link to={headerLink} - className={cx( - "Button", - "Button--borderless", - "ml3", - E.editButton, - )} + className={cx("Button", "Button--borderless", "ml3")} data-metabase-event={`Data Reference;Entity -> QB click;${type}`} > <div className="flex align-center relative"> diff --git a/frontend/src/metabase/reference/components/UsefulQuestions.css b/frontend/src/metabase/reference/components/UsefulQuestions.css index eb3e899302d4fe123ca870e8b1fe2ee5a2127652..f6ef86c10677b52f4224dfd24d39e592bfcd1e96 100644 --- a/frontend/src/metabase/reference/components/UsefulQuestions.css +++ b/frontend/src/metabase/reference/components/UsefulQuestions.css @@ -1,4 +1,4 @@ :local(.usefulQuestions) { composes: text-brand mt1 from "style"; - font-size: 14px; + font-size: 16px; } diff --git a/frontend/src/metabase/reference/components/UsefulQuestions.jsx b/frontend/src/metabase/reference/components/UsefulQuestions.jsx index 9b81233d8c2f82e332aabf6f7a61511416eb57c2..e2d31bc7fa5d57a60679f4748e17037717b037da 100644 --- a/frontend/src/metabase/reference/components/UsefulQuestions.jsx +++ b/frontend/src/metabase/reference/components/UsefulQuestions.jsx @@ -1,28 +1,21 @@ import React from "react"; import PropTypes from "prop-types"; -import cx from "classnames"; import pure from "recompose/pure"; import { t } from "ttag"; import S from "./UsefulQuestions.css"; import D from "metabase/reference/components/Detail.css"; -import L from "metabase/components/List.css"; import QueryButton from "metabase/components/QueryButton"; const UsefulQuestions = ({ questions }) => ( - <div className={cx(D.detail)}> + <div className={D.detail}> <div className={D.detailBody}> <div className={D.detailTitle}> <span className={D.detailName}>{t`Potentially useful questions`}</span> </div> <div className={S.usefulQuestions}> {questions.map((question, index, questions) => ( - <QueryButton - key={index} - className={cx("border-bottom", "pt1", "pb1")} - iconClass={L.icon} - {...question} - /> + <QueryButton key={index} {...question} /> ))} </div> </div> diff --git a/frontend/src/metabase/reference/databases/DatabaseDetail.jsx b/frontend/src/metabase/reference/databases/DatabaseDetail.jsx index e2cbcfc52c49ed0c7da6b082f52650526d98216c..c5902d5ff342bd58c51cfc04e96f9a95f2836e25 100644 --- a/frontend/src/metabase/reference/databases/DatabaseDetail.jsx +++ b/frontend/src/metabase/reference/databases/DatabaseDetail.jsx @@ -136,8 +136,8 @@ export default class DatabaseDetail extends Component { entity={entity} table={table} type="database" - headerIcon="database" name="Details" + headerIcon="database" user={user} isEditing={isEditing} hasSingleSchema={false} @@ -151,39 +151,41 @@ export default class DatabaseDetail extends Component { error={loadingError} > {() => ( - <div className="wrapper wrapper--trim"> - <List> - <li className="relative"> - <Detail - id="description" - name={t`Description`} - description={entity.description} - placeholder={t`No description yet`} - isEditing={isEditing} - field={description} - /> - </li> - <li className="relative"> - <Detail - id="points_of_interest" - name={t`Why this database is interesting`} - description={entity.points_of_interest} - placeholder={t`Nothing interesting yet`} - isEditing={isEditing} - field={points_of_interest} - /> - </li> - <li className="relative"> - <Detail - id="caveats" - name={t`Things to be aware of about this database`} - description={entity.caveats} - placeholder={t`Nothing to be aware of yet`} - isEditing={isEditing} - field={caveats} - /> - </li> - </List> + <div className="wrapper"> + <div className="pl4 pr3 pt4 mb4 mb1 bg-white rounded bordered"> + <List> + <li className="relative"> + <Detail + id="description" + name={t`Description`} + description={entity.description} + placeholder={t`No description yet`} + isEditing={isEditing} + field={description} + /> + </li> + <li className="relative"> + <Detail + id="points_of_interest" + name={t`Why this database is interesting`} + description={entity.points_of_interest} + placeholder={t`Nothing interesting yet`} + isEditing={isEditing} + field={points_of_interest} + /> + </li> + <li className="relative"> + <Detail + id="caveats" + name={t`Things to be aware of about this database`} + description={entity.caveats} + placeholder={t`Nothing to be aware of yet`} + isEditing={isEditing} + field={caveats} + /> + </li> + </List> + </div> </div> )} </LoadingAndErrorWrapper> diff --git a/frontend/src/metabase/reference/databases/DatabaseList.jsx b/frontend/src/metabase/reference/databases/DatabaseList.jsx index 43ac5312e083ed0237ee06d9a8ed3d237f8d7ad9..8786c311b247a764293d27c8046f6462f87dc4c7 100644 --- a/frontend/src/metabase/reference/databases/DatabaseList.jsx +++ b/frontend/src/metabase/reference/databases/DatabaseList.jsx @@ -46,14 +46,14 @@ export default class DatabaseList extends Component { return ( <div style={style} className="full"> - <ReferenceHeader name={t`Databases and tables`} /> + <ReferenceHeader name={t`Our data`} /> <LoadingAndErrorWrapper loading={!loadingError && loading} error={loadingError} > {() => Object.keys(entities).length > 0 ? ( - <div className="wrapper wrapper--trim"> + <div className="wrapper"> <List> {Object.values(entities) .filter(isQueryable) diff --git a/frontend/src/metabase/reference/databases/DatabaseSidebar.jsx b/frontend/src/metabase/reference/databases/DatabaseSidebar.jsx index 407d54dfa9a06f62eae51380cac6ab10a731e584..679b1b9f6bd38b7af909b517d7f9ae0c74fa2d16 100644 --- a/frontend/src/metabase/reference/databases/DatabaseSidebar.jsx +++ b/frontend/src/metabase/reference/databases/DatabaseSidebar.jsx @@ -14,24 +14,26 @@ const DatabaseSidebar = ({ database, style, className }) => ( <ul> <div className={S.breadcrumbs}> <Breadcrumbs - className="py4" + className="py4 ml3" crumbs={[[t`Databases`, "/reference/databases"], [database.name]]} inSidebar={true} placeholder={t`Data Reference`} /> </div> - <SidebarItem - key={`/reference/databases/${database.id}`} - href={`/reference/databases/${database.id}`} - icon="document" - name={t`Details`} - /> - <SidebarItem - key={`/reference/databases/${database.id}/tables`} - href={`/reference/databases/${database.id}/tables`} - icon="table2" - name={t`Tables in ${database.name}`} - /> + <ol className="mx3"> + <SidebarItem + key={`/reference/databases/${database.id}`} + href={`/reference/databases/${database.id}`} + icon="document" + name={t`Details`} + /> + <SidebarItem + key={`/reference/databases/${database.id}/tables`} + href={`/reference/databases/${database.id}/tables`} + icon="table2" + name={t`Tables in ${database.name}`} + /> + </ol> </ul> </div> ); diff --git a/frontend/src/metabase/reference/databases/FieldDetail.jsx b/frontend/src/metabase/reference/databases/FieldDetail.jsx index 1bf2814d2845611ce5ab0fd75cb6cbaabfd5e209..3b7d6e16fc72213df3133b4ffc0f204ad4831f07 100644 --- a/frontend/src/metabase/reference/databases/FieldDetail.jsx +++ b/frontend/src/metabase/reference/databases/FieldDetail.jsx @@ -37,7 +37,7 @@ const interestingQuestions = (database, table, field, metadata) => { return [ { text: t`Number of ${table.display_name} grouped by ${field.display_name}`, - icon: { name: "bar", scale: 1, viewBox: "8 8 16 16" }, + icon: "bar", link: getQuestionUrl({ dbId: database.id, tableId: table.id, @@ -49,7 +49,7 @@ const interestingQuestions = (database, table, field, metadata) => { }, { text: t`Number of ${table.display_name} grouped by ${field.display_name}`, - icon: { name: "pie", scale: 1, viewBox: "8 8 16 16" }, + icon: "pie", link: getQuestionUrl({ dbId: database.id, tableId: table.id, @@ -206,80 +206,82 @@ export default class FieldDetail extends Component { error={loadingError} > {() => ( - <div className="wrapper wrapper--trim"> - <List> - <li className="relative"> - <Detail - id="description" - name={t`Description`} - description={entity.description} - placeholder={t`No description yet`} - isEditing={isEditing} - field={description} - /> - </li> - {!isEditing && ( + <div className="wrapper"> + <div className="pl4 pr3 pt4 mb4 mb1 bg-white rounded bordered"> + <List> <li className="relative"> <Detail - id="name" - name={t`Actual name in database`} - description={entity.name} - subtitleClass={S.tableActualName} + id="description" + name={t`Description`} + description={entity.description} + placeholder={t`No description yet`} + isEditing={isEditing} + field={description} + /> + </li> + {!isEditing && ( + <li className="relative"> + <Detail + id="name" + name={t`Actual name in database`} + description={entity.name} + subtitleClass={S.tableActualName} + /> + </li> + )} + <li className="relative"> + <Detail + id="points_of_interest" + name={t`Why this field is interesting`} + description={entity.points_of_interest} + placeholder={t`Nothing interesting yet`} + isEditing={isEditing} + field={points_of_interest} /> </li> - )} - <li className="relative"> - <Detail - id="points_of_interest" - name={t`Why this field is interesting`} - description={entity.points_of_interest} - placeholder={t`Nothing interesting yet`} - isEditing={isEditing} - field={points_of_interest} - /> - </li> - <li className="relative"> - <Detail - id="caveats" - name={t`Things to be aware of about this field`} - description={entity.caveats} - placeholder={t`Nothing to be aware of yet`} - isEditing={isEditing} - field={caveats} - /> - </li> - - {!isEditing && ( <li className="relative"> <Detail - id="base_type" - name={t`Data type`} - description={entity.base_type} + id="caveats" + name={t`Things to be aware of about this field`} + description={entity.caveats} + placeholder={t`Nothing to be aware of yet`} + isEditing={isEditing} + field={caveats} /> </li> - )} - <li className="relative"> - <FieldTypeDetail - field={entity} - foreignKeys={foreignKeys} - fieldTypeFormField={special_type} - foreignKeyFormField={fk_target_field_id} - isEditing={isEditing} - /> - </li> - {!isEditing && ( + + {!isEditing && ( + <li className="relative"> + <Detail + id="base_type" + name={t`Data type`} + description={entity.base_type} + /> + </li> + )} <li className="relative"> - <UsefulQuestions - questions={interestingQuestions( - this.props.database, - this.props.table, - this.props.field, - metadata, - )} + <FieldTypeDetail + field={entity} + foreignKeys={foreignKeys} + fieldTypeFormField={special_type} + foreignKeyFormField={fk_target_field_id} + isEditing={isEditing} /> </li> - )} - </List> + {!isEditing && ( + <li className="relative"> + <UsefulQuestions + questions={interestingQuestions( + this.props.database, + this.props.table, + this.props.field, + metadata, + )} + /> + </li> + )} + </List> + </div> </div> )} </LoadingAndErrorWrapper> diff --git a/frontend/src/metabase/reference/databases/FieldList.jsx b/frontend/src/metabase/reference/databases/FieldList.jsx index 1b45cb45e058d5c81d44fae4c8f15a290a0742b8..467828d4dfd03c95bbdc25cf02d4be7b92008e54 100644 --- a/frontend/src/metabase/reference/databases/FieldList.jsx +++ b/frontend/src/metabase/reference/databases/FieldList.jsx @@ -145,39 +145,41 @@ export default class FieldList extends Component { > {() => Object.keys(entities).length > 0 ? ( - <div className="wrapper wrapper--trim"> - <div className={S.item}> - <div className={R.columnHeader}> - <div className={cx(S.itemTitle, F.fieldNameTitle)}> - {t`Field name`} - </div> - <div className={cx(S.itemTitle, F.fieldType)}> - {t`Field type`} - </div> - <div className={cx(S.itemTitle, F.fieldDataType)}> - {t`Data type`} + <div className="wrapper"> + <div className="pl4 pb2 mb4 bg-white rounded bordered"> + <div className={S.item}> + <div className={R.columnHeader}> + <div className={cx(S.itemTitle, F.fieldNameTitle)}> + {t`Field name`} + </div> + <div className={cx(S.itemTitle, F.fieldType)}> + {t`Field type`} + </div> + <div className={cx(S.itemTitle, F.fieldDataType)}> + {t`Data type`} + </div> </div> </div> + <List> + {Object.values(entities).map( + entity => + entity && + entity.id && + entity.name && ( + <li key={entity.id}> + <Field + field={entity} + foreignKeys={foreignKeys} + url={`/reference/databases/${table.db_id}/tables/${table.id}/fields/${entity.id}`} + icon={getIconForField(entity)} + isEditing={isEditing} + formField={fields[entity.id]} + /> + </li> + ), + )} + </List> </div> - <List> - {Object.values(entities).map( - entity => - entity && - entity.id && - entity.name && ( - <li className="relative" key={entity.id}> - <Field - field={entity} - foreignKeys={foreignKeys} - url={`/reference/databases/${table.db_id}/tables/${table.id}/fields/${entity.id}`} - icon={getIconForField(entity)} - isEditing={isEditing} - formField={fields[entity.id]} - /> - </li> - ), - )} - </List> </div> ) : ( <div className={S.empty}> diff --git a/frontend/src/metabase/reference/databases/FieldSidebar.jsx b/frontend/src/metabase/reference/databases/FieldSidebar.jsx index 589cba077d14dab2fd3675f2cfc38203e0d45e72..d86a1035ff69c6070fba399f0f123c9f34b613d2 100644 --- a/frontend/src/metabase/reference/databases/FieldSidebar.jsx +++ b/frontend/src/metabase/reference/databases/FieldSidebar.jsx @@ -17,7 +17,7 @@ const FieldSidebar = ({ database, table, field, style, className }) => ( <ul> <div className={S.breadcrumbs}> <Breadcrumbs - className="py4" + className="py4 ml3" crumbs={[ [database.name, `/reference/databases/${database.id}`], [ @@ -30,21 +30,23 @@ const FieldSidebar = ({ database, table, field, style, className }) => ( placeholder={t`Data Reference`} /> </div> - <SidebarItem - key={`/reference/databases/${database.id}/tables/${table.id}/fields/${field.id}`} - href={`/reference/databases/${database.id}/tables/${table.id}/fields/${field.id}`} - icon="document" - name={t`Details`} - /> - - {MetabaseSettings.get("enable_xrays") && ( + <ol className="mx3"> <SidebarItem - key={`/auto/dashboard/field/${field.id}`} - href={`/auto/dashboard/field/${field.id}`} - icon="bolt" - name={t`X-ray this field`} + key={`/reference/databases/${database.id}/tables/${table.id}/fields/${field.id}`} + href={`/reference/databases/${database.id}/tables/${table.id}/fields/${field.id}`} + icon="document" + name={t`Details`} /> - )} + + {MetabaseSettings.get("enable_xrays") && ( + <SidebarItem + key={`/auto/dashboard/field/${field.id}`} + href={`/auto/dashboard/field/${field.id}`} + icon="bolt" + name={t`X-ray this field`} + /> + )} + </ol> </ul> </div> ); diff --git a/frontend/src/metabase/reference/databases/TableDetail.jsx b/frontend/src/metabase/reference/databases/TableDetail.jsx index 5e8ef06843a3d72b7a29549ab1659957dafa5847..5be76ef2699431fa6379fbbf4fae443fcb72fb51 100644 --- a/frontend/src/metabase/reference/databases/TableDetail.jsx +++ b/frontend/src/metabase/reference/databases/TableDetail.jsx @@ -36,7 +36,7 @@ const interestingQuestions = table => { return [ { text: t`Count of ${table.display_name}`, - icon: { name: "number", scale: 1, viewBox: "8 8 16 16" }, + icon: "number", link: getQuestionUrl({ dbId: table.db_id, tableId: table.id, @@ -184,56 +184,58 @@ export default class TableDetail extends Component { error={loadingError} > {() => ( - <div className="wrapper wrapper--trim"> - <List> - <li className="relative"> - <Detail - id="description" - name={t`Description`} - description={entity.description} - placeholder={t`No description yet`} - isEditing={isEditing} - field={description} - /> - </li> - {!isEditing && ( + <div className="wrapper"> + <div className="pl4 pr3 pt4 mb4 mb1 bg-white rounded bordered"> + <List> <li className="relative"> <Detail - id="name" - name={t`Actual name in database`} - description={entity.name} - subtitleClass={S.tableActualName} + id="description" + name={t`Description`} + description={entity.description} + placeholder={t`No description yet`} + isEditing={isEditing} + field={description} /> </li> - )} - <li className="relative"> - <Detail - id="points_of_interest" - name={t`Why this table is interesting`} - description={entity.points_of_interest} - placeholder={t`Nothing interesting yet`} - isEditing={isEditing} - field={points_of_interest} - /> - </li> - <li className="relative"> - <Detail - id="caveats" - name={t`Things to be aware of about this table`} - description={entity.caveats} - placeholder={t`Nothing to be aware of yet`} - isEditing={isEditing} - field={caveats} - /> - </li> - {!isEditing && ( + {!isEditing && ( + <li className="relative"> + <Detail + id="name" + name={t`Actual name in database`} + description={entity.name} + subtitleClass={S.tableActualName} + /> + </li> + )} <li className="relative"> - <UsefulQuestions - questions={interestingQuestions(this.props.table)} + <Detail + id="points_of_interest" + name={t`Why this table is interesting`} + description={entity.points_of_interest} + placeholder={t`Nothing interesting yet`} + isEditing={isEditing} + field={points_of_interest} + /> + </li> + <li className="relative"> + <Detail + id="caveats" + name={t`Things to be aware of about this table`} + description={entity.caveats} + placeholder={t`Nothing to be aware of yet`} + isEditing={isEditing} + field={caveats} /> </li> - )} - </List> + {!isEditing && ( + <li className="relative"> + <UsefulQuestions + questions={interestingQuestions(this.props.table)} + /> + </li> + )} + </List> + </div> </div> )} </LoadingAndErrorWrapper> diff --git a/frontend/src/metabase/reference/databases/TableSidebar.jsx b/frontend/src/metabase/reference/databases/TableSidebar.jsx index 846ecb539b31bb8efd9df19261d3c3e7137dcaa6..4307f73ab50a2cb19ae8acbe7b4485f6962b1e01 100644 --- a/frontend/src/metabase/reference/databases/TableSidebar.jsx +++ b/frontend/src/metabase/reference/databases/TableSidebar.jsx @@ -16,7 +16,7 @@ const TableSidebar = ({ database, table, style, className }) => ( <div className={cx(S.sidebar, className)} style={style}> <div className={S.breadcrumbs}> <Breadcrumbs - className="py4" + className="py4 ml3" crumbs={[ [t`Databases`, "/reference/databases"], [database.name, `/reference/databases/${database.id}`], @@ -26,7 +26,7 @@ const TableSidebar = ({ database, table, style, className }) => ( placeholder={t`Data Reference`} /> </div> - <ol> + <ol className="mx3"> <SidebarItem key={`/reference/databases/${database.id}/tables/${table.id}`} href={`/reference/databases/${database.id}/tables/${table.id}`} @@ -36,7 +36,7 @@ const TableSidebar = ({ database, table, style, className }) => ( <SidebarItem key={`/reference/databases/${database.id}/tables/${table.id}/fields`} href={`/reference/databases/${database.id}/tables/${table.id}/fields`} - icon="fields" + icon="field" name={t`Fields in this table`} /> <SidebarItem diff --git a/frontend/src/metabase/reference/guide/BaseSidebar.jsx b/frontend/src/metabase/reference/guide/BaseSidebar.jsx index cea6f06d1b5048fca7586b008008db60c81a8c97..3079c7758a9b5dd2e6cb6bfc687f612a61c7236e 100644 --- a/frontend/src/metabase/reference/guide/BaseSidebar.jsx +++ b/frontend/src/metabase/reference/guide/BaseSidebar.jsx @@ -13,13 +13,13 @@ const BaseSidebar = ({ style, className }) => ( <div className={cx(S.sidebar, className)} style={style}> <div className={S.breadcrumbs}> <Breadcrumbs - className="py4" + className="py4 ml3" crumbs={[[t`Data Reference`]]} inSidebar={true} placeholder={t`Data Reference`} /> </div> - <ol> + <ol className="mx3"> <SidebarItem key="/reference/metrics" href="/reference/metrics" @@ -36,7 +36,7 @@ const BaseSidebar = ({ style, className }) => ( key="/reference/databases" href="/reference/databases" icon="database" - name={t`Databases and tables`} + name={t`Our data`} /> </ol> </div> diff --git a/frontend/src/metabase/reference/metrics/MetricDetail.jsx b/frontend/src/metabase/reference/metrics/MetricDetail.jsx index 4d10e24b5007803ac8794f52a66c4936427939d7..e42f4174fcb39fccdf9af621770bf3f5ae0166a0 100644 --- a/frontend/src/metabase/reference/metrics/MetricDetail.jsx +++ b/frontend/src/metabase/reference/metrics/MetricDetail.jsx @@ -7,6 +7,7 @@ import { push } from "react-router-redux"; import { t } from "ttag"; import List from "metabase/components/List"; import LoadingAndErrorWrapper from "metabase/components/LoadingAndErrorWrapper"; + import EditHeader from "metabase/reference/components/EditHeader"; import EditableReferenceHeader from "metabase/reference/components/EditableReferenceHeader"; import Detail from "metabase/reference/components/Detail"; @@ -198,108 +199,110 @@ export default class MetricDetail extends Component { error={loadingError} > {() => ( - <div className="wrapper wrapper--trim"> - <List> - <li className="relative"> - <Detail - id="description" - name={t`Description`} - description={entity.description} - placeholder={t`No description yet`} - isEditing={isEditing} - field={description} - /> - </li> - <li className="relative"> - <Detail - id="points_of_interest" - name={t`Why this Metric is interesting`} - description={entity.points_of_interest} - placeholder={t`Nothing interesting yet`} - isEditing={isEditing} - field={points_of_interest} - /> - </li> - <li className="relative"> - <Detail - id="caveats" - name={t`Things to be aware of about this Metric`} - description={entity.caveats} - placeholder={t`Nothing to be aware of yet`} - isEditing={isEditing} - field={caveats} - /> - </li> - <li className="relative"> - <Detail - id="how_is_this_calculated" - name={t`How this Metric is calculated`} - description={entity.how_is_this_calculated} - placeholder={t`Nothing on how it's calculated yet`} - isEditing={isEditing} - field={how_is_this_calculated} - /> - </li> - {table && !isEditing && ( + <div className="wrapper"> + <div className="pl4 pr3 pt4 mb4 mb1 bg-white rounded bordered"> + <List> <li className="relative"> - <Formula - type="metric" - entity={entity} - isExpanded={isFormulaExpanded} - expandFormula={expandFormula} - collapseFormula={collapseFormula} + <Detail + id="description" + name={t`Description`} + description={entity.description} + placeholder={t`No description yet`} + isEditing={isEditing} + field={description} /> </li> - )} - <li className="relative"> - <MetricImportantFieldsDetail - fields={ - guide && - guide.metric_important_fields[entity.id] && - Object.values(guide.metric_important_fields[entity.id]) - .map(fieldId => metadataFields[fieldId]) - .reduce( - (map, field) => ({ ...map, [field.id]: field }), - {}, - ) - } - table={table} - allFields={metadataFields} - metric={entity} - onChangeLocation={onChangeLocation} - isEditing={isEditing} - formField={important_fields} - /> - </li> - {!isEditing && ( <li className="relative"> - <FieldsToGroupBy - fields={table.fields - .filter( - fieldId => - !guide || - !guide.metric_important_fields[entity.id] || - !guide.metric_important_fields[entity.id].includes( - fieldId, - ), - ) - .map(fieldId => metadataFields[fieldId]) - .reduce( - (map, field) => ({ ...map, [field.id]: field }), - {}, - )} - databaseId={table && table.db_id} - metric={entity} - title={ - guide && guide.metric_important_fields[entity.id] - ? t`Other fields you can group this metric by` - : t`Fields you can group this metric by` + <Detail + id="points_of_interest" + name={t`Why this metric is interesting`} + description={entity.points_of_interest} + placeholder={t`Nothing interesting yet`} + isEditing={isEditing} + field={points_of_interest} + /> + </li> + <li className="relative"> + <Detail + id="caveats" + name={t`Things to be aware of about this metric`} + description={entity.caveats} + placeholder={t`Nothing to be aware of yet`} + isEditing={isEditing} + field={caveats} + /> + </li> + <li className="relative"> + <Detail + id="how_is_this_calculated" + name={t`How this metric is calculated`} + description={entity.how_is_this_calculated} + placeholder={t`Nothing on how it's calculated yet`} + isEditing={isEditing} + field={how_is_this_calculated} + /> + </li> + {table && !isEditing && ( + <li className="relative"> + <Formula + type="metric" + entity={entity} + isExpanded={isFormulaExpanded} + expandFormula={expandFormula} + collapseFormula={collapseFormula} + /> + </li> + )} + <li className="relative"> + <MetricImportantFieldsDetail + fields={ + guide && + guide.metric_important_fields[entity.id] && + Object.values(guide.metric_important_fields[entity.id]) + .map(fieldId => metadataFields[fieldId]) + .reduce( + (map, field) => ({ ...map, [field.id]: field }), + {}, + ) } + table={table} + allFields={metadataFields} + metric={entity} onChangeLocation={onChangeLocation} + isEditing={isEditing} + formField={important_fields} /> </li> - )} - </List> + {!isEditing && ( + <li className="relative mt4"> + <FieldsToGroupBy + fields={table.fields + .filter( + fieldId => + !guide || + !guide.metric_important_fields[entity.id] || + !guide.metric_important_fields[ + entity.id + ].includes(fieldId), + ) + .map(fieldId => metadataFields[fieldId]) + .reduce( + (map, field) => ({ ...map, [field.id]: field }), + {}, + )} + databaseId={table && table.db_id} + metric={entity} + title={ + guide && guide.metric_important_fields[entity.id] + ? t`Other fields you can group this metric by` + : t`Fields you can group this metric by` + } + onChangeLocation={onChangeLocation} + /> + </li> + )} + </List> + </div> </div> )} </LoadingAndErrorWrapper> diff --git a/frontend/src/metabase/reference/metrics/MetricSidebar.jsx b/frontend/src/metabase/reference/metrics/MetricSidebar.jsx index cfb254334414c0844781aab7c35a447bf9cc65f0..12ca249e47812cfcbcf50017133218ee93ac751d 100644 --- a/frontend/src/metabase/reference/metrics/MetricSidebar.jsx +++ b/frontend/src/metabase/reference/metrics/MetricSidebar.jsx @@ -17,40 +17,42 @@ const MetricSidebar = ({ metric, user, style, className }) => ( <ul> <div className={S.breadcrumbs}> <Breadcrumbs - className="py4" + className="py4 ml3" crumbs={[[t`Metrics`, "/reference/metrics"], [metric.name]]} inSidebar={true} placeholder={t`Data Reference`} /> </div> - <SidebarItem - key={`/reference/metrics/${metric.id}`} - href={`/reference/metrics/${metric.id}`} - icon="document" - name={t`Details`} - /> - <SidebarItem - key={`/reference/metrics/${metric.id}/questions`} - href={`/reference/metrics/${metric.id}/questions`} - icon="all" - name={t`Questions about ${metric.name}`} - /> - {MetabaseSettings.get("enable_xrays") && ( + <ol className="mx3"> <SidebarItem - key={`/auto/dashboard/metric/${metric.id}`} - href={`/auto/dashboard/metric/${metric.id}`} - icon="bolt" - name={t`X-ray this metric`} + key={`/reference/metrics/${metric.id}`} + href={`/reference/metrics/${metric.id}`} + icon="document" + name={t`Details`} /> - )} - {user && user.is_superuser && ( <SidebarItem - key={`/reference/metrics/${metric.id}/revisions`} - href={`/reference/metrics/${metric.id}/revisions`} - icon="history" - name={t`Revision history for ${metric.name}`} + key={`/reference/metrics/${metric.id}/questions`} + href={`/reference/metrics/${metric.id}/questions`} + icon="all" + name={t`Questions about ${metric.name}`} /> - )} + {MetabaseSettings.get("enable_xrays") && ( + <SidebarItem + key={`/auto/dashboard/metric/${metric.id}`} + href={`/auto/dashboard/metric/${metric.id}`} + icon="bolt" + name={t`X-ray this metric`} + /> + )} + {user && user.is_superuser && ( + <SidebarItem + key={`/reference/metrics/${metric.id}/revisions`} + href={`/reference/metrics/${metric.id}/revisions`} + icon="history" + name={t`Revision history for ${metric.name}`} + /> + )} + </ol> </ul> </div> ); diff --git a/frontend/src/metabase/reference/segments/SegmentDetail.jsx b/frontend/src/metabase/reference/segments/SegmentDetail.jsx index ba965a9ed2e73ae446c3cb3439f793c5923badcb..061603c39c6ed647fe210ec28f1bc695087a9f7a 100644 --- a/frontend/src/metabase/reference/segments/SegmentDetail.jsx +++ b/frontend/src/metabase/reference/segments/SegmentDetail.jsx @@ -4,6 +4,7 @@ import PropTypes from "prop-types"; import { connect } from "react-redux"; import { reduxForm } from "redux-form"; import { t } from "ttag"; +import S from "../components/Detail.css"; import List from "metabase/components/List"; import LoadingAndErrorWrapper from "metabase/components/LoadingAndErrorWrapper"; @@ -12,6 +13,7 @@ import EditableReferenceHeader from "metabase/reference/components/EditableRefer import Detail from "metabase/reference/components/Detail"; import UsefulQuestions from "metabase/reference/components/UsefulQuestions"; import Formula from "metabase/reference/components/Formula"; +import Link from "metabase/components/Link"; import { getQuestionUrl } from "../utils"; @@ -34,7 +36,7 @@ const interestingQuestions = (table, segment) => { return [ { text: t`Number of ${segment.name}`, - icon: { name: "number", scale: 1, viewBox: "8 8 16 16" }, + icon: "number", link: getQuestionUrl({ dbId: table && table.db_id, tableId: table.id, @@ -202,61 +204,86 @@ export default class SegmentDetail extends Component { error={loadingError} > {() => ( - <div className="wrapper wrapper--trim"> - <List> - <li className="relative"> - <Detail - id="description" - name={t`Description`} - description={entity.description} - placeholder={t`No description yet`} - isEditing={isEditing} - field={description} - /> - </li> - <li className="relative"> - <Detail - id="points_of_interest" - name={t`Why this Segment is interesting`} - description={entity.points_of_interest} - placeholder={t`Nothing interesting yet`} - isEditing={isEditing} - field={points_of_interest} - /> - </li> - <li className="relative"> - <Detail - id="caveats" - name={t`Things to be aware of about this Segment`} - description={entity.caveats} - placeholder={t`Nothing to be aware of yet`} - isEditing={isEditing} - field={caveats} - /> - </li> - {table && !isEditing && ( + <div className="wrapper"> + <div className="pl4 pr3 pt4 mb4 mb1 bg-white rounded bordered"> + <List> + <li> + <div className={S.detail}> + <div className={S.detailBody}> + <div> + <div className={S.detailTitle}> + {t`Table this is based on`} + </div> + {table && ( + <div> + <Link + className="text-brand text-bold text-paragraph" + to={`/reference/databases/${table.db_id}/tables/${table.id}`} + > + <span className="pt1"> + {table.display_name} + </span> + </Link> + </div> + )} + </div> + </div> + </div> + </li> + <li className="relative"> + <Detail + id="description" + name={t`Description`} + description={entity.description} + placeholder={t`No description yet`} + isEditing={isEditing} + field={description} + /> + </li> <li className="relative"> - <Formula - type="segment" - entity={entity} - table={table} - isExpanded={isFormulaExpanded} - expandFormula={expandFormula} - collapseFormula={collapseFormula} + <Detail + id="points_of_interest" + name={t`Why this Segment is interesting`} + description={entity.points_of_interest} + placeholder={t`Nothing interesting yet`} + isEditing={isEditing} + field={points_of_interest} /> </li> - )} - {!isEditing && ( <li className="relative"> - <UsefulQuestions - questions={interestingQuestions( - this.props.table, - this.props.entity, - )} + <Detail + id="caveats" + name={t`Things to be aware of about this Segment`} + description={entity.caveats} + placeholder={t`Nothing to be aware of yet`} + isEditing={isEditing} + field={caveats} /> </li> - )} - </List> + {!isEditing && ( + <li className="relative"> + <UsefulQuestions + questions={interestingQuestions( + this.props.table, + this.props.entity, + )} + /> + </li> + )} + {table && !isEditing && ( + <li className="relative mb4"> + <Formula + type="segment" + entity={entity} + table={table} + isExpanded={isFormulaExpanded} + expandFormula={expandFormula} + collapseFormula={collapseFormula} + /> + </li> + )} + </List> + </div> </div> )} </LoadingAndErrorWrapper> diff --git a/frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx b/frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx index 5f1f37c64b3032bd32a648cacfbafc5b2b771e0d..9680821ff0f76688e703328ac15697798a3903bc 100644 --- a/frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx +++ b/frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx @@ -39,7 +39,7 @@ const interestingQuestions = (table, field) => { text: t`Number of ${table && table.display_name} grouped by ${ field.display_name }`, - icon: { name: "number", scale: 1, viewBox: "8 8 16 16" }, + icon: "number", link: getQuestionUrl({ dbId: table && table.db_id, tableId: table.id, @@ -202,78 +202,80 @@ export default class SegmentFieldDetail extends Component { error={loadingError} > {() => ( - <div className="wrapper wrapper--trim"> - <List> - <li className="relative"> - <Detail - id="description" - name={t`Description`} - description={entity.description} - placeholder={t`No description yet`} - isEditing={isEditing} - field={description} - /> - </li> - {!isEditing && ( + <div className="wrapper"> + <div className="pl3 py2 mb4 bg-white bordered"> + <List> <li className="relative"> <Detail - id="name" - name={t`Actual name in database`} - description={entity.name} - subtitleClass={S.tableActualName} + id="description" + name={t`Description`} + description={entity.description} + placeholder={t`No description yet`} + isEditing={isEditing} + field={description} + /> + </li> + {!isEditing && ( + <li className="relative"> + <Detail + id="name" + name={t`Actual name in database`} + description={entity.name} + subtitleClass={S.tableActualName} + /> + </li> + )} + <li className="relative"> + <Detail + id="points_of_interest" + name={t`Why this field is interesting`} + description={entity.points_of_interest} + placeholder={t`Nothing interesting yet`} + isEditing={isEditing} + field={points_of_interest} /> </li> - )} - <li className="relative"> - <Detail - id="points_of_interest" - name={t`Why this field is interesting`} - description={entity.points_of_interest} - placeholder={t`Nothing interesting yet`} - isEditing={isEditing} - field={points_of_interest} - /> - </li> - <li className="relative"> - <Detail - id="caveats" - name={t`Things to be aware of about this field`} - description={entity.caveats} - placeholder={t`Nothing to be aware of yet`} - isEditing={isEditing} - field={caveats} - /> - </li> - - {!isEditing && ( <li className="relative"> <Detail - id="base_type" - name={t`Data type`} - description={entity.base_type} + id="caveats" + name={t`Things to be aware of about this field`} + description={entity.caveats} + placeholder={t`Nothing to be aware of yet`} + isEditing={isEditing} + field={caveats} /> </li> - )} - <li className="relative"> - <FieldTypeDetail - field={entity} - foreignKeys={foreignKeys} - fieldTypeFormField={special_type} - foreignKeyFormField={fk_target_field_id} - isEditing={isEditing} - /> - </li> - {!isEditing && ( + + {!isEditing && ( + <li className="relative"> + <Detail + id="base_type" + name={t`Data type`} + description={entity.base_type} + /> + </li> + )} <li className="relative"> - <UsefulQuestions - questions={interestingQuestions( - this.props.table, - this.props.entity, - )} + <FieldTypeDetail + field={entity} + foreignKeys={foreignKeys} + fieldTypeFormField={special_type} + foreignKeyFormField={fk_target_field_id} + isEditing={isEditing} /> </li> - )} - </List> + {!isEditing && ( + <li className="relative"> + <UsefulQuestions + questions={interestingQuestions( + this.props.table, + this.props.entity, + )} + /> + </li> + )} + </List> + </div> </div> )} </LoadingAndErrorWrapper> diff --git a/frontend/src/metabase/reference/segments/SegmentFieldList.jsx b/frontend/src/metabase/reference/segments/SegmentFieldList.jsx index 4a34220edd4b654aaf484bf48577e0ac8b755ed2..ef4635739a2b2fbf3f18a1fc7a30b8a83d7b55d2 100644 --- a/frontend/src/metabase/reference/segments/SegmentFieldList.jsx +++ b/frontend/src/metabase/reference/segments/SegmentFieldList.jsx @@ -146,39 +146,41 @@ export default class SegmentFieldList extends Component { > {() => Object.keys(entities).length > 0 ? ( - <div className="wrapper wrapper--trim"> - <div className={S.item}> - <div className={R.columnHeader}> - <div className={cx(S.itemTitle, F.fieldNameTitle)}> - {t`Field name`} - </div> - <div className={cx(S.itemTitle, F.fieldType)}> - {t`Field type`} - </div> - <div className={cx(S.itemTitle, F.fieldDataType)}> - {t`Data type`} + <div className="wrapper"> + <div className="pl4 pb2 mb4 bg-white rounded bordered"> + <div className={S.item}> + <div className={R.columnHeader}> + <div className={cx(S.itemTitle, F.fieldNameTitle)}> + {t`Field name`} + </div> + <div className={cx(S.itemTitle, F.fieldType)}> + {t`Field type`} + </div> + <div className={cx(S.itemTitle, F.fieldDataType)}> + {t`Data type`} + </div> </div> </div> + <List> + {Object.values(entities).map( + entity => + entity && + entity.id && + entity.name && ( + <li className="relative" key={entity.id}> + <Field + field={entity} + foreignKeys={foreignKeys} + url={`/reference/segments/${segment.id}/fields/${entity.id}`} + icon={getIconForField(entity)} + isEditing={isEditing} + formField={fields[entity.id]} + /> + </li> + ), + )} + </List> </div> - <List> - {Object.values(entities).map( - entity => - entity && - entity.id && - entity.name && ( - <li className="relative" key={entity.id}> - <Field - field={entity} - foreignKeys={foreignKeys} - url={`/reference/segments/${segment.id}/fields/${entity.id}`} - icon={getIconForField(entity)} - isEditing={isEditing} - formField={fields[entity.id]} - /> - </li> - ), - )} - </List> </div> ) : ( <div className={S.empty}> diff --git a/frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx b/frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx index 8bb1779a568d57a2d40a0f59bb9ce1147ebcbda6..208e92b42b278eee36693bce65952d7f6fb6c4f6 100644 --- a/frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx +++ b/frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx @@ -11,7 +11,7 @@ import pure from "recompose/pure"; const SegmentFieldSidebar = ({ segment, field, style, className }) => ( <div className={cx(S.sidebar, className)} style={style}> - <ul> + <ul className="mx3"> <div className={S.breadcrumbs}> <Breadcrumbs className="py4" diff --git a/frontend/src/metabase/reference/segments/SegmentRevisions.jsx b/frontend/src/metabase/reference/segments/SegmentRevisions.jsx index 39740657276db422f46b6baf3b0002614e33212a..da84790a60d73a8624ed9764a4b2e41beab0dbbd 100644 --- a/frontend/src/metabase/reference/segments/SegmentRevisions.jsx +++ b/frontend/src/metabase/reference/segments/SegmentRevisions.jsx @@ -5,7 +5,6 @@ import { t } from "ttag"; import { getIn } from "icepick"; import S from "metabase/components/List.css"; -import R from "metabase/reference/Reference.css"; import * as metadataActions from "metabase/redux/metadata"; import { assignUserColors } from "metabase/lib/formatting"; @@ -97,26 +96,28 @@ export default class SegmentRevisions extends Component { > {() => Object.keys(revisions).length > 0 && tables[entity.table_id] ? ( - <div className="wrapper wrapper--trim"> - <div className={R.revisionsWrapper}> - {Object.values(revisions) - .map(revision => - revision && revision.diff ? ( - <Revision - key={revision.id} - revision={revision || {}} - tableMetadata={tables[entity.table_id] || {}} - objectName={entity.name} - currentUser={user || {}} - userColor={ - userColorAssignments[ - getIn(revision, ["user", "id"]) - ] - } - /> - ) : null, - ) - .reverse()} + <div className="wrapper"> + <div className="px3 py3 mb4 bg-white bordered"> + <div> + {Object.values(revisions) + .map(revision => + revision && revision.diff ? ( + <Revision + key={revision.id} + revision={revision || {}} + tableMetadata={tables[entity.table_id] || {}} + objectName={entity.name} + currentUser={user || {}} + userColor={ + userColorAssignments[ + getIn(revision, ["user", "id"]) + ] + } + /> + ) : null, + ) + .reverse()} + </div> </div> </div> ) : ( diff --git a/frontend/src/metabase/reference/segments/SegmentSidebar.jsx b/frontend/src/metabase/reference/segments/SegmentSidebar.jsx index e57d4f561c22d3fb9bd54152201b62b3f31b5455..384c228414be9c5aef1293267157edaa9d5797b2 100644 --- a/frontend/src/metabase/reference/segments/SegmentSidebar.jsx +++ b/frontend/src/metabase/reference/segments/SegmentSidebar.jsx @@ -17,46 +17,48 @@ const SegmentSidebar = ({ segment, user, style, className }) => ( <ul> <div className={S.breadcrumbs}> <Breadcrumbs - className="py4" + className="py4 ml3" crumbs={[[t`Segments`, "/reference/segments"], [segment.name]]} inSidebar={true} placeholder={t`Data Reference`} /> </div> - <SidebarItem - key={`/reference/segments/${segment.id}`} - href={`/reference/segments/${segment.id}`} - icon="document" - name={t`Details`} - /> - <SidebarItem - key={`/reference/segments/${segment.id}/fields`} - href={`/reference/segments/${segment.id}/fields`} - icon="fields" - name={t`Fields in this segment`} - /> - <SidebarItem - key={`/reference/segments/${segment.id}/questions`} - href={`/reference/segments/${segment.id}/questions`} - icon="all" - name={t`Questions about this segment`} - /> - {MetabaseSettings.get("enable_xrays") && ( + <ol className="mx3"> <SidebarItem - key={`/auto/dashboard/segment/${segment.id}`} - href={`/auto/dashboard/segment/${segment.id}`} - icon="bolt" - name={t`X-ray this segment`} + key={`/reference/segments/${segment.id}`} + href={`/reference/segments/${segment.id}`} + icon="document" + name={t`Details`} /> - )} - {user && user.is_superuser && ( <SidebarItem - key={`/reference/segments/${segment.id}/revisions`} - href={`/reference/segments/${segment.id}/revisions`} - icon="history" - name={t`Revision history`} + key={`/reference/segments/${segment.id}/fields`} + href={`/reference/segments/${segment.id}/fields`} + icon="field" + name={t`Fields in this segment`} /> - )} + <SidebarItem + key={`/reference/segments/${segment.id}/questions`} + href={`/reference/segments/${segment.id}/questions`} + icon="all" + name={t`Questions about this segment`} + /> + {MetabaseSettings.get("enable_xrays") && ( + <SidebarItem + key={`/auto/dashboard/segment/${segment.id}`} + href={`/auto/dashboard/segment/${segment.id}`} + icon="bolt" + name={t`X-ray this segment`} + /> + )} + {user && user.is_superuser && ( + <SidebarItem + key={`/reference/segments/${segment.id}/revisions`} + href={`/reference/segments/${segment.id}/revisions`} + icon="history" + name={t`Revision history`} + /> + )} + </ol> </ul> </div> ); diff --git a/frontend/src/metabase/selectors/settings.js b/frontend/src/metabase/selectors/settings.js index 2762e45caceb8d0694c393d997d72cd49416e78c..0d2c1d5e025cca85d2b9d07bba22e11650dc9652 100644 --- a/frontend/src/metabase/selectors/settings.js +++ b/frontend/src/metabase/selectors/settings.js @@ -1,3 +1,5 @@ +import { createSelector } from "reselect"; + // NOTE: these are "public" settings export const getIsPublicSharingEnabled = state => state.settings.values["public_sharing"]; @@ -6,6 +8,14 @@ export const getIsApplicationEmbeddingEnabled = state => // Whether or not xrays are enabled on the instance export const getXraysEnabled = state => state.settings.values["enable_xrays"]; +export const getShowHomepageData = state => + state.settings.values["show_homepage_data"]; + +export const getShowHomepageXrays = createSelector( + [getXraysEnabled, state => state.settings.values["show_homepage_xrays"]], + (enabled, show) => enabled && show, +); + // NOTE: these are admin-only settings export const getSiteUrl = state => state.settings.values["site-url"]; export const getEmbeddingSecretKey = state => diff --git a/frontend/src/metabase/setup/components/PreferencesStep.jsx b/frontend/src/metabase/setup/components/PreferencesStep.jsx index 86e20d0a591d6f828fb2c65ab009dda7c7ca79e9..435b27ac5005b2088e34353b3f11f01072ec53e2 100644 --- a/frontend/src/metabase/setup/components/PreferencesStep.jsx +++ b/frontend/src/metabase/setup/components/PreferencesStep.jsx @@ -11,6 +11,8 @@ import StepTitle from "./StepTitle"; import CollapsedStep from "./CollapsedStep"; export default class PreferencesStep extends Component { + state = { errorMessage: null }; + static propTypes = { stepNumber: PropTypes.number.isRequired, activeStep: PropTypes.number.isRequired, @@ -32,7 +34,11 @@ export default class PreferencesStep extends Component { e.preventDefault(); // okay, this is the big one. we actually submit everything to the api now and complete the process. - this.props.submitSetup(); + const { payload } = await this.props.submitSetup(); + // a successful payload is null + const errorMessage = + payload && payload.data ? getErrorMessage(payload.data) : null; + this.setState({ errorMessage }); MetabaseAnalytics.trackEvent( "Setup", @@ -113,6 +119,9 @@ export default class PreferencesStep extends Component { <div className="Form-actions"> <button className="Button Button--primary">{t`Next`}</button> {/* FIXME: <mb-form-message form="usageForm"></mb-form-message>*/} + {this.state.errorMessage && ( + <div className="text-error ml1">{this.state.errorMessage}</div> + )} </div> </form> </Box> @@ -120,3 +129,14 @@ export default class PreferencesStep extends Component { } } } + +function getErrorMessage(data) { + const { errors, message } = data; + if (message) { + return message; + } + if (errors) { + return Object.values(errors)[0]; + } + return null; +} diff --git a/frontend/src/metabase/visualizations/components/CardRenderer.jsx b/frontend/src/metabase/visualizations/components/CardRenderer.jsx index 08d744a704a862a8a585880d3cfdb3db2a498930..4cd5ca65b845efa867bb5cc04df0b4d9a2604ad7 100644 --- a/frontend/src/metabase/visualizations/components/CardRenderer.jsx +++ b/frontend/src/metabase/visualizations/components/CardRenderer.jsx @@ -3,8 +3,11 @@ import React, { Component } from "react"; import PropTypes from "prop-types"; import ReactDOM from "react-dom"; +import _ from "underscore"; import ExplicitSize from "metabase/components/ExplicitSize"; +import MetabaseAnalytics from "metabase/lib/analytics"; +import { startTimer } from "metabase/lib/performance"; import { isSameSeries } from "metabase/visualizations/lib/utils"; @@ -16,6 +19,11 @@ type Props = VisualizationProps & { renderer: (element: Element, props: VisualizationProps) => DeregisterFunction, }; +// We track this as part of the render loop. +// It's throttled to prevent pounding GA on every prop update. +// $FlowFixMe +const trackEventThrottled = _.throttle(MetabaseAnalytics.trackEvent, 10000); + @ExplicitSize({ wrapped: true }) export default class CardRenderer extends Component { props: Props; @@ -91,7 +99,12 @@ export default class CardRenderer extends Component { } try { + const t = startTimer(); this._deregister = this.props.renderer(element, this.props); + t(duration => { + const { display } = this.props.card; + trackEventThrottled("Visualization", "Render Card", display, duration); + }); } catch (err) { console.error(err); this.props.onRenderError(err.message || err); diff --git a/frontend/src/metabase/visualizations/components/ChartSettings.jsx b/frontend/src/metabase/visualizations/components/ChartSettings.jsx index fc1773096735775b416bdae79220199d8423aa3a..4023b88f04356259d0cd73d7321b34a90459aa3a 100644 --- a/frontend/src/metabase/visualizations/components/ChartSettings.jsx +++ b/frontend/src/metabase/visualizations/components/ChartSettings.jsx @@ -137,6 +137,7 @@ class ChartSettings extends Component { render() { const { + className, question, addField, noPreview, @@ -243,7 +244,7 @@ class ChartSettings extends Component { // default layout with visualization return ( - <div> + <div className={cx(className, "flex flex-column")}> {showSectionPicker && ( <div className="flex flex-no-shrink pl4 pt2 pb1">{sectionPicker}</div> )} @@ -252,7 +253,7 @@ class ChartSettings extends Component { {widgetList} </div> ) : ( - <div className="Grid"> + <div className="Grid flex-full"> <div className="Grid-cell Cell--1of3 scroll-y scroll-show border-right py4"> {widgetList} </div> diff --git a/frontend/src/metabase/visualizations/components/LegendVertical.jsx b/frontend/src/metabase/visualizations/components/LegendVertical.jsx index 44642297d9acdb017488c93f86b765a2e30ae820..50a2c560871073c00373b77972f6c8f504432806 100644 --- a/frontend/src/metabase/visualizations/components/LegendVertical.jsx +++ b/frontend/src/metabase/visualizations/components/LegendVertical.jsx @@ -20,13 +20,18 @@ export default class LegendVertical extends Component { static propTypes = {}; static defaultProps = {}; - componentDidUpdate() { + componentDidUpdate(prevProps, prevState) { // Get the bounding rectangle of the chart widget to determine if // legend items will overflow the widget area const size = ReactDOM.findDOMNode(this).getBoundingClientRect(); - // only check the height. width may flucatuate depending on the browser causing an infinite loop - if (this.state.size && size.height !== this.state.size.height) { + // check the height, width may flucatuate depending on the browser causing an infinite loop + // check overflowCount, because after setting overflowCount the height changes and it causing an infinite loop too + if ( + this.state.size && + size.height !== this.state.size.height && + prevState.overflowCount === this.state.overflowCount + ) { this.setState({ overflowCount: 0, size }); } else if (this.state.overflowCount === 0) { let overflowCount = 0; diff --git a/frontend/src/metabase/visualizations/components/TableSimple.jsx b/frontend/src/metabase/visualizations/components/TableSimple.jsx index f962604e0e8179444ea84820bd3b1adcdd38e019..b0847ea9a7798de6af581a9ee879e2484311d0ae 100644 --- a/frontend/src/metabase/visualizations/components/TableSimple.jsx +++ b/frontend/src/metabase/visualizations/components/TableSimple.jsx @@ -109,7 +109,14 @@ export default class TableSimple extends Component { let rowIndexes = _.range(0, rows.length); if (sortColumn != null) { - rowIndexes = _.sortBy(rowIndexes, rowIndex => rows[rowIndex][sortColumn]); + rowIndexes = _.sortBy(rowIndexes, rowIndex => { + let value = rows[rowIndex][sortColumn]; + // for strings we should be case insensitive + if (typeof value === "string") { + value = value.toLowerCase(); + } + return value; + }); if (sortDescending) { rowIndexes.reverse(); } diff --git a/frontend/src/metabase/visualizations/index.js b/frontend/src/metabase/visualizations/index.js index 01f32feedae3f0293d4a6f2dc2948cc2a92d8cf8..e48272017c110dcebadec80e14283737128f14be 100644 --- a/frontend/src/metabase/visualizations/index.js +++ b/frontend/src/metabase/visualizations/index.js @@ -28,6 +28,12 @@ visualizations.get = function(key) { return Map.prototype.get.call(this, key) || aliases.get(key) || Table; }; +export function getSensibleDisplays(data) { + return Array.from(visualizations) + .filter(([, viz]) => viz.isSensible && viz.isSensible(data)) + .map(([display]) => display); +} + export function registerVisualization(visualization) { if (visualization == null) { throw new Error(t`Visualization is null`); diff --git a/frontend/src/metabase/visualizations/lib/LineAreaBarPostRender.js b/frontend/src/metabase/visualizations/lib/LineAreaBarPostRender.js index 8e02745e56746e2b1219304bcfa4cbd5d3d6ce3c..8638e8c824ed681402d1f6d5c3b5272b8fba5947 100644 --- a/frontend/src/metabase/visualizations/lib/LineAreaBarPostRender.js +++ b/frontend/src/metabase/visualizations/lib/LineAreaBarPostRender.js @@ -6,6 +6,7 @@ import _ from "underscore"; import { color } from "metabase/lib/colors"; import { clipPathReference } from "metabase/lib/dom"; import { adjustYAxisTicksIfNeeded } from "./apply_axis"; +import { isHistogramBar } from "./renderer_utils"; const X_LABEL_MIN_SPACING = 2; // minimum space we want to leave between labels const X_LABEL_ROTATE_90_THRESHOLD = 24; // tick width breakpoint for switching from 45° to 90° @@ -245,6 +246,125 @@ function onRenderVoronoiHover(chart) { .order(); } +function onRenderValueLabels(chart, formatYValue, [data]) { + const hasDuplicateX = new Set(data.map(([x]) => x)).size < data.length; + if ( + !chart.settings["graph.show_values"] || // setting is off + chart.settings["stackable.stack_type"] === "normalized" || // no normalized + chart.series.length > 1 || // no multiseries + hasDuplicateX // need unique x values + ) { + return; + } + const showAll = chart.settings["graph.label_value_frequency"] === "all"; + const { display } = chart.settings.series(chart.series[0]); + + // Update `data` to use named x/y and include `showLabelBelow`. + // We need to do that before data is filtered to show every nth value. + data = data.map(([x, y], i) => { + const isLocalMin = + // first point or prior is greater than y + (i === 0 || data[i - 1][1] > y) && + // last point point or next is greater than y + (i === data.length - 1 || data[i + 1][1] > y); + const showLabelBelow = isLocalMin && display === "line"; + return { x, y, showLabelBelow }; + }); + + // use the chart body so things line up properly + const parent = chart.svg().select(".chart-body"); + + const xScale = chart.x(); + const yScale = chart.y(); + + // Ordinal bar charts and histograms need extra logic to center the label. + let xShift = 0; + if (xScale.rangeBand) { + xShift += xScale.rangeBand() / 2; + } + if (isHistogramBar({ settings: chart.settings, chartType: display })) { + // this has to match the logic in `doHistogramBarStuff` + const [x1, x2] = chart + .svg() + .selectAll("rect") + .flat() + .map(r => parseFloat(r.getAttribute("x"))); + const barWidth = x2 - x1; + xShift += barWidth / 2; + } + + const addLabels = data => { + // make sure we don't add .value-lables multiple times + parent.select(".value-labels").remove(); + // Safari had an issue with rendering paint-order: stroke. To work around + // that, we create two text labels: one for the the black text and another + // for the white outline behind it. + const labelGroups = parent + .append("svg:g") + .classed("value-labels", true) + .selectAll("g") + .data(data) + .enter() + .append("g") + .attr("transform", ({ x, y, showLabelBelow }) => { + const xPos = xShift + xScale(x); + let yPos = yScale(y) + (showLabelBelow ? 18 : -8); + // if the yPos is below the x axis, move it to be above the data point + const [yMax] = yScale.range(); + if (yPos > yMax) { + yPos = yScale(y) - 8; + } + return `translate(${xPos}, ${yPos})`; + }); + + ["value-label-outline", "value-label"].forEach(klass => + labelGroups + .append("text") + .attr("class", klass) + .attr("text-anchor", "middle") + .text(({ y }) => formatYValue(y, { compact: true })), + ); + }; + + let nth; + if (showAll) { + // show all + nth = 1; + } else { + // auto fit + // Render a sample of rows to estimate average label size. + // We use that estimate to compute the label interval. + const LABEL_PADDING = 6; + const MAX_SAMPLE_SIZE = 30; + const sampleStep = Math.ceil(data.length / MAX_SAMPLE_SIZE); + const sample = data.filter((d, i) => i % sampleStep === 0); + addLabels(sample); + const totalWidth = chart + .svg() + .selectAll(".value-label-outline") + .flat() + .reduce((sum, label) => sum + label.getBoundingClientRect().width, 0); + const labelWidth = totalWidth / sample.length + LABEL_PADDING; + + const { width: chartWidth } = chart + .svg() + .select(".axis.x") + .node() + .getBoundingClientRect(); + + nth = Math.ceil((labelWidth * data.length) / chartWidth); + } + + addLabels(data.filter((d, i) => i % nth === 0)); + + moveToTop( + chart + .svg() + .select(".value-labels") + .node().parentNode, + ); +} + function onRenderCleanupGoalAndTrend(chart, onGoalHover, isSplitAxis) { // remove dots chart.selectAll(".goal .dot, .trend .dot").remove(); @@ -378,7 +498,10 @@ function onRenderAddExtraClickHandlers(chart) { } // the various steps that get called -function onRender(chart, onGoalHover, isSplitAxis, isStacked) { +function onRender( + chart, + { onGoalHover, isSplitAxis, isStacked, formatYValue, datas }, +) { onRenderRemoveClipPath(chart); onRenderMoveContentToTop(chart); onRenderReorderCharts(chart); @@ -387,6 +510,7 @@ function onRender(chart, onGoalHover, isSplitAxis, isStacked) { onRenderEnableDots(chart); onRenderVoronoiHover(chart); onRenderCleanupGoalAndTrend(chart, onGoalHover, isSplitAxis); // do this before hiding x-axis + onRenderValueLabels(chart, formatYValue, datas); onRenderHideDisabledLabels(chart); onRenderHideDisabledAxis(chart); onRenderHideBadAxis(chart); @@ -610,15 +734,8 @@ function beforeRender(chart) { // +-------------------------------------------------------------------------------------------------------------------+ /// once chart has rendered and we can access the SVG, do customizations to axis labels / etc that you can't do through dc.js -export default function lineAndBarOnRender( - chart, - onGoalHover, - isSplitAxis, - isStacked, -) { +export default function lineAndBarOnRender(chart, args) { beforeRender(chart); - chart.on("renderlet.on-render", () => - onRender(chart, onGoalHover, isSplitAxis, isStacked), - ); + chart.on("renderlet.on-render", () => onRender(chart, args)); chart.render(); } diff --git a/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js index 9faf2198840c9d0dd58df51f6bf7e72314364c36..3455ea17a8eee9c36dc6c67bd53771e604e9b6e5 100644 --- a/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js +++ b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js @@ -30,6 +30,7 @@ import { applyChartQuantitativeXAxis, applyChartOrdinalXAxis, applyChartYAxis, + getYValueFormatter, } from "./apply_axis"; import { setupTooltips } from "./apply_tooltips"; @@ -886,12 +887,13 @@ export default function lineAreaBar( parent.render(); // apply any on-rendering functions (this code lives in `LineAreaBarPostRenderer`) - lineAndBarOnRender( - parent, + lineAndBarOnRender(parent, { onGoalHover, - yAxisProps.isSplit, - isStacked(parent.settings, datas), - ); + isSplitAxis: yAxisProps.isSplit, + isStacked: isStacked(parent.settings, datas), + formatYValue: getYValueFormatter(parent, series, yAxisProps.yExtent), + datas, + }); // only ordinal axis can display "null" values if (isOrdinal(parent.settings)) { diff --git a/frontend/src/metabase/visualizations/lib/apply_axis.js b/frontend/src/metabase/visualizations/lib/apply_axis.js index 3b57de676ab73798572d0d295d2508cfb5ddff5e..745ea5ed637a5f891d36bc4ab11b26d2027936e3 100644 --- a/frontend/src/metabase/visualizations/lib/apply_axis.js +++ b/frontend/src/metabase/visualizations/lib/apply_axis.js @@ -8,7 +8,8 @@ import moment from "moment"; import { datasetContainsNoResults } from "metabase/lib/dataset"; import { formatValue } from "metabase/lib/formatting"; -import { computeTimeseriesTicksInterval, timeseriesScale } from "./timeseries"; +import { computeTimeseriesTicksInterval } from "./timeseries"; +import timeseriesScale from "./timeseriesScale"; import { isMultipleOf, getModuloScaleFactor } from "./numeric"; import { getFriendlyName } from "./utils"; import { isHistogram } from "./renderer_utils"; @@ -356,18 +357,7 @@ export function applyChartYAxis(chart, series, yExtent, axisName) { } if (axis.setting("axis_enabled")) { - // special case for normalized stacked charts - // for normalized stacked charts the y-axis is a percentage number. In Javascript, 0.07 * 100.0 = 7.000000000000001 (try it) so we - // round that number to get something nice like "7". Then we append "%" to get a nice tick like "7%" - if (chart.settings["stackable.stack_type"] === "normalized") { - axis.axis().tickFormat(value => Math.round(value * 100) + "%"); - } else { - const metricColumn = series[0].data.cols[1]; - axis.axis().tickFormat(value => { - value = maybeRoundValueToZero(value, yExtent); - return formatValue(value, chart.settings.column(metricColumn)); - }); - } + axis.axis().tickFormat(getYValueFormatter(chart, series, yExtent)); chart.renderHorizontalGridLines(true); adjustYAxisTicksIfNeeded(axis.axis(), chart.height()); } else { @@ -427,3 +417,18 @@ export function applyChartYAxis(chart, series, yExtent, axisName) { axis.scale(scale.domain([min, max])); } } + +export function getYValueFormatter(chart, series, yExtent) { + // special case for normalized stacked charts + // for normalized stacked charts the y-axis is a percentage number. In Javascript, 0.07 * 100.0 = 7.000000000000001 (try it) so we + // round that number to get something nice like "7". Then we append "%" to get a nice tick like "7%" + if (chart.settings["stackable.stack_type"] === "normalized") { + return value => Math.round(value * 100) + "%"; + } + const metricColumn = series[0].data.cols[1]; + const columnSettings = chart.settings.column(metricColumn); + return (value, options) => { + const roundedValue = maybeRoundValueToZero(value, yExtent); + return formatValue(roundedValue, { ...columnSettings, ...options }); + }; +} diff --git a/frontend/src/metabase/visualizations/lib/fill_data.js b/frontend/src/metabase/visualizations/lib/fill_data.js index b8aa1417ff3afbb27888b8ab2f20f105c633b375..1e3196dde79b9eb9007bff1b151bbb4df26f476a 100644 --- a/frontend/src/metabase/visualizations/lib/fill_data.js +++ b/frontend/src/metabase/visualizations/lib/fill_data.js @@ -9,7 +9,7 @@ import { isHistogram, isHistogramBar, } from "./renderer_utils"; -import { timeseriesScale } from "./timeseries"; +import timeseriesScale from "./timeseriesScale"; // max number of points to "fill" // TODO: base on pixel width of chart? diff --git a/frontend/src/metabase/visualizations/lib/settings/column.js b/frontend/src/metabase/visualizations/lib/settings/column.js index e72aa5bf4acbb328a2cb26a81b04dc6f7752f396..d0bd7dc2c37589633a2efcf9ebb7a751e5bf071d 100644 --- a/frontend/src/metabase/visualizations/lib/settings/column.js +++ b/frontend/src/metabase/visualizations/lib/settings/column.js @@ -26,7 +26,6 @@ import { numberFormatterForOptions, } from "metabase/lib/formatting"; import { - DEFAULT_DATE_STYLE, getDateFormatFromStyle, hasDay, hasHour, @@ -108,6 +107,13 @@ function getDateStyleOptionsForUnit( abbreviate?: boolean = false, separator?: string, ) { + // hour-of-day shouldn't have any date style. It's handled as a time instead. + // Other date parts are handled as dates, but hour-of-day needs to use the + // time settings for 12/24 hour clock. + if (unit === "hour-of-day") { + return []; + } + const options = [ dateStyleOption("MMMM D, YYYY", unit, null, abbreviate, separator), dateStyleOption("D MMMM, YYYY", unit, null, abbreviate, separator), @@ -177,7 +183,12 @@ export const DATE_COLUMN_SETTINGS = { date_style: { title: t`Date style`, widget: "select", - default: DEFAULT_DATE_STYLE, + getDefault: ({ unit }: Column) => { + // Grab the first option's value. If there were no options (for + // hour-of-day probably), use an empty format string instead. + const [{ value = "" } = {}] = getDateStyleOptionsForUnit(unit); + return value; + }, isValid: ({ unit }: Column, settings: ColumnSettings) => { const options = getDateStyleOptionsForUnit(unit); return !!_.findWhere(options, { value: settings["date_style"] }); @@ -257,6 +268,9 @@ export const DATE_COLUMN_SETTINGS = { getProps: (column: Column, settings: ColumnSettings) => ({ options: [ timeStyleOption("h:mm A", "12-hour clock"), + ...(column.unit === "hour-of-day" + ? [timeStyleOption("h A", "12-hour clock without minutes")] + : []), timeStyleOption("k:mm", "24-hour clock"), ], }), diff --git a/frontend/src/metabase/visualizations/lib/settings/graph.js b/frontend/src/metabase/visualizations/lib/settings/graph.js index 16b466ebcc4e3811ba6aedfb23a89eb4338e857f..da86c326740777caf0ed4b7bdcc25637ec13db5a 100644 --- a/frontend/src/metabase/visualizations/lib/settings/graph.js +++ b/frontend/src/metabase/visualizations/lib/settings/graph.js @@ -278,7 +278,7 @@ export const STACKABLE_SETTINGS = { export const GRAPH_GOAL_SETTINGS = { "graph.show_goal": { section: t`Display`, - title: t`Show goal`, + title: t`Goal line`, widget: "toggle", default: false, }, @@ -300,7 +300,7 @@ export const GRAPH_GOAL_SETTINGS = { }, "graph.show_trendline": { section: t`Display`, - title: t`Show trend line`, + title: t`Trend line`, widget: "toggle", default: false, getHidden: (series, vizSettings) => { @@ -311,6 +311,43 @@ export const GRAPH_GOAL_SETTINGS = { }, }; +// with more than this many rows, don't display values on top of bars by default +const AUTO_SHOW_VALUES_MAX_ROWS = 25; + +export const GRAPH_DISPLAY_VALUES_SETTINGS = { + "graph.show_values": { + section: t`Display`, + title: t`Show values on data points`, + widget: "toggle", + getHidden: (series, vizSettings) => + series.length > 1 || vizSettings["stackable.stack_type"] === "normalized", + getDefault: ([{ card, data }]) => + // small bar graphs should have this turned on by default, + // but bar graphs that were saved without this feature shouldn't + card.original_card_id == null && + card.display === "bar" && + data.rows.length < AUTO_SHOW_VALUES_MAX_ROWS, + persistDefault: true, + }, + "graph.label_value_frequency": { + section: t`Display`, + title: t`Values to show`, + widget: "radio", + getHidden: (series, vizSettings) => + series.length > 1 || + vizSettings["graph.show_values"] !== true || + vizSettings["stackable.stack_type"] === "normalized", + props: { + options: [ + { name: t`As many as can fit nicely`, value: "fit" }, + { name: t`All`, value: "all" }, + ], + }, + default: "fit", + readDependencies: ["graph.show_values"], + }, +}; + export const GRAPH_COLORS_SETTINGS = { // DEPRECATED: replaced with "color" series setting "graph.colors": {}, @@ -507,9 +544,24 @@ export const GRAPH_AXIS_SETTINGS = { widget: "input", getHidden: (series, vizSettings) => vizSettings["graph.y_axis.labels_enabled"] === false, - getDefault: (series, vizSettings) => - series.length === 1 ? vizSettings.series(series[0]).title : null, - readDependencies: ["series"], + getDefault: (series, vizSettings) => { + if (series.length === 1) { + return vizSettings.series(series[0]).title; + } + // If there are multiple series, we check if the metric names match. + // If they do, we use that as the default y axis label. + const [metric] = vizSettings["graph.metrics"]; + const metricNames = Array.from( + new Set( + series.map(({ data: { cols } }) => { + const metricCol = cols.find(c => c.name === metric); + return metricCol && metricCol.display_name; + }), + ), + ); + return metricNames.length === 1 ? metricNames[0] : null; + }, + readDependencies: ["series", "graph.metrics"], }, // DEPRECATED" replaced with "label" series setting "graph.series_labels": {}, diff --git a/frontend/src/metabase/visualizations/lib/timeseries.js b/frontend/src/metabase/visualizations/lib/timeseries.js index b40e89e3f7299a3d226935a115932ebb76f2d777..1782ca830cd1eff45fa6dafc84525aa5e8c5a6a4 100644 --- a/frontend/src/metabase/visualizations/lib/timeseries.js +++ b/frontend/src/metabase/visualizations/lib/timeseries.js @@ -1,6 +1,5 @@ /* @flow weak */ -import d3 from "d3"; import moment from "moment-timezone"; import _ from "underscore"; @@ -200,50 +199,6 @@ export function computeTimeseriesTicksInterval(xDomain, xInterval, chartWidth) { ); } -// moment-timezone based d3 scale -export const timeseriesScale = ( - { count, interval, timezone }, - linear = d3.scale.linear(), -) => { - const ms = d => - moment.isMoment(d) ? d.valueOf() : moment.isDate(d) ? d.getTime() : d; - - const s = x => linear(ms(x)); - s.domain = x => { - if (x === undefined) { - return linear.domain().map(t => moment(t).tz(timezone)); - } - linear.domain(x.map(ms)); - return s; - }; - s.ticks = () => { - const [start, end] = s.domain(); - - const ticks = []; - let tick = start - .clone() - .tz(timezone) - .startOf(interval); - - // We want to use "round" ticks for a given interval (unit). If we're - // creating ticks every 50 years, but and the start of the domain is in 1981 - // we move it be on an even 50-year block. 1981 - (1981 % 50) => 1950; - const intervalMod = tick.get(interval); - tick.set(interval, intervalMod - (intervalMod % count)); - - while (!tick.isAfter(end)) { - if (!tick.isBefore(start)) { - ticks.push(tick); - } - tick = tick.clone().add(count, interval); - } - return ticks; - }; - s.copy = () => timeseriesScale({ count, interval, timezone }, linear); - d3.rebind(s, linear, "range", "rangeRound", "interpolate", "clamp", "invert"); - return s; -}; - // We should always have results_timezone, but just in case we fallback to UTC const DEFAULT_TIMEZONE = "Etc/UTC"; diff --git a/frontend/src/metabase/visualizations/lib/timeseriesScale.js b/frontend/src/metabase/visualizations/lib/timeseriesScale.js new file mode 100644 index 0000000000000000000000000000000000000000..ba38a2f59a4a24016d58a1bfeca528fbb6e21ff0 --- /dev/null +++ b/frontend/src/metabase/visualizations/lib/timeseriesScale.js @@ -0,0 +1,104 @@ +import d3 from "d3"; +import moment from "moment-timezone"; + +// moment-timezone based d3 scale +const timeseriesScale = ( + { count, interval, timezone }, + linear = d3.scale.linear(), +) => { + const s = x => linear(toInt(x)); + + s.domain = x => { + if (x === undefined) { + return firstAndLast(linear.domain()).map(t => moment(t).tz(timezone)); + } + x = x.map(t => moment(t).tz(timezone)); // ensure we have moment objects + if (interval === "month") { + x = domainForEvenlySpacedMonths(x, { interval, timezone }); + } + linear.domain(x.map(toInt)); + return s; + }; + + s.range = x => { + if (x === undefined) { + return firstAndLast(linear.range()); + } + if (interval === "month") { + x = rangeForEvenlySpacedMonths(x, s.domain(), { interval, timezone }); + } + linear.range(x); + return s; + }; + + s.ticks = () => ticksForRange(s.domain(), { count, timezone, interval }); + + s.copy = () => timeseriesScale({ count, interval, timezone }, linear); + + d3.rebind(s, linear, "rangeRound", "interpolate", "clamp", "invert"); + + return s; +}; + +function domainForEvenlySpacedMonths(domain, { timezone, interval }) { + return wrapValues( + ticksForRange(domain, { count: 1, timezone, interval }), + domain, + ); +} + +function rangeForEvenlySpacedMonths(range, domain, { timezone, interval }) { + const plainScale = d3.scale + .linear() + .domain(domain.map(toInt)) + .range(range); + const ticks = ticksForRange(domain, { count: 1, timezone, interval }); + const [start, end] = firstAndLast(ticks).map(t => plainScale(toInt(t))); + const step = (end - start) / (ticks.length - 1); + const monthPoints = d3.range(ticks.length).map(i => start + i * step); + return wrapValues(monthPoints, range); +} + +function wrapValues(values, [start, end]) { + const [firstValue, lastValue] = firstAndLast(values); + return [ + ...(start < firstValue ? [start] : []), + ...values, + ...(lastValue < end ? [end] : []), + ]; +} + +function firstAndLast(a) { + if (a == null || a.length < 2) { + return a; + } + return [a[0], a[a.length - 1]]; +} + +function ticksForRange([start, end], { count, timezone, interval }) { + const ticks = []; + let tick = start + .clone() + .tz(timezone) + .startOf(interval); + + // We want to use "round" ticks for a given interval (unit). If we're + // creating ticks every 50 years, but and the start of the domain is in 1981 + // we move it be on an even 50-year block. 1981 - (1981 % 50) => 1950; + const intervalMod = tick.get(interval); + tick.set(interval, intervalMod - (intervalMod % count)); + + while (!tick.isAfter(end)) { + if (!tick.isBefore(start)) { + ticks.push(tick); + } + tick = tick.clone().add(count, interval); + } + return ticks; +} + +function toInt(d) { + return moment.isMoment(d) ? d.valueOf() : moment.isDate(d) ? d.getTime() : d; +} + +export default timeseriesScale; diff --git a/frontend/src/metabase/visualizations/visualizations/AreaChart.jsx b/frontend/src/metabase/visualizations/visualizations/AreaChart.jsx index e66b4638df036ae6325fdd74d2510c82ff719232..f30ce548c4bb28bc9487005eaadf4709fe6558db 100644 --- a/frontend/src/metabase/visualizations/visualizations/AreaChart.jsx +++ b/frontend/src/metabase/visualizations/visualizations/AreaChart.jsx @@ -12,6 +12,7 @@ import { GRAPH_GOAL_SETTINGS, GRAPH_COLORS_SETTINGS, GRAPH_AXIS_SETTINGS, + GRAPH_DISPLAY_VALUES_SETTINGS, } from "../lib/settings/graph"; export default class AreaChart extends LineAreaBarChart { @@ -27,6 +28,7 @@ export default class AreaChart extends LineAreaBarChart { ...GRAPH_GOAL_SETTINGS, ...GRAPH_COLORS_SETTINGS, ...GRAPH_AXIS_SETTINGS, + ...GRAPH_DISPLAY_VALUES_SETTINGS, }; static renderer = areaRenderer; diff --git a/frontend/src/metabase/visualizations/visualizations/BarChart.jsx b/frontend/src/metabase/visualizations/visualizations/BarChart.jsx index 270422a76076d28886f6de5b656285749f8bcd23..f48d3b13f37af5dff9842f21a2ebe7213f35acb0 100644 --- a/frontend/src/metabase/visualizations/visualizations/BarChart.jsx +++ b/frontend/src/metabase/visualizations/visualizations/BarChart.jsx @@ -11,6 +11,7 @@ import { GRAPH_GOAL_SETTINGS, GRAPH_COLORS_SETTINGS, GRAPH_AXIS_SETTINGS, + GRAPH_DISPLAY_VALUES_SETTINGS, } from "../lib/settings/graph"; export default class BarChart extends LineAreaBarChart { @@ -25,6 +26,7 @@ export default class BarChart extends LineAreaBarChart { ...GRAPH_GOAL_SETTINGS, ...GRAPH_COLORS_SETTINGS, ...GRAPH_AXIS_SETTINGS, + ...GRAPH_DISPLAY_VALUES_SETTINGS, }; static renderer = barRenderer; diff --git a/frontend/src/metabase/visualizations/visualizations/LineChart.jsx b/frontend/src/metabase/visualizations/visualizations/LineChart.jsx index b99ae590a044bd19095abfb1e9cfb37f58b0db14..d536a8843608b1d44f06821a6a8946b895cca7f2 100644 --- a/frontend/src/metabase/visualizations/visualizations/LineChart.jsx +++ b/frontend/src/metabase/visualizations/visualizations/LineChart.jsx @@ -10,6 +10,7 @@ import { GRAPH_GOAL_SETTINGS, GRAPH_COLORS_SETTINGS, GRAPH_AXIS_SETTINGS, + GRAPH_DISPLAY_VALUES_SETTINGS, } from "../lib/settings/graph"; export default class LineChart extends LineAreaBarChart { @@ -24,6 +25,7 @@ export default class LineChart extends LineAreaBarChart { ...GRAPH_GOAL_SETTINGS, ...GRAPH_COLORS_SETTINGS, ...GRAPH_AXIS_SETTINGS, + ...GRAPH_DISPLAY_VALUES_SETTINGS, }; static renderer = lineRenderer; diff --git a/frontend/src/metabase/visualizations/visualizations/Map.jsx b/frontend/src/metabase/visualizations/visualizations/Map.jsx index 44782555bc9a2038f51fb4bf4f8915a93e65a7e0..e37b6476df9932b862b6973148bf7759a4474067 100644 --- a/frontend/src/metabase/visualizations/visualizations/Map.jsx +++ b/frontend/src/metabase/visualizations/visualizations/Map.jsx @@ -45,7 +45,10 @@ export default class Map extends Component { static minSize = { width: 4, height: 4 }; static isSensible({ cols, rows }) { - return true; + return ( + PinMap.isSensible({ cols, rows }) || + ChoroplethMap.isSensible({ cols, rows }) + ); } static placeholderSeries = [ diff --git a/frontend/src/metabase/visualizations/visualizations/Table.jsx b/frontend/src/metabase/visualizations/visualizations/Table.jsx index e5e2fd175f1c116b55556ff657b4fec17d321d9e..3fea847336f4ec915c11d197098a4b90c27a9a35 100644 --- a/frontend/src/metabase/visualizations/visualizations/Table.jsx +++ b/frontend/src/metabase/visualizations/visualizations/Table.jsx @@ -176,6 +176,7 @@ export default class Table extends Component { ]) => cols.map(col => ({ name: col.name, + fieldRef: col.field_ref, enabled: col.visibility_type !== "details-only", })), getProps: ([ diff --git a/frontend/test/.eslintrc b/frontend/test/.eslintrc index 1cd6314fbfd1f8f7a14d53b2058bbc8115419913..9c10b8c077e5d8bd043ac4a50f0fe0e7c77a0e4a 100644 --- a/frontend/test/.eslintrc +++ b/frontend/test/.eslintrc @@ -1,15 +1,14 @@ { - "rules": { - "jasmine/no-focused-tests": 2, - "jasmine/no-suite-dupes": [2, "branch"], - "import/no-commonjs": 0, - "no-color-literals": 0 - }, - "env": { - "jasmine": true, - "node": true - }, - "plugins": [ - "jasmine" - ] + "rules": { + "jasmine/no-focused-tests": 2, + "jasmine/no-suite-dupes": [2, "branch"], + "import/no-commonjs": 0, + "no-color-literals": 0 + }, + "env": { + "jasmine": true, + "cypress/globals": true, + "node": true + }, + "plugins": ["jasmine", "cypress"] } diff --git a/frontend/test/__runner__/backend.js b/frontend/test/__runner__/backend.js index 0fe1299cf6ba0481404516c7d433cdc0019dbb50..6333ace116274b245162e1c8184333e79651ee6d 100644 --- a/frontend/test/__runner__/backend.js +++ b/frontend/test/__runner__/backend.js @@ -6,7 +6,7 @@ import { spawn } from "child_process"; import fetch from "isomorphic-fetch"; import { delay } from "../../src/metabase/lib/promise"; -export const DEFAULT_DB = __dirname + "/test_db_fixture.db"; +export const DEFAULT_DB_KEY = "/test_db_fixture.db"; let testDbId = 0; const getDbFile = () => @@ -16,24 +16,22 @@ let port = 4000; const getPort = () => port++; export const BackendResource = createSharedResource("BackendResource", { - getKey({ dbKey = DEFAULT_DB }) { + getKey({ dbKey = DEFAULT_DB_KEY }) { return dbKey || {}; }, - create({ dbKey = DEFAULT_DB }) { + create({ dbKey = DEFAULT_DB_KEY }) { const dbFile = getDbFile(); - if (!dbKey) { - dbKey = dbFile; - } - if (process.env["E2E_HOST"] && dbKey === DEFAULT_DB) { + const absoluteDbKey = dbKey ? __dirname + dbKey : dbFile; + if (process.env["E2E_HOST"] && dbKey === DEFAULT_DB_KEY) { return { - dbKey: dbKey, + dbKey: absoluteDbKey, host: process.env["E2E_HOST"], process: { kill: () => {} }, }; } else { const port = getPort(); return { - dbKey: dbKey, + dbKey: absoluteDbKey, dbFile: dbFile, host: `http://localhost:${port}`, port: port, diff --git a/frontend/test/__runner__/cypress_db_fixture.db.mv.db b/frontend/test/__runner__/cypress_db_fixture.db.mv.db new file mode 100644 index 0000000000000000000000000000000000000000..139284d86adb607d5e06cb7497ed862ca7619508 Binary files /dev/null and b/frontend/test/__runner__/cypress_db_fixture.db.mv.db differ diff --git a/frontend/test/__runner__/run_cypress_tests.js b/frontend/test/__runner__/run_cypress_tests.js new file mode 100644 index 0000000000000000000000000000000000000000..444bd2782b1ebc3d18236aeb868b493c5cb065c6 --- /dev/null +++ b/frontend/test/__runner__/run_cypress_tests.js @@ -0,0 +1,172 @@ +import { spawn } from "child_process"; +import fs from "fs"; +import chalk from "chalk"; + +// Use require for BackendResource to run it after the mock afterAll has been set +const BackendResource = require("./backend.js").BackendResource; + +// Backend that uses a test fixture database +const serverWithTestDbFixture = BackendResource.get({ + dbKey: "/cypress_db_fixture.db", +}); +const testFixtureBackendHost = serverWithTestDbFixture.host; + +const serverWithPlainDb = BackendResource.get({ dbKey: "" }); +const plainBackendHost = serverWithPlainDb.host; + +const userArgs = process.argv.slice(2); +const isOpenMode = userArgs[0] === "--open"; + +function readFile(fileName) { + return new Promise(function(resolve, reject) { + fs.readFile(fileName, "utf8", (err, data) => { + if (err) { + reject(err); + } + resolve(data); + }); + }); +} + +const login = async (apiHost, user) => { + const loginFetchOptions = { + method: "POST", + headers: new Headers({ + Accept: "application/json", + "Content-Type": "application/json", + }), + body: JSON.stringify(user), + }; + const result = await fetch(apiHost + "/api/session", loginFetchOptions); + + let resultBody = null; + try { + resultBody = await result.text(); + resultBody = JSON.parse(resultBody); + } catch (e) {} + + if (result.status >= 200 && result.status <= 299) { + console.log(`Successfully created a shared login with id ${resultBody.id}`); + return resultBody; + } else { + const error = { status: result.status, data: resultBody }; + console.log("A shared login attempt failed with the following error:"); + console.log(error, { depth: null }); + throw error; + } +}; + +const init = async () => { + if (!isOpenMode) { + console.log( + chalk.yellow( + "If you are developing locally, prefer using `yarn test-cypress-open` instead.\n", + ), + ); + } + + try { + const version = await readFile( + __dirname + "/../../../resources/version.properties", + ); + console.log(chalk.bold("Running e2e test runner with this build:")); + process.stdout.write(chalk.cyan(version)); + console.log( + chalk.bold( + "If that version seems too old, please run `./bin/build version uberjar`.\n", + ), + ); + } catch (e) { + console.log( + chalk.bold( + "No version file found. Please run `./bin/build version uberjar`.", + ), + ); + process.exit(1); + } + + console.log( + chalk.bold("1/4 Starting first backend with test H2 database fixture"), + ); + console.log( + chalk.cyan( + "You can update the fixture by running a local instance against it:\n`MB_DB_TYPE=h2 MB_DB_FILE=frontend/test/__runner__/cypress_db_fixture.db lein run`", + ), + ); + await BackendResource.start(serverWithTestDbFixture); + + console.log(chalk.bold("2/4 Starting second backend with plain database")); + await BackendResource.start(serverWithPlainDb); + + console.log(chalk.bold("3/4 Creating a shared login session for backend 1")); + const sharedAdminLoginSession = await login(testFixtureBackendHost, { + username: "bob@metabase.com", + password: "12341234", + }); + const sharedNormalLoginSession = await login(testFixtureBackendHost, { + username: "robert@metabase.com", + password: "12341234", + }); + + console.log(chalk.bold("4/4 Starting Cypress")); + + const serializedEnv = Object.entries({ + TEST_FIXTURE_SHARED_ADMIN_LOGIN_SESSION_ID: sharedAdminLoginSession.id, + TEST_FIXTURE_SHARED_NORMAL_LOGIN_SESSION_ID: sharedNormalLoginSession.id, + PLAIN_DB_HOST: plainBackendHost, + }) + .map(a => a.join("=")) + .join(","); + + const cypressProcess = spawn( + "yarn", + [ + "cypress", + isOpenMode ? "open" : "run", + "--config-file", + "frontend/test/cypress.json", + "--config", + `baseUrl=${testFixtureBackendHost}`, + "--env", + serializedEnv, + ...(process.env["CI"] + ? [ + "--reporter", + "junit", + "--reporter-options", + "mochaFile=cypress/results/results-[hash].xml", + ] + : []), + ], + { stdio: "inherit" }, + ); + + return new Promise((resolve, reject) => { + cypressProcess.on("exit", resolve); + }); +}; + +const cleanup = async (exitCode = 0) => { + console.log(chalk.bold("Cleaning up...")); + await BackendResource.stop(serverWithTestDbFixture); + await BackendResource.stop(serverWithPlainDb); + process.exit(exitCode); +}; + +const launch = () => + init() + .then(cleanup) + .catch(e => { + console.error(e); + cleanup(1); + }); + +launch(); + +process.on("SIGTERM", () => { + cleanup(); +}); + +process.on("SIGINT", () => { + cleanup(); +}); diff --git a/frontend/test/__runner__/run_timezone_tests b/frontend/test/__runner__/run_timezone_tests new file mode 100755 index 0000000000000000000000000000000000000000..62a54caf450da83501cd50e19b5b7107d333545b --- /dev/null +++ b/frontend/test/__runner__/run_timezone_tests @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +set -eu + +# Test a variety of timezones with/without DST +# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones +# +# TZ UTC offset UTC DST offset +# ================================================= +# Etc/UTC +00:00 +00:00 +# Europe/London +00:00 +01:00 +# America/Phoenix −07:00 −07:00 +# America/Los_Angeles −08:00 −07:00 +# Asia/Kathmandu +05:45 +05:45 +# Asia/Hong_Kong +08:00 +08:00 + + +DEFAULT_TIMEZONES="Etc/UTC Europe/London America/Los_Angeles America/Phoenix Asia/Kathmandu Asia/Hong_Kong" + +tzs=${TIMEZONES:-$DEFAULT_TIMEZONES} + +results="" +passed="" +failed="" + +for tz in $tzs; do + echo "Running unit tests in timezone $tz" + if TZ="$tz" METABASE_TEST_TIMEZONES="$tzs" yarn run test-timezones-unit; then + passed="$passed $tz" + results="$results \e[32m✓\e[0m $tz\n" + else + failed="$failed $tz" + results="$results \e[31m✕\e[0m $tz\n" + fi +done + +echo "Timezone tests:" +printf "$results" + +if [[ ! -z "$failed" ]]; then + exit 1 +fi diff --git a/frontend/test/__support__/cypress.js b/frontend/test/__support__/cypress.js new file mode 100644 index 0000000000000000000000000000000000000000..fb9992a39aa395361225326b6d6652f10d0da7fd --- /dev/null +++ b/frontend/test/__support__/cypress.js @@ -0,0 +1,13 @@ +export function signInAsAdmin() { + const sessionId = Cypress.env("TEST_FIXTURE_SHARED_ADMIN_LOGIN_SESSION_ID"); + cy.setCookie("metabase.SESSION", sessionId); +} + +export function signInAsNormalUser() { + const sessionId = Cypress.env("TEST_FIXTURE_SHARED_NORMAL_LOGIN_SESSION_ID"); + cy.setCookie("metabase.SESSION", sessionId); +} + +export const plainDbHost = Cypress.env("PLAIN_DB_HOST"); + +Cypress.on("uncaught:exception", (err, runnable) => false); diff --git a/frontend/test/__support__/mocks.js b/frontend/test/__support__/mocks.js index f8ce89b75e29e72e63e1cdc4534d4d26482c4b91..43da1f4b82f9da0d31acb256762d40104a684ed6 100644 --- a/frontend/test/__support__/mocks.js +++ b/frontend/test/__support__/mocks.js @@ -23,6 +23,7 @@ jest.mock("ace/mode-sql", () => {}, { virtual: true }); jest.mock("ace/mode-mysql", () => {}, { virtual: true }); jest.mock("ace/mode-pgsql", () => {}, { virtual: true }); jest.mock("ace/mode-sqlserver", () => {}, { virtual: true }); +jest.mock("ace/snippets/text", () => {}, { virtual: true }); jest.mock("ace/snippets/sql", () => {}, { virtual: true }); jest.mock("ace/snippets/mysql", () => {}, { virtual: true }); jest.mock("ace/snippets/pgsql", () => {}, { virtual: true }); diff --git a/frontend/test/__support__/sample_dataset_fixture.json b/frontend/test/__support__/sample_dataset_fixture.json index 92a998a6b8eeb6e30da39e67ae466e55d32f9045..a00bd06cd9dbe6bc4870384d2e5240f048387c5e 100644 --- a/frontend/test/__support__/sample_dataset_fixture.json +++ b/frontend/test/__support__/sample_dataset_fixture.json @@ -521,7 +521,7 @@ "6": { "description": "The total billed amount.", "table_id": 1, - "special_type": null, + "special_type": "type/Currency", "name": "TOTAL", "caveats": null, "fk_target_field_id": null, @@ -1387,4 +1387,4 @@ 1 ] } -} \ No newline at end of file +} diff --git a/frontend/test/__support__/timezones.js b/frontend/test/__support__/timezones.js new file mode 100644 index 0000000000000000000000000000000000000000..55cb8170bdf051b105917f155eaefb1f3c8dd5f8 --- /dev/null +++ b/frontend/test/__support__/timezones.js @@ -0,0 +1,16 @@ +export default function testAcrossTimezones(runTests) { + // run_timezone_tests sets "TZ" environment variable to change the timezone + const clientTz = process.env["TZ"] || "[default]"; + // run_timezone_tests also sets "METABASE_TEST_TIMEZONES" to list of timezones + const reportTzs = (process.env["METABASE_TEST_TIMEZONES"] || "Etc/UTC").split( + " ", + ); + + describe(`client timezone ${clientTz}`, () => { + reportTzs.map(reportTz => { + describe(`report timezone ${reportTz}`, () => { + runTests(reportTz); + }); + }); + }); +} diff --git a/frontend/test/cypress-plugins.js b/frontend/test/cypress-plugins.js new file mode 100644 index 0000000000000000000000000000000000000000..c9dd207be03c0552fbc55b2aa41640b572bf8661 --- /dev/null +++ b/frontend/test/cypress-plugins.js @@ -0,0 +1,25 @@ +// *********************************************************** +// This example plugins/index.js can be used to load plugins +// +// You can change the location of this file or turn off loading +// the plugins file with the 'pluginsFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/plugins-guide +// *********************************************************** + +// This function is called when a project is opened or re-opened (e.g. due to +// the project's config changing) +const webpack = require("@cypress/webpack-preprocessor"); + +module.exports = (on, config) => { + // `on` is used to hook into various events Cypress emits + // `config` is the resolved Cypress config + const { resolve } = require("../../webpack.config.js"); + const options = { + webpackOptions: { resolve }, + watchOptions: {}, + }; + + on("file:preprocessor", webpack(options)); +}; diff --git a/frontend/test/cypress.json b/frontend/test/cypress.json new file mode 100644 index 0000000000000000000000000000000000000000..08d537427b2bc7761d035d358e57b2610500bd79 --- /dev/null +++ b/frontend/test/cypress.json @@ -0,0 +1,6 @@ +{ + "testFiles": "**/*.cy.spec.js", + "pluginsFile": "frontend/test/cypress-plugins.js", + "integrationFolder": "frontend/test", + "supportFile": "frontend/test/__support__/cypress.js" +} diff --git a/frontend/test/metabase-bootstrap.js b/frontend/test/metabase-bootstrap.js index e088c84fc5fc9edcaaed268a4e8658a85580bffb..2fc9396e1eb379bd02ba737a3a2d1b15e47cbf54 100644 --- a/frontend/test/metabase-bootstrap.js +++ b/frontend/test/metabase-bootstrap.js @@ -22,37 +22,47 @@ window.MetabaseBootstrap = { types: { "type/DruidHyperUnique": ["type/*"], "type/Longitude": ["type/Coordinate"], + "type/TimeWithTZ": ["type/Time"], "type/IPAddress": ["type/TextLike"], + "type/TimeWithLocalTZ": ["type/TimeWithTZ"], "type/URL": ["type/Text"], "type/BigInteger": ["type/Integer"], "type/Category": ["type/Special"], "type/Owner": ["type/User"], "type/TextLike": ["type/*"], - "type/Discount": ["type/Number"], + "type/Discount": ["type/Currency"], "type/UNIXTimestampSeconds": ["type/UNIXTimestamp"], "type/PostgresEnum": ["type/Text"], - "type/Time": ["type/DateTime"], + "type/Time": ["type/Temporal"], "type/Integer": ["type/Number"], + "type/Currency": ["type/Float"], "type/Author": ["type/User"], - "type/Cost": ["type/Number"], + "type/Cost": ["type/Currency"], "type/Quantity": ["type/Integer"], + "type/Instant": ["type/DateTimeWithLocalTZ"], "type/Number": ["type/*"], "type/JoinTimestamp": ["type/DateTime"], "type/Subscription": ["type/Category"], + "type/DeletionTime": ["type/Date", "type/DeletionTimestamp"], "type/State": ["type/Category", "type/Address", "type/Text"], + "type/CancelationDate": ["type/Date", "type/CancelationTimestamp"], + "type/CancelationTime": ["type/Date", "type/CancelationTimestamp"], + "type/DeletionDate": ["type/Date", "type/DeletionTimestamp"], + "type/DateTimeWithZoneID": ["type/DateTimeWithTZ"], "type/Address": ["type/*"], "type/Source": ["type/Category"], "type/Name": ["type/Category", "type/Text"], "type/Decimal": ["type/Float"], "type/Birthdate": ["type/Date"], - "type/Date": ["type/DateTime"], + "type/Date": ["type/Temporal"], "type/Text": ["type/*"], "type/FK": ["type/Special"], "type/SerializedJSON": ["type/Text", "type/Collection"], + "type/DateTimeWithZoneOffset": ["type/DateTimeWithTZ"], "type/MongoBSONID": ["type/TextLike"], "type/Duration": ["type/Number"], + "type/Temporal": ["type/*"], "type/Float": ["type/Number"], - "type/Currency": ["type/Float"], "type/CreationTimestamp": ["type/DateTime"], "type/Email": ["type/Text"], "type/City": ["type/Category", "type/Address", "type/Text"], @@ -60,29 +70,38 @@ window.MetabaseBootstrap = { "type/Special": ["type/*"], "type/Dictionary": ["type/Collection"], "type/Description": ["type/Text"], + "type/JoinTime": ["type/JoinTimestamp", "type/Date"], "type/Company": ["type/Category"], "type/PK": ["type/Special"], "type/Latitude": ["type/Coordinate"], + "type/CreationTime": ["type/Time", "type/CreationTimestamp"], "type/Coordinate": ["type/Float"], "type/UUID": ["type/Text"], "type/Country": ["type/Category", "type/Address", "type/Text"], + "type/DateTimeWithTZ": ["type/DateTime"], + "type/JoinDate": ["type/JoinTimestamp", "type/Date"], "type/Boolean": ["type/Category", "type/*"], - "type/GrossMargin": ["type/Number"], - "type/AvatarURL": ["type/URL"], + "type/CancelationTimestamp": ["type/DateTime"], + "type/GrossMargin": ["type/Currency"], + "type/CreationDate": ["type/Date", "type/CreationTimestamp"], + "type/AvatarURL": ["type/ImageURL"], "type/Share": ["type/Float"], "type/Product": ["type/Category"], "type/ImageURL": ["type/URL"], - "type/Price": ["type/Number"], + "type/Price": ["type/Currency"], "type/UNIXTimestampMilliseconds": ["type/UNIXTimestamp"], "type/Collection": ["type/*"], "type/User": ["type/*"], "type/Array": ["type/Collection"], - "type/Income": ["type/Number"], + "type/Income": ["type/Currency"], "type/Comment": ["type/Text"], + "type/DeletionTimestamp": ["type/DateTime"], + "type/TimeWithZoneOffset": ["type/TimeWithTZ"], "type/Score": ["type/Number"], "type/ZipCode": ["type/Address", "type/Text"], - "type/DateTime": ["type/*"], - "type/UNIXTimestamp": ["type/Integer", "type/DateTime"], + "type/DateTime": ["type/Temporal"], + "type/DateTimeWithLocalTZ": ["type/DateTimeWithTZ"], + "type/UNIXTimestamp": ["type/Integer", "type/Instant"], "type/Enum": ["type/Category", "type/*"], }, }; diff --git a/frontend/test/metabase-lib/lib/Dimension.unit.spec.js b/frontend/test/metabase-lib/lib/Dimension.unit.spec.js index d5fd21737711ca1906d972abea0c05e243cf2793..ab733bd5fd686bcd9f0037fe4eb65b33a80430b2 100644 --- a/frontend/test/metabase-lib/lib/Dimension.unit.spec.js +++ b/frontend/test/metabase-lib/lib/Dimension.unit.spec.js @@ -1,5 +1,11 @@ import Dimension, { FKDimension } from "metabase-lib/lib/Dimension"; -import { metadata, ORDERS, PRODUCTS } from "__support__/sample_dataset_fixture"; +import StructuredQuery from "metabase-lib/lib/queries/StructuredQuery"; +import { + metadata, + ORDERS, + PRODUCTS, + SAMPLE_DATASET, +} from "__support__/sample_dataset_fixture"; describe("Dimension", () => { describe("STATIC METHODS", () => { @@ -195,7 +201,7 @@ describe("Dimension", () => { name: "TOTAL", display_name: "Total", base_type: "type/Float", - special_type: null, + special_type: "type/Currency", field_ref: ["field-id", ORDERS.TOTAL.id], }); }); @@ -392,7 +398,7 @@ describe("Dimension", () => { name: "TOTAL", display_name: "Total", base_type: "type/Float", - special_type: null, + special_type: "type/Currency", field_ref: [ "binning-strategy", ["field-id", ORDERS.TOTAL.id], @@ -486,7 +492,7 @@ describe("Dimension", () => { name: "TOTAL", display_name: "Total", base_type: "type/Float", - special_type: null, + special_type: "type/Currency", field_ref: ["joined-field", "join1", ["field-id", ORDERS.TOTAL.id]], }); }); @@ -502,6 +508,32 @@ describe("Dimension", () => { expect(dimension.mbql()).toEqual(["aggregation", 1]); }); }); + + describe("column()", () => { + function sumOf(column) { + const query = new StructuredQuery(ORDERS.question(), { + type: "query", + database: SAMPLE_DATASET.id, + query: { + "source-table": ORDERS.id, + aggregation: [["sum", ["field-id", column.id]]], + }, + }); + return Dimension.parseMBQL(["aggregation", 0], metadata, query); + } + + it("should clear unaggregated special types", () => { + const { special_type } = sumOf(ORDERS.PRODUCT_ID).column(); + + expect(special_type).toBe(undefined); + }); + + it("should retain aggregated special types", () => { + const { special_type } = sumOf(ORDERS.TOTAL).column(); + + expect(special_type).toBe("type/Currency"); + }); + }); }); }); }); diff --git a/frontend/test/metabase-lib/lib/Question.unit.spec.js b/frontend/test/metabase-lib/lib/Question.unit.spec.js index 774b5580847f0c222fc547ef525d89cc081c8781..cf3c1578c6dd0a747bd285b60f1a40810e1edb6d 100644 --- a/frontend/test/metabase-lib/lib/Question.unit.spec.js +++ b/frontend/test/metabase-lib/lib/Question.unit.spec.js @@ -267,6 +267,25 @@ describe("Question", () => { expect(scalarQuestion.display()).toBe("scalar"); }); }); + describe("setDefaultDisplay", () => { + it("sets display to 'scalar' for order count", () => { + const question = new Question( + orders_count_card, + metadata, + ).setDefaultDisplay(); + + expect(question.display()).toBe("scalar"); + }); + + it("should not set the display to scalar table was selected", () => { + const question = new Question(orders_count_card, metadata) + .setSelectedDisplay("table") + .setSensibleDisplays(["table", "scalar"]) + .setDefaultDisplay(); + + expect(question.display()).toBe("table"); + }); + }); }); // TODO: These are mode-dependent and should probably be tied to modes diff --git a/frontend/test/metabase/admin/people/people.cy.spec.js b/frontend/test/metabase/admin/people/people.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..7ca47a054088a8735619d1cef69ec1aaa7504428 --- /dev/null +++ b/frontend/test/metabase/admin/people/people.cy.spec.js @@ -0,0 +1,31 @@ +import { signInAsAdmin } from "__support__/cypress"; + +describe("admin/people", () => { + beforeEach(signInAsAdmin); + + describe("user management", () => { + it("should render", () => { + cy.visit("admin/people"); + cy.contains("People"); + }); + it("should allow admin to create new users", () => { + cy.visit("admin/people"); + cy.contains("Add someone").click(); + cy.contains("First name") + .next() + .type("Testy"); + cy.contains("Last name") + .next() + .type("McTestface"); + // bit of a hack since there are multiple "Email" nodes + cy.get("input[name='email']").type( + `testy${Math.round(Math.random() * 100000)}@metabase.com`, + ); + cy.contains("Create").click(); + cy.contains("has been added"); + cy.contains("Show").click(); + cy.contains("Done").click(); + cy.contains("Testy"); + }); + }); +}); diff --git a/frontend/test/metabase/admin/settings/settings.cy.spec.js b/frontend/test/metabase/admin/settings/settings.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..5d0dcebecfc1bdbd7f1bab0c77ef855485ff266f --- /dev/null +++ b/frontend/test/metabase/admin/settings/settings.cy.spec.js @@ -0,0 +1,67 @@ +import { signInAsAdmin } from "__support__/cypress"; + +describe("admin/settings", () => { + beforeEach(signInAsAdmin); + + it("should save a setting", () => { + cy.server(); + cy.route("PUT", "**/admin-email").as("saveSettings"); + + cy.visit("admin/settings/general"); + + // aliases don't last past refreshes, so create a function to grab the input + // rather than aliasing it with .as() + const emailInput = () => + cy + .contains("Email Address for Help Requests") + .parent() + .parent() + .find("input"); + + emailInput() + .clear() + .type("other.email@metabase.com") + .blur(); + cy.wait("@saveSettings"); + + cy.visit("admin/settings/general"); + // after we refreshed, the field should still be "other.email" + emailInput().should("have.value", "other.email@metabase.com"); + + // reset the email + emailInput() + .clear() + .type("bob@metabase.com") + .blur(); + cy.wait("@saveSettings"); + }); + + it("should update the formatting", () => { + cy.server(); + cy.route("PUT", "**/custom-formatting").as("saveFormatting"); + + // update the formatting + cy.visit("admin/settings/formatting"); + cy.contains("17:24 (24-hour clock)").click(); + cy.wait("@saveFormatting"); + + // check the new formatting in a question + cy.visit("/question/new"); + cy.contains("Simple question").click(); + cy.contains("Sample Dataset").click(); + cy.contains("Orders").click(); + cy.contains(/^February 11, 2019, 21:40$/).debug(); + + // reset the formatting + cy.visit("admin/settings/formatting"); + cy.contains("5:24 PM (12-hour clock)").click(); + cy.wait("@saveFormatting"); + + // check the reset formatting in a question + cy.visit("/question/new"); + cy.contains("Simple question").click(); + cy.contains("Sample Dataset").click(); + cy.contains("Orders").click(); + cy.contains(/^February 11, 2019, 9:40 PM$/); + }); +}); diff --git a/frontend/test/metabase/dashboard/dashboard.cy.spec.js b/frontend/test/metabase/dashboard/dashboard.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..b77fe5b490a2cb6550d5b0bd2a9bd1232149bc50 --- /dev/null +++ b/frontend/test/metabase/dashboard/dashboard.cy.spec.js @@ -0,0 +1,79 @@ +import { signInAsAdmin } from "__support__/cypress"; + +describe("dashboard", () => { + beforeEach(signInAsAdmin); + + it("should have the correct embed snippet", () => { + cy.visit("/dashboard/1"); + cy.get(".Icon-share").click(); + cy.contains(/Embed this .* in an application/).click(); + cy.contains("Code").click(); + + const JS_CODE = `// you will need to install via 'npm install jsonwebtoken' or in your package.json + +var jwt = require("jsonwebtoken"); + +var METABASE_SITE_URL = "http://localhost:3000"; +var METABASE_SECRET_KEY = "e893e786425e7604263d8d9590937e7a59d41d940fe99d529690b0e2cd3662a5"; + +var payload = { + resource: { dashboard: 1 }, + params: {}, + exp: Math.round(Date.now() / 1000) + (10 * 60) // 10 minute expiration +}; +var token = jwt.sign(payload, METABASE_SECRET_KEY); + +var iframeUrl = METABASE_SITE_URL + "/embed/dashboard/" + token + "#bordered=true&titled=true";` + .split("\n") + .join(""); + + const IFRAME_CODE = `<iframe + src="{{iframeUrl}}" + frameborder="0" + width="800" + height="600" + allowtransparency +></iframe>` + .split("\n") + .join(""); + + cy.get(".ace_content") + .first() + .should("have.text", JS_CODE); + cy.get(".ace_content") + .last() + .should("have.text", IFRAME_CODE); + }); + + it("should update the name and description", () => { + cy.visit("/dashboard/1"); + // click pencil icon to edit + cy.get(".Icon-pencil").click(); + // update title + cy.get(".Header-title input") + .first() + .type("{selectall}Orders per year"); + // update desc + cy.get(".Header-title input") + .last() + .type("{selectall}How many orders were placed in each year?"); + cy.contains("Save").click(); + + // refresh page and check that title/desc were updated + cy.visit("/dashboard/1"); + cy.contains("Orders per year") + .next() + .trigger("mouseenter"); + cy.contains("How many orders were placed in each year?"); + + // reset title/desc + cy.get(".Icon-pencil").click(); + cy.get(".Header-title input") + .first() + .type("{selectall}Orders over time"); + cy.get(".Header-title input") + .last() + .clear(); + cy.contains("Save").click(); + }); +}); diff --git a/frontend/test/metabase/dashboard/dashboard.e2e.spec.js b/frontend/test/metabase/dashboard/dashboard.e2e.spec.js index 8af4745d088af24ab3ff3cbea513fe157b616c99..86e589af37e95852ce53369e11fb7717b86c3648 100644 --- a/frontend/test/metabase/dashboard/dashboard.e2e.spec.js +++ b/frontend/test/metabase/dashboard/dashboard.e2e.spec.js @@ -29,6 +29,8 @@ import Question from "metabase/entities/questions"; import Search from "metabase/entities/search"; import Revisions from "metabase/entities/revisions"; +import { updateSetting } from "metabase/admin/settings/settings"; + import EditBar from "metabase/components/EditBar"; import { delay } from "metabase/lib/promise"; @@ -358,5 +360,58 @@ describe("Dashboard", () => { await store.waitForActions([FETCH_DASHBOARD]); expect(app.find(".DashCard")).toHaveLength(1); }); + + it("displays the correct embed snippets", async () => { + checkDashboardWasCreated(); + + const store = await createTestStore(); + await store.dispatch( + updateSetting({ key: "enable-embedding", value: true }), + ); + + await store.dispatch( + updateSetting({ + key: "embedding-secret-key", + value: + "2547733eb6a2fc0ff405f43ca94433b90b8f49aa2c667c39d3c7ce8750fcf1af", + }), + ); + + const dashboardUrl = Urls.dashboard(dashboardId); + store.pushPath(dashboardUrl); + const app = mount(store.getAppContainer()); + await store.waitForActions([FETCH_DASHBOARD]); + app.findByIcon("share").click(); + app.findByText("Embed this dashboard in an application").click(); + app.findByText("Code").click(); + const [js, html] = app.find("TextEditor").map(n => n.prop("value")); + expect(js) + .toBe(`// you will need to install via 'npm install jsonwebtoken' or in your package.json + +var jwt = require("jsonwebtoken"); + +var METABASE_SITE_URL = "http://localhost:4000"; +var METABASE_SECRET_KEY = "2547733eb6a2fc0ff405f43ca94433b90b8f49aa2c667c39d3c7ce8750fcf1af"; + +var payload = { + resource: { dashboard: ${dashboardId} }, + params: {}, + exp: Math.round(Date.now() / 1000) + (10 * 60) // 10 minute expiration +}; +var token = jwt.sign(payload, METABASE_SECRET_KEY); + +var iframeUrl = METABASE_SITE_URL + "/embed/dashboard/" + token + "#bordered=true&titled=true";`); + expect(html).toBe(`<iframe + src="{{iframeUrl}}" + frameborder="0" + width="800" + height="600" + allowtransparency +></iframe>`); + + await store.dispatch( + updateSetting({ key: "enable-embedding", value: false }), + ); + }); }); }); diff --git a/frontend/test/metabase/home/Overworld.cy.spec.js b/frontend/test/metabase/home/Overworld.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..4778a7a2f8b23c880494685d632446c2cb3ad6c4 --- /dev/null +++ b/frontend/test/metabase/home/Overworld.cy.spec.js @@ -0,0 +1,52 @@ +import { signInAsAdmin, signInAsNormalUser } from "__support__/cypress"; + +describe("homepage", () => { + describe("content management", () => { + describe("as admin", () => { + beforeEach(() => { + signInAsAdmin(); + cy.request("PUT", "api/setting/show-homepage-data", { value: true }); + cy.request("PUT", "api/setting/show-homepage-xrays", { value: true }); + }); + afterEach(() => { + cy.request("PUT", "api/setting/show-homepage-data", { value: true }); + cy.request("PUT", "api/setting/show-homepage-xrays", { value: true }); + }); + it('should be possible for an admin to hide the "Our data" section', () => { + cy.server(); + cy.route("PUT", "**/show-homepage-data").as("hideData"); + cy.visit("/"); + cy.contains("Sample Dataset"); + cy.contains("Our data") + .find(".Icon-close") + .click({ force: true }); + cy.get(".Button--danger").click(); + cy.wait("@hideData"); + cy.contains("Sample Dataset").should("have.length", 0); + // cleanup + }); + it('should be possible for an admin to hide the "xrays" section', () => { + cy.server(); + cy.route("PUT", "**/show-homepage-xrays").as("hideXrays"); + cy.visit("/"); + cy.contains("based on") + .find(".Icon-close") + .click({ force: true }); + cy.get(".Button--danger").click(); + cy.wait("@hideXrays"); + }); + }); + describe("as regular folk", () => { + beforeEach(signInAsNormalUser); + it("should not be possible for them to see the controls", () => { + cy.visit("/"); + cy.contains("Our data") + .find(".Icon-close") + .should("have.length", 0); + cy.contains("x-ray") + .find(".Icon-close") + .should("have.length", 0); + }); + }); + }); +}); diff --git a/frontend/test/metabase/lib/formatting.unit.spec.js b/frontend/test/metabase/lib/formatting.unit.spec.js index d125f1294d118b91e6ca6cf8ee7866e593f2efef..8d699440e4df69118ef1e844f83a38a9374c5d95 100644 --- a/frontend/test/metabase/lib/formatting.unit.spec.js +++ b/frontend/test/metabase/lib/formatting.unit.spec.js @@ -200,6 +200,32 @@ describe("formatting", () => { }), ).toEqual("foobar@example.com"); }); + it("should display hour-of-day with 12 hour clock", () => { + expect( + formatValue(24, { + date_style: null, + time_enabled: "minutes", + time_style: "h:mm A", + column: { + base_type: "type/DateTime", + unit: "hour-of-day", + }, + }), + ).toEqual("12:00 AM"); + }); + it("should display hour-of-day with 24 hour clock", () => { + expect( + formatValue(24, { + date_style: null, + time_enabled: "minutes", + time_style: "k:mm", + column: { + base_type: "type/DateTime", + unit: "hour-of-day", + }, + }), + ).toEqual("24:00"); + }); }); describe("formatUrl", () => { diff --git a/frontend/test/metabase/lib/schema_metadata.unit.spec.js b/frontend/test/metabase/lib/schema_metadata.unit.spec.js index bd0aa13183ae37752ebfa669ec9871c9535d29a4..628cea290bbfb7d1d01ba53741c8042f76366fb9 100644 --- a/frontend/test/metabase/lib/schema_metadata.unit.spec.js +++ b/frontend/test/metabase/lib/schema_metadata.unit.spec.js @@ -1,12 +1,13 @@ import { getFieldType, - DATE_TIME, + TEMPORAL, STRING, STRING_LIKE, NUMBER, BOOLEAN, LOCATION, COORDINATE, + PRIMARY_KEY, foreignKeyCountsByOriginTable, } from "metabase/lib/schema_metadata"; @@ -15,15 +16,15 @@ import { TYPE } from "metabase/lib/types"; describe("schema_metadata", () => { describe("getFieldType", () => { it("should know a date", () => { - expect(getFieldType({ base_type: TYPE.Date })).toEqual(DATE_TIME); - expect(getFieldType({ base_type: TYPE.DateTime })).toEqual(DATE_TIME); - expect(getFieldType({ base_type: TYPE.Time })).toEqual(DATE_TIME); + expect(getFieldType({ base_type: TYPE.Date })).toEqual(TEMPORAL); + expect(getFieldType({ base_type: TYPE.DateTime })).toEqual(TEMPORAL); + expect(getFieldType({ base_type: TYPE.Time })).toEqual(TEMPORAL); expect(getFieldType({ special_type: TYPE.UNIXTimestampSeconds })).toEqual( - DATE_TIME, + TEMPORAL, ); expect( getFieldType({ special_type: TYPE.UNIXTimestampMilliseconds }), - ).toEqual(DATE_TIME); + ).toEqual(TEMPORAL); }); it("should know a number", () => { expect(getFieldType({ base_type: TYPE.BigInteger })).toEqual(NUMBER); @@ -48,6 +49,11 @@ describe("schema_metadata", () => { getFieldType({ base_type: TYPE.Text, special_type: TYPE.URL }), ).toEqual(STRING); }); + it("should know a pk", () => { + expect( + getFieldType({ base_type: TYPE.Integer, special_type: TYPE.PK }), + ).toEqual(PRIMARY_KEY); + }); it("should know a bool", () => { expect(getFieldType({ base_type: TYPE.Boolean })).toEqual(BOOLEAN); }); diff --git a/frontend/test/metabase/modes/lib/modes.unit.spec.js b/frontend/test/metabase/modes/lib/modes.unit.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..45686302822521d2604620d5ffc0c3bca03729e1 --- /dev/null +++ b/frontend/test/metabase/modes/lib/modes.unit.spec.js @@ -0,0 +1,22 @@ +import { getMode } from "metabase/modes/lib/modes"; +import ObjectMode from "metabase/modes/components/modes/ObjectMode"; +import SegmentMode from "metabase/modes/components/modes/SegmentMode"; + +import { ORDERS } from "__support__/sample_dataset_fixture"; + +describe("modes", () => { + describe("getMode", () => { + it("should be in object mode when selecting one PK ID", () => { + const filter = ["=", ["field-id", ORDERS.ID.id], 42]; + const query = ORDERS.query().filter(filter); + const question = ORDERS.question().setQuery(query); + expect(getMode(question)).toBe(ObjectMode); + }); + it("should be in segment mode when selecting multiple PK IDs", () => { + const filter = ["=", ["field-id", ORDERS.ID.id], 42, 24]; + const query = ORDERS.query().filter(filter); + const question = ORDERS.question().setQuery(query); + expect(getMode(question)).toBe(SegmentMode); + }); + }); +}); diff --git a/frontend/test/metabase/public/signin.cy.spec.js b/frontend/test/metabase/public/signin.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..f294f284907393ad0f2a6af6c2fcab48fe0af66c --- /dev/null +++ b/frontend/test/metabase/public/signin.cy.spec.js @@ -0,0 +1,29 @@ +describe("sign in", () => { + it("should display an error for incorrect passwords", () => { + cy.visit("/"); + + // confirm we're redirected to /auth/login when not logged in + cy.url().should("contain", "auth/login"); + + cy.contains("Email address") + .next() + .type("bobby@metabase.com"); + cy.contains("Password") + .next() + .type("password"); // invalid password + cy.get(".Button").click(); + cy.contains("did not match stored password"); + }); + + it("should greet users after successful login", () => { + cy.visit("/auth/login"); + cy.contains("Email address") + .next() + .type("bob@metabase.com"); + cy.contains("Password") + .next() + .type("12341234"); + cy.get(".Button").click(); + cy.contains(/[a-z ]+, Bob/i); + }); +}); diff --git a/frontend/test/metabase/query_builder/components/NativeQueryEditor.cy.spec.js b/frontend/test/metabase/query_builder/components/NativeQueryEditor.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..ac957f88ab1c6cd57b54941b098a3132ef54c9b3 --- /dev/null +++ b/frontend/test/metabase/query_builder/components/NativeQueryEditor.cy.spec.js @@ -0,0 +1,67 @@ +import { signInAsNormalUser } from "__support__/cypress"; +describe("NativeQueryEditor", () => { + beforeEach(signInAsNormalUser); + + it("lets you create and run a SQL question", () => { + cy.visit("/question/new"); + cy.contains("Native query").click(); + cy.get(".ace_content").type("select count(*) from orders"); + cy.get(".NativeQueryEditor .Icon-play").click(); + cy.contains("18,760"); + }); + + it("displays an error", () => { + cy.visit("/question/new"); + cy.contains("Native query").click(); + cy.get(".ace_content").type("select * from not_a_table"); + cy.get(".NativeQueryEditor .Icon-play").click(); + cy.contains('Table "NOT_A_TABLE" not found'); + }); + + it("displays an error when running selected text", () => { + cy.visit("/question/new"); + cy.contains("Native query").click(); + cy.get(".ace_content").type( + "select * from orders" + + "{leftarrow}".repeat(3) + // move left three + "{shift}{leftarrow}".repeat(19), // highlight back to the front + ); + cy.get(".NativeQueryEditor .Icon-play").click(); + cy.contains('Table "ORD" not found'); + }); + + it("clears a template tag's default when the type changes", () => { + cy.visit("/question/new"); + cy.contains("Native query").click(); + + // Write a query with parameter x. It defaults to a text parameter. + cy.get(".ace_content").type("select * from orders where total = {{x}}", { + parseSpecialCharSequences: false, + }); + + // Mark field as required and add a default text value. + cy.contains("Required?") + .next() + .click(); + cy.contains("Default filter widget value") + .next() + .find("input") + .type("some text"); + + // Run the query and see an error. + cy.get(".NativeQueryEditor .Icon-play").click(); + cy.contains(`Data conversion error converting "some text"`); + + // Oh wait! That doesn't match the total column, so we'll change the parameter to a number. + cy.contains("Variable type") + .next() + .click(); + cy.contains("Number").click(); + + // When we run it again, the default has been cleared out so we get the right error. + cy.get(".NativeQueryEditor .Icon-play").click(); + cy.contains( + "You'll need to pick a value for 'X' before this query can run.", + ); + }); +}); diff --git a/frontend/test/metabase/query_builder/selectors.unit.spec.js b/frontend/test/metabase/query_builder/selectors.unit.spec.js index b92558b3e644f9ae225b7c37fdacfeec10bf9650..eda0dee442e359fcff64341b690ca442e621bd82 100644 --- a/frontend/test/metabase/query_builder/selectors.unit.spec.js +++ b/frontend/test/metabase/query_builder/selectors.unit.spec.js @@ -2,70 +2,94 @@ import { getIsResultDirty } from "metabase/query_builder/selectors"; import { state as sampleState } from "__support__/sample_dataset_fixture"; describe("getIsResultDirty", () => { - function getState(q1, q2) { - const card = query => ({ - dataset_query: { database: 1, type: "query", query }, + describe("structure query", () => { + function getState(q1, q2) { + const card = query => ({ + dataset_query: { database: 1, type: "query", query }, + }); + const qb = { lastRunCard: card(q1), card: card(q2) }; + return { ...sampleState, qb }; + } + + it("should not be dirty for empty queries", () => { + const state = getState({}, {}); + expect(getIsResultDirty(state)).toBe(false); }); - const qb = { lastRunCard: card(q1), card: card(q2) }; - return { ...sampleState, qb }; - } - it("should not be dirty for empty queries", () => { - const state = getState({}, {}); - expect(getIsResultDirty(state)).toBe(false); - }); + it("should be dirty if the table was changed", () => { + const state = getState({ "source-table": 1 }, { "source-table": 2 }); + expect(getIsResultDirty(state)).toBe(true); + }); - it("should be dirty if the table was changed", () => { - const state = getState({ "source-table": 1 }, { "source-table": 2 }); - expect(getIsResultDirty(state)).toBe(true); - }); + it("should be dirty if the fields were changed", () => { + const state = getState( + { "source-table": 1, fields: [["field-id", 1]] }, + { "source-table": 1, fields: [["field-id", 2]] }, + ); + expect(getIsResultDirty(state)).toBe(true); + }); - it("should be dirty if the fields were changed", () => { - const state = getState( - { "source-table": 1, fields: [["field-id", 1]] }, - { "source-table": 1, fields: [["field-id", 2]] }, - ); - expect(getIsResultDirty(state)).toBe(true); - }); + it("should not be dirty if the fields were reordered", () => { + const state = getState( + { "source-table": 1, fields: [["field-id", 1], ["field-id", 2]] }, + { "source-table": 1, fields: [["field-id", 2], ["field-id", 1]] }, + ); + expect(getIsResultDirty(state)).toBe(false); + }); - it("should not be dirty if the fields were reordered", () => { - const state = getState( - { "source-table": 1, fields: [["field-id", 1], ["field-id", 2]] }, - { "source-table": 1, fields: [["field-id", 2], ["field-id", 1]] }, - ); - expect(getIsResultDirty(state)).toBe(false); - }); + it("should not be dirty if fields with fk refs were reordered", () => { + const state = getState( + { + "source-table": 1, + fields: [["fk->", ["field-id", 1], ["field-id", 2]], ["field-id", 1]], + }, + { + "source-table": 1, + fields: [["field-id", 1], ["fk->", ["field-id", 1], ["field-id", 2]]], + }, + ); + expect(getIsResultDirty(state)).toBe(false); + }); - it("should not be dirty if fields with fk refs were reordered", () => { - const state = getState( - { - "source-table": 1, - fields: [["fk->", ["field-id", 1], ["field-id", 2]], ["field-id", 1]], - }, - { - "source-table": 1, - fields: [["field-id", 1], ["fk->", ["field-id", 1], ["field-id", 2]]], - }, - ); - expect(getIsResultDirty(state)).toBe(false); + it("should not be dirty if fields were just made explicit", () => { + const state = getState( + { "source-table": 1 }, + { + "source-table": 1, + fields: [ + ["field-id", 1], + ["field-id", 2], + ["field-id", 3], + ["field-id", 4], + ["field-id", 5], + ["field-id", 6], + ["field-id", 7], + ], + }, + ); + expect(getIsResultDirty(state)).toBe(false); + }); }); + describe("native query", () => { + function getState(q1, q2) { + const card = native => ({ + dataset_query: { database: 1, type: "query", native }, + }); + const qb = { lastRunCard: card(q1), card: card(q2) }; + return { ...sampleState, qb }; + } - it("should not be dirty if fields were just made explicit", () => { - const state = getState( - { "source-table": 1 }, - { - "source-table": 1, - fields: [ - ["field-id", 1], - ["field-id", 2], - ["field-id", 3], - ["field-id", 4], - ["field-id", 5], - ["field-id", 6], - ["field-id", 7], - ], - }, - ); - expect(getIsResultDirty(state)).toBe(false); + it("should not be dirty if template-tags is empty vs an empty object", () => { + const state = getState({}, { "template-tags": {} }); + expect(getIsResultDirty(state)).toBe(false); + }); + + it("should be dirty if template-tags differ", () => { + const state = getState( + { "template-tags": { foo: {} } }, + { "template-tags": { bar: {} } }, + ); + expect(getIsResultDirty(state)).toBe(true); + }); }); }); diff --git a/frontend/test/metabase/query_builder/simple-question.cy.spec.js b/frontend/test/metabase/query_builder/simple-question.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..c649af869ce1dda193d314846fdd1a5fc663389a --- /dev/null +++ b/frontend/test/metabase/query_builder/simple-question.cy.spec.js @@ -0,0 +1,61 @@ +import { signInAsAdmin } from "__support__/cypress"; + +describe("new question", () => { + beforeEach(signInAsAdmin); + + it("should count all orders", () => { + cy.visit("/question/new"); + cy.contains("Simple question").click(); + cy.contains("Sample Dataset").click(); + cy.contains("Orders").click(); + cy.contains("Showing first 2,000 rows"); + cy.contains("Summarize").click(); + cy.contains("Done").click(); + cy.contains("18,760"); + }); + + it("should show orders by year and product category", () => { + cy.visit("/question/new"); + cy.contains("Simple question").click(); + cy.contains("Sample Dataset").click(); + cy.contains("Orders").click(); + cy.contains("Showing first 2,000 rows"); + cy.contains("Summarize").click(); + + // alias @sidebar so we can more easily click dimensions + cy.contains("Summarize by") + .parent() + .parent() + .as("sidebar"); + + cy.get("@sidebar") + .contains("Created At") + .click(); + + cy.contains("Count by Created At: Month"); + + // change grouping from month to year + cy.get("@sidebar") + .contains("by month") + .click(); + cy.get(".PopoverBody") + .contains("Year") + .click(); + + cy.contains("Count by Created At: Year"); + + cy.get("@sidebar") + .contains("Category") + .parent() + .parent() + .find(".Field-extra .Icon") + .click({ force: true }); // we need to force this because it only displays on hover + + cy.contains("Done").click(); + + // check for title, legend, and x axis labels + cy.contains("Count by Created At: Year and Product → Category"); + ["2016", "2017", "2018", "2019", "2020"].forEach(l => cy.contains(l)); + ["Doohickey", "Gadget", "Gizmo", "Widget"].forEach(l => cy.contains(l)); + }); +}); diff --git a/frontend/test/metabase/reference/databases.cy.spec.js b/frontend/test/metabase/reference/databases.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..a4f9d4220f4c5639d8476834b67e5f1912bfd16b --- /dev/null +++ b/frontend/test/metabase/reference/databases.cy.spec.js @@ -0,0 +1,59 @@ +import { signInAsAdmin } from "__support__/cypress"; + +describe("sample database reference", () => { + beforeEach(signInAsAdmin); + + it("should see the listing", () => { + cy.visit("reference/databases"); + cy.contains("Sample Dataset"); + }); + + xit("should let the user navigate to details", () => { + cy.visit("reference/databases"); + cy.contains("Sample Dataset").click(); + cy.contains("Why this database is interesting"); + }); + + it("should let an admin edit details about the database", () => { + cy.visit("reference/databases/1"); + cy.contains("Edit").click(); + // Q - is there any cleaner way to get a nearby element without having to know the DOM? + cy.contains("Description") + .parent() + .parent() + .find("textarea") + .type("A pretty ok store"); + cy.contains("Save").click(); + cy.contains("A pretty ok store"); + }); + + it("should let an admin start to edit and cancel without saving", () => { + cy.visit("reference/databases/1"); + cy.contains("Edit").click(); + // Q - is there any cleaner way to get a nearby element without having to know the DOM? + cy.contains("Why this") + .parent() + .parent() + .find("textarea") + .type("Turns out it's not"); + cy.contains("Cancel").click(); + cy.contains("Turns out").should("have.length", 0); + }); + + it("should let an admin edit the database name", () => { + cy.visit("reference/databases/1"); + cy.contains("Edit").click(); + cy.get(".wrapper input") + .clear() + .type("My definitely profitable business"); + cy.contains("Save").click(); + cy.contains("My definitely profitable business"); + + // reset + cy.contains("Edit").click(); + cy.get(".wrapper input") + .clear() + .type("Sample Dataset"); + cy.contains("Save").click(); + }); +}); diff --git a/frontend/test/metabase/reference/databases.e2e.spec.js b/frontend/test/metabase/reference/databases.e2e.spec.js index d68432105f97e26e1cafccce205d4b73c125b250..4a232f9946643178bec6fef0c13985ea3c993f67 100644 --- a/frontend/test/metabase/reference/databases.e2e.spec.js +++ b/frontend/test/metabase/reference/databases.e2e.spec.js @@ -28,11 +28,10 @@ import ReferenceHeader from "metabase/reference/components/ReferenceHeader"; import AdminAwareEmptyState from "metabase/components/AdminAwareEmptyState"; import UsefulQuestions from "metabase/reference/components/UsefulQuestions"; import Detail from "metabase/reference/components/Detail"; -import EditButton from "metabase/reference/components/EditButton"; -import EditHeader from "metabase/reference/components/EditHeader"; import QueryButton from "metabase/components/QueryButton"; import { INITIALIZE_QB, QUERY_COMPLETED } from "metabase/query_builder/actions"; import { getQuestion } from "metabase/query_builder/selectors"; +import { delay } from "metabase/lib/promise"; describe("The Reference Section", () => { // Test data @@ -113,9 +112,9 @@ describe("The Reference Section", () => { await store.waitForActions([FETCH_DATABASE_METADATA, END_LOADING]); // switch to edit view - const editButton = app.find(EditButton); - expect(editButton.text()).toBe("Edit"); - click(editButton); + const editButton = app.find(".Button"); + + clickButton(editButton); // update "caveats" and save const textarea = app @@ -123,13 +122,13 @@ describe("The Reference Section", () => { .at(2) .find("textarea"); setInputValue(textarea, "v important thing"); - clickButton( - app - .find(EditHeader) - .find("button") - .at(1), - ); + + const doneButton = app.find(".Button--primary"); + + clickButton(doneButton); await store.waitForActions(END_LOADING); + // unfortunately this is required? + await delay(200); // check that the field was updated const savedText = app @@ -138,6 +137,7 @@ describe("The Reference Section", () => { .find("span") .at(1) .text(); + expect(savedText).toBe("v important thing"); // clean up diff --git a/frontend/test/metabase/reference/guide.cy.spec.js b/frontend/test/metabase/reference/guide.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..342b4c0fa4ea8c1366f36d1f570abaeb01834c1f --- /dev/null +++ b/frontend/test/metabase/reference/guide.cy.spec.js @@ -0,0 +1,8 @@ +import { signInAsAdmin } from "__support__/cypress"; +describe("getting started guide", () => { + beforeEach(signInAsAdmin); + it("should render", () => { + cy.visit("reference"); + cy.contains("Our data"); + }); +}); diff --git a/frontend/test/metabase/scenarios/custom_question.cy.spec.js b/frontend/test/metabase/scenarios/custom_question.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..6d76a31c85270e8589f958b161ba3f91e555eee9 --- /dev/null +++ b/frontend/test/metabase/scenarios/custom_question.cy.spec.js @@ -0,0 +1,25 @@ +import { signInAsAdmin } from "__support__/cypress"; + +describe("custom question", () => { + beforeEach(signInAsAdmin); + it("should allow post-aggregation filters", () => { + // count orders by user id, filter to the one user with 46 orders + cy.visit("/question/new"); + cy.contains("Custom question").click(); + cy.contains("Sample Dataset").click(); + cy.contains("Orders").click(); + cy.contains("Pick the metric").click(); + cy.contains("Count of rows").click(); + cy.contains("Pick a column to group by").click(); + cy.contains("User ID").click(); + cy.get(".Icon-filter").click(); + cy.get(".Icon-int").click(); + cy.get(".PopoverBody input").type("46"); + cy.get(".PopoverBody") + .contains("Add filter") + .click(); + cy.contains("Visualize").click(); + cy.contains("2372"); // user's id in the table + cy.contains("Showing 1 row"); // ensure only one user was returned + }); +}); diff --git a/frontend/test/metabase/scenarios/query_builder.cy.spec.js b/frontend/test/metabase/scenarios/query_builder.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..d7620e180311819760c7687e8c2535b62b40a340 --- /dev/null +++ b/frontend/test/metabase/scenarios/query_builder.cy.spec.js @@ -0,0 +1,153 @@ +import { signInAsAdmin } from "__support__/cypress"; + +describe("query builder", () => { + beforeEach(signInAsAdmin); + + describe("browse data", () => { + it("should load orders table and summarize", () => { + cy.visit("/"); + cy.contains("Browse Data").click(); + cy.contains("Sample Dataset").click(); + cy.contains("Orders").click(); + cy.contains("37.65"); + }); + }); + describe("ask a (simple) question", () => { + it("should load orders table", () => { + cy.visit("/"); + cy.contains("Ask a question").click(); + cy.contains("Simple question").click(); + maybeClickSampleDataset(); + cy.contains("Orders").click(); + cy.contains("37.65"); + }); + + it("should load orders table", () => { + cy.visit("/"); + cy.contains("Ask a question").click(); + cy.contains("Custom question").click(); + maybeClickSampleDataset(); + cy.contains("Orders").click(); + cy.contains("Visualize").click(); + cy.contains("37.65"); + }); + + it("should summarize and break out and show a map", () => { + cy.visit("/"); + cy.contains("Ask a question").click(); + cy.contains("Custom question").click(); + maybeClickSampleDataset(); + cy.contains("Orders").click(); + cy.contains("Pick the metric you want to see").click(); + cy.contains("Count of rows").click(); + cy.contains("Pick a column to group by").click(); + cy.contains(/^User$/).click(); + cy.contains("State").click(); + cy.contains("Visualize").click(); + cy.contains("1,342 +"); + }); + }); + + describe("view mode", () => { + describe("summarize sidebar", () => { + it("should summarize by category and show a bar chart", () => { + cy.server(); + cy.route("POST", "/api/dataset").as("dataset"); + loadOrdersTable(); + cy.wait("@dataset"); + cy.contains("Summarize").click(); + cy.contains("Category").click(); + cy.contains("Done").click(); + cy.contains("Count by Product → Category"); + }); + }); + + describe("filter sidebar", () => { + it("should filter a table", () => { + loadOrdersTable(); + cy.contains("Filter").click(); + cy.contains("Vendor").click(); + cy.get("input[placeholder='Search by Vendor']") + .clear() + .type("Alfreda Konopelski II Group") + .blur(); + cy.contains("Add filter").click(); + cy.contains("Showing 91 rows"); + }); + }); + }); + + describe("column settings", () => { + it("should allow you to remove a column and add two foreign columns", () => { + // oddly specific test inspired by https://github.com/metabase/metabase/issues/11499 + + // get a really wide window, so we don't need to mess with scrolling the table horizontally + cy.viewport(1600, 800); + + loadOrdersTable(); + cy.contains("Settings").click(); + + // wait for settings sidebar to open + cy.get(".border-right.overflow-x-hidden") + .invoke("width") + .should("be.gt", 350); + + cy.contains("Table options") + .parents(".scroll-y") + .first() + .as("tableOptions"); + + // remove Total column + cy.get("@tableOptions") + .contains("Total") + .scrollIntoView() + .nextAll(".Icon-close") + .click(); + + // Add people.category + cy.get("@tableOptions") + .contains("Category") + .scrollIntoView() + .nextAll(".Icon-add") + .click(); + + // wait a Category value to appear in the table, so we know the query completed + cy.contains("Widget"); + + // Add people.ean + cy.get("@tableOptions") + .contains("Ean") + .scrollIntoView() + .nextAll(".Icon-add") + .click(); + + // wait a Ean value to appear in the table, so we know the query completed + cy.contains("8833419218504"); + + // confirm that the table contains the right columns + cy.get(".Visualization .TableInteractive").as("table"); + cy.get("@table").contains("Product → Category"); + cy.get("@table").contains("Product → Ean"); + cy.get("@table") + .contains("Total") + .should("not.exist"); + }); + }); +}); + +function loadOrdersTable() { + cy.visit("/"); + cy.contains("Browse Data").click(); + cy.contains("Sample Dataset").click(); + cy.contains("Orders").click(); +} + +// This isn't needed if there's only one db. In that case, clicking "Sample +// Dataset" will actually take you back to select a db again. +function maybeClickSampleDataset() { + cy.contains("Sample Dataset").then($btn => { + if ($btn.hasClass("List-section-title")) { + $btn.click(); + } + }); +} diff --git a/frontend/test/metabase/services/__snapshots__/MetabaseApi.e2e.spec.js.snap b/frontend/test/metabase/services/__snapshots__/MetabaseApi.e2e.spec.js.snap index 18434352b5e2f8013662c499de1d4bbcb179fdf7..f2846cd3cd8c8d73f3c62571c1284b9e8d00a150 100644 --- a/frontend/test/metabase/services/__snapshots__/MetabaseApi.e2e.spec.js.snap +++ b/frontend/test/metabase/services/__snapshots__/MetabaseApi.e2e.spec.js.snap @@ -429,13 +429,13 @@ Object { "display_name": "Created At", "fingerprint": Object { "global": Object { - "distinct-count": 10001, + "distinct-count": 9998, "nil%": 0, }, "type": Object { "type/DateTime": Object { - "earliest": "2016-05-01T01:56:13.352Z", - "latest": "2020-04-19T21:07:15.657Z", + "earliest": "2016-04-30T18:56:13.352", + "latest": "2020-04-19T14:07:15.657", }, }, }, @@ -1573,8 +1573,8 @@ Object { }, "type": Object { "type/DateTime": Object { - "earliest": "1958-04-26T08:00:00.000Z", - "latest": "2000-04-03T07:00:00.000Z", + "earliest": "1958-04-26", + "latest": "2000-04-03", }, }, }, @@ -1793,8 +1793,8 @@ Object { }, "type": Object { "type/DateTime": Object { - "earliest": "2016-04-20T04:35:18.752Z", - "latest": "2019-04-19T21:06:27.300Z", + "earliest": "2016-04-19T21:35:18.752", + "latest": "2019-04-19T14:06:27.3", }, }, }, @@ -2778,8 +2778,8 @@ Object { }, "type": Object { "type/DateTime": Object { - "earliest": "2016-04-27T02:29:55.147Z", - "latest": "2019-04-15T20:34:19.931Z", + "earliest": "2016-04-26T19:29:55.147", + "latest": "2019-04-15T13:34:19.931", }, }, }, @@ -3443,7 +3443,7 @@ Object { }, "type": Object { "type/Text": Object { - "average-length": 177.41996402877697, + "average-length": 182.37589928057554, "percent-email": 0, "percent-json": 0, "percent-url": 0, @@ -3626,8 +3626,8 @@ Object { }, "type": Object { "type/DateTime": Object { - "earliest": "2016-06-03T07:37:05.818Z", - "latest": "2020-04-19T21:15:25.677Z", + "earliest": "2016-06-03T00:37:05.818", + "latest": "2020-04-19T14:15:25.677", }, }, }, diff --git a/frontend/test/metabase/setup/signup.cy.spec.js b/frontend/test/metabase/setup/signup.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..6736d16dd8b74fc831419f64993ba226f08b1ef2 --- /dev/null +++ b/frontend/test/metabase/setup/signup.cy.spec.js @@ -0,0 +1,124 @@ +import path from "path"; +import { plainDbHost } from "__support__/cypress"; + +describe("setup wizard", () => { + before(() => { + Cypress.config("baseUrl", plainDbHost); + }); + + it("should allow you to sign up", () => { + // intial redirection and welcome page + cy.visit("/"); + cy.url().should("be", "/setup"); + cy.contains("Welcome to Metabase"); + cy.contains("Let's get started").click(); + + // ==== + // User + // ==== + + // "Next" should be disabled on the blank form + cy.contains("Next").should("be.disabled"); + + cy.get('input[name="first_name"]').type("Testy"); + cy.get('input[name="last_name"]').type("McTestface"); + cy.get('input[name="email"]').type("testy@metabase.com"); + cy.get('input[name="site_name"]').type("Epic Team"); + + // test first with a weak password + cy.get('input[name="password"]').type("password"); + cy.get('input[name="password_confirm"]').type("password"); + + // the form shouldn't be valid yet and we should display an error + cy.contains("Insufficient password strength"); + cy.contains("Next").should("be.disabled"); + + // now try a strong password that doesn't match + const strongPassword = "QJbHYJN3tPW["; + cy.get('input[name="password"]') + .clear() + .type(strongPassword); + cy.get('input[name="password_confirm"]') + .clear() + .type(strongPassword + "foobar"); + + // tell the user about the mismatch after clicking "Next" + cy.contains("Next") + .should("not.be.disabled") + .click(); + cy.contains("Passwords do not match"); + + // fix that mismatch + cy.get('input[name="password_confirm"]') + .clear() + .type(strongPassword); + + // Submit the first section + cy.contains("Next").click(); + + // ======== + // Database + // ======== + + // The database step should be open + cy.contains("You’ll need some info about your database"); + + // test that you can return to user settings if you want + cy.contains("Hi, Testy. nice to meet you!").click(); + cy.get('input[name="email"]').should("have.value", "testy@metabase.com"); + + // now back to database setting + cy.contains("Next").click(); + + // add h2 database + cy.get("select").select("H2"); + cy.get("input[name='name']").type("Metabase H2"); + cy.contains("Next").should("be.disabled"); + + const dbPath = path.resolve( + Cypress.config("fileServerFolder"), + "frontend/test/__runner__/empty.db", + ); + cy.get("input[name='db']").type(`file:${dbPath}`); + cy.contains("Next") + .should("not.be.disabled") + .click(); + + // return to db settings and turn on manual scheduling + cy.contains("Connecting to Metabase H2").click(); + cy.contains("let me choose when Metabase syncs") + .parents(".Form-field") + .find("a") + .click(); + cy.contains("Next").click(); + + // now, we should see the sync scheduling form + cy.contains("When should Metabase automatically scan"); + cy.contains("Never, I'll do this manually if I need to").click(); + cy.contains("Next").click(); + + // ================ + // Data Preferences + // ================ + + // collection defaults to on and describes data collection + cy.contains("All collection is completely anonymous."); + // turn collection off, which hides data collection description + cy.contains("Allow Metabase to anonymously collect usage events") + .parents(".Form-field") + .find("a") + .click(); + cy.contains("All collection is completely anonymous.").should("not.exist"); + cy.contains("Next").click(); + + // ================== + // Finish & Subscribe + // ================== + cy.contains("You're all set up!"); + cy.contains( + "Get infrequent emails about new releases and feature updates.", + ); + cy.contains("Take me to Metabase").click(); + cy.url().should("be", "/"); + }); +}); diff --git a/frontend/test/metabase/visualizations/components/LineAreaBarRenderer.tz.unit.spec.js b/frontend/test/metabase/visualizations/components/LineAreaBarRenderer.tz.unit.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..b88367e29470d81fb2a2c6099096bab389713ed8 --- /dev/null +++ b/frontend/test/metabase/visualizations/components/LineAreaBarRenderer.tz.unit.spec.js @@ -0,0 +1,255 @@ +import "__support__/mocks"; // included explicitly whereas with integrated tests it comes with __support__/integrated_tests +import testAcrossTimezones from "__support__/timezones"; + +import _ from "underscore"; +import moment from "moment-timezone"; + +import { + NumberColumn, + DateTimeColumn, + dispatchUIEvent, + renderLineAreaBar, + getFormattedTooltips, +} from "../__support__/visualizations"; + +// make WIDTH big enough that ticks aren't skipped +const WIDTH = 4000; +const HEIGHT = 1000; + +describe("LineAreaBarRenderer-bar", () => { + let element; + let onHoverChange; + + const qsa = selector => [...element.querySelectorAll(selector)]; + + function setupFixture() { + document.body.style.width = `${WIDTH}px`; + document.body.style.height = `${HEIGHT}px`; + document.body.insertAdjacentHTML( + "afterbegin", + `<div id="fixture" style="height: ${HEIGHT}px; width: ${WIDTH}px;">`, + ); + element = document.getElementById("fixture"); + } + + function teardownFixture() { + document.body.removeChild(element); + } + + const activateTooltips = () => + qsa(".bar").map(bar => dispatchUIEvent(bar, "mousemove")); + + const getXAxisLabelsText = () => + qsa(".axis.x .tick text").map(t => t.textContent); + const getTooltipDimensionValueText = () => + onHoverChange.mock.calls.map(([t]) => getFormattedTooltips(t)[0]); + + const getSVGElementMiddle = element => { + return ( + parseFloat(element.getAttribute("x")) + + parseFloat(element.getAttribute("width")) / 2 + ); + }; + const getSVGElementTransformMiddle = element => { + const transform = element.getAttribute("transform"); + const match = transform.match(/translate\(([0-9\.]+)/); + return parseFloat(match[1]); + }; + + const MAX_DELTA = 0; + + const getClosestLabelText = bar => { + // get the horizontal center of the target element + const barCenter = getSVGElementMiddle(bar); + let closest; + let minDelta = Infinity; + for (const label of qsa(".axis.x .tick")) { + const labelCenter = getSVGElementTransformMiddle(label); + const delta = Math.abs(barCenter - labelCenter); + if (delta < minDelta) { + closest = label; + minDelta = delta; + } + } + return closest && minDelta <= MAX_DELTA ? closest.textContent : null; + }; + + testAcrossTimezones(reportTz => { + const rows = generateRowsInTz(reportTz); + + sharedMonthTests(rows.slice(0, 2), "months in standard time"); + sharedMonthTests(rows.slice(6, 8), "months in daylights saving time"); + sharedMonthTests( + rows.slice(2, 4), + "months starting in standard time, ending in daylights saving time", + ); + sharedMonthTests( + rows.slice(10, 12), + "months starting in daylights saving time, ending in standard time", + ); + sharedMonthTests(rows, "all months"); + + sharedIntervalTests("hour", "MMMM D, YYYY, h:mm A"); + sharedIntervalTests("day", "MMMM D, YYYY"); + // sharedIntervalTests("week", "wo - gggg"); // weeks have differing formats for ticks and tooltips, disable this test for now + sharedIntervalTests("month", "MMMM, YYYY"); + sharedIntervalTests("quarter", "[Q]Q - YYYY"); + sharedIntervalTests("year", "YYYY"); + + function sharedMonthTests(rows, description) { + describe(`with ${description}`, () => { + beforeAll(() => { + setupFixture(); + onHoverChange = jest.fn(); + renderTimeseries(element, "month", reportTz, rows, { + onHoverChange, + }); + // hover each bar to trigger onHoverChange + activateTooltips(); + }); + afterAll(teardownFixture); + + it("should have sequential months in labels", () => { + // check that the labels are sequential months + assertSequentialMonths(getXAxisLabelsText()); + }); + it("should have sequential months in tooltips", () => { + // check that the resulting tooltips are sequential + assertSequentialMonths(getTooltipDimensionValueText()); + // check that the number of tooltips matches the number of rows + expect(getTooltipDimensionValueText().length).toBe(rows.length); + }); + it("should have tooltips that match source data", () => { + expect(getTooltipDimensionValueText()).toEqual( + rows.map(([timestamp]) => + moment.tz(timestamp, reportTz).format("MMMM, YYYY"), + ), + ); + }); + it("should have labels that match tooltips", () => { + expect(qsa(".bar").map(getClosestLabelText)).toEqual( + getTooltipDimensionValueText(), + ); + }); + }); + } + + function sharedIntervalTests(interval, expectedFormat) { + describe(`with ${interval}s`, () => { + const rows = [ + [ + moment() + .tz(reportTz) + .startOf(interval) + .toISOString(true), + 1, + ], + [ + moment() + .tz(reportTz) + .startOf(interval) + .add(1, interval) + .toISOString(true), + 1, + ], + ]; + beforeAll(() => { + setupFixture(); + onHoverChange = jest.fn(); + renderTimeseries(element, interval, reportTz, rows, { + onHoverChange, + }); + // hover each bar to trigger onHoverChange + activateTooltips(); + }); + afterAll(teardownFixture); + it("should have tooltips that match source data", () => { + expect(getTooltipDimensionValueText()).toEqual( + rows.map(([timestamp]) => + moment.tz(timestamp, reportTz).format(expectedFormat), + ), + ); + }); + it("should have labels that match tooltips", () => { + expect(qsa(".bar").map(getClosestLabelText)).toEqual( + getTooltipDimensionValueText(), + ); + }); + }); + } + }); +}); + +const DEFAULT_SETTINGS = { + "graph.x_axis.scale": "timeseries", + "graph.y_axis.scale": "linear", + "graph.x_axis.axis_enabled": true, + "graph.y_axis.axis_enabled": true, + "graph.colors": ["#00FF00", "#FF0000"], +}; + +function renderTimeseries(element, unit, timezone, rows, props = {}) { + const series = [ + { + card: { + display: "bar", + visualization_settings: { ...DEFAULT_SETTINGS }, + }, + data: { + results_timezone: timezone, + cols: [ + DateTimeColumn({ name: "CREATED_AT", unit }), + NumberColumn({ name: "count" }), + ], + rows, + }, + }, + ]; + renderLineAreaBar(element, series, props); +} + +// just hard code these to make sure we don't accidentally generate incorrect month labels +const MONTHS_IN_ORDER = [ + "October, 2015", + "November, 2015", + "December, 2015", + "January, 2016", + "February, 2016", + "March, 2016", + "April, 2016", + "May, 2016", + "June, 2016", + "July, 2016", + "August, 2016", + "September, 2016", + "October, 2016", + "November, 2016", + "December, 2016", + "January, 2017", +]; + +function assertSequentialMonths(months) { + const firstIndex = MONTHS_IN_ORDER.indexOf(months[0]); + if (firstIndex < 0 || firstIndex + months.length > MONTHS_IN_ORDER.length) { + throw new Error( + "Month out of range! Update MONTHS_IN_ORDER. " + + months[0] + + " - " + + months[months.length - 1], + ); + } + expect(months).toEqual( + MONTHS_IN_ORDER.slice(firstIndex, firstIndex + months.length), + ); +} + +function generateRowsInTz(tz) { + return _.range(0, 12).map(month => [ + moment("2016-01-01") + .tz(tz) + .startOf("month") + .add(month, "months") + .toISOString(true), + 0, + ]); +} diff --git a/frontend/test/metabase/visualizations/lib/fill_data.tz.unit.spec.js b/frontend/test/metabase/visualizations/lib/fill_data.tz.unit.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..8ea16d081144fc10eaf82ad1f77f6b9a25968778 --- /dev/null +++ b/frontend/test/metabase/visualizations/lib/fill_data.tz.unit.spec.js @@ -0,0 +1,38 @@ +import testAcrossTimezones from "__support__/timezones"; + +import moment from "moment-timezone"; + +import fillMissingValuesInDatas from "metabase/visualizations/lib/fill_data"; + +testAcrossTimezones(reportTz => { + describe("fillMissingValuesInDatas", () => { + it("should fill zeros for timeseries across DST boundary", () => { + const time1 = moment.tz("2019-03-01T00:00:00", reportTz); + const time2 = moment.tz("2019-03-30T00:00:00", reportTz); + const time3 = moment.tz("2019-03-31T00:00:00", reportTz); + const rows = [[time1, 1], [time2, 2], [time3, 3]]; + const [filledData] = fillMissingValuesInDatas( + { + series: [{}], + settings: { + "graph.x_axis.scale": "timeseries", + series: () => ({ "line.missing": "zero" }), + }, + }, + { + xValues: [time1, time2, time3], + xDomain: [time1, time3], + xInterval: { interval: "day", count: 1, timezone: reportTz }, + }, + [rows], + ); + + expect(filledData.map(r => r[1])).toEqual([ + 1, + ...new Array(28).fill(0), + 2, + 3, + ]); + }); + }); +}); diff --git a/frontend/test/metabase/visualizations/lib/settings/column.unit.spec.js b/frontend/test/metabase/visualizations/lib/settings/column.unit.spec.js index b0258af57cad993faa26d1fe414e851284937da7..9b06eeae939cc8568130d3cbfc109a3c09430c24 100644 --- a/frontend/test/metabase/visualizations/lib/settings/column.unit.spec.js +++ b/frontend/test/metabase/visualizations/lib/settings/column.unit.spec.js @@ -96,4 +96,19 @@ describe("column settings", () => { const computed = getComputedSettings(defs, series, stored); expect(computed.column(series[0].data.cols[0]).currency).toEqual("BTC"); }); + it("should set a time style but no date style for hour-of-day", () => { + const series = seriesWithColumn({ + unit: "hour-of-day", + base_type: "type/DateTime", + special_type: undefined, + }); + const defs = { ...columnSettings() }; + const computed = getComputedSettings(defs, series, {}); + const { time_enabled, time_style, date_style } = computed.column( + series[0].data.cols[0], + ); + expect(time_enabled).toEqual("minutes"); + expect(time_style).toEqual("h:mm A"); + expect(date_style).toEqual(""); + }); }); diff --git a/frontend/test/metabase/visualizations/lib/settings/visualization.unit.spec.js b/frontend/test/metabase/visualizations/lib/settings/visualization.unit.spec.js index de3b9631fab5adc4409e8ece433aaa4c18baa2f6..8ca3a2c6bf7d921a3aaa67aaaf46bba2a556d350 100644 --- a/frontend/test/metabase/visualizations/lib/settings/visualization.unit.spec.js +++ b/frontend/test/metabase/visualizations/lib/settings/visualization.unit.spec.js @@ -61,6 +61,111 @@ describe("visualization_settings", () => { }), )); }); + describe("graph.y_axis.title_text", () => { + const data = { + cols: [ + DateTimeColumn({ unit: "month", name: "col1" }), + NumberColumn({ name: "col2" }), + ], + rows: [[0, 0]], + }; + it("should use the card name if there's one series", () => { + const card = { + visualization_settings: {}, + display: "bar", + name: "card name", + }; + const settings = getComputedSettingsForSeries([{ card, data }]); + expect(settings["graph.y_axis.title_text"]).toBe("card name"); + }); + + it("should use the series title if set", () => { + const card = { + visualization_settings: { + series_settings: { foo: { title: "some title" } }, + }, + display: "bar", + name: "foo", + }; + const settings = getComputedSettingsForSeries([{ card, data }]); + expect(settings["graph.y_axis.title_text"]).toBe("some title"); + }); + + it("should use the metric name if all series match", () => { + const card = { visualization_settings: {}, display: "bar" }; + const settings = getComputedSettingsForSeries([ + { card, data }, + { card, data }, + ]); + expect(settings["graph.y_axis.title_text"]).toBe("col2"); + }); + + it("should use the metric name if all series match", () => { + const card = { visualization_settings: {}, display: "bar" }; + const data1 = { + cols: [ + DateTimeColumn({ unit: "month", name: "col1" }), + NumberColumn({ name: "col2a" }), + ], + rows: [[0, 0]], + }; + const data2 = { + cols: [ + DateTimeColumn({ unit: "month", name: "col1" }), + NumberColumn({ name: "col2b" }), + ], + rows: [[0, 0]], + }; + const settings = getComputedSettingsForSeries([ + { card, data: data1 }, + { card, data: data2 }, + ]); + expect(settings["graph.y_axis.title_text"]).toBe(null); + }); + }); + describe("graph.show_values", () => { + it("should show values on a bar chart with ten bars", () => { + const card = { visualization_settings: {}, display: "bar" }; + const data = { rows: new Array(10).fill([1]) }; + const settings = getComputedSettingsForSeries([{ card, data }]); + expect(settings["graph.show_values"]).toBe(true); + }); + it("should not show values on a line chart with ten value", () => { + const card = { visualization_settings: {}, display: "line" }; + const data = { rows: new Array(10).fill([1]) }; + const settings = getComputedSettingsForSeries([{ card, data }]); + expect(settings["graph.show_values"]).toBe(false); + }); + it("should not show values on a bar chart with thirty bars", () => { + const card = { visualization_settings: {}, display: "bar" }; + const data = { rows: new Array(30).fill([1]) }; + const settings = getComputedSettingsForSeries([{ card, data }]); + expect(settings["graph.show_values"]).toBe(false); + }); + it("should not show values on a previously saved bar chart", () => { + const card = { + visualization_settings: {}, + display: "bar", + original_card_id: 1, + }; + const data = { rows: new Array(10).fill([1]) }; + const settings = getComputedSettingsForSeries([{ card, data }]); + expect(settings["graph.show_values"]).toBe(false); + }); + }); + describe("table.columns", () => { + it("should include fieldRef in default table.columns", () => { + const card = { visualization_settings: {} }; + const cols = [ + NumberColumn({ name: "some number", field_ref: ["field-id", 123] }), + ]; + const { + "table.columns": [setting], + } = getComputedSettingsForSeries([{ card, data: { cols } }]); + + expect(setting.fieldRef).toEqual(["field-id", 123]); + }); + }); }); describe("getStoredSettingsForSeries", () => { diff --git a/frontend/test/metabase/visualizations/lib/timeseries.tz.unit.spec.js b/frontend/test/metabase/visualizations/lib/timeseries.tz.unit.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..ca466cf8b6134d3b01f2f14fb741be36d1a40338 --- /dev/null +++ b/frontend/test/metabase/visualizations/lib/timeseries.tz.unit.spec.js @@ -0,0 +1,28 @@ +import testAcrossTimezones from "__support__/timezones"; + +import moment from "moment-timezone"; + +import { computeTimeseriesDataInverval } from "metabase/visualizations/lib/timeseries"; + +testAcrossTimezones(reportTz => { + describe("computeTimeseriesDataInvervalIndex", () => { + [ + ["hour", 6, ["2015-01-01T00:00:00", "2016-05-04T06:00:00"]], + ["hour", 12, ["2015-01-01T00:00:00", "2016-05-04T12:00:00"]], + ["day", 1, ["2019-03-01T00:00:00", "2019-03-16T00:00:00"]], + ["week", 1, ["2019-03-01T00:00:00", "2019-03-15T00:00:00"]], + ["month", 1, ["2015-03-01T00:00:00", "2019-02-01T00:00:00"]], + ["month", 3, ["2019-01-01T00:00:00", "2019-04-01T00:00:00"]], + ].map(([expectedInterval, expectedCount, data]) => { + it(`should return ${expectedCount} ${expectedInterval}`, () => { + // parse timestamps in reporting timezone and serialize + const xValues = data.map(d => moment.tz(d, reportTz).format()); + + const { interval, count } = computeTimeseriesDataInverval(xValues); + + expect(interval).toBe(expectedInterval); + expect(count).toBe(expectedCount); + }); + }); + }); +}); diff --git a/frontend/test/metabase/visualizations/lib/timeseries.unit.spec.js b/frontend/test/metabase/visualizations/lib/timeseries.unit.spec.js index 56091f21af2188e0b4b42e2c74832273edb38ba4..73628a5b20220c7175385c850d4667350a92415d 100644 --- a/frontend/test/metabase/visualizations/lib/timeseries.unit.spec.js +++ b/frontend/test/metabase/visualizations/lib/timeseries.unit.spec.js @@ -1,9 +1,6 @@ -import moment from "moment"; - import { dimensionIsTimeseries, computeTimeseriesDataInverval, - timeseriesScale, getTimezone, } from "metabase/visualizations/lib/timeseries"; import { getVisualizationTransformed } from "metabase/visualizations"; @@ -153,245 +150,6 @@ describe("visualization.lib.timeseries", () => { }); }); - describe("timeseriesScale", () => { - it("should create day ranges", () => { - const scale = timeseriesScale({ - interval: "day", - count: 1, - timezone: "Etc/UTC", - }).domain([ - moment("2019-03-08T00:00:00.000Z"), - moment("2019-03-12T00:00:00.000Z"), - ]); - - expect(scale.ticks().map(t => t.toISOString())).toEqual([ - "2019-03-08T00:00:00.000Z", - "2019-03-09T00:00:00.000Z", - "2019-03-10T00:00:00.000Z", - "2019-03-11T00:00:00.000Z", - "2019-03-12T00:00:00.000Z", - ]); - }); - - it("should create day ranges in pacific time across dst boundary", () => { - const scale = timeseriesScale({ - interval: "day", - count: 1, - timezone: "US/Pacific", - }).domain([ - moment("2019-03-08T00:00:00.000-08"), - moment("2019-03-12T00:00:00.000-07"), - ]); - - expect(scale.ticks().map(t => t.toISOString())).toEqual([ - "2019-03-08T08:00:00.000Z", - "2019-03-09T08:00:00.000Z", - "2019-03-10T08:00:00.000Z", - "2019-03-11T07:00:00.000Z", - "2019-03-12T07:00:00.000Z", - ]); - }); - - it("should create hour ranges in pacific time across spring dst boundary", () => { - const scale = timeseriesScale({ - interval: "hour", - count: 1, - timezone: "US/Pacific", - }).domain([ - moment("2019-03-10T00:00:00.000-08"), - moment("2019-03-10T04:00:00.000-07"), - ]); - - expect(scale.ticks().map(t => t.format())).toEqual([ - "2019-03-10T00:00:00-08:00", - "2019-03-10T01:00:00-08:00", - "2019-03-10T03:00:00-07:00", - "2019-03-10T04:00:00-07:00", - ]); - }); - - it("should create hour ranges in pacific time across fall dst boundary", () => { - const scale = timeseriesScale({ - interval: "hour", - count: 1, - timezone: "US/Pacific", - }).domain([ - moment("2019-11-03T00:00:00.000-07"), - moment("2019-11-03T04:00:00.000-08"), - ]); - - expect(scale.ticks().map(t => t.format())).toEqual([ - "2019-11-03T00:00:00-07:00", - "2019-11-03T01:00:00-07:00", - "2019-11-03T01:00:00-08:00", - "2019-11-03T02:00:00-08:00", - "2019-11-03T03:00:00-08:00", - "2019-11-03T04:00:00-08:00", - ]); - }); - - it("should create day ranges that don't align with UTC hours", () => { - const scale = timeseriesScale({ - interval: "day", - count: 1, - timezone: "Asia/Kathmandu", - }).domain([ - moment("2019-01-01T18:15:00.000Z"), - moment("2019-01-03T18:15:00.000Z"), - ]); - - expect(scale.ticks().map(t => t.toISOString())).toEqual([ - "2019-01-01T18:15:00.000Z", - "2019-01-02T18:15:00.000Z", - "2019-01-03T18:15:00.000Z", - ]); - }); - - it("should create day ranges when the domain doesn't line up with unit boundaries", () => { - const scale = timeseriesScale({ - interval: "day", - count: 1, - timezone: "Etc/UTC", - }).domain([ - moment("2019-03-07T12:34:56.789Z"), - moment("2019-03-12T12:34:56.789Z"), - ]); - - expect(scale.ticks().map(t => t.toISOString())).toEqual([ - "2019-03-08T00:00:00.000Z", - "2019-03-09T00:00:00.000Z", - "2019-03-10T00:00:00.000Z", - "2019-03-11T00:00:00.000Z", - "2019-03-12T00:00:00.000Z", - ]); - }); - - it("should create empty ranges if there are no ticks in domain", () => { - const scale = timeseriesScale({ - interval: "day", - count: 1, - timezone: "Etc/UTC", - }).domain([ - moment("2019-03-09T01:00:00.000Z"), - moment("2019-03-09T22:00:00.000Z"), - ]); - - expect(scale.ticks().length).toBe(0); - }); - - it("should create month ranges in timezone", () => { - const scale = timeseriesScale({ - interval: "month", - count: 1, - timezone: "Asia/Hong_kong", - }).domain([ - moment("2019-03-07T12:34:56.789Z"), - moment("2019-04-12T12:34:56.789Z"), - ]); - - expect(scale.ticks().map(t => t.toISOString())).toEqual([ - "2019-03-31T16:00:00.000Z", - ]); - }); - - it("should create month ranges spaced by count", () => { - const scale = timeseriesScale({ - interval: "month", - count: 3, - timezone: "Etc/UTC", - }).domain([ - moment("2018-11-01T00:00:00.000Z"), - moment("2020-02-01T00:00:00.000Z"), - ]); - - expect(scale.ticks().map(t => t.toISOString())).toEqual([ - "2019-01-01T00:00:00.000Z", - "2019-04-01T00:00:00.000Z", - "2019-07-01T00:00:00.000Z", - "2019-10-01T00:00:00.000Z", - "2020-01-01T00:00:00.000Z", - ]); - }); - - it("should create 50 year ranges", () => { - const scale = timeseriesScale({ - interval: "year", - count: 50, - timezone: "Etc/UTC", - }).domain([ - moment("1890-01-01T00:00:00.000Z"), - moment("2020-01-01T00:00:00.000Z"), - ]); - - expect(scale.ticks().map(t => t.toISOString())).toEqual([ - "1900-01-01T00:00:00.000Z", - "1950-01-01T00:00:00.000Z", - "2000-01-01T00:00:00.000Z", - ]); - }); - - for (const unit of ["month", "quarter", "year"]) { - it(`should produce results with ${unit}s`, () => { - const ticks = timeseriesScale({ - interval: unit, - count: 1, - timezone: "Etc/UTC", - }) - .domain([ - moment("1999-12-31T23:59:59Z"), - moment("2001-01-01T00:00:01Z"), - ]) - .ticks(); - - // we're just ensuring that it produces some results and that the first - // and last are correctly rounded regardless of unit - expect(ticks[0].toISOString()).toEqual("2000-01-01T00:00:00.000Z"); - expect(ticks[ticks.length - 1].toISOString()).toEqual( - "2001-01-01T00:00:00.000Z", - ); - }); - } - - // same as above but with a smaller range so the test runs faster - for (const unit of ["minute", "hour", "day"]) { - it(`should produce results with ${unit}s`, () => { - const ticks = timeseriesScale({ - interval: unit, - count: 1, - timezone: "Etc/UTC", - }) - .domain([ - moment("1999-12-31T23:59:59Z"), - moment("2000-01-02T00:00:01Z"), - ]) - .ticks(); - - expect(ticks[0].toISOString()).toEqual("2000-01-01T00:00:00.000Z"); - expect(ticks[ticks.length - 1].toISOString()).toEqual( - "2000-01-02T00:00:00.000Z", - ); - }); - } - - // weeks are split out because their boundaries don't align with other units - it(`should produce results with weeks`, () => { - const ticks = timeseriesScale({ - interval: "week", - count: 1, - timezone: "Etc/UTC", - }) - .domain([ - moment("2000-01-02T12:34:56Z"), - moment("2000-02-02T12:34:56Z"), - ]) - .ticks(); - - expect(ticks[0].toISOString()).toEqual("2000-01-09T00:00:00.000Z"); - expect(ticks[ticks.length - 1].toISOString()).toEqual( - "2000-01-30T00:00:00.000Z", - ); - }); - }); describe("getTimezone", () => { const series = [ { diff --git a/frontend/test/metabase/visualizations/lib/timeseriesScale.unit.spec.js b/frontend/test/metabase/visualizations/lib/timeseriesScale.unit.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..8a24d817462a2944724dde430bd4cfe11013e4ab --- /dev/null +++ b/frontend/test/metabase/visualizations/lib/timeseriesScale.unit.spec.js @@ -0,0 +1,330 @@ +import moment from "moment"; + +import timeseriesScale from "metabase/visualizations/lib/timeseriesScale"; + +describe("timeseriesScale", () => { + it("should create day ranges", () => { + const scale = timeseriesScale({ + interval: "day", + count: 1, + timezone: "Etc/UTC", + }).domain([ + moment("2019-03-08T00:00:00.000Z"), + moment("2019-03-12T00:00:00.000Z"), + ]); + + expect(scale.ticks().map(t => t.toISOString())).toEqual([ + "2019-03-08T00:00:00.000Z", + "2019-03-09T00:00:00.000Z", + "2019-03-10T00:00:00.000Z", + "2019-03-11T00:00:00.000Z", + "2019-03-12T00:00:00.000Z", + ]); + }); + + it("should create day ranges in pacific time across dst boundary", () => { + const scale = timeseriesScale({ + interval: "day", + count: 1, + timezone: "US/Pacific", + }).domain([ + moment("2019-03-08T00:00:00.000-08"), + moment("2019-03-12T00:00:00.000-07"), + ]); + + expect(scale.ticks().map(t => t.toISOString())).toEqual([ + "2019-03-08T08:00:00.000Z", + "2019-03-09T08:00:00.000Z", + "2019-03-10T08:00:00.000Z", + "2019-03-11T07:00:00.000Z", + "2019-03-12T07:00:00.000Z", + ]); + }); + + it("should create hour ranges in pacific time across spring dst boundary", () => { + const scale = timeseriesScale({ + interval: "hour", + count: 1, + timezone: "US/Pacific", + }).domain([ + moment("2019-03-10T00:00:00.000-08"), + moment("2019-03-10T04:00:00.000-07"), + ]); + + expect(scale.ticks().map(t => t.format())).toEqual([ + "2019-03-10T00:00:00-08:00", + "2019-03-10T01:00:00-08:00", + "2019-03-10T03:00:00-07:00", + "2019-03-10T04:00:00-07:00", + ]); + }); + + it("should create hour ranges in pacific time across fall dst boundary", () => { + const scale = timeseriesScale({ + interval: "hour", + count: 1, + timezone: "US/Pacific", + }).domain([ + moment("2019-11-03T00:00:00.000-07"), + moment("2019-11-03T04:00:00.000-08"), + ]); + + expect(scale.ticks().map(t => t.format())).toEqual([ + "2019-11-03T00:00:00-07:00", + "2019-11-03T01:00:00-07:00", + "2019-11-03T01:00:00-08:00", + "2019-11-03T02:00:00-08:00", + "2019-11-03T03:00:00-08:00", + "2019-11-03T04:00:00-08:00", + ]); + }); + + it("should create day ranges that don't align with UTC hours", () => { + const scale = timeseriesScale({ + interval: "day", + count: 1, + timezone: "Asia/Kathmandu", + }).domain([ + moment("2019-01-01T18:15:00.000Z"), + moment("2019-01-03T18:15:00.000Z"), + ]); + + expect(scale.ticks().map(t => t.toISOString())).toEqual([ + "2019-01-01T18:15:00.000Z", + "2019-01-02T18:15:00.000Z", + "2019-01-03T18:15:00.000Z", + ]); + }); + + it("should create day ranges when the domain doesn't line up with unit boundaries", () => { + const scale = timeseriesScale({ + interval: "day", + count: 1, + timezone: "Etc/UTC", + }).domain([ + moment("2019-03-07T12:34:56.789Z"), + moment("2019-03-12T12:34:56.789Z"), + ]); + + expect(scale.ticks().map(t => t.toISOString())).toEqual([ + "2019-03-08T00:00:00.000Z", + "2019-03-09T00:00:00.000Z", + "2019-03-10T00:00:00.000Z", + "2019-03-11T00:00:00.000Z", + "2019-03-12T00:00:00.000Z", + ]); + }); + + it("should create empty ranges if there are no ticks in domain", () => { + const scale = timeseriesScale({ + interval: "day", + count: 1, + timezone: "Etc/UTC", + }).domain([ + moment("2019-03-09T01:00:00.000Z"), + moment("2019-03-09T22:00:00.000Z"), + ]); + + expect(scale.ticks().length).toBe(0); + }); + + it("should create month ranges in timezone", () => { + const scale = timeseriesScale({ + interval: "month", + count: 1, + timezone: "Asia/Hong_kong", + }).domain([ + moment("2019-03-07T12:34:56.789Z"), + moment("2019-04-12T12:34:56.789Z"), + ]); + + expect(scale.ticks().map(t => t.toISOString())).toEqual([ + "2019-03-31T16:00:00.000Z", + ]); + }); + + it("should create month ranges spaced by count", () => { + const scale = timeseriesScale({ + interval: "month", + count: 3, + timezone: "Etc/UTC", + }).domain([ + moment("2018-11-01T00:00:00.000Z"), + moment("2020-02-01T00:00:00.000Z"), + ]); + + expect(scale.ticks().map(t => t.toISOString())).toEqual([ + "2019-01-01T00:00:00.000Z", + "2019-04-01T00:00:00.000Z", + "2019-07-01T00:00:00.000Z", + "2019-10-01T00:00:00.000Z", + "2020-01-01T00:00:00.000Z", + ]); + }); + + it("should create 50 year ranges", () => { + const scale = timeseriesScale({ + interval: "year", + count: 50, + timezone: "Etc/UTC", + }).domain([ + moment("1890-01-01T00:00:00.000Z"), + moment("2020-01-01T00:00:00.000Z"), + ]); + + expect(scale.ticks().map(t => t.toISOString())).toEqual([ + "1900-01-01T00:00:00.000Z", + "1950-01-01T00:00:00.000Z", + "2000-01-01T00:00:00.000Z", + ]); + }); + + for (const unit of ["month", "quarter", "year"]) { + it(`should produce results with ${unit}s`, () => { + const ticks = timeseriesScale({ + interval: unit, + count: 1, + timezone: "Etc/UTC", + }) + .domain([ + moment("1999-12-31T23:59:59Z"), + moment("2001-01-01T00:00:01Z"), + ]) + .ticks(); + + // we're just ensuring that it produces some results and that the first + // and last are correctly rounded regardless of unit + expect(ticks[0].toISOString()).toEqual("2000-01-01T00:00:00.000Z"); + expect(ticks[ticks.length - 1].toISOString()).toEqual( + "2001-01-01T00:00:00.000Z", + ); + }); + } + + // same as above but with a smaller range so the test runs faster + for (const unit of ["minute", "hour", "day"]) { + it(`should produce results with ${unit}s`, () => { + const ticks = timeseriesScale({ + interval: unit, + count: 1, + timezone: "Etc/UTC", + }) + .domain([ + moment("1999-12-31T23:59:59Z"), + moment("2000-01-02T00:00:01Z"), + ]) + .ticks(); + + expect(ticks[0].toISOString()).toEqual("2000-01-01T00:00:00.000Z"); + expect(ticks[ticks.length - 1].toISOString()).toEqual( + "2000-01-02T00:00:00.000Z", + ); + }); + } + + // weeks are split out because their boundaries don't align with other units + it(`should produce results with weeks`, () => { + const ticks = timeseriesScale({ + interval: "week", + count: 1, + timezone: "Etc/UTC", + }) + .domain([moment("2000-01-02T12:34:56Z"), moment("2000-02-02T12:34:56Z")]) + .ticks(); + + expect(ticks[0].toISOString()).toEqual("2000-01-09T00:00:00.000Z"); + expect(ticks[ticks.length - 1].toISOString()).toEqual( + "2000-01-30T00:00:00.000Z", + ); + }); + + it("should evenly space months", () => { + const scale = timeseriesScale({ + interval: "month", + count: 1, + timezone: "Etc/UTC", + }) + .domain([ + moment("2018-11-01T00:00:00.000Z"), + moment("2019-02-01T00:00:00.000Z"), + ]) + .range([0, 30]); + + expect( + ["2018-11-01", "2018-12-01", "2019-01-01", "2019-02-01"].map(d => + scale(moment(`${d}T00:00:00.000Z`)), + ), + ).toEqual([0, 10, 20, 30]); + }); + + it("should not evenly space years", () => { + // 2020 is a leap year and 2019 is not. With the total width set to the + // total number of days, each year should have one pixel per day. + const scale = timeseriesScale({ + interval: "year", + count: 1, + timezone: "Etc/UTC", + }) + .domain([ + moment("2019-01-01T00:00:00.000Z"), + moment("2021-01-01T00:00:00.000Z"), + ]) + .range([0, 731]); + + expect( + ["2019-01-01", "2020-01-01", "2021-01-01"].map(d => + scale(moment(`${d}T00:00:00.000Z`)), + ), + ).toEqual([0, 365, 731]); + }); + + it("should not evenly space DST-transition days", () => { + // 2019-11-03 is a 25 hour day in US/Pacific + const scale = timeseriesScale({ + interval: "day", + count: 1, + timezone: "US/Pacific", + }) + .domain([ + moment("2019-11-02T00:00:00.000-07"), + moment("2019-11-04T00:00:00.000-08"), + ]) + .range([0, 49]); + + expect( + [ + "2019-11-02T00:00:00.000-07", + "2019-11-03T00:00:00.000-07", + "2019-11-04T00:00:00.000-08", + ].map(d => scale(moment(d))), + ).toEqual([0, 24, 49]); + }); + + it("should handle a stretched domain", () => { + // We extend the domain by a partial month as a margin on charts. Full + // months are evenly spaced, but the partial months on either end should + // not match that spacing. + // In this example, Febuary and January should appear as the same length + // (30 pixels), and the 10 day spacers should appear as 10 pixels. + const scale = timeseriesScale({ + interval: "month", + count: 1, + timezone: "Etc/UTC", + }) + .domain([ + moment("2019-12-22T00:00:00.000Z"), + moment("2020-03-11T00:00:00.000Z"), + ]) + .range([0, 80]); + + expect( + [ + "2019-12-22", + "2020-01-01", + "2020-02-01", + "2020-03-01", + "2020-03-11", + ].map(d => scale(moment(`${d}T00:00:00.000Z`))), + ).toEqual([0, 10, 40, 70, 80]); + }); +}); diff --git a/jest.tz.unit.conf.json b/jest.tz.unit.conf.json new file mode 100644 index 0000000000000000000000000000000000000000..64f2ee88f0c91c8fbe2f6dad9b2ab17a0366c260 --- /dev/null +++ b/jest.tz.unit.conf.json @@ -0,0 +1,30 @@ +{ + "moduleNameMapper": { + "\\.(css|less)$": "<rootDir>/frontend/test/__mocks__/styleMock.js", + "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/frontend/test/__mocks__/fileMock.js", + "^promise-loader\\?global\\!metabase\\/lib\\/ga-metadata$": "<rootDir>/frontend/src/metabase/lib/ga-metadata.js" + }, + "testPathIgnorePatterns": [ + "<rootDir>/frontend/test/legacy-karma", + "<rootDir>/frontend/test/legacy-selenium" + ], + "testMatch": ["<rootDir>/frontend/test/**/*.tz.unit.spec.js?(x)"], + "modulePaths": ["<rootDir>/frontend/test", "<rootDir>/frontend/src"], + "setupFiles": [ + "<rootDir>/frontend/test/jest-setup.js", + "<rootDir>/frontend/test/enzyme-setup.js", + "<rootDir>/frontend/test/metabase-bootstrap.js" + ], + "globals": { + "ace": {}, + "ga": {}, + "document": {} + }, + "coverageDirectory": "./", + "coverageReporters": ["text", "json-summary"], + "collectCoverageFrom": ["frontend/src/**/*.js", "frontend/src/**/*.jsx"], + "coveragePathIgnorePatterns": [ + "/node_modules/", + "/frontend/src/metabase/visualizations/lib/errors.js" + ] +} diff --git a/jest.unit.conf.json b/jest.unit.conf.json index aeeb49773a07001faecdc757c58f5e6b930659f9..cdf8224342c549a8e10d3e209e6285ac7059aaed 100644 --- a/jest.unit.conf.json +++ b/jest.unit.conf.json @@ -6,15 +6,11 @@ }, "testPathIgnorePatterns": [ "<rootDir>/frontend/test/legacy-karma", - "<rootDir>/frontend/test/legacy-selenium" - ], - "testMatch": [ - "<rootDir>/frontend/test/**/*.unit.spec.js?(x)" - ], - "modulePaths": [ - "<rootDir>/frontend/test", - "<rootDir>/frontend/src" + "<rootDir>/frontend/test/legacy-selenium", + "<rootDir>/frontend/test/.*/.*.tz.unit.spec.js" ], + "testMatch": ["<rootDir>/frontend/test/**/*.unit.spec.js?(x)"], + "modulePaths": ["<rootDir>/frontend/test", "<rootDir>/frontend/src"], "setupFiles": [ "<rootDir>/frontend/test/jest-setup.js", "<rootDir>/frontend/test/enzyme-setup.js", @@ -28,5 +24,8 @@ "coverageDirectory": "./", "coverageReporters": ["text", "json-summary"], "collectCoverageFrom": ["frontend/src/**/*.js", "frontend/src/**/*.jsx"], - "coveragePathIgnorePatterns": ["/node_modules/", "/frontend/src/metabase/visualizations/lib/errors.js"] + "coveragePathIgnorePatterns": [ + "/node_modules/", + "/frontend/src/metabase/visualizations/lib/errors.js" + ] } diff --git a/lein-commands/sample-dataset/metabase/sample_dataset/addresses.edn b/lein-commands/sample-dataset/metabase/sample_dataset/addresses.edn deleted file mode 100644 index e175fc72821ef1cfa972ae91fccb369a1c2f8351..0000000000000000000000000000000000000000 --- a/lein-commands/sample-dataset/metabase/sample_dataset/addresses.edn +++ /dev/null @@ -1,17500 +0,0 @@ -({:lat 40.71314890000001, - :lon -98.5259864, - :house-number "9611-9809", - :street "West Rosedale Road", - :city "Wood River", - :state-abbrev "NE", - :zip "68883"} - {:lat 41.5813224, - :lon -92.6991321, - :house-number "101", - :street "4th Street", - :city "Searsboro", - :state-abbrev "IA", - :zip "50242"} - {:lat 46.11973039999999, - :lon -92.8416108, - :house-number "29494", - :street "Anderson Drive", - :city "Sandstone", - :state-abbrev "MN", - :zip "55072"} - {:lat 37.9202933, - :lon -104.9726909, - :house-number "2-7900", - :street "Cuerno Verde Road", - :city "Rye", - :state-abbrev "CO", - :zip "81069"} - {:lat 42.348954, - :lon -77.056681, - :house-number "761", - :street "Fish Hill Road", - :city "Beaver Dams", - :state-abbrev "NY", - :zip "14812"} - {:lat 30.1514772, - :lon -92.4861786, - :house-number "1243", - :street "West Whitney Street", - :city "Morse", - :state-abbrev "LA", - :zip "70559"} - {:lat 31.2341055, - :lon -88.5856948, - :house-number "630", - :street "Coaker Road", - :city "Leakesville", - :state-abbrev "MS", - :zip "39451"} - {:lat 37.43472089999999, - :lon -94.6426865, - :house-number "1167", - :street "East 570th Avenue", - :city "Pittsburg", - :state-abbrev "KS", - :zip "66762"} - {:lat 42.29790209999999, - :lon -95.4673587, - :house-number "5816-5894", - :street "280th Street", - :city "Ida Grove", - :state-abbrev "IA", - :zip "51445"} - {:lat 40.8006673, - :lon -83.2838391, - :house-number "13081-13217", - :street "Main Street", - :city "Upper Sandusky", - :state-abbrev "OH", - :zip "43351"} - {:lat 42.1394217, - :lon -93.982366, - :house-number "495", - :street "Juniper Road", - :city "Pilot Mound", - :state-abbrev "IA", - :zip "50223"} - {:lat 44.9564152, - :lon -97.2287266, - :house-number "16701-16743", - :street "449th Avenue", - :city "Florence", - :state-abbrev "SD", - :zip "57235"} - {:lat 33.08172, - :lon -116.661853, - :house-number "2993", - :street "Hoskings Ranch Road", - :city "Santa Ysabel", - :state-abbrev "CA", - :zip "92070"} - {:lat 39.6485802, - :lon -121.9343322, - :house-number "3964", - :street "Chico River Road", - :city "Chico", - :state-abbrev "CA", - :zip "95928"} - {:lat 35.1080351, - :lon -92.0101859, - :house-number "258", - :street "Opal Road", - :city "El Paso", - :state-abbrev "AR", - :zip "72045"} - {:lat 32.7042678, - :lon -87.54135959999999, - :house-number "3234", - :street "County Road 7", - :city "Greensboro", - :state-abbrev "AL", - :zip "36744"} - {:lat 42.5048529, - :lon -124.1878367, - :house-number "6111", - :street "Rogue Riv", - :city "Gold Beach", - :state-abbrev "OR", - :zip "97444"} - {:lat 45.554885, - :lon -122.5277436, - :house-number "13116", - :street "Northeast Sandy Boulevard", - :city "Portland", - :state-abbrev "OR", - :zip "97230"} - {:lat 42.3222669, - :lon -123.324017, - :house-number "1460", - :street "Grays Creek Road", - :city "Grants Pass", - :state-abbrev "OR", - :zip "97527"} - {:lat 41.466973, - :lon -95.1012128, - :house-number "52737", - :street "570th Street", - :city "Marne", - :state-abbrev "IA", - :zip "51552"} - {:lat 40.9764889, - :lon -98.13254409999999, - :house-number "2002-2078", - :street "North J Road", - :city "Phillips", - :state-abbrev "NE", - :zip "68865"} - {:lat 38.5063378, - :lon -122.1878842, - :house-number "1165", - :street "Rimrock Drive", - :city "Napa", - :state-abbrev "CA", - :zip "94558"} - {:lat 33.0854659, - :lon -81.67635899999999, - :house-number "2003", - :street "Brigham Landing Road", - :city "Girard", - :state-abbrev "GA", - :zip "30426"} - {:lat 47.1794946, - :lon -93.6321358, - :house-number "20930", - :street "Sugar Hills Road", - :city "Cohasset", - :state-abbrev "MN", - :zip "55721"} - {:lat 36.0479853, - :lon -94.20265719999999, - :house-number "1201-2099", - :street "Plumberosa Drive", - :city "Fayetteville", - :state-abbrev "AR", - :zip "72701"} - {:lat 41.4720902, - :lon -118.346273, - :house-number "19480", - :street "Happy Creek Road", - :city "Winnemucca", - :state-abbrev "NV", - :zip "89445"} - {:lat 41.1278979, - :lon -83.5359594, - :house-number "2398-2558", - :street "Township Highway 249", - :city "Arcadia", - :state-abbrev "OH", - :zip "44804"} - {:lat 34.4325826, - :lon -88.5702919, - :house-number "355", - :street "Road 2538", - :city "Baldwyn", - :state-abbrev "MS", - :zip "38824"} - {:lat 39.6955024, - :lon -82.5027112, - :house-number "5125", - :street "Duffy Road Southeast", - :city "Lancaster", - :state-abbrev "OH", - :zip "43130"} - {:lat 34.3125434, - :lon -91.20821, - :house-number "13-99", - :street "Deberry Levee Road", - :city "DeWitt", - :state-abbrev "AR", - :zip "72042"} - {:lat 43.80686660000001, - :lon -91.6359614, - :house-number "2303", - :street "Christianson Hill Road", - :city "Houston", - :state-abbrev "MN", - :zip "55943"} - {:lat 37.94777029999999, - :lon -104.8778192, - :house-number "6101", - :street "County Road CC67", - :city "Pueblo", - :state-abbrev "CO", - :zip "81004"} - {:lat 40.3372992, - :lon -106.7981696, - :house-number "33430", - :street "Danver Trail", - :city "Steamboat Springs", - :state-abbrev "CO", - :zip "80487"} - {:lat 38.656887, - :lon -77.975854, - :house-number "3349", - :street "Holly Springs Road", - :city "Amissville", - :state-abbrev "VA", - :zip "20106"} - {:lat 42.5616569, - :lon -88.677537, - :house-number "N1962", - :street "County Road K", - :city "Sharon", - :state-abbrev "WI", - :zip "53585"} - {:lat 38.6232452, - :lon -98.8225441, - :house-number "244-298", - :street "Northwest 180 Road", - :city "Hoisington", - :state-abbrev "KS", - :zip "67544"} - {:lat 32.3735889, - :lon -111.03742, - :house-number "3210-3298", - :street "West Overton Road", - :city "Tucson", - :state-abbrev "AZ", - :zip "85742"} - {:lat 38.4920821, - :lon -82.0002696, - :house-number "155", - :street "Cow Creek Road", - :city "Hurricane", - :state-abbrev "WV", - :zip "25526"} - {:lat 43.9393467, - :lon -96.1592993, - :house-number "618", - :street "150th Avenue", - :city "Edgerton", - :state-abbrev "MN", - :zip "56128"} - {:lat 29.99592, - :lon -97.5590129, - :house-number "171", - :street "Olive Oyle Lane", - :city "Dale", - :state-abbrev "TX", - :zip "78616"} - {:lat 41.539616, - :lon -93.874784, - :house-number "31619", - :street "Silverado Lane", - :city "Waukee", - :state-abbrev "IA", - :zip "50263"} - {:lat 44.10684560000001, - :lon -75.9958097, - :house-number "30379-30383", - :street "Herbrecht Road", - :city "Watertown", - :state-abbrev "NY", - :zip "13601"} - {:lat 42.43880739999999, - :lon -92.6713936, - :house-number "18001-18999", - :street "North Morrion", - :city "Dike", - :state-abbrev "IA", - :zip "50624"} - {:lat 43.0246186, - :lon -94.6294178, - :house-number "4251-4389", - :street "485th Avenue", - :city "Mallard", - :state-abbrev "IA", - :zip "50562"} - {:lat 41.3221172, - :lon -91.47486099999999, - :house-number "28001-28599", - :street "180th Street", - :city "Columbus Junction", - :state-abbrev "IA", - :zip "52738"} - {:lat 44.8540315, - :lon -84.87710150000001, - :house-number "15000-15312", - :street "Crooked Road Northeast", - :city "Kalkaska", - :state-abbrev "MI", - :zip "49646"} - {:lat 35.337122, - :lon -111.3635, - :house-number "111", - :street "Leupp Road", - :city "Flagstaff", - :state-abbrev "AZ", - :zip "86004"} - {:lat 39.9879628, - :lon -97.1458337, - :house-number "1260", - :street "29th Road", - :city "Morrowville", - :state-abbrev "KS", - :zip "66958"} - {:lat 37.1382857, - :lon -94.11219600000001, - :house-number "6043", - :street "County Road 30", - :city "Reeds", - :state-abbrev "MO", - :zip "64859"} - {:lat 48.2384345, - :lon -97.86937549999999, - :house-number "12751-12799", - :street "57th Street Northeast", - :city "Fordville", - :state-abbrev "ND", - :zip "58231"} - {:lat 33.493444, - :lon -89.8906564, - :house-number "21421", - :street "U.S. 82", - :city "Carrollton", - :state-abbrev "MS", - :zip "38917"} - {:lat 34.057083, - :lon -83.81534099999999, - :house-number "1110", - :street "Puckett Road", - :city "Auburn", - :state-abbrev "GA", - :zip "30011"} - {:lat 34.272145, - :lon -89.185783, - :house-number "1380", - :street "Juba Road", - :city "Pontotoc", - :state-abbrev "MS", - :zip "38863"} - {:lat 42.324103, - :lon -96.74542609999999, - :house-number "87245", - :street "590 Avenue", - :city "Waterbury", - :state-abbrev "NE", - :zip "68785"} - {:lat 32.1412409, - :lon -85.6383022, - :house-number "373", - :street "Lee Loop Road", - :city "Union Springs", - :state-abbrev "AL", - :zip "36089"} - {:lat 40.5974724, - :lon -102.5311932, - :house-number "22842", - :street "County Road 15", - :city "Haxtun", - :state-abbrev "CO", - :zip "80731"} - {:lat 46.578927, - :lon -116.537937, - :house-number "35378", - :street "South Road", - :city "Kendrick", - :state-abbrev "ID", - :zip "83537"} - {:lat 37.8205743, - :lon -87.2486685, - :house-number "174", - :street "Kentucky 1554", - :city "Owensboro", - :state-abbrev "KY", - :zip "42301"} - {:lat 37.4230302, - :lon -105.3720874, - :house-number "3405", - :street "Brittain Road", - :city "Fort Garland", - :state-abbrev "CO", - :zip "81133"} - {:lat 38.111944, - :lon -82.5399396, - :house-number "1826", - :street "Paddle Creek Road", - :city "Fort Gay", - :state-abbrev "WV", - :zip "25514"} - {:lat 35.69917, - :lon -81.017265, - :house-number "7100", - :street "Hudson Chapel Road", - :city "Catawba", - :state-abbrev "NC", - :zip "28609"} - {:lat 27.872096, - :lon -82.61317000000001, - :house-number "12055", - :street "Gandy Boulevard North", - :city "Saint Petersburg", - :state-abbrev "FL", - :zip "33702"} - {:lat 43.21093399999999, - :lon -95.24696499999999, - :house-number "1725", - :street "300th Street", - :city "Spencer", - :state-abbrev "IA", - :zip "51301"} - {:lat 42.723496, - :lon -75.856499, - :house-number "207", - :street "Grenadier Drive", - :city "DeRuyter", - :state-abbrev "NY", - :zip "13052"} - {:lat 44.7004251, - :lon -102.1931175, - :house-number "18630", - :street "Old Marcus Road", - :city "Howes", - :state-abbrev "SD", - :zip "57748"} - {:lat 43.763995, - :lon -75.38189799999999, - :house-number "6568", - :street "Pine Grove Road", - :city "Glenfield", - :state-abbrev "NY", - :zip "13343"} - {:lat 56.26086710000001, - :lon -158.7019256, - :house-number "19", - :street "Riverfront Drive C Street", - :city "Chignik Lake", - :state-abbrev "AK", - :zip "99548"} - {:lat 37.89017339999999, - :lon -87.1323259, - :house-number "449-499", - :street "County Road 400 West", - :city "Rockport", - :state-abbrev "IN", - :zip "47635"} - {:lat 42.3420983, - :lon -96.0377865, - :house-number "2508-2520", - :street "Hancock Avenue", - :city "Moville", - :state-abbrev "IA", - :zip "51039"} - {:lat 42.1362931, - :lon -99.8663091, - :house-number "84975", - :street "Nebraska 7", - :city "Ainsworth", - :state-abbrev "NE", - :zip "69210"} - {:lat 44.500381, - :lon -109.2863821, - :house-number "3801-4099", - :street "North Fork Highway", - :city "Cody", - :state-abbrev "WY", - :zip "82414"} - {:lat 30.604401, - :lon -85.02780299999999, - :house-number "28367", - :street "Florida 69", - :city "Grand Ridge", - :state-abbrev "FL", - :zip "32442"} - {:lat 42.5549457, - :lon -72.6583358, - :house-number "28-50", - :street "Hawks Road", - :city "Shelburne Falls", - :state-abbrev "MA", - :zip "01370"} - {:lat 39.6293759, - :lon -85.3744045, - :house-number "350", - :street "East North Street", - :city "Rushville", - :state-abbrev "IN", - :zip "46173"} - {:lat 43.1848428, - :lon -100.033216, - :house-number "30682", - :street "291st Street", - :city "Winner", - :state-abbrev "SD", - :zip "57580"} - {:lat 32.9558013, - :lon -89.0665798, - :house-number "600", - :street "Hight Moore Road", - :city "Noxapater", - :state-abbrev "MS", - :zip "39346"} - {:lat 37.1228826, - :lon -83.99708249999999, - :house-number "1436", - :street "Tom Cat Trail", - :city "London", - :state-abbrev "KY", - :zip "40741"} - {:lat 45.838178, - :lon -111.495663, - :house-number "4333", - :street "Madison Road", - :city "Three Forks", - :state-abbrev "MT", - :zip "59752"} - {:lat 28.412059, - :lon -81.43779599999999, - :house-number "4797", - :street "Central Florida Parkway", - :city "Orlando", - :state-abbrev "FL", - :zip "32821"} - {:lat 33.2513235, - :lon -95.88581839999999, - :house-number "101-1299", - :street "Mosley Street", - :city "Commerce", - :state-abbrev "TX", - :zip "75428"} - {:lat 48.14901099999999, - :lon -122.137382, - :house-number "6913", - :street "168th Street Northeast", - :city "Arlington", - :state-abbrev "WA", - :zip "98223"} - {:lat 36.2020785, - :lon -94.4309788, - :house-number "15079-15327", - :street "Readings Road", - :city "Siloam Springs", - :state-abbrev "AR", - :zip "72761"} - {:lat 48.6052737, - :lon -109.2199464, - :house-number "4", - :street "Hc 69", - :city "Chinook", - :state-abbrev "MT", - :zip "59523"} - {:lat 40.8042019, - :lon -86.01402499999999, - :house-number "2787", - :street "North 300 East", - :city "Peru", - :state-abbrev "IN", - :zip "46970"} - {:lat 42.6392077, - :lon -72.50279499999999, - :house-number "21-89", - :street "Lyons Hill Road", - :city "Gill", - :state-abbrev "MA", - :zip "01354"} - {:lat 40.29595, - :lon -122.440831, - :house-number "17300", - :street "View Drive", - :city "Cottonwood", - :state-abbrev "CA", - :zip "96022"} - {:lat 42.167971, - :lon -121.867448, - :house-number "9665", - :street "Pat Drive", - :city "Klamath Falls", - :state-abbrev "OR", - :zip "97601"} - {:lat 41.350309, - :lon -123.84852, - :house-number "2", - :street "Site 7", - :city "Hoopa", - :state-abbrev "CA", - :zip "95546"} - {:lat 43.5903545, - :lon -91.33149290000001, - :house-number "17779", - :street "Walnut Road", - :city "Brownsville", - :state-abbrev "MN", - :zip "55919"} - {:lat 34.505161, - :lon -93.006959, - :house-number "2190", - :street "East Grand Avenue", - :city "Hot Springs", - :state-abbrev "AR", - :zip "71901"} - {:lat 31.36935089999999, - :lon -103.5827313, - :house-number "292-386", - :street "County Road 206", - :city "Pecos", - :state-abbrev "TX", - :zip "79772"} - {:lat 43.0570164, - :lon -97.9539025, - :house-number "29883", - :street "412th Avenue", - :city "Avon", - :state-abbrev "SD", - :zip "57315"} - {:lat 61.37213, - :lon -150.098354, - :house-number "25890", - :street "Holstein Avenue", - :city "Wasilla", - :state-abbrev "AK", - :zip "99654"} - {:lat 44.7873093, - :lon -120.934635, - :house-number "11105", - :street "North Old Highway 97", - :city "Madras", - :state-abbrev "OR", - :zip "97741"} - {:lat 47.4154041, - :lon -117.7767551, - :house-number "25611", - :street "South Carman Road", - :city "Cheney", - :state-abbrev "WA", - :zip "99004"} - {:lat 33.2537345, - :lon -92.1484057, - :house-number "839", - :street "Bradley 60 Road", - :city "Hermitage", - :state-abbrev "AR", - :zip "71647"} - {:lat 36.64563400000001, - :lon -120.00331, - :house-number "11821", - :street "West Lincoln Avenue", - :city "Fresno", - :state-abbrev "CA", - :zip "93706"} - {:lat 38.8234, - :lon -82.6755, - :house-number "2329", - :street "Jackson Fork Road", - :city "South Webster", - :state-abbrev "OH", - :zip "45682"} - {:lat 46.331827, - :lon -116.2924427, - :house-number "2160", - :street "Settler Road", - :city "Craigmont", - :state-abbrev "ID", - :zip "83523"} - {:lat 43.7130017, - :lon -75.43909099999999, - :house-number "6088", - :street "Meiss Road", - :city "Glenfield", - :state-abbrev "NY", - :zip "13343"} - {:lat 38.0319159, - :lon -94.2752332, - :house-number "3118", - :street "South 1938 Road", - :city "Rich Hill", - :state-abbrev "MO", - :zip "64779"} - {:lat 46.6588404, - :lon -113.6540732, - :house-number "550", - :street "Rock Creek Road", - :city "Clinton", - :state-abbrev "MT", - :zip "59825"} - {:lat 47.6128237, - :lon -96.9681621, - :house-number "16780", - :street "14th Street Northeast", - :city "Buxton", - :state-abbrev "ND", - :zip "58218"} - {:lat 35.598895, - :lon -84.83532799999999, - :house-number "6183", - :street "Old Dixie Highway", - :city "Evensville", - :state-abbrev "TN", - :zip "37332"} - {:lat 39.6135899, - :lon -122.5711026, - :house-number "3135", - :street "Sanhedrin Road", - :city "Elk Creek", - :state-abbrev "CA", - :zip "95939"} - {:lat 39.8863642, - :lon -86.5583394, - :house-number "1701-1999", - :street "West County Road 850 North", - :city "Lizton", - :state-abbrev "IN", - :zip "46149"} - {:lat 42.7814427, - :lon -94.8164443, - :house-number "48502-48654", - :street "150th Avenue", - :city "Pocahontas", - :state-abbrev "IA", - :zip "50574"} - {:lat 33.509668, - :lon -96.032372, - :house-number "5706", - :street "Farm to Market 1743", - :city "Windom", - :state-abbrev "TX", - :zip "75492"} - {:lat 40.919299, - :lon -81.545908, - :house-number "271", - :street "West Comet Road", - :city "Clinton", - :state-abbrev "OH", - :zip "44216"} - {:lat 40.891452, - :lon -87.290014, - :house-number "5361", - :street "East 700 South", - :city "Brook", - :state-abbrev "IN", - :zip "47922"} - {:lat 30.0178145, - :lon -93.0878386, - :house-number "521-599", - :street "Louisiana 27", - :city "Bell City", - :state-abbrev "LA", - :zip "70630"} - {:lat 39.2802275, - :lon -122.1971163, - :house-number "370", - :street "North Street", - :city "Maxwell", - :state-abbrev "CA", - :zip "95955"} - {:lat 48.65539769999999, - :lon -104.9287866, - :house-number "1711", - :street "Welliver Road", - :city "Redstone", - :state-abbrev "MT", - :zip "59257"} - {:lat 40.922515, - :lon -74.654822, - :house-number "1 A", - :street "Point Pleasant Road", - :city "Hopatcong", - :state-abbrev "NJ", - :zip "07843"} - {:lat 29.18861, - :lon -95.4850699, - :house-number "28161", - :street "FM 521 Road", - :city "Angleton", - :state-abbrev "TX", - :zip "77515"} - {:lat 46.13674779999999, - :lon -106.4627731, - :house-number "2020-2026", - :street "Rosebud Creek Road", - :city "Forsyth", - :state-abbrev "MT", - :zip "59327"} - {:lat 41.6020003, - :lon -80.32627610000002, - :house-number "10237", - :street "Pennsylvania 285", - :city "Conneaut Lake", - :state-abbrev "PA", - :zip "16316"} - {:lat 31.3799326, - :lon -94.5245865, - :house-number "870", - :street "Marions Ferry Road", - :city "Huntington", - :state-abbrev "TX", - :zip "75949"} - {:lat 34.2667033, - :lon -83.7451529, - :house-number "2945-2965", - :street "Gillsville Highway", - :city "Gainesville", - :state-abbrev "GA", - :zip "30507"} - {:lat 42.593775, - :lon -72.021141, - :house-number "538", - :street "Clark Street", - :city "Gardner", - :state-abbrev "MA", - :zip "01440"} - {:lat 43.3301989, - :lon -97.8519453, - :house-number "41706", - :street "280th Street", - :city "Tripp", - :state-abbrev "SD", - :zip "57376"} - {:lat 34.75105, - :lon -119.427429, - :house-number "31541", - :street "California 33", - :city "Maricopa", - :state-abbrev "CA", - :zip "93252"} - {:lat 41.4658789, - :lon -74.9888927, - :house-number "583", - :street "Pennsylvania 590", - :city "Lackawaxen", - :state-abbrev "PA", - :zip "18435"} - {:lat 47.8845232, - :lon -97.6237067, - :house-number "1451-1499", - :street "37th Street Northeast", - :city "Larimore", - :state-abbrev "ND", - :zip "58251"} - {:lat 46.3580329, - :lon -87.829121, - :house-number "4801", - :street "Road Cce", - :city "Ishpeming", - :state-abbrev "MI", - :zip "49849"} - {:lat 31.921767, - :lon -98.324061, - :house-number "1188", - :street "Farm to Market Road 1702", - :city "Dublin", - :state-abbrev "TX", - :zip "76446"} - {:lat 41.1490825, - :lon -87.17967300000001, - :house-number "9698-9912", - :street "North 700 West", - :city "De Motte", - :state-abbrev "IN", - :zip "46310"} - {:lat 37.703053, - :lon -106.37448, - :house-number "19045", - :street "County Road 15", - :city "Del Norte", - :state-abbrev "CO", - :zip "81132"} - {:lat 37.2630179, - :lon -86.1622465, - :house-number "8235", - :street "Nolin Dam Road", - :city "Mammoth Cave", - :state-abbrev "KY", - :zip "42259"} - {:lat 43.153337, - :lon -105.019411, - :house-number "2919", - :street "Walker Creek Road", - :city "Douglas", - :state-abbrev "WY", - :zip "82633"} - {:lat 38.5538818, - :lon -78.85508659999999, - :house-number "5132", - :street "Wengers Mill Road", - :city "Linville", - :state-abbrev "VA", - :zip "22834"} - {:lat 39.561936, - :lon -80.161913, - :house-number "228", - :street "Abpp Drive", - :city "Grant Town", - :state-abbrev "WV", - :zip "26574"} - {:lat 47.6208379, - :lon -105.3887932, - :house-number "281-699", - :street "East Duck Creek Road", - :city "Circle", - :state-abbrev "MT", - :zip "59215"} - {:lat 47.3232465, - :lon -119.309409, - :house-number "8001-8783", - :street "Road 16 Northeast", - :city "Moses Lake", - :state-abbrev "WA", - :zip "98837"} - {:lat 41.414166, - :lon -81.9847444, - :house-number "5509-5501,5500-5508", - :street "McKinley Avenue", - :city "North Ridgeville", - :state-abbrev "OH", - :zip "44039"} - {:lat 30.9388436, - :lon -96.07014129999999, - :house-number "9967-10311", - :street "Jinkins Road", - :city "North Zulch", - :state-abbrev "TX", - :zip "77872"} - {:lat 33.4107005, - :lon -93.8872518, - :house-number "261", - :street "Pr 1138", - :city "Texarkana", - :state-abbrev "AR", - :zip "71854"} - {:lat 44.297511, - :lon -95.6824956, - :house-number "3001-3099", - :street "170th Street", - :city "Tracy", - :state-abbrev "MN", - :zip "56175"} - {:lat 29.11341699999999, - :lon -97.021, - :house-number "15024", - :street "Farm to Market 682", - :city "Yoakum", - :state-abbrev "TX", - :zip "77995"} - {:lat 30.3817696, - :lon -91.1954073, - :house-number "2933", - :street "Sarpy Avenue", - :city "Baton Rouge", - :state-abbrev "LA", - :zip "70820"} - {:lat 48.205763, - :lon -94.5749173, - :house-number "22087", - :street "Fishermans Haven Road Northeast", - :city "Waskish", - :state-abbrev "MN", - :zip "56685"} - {:lat 45.4779624, - :lon -92.5522438, - :house-number "1855", - :street "190th Street", - :city "Centuria", - :state-abbrev "WI", - :zip "54824"} - {:lat 42.3285929, - :lon -97.01779409999999, - :house-number "86229-86265", - :street "576th Avenue", - :city "Wayne", - :state-abbrev "NE", - :zip "68787"} - {:lat 38.827956, - :lon -83.75506399999999, - :house-number "6956", - :street "Mount Aire Road", - :city "Russellville", - :state-abbrev "OH", - :zip "45168"} - {:lat 44.728183, - :lon -83.4251333, - :house-number "2491", - :street "Miller Road", - :city "Lincoln", - :state-abbrev "MI", - :zip "48742"} - {:lat 42.7990559, - :lon -82.66714689999999, - :house-number "8840", - :street "Saint Clair Highway", - :city "Casco", - :state-abbrev "MI", - :zip "48064"} - {:lat 35.166327, - :lon -118.477387, - :house-number "19500", - :street "Dovetail Court", - :city "Tehachapi", - :state-abbrev "CA", - :zip "93561"} - {:lat 33.6872507, - :lon -90.2063275, - :house-number "268", - :street "County Road 454", - :city "Greenwood", - :state-abbrev "MS", - :zip "38930"} - {:lat 37.5746079, - :lon -78.47260849999999, - :house-number "1349", - :street "Prison Road", - :city "Dillwyn", - :state-abbrev "VA", - :zip "23936"} - {:lat 32.682146, - :lon -79.891785, - :house-number "1746", - :street "East Ashley Avenue", - :city "Folly Beach", - :state-abbrev "SC", - :zip "29439"} - {:lat 42.6071945, - :lon -105.5102213, - :house-number "820-872", - :street "Poison Lake Road", - :city "Douglas", - :state-abbrev "WY", - :zip "82633"} - {:lat 46.0369948, - :lon -96.75492559999999, - :house-number "17401-17499", - :street "95th Street Southeast", - :city "Fairmount", - :state-abbrev "ND", - :zip "58030"} - {:lat 44.9074009, - :lon -92.65948999999999, - :house-number "314", - :street "Wisconsin 35", - :city "River Falls", - :state-abbrev "WI", - :zip "54022"} - {:lat 40.5479816, - :lon -105.4740886, - :house-number "3331-3589", - :street "Ballard Road", - :city "Bellvue", - :state-abbrev "CO", - :zip "80512"} - {:lat 37.7530823, - :lon -87.9231926, - :house-number "5036", - :street "Airline Road", - :city "Uniontown", - :state-abbrev "KY", - :zip "42461"} - {:lat 39.7320556, - :lon -90.2451991, - :house-number "212", - :street "Park Street", - :city "Jacksonville", - :state-abbrev "IL", - :zip "62650"} - {:lat 35.9255799, - :lon -76.302166, - :house-number "1343", - :street "Davenport Road", - :city "Columbia", - :state-abbrev "NC", - :zip "27925"} - {:lat 36.8939065, - :lon -89.78379319999999, - :house-number "19736-19746", - :street "County Road 581", - :city "Essex", - :state-abbrev "MO", - :zip "63846"} - {:lat 41.8323487, - :lon -91.2776887, - :house-number "790", - :street "Echo Avenue", - :city "Mechanicsville", - :state-abbrev "IA", - :zip "52306"} - {:lat 40.916432, - :lon -86.097224, - :house-number "10360", - :street "North 100 West", - :city "Macy", - :state-abbrev "IN", - :zip "46951"} - {:lat 32.782583, - :lon -85.3869612, - :house-number "4119", - :street "Chambers County 173", - :city "La Fayette", - :state-abbrev "AL", - :zip "36862"} - {:lat 41.1256993, - :lon -82.8288503, - :house-number "6738-6772", - :street "Ohio 162", - :city "Attica", - :state-abbrev "OH", - :zip "44807"} - {:lat 41.31672040000001, - :lon -101.013686, - :house-number "26046", - :street "West North River Road", - :city "Hershey", - :state-abbrev "NE", - :zip "69143"} - {:lat 47.0765723, - :lon -93.5083726, - :house-number "13271", - :street "West Splithand Road", - :city "Grand Rapids", - :state-abbrev "MN", - :zip "55744"} - {:lat 31.2316415, - :lon -84.5972409, - :house-number "735", - :street "Kelley Road", - :city "Colquitt", - :state-abbrev "GA", - :zip "39837"} - {:lat 45.36304, - :lon -84.30846, - :house-number "9011", - :street "Kisser Road", - :city "Onaway", - :state-abbrev "MI", - :zip "49765"} - {:lat 35.822889, - :lon -81.574767, - :house-number "4126", - :street "Smokey Creek Road", - :city "Lenoir", - :state-abbrev "NC", - :zip "28645"} - {:lat 30.3280707, - :lon -96.7380668, - :house-number "9872", - :street "County Road 132", - :city "Somerville", - :state-abbrev "TX", - :zip "77879"} - {:lat 40.9746726, - :lon -72.1968189, - :house-number "154-156", - :street "Cedar Street", - :city "East Hampton", - :state-abbrev "NY", - :zip "11937"} - {:lat 45.82408, - :lon -104.30909, - :house-number "671", - :street "Prairie Dale Road", - :city "Ekalaka", - :state-abbrev "MT", - :zip "59324"} - {:lat 48.88848369999999, - :lon -96.6728171, - :house-number "3399", - :street "360th Avenue", - :city "Lancaster", - :state-abbrev "MN", - :zip "56735"} - {:lat 32.3125762, - :lon -102.3958822, - :house-number "1901-1999", - :street "Telephone Road", - :city "Andrews", - :state-abbrev "TX", - :zip "79714"} - {:lat 41.16777949999999, - :lon -82.43573289999999, - :house-number "1246", - :street "Jarvis Road", - :city "Wakeman", - :state-abbrev "OH", - :zip "44889"} - {:lat 34.8981079, - :lon -114.783128, - :house-number "131764-132898", - :street "Homer-Klinefelter Road", - :city "Needles", - :state-abbrev "CA", - :zip "92363"} - {:lat 41.977433, - :lon -94.06967730000001, - :house-number "496", - :street "260th Street", - :city "Ogden", - :state-abbrev "IA", - :zip "50212"} - {:lat 42.0529562, - :lon -85.51435, - :house-number "22711", - :street "Davis Drive", - :city "Three Rivers", - :state-abbrev "MI", - :zip "49093"} - {:lat 42.1728599, - :lon -89.7458849, - :house-number "17411", - :street "Shannon Route", - :city "Shannon", - :state-abbrev "IL", - :zip "61078"} - {:lat 42.012186, - :lon -79.046403, - :house-number "12759", - :street "Gurnsey Hollow Road", - :city "Frewsburg", - :state-abbrev "NY", - :zip "14738"} - {:lat 31.6307641, - :lon -91.5771343, - :house-number "253", - :street "Par Road 2-75", - :city "Ferriday", - :state-abbrev "LA", - :zip "71334"} - {:lat 37.17645479999999, - :lon -94.0074102, - :house-number "7059", - :street "Highway Bb", - :city "La Russell", - :state-abbrev "MO", - :zip "64848"} - {:lat 36.780462, - :lon -120.065853, - :house-number "15274", - :street "West Shields Avenue", - :city "Kerman", - :state-abbrev "CA", - :zip "93630"} - {:lat 35.34071, - :lon -86.855531, - :house-number "2051", - :street "Edmondson Road", - :city "Cornersville", - :state-abbrev "TN", - :zip "37047"} - {:lat 48.6032364, - :lon -116.9725721, - :house-number "22", - :street "Snick Road", - :city "Priest River", - :state-abbrev "ID", - :zip "83856"} - {:lat 41.5309186, - :lon -78.083709, - :house-number "1073", - :street "Bailey Run Road", - :city "Austin", - :state-abbrev "PA", - :zip "16720"} - {:lat 46.2863851, - :lon -122.2715574, - :house-number "21000", - :street "Spirit Lake Highway", - :city "Toutle", - :state-abbrev "WA", - :zip "98649"} - {:lat 32.376953, - :lon -81.519071, - :house-number "5460", - :street "Old River Road South", - :city "Brooklet", - :state-abbrev "GA", - :zip "30415"} - {:lat 35.5070479, - :lon -89.37359339999999, - :house-number "79", - :street "North Of Highway", - :city "Stanton", - :state-abbrev "TN", - :zip "38069"} - {:lat 46.6409403, - :lon -102.8973443, - :house-number "5331", - :street "116th Avenue Southwest", - :city "New England", - :state-abbrev "ND", - :zip "58647"} - {:lat 39.6049775, - :lon -91.3183488, - :house-number "15584", - :street "Old 79", - :city "New London", - :state-abbrev "MO", - :zip "63459"} - {:lat 41.8804234, - :lon -76.3494723, - :house-number "3044", - :street "Robinson Road", - :city "Ulster", - :state-abbrev "PA", - :zip "18850"} - {:lat 45.193929, - :lon -91.1803149, - :house-number "24722", - :street "240th Avenue", - :city "Cornell", - :state-abbrev "WI", - :zip "54732"} - {:lat 32.8449836, - :lon -81.0811368, - :house-number "365", - :street "Hickory Hill Road", - :city "Varnville", - :state-abbrev "SC", - :zip "29944"} - {:lat 33.1325727, - :lon -89.1536935, - :house-number "219", - :street "Perry Road", - :city "Louisville", - :state-abbrev "MS", - :zip "39339"} - {:lat 37.192428, - :lon -92.53576609999999, - :house-number "3914", - :street "Missouri 5", - :city "Mansfield", - :state-abbrev "MO", - :zip "65704"} - {:lat 37.9059184, - :lon -94.5065307, - :house-number "14b", - :street "County Road H", - :city "Richards", - :state-abbrev "MO", - :zip "64778"} - {:lat 31.3797001, - :lon -110.9571969, - :house-number "2582-2640", - :street "North Al Harrison Road", - :city "Nogales", - :state-abbrev "AZ", - :zip "85621"} - {:lat 42.160778, - :lon -121.885837, - :house-number "11206", - :street "Ruger Road", - :city "Klamath Falls", - :state-abbrev "OR", - :zip "97601"} - {:lat 42.7741203, - :lon -91.2382421, - :house-number "22331", - :street "312th Street", - :city "Garber", - :state-abbrev "IA", - :zip "52048"} - {:lat 40.39649, - :lon -82.979333, - :house-number "4633", - :street "Steamtown Road", - :city "Ashley", - :state-abbrev "OH", - :zip "43003"} - {:lat 44.4337856, - :lon -95.3307342, - :house-number "26000-26670", - :street "County Road 7", - :city "Wabasso", - :state-abbrev "MN", - :zip "56293"} - {:lat 59.75461900000001, - :lon -154.8722999, - :house-number "9998", - :street "Iliamna Village Road", - :city "Iliamna", - :state-abbrev "AK", - :zip "99606"} - {:lat 37.2799922, - :lon -89.8329473, - :house-number "136", - :street "State Highway RA", - :city "Whitewater", - :state-abbrev "MO", - :zip "63785"} - {:lat 30.0020916, - :lon -94.2665475, - :house-number "5831", - :street "Moonglow Drive", - :city "Beaumont", - :state-abbrev "TX", - :zip "77713"} - {:lat 30.2060304, - :lon -99.0853849, - :house-number "1631", - :street "Otto Staudt Road", - :city "Fredericksburg", - :state-abbrev "TX", - :zip "78624"} - {:lat 36.1941456, - :lon -87.98984159999999, - :house-number "561", - :street "Little Sulphur Creek Road", - :city "Big Sandy", - :state-abbrev "TN", - :zip "38221"} - {:lat 41.3768809, - :lon -102.1067028, - :house-number "5275", - :street "Road 203", - :city "Lewellen", - :state-abbrev "NE", - :zip "69147"} - {:lat 55.294047, - :lon -160.6788618, - :house-number "100", - :street "Main Street", - :city "Sand Point", - :state-abbrev "AK", - :zip "99661"} - {:lat 37.8951407, - :lon -89.06417429999999, - :house-number "4500-4758", - :street "East Euclid Street", - :city "Royalton", - :state-abbrev "IL", - :zip "62983"} - {:lat 41.686414, - :lon -88.634023, - :house-number "3832", - :street "West Sandwich Road", - :city "Sandwich", - :state-abbrev "IL", - :zip "60548"} - {:lat 29.2769731, - :lon -95.60418879999999, - :house-number "22828-23086", - :street "County Road 25", - :city "Damon", - :state-abbrev "TX", - :zip "77430"} - {:lat 44.7650241, - :lon -99.0478074, - :house-number "35700-35792", - :street "181st Street", - :city "Orient", - :state-abbrev "SD", - :zip "57467"} - {:lat 38.2021244, - :lon -105.6365082, - :house-number "761", - :street "County Road 191", - :city "Westcliffe", - :state-abbrev "CO", - :zip "81252"} - {:lat 34.7160477, - :lon -84.6346884, - :house-number "2641", - :street "Tails Creek Church Road", - :city "Ellijay", - :state-abbrev "GA", - :zip "30540"} - {:lat 43.6342315, - :lon -92.93457219999999, - :house-number "19443", - :street "560th Avenue", - :city "Austin", - :state-abbrev "MN", - :zip "55912"} - {:lat 33.0768658, - :lon -98.6260044, - :house-number "322", - :street "Medlan Chapel Road", - :city "Graham", - :state-abbrev "TX", - :zip "76450"} - {:lat 44.6974348, - :lon -109.6102857, - :house-number "561", - :street "Sunlight Road", - :city "Cody", - :state-abbrev "WY", - :zip "82414"} - {:lat 44.0728434, - :lon -95.7249308, - :house-number "1668-1698", - :street "156th Street", - :city "Slayton", - :state-abbrev "MN", - :zip "56172"} - {:lat 43.5026735, - :lon -84.5066867, - :house-number "3620", - :street "South Magrudder Road", - :city "St. Louis", - :state-abbrev "MI", - :zip "48880"} - {:lat 41.778891, - :lon -71.844071, - :house-number "191", - :street "Snake Meadow Road", - :city "Killingly", - :state-abbrev "CT", - :zip "06239"} - {:lat 45.42324980000001, - :lon -102.9816937, - :house-number "13627", - :street "Rabbit Creek Place", - :city "Reva", - :state-abbrev "SD", - :zip "57651"} - {:lat 41.6072879, - :lon -91.44762399999999, - :house-number "4960", - :street "U.S. 6", - :city "Iowa City", - :state-abbrev "IA", - :zip "52240"} - {:lat 43.8482247, - :lon -95.9080164, - :house-number "17229", - :street "1st Street", - :city "Chandler", - :state-abbrev "MN", - :zip "56122"} - {:lat 66.37241159999999, - :lon -150.4916213, - :house-number "15", - :street "North Slope Haul Road", - :city "Fairbanks", - :state-abbrev "AK", - :zip "99701"} - {:lat 40.47705, - :lon -82.26044399999999, - :house-number "17403", - :street "Kaylor Road", - :city "Danville", - :state-abbrev "OH", - :zip "43014"} - {:lat 43.339598, - :lon -82.67549059999999, - :house-number "3507-3745", - :street "Marlette Road", - :city "Croswell", - :state-abbrev "MI", - :zip "48422"} - {:lat 45.9052449, - :lon -96.0412765, - :house-number "23248", - :street "County Highway 8", - :city "Elbow Lake", - :state-abbrev "MN", - :zip "56531"} - {:lat 30.7336771, - :lon -94.9438504, - :house-number "100", - :street "Sunshine Lane", - :city "Livingston", - :state-abbrev "TX", - :zip "77351"} - {:lat 34.070783, - :lon -79.210173, - :house-number "17791", - :street "Pee Dee Road North", - :city "Galivants Ferry", - :state-abbrev "SC", - :zip "29544"} - {:lat 37.530722, - :lon -84.34361249999999, - :house-number "1", - :street "Old Garrard Road", - :city "Berea", - :state-abbrev "KY", - :zip "40403"} - {:lat 45.0499174, - :lon -91.9176634, - :house-number "N10285", - :street "490th Street", - :city "Wheeler", - :state-abbrev "WI", - :zip "54772"} - {:lat 32.5545752, - :lon -110.9335244, - :house-number "35498", - :street "Arizona 77", - :city "Tucson", - :state-abbrev "AZ", - :zip "85739"} - {:lat 29.231494, - :lon -98.58674599999999, - :house-number "19333", - :street "Texas 16", - :city "Von Ormy", - :state-abbrev "TX", - :zip "78073"} - {:lat 31.7874786, - :lon -88.7970596, - :house-number "38", - :street "Gene Roberts Drive", - :city "Shubuta", - :state-abbrev "MS", - :zip "39360"} - {:lat 62.1421096, - :lon -149.9113851, - :house-number "37555", - :street "South Kaliak", - :city "Talkeetna", - :state-abbrev "AK", - :zip "99676"} - {:lat 40.232191, - :lon -83.1745059, - :house-number "14850", - :street "Smart-Cole Road", - :city "Ostrander", - :state-abbrev "OH", - :zip "43061"} - {:lat 34.716032, - :lon -82.469116, - :house-number "805", - :street "River Road", - :city "Piedmont", - :state-abbrev "SC", - :zip "29673"} - {:lat 43.6307309, - :lon -70.8311294, - :house-number "111", - :street "Poverty Pond Road", - :city "Shapleigh", - :state-abbrev "ME", - :zip "04076"} - {:lat 41.7371709, - :lon -75.31117100000002, - :house-number "1711", - :street "Great Bend Turnpike", - :city "Pleasant Mount", - :state-abbrev "PA", - :zip "18453"} - {:lat 37.01058099999999, - :lon -79.571281, - :house-number "1861", - :street "Jasmine Road", - :city "Sandy Level", - :state-abbrev "VA", - :zip "24161"} - {:lat 39.6546536, - :lon -75.89517219999999, - :house-number "361", - :street "Leeds Road", - :city "Elkton", - :state-abbrev "MD", - :zip "21921"} - {:lat 42.0185478, - :lon -85.5427941, - :house-number "21250", - :street "Dentler Drive", - :city "Three Rivers", - :state-abbrev "MI", - :zip "49093"} - {:lat 44.0018723, - :lon -96.04839899999999, - :house-number "1045", - :street "10th Avenue", - :city "Woodstock", - :state-abbrev "MN", - :zip "56186"} - {:lat 38.390851, - :lon -90.4221929, - :house-number "2656", - :street "Fox Run", - :city "Imperial", - :state-abbrev "MO", - :zip "63052"} - {:lat 34.442297, - :lon -80.412144, - :house-number "3338", - :street "McCaskill Road", - :city "Bethune", - :state-abbrev "SC", - :zip "29009"} - {:lat 37.63756310000001, - :lon -86.3101248, - :house-number "3839", - :street "Mook-Centerview Road", - :city "Hudson", - :state-abbrev "KY", - :zip "40145"} - {:lat 44.8002186, - :lon -91.1806963, - :house-number "17210", - :street "Scenic Drive", - :city "Fall Creek", - :state-abbrev "WI", - :zip "54742"} - {:lat 39.6528941, - :lon -83.3396202, - :house-number "7470", - :street "Railroad Street Northeast", - :city "Mount Sterling", - :state-abbrev "OH", - :zip "43143"} - {:lat 38.36489090000001, - :lon -98.67333769999999, - :house-number "550B", - :street "U.S. 56", - :city "Great Bend", - :state-abbrev "KS", - :zip "67530"} - {:lat 45.75853559999999, - :lon -94.4943314, - :house-number "18633", - :street "440th Street", - :city "Holdingford", - :state-abbrev "MN", - :zip "56340"} - {:lat 32.173593, - :lon -98.95164749999999, - :house-number "402", - :street "County Road 292", - :city "Rising Star", - :state-abbrev "TX", - :zip "76471"} - {:lat 42.182373, - :lon -75.84169299999999, - :house-number "37", - :street "Country Knoll Drive", - :city "Binghamton", - :state-abbrev "NY", - :zip "13901"} - {:lat 34.4361918, - :lon -83.2612249, - :house-number "15285", - :street "Georgia 106", - :city "Carnesville", - :state-abbrev "GA", - :zip "30521"} - {:lat 43.8940625, - :lon -103.1231529, - :house-number "24217", - :street "Alihon Lane", - :city "Hermosa", - :state-abbrev "SD", - :zip "57744"} - {:lat 40.7652004, - :lon -86.8898238, - :house-number "488-998", - :street "West 100 North", - :city "Reynolds", - :state-abbrev "IN", - :zip "47980"} - {:lat 36.7088456, - :lon -79.67940689999999, - :house-number "463", - :street "Nowhere Road", - :city "Axton", - :state-abbrev "VA", - :zip "24054"} - {:lat 39.2996331, - :lon -89.8230667, - :house-number "20684", - :street "Claremont Road", - :city "Carlinville", - :state-abbrev "IL", - :zip "62626"} - {:lat 41.4699166, - :lon -96.3151407, - :house-number "6453", - :street "County Road 15", - :city "Arlington", - :state-abbrev "NE", - :zip "68002"} - {:lat 42.8194108, - :lon -74.4285355, - :house-number "1582", - :street "New York 162", - :city "Sprakers", - :state-abbrev "NY", - :zip "12166"} - {:lat 44.0269598, - :lon -104.7325072, - :house-number "818", - :street "State Highway 116 South", - :city "Upton", - :state-abbrev "WY", - :zip "82730"} - {:lat 33.4951893, - :lon -93.9307702, - :house-number "9655", - :street "Old Post Road", - :city "Texarkana", - :state-abbrev "AR", - :zip "71854"} - {:lat 43.3445718, - :lon -82.8238781, - :house-number "208", - :street "Morris Road", - :city "Sandusky", - :state-abbrev "MI", - :zip "48471"} - {:lat 40.0203256, - :lon -97.8166682, - :house-number "224", - :street "Road 4900", - :city "Hardy", - :state-abbrev "NE", - :zip "68943"} - {:lat 35.3401668, - :lon -85.1263524, - :house-number "202", - :street "McCallie Ferry Road", - :city "Soddy-Daisy", - :state-abbrev "TN", - :zip "37379"} - {:lat 47.4284009, - :lon -97.1742982, - :house-number "80", - :street "158th Avenue Northeast", - :city "Hillsboro", - :state-abbrev "ND", - :zip "58045"} - {:lat 42.38416, - :lon -123.078391, - :house-number "2585", - :street "Galls Creek Road", - :city "Gold Hill", - :state-abbrev "OR", - :zip "97525"} - {:lat 38.716067, - :lon -83.340987, - :house-number "345", - :street "Johnson Run Road", - :city "Blue Creek", - :state-abbrev "OH", - :zip "45616"} - {:lat 31.049082, - :lon -87.716759, - :house-number "56503", - :street "Paul Road", - :city "Perdido", - :state-abbrev "AL", - :zip "36562"} - {:lat 40.511278, - :lon -89.624106, - :house-number "15874", - :street "Red Shale Hill Road", - :city "Pekin", - :state-abbrev "IL", - :zip "61554"} - {:lat 34.5311922, - :lon -102.5352594, - :house-number "2901-2999", - :street "Texas 86", - :city "Friona", - :state-abbrev "TX", - :zip "79035"} - {:lat 34.0789972, - :lon -87.161383, - :house-number "85", - :street "June Lane", - :city "Arley", - :state-abbrev "AL", - :zip "35541"} - {:lat 37.345752, - :lon -112.624213, - :house-number "1100", - :street "Lydia's Canyon Road", - :city "Glendale", - :state-abbrev "UT", - :zip "84729"} - {:lat 38.1811093, - :lon -96.713141, - :house-number "758", - :street "H Road", - :city "Cedar Point", - :state-abbrev "KS", - :zip "66843"} - {:lat 39.8391125, - :lon -95.5968961, - :house-number "2278", - :street "Horned Owl Road", - :city "Hiawatha", - :state-abbrev "KS", - :zip "66434"} - {:lat 47.8330014, - :lon -100.3183434, - :house-number "1220-1298", - :street "29th Street Northeast", - :city "Anamoose", - :state-abbrev "ND", - :zip "58710"} - {:lat 44.93645, - :lon -88.1927369, - :house-number "8669", - :street "Valley Line Road", - :city "Oconto Falls", - :state-abbrev "WI", - :zip "54154"} - {:lat 47.853634, - :lon -121.500764, - :house-number "15819", - :street "Index-Galena Road", - :city "Sultan", - :state-abbrev "WA", - :zip "98294"} - {:lat 39.573651, - :lon -76.264066, - :house-number "320", - :street "Priestford Road", - :city "Churchville", - :state-abbrev "MD", - :zip "21028"} - {:lat 35.074197, - :lon -81.86616099999999, - :house-number "170", - :street "State Road S-42-1958", - :city "Chesnee", - :state-abbrev "SC", - :zip "29323"} - {:lat 42.3412681, - :lon -93.0848007, - :house-number "24590-24998", - :street "V Avenue", - :city "Eldora", - :state-abbrev "IA", - :zip "50627"} - {:lat 37.4311908, - :lon -103.4459611, - :house-number "32997", - :street "County Road 193.5", - :city "Kim", - :state-abbrev "CO", - :zip "81049"} - {:lat 35.689965, - :lon -83.922624, - :house-number "621", - :street "Butler Mill Road", - :city "Maryville", - :state-abbrev "TN", - :zip "37803"} - {:lat 41.7821158, - :lon -92.6880092, - :house-number "3551", - :street "50th Street", - :city "Grinnell", - :state-abbrev "IA", - :zip "50112"} - {:lat 43.4605346, - :lon -85.2398777, - :house-number "7800", - :street "Schmeid Road", - :city "Lakeview", - :state-abbrev "MI", - :zip "48850"} - {:lat 40.1309832, - :lon -110.6794079, - :house-number "36449", - :street "Strawberry River Road", - :city "Duchesne", - :state-abbrev "UT", - :zip "84021"} - {:lat 47.9993618, - :lon -102.9765214, - :house-number "11168", - :street "41st Street Northwest", - :city "Keene", - :state-abbrev "ND", - :zip "58847"} - {:lat 42.90755799999999, - :lon -89.06496299999999, - :house-number "676", - :street "Craig Road", - :city "Edgerton", - :state-abbrev "WI", - :zip "53534"} - {:lat 35.4347041, - :lon -102.2610425, - :house-number "101", - :street "U.S. 385", - :city "Boys Ranch", - :state-abbrev "TX", - :zip "79010"} - {:lat 37.036569, - :lon -119.428604, - :house-number "35213", - :street "Oak Springs Road", - :city "Tollhouse", - :state-abbrev "CA", - :zip "93667"} - {:lat 31.5683718, - :lon -98.7032416, - :house-number "321", - :street "County Road 549", - :city "Mullin", - :state-abbrev "TX", - :zip "76864"} - {:lat 40.2804507, - :lon -87.40699389999999, - :house-number "4500-4758", - :street "State Road 28", - :city "Williamsport", - :state-abbrev "IN", - :zip "47993"} - {:lat 35.926761, - :lon -82.64889210000001, - :house-number "741", - :street "Lewis Branch Road", - :city "Marshall", - :state-abbrev "NC", - :zip "28753"} - {:lat 61.52915400000001, - :lon -149.457747, - :house-number "4501", - :street "Well Site Road", - :city "Wasilla", - :state-abbrev "AK", - :zip "99654"} - {:lat 42.8486932, - :lon -92.8694371, - :house-number "13469-13599", - :street "Ivy Avenue", - :city "Greene", - :state-abbrev "IA", - :zip "50636"} - {:lat 43.8968648, - :lon -101.7609158, - :house-number "24206", - :street "Fairview Road", - :city "Philip", - :state-abbrev "SD", - :zip "57567"} - {:lat 35.525398, - :lon -119.463896, - :house-number "26323", - :street "Merced Avenue", - :city "Wasco", - :state-abbrev "CA", - :zip "93280"} - {:lat 43.8726352, - :lon -70.2875686, - :house-number "256", - :street "Yarmouth Road", - :city "Gray", - :state-abbrev "ME", - :zip "04039"} - {:lat 30.098465, - :lon -95.6346049, - :house-number "1720", - :street "Hicks Street", - :city "Tomball", - :state-abbrev "TX", - :zip "77375"} - {:lat 62.36383000000001, - :lon -150.3484531, - :house-number "5766", - :street "East Whispering Woods Avenue", - :city "Trapper Creek", - :state-abbrev "AK", - :zip "99688"} - {:lat 40.7840789, - :lon -79.7983422, - :house-number "101-199", - :street "Durango Lane", - :city "Cabot", - :state-abbrev "PA", - :zip "16023"} - {:lat 30.7506, - :lon -83.232, - :house-number "3680", - :street "Carroll Ulmer Road", - :city "Valdosta", - :state-abbrev "GA", - :zip "31601"} - {:lat 42.937593, - :lon -93.6410973, - :house-number "1747-1799", - :street "120th Street", - :city "Goodell", - :state-abbrev "IA", - :zip "50439"} - {:lat 43.1187216, - :lon -94.9136304, - :house-number "3600-3698", - :street "340th Avenue", - :city "Ruthven", - :state-abbrev "IA", - :zip "51358"} - {:lat 34.3883628, - :lon -89.4442464, - :house-number "369", - :street "Mississippi 30", - :city "Oxford", - :state-abbrev "MS", - :zip "38655"} - {:lat 48.8050359, - :lon -97.20627449999999, - :house-number "9601-9697", - :street "160th Avenue Northeast", - :city "Pembina", - :state-abbrev "ND", - :zip "58271"} - {:lat 41.3713447, - :lon -74.508512, - :house-number "180", - :street "County Road 22", - :city "Slate Hill", - :state-abbrev "NY", - :zip "10973"} - {:lat 32.3737973, - :lon -85.0684674, - :house-number "43", - :street "Downing Drive", - :city "Phenix City", - :state-abbrev "AL", - :zip "36869"} - {:lat 37.7498548, - :lon -78.25526839999999, - :house-number "179", - :street "Cloverdale Road", - :city "Bremo Bluff", - :state-abbrev "VA", - :zip "23022"} - {:lat 41.5099562, - :lon -92.4001047, - :house-number "1961", - :street "540th Avenue", - :city "Gibson", - :state-abbrev "IA", - :zip "50104"} - {:lat 44.3993806, - :lon -103.7008776, - :house-number "20716", - :street "Whitewood Creek Road", - :city "Sturgis", - :state-abbrev "SD", - :zip "57785"} - {:lat 36.4429932, - :lon -81.6218153, - :house-number "12996", - :street "Highway 88", - :city "Creston", - :state-abbrev "NC", - :zip "28615"} - {:lat 40.9406, - :lon -77.4245418, - :house-number "228", - :street "Back Road", - :city "Rebersburg", - :state-abbrev "PA", - :zip "16872"} - {:lat 33.7877413, - :lon -88.22801779999999, - :house-number "6350", - :street "County Lake Road", - :city "Sulligent", - :state-abbrev "AL", - :zip "35586"} - {:lat 55.294047, - :lon -160.6788618, - :house-number "100", - :street "Main Street", - :city "Sand Point", - :state-abbrev "AK", - :zip "99661"} - {:lat 43.4903212, - :lon -97.74377899999999, - :house-number "42264", - :street "269th Street", - :city "Alexandria", - :state-abbrev "SD", - :zip "57311"} - {:lat 38.731919, - :lon -75.501182, - :house-number "14329", - :street "Road 592", - :city "Bridgeville", - :state-abbrev "DE", - :zip "19933"} - {:lat 42.6917144, - :lon -100.7440356, - :house-number "5-31", - :street "290th Avenue", - :city "Valentine", - :state-abbrev "NE", - :zip "69201"} - {:lat 41.0493214, - :lon -81.5361166, - :house-number "101", - :street "West Emerling Avenue", - :city "Akron", - :state-abbrev "OH", - :zip "44301"} - {:lat 40.7486852, - :lon -106.6111981, - :house-number "4998", - :street "County Road 16", - :city "Walden", - :state-abbrev "CO", - :zip "80480"} - {:lat 38.65403999999999, - :lon -89.949741, - :house-number "520", - :street "Willow Bend Lane", - :city "O'Fallon", - :state-abbrev "IL", - :zip "62269"} - {:lat 48.169711, - :lon -96.74520530000001, - :house-number "32548", - :street "200th Street Northwest", - :city "Warren", - :state-abbrev "MN", - :zip "56762"} - {:lat 33.5299639, - :lon -104.8391361, - :house-number "292-434", - :street "Draper Road", - :city "Roswell", - :state-abbrev "NM", - :zip "88201"} - {:lat 40.2052092, - :lon -102.7168116, - :house-number "5001-5999", - :street "County Road 44", - :city "Yuma", - :state-abbrev "CO", - :zip "80759"} - {:lat 39.8454451, - :lon -75.2502988, - :house-number "825", - :street "Clonmell Road", - :city "Paulsboro", - :state-abbrev "NJ", - :zip "08066"} - {:lat 37.6251974, - :lon -103.3524315, - :house-number "43200", - :street "Colorado 109", - :city "Kim", - :state-abbrev "CO", - :zip "81049"} - {:lat 41.6501178, - :lon -90.1317763, - :house-number "4100-4116", - :street "Sand Road", - :city "Erie", - :state-abbrev "IL", - :zip "61250"} - {:lat 40.2049537, - :lon -80.39586109999999, - :house-number "1767", - :street "Brush Run Road", - :city "Avella", - :state-abbrev "PA", - :zip "15312"} - {:lat 40.390835, - :lon -87.9144398, - :house-number "36376", - :street "North 170 East Road", - :city "Rankin", - :state-abbrev "IL", - :zip "60960"} - {:lat 34.865119, - :lon -120.296285, - :house-number "4989", - :street "Foxen Canyon Road", - :city "Santa Maria", - :state-abbrev "CA", - :zip "93454"} - {:lat 36.1709076, - :lon -83.715249, - :house-number "285", - :street "Emory Road", - :city "Blaine", - :state-abbrev "TN", - :zip "37709"} - {:lat 32.5653807, - :lon -100.8001906, - :house-number "11498", - :street "County Road 4167", - :city "Hermleigh", - :state-abbrev "TX", - :zip "79526"} - {:lat 46.3313462, - :lon -90.4063331, - :house-number "9668-9674", - :street "Pleasant Lake Road", - :city "Upson", - :state-abbrev "WI", - :zip "54565"} - {:lat 64.846943, - :lon -148.2255821, - :house-number "5674", - :street "Old Ridge Trail", - :city "Fairbanks", - :state-abbrev "AK", - :zip "99709"} - {:lat 37.9969555, - :lon -122.9928238, - :house-number "27107-27539", - :street "Chimney Rock Road", - :city "Inverness", - :state-abbrev "CA", - :zip "94937"} - {:lat 40.2127077, - :lon -95.8461579, - :house-number "71669", - :street "639 Avenue", - :city "Humboldt", - :state-abbrev "NE", - :zip "68376"} - {:lat 46.4302493, - :lon -101.1323048, - :house-number "6746-6842", - :street "County Road 83", - :city "Flasher", - :state-abbrev "ND", - :zip "58535"} - {:lat 37.329562, - :lon -79.731115, - :house-number "1229", - :street "Shadow Mountain Lane", - :city "Blue Ridge", - :state-abbrev "VA", - :zip "24064"} - {:lat 33.0356797, - :lon -85.5411367, - :house-number "6203-6299", - :street "Chambers County 053", - :city "Wadley", - :state-abbrev "AL", - :zip "36276"} - {:lat 38.4266745, - :lon -121.652151, - :house-number "R3E", - :street "Camino Court", - :city "Dixon", - :state-abbrev "CA", - :zip "95620"} - {:lat 32.4891393, - :lon -82.79339829999999, - :house-number "730-800", - :street "Jw Warren Road", - :city "East Dublin", - :state-abbrev "GA", - :zip "31027"} - {:lat 41.3328225, - :lon -86.2217687, - :house-number "9701-10035", - :street "South Iris Road", - :city "Plymouth", - :state-abbrev "IN", - :zip "46563"} - {:lat 30.0216907, - :lon -90.186703, - :house-number "4501-4517", - :street "Alphonse Drive", - :city "Metairie", - :state-abbrev "LA", - :zip "70006"} - {:lat 33.737864, - :lon -95.5020739, - :house-number "3104", - :street "County Road 43270", - :city "Powderly", - :state-abbrev "TX", - :zip "75473"} - {:lat 33.474077, - :lon -83.04224800000001, - :house-number "4511", - :street "White Plains Road", - :city "White Plains", - :state-abbrev "GA", - :zip "30678"} - {:lat 42.9046499, - :lon -75.78098279999999, - :house-number "3701-3797", - :street "Erieville Road", - :city "Cazenovia", - :state-abbrev "NY", - :zip "13035"} - {:lat 42.0515048, - :lon -78.2052235, - :house-number "8299", - :street "Green Road", - :city "Bolivar", - :state-abbrev "NY", - :zip "14715"} - {:lat 36.4508851, - :lon -85.1597474, - :house-number "188", - :street "Victor Padgett", - :city "Monroe", - :state-abbrev "TN", - :zip "38573"} - {:lat 41.9092788, - :lon -89.05070889999999, - :house-number "1001", - :street "South Main Street", - :city "Rochelle", - :state-abbrev "IL", - :zip "61068"} - {:lat 34.89559560000001, - :lon -94.9734872, - :house-number "40523", - :street "Line Street", - :city "Le Flore", - :state-abbrev "OK", - :zip "74942"} - {:lat 47.366296, - :lon -108.518454, - :house-number "15182", - :street "Valentine Road", - :city "Roy", - :state-abbrev "MT", - :zip "59471"} - {:lat 43.0282796, - :lon -72.5981097, - :house-number "2-298", - :street "Windmill Hill Trail", - :city "Brookline", - :state-abbrev "VT", - :zip "05345"} - {:lat 42.7842145, - :lon -85.2515325, - :house-number "13981", - :street "Perry Road", - :city "Lake Odessa", - :state-abbrev "MI", - :zip "48849"} - {:lat 28.5522135, - :lon -81.35147409999999, - :house-number "2400-2418", - :street "East Colonial Drive", - :city "Orlando", - :state-abbrev "FL", - :zip "32803"} - {:lat 43.49627599999999, - :lon -84.054371, - :house-number "7130", - :street "Kochville Road", - :city "Freeland", - :state-abbrev "MI", - :zip "48623"} - {:lat 44.7162483, - :lon -108.1862576, - :house-number "2120", - :street "Ln 16 1/2", - :city "Lovell", - :state-abbrev "WY", - :zip "82431"} - {:lat 32.2029844, - :lon -89.7955089, - :house-number "177-183", - :street "Antioch-Shiloh Road", - :city "Pelahatchie", - :state-abbrev "MS", - :zip "39145"} - {:lat 43.7774483, - :lon -89.4570366, - :house-number "3942", - :street "8th Drive", - :city "Montello", - :state-abbrev "WI", - :zip "53949"} - {:lat 46.6066045, - :lon -109.5645057, - :house-number "1102-1162", - :street "Judith Gap Road", - :city "Judith Gap", - :state-abbrev "MT", - :zip "59453"} - {:lat 32.8635063, - :lon -84.8623672, - :house-number "629", - :street "Chipley Street", - :city "Pine Mountain", - :state-abbrev "GA", - :zip "31822"} - {:lat 30.1279774, - :lon -98.483712, - :house-number "2631", - :street "North US Highway 281", - :city "Blanco", - :state-abbrev "TX", - :zip "78606"} - {:lat 37.5581635, - :lon -89.535821, - :house-number "5485", - :street "County Road 535", - :city "Jackson", - :state-abbrev "MO", - :zip "63755"} - {:lat 35.9969869, - :lon -81.6819901, - :house-number "5895", - :street "North Carolina 90", - :city "Collettsville", - :state-abbrev "NC", - :zip "28611"} - {:lat 40.7380401, - :lon -83.28694360000001, - :house-number "8874-9380", - :street "Ohio 294", - :city "Harpster", - :state-abbrev "OH", - :zip "43323"} - {:lat 36.184963, - :lon -121.197168, - :house-number "43521", - :street "VÃa Canada", - :city "King City", - :state-abbrev "CA", - :zip "93930"} - {:lat 45.3941852, - :lon -90.93547889999999, - :house-number "2811", - :street "Martin Road", - :city "Sheldon", - :state-abbrev "WI", - :zip "54766"} - {:lat 41.0167821, - :lon -97.8283055, - :house-number "2406", - :street "East 23 Road", - :city "Hampton", - :state-abbrev "NE", - :zip "68843"} - {:lat 36.2943794, - :lon -84.09738039999999, - :house-number "301", - :street "Fox Lake Lane", - :city "LaFollette", - :state-abbrev "TN", - :zip "37766"} - {:lat 47.55104499999999, - :lon -106.080787, - :house-number "2913", - :street "Horse Creek Road", - :city "Circle", - :state-abbrev "MT", - :zip "59215"} - {:lat 39.268984, - :lon -77.19474199999999, - :house-number "9505", - :street "Meadow Ridge Lane", - :city "Laytonsville", - :state-abbrev "MD", - :zip "20882"} - {:lat 33.6957652, - :lon -93.00202499999999, - :house-number "274", - :street "Knight Road", - :city "Chidester", - :state-abbrev "AR", - :zip "71726"} - {:lat 32.8553266, - :lon -88.96096179999999, - :house-number "10041", - :street "Road 785", - :city "Philadelphia", - :state-abbrev "MS", - :zip "39350"} - {:lat 36.7202659, - :lon -78.5598595, - :house-number "971", - :street "Clay Road", - :city "Skipwith", - :state-abbrev "VA", - :zip "23968"} - {:lat 34.78028, - :lon -77.626577, - :house-number "112", - :street "Batchelor Road", - :city "Richlands", - :state-abbrev "NC", - :zip "28574"} - {:lat 36.3934825, - :lon -106.4900081, - :house-number "23196", - :street "U.S. 84", - :city "Abiquiu", - :state-abbrev "NM", - :zip "87510"} - {:lat 42.8717651, - :lon -76.63044459999999, - :house-number "5115", - :street "Ridge Road", - :city "Union Springs", - :state-abbrev "NY", - :zip "13160"} - {:lat 46.798863, - :lon -112.179823, - :house-number "8717", - :street "Chevallier Drive", - :city "Helena", - :state-abbrev "MT", - :zip "59602"} - {:lat 40.842401, - :lon -85.727317, - :house-number "810", - :street "Tipton Street", - :city "Lagro", - :state-abbrev "IN", - :zip "46941"} - {:lat 47.4690299, - :lon -111.448239, - :house-number "251", - :street "Polish Road", - :city "Great Falls", - :state-abbrev "MT", - :zip "59404"} - {:lat 30.326049, - :lon -92.203801, - :house-number "1899", - :street "Higginbotham Highway", - :city "Church Point", - :state-abbrev "LA", - :zip "70525"} - {:lat 40.18612299999999, - :lon -79.67120899999999, - :house-number "221", - :street "Waltz Mill Road", - :city "Ruffs Dale", - :state-abbrev "PA", - :zip "15679"} - {:lat 44.39979109999999, - :lon -68.8100769, - :house-number "38", - :street "Back Shore Road", - :city "Castine", - :state-abbrev "ME", - :zip "04421"} - {:lat 38.6913194, - :lon -86.4017087, - :house-number "27", - :street "Noe's Chicken House Road", - :city "Orleans", - :state-abbrev "IN", - :zip "47452"} - {:lat 29.43706, - :lon -82.813959, - :house-number "7231", - :street "Northwest 30th Street", - :city "Chiefland", - :state-abbrev "FL", - :zip "32626"} - {:lat 48.6167295, - :lon -99.1286372, - :house-number "7059-7099", - :street "83rd Street Northeast", - :city "Egeland", - :state-abbrev "ND", - :zip "58331"} - {:lat 34.1911408, - :lon -89.1202776, - :house-number "2425", - :street "Oak Forest Road", - :city "Pontotoc", - :state-abbrev "MS", - :zip "38863"} - {:lat 54.8488896, - :lon -163.4073178, - :house-number "180", - :street "Unimak Drive", - :city "False Pass", - :state-abbrev "AK", - :zip "99583"} - {:lat 61.2668195, - :lon -145.2833742, - :house-number "95", - :street "Alaska 4", - :city "Copper Center", - :state-abbrev "AK", - :zip "99573"} - {:lat 39.16605149999999, - :lon -123.3810453, - :house-number "11001", - :street "Low Gap Road", - :city "Ukiah", - :state-abbrev "CA", - :zip "95482"} - {:lat 42.2818569, - :lon -93.7430547, - :house-number "2100-2174", - :street "350th Street", - :city "Stanhope", - :state-abbrev "IA", - :zip "50246"} - {:lat 40.1801095, - :lon -98.23249589999999, - :house-number "2730", - :street "Road North", - :city "Lawrence", - :state-abbrev "NE", - :zip "68957"} - {:lat 44.104079, - :lon -111.4923297, - :house-number "3321", - :street "Pleasant Hill View", - :city "Ashton", - :state-abbrev "ID", - :zip "83420"} - {:lat 38.5209723, - :lon -106.6766573, - :house-number "2594-3538", - :street "County Road 76", - :city "Parlin", - :state-abbrev "CO", - :zip "81239"} - {:lat 34.25811789999999, - :lon -84.42085209999999, - :house-number "5683", - :street "Jay Green Road", - :city "Canton", - :state-abbrev "GA", - :zip "30114"} - {:lat 44.895405, - :lon -85.01131230000001, - :house-number "4571-4599", - :street "Musser Road", - :city "Mancelona", - :state-abbrev "MI", - :zip "49659"} - {:lat 34.8236058, - :lon -91.8405691, - :house-number "184", - :street "Lilly Lane", - :city "Lonoke", - :state-abbrev "AR", - :zip "72086"} - {:lat 28.6705901, - :lon -82.61898, - :house-number "9234-9256", - :street "Zebrafinch Avenue", - :city "Brooksville", - :state-abbrev "FL", - :zip "34614"} - {:lat 43.6585004, - :lon -98.13524149999999, - :house-number "40300-40398", - :street "257th Street", - :city "Mitchell", - :state-abbrev "SD", - :zip "57301"} - {:lat 41.711713, - :lon -79.9304678, - :house-number "31002", - :street "Johnson Road", - :city "Townville", - :state-abbrev "PA", - :zip "16360"} - {:lat 46.5652693, - :lon -96.1857107, - :house-number "14787", - :street "Minnesota 108", - :city "Pelican Rapids", - :state-abbrev "MN", - :zip "56572"} - {:lat 62.1402087, - :lon -149.9117934, - :house-number "37661", - :street "South Kaliak", - :city "Talkeetna", - :state-abbrev "AK", - :zip "99676"} - {:lat 41.4293833, - :lon -91.1865965, - :house-number "1901-1973", - :street "215th Street", - :city "Muscatine", - :state-abbrev "IA", - :zip "52761"} - {:lat 35.411868, - :lon -79.52678, - :house-number "1499", - :street "Plank Road", - :city "Robbins", - :state-abbrev "NC", - :zip "27325"} - {:lat 35.7831615, - :lon -91.6198103, - :house-number "225", - :street "Miller Creek Road", - :city "Batesville", - :state-abbrev "AR", - :zip "72501"} - {:lat 42.1059992, - :lon -71.71592009999999, - :house-number "171", - :street "Jones Road", - :city "Sutton", - :state-abbrev "MA", - :zip "01590"} - {:lat 38.643258, - :lon -76.558375, - :house-number "2540", - :street "Sharon Court", - :city "Sunderland", - :state-abbrev "MD", - :zip "20689"} - {:lat 42.607759, - :lon -76.354182, - :house-number "370", - :street "Clark Street Extended", - :city "Groton", - :state-abbrev "NY", - :zip "13073"} - {:lat 43.4861087, - :lon -96.9791156, - :house-number "46115", - :street "269th Street", - :city "Chancellor", - :state-abbrev "SD", - :zip "57015"} - {:lat 29.8558423, - :lon -94.097933, - :house-number "7665", - :street "Texas 73", - :city "Beaumont", - :state-abbrev "TX", - :zip "77705"} - {:lat 66.92456100000001, - :lon -151.505773, - :house-number "101", - :street "South Hickel Highway", - :city "Bettles", - :state-abbrev "AK", - :zip "99726"} - {:lat 29.9929309, - :lon -93.1543835, - :house-number "205", - :street "Hebert Trailer Park Road", - :city "Lake Charles", - :state-abbrev "LA", - :zip "70607"} - {:lat 33.601174, - :lon -81.15536999999999, - :house-number "6192", - :street "South Carolina 394", - :city "North", - :state-abbrev "SC", - :zip "29112"} - {:lat 34.960715, - :lon -78.781319, - :house-number "4850", - :street "Gainey Road", - :city "Fayetteville", - :state-abbrev "NC", - :zip "28306"} - {:lat 40.758517, - :lon -124.049391, - :house-number "2927", - :street "Freshwater Road", - :city "Eureka", - :state-abbrev "CA", - :zip "95503"} - {:lat 37.288416, - :lon -108.003251, - :house-number "493", - :street "Perins Peak Lane", - :city "Durango", - :state-abbrev "CO", - :zip "81301"} - {:lat 34.212497, - :lon -84.606105, - :house-number "576", - :street "Fincher Road", - :city "Canton", - :state-abbrev "GA", - :zip "30114"} - {:lat 43.4571255, - :lon -105.4554265, - :house-number "1245", - :street "Jenne Trail Road", - :city "Douglas", - :state-abbrev "WY", - :zip "82633"} - {:lat 46.1527482, - :lon -84.1175427, - :house-number "11443", - :street "East Gogomain Road", - :city "Goetzville", - :state-abbrev "MI", - :zip "49736"} - {:lat 38.2322784, - :lon -89.6670206, - :house-number "745-813", - :street "County Highway 12", - :city "Coulterville", - :state-abbrev "IL", - :zip "62237"} - {:lat 29.7620941, - :lon -98.5691174, - :house-number "31942-31950", - :street "Oak Ridge Parkway", - :city "Bulverde", - :state-abbrev "TX", - :zip "78163"} - {:lat 36.7177719, - :lon -86.44161539999999, - :house-number "759", - :street "Henry Clay Smith Road", - :city "Franklin", - :state-abbrev "KY", - :zip "42134"} - {:lat 47.7602102, - :lon -98.58079459999999, - :house-number "9343", - :street "24th Street Northeast", - :city "Tolna", - :state-abbrev "ND", - :zip "58380"} - {:lat 36.3361469, - :lon -97.63530899999999, - :house-number "16418", - :street "E0470 Road", - :city "Fairmont", - :state-abbrev "OK", - :zip "73736"} - {:lat 31.5882886, - :lon -83.4849861, - :house-number "196", - :street "Wyatt Way", - :city "Chula", - :state-abbrev "GA", - :zip "31733"} - {:lat 41.1434785, - :lon -95.15353309999999, - :house-number "1106", - :street "L Avenue", - :city "Elliott", - :state-abbrev "IA", - :zip "51532"} - {:lat 36.9492281, - :lon -90.1344712, - :house-number "7904", - :street "State Highway PP", - :city "Puxico", - :state-abbrev "MO", - :zip "63960"} - {:lat 33.999475, - :lon -90.88267689999999, - :house-number "7882", - :street "Mississippi 1", - :city "Duncan", - :state-abbrev "MS", - :zip "38740"} - {:lat 36.4568888, - :lon -114.8473813, - :house-number "17283", - :street "North Las Vegas Boulevard", - :city "Moapa", - :state-abbrev "NV", - :zip "89025"} - {:lat 27.331667, - :lon -82.08469099999999, - :house-number "11500", - :street "Curtis Road", - :city "Myakka City", - :state-abbrev "FL", - :zip "34251"} - {:lat 38.0299536, - :lon -100.3918896, - :house-number "26701-27699", - :street "East Oyler Road", - :city "Ingalls", - :state-abbrev "KS", - :zip "67853"} - {:lat 42.5574159, - :lon -89.5572457, - :house-number "3963", - :street "Carter Road", - :city "Juda", - :state-abbrev "WI", - :zip "53550"} - {:lat 30.669218, - :lon -89.077568, - :house-number "14262", - :street "Martha Redmond Road", - :city "Saucier", - :state-abbrev "MS", - :zip "39574"} - {:lat 37.8729318, - :lon -109.1608253, - :house-number "450", - :street "North Old Highway", - :city "Monticello", - :state-abbrev "UT", - :zip "84535"} - {:lat 39.929032, - :lon -109.381367, - :house-number "36168", - :street "South Archy Draw", - :city "Vernal", - :state-abbrev "UT", - :zip "84078"} - {:lat 37.5085713, - :lon -105.005597, - :house-number "200-298", - :street "Locust Street", - :city "La Veta", - :state-abbrev "CO", - :zip "81055"} - {:lat 34.5488649, - :lon -82.6195903, - :house-number "1101-1121", - :street "Harriett Circle", - :city "Anderson", - :state-abbrev "SC", - :zip "29621"} - {:lat 36.719095, - :lon -91.6816223, - :house-number "8880", - :street "County Road 9850", - :city "West Plains", - :state-abbrev "MO", - :zip "65775"} - {:lat 41.9937909, - :lon -94.49720429999999, - :house-number "701-799", - :street "250th Street", - :city "Scranton", - :state-abbrev "IA", - :zip "51462"} - {:lat 46.12154899999999, - :lon -111.597967, - :house-number "487", - :street "Lone Mountain Road", - :city "Toston", - :state-abbrev "MT", - :zip "59643"} - {:lat 37.720286, - :lon -121.794001, - :house-number "1133", - :street "Hartman Road", - :city "Livermore", - :state-abbrev "CA", - :zip "94551"} - {:lat 47.0110008, - :lon -100.3562825, - :house-number "26859-27499", - :street "188th Avenue Northeast", - :city "Wing", - :state-abbrev "ND", - :zip "58494"} - {:lat 45.6197676, - :lon -93.2683454, - :house-number "35996", - :street "University Avenue Northeast", - :city "Cambridge", - :state-abbrev "MN", - :zip "55008"} - {:lat 46.1212212, - :lon -93.5872875, - :house-number "4001-20827", - :street "85th Avenue", - :city "Onamia", - :state-abbrev "MN", - :zip "56359"} - {:lat 39.23785, - :lon -80.020365, - :house-number "651", - :street "Cole Road", - :city "Philippi", - :state-abbrev "WV", - :zip "26416"} - {:lat 46.5980332, - :lon -98.2902184, - :house-number "10168", - :street "56th Street Southeast", - :city "Marion", - :state-abbrev "ND", - :zip "58466"} - {:lat 37.0512191, - :lon -94.8314747, - :house-number "8", - :street "U.S. 69", - :city "Baxter Springs", - :state-abbrev "KS", - :zip "66713"} - {:lat 32.335616, - :lon -86.308317, - :house-number "3860", - :street "South Court Street", - :city "Montgomery", - :state-abbrev "AL", - :zip "36105"} - {:lat 39.733923, - :lon -84.050685, - :house-number "3119", - :street "Windmill Drive", - :city "Dayton", - :state-abbrev "OH", - :zip "45432"} - {:lat 30.9973976, - :lon -81.90707379999999, - :house-number "4328", - :street "3r Fish Camp Road", - :city "White Oak", - :state-abbrev "GA", - :zip "31568"} - {:lat 38.963328, - :lon -78.935407, - :house-number "9918", - :street "Howards Lick Road", - :city "Mathias", - :state-abbrev "WV", - :zip "26812"} - {:lat 26.1594226, - :lon -98.03753689999999, - :house-number "2607", - :street "Yanez Street", - :city "Donna", - :state-abbrev "TX", - :zip "78537"} - {:lat 33.9896453, - :lon -96.7604564, - :house-number "11410", - :street "Enos Road", - :city "Kingston", - :state-abbrev "OK", - :zip "73439"} - {:lat 44.1881709, - :lon -74.432176, - :house-number "6", - :street "Lake Simond Road", - :city "Tupper Lake", - :state-abbrev "NY", - :zip "12986"} - {:lat 40.8811136, - :lon -102.4120101, - :house-number "12000-12998", - :street "County Road 20", - :city "Ovid", - :state-abbrev "CO", - :zip "80744"} - {:lat 47.0568583, - :lon -109.1692646, - :house-number "95162", - :street "U.S. 87", - :city "Lewistown", - :state-abbrev "MT", - :zip "59457"} - {:lat 32.8088943, - :lon -85.4291454, - :house-number "7230-8282", - :street "Chambers County 173", - :city "La Fayette", - :state-abbrev "AL", - :zip "36862"} - {:lat 48.2667954, - :lon -112.1198458, - :house-number "6854", - :street "Messenger Road", - :city "Valier", - :state-abbrev "MT", - :zip "59486"} - {:lat 40.4162433, - :lon -95.01358599999999, - :house-number "21115", - :street "State Highway Ab", - :city "Burlington Junction", - :state-abbrev "MO", - :zip "64428"} - {:lat 44.12387349999999, - :lon -116.3023244, - :house-number "19200", - :street "Sweet Ola Highway", - :city "Ola", - :state-abbrev "ID", - :zip "83657"} - {:lat 33.664848, - :lon -87.000664, - :house-number "5150", - :street "Highway 78 East", - :city "Graysville", - :state-abbrev "AL", - :zip "35073"} - {:lat 41.898599, - :lon -79.740098, - :house-number "1922", - :street "South Main Street", - :city "Corry", - :state-abbrev "PA", - :zip "16407"} - {:lat 34.6712327, - :lon -83.49263409999999, - :house-number "1501", - :street "Frank Lovell Road", - :city "Clarkesville", - :state-abbrev "GA", - :zip "30523"} - {:lat 39.699357, - :lon -105.412938, - :house-number "263", - :street "Barrows Ranch Road", - :city "Evergreen", - :state-abbrev "CO", - :zip "80439"} - {:lat 36.4451252, - :lon -85.31148429999999, - :house-number "164", - :street "Frogtown Estate", - :city "Livingston", - :state-abbrev "TN", - :zip "38570"} - {:lat 42.692484, - :lon -82.78239789999999, - :house-number "32792-32798", - :street "Greenwood Drive", - :city "New Baltimore", - :state-abbrev "MI", - :zip "48047"} - {:lat 38.1628115, - :lon -99.1111131, - :house-number "1252", - :street "U.S. 56", - :city "Larned", - :state-abbrev "KS", - :zip "67550"} - {:lat 44.7408289, - :lon -121.1276098, - :house-number "7269", - :street "North Adams Drive", - :city "Madras", - :state-abbrev "OR", - :zip "97741"} - {:lat 27.013422, - :lon -80.423394, - :house-number "12002", - :street "Southwest Kanner Highway", - :city "Indiantown", - :state-abbrev "FL", - :zip "34956"} - {:lat 40.58038200000001, - :lon -95.8412306, - :house-number "6590", - :street "O Road", - :city "Nebraska City", - :state-abbrev "NE", - :zip "68410"} - {:lat 36.50025979999999, - :lon -90.32461889999999, - :house-number "520-550", - :street "Clay County Road 320", - :city "Qulin", - :state-abbrev "MO", - :zip "63961"} - {:lat 39.0543141, - :lon -88.27940439999999, - :house-number "4001-5147", - :street "East 1400th Avenue", - :city "Wheeler", - :state-abbrev "IL", - :zip "62479"} - {:lat 38.82139799999999, - :lon -75.54764899999999, - :house-number "11656", - :street "Utica Road", - :city "Greenwood", - :state-abbrev "DE", - :zip "19950"} - {:lat 38.814901, - :lon -121.135696, - :house-number "3874", - :street "El Monte Drive", - :city "Loomis", - :state-abbrev "CA", - :zip "95650"} - {:lat 35.838619, - :lon -77.163956, - :house-number "203", - :street "East Barnhill Street", - :city "Williamston", - :state-abbrev "NC", - :zip "27892"} - {:lat 31.3768988, - :lon -96.9819914, - :house-number "653", - :street "County Road 105", - :city "Riesel", - :state-abbrev "TX", - :zip "76682"} - {:lat 41.174038, - :lon -87.22173599999999, - :house-number "9190", - :street "West 1100 North", - :city "De Motte", - :state-abbrev "IN", - :zip "46310"} - {:lat 32.446336, - :lon -95.38271999999999, - :house-number "12197", - :street "Cross Fence Trail", - :city "Tyler", - :state-abbrev "TX", - :zip "75706"} - {:lat 34.0320311, - :lon -83.1427077, - :house-number "64", - :street "Goose Pond Road", - :city "Comer", - :state-abbrev "GA", - :zip "30629"} - {:lat 35.8515632, - :lon -78.702987, - :house-number "5004-5008", - :street "Picardy Place", - :city "Raleigh", - :state-abbrev "NC", - :zip "27612"} - {:lat 38.3571942, - :lon -78.4127535, - :house-number "1215", - :street "Kinderhook Road", - :city "Madison", - :state-abbrev "VA", - :zip "22727"} - {:lat 61.2668195, - :lon -145.2833742, - :house-number "95", - :street "Alaska 4", - :city "Copper Center", - :state-abbrev "AK", - :zip "99573"} - {:lat 40.2482635, - :lon -87.25751629999999, - :house-number "3190-3398", - :street "County Road 30 East", - :city "Attica", - :state-abbrev "IN", - :zip "47918"} - {:lat 36.31394, - :lon -92.37312899999999, - :house-number "308", - :street "Pebblecreek Drive", - :city "Mountain Home", - :state-abbrev "AR", - :zip "72653"} - {:lat 34.0787283, - :lon -92.6510928, - :house-number "4466", - :street "Arkansas 9", - :city "Carthage", - :state-abbrev "AR", - :zip "71725"} - {:lat 34.9490126, - :lon -83.80166799999999, - :house-number "497", - :street "Old Ferguson Town Road", - :city "Young Harris", - :state-abbrev "GA", - :zip "30582"} - {:lat 41.3283563, - :lon -84.8139396, - :house-number "7934", - :street "County Road 56", - :city "Saint Joe", - :state-abbrev "IN", - :zip "46785"} - {:lat 38.726831, - :lon -78.6577884, - :house-number "1026-1324", - :street "Industrial Park", - :city "Mount Jackson", - :state-abbrev "VA", - :zip "22842"} - {:lat 36.8177783, - :lon -93.8447328, - :house-number "7706", - :street "Farm Road 1120", - :city "Verona", - :state-abbrev "MO", - :zip "65769"} - {:lat 34.886794, - :lon -76.79080499999999, - :house-number "1155", - :street "Temples Point Road", - :city "Havelock", - :state-abbrev "NC", - :zip "28532"} - {:lat 40.6505745, - :lon -81.4352846, - :house-number "11439-11447", - :street "Glenpark Drive Northeast", - :city "Bolivar", - :state-abbrev "OH", - :zip "44612"} - {:lat 44.0510283, - :lon -86.0815351, - :house-number "7800-8094", - :street "Burley", - :city "Township of Branch", - :state-abbrev "MI", - :zip "49402"} - {:lat 41.717989, - :lon -72.30425199999999, - :house-number "41", - :street "Laurel Lane", - :city "Columbia", - :state-abbrev "CT", - :zip "06237"} - {:lat 48.4679556, - :lon -116.4196161, - :house-number "3312", - :street "National Forest Development Road 215", - :city "Sandpoint", - :state-abbrev "ID", - :zip "83864"} - {:lat 32.5672093, - :lon -95.7323965, - :house-number "1610", - :street "Vz County Road 1313", - :city "Canton", - :state-abbrev "TX", - :zip "75103"} - {:lat 43.223702, - :lon -77.527873, - :house-number "194", - :street "Colonial Drive", - :city "Webster", - :state-abbrev "NY", - :zip "14580"} - {:lat 32.8239852, - :lon -82.9221041, - :house-number "1206", - :street "Georgia 272", - :city "Tennille", - :state-abbrev "GA", - :zip "31089"} - {:lat 33.295844, - :lon -88.440877, - :house-number "14463", - :street "Old Macon Road", - :city "Columbus", - :state-abbrev "MS", - :zip "39701"} - {:lat 34.9712724, - :lon -78.9891936, - :house-number "3701", - :street "Applegate Road", - :city "Hope Mills", - :state-abbrev "NC", - :zip "28348"} - {:lat 35.463022, - :lon -77.113389, - :house-number "304", - :street "Warren Avenue", - :city "Chocowinity", - :state-abbrev "NC", - :zip "27817"} - {:lat 36.507964, - :lon -91.3047636, - :house-number "22828", - :street "Highway V", - :city "Myrtle", - :state-abbrev "MO", - :zip "65778"} - {:lat 45.9087868, - :lon -113.26501, - :house-number "2499", - :street "Fish Trap Road", - :city "Wise River", - :state-abbrev "MT", - :zip "59762"} - {:lat 37.82054300000001, - :lon -95.6682008, - :house-number "1821", - :street "70th Road", - :city "Yates Center", - :state-abbrev "KS", - :zip "66783"} - {:lat 38.7003089, - :lon -91.29538629999999, - :house-number "5290", - :street "Missouri 94", - :city "Marthasville", - :state-abbrev "MO", - :zip "63357"} - {:lat 41.1057731, - :lon -81.564117, - :house-number "1567-1573", - :street "West Exchange Street", - :city "Akron", - :state-abbrev "OH", - :zip "44313"} - {:lat 38.6242147, - :lon -95.4527918, - :house-number "3272-3348", - :street "Colorado Road", - :city "Pomona", - :state-abbrev "KS", - :zip "66076"} - {:lat 41.3111128, - :lon -94.4145582, - :house-number "2315-2347", - :street "Pinewood Avenue", - :city "Greenfield", - :state-abbrev "IA", - :zip "50849"} - {:lat 42.2345635, - :lon -76.83706459999999, - :house-number "4898", - :street "Clair Road", - :city "Millport", - :state-abbrev "NY", - :zip "14864"} - {:lat 45.7455717, - :lon -87.1809976, - :house-number "3701-3841", - :street "14.5 Road", - :city "Escanaba", - :state-abbrev "MI", - :zip "49829"} - {:lat 47.500227, - :lon -118.1411565, - :house-number "16423", - :street "Star Barn Road North", - :city "Davenport", - :state-abbrev "WA", - :zip "99122"} - {:lat 40.5177699, - :lon -90.4266696, - :house-number "21501", - :street "North Point Pleasant Road", - :city "Marietta", - :state-abbrev "IL", - :zip "61459"} - {:lat 36.034604, - :lon -86.844132, - :house-number "311", - :street "Deerwood Lane", - :city "Brentwood", - :state-abbrev "TN", - :zip "37027"} - {:lat 41.9659007, - :lon -92.8931427, - :house-number "509", - :street "Roberts Terrace", - :city "Marshalltown", - :state-abbrev "IA", - :zip "50158"} - {:lat 42.9233932, - :lon -95.4129181, - :house-number "6957-6999", - :street "Highway 10 Boulevard", - :city "Sutherland", - :state-abbrev "IA", - :zip "51058"} - {:lat 34.7953365, - :lon -92.7700229, - :house-number "24523-25321", - :street "Arkansas 9", - :city "Paron", - :state-abbrev "AR", - :zip "72122"} - {:lat 35.653733, - :lon -85.979012, - :house-number "11481", - :street "Shelbyville Road", - :city "Morrison", - :state-abbrev "TN", - :zip "37357"} - {:lat 45.92924499999999, - :lon -108.3549564, - :house-number "4851-5197", - :street "Yeoman Road", - :city "Shepherd", - :state-abbrev "MT", - :zip "59079"} - {:lat 36.1896105, - :lon -102.327912, - :house-number "13009", - :street "Rock Hill Road", - :city "Dalhart", - :state-abbrev "TX", - :zip "79022"} - {:lat 38.41670149999999, - :lon -122.753963, - :house-number "1426-1498", - :street "Corporate Center Parkway", - :city "Santa Rosa", - :state-abbrev "CA", - :zip "95407"} - {:lat 44.222597, - :lon -89.0943339, - :house-number "N6698", - :street "East Long Lake Road", - :city "Wild Rose", - :state-abbrev "WI", - :zip "54984"} - {:lat 42.0922467, - :lon -85.26004549999999, - :house-number "1821", - :street "V Drive South", - :city "Athens", - :state-abbrev "MI", - :zip "49011"} - {:lat 33.5235064, - :lon -94.7968594, - :house-number "765", - :street "County Road 4426", - :city "Avery", - :state-abbrev "TX", - :zip "75554"} - {:lat 42.026117, - :lon -74.804464, - :house-number "237", - :street "Mary Smith Hill Road", - :city "Livingston Manor", - :state-abbrev "NY", - :zip "12758"} - {:lat 47.7415303, - :lon -112.3168472, - :house-number "300-398", - :street "Pishkun Road", - :city "Choteau", - :state-abbrev "MT", - :zip "59422"} - {:lat 48.2485359, - :lon -104.6062252, - :house-number "5175", - :street "Road 1026", - :city "Froid", - :state-abbrev "MT", - :zip "59226"} - {:lat 45.4596787, - :lon -110.1984557, - :house-number "3319", - :street "Main Boulder Road", - :city "Mc Leod", - :state-abbrev "MT", - :zip "59052"} - {:lat 37.4279015, - :lon -77.75752279999999, - :house-number "18100", - :street "Duval Road", - :city "Moseley", - :state-abbrev "VA", - :zip "23120"} - {:lat 46.6669749, - :lon -92.0631631, - :house-number "98", - :street "Ostby Drive", - :city "Superior", - :state-abbrev "WI", - :zip "54880"} - {:lat 37.6065566, - :lon -98.73944519999999, - :house-number "20469-20731", - :street "South 1st Avenue", - :city "Pratt", - :state-abbrev "KS", - :zip "67124"} - {:lat 41.9584444, - :lon -95.5465569, - :house-number "2743", - :street "Dane Ridge Road", - :city "Dow City", - :state-abbrev "IA", - :zip "51528"} - {:lat 36.3495959, - :lon -92.29217919999999, - :house-number "4398", - :street "Buzzard Roost Road", - :city "Mountain Home", - :state-abbrev "AR", - :zip "72653"} - {:lat 40.8955618, - :lon -102.408923, - :house-number "12508-12998", - :street "County Road 22", - :city "Ovid", - :state-abbrev "CO", - :zip "80744"} - {:lat 43.9300967, - :lon -88.9492695, - :house-number "N8279", - :street "Wisconsin 49", - :city "Berlin", - :state-abbrev "WI", - :zip "54923"} - {:lat 32.4174517, - :lon -87.53871079999999, - :house-number "22605", - :street "County Road 53", - :city "Uniontown", - :state-abbrev "AL", - :zip "36786"} - {:lat 34.099726, - :lon -98.68657929999999, - :house-number "573", - :street "Williamson Road", - :city "Burkburnett", - :state-abbrev "TX", - :zip "76354"} - {:lat 46.4754497, - :lon -110.0784601, - :house-number "21-585", - :street "Haymaker Road", - :city "Harlowton", - :state-abbrev "MT", - :zip "59036"} - {:lat 39.038336, - :lon -104.174353, - :house-number "34255", - :street "Harrisville Road", - :city "Calhan", - :state-abbrev "CO", - :zip "80808"} - {:lat 37.861802, - :lon -120.625913, - :house-number "13149", - :street "Tulloch Dam Road", - :city "Jamestown", - :state-abbrev "CA", - :zip "95327"} - {:lat 44.5040542, - :lon -85.5457574, - :house-number "1400", - :street "East 2 1/2 Road", - :city "Kingsley", - :state-abbrev "MI", - :zip "49649"} - {:lat 35.7394238, - :lon -93.6382065, - :house-number "718-798", - :street "County Road 5141", - :city "Pettigrew", - :state-abbrev "AR", - :zip "72752"} - {:lat 45.5285437, - :lon -88.3064481, - :house-number "N15535", - :street "Parkway Road", - :city "Athelstane", - :state-abbrev "WI", - :zip "54104"} - {:lat 44.4656923, - :lon -106.6800018, - :house-number "47", - :street "Belus Road", - :city "Buffalo", - :state-abbrev "WY", - :zip "82834"} - {:lat 34.2037273, - :lon -116.5911904, - :house-number "50951", - :street "Burns Canyon Road", - :city "Pioneertown", - :state-abbrev "CA", - :zip "92268"} - {:lat 31.7196718, - :lon -84.1848424, - :house-number "259", - :street "Highway 32 East", - :city "Leesburg", - :state-abbrev "GA", - :zip "31763"} - {:lat 36.360493, - :lon -77.22337, - :house-number "439", - :street "Baughan Road", - :city "Woodland", - :state-abbrev "NC", - :zip "27897"} - {:lat 42.1887029, - :lon -74.13561899999999, - :house-number "11", - :street "Quarry Road", - :city "Tannersville", - :state-abbrev "NY", - :zip "12485"} - {:lat 30.008587, - :lon -98.826402, - :house-number "107", - :street "Old Comfort Road", - :city "Fredericksburg", - :state-abbrev "TX", - :zip "78624"} - {:lat 34.3910982, - :lon -85.3040286, - :house-number "537", - :street "Silver Leaf Drive", - :city "Summerville", - :state-abbrev "GA", - :zip "30747"} - {:lat 34.59938940000001, - :lon -82.15108649999999, - :house-number "11238", - :street "South Carolina 101", - :city "Gray Court", - :state-abbrev "SC", - :zip "29645"} - {:lat 33.5782505, - :lon -97.78660839999999, - :house-number "183", - :street "Hopson Road", - :city "Bowie", - :state-abbrev "TX", - :zip "76230"} - {:lat 41.285628, - :lon -85.998631, - :house-number "3734", - :street "North 800 West", - :city "Warsaw", - :state-abbrev "IN", - :zip "46582"} - {:lat 46.368916, - :lon -91.984899, - :house-number "6085", - :street "South County Road A", - :city "Solon Springs", - :state-abbrev "WI", - :zip "54873"} - {:lat 65.080709, - :lon -148.034074, - :house-number "4916", - :street "Rossburg Road", - :city "Fairbanks", - :state-abbrev "AK", - :zip "99712"} - {:lat 44.7638897, - :lon -99.2930452, - :house-number "18100-18114", - :street "345th Avenue", - :city "Orient", - :state-abbrev "SD", - :zip "57467"} - {:lat 36.9155806, - :lon -92.9576551, - :house-number "6642-7862", - :street "Chadwick Road", - :city "Chadwick", - :state-abbrev "MO", - :zip "65629"} - {:lat 40.3416011, - :lon -102.3142967, - :house-number "52944-53578", - :street "County Road CC", - :city "Wray", - :state-abbrev "CO", - :zip "80758"} - {:lat 43.0951171, - :lon -88.9768565, - :house-number "8970", - :street "Michel Lane", - :city "Waterloo", - :state-abbrev "WI", - :zip "53594"} - {:lat 46.2973537, - :lon -115.961682, - :house-number "906", - :street "Hidden Valley Lane", - :city "Weippe", - :state-abbrev "ID", - :zip "83553"} - {:lat 40.17479489999999, - :lon -87.6572382, - :house-number "1304", - :street "Park Haven Court", - :city "Danville", - :state-abbrev "IL", - :zip "61832"} - {:lat 41.2536332, - :lon -88.5247739, - :house-number "5377-5733", - :street "County Road 2000 South", - :city "Verona", - :state-abbrev "IL", - :zip "60479"} - {:lat 32.7908147, - :lon -85.1437507, - :house-number "45", - :street "Middle Street", - :city "Valley", - :state-abbrev "AL", - :zip "36854"} - {:lat 39.41639809999999, - :lon -87.3481896, - :house-number "4401", - :street "Riley Road", - :city "Terre Haute", - :state-abbrev "IN", - :zip "47802"} - {:lat 38.72755, - :lon -75.94157899999999, - :house-number "4346", - :street "Jones Lane", - :city "Preston", - :state-abbrev "MD", - :zip "21655"} - {:lat 42.0223194, - :lon -118.6227513, - :house-number "13546", - :street "Fields-Denio Road", - :city "Fields", - :state-abbrev "OR", - :zip "97710"} - {:lat 46.7163023, - :lon -94.564637, - :house-number "5305", - :street "24th Street Southwest", - :city "Pine River", - :state-abbrev "MN", - :zip "56474"} - {:lat 40.2912243, - :lon -98.57218610000001, - :house-number "919", - :street "Nebraska 4", - :city "Bladen", - :state-abbrev "NE", - :zip "68928"} - {:lat 45.0784019, - :lon -90.1627199, - :house-number "2138", - :street "County Road F", - :city "Athens", - :state-abbrev "WI", - :zip "54411"} - {:lat 36.015878, - :lon -89.431719, - :house-number "2142", - :street "Samaria Bend Road", - :city "Dyersburg", - :state-abbrev "TN", - :zip "38024"} - {:lat 47.3138924, - :lon -100.7064244, - :house-number "45737-46099", - :street "52nd Street Northeast", - :city "Wilton", - :state-abbrev "ND", - :zip "58579"} - {:lat 43.1130022, - :lon -90.60294999999999, - :house-number "16701-16899", - :street "County Road T", - :city "Boscobel", - :state-abbrev "WI", - :zip "53805"} - {:lat 47.79393899999999, - :lon -111.6032917, - :house-number "1260", - :street "18th Lane Northeast", - :city "Power", - :state-abbrev "MT", - :zip "59468"} - {:lat 35.5422894, - :lon -83.069052, - :house-number "2-158", - :street "Simpson Lane", - :city "Maggie Valley", - :state-abbrev "NC", - :zip "28751"} - {:lat 39.7718983, - :lon -75.4900014, - :house-number "1506-1508", - :street "Woodsdale Road", - :city "Wilmington", - :state-abbrev "DE", - :zip "19809"} - {:lat 47.150309, - :lon -100.2381976, - :house-number "31351", - :street "340th Street Northeast", - :city "Wing", - :state-abbrev "ND", - :zip "58494"} - {:lat 32.1289155, - :lon -81.93196429999999, - :house-number "122", - :street "Deer Run Circle", - :city "Claxton", - :state-abbrev "GA", - :zip "30417"} - {:lat 41.0531684, - :lon -86.6946993, - :house-number "4785", - :street "Indiana 14", - :city "Winamac", - :state-abbrev "IN", - :zip "46996"} - {:lat 47.10962199999999, - :lon -96.933262, - :house-number "16845", - :street "21st Street Southeast", - :city "Argusville", - :state-abbrev "ND", - :zip "58005"} - {:lat 43.056554, - :lon -77.611637, - :house-number "3224", - :street "East Henrietta Road", - :city "Henrietta", - :state-abbrev "NY", - :zip "14467"} - {:lat 46.560284, - :lon -104.093908, - :house-number "115", - :street "Tatley Road", - :city "Baker", - :state-abbrev "MT", - :zip "59313"} - {:lat 41.47658800000001, - :lon -85.377605, - :house-number "2565", - :street "East 850 North", - :city "Rome City", - :state-abbrev "IN", - :zip "46784"} - {:lat 31.1026404, - :lon -92.180238, - :house-number "1247", - :street "Highway 114", - :city "Hessmer", - :state-abbrev "LA", - :zip "71341"} - {:lat 43.2555386, - :lon -71.0671672, - :house-number "605", - :street "Berry River Road", - :city "Barrington", - :state-abbrev "NH", - :zip "03825"} - {:lat 29.79807, - :lon -99.192702, - :house-number "2247", - :street "Farm to Market 2828", - :city "Bandera", - :state-abbrev "TX", - :zip "78003"} - {:lat 43.7009933, - :lon -95.61413950000001, - :house-number "20161", - :street "Paul Avenue", - :city "Worthington", - :state-abbrev "MN", - :zip "56187"} - {:lat 35.3964691, - :lon -98.8329761, - :house-number "23317", - :street "East 1120 Road", - :city "Corn", - :state-abbrev "OK", - :zip "73024"} - {:lat 43.2321938, - :lon -96.1972263, - :house-number "2800-2898", - :street "Grant Avenue", - :city "Hull", - :state-abbrev "IA", - :zip "51239"} - {:lat 41.9509765, - :lon -90.4607997, - :house-number "1529-1603", - :street "330th Avenue", - :city "Charlotte", - :state-abbrev "IA", - :zip "52731"} - {:lat 43.1131538, - :lon -115.7902421, - :house-number "5444-6392", - :street "Airbase Road", - :city "Mountain Home", - :state-abbrev "ID", - :zip "83647"} - {:lat 43.6019566, - :lon -95.4120336, - :house-number "33530-33532", - :street "770th Street", - :city "Round Lake", - :state-abbrev "MN", - :zip "56167"} - {:lat 40.3189104, - :lon -84.36594269999999, - :house-number "3696", - :street "Basinburg Road", - :city "Fort Loramie", - :state-abbrev "OH", - :zip "45845"} - {:lat 33.2467157, - :lon -89.22798739999999, - :house-number "11022", - :street "Penderville Road", - :city "Weir", - :state-abbrev "MS", - :zip "39772"} - {:lat 43.745157, - :lon -70.460449, - :house-number "7", - :street "Homestead Lane", - :city "Gorham", - :state-abbrev "ME", - :zip "04038"} - {:lat 41.2099688, - :lon -90.9370234, - :house-number "901-999", - :street "Bluff Road", - :city "Joy", - :state-abbrev "IL", - :zip "61260"} - {:lat 46.31263879999999, - :lon -95.60988979999999, - :house-number "24100-24998", - :street "423rd Avenue", - :city "Battle Lake", - :state-abbrev "MN", - :zip "56515"} - {:lat 44.70675540000001, - :lon -95.03671349999999, - :house-number "77367", - :street "320th Street", - :city "Olivia", - :state-abbrev "MN", - :zip "56277"} - {:lat 42.5532759, - :lon -71.691813, - :house-number "711", - :street "Reservoir Road", - :city "Lunenburg", - :state-abbrev "MA", - :zip "01462"} - {:lat 32.532624, - :lon -81.277301, - :house-number "372", - :street "Morgan Cemetery Road", - :city "Clyo", - :state-abbrev "GA", - :zip "31303"} - {:lat 40.2045068, - :lon -104.9938637, - :house-number "3171-3339", - :street "Highway 66", - :city "Longmont", - :state-abbrev "CO", - :zip "80504"} - {:lat 42.7140096, - :lon -96.40934569999999, - :house-number "23232-23998", - :street "Fir Avenue", - :city "Merrill", - :state-abbrev "IA", - :zip "51038"} - {:lat 61.738969, - :lon -148.9115811, - :house-number "14154", - :street "Eska Mine Road", - :city "Sutton-Alpine", - :state-abbrev "AK", - :zip "99674"} - {:lat 39.90810070000001, - :lon -78.532979, - :house-number "526", - :street "Rose Lane", - :city "Bedford", - :state-abbrev "PA", - :zip "15522"} - {:lat 41.9988526, - :lon -85.3709988, - :house-number "30011", - :street "Covey Road", - :city "Leonidas", - :state-abbrev "MI", - :zip "49066"} - {:lat 40.575289, - :lon -90.7320816, - :house-number "20001-20347", - :street "County Road 900 East", - :city "Sciota", - :state-abbrev "IL", - :zip "61475"} - {:lat 38.2434457, - :lon -86.80134699999999, - :house-number "9914", - :street "South 475 East", - :city "Ferdinand", - :state-abbrev "IN", - :zip "47532"} - {:lat 61.99231690000001, - :lon -146.7686644, - :house-number "2446", - :street "Glenn Highway", - :city "Glennallen", - :state-abbrev "AK", - :zip "99588"} - {:lat 43.6943312, - :lon -107.8125286, - :house-number "2671", - :street "Lake Creek Road", - :city "Thermopolis", - :state-abbrev "WY", - :zip "82443"} - {:lat 46.3835299, - :lon -104.5119599, - :house-number "220", - :street "Plevna Road", - :city "Plevna", - :state-abbrev "MT", - :zip "59344"} - {:lat 35.0061837, - :lon -97.6163622, - :house-number "13132", - :street "205th Street", - :city "Dibble", - :state-abbrev "OK", - :zip "73031"} - {:lat 42.06306, - :lon -73.1616919, - :house-number "14-22", - :street "Norfolk Road", - :city "Sandisfield", - :state-abbrev "MA", - :zip "01255"} - {:lat 42.772582, - :lon -106.153102, - :house-number "6600", - :street "Hat 6 Road", - :city "Casper", - :state-abbrev "WY", - :zip "82609"} - {:lat 43.9507803, - :lon -72.1719845, - :house-number "1738-1884", - :street "Millpond Road", - :city "Fairlee", - :state-abbrev "VT", - :zip "05045"} - {:lat 45.069139, - :lon -89.90620899999999, - :house-number "10631", - :street "7th Lane", - :city "Athens", - :state-abbrev "WI", - :zip "54411"} - {:lat 44.3252818, - :lon -97.7446155, - :house-number "42300-42398", - :street "211th Street", - :city "Iroquois", - :state-abbrev "SD", - :zip "57353"} - {:lat 42.01385, - :lon -95.7325582, - :house-number "23694", - :street "Sumac Avenue", - :city "Ute", - :state-abbrev "IA", - :zip "51060"} - {:lat 34.9340828, - :lon -88.2797599, - :house-number "28-54", - :street "County Road 324", - :city "Iuka", - :state-abbrev "MS", - :zip "38852"} - {:lat 45.1066001, - :lon -96.5884731, - :house-number "48000-48098", - :street "157th Street", - :city "Revillo", - :state-abbrev "SD", - :zip "57259"} - {:lat 31.052132, - :lon -88.74860989999999, - :house-number "3978", - :street "Merritt Road", - :city "Leakesville", - :state-abbrev "MS", - :zip "39451"} - {:lat 34.3851754, - :lon -88.901736, - :house-number "1034", - :street "Corolla Lane", - :city "Blue Springs", - :state-abbrev "MS", - :zip "38828"} - {:lat 33.92264, - :lon -88.444554, - :house-number "50016", - :street "Moss Road", - :city "Amory", - :state-abbrev "MS", - :zip "38821"} - {:lat 39.5817883, - :lon -102.1110891, - :house-number "36808", - :street "County Road 1", - :city "Idalia", - :state-abbrev "CO", - :zip "80735"} - {:lat 29.881082, - :lon -98.18124999999999, - :house-number "1550", - :street "Casa Sierra", - :city "Canyon Lake", - :state-abbrev "TX", - :zip "78133"} - {:lat 42.683499, - :lon -82.744973, - :house-number "51789", - :street "Base Street", - :city "New Baltimore", - :state-abbrev "MI", - :zip "48047"} - {:lat 46.7782043, - :lon -89.0932449, - :house-number "625", - :street "Depot Street", - :city "Greenland", - :state-abbrev "MI", - :zip "49929"} - {:lat 47.44263600000001, - :lon -99.017718, - :house-number "7151-7175", - :street "2nd Street Northeast", - :city "Carrington", - :state-abbrev "ND", - :zip "58421"} - {:lat 48.0305978, - :lon -110.5805282, - :house-number "2500", - :street "Day Road", - :city "Loma", - :state-abbrev "MT", - :zip "59460"} - {:lat 46.840345, - :lon -67.96735199999999, - :house-number "213", - :street "Kelley Road", - :city "Caribou", - :state-abbrev "ME", - :zip "04736"} - {:lat 38.830162, - :lon -121.025937, - :house-number "4730", - :street "Pilot Creek Lane", - :city "Pilot Hill", - :state-abbrev "CA", - :zip "95664"} - {:lat 43.4787462, - :lon -93.8897504, - :house-number "49347", - :street "40th Avenue", - :city "Buffalo Center", - :state-abbrev "IA", - :zip "50424"} - {:lat 34.3977584, - :lon -85.3889731, - :house-number "1252", - :street "Lyerly Dam Road", - :city "Lyerly", - :state-abbrev "GA", - :zip "30730"} - {:lat 39.093997, - :lon -119.151808, - :house-number "155", - :street "Penrose Lane", - :city "Yerington", - :state-abbrev "NV", - :zip "89447"} - {:lat 36.8575068, - :lon -84.75244339999999, - :house-number "695", - :street "Raleigh Creek Road", - :city "Monticello", - :state-abbrev "KY", - :zip "42633"} - {:lat 37.90008600000001, - :lon -82.99735439999999, - :house-number "7150", - :street "Lower Sand Lick Road", - :city "West Liberty", - :state-abbrev "KY", - :zip "41472"} - {:lat 37.4791753, - :lon -104.557762, - :house-number "30268-30270", - :street "County Road 61", - :city "Aguilar", - :state-abbrev "CO", - :zip "81020"} - {:lat 34.6932203, - :lon -80.3077761, - :house-number "449", - :street "Black Creek Church Road", - :city "Mount Croghan", - :state-abbrev "SC", - :zip "29727"} - {:lat 36.465115, - :lon -94.763875, - :house-number "13527", - :street "East 380 Road", - :city "Jay", - :state-abbrev "OK", - :zip "74346"} - {:lat 31.1153828, - :lon -97.41697579999999, - :house-number "173-285", - :street "Old Waco Road", - :city "Temple", - :state-abbrev "TX", - :zip "76502"} - {:lat 39.3489089, - :lon -105.1765411, - :house-number "413-993", - :street "North Platte River Road", - :city "Sedalia", - :state-abbrev "CO", - :zip "80135"} - {:lat 30.9789516, - :lon -89.0645222, - :house-number "825", - :street "New York Road", - :city "Brooklyn", - :state-abbrev "MS", - :zip "39425"} - {:lat 39.95067299999999, - :lon -79.395112, - :house-number "615", - :street "Clay Run Road", - :city "Mill Run", - :state-abbrev "PA", - :zip "15464"} - {:lat 41.4758628, - :lon -86.2338681, - :house-number "15-381", - :street "Juniper Road", - :city "Bremen", - :state-abbrev "IN", - :zip "46506"} - {:lat 39.1523735, - :lon -87.7098115, - :house-number "12766", - :street "East 2000th Avenue", - :city "West York", - :state-abbrev "IL", - :zip "62478"} - {:lat 38.12026040000001, - :lon -95.76673579999999, - :house-number "653-681", - :street "Kafir Lane", - :city "Burlington", - :state-abbrev "KS", - :zip "66839"} - {:lat 62.10305649999999, - :lon -145.9668141, - :house-number "173", - :street "Glenn Highway", - :city "Glennallen", - :state-abbrev "AK", - :zip "99588"} - {:lat 46.900972, - :lon -122.865224, - :house-number "2648", - :street "Angus Road Southeast", - :city "Tenino", - :state-abbrev "WA", - :zip "98589"} - {:lat 41.3225163, - :lon -81.3750723, - :house-number "850", - :street "South Sussex Court", - :city "Aurora", - :state-abbrev "OH", - :zip "44202"} - {:lat 45.9751596, - :lon -120.399776, - :house-number "78", - :street "Jensen Quarry Road", - :city "Roosevelt", - :state-abbrev "WA", - :zip "99356"} - {:lat 42.193509, - :lon -88.710493, - :house-number "2785", - :street "Garden Prairie Road", - :city "Garden Prairie", - :state-abbrev "IL", - :zip "61038"} - {:lat 44.40173679999999, - :lon -70.9609732, - :house-number "2021", - :street "North Road", - :city "Gilead", - :state-abbrev "ME", - :zip "04217"} - {:lat 39.185932, - :lon -85.1369519, - :house-number "7505", - :street "North Spades Road", - :city "Sunman", - :state-abbrev "IN", - :zip "47041"} - {:lat 60.80175790000001, - :lon -148.9586428, - :house-number "1975", - :street "Wyatt's Windy Road", - :city "Anchorage", - :state-abbrev "AK", - :zip "99587"} - {:lat 57.69668100000001, - :lon -152.547253, - :house-number "12715", - :street "Chiniak Highway", - :city "Kodiak", - :state-abbrev "AK", - :zip "99615"} - {:lat 27.859979, - :lon -81.935053, - :house-number "3001", - :street "Bonnie Mine Road", - :city "Bartow", - :state-abbrev "FL", - :zip "33830"} - {:lat 43.962291, - :lon -101.3931105, - :house-number "23700", - :street "Indian Creek Road", - :city "Kadoka", - :state-abbrev "SD", - :zip "57543"} - {:lat 44.30904899999999, - :lon -120.7914501, - :house-number "4893", - :street "North Ochoco Highway", - :city "Prineville", - :state-abbrev "OR", - :zip "97754"} - {:lat 43.7022358, - :lon -106.4562194, - :house-number "823", - :street "Sussex Road", - :city "Kaycee", - :state-abbrev "WY", - :zip "82639"} - {:lat 30.00989879999999, - :lon -102.6003381, - :house-number "2005", - :street "Longbranch", - :city "Alpine", - :state-abbrev "TX", - :zip "79830"} - {:lat 39.093084, - :lon -97.2875339, - :house-number "537", - :street "3400 Avenue", - :city "Abilene", - :state-abbrev "KS", - :zip "67410"} - {:lat 42.3859311, - :lon -75.8204083, - :house-number "201", - :street "McBerney Road", - :city "Greene", - :state-abbrev "NY", - :zip "13778"} - {:lat 33.5250515, - :lon -81.23591669999999, - :house-number "71", - :street "Off Highway", - :city "Springfield", - :state-abbrev "SC", - :zip "29146"} - {:lat 34.5177893, - :lon -120.426859, - :house-number "6001", - :street "Jalama Road", - :city "Lompoc", - :state-abbrev "CA", - :zip "93436"} - {:lat 40.8553864, - :lon -85.3552304, - :house-number "1608-1798", - :street "North 500 East", - :city "Markle", - :state-abbrev "IN", - :zip "46770"} - {:lat 42.5548728, - :lon -100.7206827, - :house-number "21-30", - :street "290th Avenue", - :city "Valentine", - :state-abbrev "NE", - :zip "69201"} - {:lat 37.8871013, - :lon -111.3800388, - :house-number "1075", - :street "South Draw Lane", - :city "Boulder", - :state-abbrev "UT", - :zip "84716"} - {:lat 45.8947616, - :lon -101.8710636, - :house-number "10371", - :street "212th Avenue", - :city "Keldron", - :state-abbrev "SD", - :zip "57634"} - {:lat 35.0672596, - :lon -87.2733781, - :house-number "349-359", - :street "Richardson Road", - :city "Leoma", - :state-abbrev "TN", - :zip "38468"} - {:lat 62.8626841, - :lon -149.8708804, - :house-number "29161", - :street "North Parks Highway", - :city "Trapper Creek", - :state-abbrev "AK", - :zip "99683"} - {:lat 41.065276, - :lon -94.9103061, - :house-number "1659", - :street "Aspen Avenue", - :city "Villisca", - :state-abbrev "IA", - :zip "50864"} - {:lat 36.228495, - :lon -80.5179206, - :house-number "1018-1024", - :street "Harley Drive", - :city "East Bend", - :state-abbrev "NC", - :zip "27018"} - {:lat 40.4416933, - :lon -107.5048772, - :house-number "6275", - :street "County Road 33", - :city "Craig", - :state-abbrev "CO", - :zip "81625"} - {:lat 46.1798489, - :lon -94.7900583, - :house-number "27676-27698", - :street "Oak Ridge Road", - :city "Browerville", - :state-abbrev "MN", - :zip "56438"} - {:lat 41.23278759999999, - :lon -98.6898791, - :house-number "1378-1390", - :street "Valley Road", - :city "Farwell", - :state-abbrev "NE", - :zip "68838"} - {:lat 40.1116969, - :lon -75.70111469999999, - :house-number "33", - :street "Saint Andrews Lane", - :city "Glenmoore", - :state-abbrev "PA", - :zip "19343"} - {:lat 33.9628991, - :lon -94.4645876, - :house-number "195", - :street "Kornegay Road", - :city "De Queen", - :state-abbrev "AR", - :zip "71832"} - {:lat 47.252835, - :lon -111.2510361, - :house-number "791", - :street "East Eden Road", - :city "Great Falls", - :state-abbrev "MT", - :zip "59405"} - {:lat 34.254886, - :lon -88.9181922, - :house-number "238", - :street "Prewitt Road Extension", - :city "Pontotoc", - :state-abbrev "MS", - :zip "38863"} - {:lat 28.0166763, - :lon -82.3265856, - :house-number "10601", - :street "Bartolotti Loop", - :city "Seffner", - :state-abbrev "FL", - :zip "33584"} - {:lat 42.9727314, - :lon -93.6407687, - :house-number "1435", - :street "Rake Avenue", - :city "Goodell", - :state-abbrev "IA", - :zip "50439"} - {:lat 40.8830528, - :lon -97.711072, - :house-number "1313", - :street "Road G", - :city "York", - :state-abbrev "NE", - :zip "68467"} - {:lat 33.9453372, - :lon -102.8765466, - :house-number "2511-2585", - :street "County Road 97", - :city "Muleshoe", - :state-abbrev "TX", - :zip "79347"} - {:lat 33.028728, - :lon -85.82033799999999, - :house-number "3151", - :street "Lashley Road", - :city "Alexander City", - :state-abbrev "AL", - :zip "35010"} - {:lat 57.2031043, - :lon -153.3069441, - :house-number "3", - :street "3 Saints Avenue", - :city "Old Harbor", - :state-abbrev "AK", - :zip "99643"} - {:lat 43.2271856, - :lon -93.7495422, - :house-number "1201-1245", - :street "320th Street", - :city "Britt", - :state-abbrev "IA", - :zip "50423"} - {:lat 44.234764, - :lon -83.5723488, - :house-number "1655", - :street "Oates Road", - :city "Tawas City", - :state-abbrev "MI", - :zip "48763"} - {:lat 43.05741829999999, - :lon -71.9011538, - :house-number "2368", - :street "2nd New Hampshire Turnpike North", - :city "Deering", - :state-abbrev "NH", - :zip "03244"} - {:lat 39.8053478, - :lon -89.38065110000001, - :house-number "14400", - :street "Bullard Road", - :city "Buffalo", - :state-abbrev "IL", - :zip "62515"} - {:lat 36.464025, - :lon -88.82106499999999, - :house-number "9832", - :street "Reams Road", - :city "South Fulton", - :state-abbrev "TN", - :zip "38257"} - {:lat 46.81518, - :lon -94.628722, - :house-number "298", - :street "County 41 Northwest", - :city "Backus", - :state-abbrev "MN", - :zip "56435"} - {:lat 33.0933287, - :lon -96.80106560000002, - :house-number "8565", - :street "Gratitude Trail", - :city "Plano", - :state-abbrev "TX", - :zip "75024"} - {:lat 47.7854307, - :lon -111.07975, - :house-number "5463", - :street "Carter Road", - :city "Floweree", - :state-abbrev "MT", - :zip "59440"} - {:lat 68.1407585, - :lon -151.7337144, - :house-number "1104", - :street "Summer Street", - :city "Anaktuvuk Pass", - :state-abbrev "AK", - :zip "99721"} - {:lat 36.6480556, - :lon -89.20687989999999, - :house-number "140-148", - :street "County Road 507", - :city "East Prairie", - :state-abbrev "MO", - :zip "63845"} - {:lat 37.466346, - :lon -78.787437, - :house-number "4467", - :street "Wildway Road", - :city "Appomattox", - :state-abbrev "VA", - :zip "24522"} - {:lat 42.1816833, - :lon -72.2562806, - :house-number "1-799", - :street "Smith Road", - :city "Brimfield", - :state-abbrev "MA", - :zip "01010"} - {:lat 38.23524500000001, - :lon -89.9299319, - :house-number "4327", - :street "North Road", - :city "Red Bud", - :state-abbrev "IL", - :zip "62278"} - {:lat 48.0768505, - :lon -103.9195978, - :house-number "14951", - :street "44th Lane Northwest", - :city "Williston", - :state-abbrev "ND", - :zip "58801"} - {:lat 39.5134118, - :lon -83.5542948, - :house-number "298-1500", - :street "Miami Trace Road Northwest", - :city "Washington Court House", - :state-abbrev "OH", - :zip "43160"} - {:lat 38.3767066, - :lon -83.86546, - :house-number "500", - :street "Harvey Point Lane", - :city "Ewing", - :state-abbrev "KY", - :zip "41039"} - {:lat 35.0987129, - :lon -78.44406599999999, - :house-number "1580", - :street "Honeycutt Road", - :city "Clinton", - :state-abbrev "NC", - :zip "28328"} - {:lat 40.2518581, - :lon -111.6709749, - :house-number "701", - :street "Columbia Lane", - :city "Provo", - :state-abbrev "UT", - :zip "84604"} - {:lat 38.2357129, - :lon -84.3932788, - :house-number "421", - :street "Russell Cave Road", - :city "Paris", - :state-abbrev "KY", - :zip "40361"} - {:lat 41.46980569999999, - :lon -75.56494649999999, - :house-number "601-999", - :street "Center Street", - :city "Jessup", - :state-abbrev "PA", - :zip "18434"} - {:lat 40.007307, - :lon -91.379312, - :house-number "6309", - :street "North 24th Street", - :city "Quincy", - :state-abbrev "IL", - :zip "62305"} - {:lat 48.2478274, - :lon -97.4702992, - :house-number "5764-5768", - :street "Carpenter Avenue West", - :city "Forest River", - :state-abbrev "ND", - :zip "58233"} - {:lat 31.8534425, - :lon -95.2631505, - :house-number "4450", - :street "County Road 1707", - :city "Jacksonville", - :state-abbrev "TX", - :zip "75766"} - {:lat 45.53608759999999, - :lon -122.6070854, - :house-number "1823", - :street "Northeast 55th Avenue", - :city "Portland", - :state-abbrev "OR", - :zip "97213"} - {:lat 41.8130925, - :lon -78.1391026, - :house-number "187", - :street "Atkins Road", - :city "Roulette", - :state-abbrev "PA", - :zip "16746"} - {:lat 28.7773258, - :lon -97.38853019999999, - :house-number "7705-8103", - :street "U.S. 77 Alternate", - :city "Goliad", - :state-abbrev "TX", - :zip "77963"} - {:lat 36.798081, - :lon -88.5468652, - :house-number "714", - :street "Heath Lane", - :city "Mayfield", - :state-abbrev "KY", - :zip "42066"} - {:lat 67.08449519999999, - :lon -157.8628762, - :house-number "9998", - :street "Ambler Avenue", - :city "Ambler", - :state-abbrev "AK", - :zip "99786"} - {:lat 38.8718307, - :lon -122.7625342, - :house-number "7947-7949", - :street "Harrington Flat Road", - :city "Kelseyville", - :state-abbrev "CA", - :zip "95451"} - {:lat 35.6170622, - :lon -112.2642372, - :house-number "2779", - :street "Sunaire Avenue", - :city "Williams", - :state-abbrev "AZ", - :zip "86046"} - {:lat 44.972463, - :lon -116.8597028, - :house-number "44600", - :street "Brownlee-Oxbow Highway", - :city "Oxbow", - :state-abbrev "OR", - :zip "97840"} - {:lat 36.1922535, - :lon -82.6589703, - :house-number "2662", - :street "Sand Bar Road", - :city "Chuckey", - :state-abbrev "TN", - :zip "37641"} - {:lat 39.5195547, - :lon -87.1212157, - :house-number "515-521", - :street "South Lambert Street", - :city "Brazil", - :state-abbrev "IN", - :zip "47834"} - {:lat 41.44949889999999, - :lon -81.5390384, - :house-number "19916", - :street "Harvard Avenue", - :city "Warrensville Heights", - :state-abbrev "OH", - :zip "44122"} - {:lat 47.789402, - :lon -117.27539, - :house-number "9613", - :street "East Mount Spokane Park Drive", - :city "Mead", - :state-abbrev "WA", - :zip "99021"} - {:lat 43.7183199, - :lon -111.7442182, - :house-number "7864-7870", - :street "South 1600 East", - :city "Rexburg", - :state-abbrev "ID", - :zip "83440"} - {:lat 40.1236675, - :lon -104.5281548, - :house-number "8505", - :street "County Road 57", - :city "Keenesburg", - :state-abbrev "CO", - :zip "80643"} - {:lat 42.8495931, - :lon -100.9546814, - :house-number "37592", - :street "South Kilgore Road", - :city "Kilgore", - :state-abbrev "NE", - :zip "69216"} - {:lat 39.690456, - :lon -86.58319499999999, - :house-number "3438", - :street "West County Road 500 South", - :city "Clayton", - :state-abbrev "IN", - :zip "46118"} - {:lat 48.107966, - :lon -98.453614, - :house-number "10001-10199", - :street "48th Street Northeast", - :city "Lakota", - :state-abbrev "ND", - :zip "58344"} - {:lat 47.098346, - :lon -91.817061, - :house-number "871", - :street "Stanley Road", - :city "Two Harbors", - :state-abbrev "MN", - :zip "55616"} - {:lat 40.910567, - :lon -88.8735779, - :house-number "19000-19998", - :street "North 300 East Road", - :city "Flanagan", - :state-abbrev "IL", - :zip "61740"} - {:lat 43.4110729, - :lon -99.56864089999999, - :house-number "33049", - :street "275th Street", - :city "Dallas", - :state-abbrev "SD", - :zip "57529"} - {:lat 42.63015499999999, - :lon -103.736465, - :house-number "562", - :street "Andrews Road", - :city "Harrison", - :state-abbrev "NE", - :zip "69346"} - {:lat 40.5366017, - :lon -118.0511495, - :house-number "12490", - :street "Nevada 400", - :city "Imlay", - :state-abbrev "NV", - :zip "89418"} - {:lat 33.4474665, - :lon -79.637743, - :house-number "1468-1814", - :street "County Road S-45-122", - :city "Andrews", - :state-abbrev "SC", - :zip "29510"} - {:lat 46.074001, - :lon -110.0419413, - :house-number "617", - :street "Wheeler Creek Road", - :city "Big Timber", - :state-abbrev "MT", - :zip "59011"} - {:lat 44.6353768, - :lon -123.1255399, - :house-number "31401-31799", - :street "Bryant Way Southwest", - :city "Albany", - :state-abbrev "OR", - :zip "97321"} - {:lat 38.334902, - :lon -96.54696059999999, - :house-number "1871", - :street "Buck Creek Road", - :city "Cottonwood Falls", - :state-abbrev "KS", - :zip "66845"} - {:lat 35.2986389, - :lon -79.54832239999999, - :house-number "4957-4963", - :street "Dowd Road", - :city "West End", - :state-abbrev "NC", - :zip "27376"} - {:lat 44.63497, - :lon -94.87430189999999, - :house-number "72000-72999", - :street "400th Street", - :city "Bird Island", - :state-abbrev "MN", - :zip "55310"} - {:lat 45.0184419, - :lon -89.45760779999999, - :house-number "7494", - :street "Sunrise Road", - :city "Wausau", - :state-abbrev "WI", - :zip "54403"} - {:lat 38.0828436, - :lon -104.138255, - :house-number "59001-62733", - :street "Huerfano Meter Station Road", - :city "Fowler", - :state-abbrev "CO", - :zip "81039"} - {:lat 44.7461575, - :lon -97.22435259999999, - :house-number "44915-44965", - :street "182nd Street", - :city "Hayti", - :state-abbrev "SD", - :zip "57241"} - {:lat 38.84375530000001, - :lon -92.2123464, - :house-number "9301-9351", - :street "South Rangeline Road", - :city "Columbia", - :state-abbrev "MO", - :zip "65201"} - {:lat 43.878749, - :lon -123.004424, - :house-number "81785", - :street "Sears Road", - :city "Creswell", - :state-abbrev "OR", - :zip "97426"} - {:lat 36.067496, - :lon -118.962811, - :house-number "10", - :street "Olive Drive", - :city "Porterville", - :state-abbrev "CA", - :zip "93257"} - {:lat 37.353904, - :lon -80.63106499999999, - :house-number "540", - :street "Big Branch Hollow Road", - :city "Pembroke", - :state-abbrev "VA", - :zip "24136"} - {:lat 44.5013568, - :lon -70.190512, - :house-number "212", - :street "Hyde Road", - :city "Jay", - :state-abbrev "ME", - :zip "04239"} - {:lat 41.7447019, - :lon -95.230696, - :house-number "1648", - :street "Redwood Road", - :city "Kirkman", - :state-abbrev "IA", - :zip "51447"} - {:lat 35.4066559, - :lon -79.91025669999999, - :house-number "R", - :street "Love Joy Road", - :city "Troy", - :state-abbrev "NC", - :zip "27371"} - {:lat 40.24334390000001, - :lon -92.29689409999999, - :house-number "49055", - :street "Aberdeen Avenue", - :city "Baring", - :state-abbrev "MO", - :zip "63531"} - {:lat 68.1407585, - :lon -151.7337144, - :house-number "1104", - :street "Summer Street", - :city "Anaktuvuk Pass", - :state-abbrev "AK", - :zip "99721"} - {:lat 44.75825709999999, - :lon -83.34710319999999, - :house-number "4337", - :street "Sucker Creek Road", - :city "Black River", - :state-abbrev "MI", - :zip "48721"} - {:lat 62.21401100000001, - :lon -149.953529, - :house-number "34200", - :street "South Answer Creek Road", - :city "Talkeetna", - :state-abbrev "AK", - :zip "99676"} - {:lat 43.8345894, - :lon -74.5497638, - :house-number "104", - :street "Carry Lane", - :city "Indian Lake", - :state-abbrev "NY", - :zip "12812"} - {:lat 42.9445834, - :lon -116.06033, - :house-number "37714", - :street "Owyhee Highway", - :city "Grand View", - :state-abbrev "ID", - :zip "83624"} - {:lat 45.270075, - :lon -91.58520299999999, - :house-number "444", - :street "28th Street", - :city "New Auburn", - :state-abbrev "WI", - :zip "54757"} - {:lat 32.139047, - :lon -95.380782, - :house-number "23600", - :street "County Road 181", - :city "Bullard", - :state-abbrev "TX", - :zip "75757"} - {:lat 37.2135641, - :lon -80.5379223, - :house-number "4422-4657", - :street "Mount Zion Road", - :city "Blacksburg", - :state-abbrev "VA", - :zip "24060"} - {:lat 36.6163612, - :lon -94.5197949, - :house-number "656", - :street "Coyote Lane", - :city "Anderson", - :state-abbrev "MO", - :zip "64831"} - {:lat 30.9334562, - :lon -83.8215372, - :house-number "1434", - :street "Patten Coolidge Road", - :city "Thomasville", - :state-abbrev "GA", - :zip "31757"} - {:lat 45.4285494, - :lon -106.0600979, - :house-number "56", - :street "10 Mile Road", - :city "Ashland", - :state-abbrev "MT", - :zip "59003"} - {:lat 32.0184677, - :lon -83.23612779999999, - :house-number "371", - :street "Ball-Adams Road", - :city "Rhine", - :state-abbrev "GA", - :zip "31077"} - {:lat 35.22150310000001, - :lon -83.87637219999999, - :house-number "870", - :street "Morris Creek Road", - :city "Andrews", - :state-abbrev "NC", - :zip "28901"} - {:lat 38.7088689, - :lon -106.2974023, - :house-number "21636-23044", - :street "Chalk Creek Drive", - :city "Nathrop", - :state-abbrev "CO", - :zip "81236"} - {:lat 48.2479813, - :lon -112.7933473, - :house-number "2870", - :street "Heart Butte Road", - :city "Heart Butte", - :state-abbrev "MT", - :zip "59448"} - {:lat 46.2673028, - :lon -94.83111799999999, - :house-number "25651", - :street "440th Street", - :city "Staples", - :state-abbrev "MN", - :zip "56479"} - {:lat 39.8195973, - :lon -106.6488937, - :house-number "10856-10872", - :street "Colorado 131", - :city "Bond", - :state-abbrev "CO", - :zip "80423"} - {:lat 34.6729655, - :lon -90.9358108, - :house-number "1-1245", - :street "Lee Road 146", - :city "Marianna", - :state-abbrev "AR", - :zip "72360"} - {:lat 43.73931109999999, - :lon -73.2099542, - :house-number "1430", - :street "Camp Road", - :city "Hubbardton", - :state-abbrev "VT", - :zip "05733"} - {:lat 44.4667235, - :lon -109.646441, - :house-number "2045-2099", - :street "North Fork Highway", - :city "Cody", - :state-abbrev "WY", - :zip "82414"} - {:lat 31.85133149999999, - :lon -89.56420399999999, - :house-number "8945", - :street "Mississippi 35", - :city "Mize", - :state-abbrev "MS", - :zip "39116"} - {:lat 64.11335319999999, - :lon -145.7153202, - :house-number "4-6", - :street "Berm Road", - :city "Delta Junction", - :state-abbrev "AK", - :zip "99737"} - {:lat 44.08427500000001, - :lon -69.424667, - :house-number "993", - :street "Bremen Road", - :city "Waldoboro", - :state-abbrev "ME", - :zip "04572"} - {:lat 40.8418528, - :lon -95.0637706, - :house-number "2684", - :street "140 Street", - :city "Clarinda", - :state-abbrev "IA", - :zip "51632"} - {:lat 42.5752479, - :lon -83.4225818, - :house-number "4144-4174", - :street "Cedar Avenue", - :city "West Bloomfield Township", - :state-abbrev "MI", - :zip "48323"} - {:lat 37.9000567, - :lon -95.4400805, - :house-number "1100-1140", - :street "1100th Street", - :city "Iola", - :state-abbrev "KS", - :zip "66749"} - {:lat 44.211073, - :lon -116.980414, - :house-number "5370", - :street "Oregon 201", - :city "Ontario", - :state-abbrev "OR", - :zip "97914"} - {:lat 41.69714279999999, - :lon -76.2646924, - :house-number "1439", - :street "Old Stage Coach Road", - :city "Wyalusing", - :state-abbrev "PA", - :zip "18853"} - {:lat 41.517833, - :lon -109.7861365, - :house-number "169-303", - :street "Tenneco Road", - :city "Little America", - :state-abbrev "WY", - :zip "82929"} - {:lat 44.767292, - :lon -117.2465541, - :house-number "41643-41645", - :street "Stanciu Road", - :city "Richland", - :state-abbrev "OR", - :zip "97870"} - {:lat 35.9428891, - :lon -96.5972493, - :house-number "11574", - :street "South Highway 16", - :city "Drumright", - :state-abbrev "OK", - :zip "74030"} - {:lat 47.830185, - :lon -116.902588, - :house-number "17465", - :street "North Reservoir Road", - :city "Rathdrum", - :state-abbrev "ID", - :zip "83858"} - {:lat 37.0261329, - :lon -120.7084354, - :house-number "17767-18027", - :street "Britto Road", - :city "Dos Palos", - :state-abbrev "CA", - :zip "93620"} - {:lat 46.7897253, - :lon -102.3069165, - :house-number "8797-8799", - :street "43rd Street Southwest", - :city "Richardton", - :state-abbrev "ND", - :zip "58652"} - {:lat 39.4218773, - :lon -87.8772173, - :house-number "18895", - :street "North Bluegrass Road", - :city "Martinsville", - :state-abbrev "IL", - :zip "62442"} - {:lat 37.7548839, - :lon -82.11584700000002, - :house-number "1561", - :street "Holly Ridge", - :city "Delbarton", - :state-abbrev "WV", - :zip "25670"} - {:lat 43.6115287, - :lon -75.10066379999999, - :house-number "133", - :street "New York 28", - :city "Forestport", - :state-abbrev "NY", - :zip "13338"} - {:lat 39.5495735, - :lon -74.9842683, - :house-number "977", - :street "Harding Highway", - :city "Newfield", - :state-abbrev "NJ", - :zip "08344"} - {:lat 40.4986933, - :lon -101.4616215, - :house-number "73606", - :street "342 Avenue", - :city "Wauneta", - :state-abbrev "NE", - :zip "69045"} - {:lat 39.88439229999999, - :lon -93.44229159999999, - :house-number "18236", - :street "Liv 216", - :city "Chula", - :state-abbrev "MO", - :zip "64635"} - {:lat 31.6453016, - :lon -98.7931651, - :house-number "6275", - :street "County Road 261", - :city "Zephyr", - :state-abbrev "TX", - :zip "76890"} - {:lat 37.8124198, - :lon -91.809668, - :house-number "13210", - :street "County Road 7480", - :city "Rolla", - :state-abbrev "MO", - :zip "65401"} - {:lat 46.6246575, - :lon -109.9853737, - :house-number "1701", - :street "Lode Road", - :city "Judith Gap", - :state-abbrev "MT", - :zip "59453"} - {:lat 31.7721425, - :lon -88.30609899999999, - :house-number "4243", - :street "County Road 6", - :city "Silas", - :state-abbrev "AL", - :zip "36919"} - {:lat 45.5132811, - :lon -90.7530905, - :house-number "W1521", - :street "U.S. 8", - :city "Hawkins", - :state-abbrev "WI", - :zip "54530"} - {:lat 38.53201540000001, - :lon -77.9146172, - :house-number "18315", - :street "Brenridge Drive", - :city "Brandy Station", - :state-abbrev "VA", - :zip "22714"} - {:lat 31.727264, - :lon -82.86896999999999, - :house-number "922", - :street "Rock Creek Road", - :city "Broxton", - :state-abbrev "GA", - :zip "31519"} - {:lat 37.3029865, - :lon -104.8068505, - :house-number "18926-19804", - :street "County Road 42", - :city "Aguilar", - :state-abbrev "CO", - :zip "81020"} - {:lat 44.7078688, - :lon -101.1166327, - :house-number "24915-24999", - :street "Fosters Bay Road", - :city "Hayes", - :state-abbrev "SD", - :zip "57537"} - {:lat 33.1992752, - :lon -84.7877791, - :house-number "800", - :street "Gold Mine Road", - :city "Grantville", - :state-abbrev "GA", - :zip "30220"} - {:lat 35.532079, - :lon -78.99712, - :house-number "151", - :street "Attie Lee Lane", - :city "Sanford", - :state-abbrev "NC", - :zip "27330"} - {:lat 39.3320421, - :lon -79.8101235, - :house-number "359-433", - :street "Kanetown Road", - :city "Tunnelton", - :state-abbrev "WV", - :zip "26444"} - {:lat 35.5339405, - :lon -103.0605646, - :house-number "8762-8798", - :street "Quay Road C", - :city "Nara Visa", - :state-abbrev "NM", - :zip "88430"} - {:lat 38.87266899999999, - :lon -81.692555, - :house-number "440", - :street "Creed Road", - :city "Sandyville", - :state-abbrev "WV", - :zip "25275"} - {:lat 40.7866224, - :lon -99.41291869999999, - :house-number "2860-3498", - :street "115th Road", - :city "Elm Creek", - :state-abbrev "NE", - :zip "68836"} - {:lat 43.72863599999999, - :lon -89.5407456, - :house-number "N2496", - :street "County Road O", - :city "Endeavor", - :state-abbrev "WI", - :zip "53930"} - {:lat 41.61609139999999, - :lon -80.167881, - :house-number "10862", - :street "Mercer Pike", - :city "Meadville", - :state-abbrev "PA", - :zip "16335"} - {:lat 41.0486853, - :lon -83.2739697, - :house-number "90", - :street "West Street", - :city "New Riegel", - :state-abbrev "OH", - :zip "44853"} - {:lat 44.3047656, - :lon -91.4396951, - :house-number "24455", - :street "Korpal Valley Road", - :city "Arcadia", - :state-abbrev "WI", - :zip "54612"} - {:lat 32.3749628, - :lon -81.91605910000001, - :house-number "1121", - :street "Georgia 46", - :city "Register", - :state-abbrev "GA", - :zip "30452"} - {:lat 43.190175, - :lon -84.290216, - :house-number "19158", - :street "West Brady Road", - :city "Oakley", - :state-abbrev "MI", - :zip "48649"} - {:lat 41.2768919, - :lon -73.3320092, - :house-number "40", - :street "Country Club Lane", - :city "Easton", - :state-abbrev "CT", - :zip "06612"} - {:lat 33.611816, - :lon -101.574374, - :house-number "1212", - :street "County Road 3900", - :city "Lorenzo", - :state-abbrev "TX", - :zip "79343"} - {:lat 30.40228699999999, - :lon -92.4700189, - :house-number "2821", - :street "Grand Coulee Road", - :city "Iota", - :state-abbrev "LA", - :zip "70543"} - {:lat 41.5195341, - :lon -86.2735781, - :house-number "67000", - :street "Block Linden Road", - :city "Lakeville", - :state-abbrev "IN", - :zip "46536"} - {:lat 31.933357, - :lon -98.647925, - :house-number "9151", - :street "Texas 36", - :city "Comanche", - :state-abbrev "TX", - :zip "76442"} - {:lat 45.6637316, - :lon -109.1018165, - :house-number "568", - :street "Pine Crest Road", - :city "Columbus", - :state-abbrev "MT", - :zip "59019"} - {:lat 32.2872424, - :lon -83.76449579999999, - :house-number "1888", - :street "Busby Road", - :city "Unadilla", - :state-abbrev "GA", - :zip "31091"} - {:lat 45.6368764, - :lon -84.80468809999999, - :house-number "5697-5965", - :street "East Levering Road", - :city "Levering", - :state-abbrev "MI", - :zip "49755"} - {:lat 40.3157351, - :lon -103.7817528, - :house-number "21492", - :street "County Road 19.5", - :city "Fort Morgan", - :state-abbrev "CO", - :zip "80701"} - {:lat 30.3464967, - :lon -100.5766679, - :house-number "4783", - :street "Scr 406", - :city "Sonora", - :state-abbrev "TX", - :zip "76950"} - {:lat 34.2315341, - :lon -119.0478149, - :house-number "1731-1753", - :street "Edgemont Drive", - :city "Camarillo", - :state-abbrev "CA", - :zip "93010"} - {:lat 35.320345, - :lon -90.586955, - :house-number "291", - :street "County Road 428", - :city "Parkin", - :state-abbrev "AR", - :zip "72373"} - {:lat 42.2477235, - :lon -71.67822749999999, - :house-number "201", - :street "Westboro Road", - :city "Grafton", - :state-abbrev "MA", - :zip "01536"} - {:lat 68.1407585, - :lon -151.7337144, - :house-number "1104", - :street "Summer Street", - :city "Anaktuvuk Pass", - :state-abbrev "AK", - :zip "99721"} - {:lat 41.8741662, - :lon -76.21114469999999, - :house-number "1047", - :street "Williams Road", - :city "Le Raysville", - :state-abbrev "PA", - :zip "18829"} - {:lat 41.977901, - :lon -77.8008182, - :house-number "340", - :street "Grover Hollow Road", - :city "Genesee", - :state-abbrev "PA", - :zip "16923"} - {:lat 32.5075849, - :lon -83.6623834, - :house-number "1938", - :street "South Houston Lake Road", - :city "Kathleen", - :state-abbrev "GA", - :zip "31047"} - {:lat 36.3514451, - :lon -91.216505, - :house-number "510", - :street "Sassafras Trail", - :city "Ravenden Springs", - :state-abbrev "AR", - :zip "72460"} - {:lat 36.7167521, - :lon -79.360768, - :house-number "282-298", - :street "Kendall Road", - :city "Blairs", - :state-abbrev "VA", - :zip "24527"} - {:lat 39.424406, - :lon -83.364902, - :house-number "8712", - :street "Ohio 753", - :city "Greenfield", - :state-abbrev "OH", - :zip "45123"} - {:lat 38.594246, - :lon -104.2138278, - :house-number "32801-33307", - :street "Myers Road", - :city "Yoder", - :state-abbrev "CO", - :zip "80864"} - {:lat 40.53627960000001, - :lon -96.0678761, - :house-number "1916", - :street "South 42nd Road", - :city "Talmage", - :state-abbrev "NE", - :zip "68448"} - {:lat 40.5008015, - :lon -78.2598843, - :house-number "1150", - :street "Fieldstone Lane", - :city "Hollidaysburg", - :state-abbrev "PA", - :zip "16648"} - {:lat 45.35636909999999, - :lon -98.0547479, - :house-number "40822-40854", - :street "140th Street", - :city "Groton", - :state-abbrev "SD", - :zip "57445"} - {:lat 31.9913681, - :lon -101.9196867, - :house-number "8526-9194", - :street "East County Road 120", - :city "Midland", - :state-abbrev "TX", - :zip "79706"} - {:lat 33.6400715, - :lon -97.244783, - :house-number "6060", - :street "U.S. 82", - :city "Gainesville", - :state-abbrev "TX", - :zip "76240"} - {:lat 37.3464922, - :lon -85.59606199999999, - :house-number "1625", - :street "Hudgins Highway", - :city "Summersville", - :state-abbrev "KY", - :zip "42782"} - {:lat 44.8919432, - :lon -94.599375, - :house-number "58232-58838", - :street "County Saint Aid Highway 12", - :city "Cosmos", - :state-abbrev "MN", - :zip "56228"} - {:lat 48.8773831, - :lon -99.122272, - :house-number "7220-7256", - :street "101st Street Northeast", - :city "Sarles", - :state-abbrev "ND", - :zip "58372"} - {:lat 34.20518, - :lon -91.688007, - :house-number "7620", - :street "Swan Lake Road", - :city "Altheimer", - :state-abbrev "AR", - :zip "72004"} - {:lat 36.862908, - :lon -93.01798409999999, - :house-number "13125", - :street "Missouri 125", - :city "Garrison", - :state-abbrev "MO", - :zip "65657"} - {:lat 46.3151618, - :lon -93.86941999999999, - :house-number "25000-25420", - :street "Emstad Road", - :city "Brainerd", - :state-abbrev "MN", - :zip "56401"} - {:lat 46.9479699, - :lon -105.66358, - :house-number "582", - :street "Bowgun Road", - :city "Terry", - :state-abbrev "MT", - :zip "59349"} - {:lat 45.196964, - :lon -91.28798, - :house-number "24378", - :street "County Highway East", - :city "Cornell", - :state-abbrev "WI", - :zip "54732"} - {:lat 62.457533, - :lon -151.0304531, - :house-number "10086", - :street "Cache Creek Trail", - :city "Petersville", - :state-abbrev "AK", - :zip "99688"} - {:lat 38.7511194, - :lon -105.5306814, - :house-number "845", - :street "County Road 102", - :city "Guffey", - :state-abbrev "CO", - :zip "80820"} - {:lat 40.54277860000001, - :lon -87.213391, - :house-number "4498", - :street "South 600 East", - :city "Oxford", - :state-abbrev "IN", - :zip "47971"} - {:lat 38.369965, - :lon -108.918405, - :house-number "8255", - :street "V Road", - :city "Bedrock", - :state-abbrev "CO", - :zip "81411"} - {:lat 48.032514, - :lon -121.953431, - :house-number "4005", - :street "203rd Avenue Northeast", - :city "Snohomish", - :state-abbrev "WA", - :zip "98290"} - {:lat 45.488054, - :lon -123.0048721, - :house-number "31675", - :street "Southwest Tongue Lane", - :city "Cornelius", - :state-abbrev "OR", - :zip "97113"} - {:lat 60.736956, - :lon -151.204963, - :house-number "52191", - :street "Lucille Drive", - :city "Kenai", - :state-abbrev "AK", - :zip "99611"} - {:lat 47.8002663, - :lon -110.9993894, - :house-number "2111", - :street "Davis School Road", - :city "Carter", - :state-abbrev "MT", - :zip "59420"} - {:lat 34.64605, - :lon -85.357874, - :house-number "333", - :street "Dixon Springs Road", - :city "LaFayette", - :state-abbrev "GA", - :zip "30728"} - {:lat 33.5398494, - :lon -90.5841232, - :house-number "1", - :street "Fox Lane", - :city "Sunflower", - :state-abbrev "MS", - :zip "38778"} - {:lat 37.978329, - :lon -79.320073, - :house-number "165", - :street "High Rock Road", - :city "Raphine", - :state-abbrev "VA", - :zip "24472"} - {:lat 38.0566677, - :lon -95.1343707, - :house-number "11350", - :street "Southeast Trego Road", - :city "Kincaid", - :state-abbrev "KS", - :zip "66039"} - {:lat 41.5546254, - :lon -87.18648069999999, - :house-number "3370", - :street "Reserve Drive", - :city "Portage", - :state-abbrev "IN", - :zip "46368"} - {:lat 30.9257828, - :lon -84.5847308, - :house-number "905", - :street "Moore Street", - :city "Bainbridge", - :state-abbrev "GA", - :zip "39817"} - {:lat 34.919351, - :lon -86.41667699999999, - :house-number "267", - :street "Old Mountain Fork Road", - :city "New Market", - :state-abbrev "AL", - :zip "35761"} - {:lat 35.8908397, - :lon -100.3738468, - :house-number "2550", - :street "South Locust Street", - :city "Canadian", - :state-abbrev "TX", - :zip "79014"} - {:lat 47.553749, - :lon -110.6752015, - :house-number "2430", - :street "Schipf Lane", - :city "Highwood", - :state-abbrev "MT", - :zip "59450"} - {:lat 43.7129598, - :lon -82.8248114, - :house-number "4849", - :street "East Atwater Road", - :city "Minden City", - :state-abbrev "MI", - :zip "48456"} - {:lat 31.9415854, - :lon -85.179998, - :house-number "554-620", - :street "Alabama 6", - :city "Eufaula", - :state-abbrev "AL", - :zip "36027"} - {:lat 41.1433826, - :lon -77.0596565, - :house-number "12090-12170", - :street "Pennsylvania 44", - :city "Allenwood", - :state-abbrev "PA", - :zip "17810"} - {:lat 42.4568889, - :lon -78.98246499999999, - :house-number "11586", - :street "New York 39", - :city "Perrysburg", - :state-abbrev "NY", - :zip "14129"} - {:lat 44.7556077, - :lon -88.8731391, - :house-number "12469", - :street "Grant Road", - :city "Caroline", - :state-abbrev "WI", - :zip "54928"} - {:lat 45.7572842, - :lon -110.2586546, - :house-number "1006-1152", - :street "Convict Grade Road", - :city "Livingston", - :state-abbrev "MT", - :zip "59047"} - {:lat 40.643762, - :lon -74.34552699999999, - :house-number "630", - :street "Westfield Avenue", - :city "Westfield", - :state-abbrev "NJ", - :zip "07090"} - {:lat 35.620295, - :lon -119.173283, - :house-number "14609", - :street "Wallace Road", - :city "McFarland", - :state-abbrev "CA", - :zip "93250"} - {:lat 34.767517, - :lon -88.15534679999999, - :house-number "230", - :street "County Road 995", - :city "Iuka", - :state-abbrev "MS", - :zip "38852"} - {:lat 47.3610646, - :lon -114.7882854, - :house-number "8431", - :street "Montana 200", - :city "Plains", - :state-abbrev "MT", - :zip "59859"} - {:lat 31.6978281, - :lon -93.7426612, - :house-number "12051", - :street "Louisiana 191", - :city "Noble", - :state-abbrev "LA", - :zip "71462"} - {:lat 28.2836389, - :lon -81.3443001, - :house-number "2429", - :street "Academy Circle East", - :city "Kissimmee", - :state-abbrev "FL", - :zip "34744"} - {:lat 40.5483657, - :lon -100.8981094, - :house-number "37054", - :street "Road 740a", - :city "Hayes Center", - :state-abbrev "NE", - :zip "69032"} - {:lat 37.6560882, - :lon -114.4971551, - :house-number "9393", - :street "U.S. 93", - :city "Caliente", - :state-abbrev "NV", - :zip "89008"} - {:lat 69.74188029999999, - :lon -163.0054384, - :house-number "218", - :street "Qigalik Avenue", - :city "Point Lay", - :state-abbrev "AK", - :zip "99759"} - {:lat 37.87920620000001, - :lon -84.8322154, - :house-number "818", - :street "McAfee Lane", - :city "Salvisa", - :state-abbrev "KY", - :zip "40372"} - {:lat 32.2026464, - :lon -96.9182896, - :house-number "321", - :street "Carolyn Lane", - :city "Italy", - :state-abbrev "TX", - :zip "76651"} - {:lat 31.302434, - :lon -103.8943771, - :house-number "662-748", - :street "County Road 229", - :city "Toyah", - :state-abbrev "TX", - :zip "79785"} - {:lat 45.8477683, - :lon -109.9181288, - :house-number "103", - :street "Thompson Lane", - :city "Big Timber", - :state-abbrev "MT", - :zip "59011"} - {:lat 34.7146621, - :lon -83.2255016, - :house-number "251", - :street "State Road S-37-90", - :city "Westminster", - :state-abbrev "SC", - :zip "29693"} - {:lat 42.5941011, - :lon -100.1437794, - :house-number "41616", - :street "U.S. 20", - :city "Johnstown", - :state-abbrev "NE", - :zip "69214"} - {:lat 30.5429963, - :lon -95.2862281, - :house-number "4702", - :street "Texas 150", - :city "New Waverly", - :state-abbrev "TX", - :zip "77358"} - {:lat 27.371848, - :lon -80.3909539, - :house-number "5238", - :street "Northwest Conley Drive", - :city "Port St. Lucie", - :state-abbrev "FL", - :zip "34986"} - {:lat 31.7543016, - :lon -86.8140238, - :house-number "5555", - :street "West Pettibone Road", - :city "Georgiana", - :state-abbrev "AL", - :zip "36033"} - {:lat 44.8285857, - :lon -116.4514573, - :house-number "2679", - :street "Fruitvale Glendale Road", - :city "Fruitvale", - :state-abbrev "ID", - :zip "83612"} - {:lat 36.6824561, - :lon -88.8682925, - :house-number "2072", - :street "Burkett Road", - :city "Clinton", - :state-abbrev "KY", - :zip "42031"} - {:lat 40.1728449, - :lon -99.4659295, - :house-number "71375", - :street "I Road", - :city "Orleans", - :state-abbrev "NE", - :zip "68966"} - {:lat 35.3121184, - :lon -79.5780175, - :house-number "192", - :street "Palomino Road", - :city "Carthage", - :state-abbrev "NC", - :zip "28327"} - {:lat 30.269541, - :lon -93.648978, - :house-number "812", - :street "Louisiana 109", - :city "Starks", - :state-abbrev "LA", - :zip "70661"} - {:lat 38.8532138, - :lon -83.67866110000001, - :house-number "500", - :street "Bob Moore Road", - :city "Winchester", - :state-abbrev "OH", - :zip "45697"} - {:lat 44.9181746, - :lon -84.512378, - :house-number "7912", - :street "Old State Road", - :city "Johannesburg", - :state-abbrev "MI", - :zip "49751"} - {:lat 41.5769338, - :lon -95.73876659999999, - :house-number "2946", - :street "296th Street", - :city "Logan", - :state-abbrev "IA", - :zip "51546"} - {:lat 37.640246, - :lon -113.358102, - :house-number "95", - :street "South Main Street", - :city "Cedar City", - :state-abbrev "UT", - :zip "84720"} - {:lat 39.136784, - :lon -123.340683, - :house-number "10355", - :street "Gap Road", - :city "Ukiah", - :state-abbrev "CA", - :zip "95482"} - {:lat 61.8699257, - :lon -158.1134929, - :house-number "500", - :street "Airport Road", - :city "Crooked Creek", - :state-abbrev "AK", - :zip "99575"} - {:lat 40.2588011, - :lon -83.18504399999999, - :house-number "4105-4155", - :street "Newhouse Road", - :city "Ostrander", - :state-abbrev "OH", - :zip "43061"} - {:lat 42.2350476, - :lon -95.1320111, - :house-number "3835", - :street "Lee Avenue", - :city "Wall Lake", - :state-abbrev "IA", - :zip "51466"} - {:lat 45.2974883, - :lon -98.66082109999999, - :house-number "14400-14498", - :street "377th Avenue", - :city "Mansfield", - :state-abbrev "SD", - :zip "57460"} - {:lat 44.1826097, - :lon -96.9977377, - :house-number "46060", - :street "221st Street", - :city "Nunda", - :state-abbrev "SD", - :zip "57050"} - {:lat 33.9292032, - :lon -86.4874645, - :house-number "345-457", - :street "Industrial Park Road", - :city "Oneonta", - :state-abbrev "AL", - :zip "35121"} - {:lat 42.2030725, - :lon -90.238552, - :house-number "11401-11799", - :street "Illinois 84", - :city "Savanna", - :state-abbrev "IL", - :zip "61074"} - {:lat 38.747285, - :lon -122.436815, - :house-number "25470", - :street "Guenoc Valley Road", - :city "Middletown", - :state-abbrev "CA", - :zip "95461"} - {:lat 45.9996513, - :lon -116.4095479, - :house-number "382", - :street "Moughmer Point Road", - :city "Cottonwood", - :state-abbrev "ID", - :zip "83522"} - {:lat 35.6316119, - :lon -79.74275, - :house-number "3422", - :street "Fairview Farm Road", - :city "Asheboro", - :state-abbrev "NC", - :zip "27205"} - {:lat 37.8924646, - :lon -78.9085721, - :house-number "213", - :street "Wade's Lane", - :city "Nellysford", - :state-abbrev "VA", - :zip "22958"} - {:lat 44.7915107, - :lon -74.3894583, - :house-number "344", - :street "County Highway 13", - :city "North Bangor", - :state-abbrev "NY", - :zip "12966"} - {:lat 41.3518155, - :lon -102.8610079, - :house-number "12207-12499", - :street "Road 50", - :city "Gurley", - :state-abbrev "NE", - :zip "69141"} - {:lat 44.2673703, - :lon -102.897699, - :house-number "15898", - :street "Elk Creek Road", - :city "New Underwood", - :state-abbrev "SD", - :zip "57761"} - {:lat 43.9761662, - :lon -72.0256862, - :house-number "103", - :street "Moses Hill Road", - :city "Piermont", - :state-abbrev "NH", - :zip "03779"} - {:lat 33.911886, - :lon -117.402565, - :house-number "2250", - :street "Saint Lawrence Street", - :city "Riverside", - :state-abbrev "CA", - :zip "92504"} - {:lat 31.3295569, - :lon -96.6387872, - :house-number "9009", - :street "Farm to Market Road 339", - :city "Kosse", - :state-abbrev "TX", - :zip "76653"} - {:lat 43.6163727, - :lon -96.00734779999999, - :house-number "12288-12364", - :street "260th Street", - :city "Adrian", - :state-abbrev "MN", - :zip "56110"} - {:lat 36.3584405, - :lon -82.5067803, - :house-number "456", - :street "Dean Archer Road", - :city "Jonesborough", - :state-abbrev "TN", - :zip "37659"} - {:lat 47.306509, - :lon -114.3258778, - :house-number "8", - :street "Bison Hill Lane", - :city "Dixon", - :state-abbrev "MT", - :zip "59831"} - {:lat 37.883686, - :lon -92.7506329, - :house-number "37128", - :street "Norfolk Drive", - :city "Eldridge", - :state-abbrev "MO", - :zip "65463"} - {:lat 42.955365, - :lon -108.876239, - :house-number "12719", - :street "Us Highway 287", - :city "Lander", - :state-abbrev "WY", - :zip "82520"} - {:lat 37.684682, - :lon -98.3192297, - :house-number "2715-2999", - :street "Northwest 110 Avenue", - :city "Cunningham", - :state-abbrev "KS", - :zip "67035"} - {:lat 37.119296, - :lon -83.3545248, - :house-number "590", - :street "Camp Creek Road", - :city "Wendover", - :state-abbrev "KY", - :zip "41775"} - {:lat 36.0206405, - :lon -91.7991847, - :house-number "535", - :street "Arkansas 58", - :city "Melbourne", - :state-abbrev "AR", - :zip "72556"} - {:lat 30.468483, - :lon -97.17470200000001, - :house-number "112", - :street "Farm to Market Road 112", - :city "Lexington", - :state-abbrev "TX", - :zip "78947"} - {:lat 43.619591, - :lon -116.780469, - :house-number "19426", - :street "Homedale Road", - :city "Caldwell", - :state-abbrev "ID", - :zip "83607"} - {:lat 42.00185099999999, - :lon -88.83209800000002, - :house-number "25591", - :street "Clare Road", - :city "Clare", - :state-abbrev "IL", - :zip "60111"} - {:lat 32.9684008, - :lon -89.72839739999999, - :house-number "3519", - :street "Attala Road 4163", - :city "Sallis", - :state-abbrev "MS", - :zip "39160"} - {:lat 47.5166676, - :lon -101.3110546, - :house-number "3350-3398", - :street "7th Street Northwest", - :city "Coleharbor", - :state-abbrev "ND", - :zip "58531"} - {:lat 38.3699447, - :lon -105.7543789, - :house-number "15587", - :street "U.S. 50", - :city "Coaldale", - :state-abbrev "CO", - :zip "81222"} - {:lat 44.295008, - :lon -99.20564069999999, - :house-number "21301-21397", - :street "349th Avenue", - :city "Ree Heights", - :state-abbrev "SD", - :zip "57371"} - {:lat 46.7837226, - :lon -96.7149852, - :house-number "7001-7499", - :street "40th Street South", - :city "Moorhead", - :state-abbrev "MN", - :zip "56560"} - {:lat 35.2324893, - :lon -97.12338249999999, - :house-number "22979", - :street "Fishmarket Road", - :city "Tecumseh", - :state-abbrev "OK", - :zip "74873"} - {:lat 38.71972, - :lon -104.0339759, - :house-number "14388", - :street "County Road 2", - :city "Rush", - :state-abbrev "CO", - :zip "80833"} - {:lat 45.9914359, - :lon -91.87771029999999, - :house-number "N10010", - :street "Mack Lake Road", - :city "Trego", - :state-abbrev "WI", - :zip "54888"} - {:lat 32.3649355, - :lon -108.6417541, - :house-number "11", - :street "Easy Street", - :city "Lordsburg", - :state-abbrev "NM", - :zip "88045"} - {:lat 30.9223605, - :lon -88.7025561, - :house-number "150", - :street "Erkhart Lane", - :city "Lucedale", - :state-abbrev "MS", - :zip "39452"} - {:lat 34.1874207, - :lon -118.3460122, - :house-number "3300", - :street "West Pacific Avenue", - :city "Burbank", - :state-abbrev "CA", - :zip "91505"} - {:lat 37.0346632, - :lon -84.97187, - :house-number "702", - :street "Parks Ridge Road", - :city "Russell Springs", - :state-abbrev "KY", - :zip "42642"} - {:lat 41.56147989999999, - :lon -101.5703272, - :house-number "605", - :street "Enfield Road", - :city "Arthur", - :state-abbrev "NE", - :zip "69121"} - {:lat 31.7017361, - :lon -92.19979389999999, - :house-number "440", - :street "McClendon Drive", - :city "Trout", - :state-abbrev "LA", - :zip "71371"} - {:lat 48.9376694, - :lon -102.5313156, - :house-number "8301-8355", - :street "105th Street Northwest", - :city "Portal", - :state-abbrev "ND", - :zip "58772"} - {:lat 40.3198608, - :lon -88.603081, - :house-number "2808", - :street "County Road 3425 East", - :city "Farmer City", - :state-abbrev "IL", - :zip "61842"} - {:lat 42.977263, - :lon -73.2044854, - :house-number "162", - :street "Lawrence Road", - :city "Shaftsbury", - :state-abbrev "VT", - :zip "05262"} - {:lat 46.0139827, - :lon -111.3499344, - :house-number "1083-1099", - :street "Broken Creek Road", - :city "Three Forks", - :state-abbrev "MT", - :zip "59752"} - {:lat 30.355476, - :lon -97.077581, - :house-number "5631", - :street "FM 1624 Road", - :city "Lexington", - :state-abbrev "TX", - :zip "78947"} - {:lat 36.6408739, - :lon -121.652028, - :house-number "80", - :street "Hunter Lane", - :city "Salinas", - :state-abbrev "CA", - :zip "93908"} - {:lat 42.691568, - :lon -85.76601199999999, - :house-number "3730", - :street "22nd Street", - :city "Dorr", - :state-abbrev "MI", - :zip "49323"} - {:lat 45.5956919, - :lon -91.7962239, - :house-number "1701-1791", - :street "27th Avenue", - :city "Rice Lake", - :state-abbrev "WI", - :zip "54868"} - {:lat 40.0893774, - :lon -80.94992909999999, - :house-number "69369", - :street "Lee Road", - :city "Saint Clairsville", - :state-abbrev "OH", - :zip "43950"} - {:lat 29.6556693, - :lon -91.3973822, - :house-number "505", - :street "Joey Street", - :city "Patterson", - :state-abbrev "LA", - :zip "70392"} - {:lat 48.33209799999999, - :lon -118.1551135, - :house-number "3126-3312", - :street "Washington 25", - :city "Gifford", - :state-abbrev "WA", - :zip "99131"} - {:lat 39.1427815, - :lon -93.9051427, - :house-number "10844", - :street "County Farm Road", - :city "Lexington", - :state-abbrev "MO", - :zip "64067"} - {:lat 29.3660443, - :lon -96.00103399999999, - :house-number "7654", - :street "County Road 121", - :city "Wharton", - :state-abbrev "TX", - :zip "77488"} - {:lat 33.7677247, - :lon -102.5037282, - :house-number "3600-3680", - :street "Lincoln", - :city "Levelland", - :state-abbrev "TX", - :zip "79336"} - {:lat 35.08888, - :lon -76.727883, - :house-number "373", - :street "Hidden Lane", - :city "Oriental", - :state-abbrev "NC", - :zip "28571"} - {:lat 46.4195137, - :lon -104.9640139, - :house-number "10241", - :street "U.S. 12", - :city "Ismay", - :state-abbrev "MT", - :zip "59336"} - {:lat 34.6336409, - :lon -86.0458366, - :house-number "2912", - :street "South Broad Street", - :city "Scottsboro", - :state-abbrev "AL", - :zip "35769"} - {:lat 41.0274016, - :lon -84.45712999999999, - :house-number "3000-3914", - :street "Road 151", - :city "Grover Hill", - :state-abbrev "OH", - :zip "45849"} - {:lat 41.309987, - :lon -93.62380399999999, - :house-number "9591", - :street "Nevada Street", - :city "Indianola", - :state-abbrev "IA", - :zip "50125"} - {:lat 42.6289348, - :lon -105.6969712, - :house-number "1981-2039", - :street "Spring Canyon Road", - :city "Douglas", - :state-abbrev "WY", - :zip "82633"} - {:lat 34.971496, - :lon -81.42881500000001, - :house-number "1362", - :street "Smith Woods Lane", - :city "Hickory Grove", - :state-abbrev "SC", - :zip "29717"} - {:lat 33.9081019, - :lon -100.9112754, - :house-number "272", - :street "Farm to Market 684", - :city "Roaring Springs", - :state-abbrev "TX", - :zip "79256"} - {:lat 35.36040130000001, - :lon -99.5277927, - :house-number "19471", - :street "East 1130 Road", - :city "Elk City", - :state-abbrev "OK", - :zip "73644"} - {:lat 41.039817, - :lon -93.72575499999999, - :house-number "2525", - :street "Kansas Street", - :city "Osceola", - :state-abbrev "IA", - :zip "50213"} - {:lat 31.2833428, - :lon -97.9102321, - :house-number "7957-7959", - :street "County Road 142", - :city "Gatesville", - :state-abbrev "TX", - :zip "76528"} - {:lat 33.9034747, - :lon -85.63498729999999, - :house-number "137-173", - :street "Pleasant Acres Trail", - :city "Piedmont", - :state-abbrev "AL", - :zip "36272"} - {:lat 35.733558, - :lon -117.9168199, - :house-number "3550", - :street "Grapevine Canyon Road", - :city "Inyokern", - :state-abbrev "CA", - :zip "93527"} - {:lat 44.095176, - :lon -88.237015, - :house-number "N5705", - :street "Vans Road", - :city "Hilbert", - :state-abbrev "WI", - :zip "54129"} - {:lat 39.7562657, - :lon -91.8451163, - :house-number "5201-5599", - :street "County Road 203", - :city "Hunnewell", - :state-abbrev "MO", - :zip "63443"} - {:lat 45.3314532, - :lon -117.96356, - :house-number "62000", - :street "Peach Road", - :city "La Grande", - :state-abbrev "OR", - :zip "97850"} - {:lat 42.4185731, - :lon -114.5851842, - :house-number "2331-2399", - :street "East 2900 North Road", - :city "Twin Falls", - :state-abbrev "ID", - :zip "83301"} - {:lat 43.1830975, - :lon -90.59240489999999, - :house-number "3444", - :street "Wisconsin 133", - :city "Blue River", - :state-abbrev "WI", - :zip "53518"} - {:lat 44.70918169999999, - :lon -95.3287785, - :house-number "77597", - :street "180th Street", - :city "Sacred Heart", - :state-abbrev "MN", - :zip "56285"} - {:lat 42.032549, - :lon -93.557581, - :house-number "4098", - :street "East 13th Street", - :city "Ames", - :state-abbrev "IA", - :zip "50010"} - {:lat 36.805957, - :lon -81.83017, - :house-number "30528", - :street "Old Saltworks Road", - :city "Meadowview", - :state-abbrev "VA", - :zip "24361"} - {:lat 34.7528691, - :lon -104.0238617, - :house-number "3401-3499", - :street "Q R Bh", - :city "McAlister", - :state-abbrev "NM", - :zip "88427"} - {:lat 42.3705256, - :lon -89.59859569999999, - :house-number "715", - :street "East Cedarville Road", - :city "Freeport", - :state-abbrev "IL", - :zip "61032"} - {:lat 44.3222966, - :lon -73.87596239999999, - :house-number "86", - :street "Nye Way", - :city "Wilmington", - :state-abbrev "NY", - :zip "12997"} - {:lat 56.29361249999999, - :lon -158.4068215, - :house-number "100", - :street "Old Cemetery Road", - :city "Chignik", - :state-abbrev "AK", - :zip "99564"} - {:lat 30.423704, - :lon -84.620513, - :house-number "2755", - :street "Cooks Landing Road", - :city "Quincy", - :state-abbrev "FL", - :zip "32351"} - {:lat 37.7368487, - :lon -83.0194695, - :house-number "663", - :street "Rockhouse Fork Road", - :city "Salyersville", - :state-abbrev "KY", - :zip "41465"} - {:lat 37.3628592, - :lon -82.338476, - :house-number "853", - :street "Abner Fork Road", - :city "Belcher", - :state-abbrev "KY", - :zip "41513"} - {:lat 44.8127198, - :lon -71.7810014, - :house-number "2154", - :street "McConnell Pond Road", - :city "Brighton", - :state-abbrev "VT", - :zip "05846"} - {:lat 42.7464915, - :lon -111.3920411, - :house-number "2101-2105", - :street "Slug Creek Road", - :city "Soda Springs", - :state-abbrev "ID", - :zip "83276"} - {:lat 45.5646244, - :lon -103.3030519, - :house-number "15002", - :street "Sd Highway 20", - :city "Reva", - :state-abbrev "SD", - :zip "57651"} - {:lat 38.3596886, - :lon -89.16878779999999, - :house-number "28000-28998", - :street "Hawaii Road", - :city "Ashley", - :state-abbrev "IL", - :zip "62808"} - {:lat 48.310733, - :lon -98.1306968, - :house-number "11501-11599", - :street "62nd Street Northeast", - :city "Adams", - :state-abbrev "ND", - :zip "58210"} - {:lat 34.8671568, - :lon -91.2059261, - :house-number "2002", - :street "U.S. 70", - :city "Brinkley", - :state-abbrev "AR", - :zip "72021"} - {:lat 39.9103911, - :lon -88.6523891, - :house-number "877", - :street "North 400 East Road", - :city "Milmine", - :state-abbrev "IL", - :zip "61855"} - {:lat 37.4425531, - :lon -94.65083899999999, - :house-number "575", - :street "South 250th Street", - :city "Pittsburg", - :state-abbrev "KS", - :zip "66762"} - {:lat 29.6211343, - :lon -82.90534199999999, - :house-number "5600-5698", - :street "Southwest 80th Street", - :city "Trenton", - :state-abbrev "FL", - :zip "32693"} - {:lat 46.6652679, - :lon -95.74012429999999, - :house-number "36087", - :street "South Rose Lake Road", - :city "Frazee", - :state-abbrev "MN", - :zip "56544"} - {:lat 43.3991513, - :lon -123.4633928, - :house-number "664", - :street "Hidden Meadows Lane", - :city "Oakland", - :state-abbrev "OR", - :zip "97462"} - {:lat 41.1820329, - :lon -87.72453, - :house-number "4036", - :street "North 8000 Road East", - :city "Bourbonnais", - :state-abbrev "IL", - :zip "60914"} - {:lat 39.355042, - :lon -91.09216579999999, - :house-number "15674", - :street "Highway Nn", - :city "Bowling Green", - :state-abbrev "MO", - :zip "63334"} - {:lat 36.9549673, - :lon -94.382311, - :house-number "7963", - :street "Lime Kiln Drive", - :city "Neosho", - :state-abbrev "MO", - :zip "64850"} - {:lat 36.5818107, - :lon -97.6177824, - :house-number "17502", - :street "East Blaine Road", - :city "Hunter", - :state-abbrev "OK", - :zip "74640"} - {:lat 32.4850005, - :lon -84.9905705, - :house-number "2205", - :street "2nd Avenue", - :city "Columbus", - :state-abbrev "GA", - :zip "31901"} - {:lat 33.4358134, - :lon -111.5525506, - :house-number "2200-2398", - :street "North Monterey Drive", - :city "Apache Junction", - :state-abbrev "AZ", - :zip "85120"} - {:lat 31.7535979, - :lon -109.431262, - :house-number "4002-4442", - :street "North Rucker Canyon Road", - :city "Elfrida", - :state-abbrev "AZ", - :zip "85610"} - {:lat 37.38131, - :lon -81.027579, - :house-number "114", - :street "Heart Lane", - :city "Princeton", - :state-abbrev "WV", - :zip "24739"} - {:lat 35.913898, - :lon -96.24968299999999, - :house-number "22978", - :street "E0760 Road", - :city "Kellyville", - :state-abbrev "OK", - :zip "74039"} - {:lat 40.033215, - :lon -104.4943459, - :house-number "2017", - :street "County Road 61", - :city "Keenesburg", - :state-abbrev "CO", - :zip "80643"} - {:lat 46.5015639, - :lon -112.1556568, - :house-number "120", - :street "North Fork Travis Creek Road", - :city "Clancy", - :state-abbrev "MT", - :zip "59634"} - {:lat 41.9220929, - :lon -104.0422838, - :house-number "20101-20161", - :street "Lagoon Road", - :city "Lyman", - :state-abbrev "NE", - :zip "69352"} - {:lat 37.0953898, - :lon -94.5471912, - :house-number "335", - :street "North Oak Avenue", - :city "Joplin", - :state-abbrev "MO", - :zip "64801"} - {:lat 33.8428536, - :lon -83.5384707, - :house-number "1241", - :street "Deer Trail", - :city "Bishop", - :state-abbrev "GA", - :zip "30621"} - {:lat 41.28943, - :lon -95.9103964, - :house-number "1414", - :street "Holiday Drive", - :city "Carter Lake", - :state-abbrev "IA", - :zip "51510"} - {:lat 34.1736976, - :lon -102.0168707, - :house-number "400-498", - :street "County Road 100", - :city "Plainview", - :state-abbrev "TX", - :zip "79072"} - {:lat 34.0200917, - :lon -95.04516249999999, - :house-number "1062", - :street "Kamrin Lane", - :city "Valliant", - :state-abbrev "OK", - :zip "74764"} - {:lat 42.92598, - :lon -72.679993, - :house-number "51", - :street "Williams Road", - :city "Newfane", - :state-abbrev "VT", - :zip "05345"} - {:lat 42.47665809999999, - :lon -71.2881029, - :house-number "162", - :street "Hartwell Road", - :city "Bedford", - :state-abbrev "MA", - :zip "01730"} - {:lat 42.4035075, - :lon -95.322609, - :house-number "2600-2698", - :street "Buchanan Avenue", - :city "Arthur", - :state-abbrev "IA", - :zip "51431"} - {:lat 28.1689285, - :lon -97.3016821, - :house-number "291", - :street "Boenig Road", - :city "Woodsboro", - :state-abbrev "TX", - :zip "78393"} - {:lat 42.825532, - :lon -72.11195359999999, - :house-number "69", - :street "Bixler Way", - :city "Jaffrey", - :state-abbrev "NH", - :zip "03452"} - {:lat 40.8992791, - :lon -90.3845278, - :house-number "1200-1250", - :street "Knox Road 300 East", - :city "Galesburg", - :state-abbrev "IL", - :zip "61401"} - {:lat 39.5794897, - :lon -84.79183789999999, - :house-number "9699", - :street "Kingrey Road", - :city "College Corner", - :state-abbrev "OH", - :zip "45003"} - {:lat 42.2946106, - :lon -99.07741209999999, - :house-number "46630", - :street "Benton Road", - :city "Atkinson", - :state-abbrev "NE", - :zip "68713"} - {:lat 41.008449, - :lon -81.4391969, - :house-number "2261", - :street "Wilson Drive", - :city "Akron", - :state-abbrev "OH", - :zip "44312"} - {:lat 33.7699665, - :lon -102.0486106, - :house-number "10302", - :street "County Road 430", - :city "Shallowater", - :state-abbrev "TX", - :zip "79363"} - {:lat 35.4492892, - :lon -99.4039615, - :house-number "10819", - :street "North 2010 Road", - :city "Elk City", - :state-abbrev "OK", - :zip "73644"} - {:lat 34.7891876, - :lon -80.901853, - :house-number "253-265", - :street "Landsford Road", - :city "Catawba", - :state-abbrev "SC", - :zip "29704"} - {:lat 45.21800390000001, - :lon -109.636886, - :house-number "1336", - :street "East Rosebud Road", - :city "Roscoe", - :state-abbrev "MT", - :zip "59071"} - {:lat 47.2702694, - :lon -100.6429055, - :house-number "42000", - :street "93rd Street Northeast", - :city "Regan", - :state-abbrev "ND", - :zip "58477"} - {:lat 46.7179037, - :lon -98.71281859999999, - :house-number "4801", - :street "83rd Avenue Southeast", - :city "Jamestown", - :state-abbrev "ND", - :zip "58401"} - {:lat 44.7383867, - :lon -94.2279976, - :house-number "11843", - :street "U.S. 212", - :city "Glencoe", - :state-abbrev "MN", - :zip "55336"} - {:lat 32.381986, - :lon -80.818321, - :house-number "121", - :street "Okatie Highway", - :city "Okatie", - :state-abbrev "SC", - :zip "29909"} - {:lat 43.771336, - :lon -72.670929, - :house-number "990", - :street "Mount Hunger Road", - :city "Bethel", - :state-abbrev "VT", - :zip "05032"} - {:lat 36.7586199, - :lon -85.1600334, - :house-number "276", - :street "State Highway 639", - :city "Albany", - :state-abbrev "KY", - :zip "42602"} - {:lat 35.4245949, - :lon -114.066813, - :house-number "823", - :street "West Travertine Way", - :city "Kingman", - :state-abbrev "AZ", - :zip "86409"} - {:lat 47.7894416, - :lon -99.995941, - :house-number "2700-2756", - :street "26th Street Northeast", - :city "Harvey", - :state-abbrev "ND", - :zip "58341"} - {:lat 39.4792955, - :lon -84.604654, - :house-number "1130-1390", - :street "West Taylor School Road", - :city "Hamilton", - :state-abbrev "OH", - :zip "45013"} - {:lat 32.6084958, - :lon -88.8978935, - :house-number "1096", - :street "Zion-Hampton Road", - :city "Collinsville", - :state-abbrev "MS", - :zip "39325"} - {:lat 42.38492400000001, - :lon -78.623586, - :house-number "5668", - :street "Town Line Road", - :city "West Valley", - :state-abbrev "NY", - :zip "14171"} - {:lat 44.0669826, - :lon -84.9218827, - :house-number "3560", - :street "Hamilton Road", - :city "Harrison", - :state-abbrev "MI", - :zip "48625"} - {:lat 38.9333055, - :lon -122.3335392, - :house-number "1460", - :street "California 16", - :city "Rumsey", - :state-abbrev "CA", - :zip "95679"} - {:lat 33.1813114, - :lon -94.57768589999999, - :house-number "724", - :street "County Road 2729", - :city "Marietta", - :state-abbrev "TX", - :zip "75566"} - {:lat 33.1996278, - :lon -80.44645919999999, - :house-number "207", - :street "South Railroad Avenue", - :city "Harleyville", - :state-abbrev "SC", - :zip "29448"} - {:lat 35.2066964, - :lon -101.744087, - :house-number "80", - :street "North Lakeside Drive", - :city "Amarillo", - :state-abbrev "TX", - :zip "79118"} - {:lat 44.1963215, - :lon -91.0606095, - :house-number "N3466", - :street "County Road H", - :city "Melrose", - :state-abbrev "WI", - :zip "54642"} - {:lat 41.5529653, - :lon -96.790846, - :house-number "687", - :street "County Road North", - :city "North Bend", - :state-abbrev "NE", - :zip "68649"} - {:lat 40.257934, - :lon -86.02649799999999, - :house-number "685", - :street "West 300 South", - :city "Tipton", - :state-abbrev "IN", - :zip "46072"} - {:lat 30.2058241, - :lon -97.8450228, - :house-number "8102-8104", - :street "Cattle Drive", - :city "Austin", - :state-abbrev "TX", - :zip "78749"} - {:lat 46.1292154, - :lon -95.7333798, - :house-number "35579", - :street "Rabbit Trail", - :city "Ashby", - :state-abbrev "MN", - :zip "56309"} - {:lat 43.319641, - :lon -74.006387, - :house-number "136", - :street "Hadley Hill Road", - :city "Hadley", - :state-abbrev "NY", - :zip "12835"} - {:lat 39.1319872, - :lon -104.4751631, - :house-number "10245", - :street "County Road 74-82", - :city "Peyton", - :state-abbrev "CO", - :zip "80831"} - {:lat 33.5267934, - :lon -86.72717759999999, - :house-number "1522", - :street "Cooper Hill Road", - :city "Birmingham", - :state-abbrev "AL", - :zip "35213"} - {:lat 31.915528, - :lon -97.7665016, - :house-number "2202", - :street "County Road 2130", - :city "Meridian", - :state-abbrev "TX", - :zip "76665"} - {:lat 34.3029723, - :lon -83.40866749999999, - :house-number "373-605", - :street "Georgia 63", - :city "Commerce", - :state-abbrev "GA", - :zip "30529"} - {:lat 37.0660571, - :lon -85.4978884, - :house-number "3542", - :street "Weed-Keltner Road", - :city "Columbia", - :state-abbrev "KY", - :zip "42728"} - {:lat 32.7374535, - :lon -87.1227475, - :house-number "85", - :street "Melton Lane", - :city "Marion", - :state-abbrev "AL", - :zip "36756"} - {:lat 38.3851647, - :lon -78.66171489999999, - :house-number "3675", - :street "Captain Yancey Road", - :city "Elkton", - :state-abbrev "VA", - :zip "22827"} - {:lat 33.1817593, - :lon -102.3888367, - :house-number "1200-1298", - :street "U.S. 380", - :city "Brownfield", - :state-abbrev "TX", - :zip "79316"} - {:lat 42.397973, - :lon -76.48916299999999, - :house-number "155", - :street "Compton Road", - :city "Ithaca", - :state-abbrev "NY", - :zip "14850"} - {:lat 47.74579550000001, - :lon -99.7179276, - :house-number "4001-4045", - :street "23rd Street Northeast", - :city "Harvey", - :state-abbrev "ND", - :zip "58341"} - {:lat 44.5367713, - :lon -88.08122159999999, - :house-number "1973-2050", - :street "Badgerland Drive", - :city "Howard", - :state-abbrev "WI", - :zip "54303"} - {:lat 43.3550494, - :lon -96.1572429, - :house-number "2043", - :street "Harrison Avenue", - :city "Rock Rapids", - :state-abbrev "IA", - :zip "51246"} - {:lat 31.595307, - :lon -97.432699, - :house-number "431", - :street "Mitchell Road", - :city "Valley Mills", - :state-abbrev "TX", - :zip "76689"} - {:lat 37.93648779999999, - :lon -77.8726105, - :house-number "8306", - :street "Jefferson Highway", - :city "Mineral", - :state-abbrev "VA", - :zip "23117"} - {:lat 37.3307973, - :lon -92.9157834, - :house-number "725", - :street "Woodlawn Street", - :city "Marshfield", - :state-abbrev "MO", - :zip "65706"} - {:lat 34.940116, - :lon -86.3316839, - :house-number "1800-1866", - :street "Upper Hurricane Creek Road", - :city "New Market", - :state-abbrev "AL", - :zip "35761"} - {:lat 44.1185313, - :lon -104.1529969, - :house-number "204", - :street "Pzinski Road", - :city "Newcastle", - :state-abbrev "WY", - :zip "82701"} - {:lat 35.898018, - :lon -88.3840419, - :house-number "510", - :street "Pate Road", - :city "Huntingdon", - :state-abbrev "TN", - :zip "38344"} - {:lat 47.599644, - :lon -120.151576, - :house-number "325", - :street "Stephanie Place", - :city "East Wenatchee", - :state-abbrev "WA", - :zip "98802"} - {:lat 45.06441909999999, - :lon -102.7382086, - :house-number "16154", - :street "Cedar Canyon Road", - :city "Faith", - :state-abbrev "SD", - :zip "57626"} - {:lat 31.546573, - :lon -99.009337, - :house-number "13500", - :street "County Road 226", - :city "Brownwood", - :state-abbrev "TX", - :zip "76801"} - {:lat 45.1370999, - :lon -112.956676, - :house-number "7100", - :street "Cold Spring Creek", - :city "Dillon", - :state-abbrev "MT", - :zip "59725"} - {:lat 31.8204453, - :lon -88.8549158, - :house-number "321-403", - :street "Sugar Hill Road", - :city "Shubuta", - :state-abbrev "MS", - :zip "39360"} - {:lat 44.4201989, - :lon -75.811244, - :house-number "1", - :street "Rabbit Island", - :city "Hammond", - :state-abbrev "NY", - :zip "13646"} - {:lat 47.6184896, - :lon -99.2657671, - :house-number "1400-1455", - :street "60th Avenue Northeast", - :city "Cathay", - :state-abbrev "ND", - :zip "58422"} - {:lat 37.2894401, - :lon -84.6981654, - :house-number "4840", - :street "Highway 328", - :city "Eubank", - :state-abbrev "KY", - :zip "42567"} - {:lat 46.771161, - :lon -94.447676, - :house-number "988", - :street "32nd Avenue Southwest", - :city "Backus", - :state-abbrev "MN", - :zip "56435"} - {:lat 43.7059915, - :lon -85.0254995, - :house-number "4614", - :street "North Rolland Road", - :city "Lake", - :state-abbrev "MI", - :zip "48632"} - {:lat 42.4106353, - :lon -102.860152, - :house-number "341", - :street "County Road 59", - :city "Alliance", - :state-abbrev "NE", - :zip "69301"} - {:lat 41.911865, - :lon -72.57235899999999, - :house-number "6", - :street "Mahoney Road", - :city "East Windsor", - :state-abbrev "CT", - :zip "06088"} - {:lat 30.8575926, - :lon -82.0110196, - :house-number "6017", - :street "U.S. 23", - :city "Folkston", - :state-abbrev "GA", - :zip "31537"} - {:lat 48.0111459, - :lon -111.0643719, - :house-number "2129-2679", - :street "Beaverslide Road", - :city "Carter", - :state-abbrev "MT", - :zip "59420"} - {:lat 32.374085, - :lon -97.916224, - :house-number "1121", - :street "Tolar Cemetery Road", - :city "Tolar", - :state-abbrev "TX", - :zip "76476"} - {:lat 41.45168719999999, - :lon -74.938189, - :house-number "200", - :street "German Hill Road", - :city "Shohola", - :state-abbrev "PA", - :zip "18458"} - {:lat 37.933424, - :lon -77.692847, - :house-number "17211", - :street "Tyler Station Road", - :city "Beaverdam", - :state-abbrev "VA", - :zip "23015"} - {:lat 39.010799, - :lon -86.80838299999999, - :house-number "822", - :street "South Coalmine Road", - :city "Bloomfield", - :state-abbrev "IN", - :zip "47424"} - {:lat 39.1563599, - :lon -121.1958697, - :house-number "14272-14502", - :street "Oak Meadow Road", - :city "Penn Valley", - :state-abbrev "CA", - :zip "95946"} - {:lat 32.668459, - :lon -85.596316, - :house-number "10551", - :street "County Road 188", - :city "Waverly", - :state-abbrev "AL", - :zip "36879"} - {:lat 44.986337, - :lon -92.239795, - :house-number "898", - :street "280th Street", - :city "Woodville", - :state-abbrev "WI", - :zip "54028"} - {:lat 43.4996263, - :lon -93.4964936, - :house-number "101-127", - :street "510th Street", - :city "Emmons", - :state-abbrev "MN", - :zip "56029"} - {:lat 35.0676406, - :lon -89.23785559999999, - :house-number "13245", - :street "Lagrange Road", - :city "Grand Junction", - :state-abbrev "TN", - :zip "38039"} - {:lat 33.27755, - :lon -85.9522191, - :house-number "47450", - :street "Alabama 77", - :city "Ashland", - :state-abbrev "AL", - :zip "36251"} - {:lat 39.5205902, - :lon -97.4111349, - :house-number "2750", - :street "Oat Road", - :city "Clyde", - :state-abbrev "KS", - :zip "66938"} - {:lat 30.3817592, - :lon -81.7560161, - :house-number "6854", - :street "Barney Road", - :city "Jacksonville", - :state-abbrev "FL", - :zip "32219"} - {:lat 31.2096126, - :lon -83.60047139999999, - :house-number "800-1110", - :street "Cool Springs Ellenton Road", - :city "Norman Park", - :state-abbrev "GA", - :zip "31771"} - {:lat 37.3628348, - :lon -89.7859974, - :house-number "569-799", - :street "Flint Lane", - :city "Burfordville", - :state-abbrev "MO", - :zip "63739"} - {:lat 44.2172864, - :lon -97.67311819999999, - :house-number "21801-21853", - :street "427th Avenue", - :city "Carthage", - :state-abbrev "SD", - :zip "57323"} - {:lat 33.723889, - :lon -84.0870659, - :house-number "7376", - :street "Union Grove Road", - :city "Lithonia", - :state-abbrev "GA", - :zip "30058"} - {:lat 32.779774, - :lon -92.9706936, - :house-number "1076", - :street "Featherston Road", - :city "Homer", - :state-abbrev "LA", - :zip "71040"} - {:lat 42.494867, - :lon -94.29595499999999, - :house-number "2047", - :street "Hayes Avenue", - :city "Fort Dodge", - :state-abbrev "IA", - :zip "50501"} - {:lat 43.1190903, - :lon -104.0590245, - :house-number "1832", - :street "Boner Road", - :city "Lusk", - :state-abbrev "WY", - :zip "82225"} - {:lat 39.072423, - :lon -94.83926, - :house-number "831", - :street "Lake Forest Drive", - :city "Bonner Springs", - :state-abbrev "KS", - :zip "66012"} - {:lat 36.597885, - :lon -78.63736670000002, - :house-number "6693", - :street "Virginia 49", - :city "Buffalo Junction", - :state-abbrev "VA", - :zip "24529"} - {:lat 46.4311829, - :lon -96.3830335, - :house-number "104", - :street "3rd Street Southwest", - :city "Rothsay", - :state-abbrev "MN", - :zip "56579"} - {:lat 40.7806966, - :lon -98.859955, - :house-number "10850", - :street "Gibbon Road", - :city "Gibbon", - :state-abbrev "NE", - :zip "68840"} - {:lat 36.8577857, - :lon -91.7594467, - :house-number "5322", - :street "County Road 2910", - :city "West Plains", - :state-abbrev "MO", - :zip "65775"} - {:lat 61.3830338, - :lon -145.2370339, - :house-number "56", - :street "Richardson Highway", - :city "Valdez", - :state-abbrev "AK", - :zip "99686"} - {:lat 45.4817989, - :lon -92.3051541, - :house-number "1846-1898", - :street "70th Street", - :city "Balsam Lake", - :state-abbrev "WI", - :zip "54810"} - {:lat 43.5812792, - :lon -72.2928555, - :house-number "597", - :street "Willow Brook Road", - :city "Plainfield", - :state-abbrev "NH", - :zip "03781"} - {:lat 30.369916, - :lon -98.942877, - :house-number "8216", - :street "U.S. 87", - :city "Fredericksburg", - :state-abbrev "TX", - :zip "78624"} - {:lat 43.7176676, - :lon -106.5450203, - :house-number "452", - :street "Sussex Road", - :city "Kaycee", - :state-abbrev "WY", - :zip "82639"} - {:lat 32.584375, - :lon -80.832729, - :house-number "9", - :street "Pocotaligo Place", - :city "Sheldon", - :state-abbrev "SC", - :zip "29941"} - {:lat 34.6600094, - :lon -79.52102119999999, - :house-number "701-713", - :street "State Road S-35-574", - :city "McColl", - :state-abbrev "SC", - :zip "29570"} - {:lat 40.2823179, - :lon -85.30899099999999, - :house-number "6704", - :street "425 East", - :city "Albany", - :state-abbrev "IN", - :zip "47320"} - {:lat 35.8201988, - :lon -79.0349435, - :house-number "3037", - :street "Jack Bennett Road", - :city "Chapel Hill", - :state-abbrev "NC", - :zip "27517"} - {:lat 32.0763808, - :lon -94.52793040000002, - :house-number "6132", - :street "Texas 315", - :city "Carthage", - :state-abbrev "TX", - :zip "75633"} - {:lat 35.393351, - :lon -78.637328, - :house-number "530", - :street "Oak Valley Farm Road", - :city "Coats", - :state-abbrev "NC", - :zip "27521"} - {:lat 46.4859426, - :lon -97.42375179999999, - :house-number "14300-14396", - :street "64th Street Southeast", - :city "Lisbon", - :state-abbrev "ND", - :zip "58054"} - {:lat 34.970647, - :lon -97.40248799999999, - :house-number "25316", - :street "180th Street", - :city "Purcell", - :state-abbrev "OK", - :zip "73080"} - {:lat 37.8900465, - :lon -120.3031323, - :house-number "26255", - :street "Richards Ranch Road", - :city "Sonora", - :state-abbrev "CA", - :zip "95370"} - {:lat 35.7432525, - :lon -86.59663859999999, - :house-number "805-1005", - :street "North Lane", - :city "Eagleville", - :state-abbrev "TN", - :zip "37060"} - {:lat 45.6515423, - :lon -123.0576768, - :house-number "18717", - :street "Northwest Dairy Creek Road", - :city "North Plains", - :state-abbrev "OR", - :zip "97133"} - {:lat 45.2094461, - :lon -94.81758029999999, - :house-number "16511", - :street "Sperry Lake Road", - :city "Atwater", - :state-abbrev "MN", - :zip "56209"} - {:lat 42.9955966, - :lon -92.81076689999999, - :house-number "2461-2499", - :street "Lancer Avenue", - :city "Marble Rock", - :state-abbrev "IA", - :zip "50653"} - {:lat 35.689693, - :lon -101.8942648, - :house-number "69", - :street "Ranch Road 1913", - :city "Channing", - :state-abbrev "TX", - :zip "79018"} - {:lat 30.060675, - :lon -81.66745999999999, - :house-number "2630", - :street "State Road 13", - :city "Fruit Cove", - :state-abbrev "FL", - :zip "32259"} - {:lat 37.91226, - :lon -90.41244999999999, - :house-number "2166", - :street "Fairview Church Road", - :city "Bonne Terre", - :state-abbrev "MO", - :zip "63628"} - {:lat 33.7797056, - :lon -80.85222259999999, - :house-number "358", - :street "Gully Horn Spring Trail", - :city "Saint Matthews", - :state-abbrev "SC", - :zip "29135"} - {:lat 38.5011246, - :lon -91.2857202, - :house-number "8439", - :street "Cedar Fork Road", - :city "New Haven", - :state-abbrev "MO", - :zip "63068"} - {:lat 34.086536, - :lon -85.95671700000001, - :house-number "4931", - :street "Lay Springs Road", - :city "Gadsden", - :state-abbrev "AL", - :zip "35904"} - {:lat 43.5288653, - :lon -92.935665, - :house-number "55501-55999", - :street "120 Street", - :city "Lyle", - :state-abbrev "MN", - :zip "55953"} - {:lat 39.1469534, - :lon -79.6904362, - :house-number "3635", - :street "Cheat Valley Highway", - :city "Parsons", - :state-abbrev "WV", - :zip "26287"} - {:lat 32.1063539, - :lon -92.2867517, - :house-number "787-891", - :street "Busby Road", - :city "Grayson", - :state-abbrev "LA", - :zip "71435"} - {:lat 39.232502, - :lon -121.6801351, - :house-number "3501-3629", - :street "Clark Road", - :city "Live Oak", - :state-abbrev "CA", - :zip "95953"} - {:lat 42.79668, - :lon -83.64693799999999, - :house-number "16073", - :street "Fish Lake Road", - :city "Holly", - :state-abbrev "MI", - :zip "48442"} - {:lat 46.93550270000001, - :lon -99.8257677, - :house-number "3300-3348", - :street "30th Avenue Southeast", - :city "Steele", - :state-abbrev "ND", - :zip "58482"} - {:lat 36.442696, - :lon -119.48305, - :house-number "35909", - :street "California 99", - :city "Kingsburg", - :state-abbrev "CA", - :zip "93631"} - {:lat 47.2240303, - :lon -100.3681224, - :house-number "37000-38298", - :street "262nd Street Northeast", - :city "Wing", - :state-abbrev "ND", - :zip "58494"} - {:lat 29.788228, - :lon -82.588786, - :house-number "14517", - :street "Northwest 232 Street", - :city "High Springs", - :state-abbrev "FL", - :zip "32643"} - {:lat 39.0523873, - :lon -123.4662723, - :house-number "18885", - :street "Philo Greenwood Road", - :city "Philo", - :state-abbrev "CA", - :zip "95466"} - {:lat 46.2231529, - :lon -106.0468284, - :house-number "1305", - :street "Moon Creek Road", - :city "Miles City", - :state-abbrev "MT", - :zip "59301"} - {:lat 33.3027656, - :lon -98.2232921, - :house-number "2472", - :street "Farm to Market Road 2190", - :city "Jacksboro", - :state-abbrev "TX", - :zip "76458"} - {:lat 42.0080615, - :lon -94.21360109999999, - :house-number "2200-2298", - :street "240th Street", - :city "Rippey", - :state-abbrev "IA", - :zip "50235"} - {:lat 30.1970222, - :lon -96.5706678, - :house-number "1265", - :street "Fm 1948 Road North", - :city "Burton", - :state-abbrev "TX", - :zip "77835"} - {:lat 34.6143871, - :lon -98.4092043, - :house-number "501-547", - :street "Northwest 14th Street", - :city "Lawton", - :state-abbrev "OK", - :zip "73507"} - {:lat 48.465387, - :lon -121.565696, - :house-number "54250", - :street "Rockport Cascade Road", - :city "Rockport", - :state-abbrev "WA", - :zip "98283"} - {:lat 41.676573, - :lon -73.828575, - :house-number "805", - :street "Freedom Plains Road", - :city "Poughkeepsie", - :state-abbrev "NY", - :zip "12603"} - {:lat 44.4809454, - :lon -93.6564215, - :house-number "32000-32486", - :street "195th Avenue", - :city "New Prague", - :state-abbrev "MN", - :zip "56071"} - {:lat 43.5590131, - :lon -116.7139159, - :house-number "16168-16246", - :street "Lake Shore Drive", - :city "Caldwell", - :state-abbrev "ID", - :zip "83607"} - {:lat 41.79876890000001, - :lon -81.0127329, - :house-number "7601-7699", - :street "North Ridge Road", - :city "Madison", - :state-abbrev "OH", - :zip "44057"} - {:lat 35.849231, - :lon -78.420177, - :house-number "120", - :street "Winchester Drive", - :city "Wendell", - :state-abbrev "NC", - :zip "27591"} - {:lat 45.9615434, - :lon -95.1162006, - :house-number "22762-23198", - :street "County Road 85", - :city "Osakis", - :state-abbrev "MN", - :zip "56360"} - {:lat 38.7638433, - :lon -122.832752, - :house-number "8770", - :street "Geysers Road", - :city "Geyserville", - :state-abbrev "CA", - :zip "95441"} - {:lat 48.4035234, - :lon -102.9192083, - :house-number "10389", - :street "68th Street Northwest", - :city "Tioga", - :state-abbrev "ND", - :zip "58852"} - {:lat 47.9751825, - :lon -114.1757164, - :house-number "740", - :street "Lutheran Camp Road", - :city "Lakeside", - :state-abbrev "MT", - :zip "59922"} - {:lat 40.9201276, - :lon -92.4560922, - :house-number "15164-15254", - :street "25th Street", - :city "Bloomfield", - :state-abbrev "IA", - :zip "52537"} - {:lat 41.5910944, - :lon -92.3653186, - :house-number "4852-4888", - :street "215th Street", - :city "Deep River", - :state-abbrev "IA", - :zip "52222"} - {:lat 30.404479, - :lon -84.992762, - :house-number "9893", - :street "Northwest 1st Street", - :city "Bristol", - :state-abbrev "FL", - :zip "32321"} - {:lat 40.54611269999999, - :lon -78.578299, - :house-number "232-486", - :street "Bottom Road", - :city "Ashville", - :state-abbrev "PA", - :zip "16613"} - {:lat 41.6681975, - :lon -85.9240149, - :house-number "56901-56999", - :street "Wynridge Circle", - :city "Elkhart", - :state-abbrev "IN", - :zip "46516"} - {:lat 29.88653279999999, - :lon -98.2046063, - :house-number "15288-15770", - :street "Farm to Market Road 306", - :city "Canyon Lake", - :state-abbrev "TX", - :zip "78133"} - {:lat 33.051018, - :lon -80.42415299999999, - :house-number "381", - :street "Cardinal Lane", - :city "Cottageville", - :state-abbrev "SC", - :zip "29435"} - {:lat 35.91618400000001, - :lon -94.035088, - :house-number "12678", - :street "South Whitehouse Road", - :city "Fayetteville", - :state-abbrev "AR", - :zip "72701"} - {:lat 37.494411, - :lon -76.932346, - :house-number "13901", - :street "Mountain Laurel Grove", - :city "Lanexa", - :state-abbrev "VA", - :zip "23089"} - {:lat 37.1418162, - :lon -120.4488007, - :house-number "2331", - :street "East Roosevelt Road", - :city "Merced", - :state-abbrev "CA", - :zip "95341"} - {:lat 44.6405197, - :lon -100.3246272, - :house-number "18959", - :street "291st Avenue", - :city "Pierre", - :state-abbrev "SD", - :zip "57501"} - {:lat 47.6043511, - :lon -110.8961427, - :house-number "2086-2186", - :street "Shepherd Crossing Road", - :city "Highwood", - :state-abbrev "MT", - :zip "59450"} - {:lat 48.8363749, - :lon -119.5416849, - :house-number "42", - :street "Offwhite Rock Road", - :city "Tonasket", - :state-abbrev "WA", - :zip "98855"} - {:lat 37.8920912, - :lon -83.46088739999999, - :house-number "210", - :street "Harrold Rose Road", - :city "Ezel", - :state-abbrev "KY", - :zip "41425"} - {:lat 46.1943079, - :lon -94.9694342, - :house-number "18280-18998", - :street "County Road 22", - :city "Clarissa", - :state-abbrev "MN", - :zip "56440"} - {:lat 33.1185029, - :lon -94.954814, - :house-number "1B", - :street "Southeast", - :city "Mount Pleasant", - :state-abbrev "TX", - :zip "75455"} - {:lat 35.54464189999999, - :lon -92.3177146, - :house-number "1352", - :street "Clella Circle", - :city "Bee Branch", - :state-abbrev "AR", - :zip "72013"} - {:lat 30.5741978, - :lon -90.2788624, - :house-number "27004", - :street "Teeney Weeney Lane", - :city "Folsom", - :state-abbrev "LA", - :zip "70437"} - {:lat 43.4391224, - :lon -118.5573503, - :house-number "65053", - :street "Crane Buchanan Road", - :city "Burns", - :state-abbrev "OR", - :zip "97720"} - {:lat 45.9334388, - :lon -95.5630416, - :house-number "12035-12483", - :street "39th Avenue Northwest", - :city "Garfield", - :state-abbrev "MN", - :zip "56332"} - {:lat 35.5732073, - :lon -79.3498272, - :house-number "1000-1398", - :street "Roberts Chapel Road", - :city "Goldston", - :state-abbrev "NC", - :zip "27252"} - {:lat 45.2415995, - :lon -97.8162801, - :house-number "14786", - :street "420th Avenue", - :city "Bristol", - :state-abbrev "SD", - :zip "57219"} - {:lat 30.91589999999999, - :lon -83.3531, - :house-number "4443", - :street "Mathis Mill Road", - :city "Valdosta", - :state-abbrev "GA", - :zip "31602"} - {:lat 37.4452308, - :lon -97.5756004, - :house-number "627", - :street "West 130th Avenue North", - :city "Conway Springs", - :state-abbrev "KS", - :zip "67031"} - {:lat 43.9979139, - :lon -91.20442670000001, - :house-number "W5941", - :street "M Johnson Road", - :city "Holmen", - :state-abbrev "WI", - :zip "54636"} - {:lat 40.6198602, - :lon -101.106952, - :house-number "74384", - :street "Avenue 359", - :city "Hayes Center", - :state-abbrev "NE", - :zip "69032"} - {:lat 46.4128687, - :lon -96.6998875, - :house-number "17701-17799", - :street "69th Street Southeast", - :city "Wahpeton", - :state-abbrev "ND", - :zip "58075"} - {:lat 31.8095954, - :lon -90.04842359999999, - :house-number "795-805", - :street "Shivers Road", - :city "Pinola", - :state-abbrev "MS", - :zip "39149"} - {:lat 31.0174011, - :lon -83.6686545, - :house-number "1301", - :street "Branch Road", - :city "Pavo", - :state-abbrev "GA", - :zip "31778"} - {:lat 62.05103500000001, - :lon -150.721023, - :house-number "50600", - :street "South Oilwell Road", - :city "Willow", - :state-abbrev "AK", - :zip "99688"} - {:lat 39.2767089, - :lon -103.4118139, - :house-number "32372", - :street "County Road 3g", - :city "Genoa", - :state-abbrev "CO", - :zip "80818"} - {:lat 37.1011789, - :lon -77.0112626, - :house-number "6040", - :street "Carsley Road", - :city "Waverly", - :state-abbrev "VA", - :zip "23890"} - {:lat 43.699798, - :lon -71.5391219, - :house-number "115", - :street "East Holderness Road", - :city "Holderness", - :state-abbrev "NH", - :zip "03245"} - {:lat 43.0698422, - :lon -93.67516789999999, - :house-number "2110-2198", - :street "Palm Avenue", - :city "Garner", - :state-abbrev "IA", - :zip "50438"} - {:lat 27.2793536, - :lon -98.32633179999999, - :house-number "1148-1472", - :street "County Road 238", - :city "Concepcion", - :state-abbrev "TX", - :zip "78349"} - {:lat 45.6421455, - :lon -93.67648679999999, - :house-number "6594-6850", - :street "130th Avenue", - :city "Princeton", - :state-abbrev "MN", - :zip "55371"} - {:lat 36.2373819, - :lon -96.18286499999999, - :house-number "4", - :street "Osage Pass", - :city "Sand Springs", - :state-abbrev "OK", - :zip "74063"} - {:lat 40.2783021, - :lon -90.5944555, - :house-number "16000-16498", - :street "County Road 00 North", - :city "Industry", - :state-abbrev "IL", - :zip "61440"} - {:lat 44.1457049, - :lon -91.4179048, - :house-number "W23274", - :street "German Coulee Lane", - :city "Galesville", - :state-abbrev "WI", - :zip "54630"} - {:lat 39.8587032, - :lon -76.1208754, - :house-number "244", - :street "Wesley Road", - :city "Quarryville", - :state-abbrev "PA", - :zip "17566"} - {:lat 43.254214, - :lon -87.97157399999999, - :house-number "4550", - :street "Highland Road", - :city "Thiensville", - :state-abbrev "WI", - :zip "53092"} - {:lat 33.4625962, - :lon -97.20268800000001, - :house-number "2225", - :street "FM 2848", - :city "Valley View", - :state-abbrev "TX", - :zip "76272"} - {:lat 39.906048, - :lon -84.30404, - :house-number "401", - :street "North Main Street", - :city "Englewood", - :state-abbrev "OH", - :zip "45322"} - {:lat 43.7038961, - :lon -89.6077495, - :house-number "3701-3793", - :street "1st Lane", - :city "Oxford", - :state-abbrev "WI", - :zip "53952"} - {:lat 34.8764255, - :lon -79.9231124, - :house-number "815", - :street "Cairo Road", - :city "Morven", - :state-abbrev "NC", - :zip "28119"} - {:lat 46.1814928, - :lon -89.7852925, - :house-number "6945", - :street "County Road P", - :city "Manitowish Waters", - :state-abbrev "WI", - :zip "54545"} - {:lat 48.412799, - :lon -103.836241, - :house-number "6894", - :street "146th Avenue Northwest", - :city "Williston", - :state-abbrev "ND", - :zip "58801"} - {:lat 47.6064546, - :lon -91.6451022, - :house-number "601-685", - :street "US for Service Highway 15", - :city "Isabella", - :state-abbrev "MN", - :zip "55607"} - {:lat 44.0120672, - :lon -83.8757284, - :house-number "1700-1762", - :street "Wyatt Road", - :city "Standish", - :state-abbrev "MI", - :zip "48658"} - {:lat 31.36881, - :lon -94.6864782, - :house-number "9", - :street "Farm to Market 842", - :city "Lufkin", - :state-abbrev "TX", - :zip "75901"} - {:lat 30.8445826, - :lon -84.61763049999999, - :house-number "114", - :street "Pine Street", - :city "Bainbridge", - :state-abbrev "GA", - :zip "39819"} - {:lat 43.200799, - :lon -77.502127, - :house-number "671", - :street "Strand Pond Circle", - :city "Webster", - :state-abbrev "NY", - :zip "14580"} - {:lat 42.755688, - :lon -105.088047, - :house-number "150", - :street "Wintermote Road", - :city "Douglas", - :state-abbrev "WY", - :zip "82633"} - {:lat 46.1078384, - :lon -95.6962695, - :house-number "38045", - :street "County Highway 64", - :city "Ashby", - :state-abbrev "MN", - :zip "56309"} - {:lat 35.499251, - :lon -78.6740839, - :house-number "1220", - :street "Chisenhall Road", - :city "Angier", - :state-abbrev "NC", - :zip "27501"} - {:lat 30.3864414, - :lon -88.69777719999999, - :house-number "5504", - :street "Lighthouse Circle", - :city "Gautier", - :state-abbrev "MS", - :zip "39553"} - {:lat 42.0179096, - :lon -96.80242539999999, - :house-number "1213-1299", - :street "T Road", - :city "Wisner", - :state-abbrev "NE", - :zip "68791"} - {:lat 38.8145304, - :lon -93.7133188, - :house-number "330-422", - :street "Northeast 151 Street", - :city "Warrensburg", - :state-abbrev "MO", - :zip "64093"} - {:lat 31.6480268, - :lon -81.875192, - :house-number "1369", - :street "Beechwood Drive", - :city "Jesup", - :state-abbrev "GA", - :zip "31545"} - {:lat 37.2711474, - :lon -93.6152909, - :house-number "289-499", - :street "Lawrence 1245", - :city "Ash Grove", - :state-abbrev "MO", - :zip "65604"} - {:lat 35.610449, - :lon -88.659165, - :house-number "3864", - :street "Beech Bluff Road", - :city "Beech Bluff", - :state-abbrev "TN", - :zip "38313"} - {:lat 41.6704094, - :lon -75.9024223, - :house-number "604", - :street "Quarry Road", - :city "Springville", - :state-abbrev "PA", - :zip "18844"} - {:lat 35.147371, - :lon -118.869354, - :house-number "2909", - :street "Herring Road", - :city "Arvin", - :state-abbrev "CA", - :zip "93203"} - {:lat 40.8147975, - :lon -73.7218001, - :house-number "448", - :street "East Shore Road", - :city "Kings Point", - :state-abbrev "NY", - :zip "11024"} - {:lat 46.68863899999999, - :lon -91.718226, - :house-number "2078", - :street "South Rudolphs Road", - :city "Maple", - :state-abbrev "WI", - :zip "54854"} - {:lat 42.5379342, - :lon -94.2998509, - :house-number "1700-1776", - :street "175th Street", - :city "Fort Dodge", - :state-abbrev "IA", - :zip "50501"} - {:lat 42.236748, - :lon -79.576594, - :house-number "8053", - :street "Hannum Road", - :city "Mayville", - :state-abbrev "NY", - :zip "14757"} - {:lat 44.1525906, - :lon -103.3311907, - :house-number "6700", - :street "Ridgeview Drive", - :city "Black Hawk", - :state-abbrev "SD", - :zip "57718"} - {:lat 43.7324515, - :lon -90.05891059999999, - :house-number "2622", - :street "County Road K", - :city "Mauston", - :state-abbrev "WI", - :zip "53948"} - {:lat 43.3452106, - :lon -108.5395218, - :house-number "376-586", - :street "North Muddy Road", - :city "Riverton", - :state-abbrev "WY", - :zip "82501"} - {:lat 40.9983, - :lon -96.02075900000001, - :house-number "311", - :street "South 18th Street", - :city "Plattsmouth", - :state-abbrev "NE", - :zip "68048"} - {:lat 37.3743483, - :lon -86.6127781, - :house-number "4623", - :street "Oak Ridge Road", - :city "Morgantown", - :state-abbrev "KY", - :zip "42261"} - {:lat 41.3678818, - :lon -79.4598893, - :house-number "971-1135", - :street "Gowdy Road", - :city "Venus", - :state-abbrev "PA", - :zip "16364"} - {:lat 47.9948865, - :lon -101.7226229, - :house-number "28201-28869", - :street "233rd Avenue Southwest", - :city "Ryder", - :state-abbrev "ND", - :zip "58779"} - {:lat 28.263284, - :lon -82.2049866, - :house-number "7247", - :street "Fort King Road", - :city "Zephyrhills", - :state-abbrev "FL", - :zip "33541"} - {:lat 36.0779349, - :lon -77.813864, - :house-number "9970", - :street "Watson Seed Farm Road", - :city "Whitakers", - :state-abbrev "NC", - :zip "27891"} - {:lat 39.9127209, - :lon -82.4083883, - :house-number "14462-14560", - :street "Township Road 1061", - :city "Thornville", - :state-abbrev "OH", - :zip "43076"} - {:lat 45.0796555, - :lon -122.0547712, - :house-number "59870-61498", - :street "Clackamas Highway", - :city "Estacada", - :state-abbrev "OR", - :zip "97023"} - {:lat 59.83919119999999, - :lon -151.6843778, - :house-number "29675", - :street "Komsolmol Street", - :city "Anchor Point", - :state-abbrev "AK", - :zip "99556"} - {:lat 44.1727998, - :lon -68.69405200000001, - :house-number "3", - :street "Burnt Cove Road", - :city "Stonington", - :state-abbrev "ME", - :zip "04681"} - {:lat 42.981382, - :lon -78.589715, - :house-number "10684", - :street "Main Street", - :city "Clarence", - :state-abbrev "NY", - :zip "14031"} - {:lat 40.3666232, - :lon -96.6132913, - :house-number "16467", - :street "South 82 Road", - :city "Pickrell", - :state-abbrev "NE", - :zip "68422"} - {:lat 37.2269742, - :lon -119.8703536, - :house-number "36728-36798", - :street "Road 606", - :city "Raymond", - :state-abbrev "CA", - :zip "93653"} - {:lat 41.46605, - :lon -100.4432582, - :house-number "198", - :street "County Road 60", - :city "Stapleton", - :state-abbrev "NE", - :zip "69163"} - {:lat 44.3227491, - :lon -90.0942797, - :house-number "7750", - :street "Michalik Lane", - :city "Wisconsin Rapids", - :state-abbrev "WI", - :zip "54495"} - {:lat 48.047291, - :lon -120.37601, - :house-number "25", - :street "Mile Creek Road", - :city "Chelan", - :state-abbrev "WA", - :zip "98816"} - {:lat 37.62904899999999, - :lon -97.736464, - :house-number "3401", - :street "South 343rd Street West", - :city "Cheney", - :state-abbrev "KS", - :zip "67025"} - {:lat 33.5128449, - :lon -97.44727350000001, - :house-number "5477", - :street "County Road 343", - :city "Forestburg", - :state-abbrev "TX", - :zip "76239"} - {:lat 32.6380644, - :lon -83.18637799999999, - :house-number "200", - :street "George Gray Rd", - :city "Danville", - :state-abbrev "GA", - :zip "31017"} - {:lat 35.511519, - :lon -80.68258399999999, - :house-number "6101", - :street "Wright Road", - :city "Kannapolis", - :state-abbrev "NC", - :zip "28081"} - {:lat 40.4097473, - :lon -90.89424960000001, - :house-number "8600", - :street "East 90th Street", - :city "Tennessee", - :state-abbrev "IL", - :zip "62374"} - {:lat 33.4477085, - :lon -80.6425399, - :house-number "175", - :street "Bronze Oak Court", - :city "Bowman", - :state-abbrev "SC", - :zip "29018"} - {:lat 36.5703326, - :lon -88.1879546, - :house-number "3261", - :street "Cherry Corner Road", - :city "Murray", - :state-abbrev "KY", - :zip "42071"} - {:lat 43.1903145, - :lon -74.82838389999999, - :house-number "465", - :street "Jerseyfield Road", - :city "Little Falls", - :state-abbrev "NY", - :zip "13365"} - {:lat 33.3826153, - :lon -117.1752984, - :house-number "395", - :street "Old Highway 395", - :city "Fallbrook", - :state-abbrev "CA", - :zip "92028"} - {:lat 34.0129499, - :lon -81.25298099999999, - :house-number "313", - :street "Newridge Road", - :city "Lexington", - :state-abbrev "SC", - :zip "29072"} - {:lat 34.534264, - :lon -80.3575819, - :house-number "99", - :street "Private Lane", - :city "Bethune", - :state-abbrev "SC", - :zip "29009"} - {:lat 39.9149203, - :lon -76.2466936, - :house-number "384", - :street "Lancaster Pike", - :city "New Providence", - :state-abbrev "PA", - :zip "17560"} - {:lat 44.5399699, - :lon -93.112949, - :house-number "2226", - :street "280th Street West", - :city "Northfield", - :state-abbrev "MN", - :zip "55057"} - {:lat 39.4671914, - :lon -96.5883061, - :house-number "18576-19008", - :street "Long Parkway Road", - :city "Olsburg", - :state-abbrev "KS", - :zip "66520"} - {:lat 39.92080929999999, - :lon -88.70722769999999, - :house-number "850-898", - :street "North 200 East Road", - :city "Cerro Gordo", - :state-abbrev "IL", - :zip "61818"} - {:lat 38.109368, - :lon -120.931083, - :house-number "9414", - :street "Warren Road", - :city "Valley Springs", - :state-abbrev "CA", - :zip "95252"} - {:lat 38.806465, - :lon -97.922608, - :house-number "1801", - :street "South Eff Creek Road", - :city "Brookville", - :state-abbrev "KS", - :zip "67425"} - {:lat 44.1058552, - :lon -89.94022939999999, - :house-number "1003-1075", - :street "County Highway Z", - :city "Arkdale", - :state-abbrev "WI", - :zip "54613"} - {:lat 36.8655304, - :lon -121.4419804, - :house-number "2136-2598", - :street "Wright Road", - :city "Hollister", - :state-abbrev "CA", - :zip "95023"} - {:lat 30.92620659999999, - :lon -93.9435721, - :house-number "766", - :street "County Road 293", - :city "Jasper", - :state-abbrev "TX", - :zip "75951"} - {:lat 34.9475899, - :lon -81.5415228, - :house-number "3057", - :street "State Road S-11-54", - :city "Gaffney", - :state-abbrev "SC", - :zip "29340"} - {:lat 37.1022152, - :lon -96.3491523, - :house-number "1076", - :street "Heritage Road", - :city "Sedan", - :state-abbrev "KS", - :zip "67361"} - {:lat 43.4055569, - :lon -93.6590501, - :house-number "44386", - :street "160th Avenue", - :city "Leland", - :state-abbrev "IA", - :zip "50453"} - {:lat 46.0147823, - :lon -84.0355428, - :house-number "15341-15999", - :street "East North Caribou Lake Road", - :city "De Tour Village", - :state-abbrev "MI", - :zip "49725"} - {:lat 31.9162303, - :lon -98.7254346, - :house-number "801", - :street "County Road 153", - :city "Comanche", - :state-abbrev "TX", - :zip "76442"} - {:lat 40.4061175, - :lon -83.60290359999999, - :house-number "2096-2398", - :street "Hamilton Street", - :city "West Mansfield", - :state-abbrev "OH", - :zip "43358"} - {:lat 33.56305150000001, - :lon -79.94783749999999, - :house-number "1096", - :street "McMillan Road", - :city "Greeleyville", - :state-abbrev "SC", - :zip "29056"} - {:lat 43.1217277, - :lon -91.70698449999999, - :house-number "1543-1583", - :street "U.S. 52", - :city "Castalia", - :state-abbrev "IA", - :zip "52133"} - {:lat 47.1021951, - :lon -118.3224433, - :house-number "1200-1298", - :street "North Benzel Road", - :city "Ritzville", - :state-abbrev "WA", - :zip "99169"} - {:lat 48.8441187, - :lon -105.5076285, - :house-number "481", - :street "French Lane", - :city "Scobey", - :state-abbrev "MT", - :zip "59263"} - {:lat 32.4712106, - :lon -93.7013435, - :house-number "300-1098", - :street "East Preston Avenue", - :city "Shreveport", - :state-abbrev "LA", - :zip "71105"} - {:lat 33.0973029, - :lon -84.2695906, - :house-number "248-298", - :street "East Milner Road", - :city "Zebulon", - :state-abbrev "GA", - :zip "30295"} - {:lat 43.0992814, - :lon -84.7479912, - :house-number "11890", - :street "Fitzpatrick Road", - :city "Fowler", - :state-abbrev "MI", - :zip "48835"} - {:lat 43.16911330000001, - :lon -76.3968835, - :house-number "1585-1593", - :street "West Genesee Road", - :city "Baldwinsville", - :state-abbrev "NY", - :zip "13027"} - {:lat 33.7403946, - :lon -89.64976779999999, - :house-number "735", - :street "Providence Road", - :city "Grenada", - :state-abbrev "MS", - :zip "38901"} - {:lat 36.0559801, - :lon -94.5138154, - :house-number "13683", - :street "Cincinnati Creek Road", - :city "Summers", - :state-abbrev "AR", - :zip "72769"} - {:lat 33.6022302, - :lon -87.9937408, - :house-number "6322-6726", - :street "County Road 49", - :city "Kennedy", - :state-abbrev "AL", - :zip "35574"} - {:lat 29.1215861, - :lon -96.7785579, - :house-number "11434", - :street "State Highway 111 North", - :city "Edna", - :state-abbrev "TX", - :zip "77957"} - {:lat 39.81943580000001, - :lon -88.6510236, - :house-number "151-299", - :street "North 500 East Road", - :city "Hammond", - :state-abbrev "IL", - :zip "61929"} - {:lat 38.4334314, - :lon -102.4183399, - :house-number "11500-11998", - :street "County Road 60", - :city "Sheridan Lake", - :state-abbrev "CO", - :zip "81071"} - {:lat 35.289251, - :lon -77.2919639, - :house-number "585", - :street "Core Creek Landing Road", - :city "Dover", - :state-abbrev "NC", - :zip "28526"} - {:lat 45.8947399, - :lon -104.30428, - :house-number "1131", - :street "Mill Iron Camp Crook Road", - :city "Ekalaka", - :state-abbrev "MT", - :zip "59324"} - {:lat 47.13607529999999, - :lon -105.3248207, - :house-number "640-726", - :street "Road 209", - :city "Terry", - :state-abbrev "MT", - :zip "59349"} - {:lat 29.3509994, - :lon -90.48580489999999, - :house-number "2211", - :street "South Madison Road", - :city "Montegut", - :state-abbrev "LA", - :zip "70377"} - {:lat 38.840185, - :lon -76.679547, - :house-number "801", - :street "Ben Jones Lane", - :city "Lothian", - :state-abbrev "MD", - :zip "20711"} - {:lat 36.068326, - :lon -87.443428, - :house-number "811", - :street "Furnace Hollow Road", - :city "Dickson", - :state-abbrev "TN", - :zip "37055"} - {:lat 44.3350127, - :lon -69.2917356, - :house-number "2383", - :street "Collinstown Road", - :city "Appleton", - :state-abbrev "ME", - :zip "04862"} - {:lat 39.1604578, - :lon -93.84383489999999, - :house-number "16638-16644", - :street "Linwood Lawn Drive", - :city "Lexington", - :state-abbrev "MO", - :zip "64067"} - {:lat 32.4329092, - :lon -90.657001, - :house-number "2307-3099", - :street "Davis Road", - :city "Vicksburg", - :state-abbrev "MS", - :zip "39183"} - {:lat 40.9060745, - :lon -87.415645, - :house-number "6240-6298", - :street "South 125 West", - :city "Brook", - :state-abbrev "IN", - :zip "47922"} - {:lat 33.5161402, - :lon -93.74224780000002, - :house-number "598", - :street "County Road 155", - :city "Fulton", - :state-abbrev "AR", - :zip "71838"} - {:lat 31.701504, - :lon -98.761461, - :house-number "1150", - :street "Farm to Market 590", - :city "Zephyr", - :state-abbrev "TX", - :zip "76890"} - {:lat 26.2982279, - :lon -97.6897418, - :house-number "17789-18511", - :street "Briggs Coleman Road", - :city "Harlingen", - :state-abbrev "TX", - :zip "78550"} - {:lat 42.088683, - :lon -91.975566, - :house-number "6425", - :street "27th Avenue", - :city "Vinton", - :state-abbrev "IA", - :zip "52349"} - {:lat 32.4656338, - :lon -99.8982004, - :house-number "7092", - :street "Interstate 20", - :city "Merkel", - :state-abbrev "TX", - :zip "79536"} - {:lat 40.3663465, - :lon -98.64840679999999, - :house-number "16800-17998", - :street "South Holstein Avenue", - :city "Holstein", - :state-abbrev "NE", - :zip "68950"} - {:lat 31.660927, - :lon -93.00252189999999, - :house-number "4463", - :street "Louisiana 494", - :city "Natchez", - :state-abbrev "LA", - :zip "71456"} - {:lat 38.800619, - :lon -95.31160899999999, - :house-number "424", - :street "East 1000 Road", - :city "Baldwin City", - :state-abbrev "KS", - :zip "66006"} - {:lat 38.693861, - :lon -86.54561, - :house-number "747", - :street "Liberty Church Road", - :city "Mitchell", - :state-abbrev "IN", - :zip "47446"} - {:lat 41.0578547, - :lon -92.54173519999999, - :house-number "11988", - :street "198th Avenue", - :city "Ottumwa", - :state-abbrev "IA", - :zip "52501"} - {:lat 29.3565161, - :lon -95.4306926, - :house-number "2247", - :street "East Fm 1462 Road", - :city "Rosharon", - :state-abbrev "TX", - :zip "77583"} - {:lat 29.8013585, - :lon -97.990414, - :house-number "2872-3380", - :street "South Old Bastrop Highway", - :city "San Marcos", - :state-abbrev "TX", - :zip "78666"} - {:lat 38.4707749, - :lon -89.37418699999999, - :house-number "17752", - :street "Tree Road", - :city "Hoyleton", - :state-abbrev "IL", - :zip "62803"} - {:lat 48.7510492, - :lon -104.8423034, - :house-number "306", - :street "Bolster Road", - :city "Plentywood", - :state-abbrev "MT", - :zip "59254"} - {:lat 43.5180785, - :lon -92.3385188, - :house-number "16037", - :street "110th Street", - :city "Le Roy", - :state-abbrev "MN", - :zip "55951"} - {:lat 41.8676153, - :lon -77.7600223, - :house-number "1820", - :street "Fox Hill Road", - :city "Ulysses", - :state-abbrev "PA", - :zip "16948"} - {:lat 44.7527495, - :lon -93.4898975, - :house-number "2528", - :street "Wood Duck Trail", - :city "Shakopee", - :state-abbrev "MN", - :zip "55379"} - {:lat 30.121331, - :lon -95.752162, - :house-number "25119", - :street "Sea Turtle Lane", - :city "Magnolia", - :state-abbrev "TX", - :zip "77355"} - {:lat 35.47772250000001, - :lon -77.0751494, - :house-number "266", - :street "Warren Chapel Church Road", - :city "Chocowinity", - :state-abbrev "NC", - :zip "27817"} - {:lat 44.4914681, - :lon -116.3766215, - :house-number "2216", - :street "Little Weiser River Road", - :city "Indian Valley", - :state-abbrev "ID", - :zip "83632"} - {:lat 36.3622857, - :lon -80.5073991, - :house-number "498", - :street "Whitaker Road", - :city "Pinnacle", - :state-abbrev "NC", - :zip "27043"} - {:lat 47.0520143, - :lon -93.22411190000001, - :house-number "11719", - :street "County Road 424", - :city "Swan River", - :state-abbrev "MN", - :zip "55784"} - {:lat 47.9614769, - :lon -101.3832517, - :house-number "26200", - :street "62nd Street Southwest", - :city "Douglas", - :state-abbrev "ND", - :zip "58735"} - {:lat 42.99556279999999, - :lon -77.628265, - :house-number "2262-2286", - :street "Rush Mendon Road", - :city "Rush", - :state-abbrev "NY", - :zip "14543"} - {:lat 43.9160787, - :lon -99.1229738, - :house-number "23918", - :street "353 Avenue", - :city "Pukwana", - :state-abbrev "SD", - :zip "57370"} - {:lat 33.2159641, - :lon -92.2871031, - :house-number "100-172", - :street "Christian Road", - :city "Strong", - :state-abbrev "AR", - :zip "71765"} - {:lat 42.650035, - :lon -73.77100100000001, - :house-number "65", - :street "Warren Avenue", - :city "Albany", - :state-abbrev "NY", - :zip "12203"} - {:lat 44.394321, - :lon -102.7478546, - :house-number "16555", - :street "Hope Road", - :city "New Underwood", - :state-abbrev "SD", - :zip "57761"} - {:lat 42.9113731, - :lon -92.19915350000001, - :house-number "3052-3098", - :street "Ridgeway Avenue", - :city "Fredericksburg", - :state-abbrev "IA", - :zip "50630"} - {:lat 40.8734659, - :lon -79.0551088, - :house-number "2082-2474", - :street "Beaver Drive", - :city "Rochester Mills", - :state-abbrev "PA", - :zip "15771"} - {:lat 43.3070802, - :lon -76.72386759999999, - :house-number "8569-8619", - :street "Blind Sodus Bay Road", - :city "Red Creek", - :state-abbrev "NY", - :zip "13143"} - {:lat 30.3173614, - :lon -98.62123969999999, - :house-number "1902", - :street "North Grape Creek Road", - :city "Fredericksburg", - :state-abbrev "TX", - :zip "78624"} - {:lat 33.8240855, - :lon -87.2232792, - :house-number "4230", - :street "Old Birmingham Highway", - :city "Jasper", - :state-abbrev "AL", - :zip "35501"} - {:lat 43.0468514, - :lon -96.9233312, - :house-number "29906-29980", - :street "464th Avenue", - :city "Centerville", - :state-abbrev "SD", - :zip "57014"} - {:lat 37.172418, - :lon -79.618302, - :house-number "1651", - :street "White House Road", - :city "Moneta", - :state-abbrev "VA", - :zip "24121"} - {:lat 39.759614, - :lon -79.951199, - :house-number "267", - :street "Holbert Stretch", - :city "Dilliner", - :state-abbrev "PA", - :zip "15327"} - {:lat 34.1455863, - :lon -90.8787686, - :house-number "516", - :street "Owens Road", - :city "Clarksdale", - :state-abbrev "MS", - :zip "38614"} - {:lat 43.8035213, - :lon -91.9421715, - :house-number "35552", - :street "Flag Road", - :city "Lanesboro", - :state-abbrev "MN", - :zip "55949"} - {:lat 32.966564, - :lon -114.461542, - :house-number "10882", - :street "Fishers Landing Road", - :city "Yuma", - :state-abbrev "AZ", - :zip "85365"} - {:lat 46.9988408, - :lon -118.726044, - :house-number "11", - :street "Roloff Road", - :city "Lind", - :state-abbrev "WA", - :zip "99341"} - {:lat 66.9746522, - :lon -160.4243696, - :house-number "9", - :street "Airport Road", - :city "Kiana", - :state-abbrev "AK", - :zip "99749"} - {:lat 39.287272, - :lon -122.999079, - :house-number "17625", - :street "Elk Mountain Road", - :city "Upper Lake", - :state-abbrev "CA", - :zip "95485"} - {:lat 43.9419724, - :lon -85.5025347, - :house-number "8500-8846", - :street "South 210th Avenue", - :city "Reed City", - :state-abbrev "MI", - :zip "49677"} - {:lat 38.5122, - :lon -95.17989999999999, - :house-number "1780", - :street "Oregon Terrace", - :city "Rantoul", - :state-abbrev "KS", - :zip "66079"} - {:lat 42.1665281, - :lon -94.2723487, - :house-number "1944", - :street "130th Street", - :city "Paton", - :state-abbrev "IA", - :zip "50217"} - {:lat 41.626379, - :lon -97.7899607, - :house-number "51020", - :street "400 Street", - :city "Saint Edward", - :state-abbrev "NE", - :zip "68660"} - {:lat 44.5120082, - :lon -85.3419543, - :house-number "11500-11998", - :street "East No 2 Road", - :city "Fife Lake", - :state-abbrev "MI", - :zip "49633"} - {:lat 41.119998, - :lon -93.193904, - :house-number "55122", - :street "290th Avenue", - :city "Chariton", - :state-abbrev "IA", - :zip "50049"} - {:lat 37.9156339, - :lon -106.0527209, - :house-number "15206", - :street "US Highway 285", - :city "Saguache", - :state-abbrev "CO", - :zip "81149"} - {:lat 30.6939267, - :lon -93.17928409999999, - :house-number "3358-3366", - :street "Harrington Drive", - :city "DeRidder", - :state-abbrev "LA", - :zip "70634"} - {:lat 29.3688762, - :lon -99.7113421, - :house-number "4391", - :street "FM 2690", - :city "Uvalde", - :state-abbrev "TX", - :zip "78801"} - {:lat 44.1423819, - :lon -83.6578768, - :house-number "3598-3608", - :street "Turner Road", - :city "Turner", - :state-abbrev "MI", - :zip "48765"} - {:lat 30.1235445, - :lon -97.8063278, - :house-number "1200", - :street "Estancia Parkway", - :city "Austin", - :state-abbrev "TX", - :zip "78748"} - {:lat 41.7180964, - :lon -80.10770459999999, - :house-number "21794", - :street "Erie Street", - :city "Saegertown", - :state-abbrev "PA", - :zip "16433"} - {:lat 44.1819768, - :lon -94.273006, - :house-number "49846", - :street "222nd Street", - :city "Lake Crystal", - :state-abbrev "MN", - :zip "56055"} - {:lat 40.5394955, - :lon -87.9628141, - :house-number "867", - :street "East 400 North Road", - :city "Cissna Park", - :state-abbrev "IL", - :zip "60924"} - {:lat 32.292281, - :lon -98.3573976, - :house-number "2283", - :street "County Road 406", - :city "Stephenville", - :state-abbrev "TX", - :zip "76401"} - {:lat 44.293816, - :lon -72.322372, - :house-number "6490", - :street "Route 232", - :city "Marshfield", - :state-abbrev "VT", - :zip "05658"} - {:lat 33.0120157, - :lon -80.9379314, - :house-number "3614", - :street "Willow Swamp Road", - :city "Islandton", - :state-abbrev "SC", - :zip "29929"} - {:lat 43.281389, - :lon -75.67327399999999, - :house-number "3180", - :street "Wheeler Hill Road", - :city "Blossvale", - :state-abbrev "NY", - :zip "13308"} - {:lat 47.2294814, - :lon -94.9404157, - :house-number "39001-39999", - :street "205th Avenue", - :city "Laporte", - :state-abbrev "MN", - :zip "56461"} - {:lat 60.0127269, - :lon -151.4986941, - :house-number "60648", - :street "Oil Well Road", - :city "Ninilchik", - :state-abbrev "AK", - :zip "99639"} - {:lat 39.3224735, - :lon -103.4050819, - :house-number "56251", - :street "County Road 36", - :city "Genoa", - :state-abbrev "CO", - :zip "80818"} - {:lat 48.9662213, - :lon -100.7398374, - :house-number "137-199", - :street "107th Street Northwest", - :city "Souris", - :state-abbrev "ND", - :zip "58783"} - {:lat 33.4579417, - :lon -81.967394, - :house-number "1228", - :street "Gordon Highway", - :city "Augusta", - :state-abbrev "GA", - :zip "30901"} - {:lat 36.2712265, - :lon -94.7352872, - :house-number "15200", - :street "State Highway 116", - :city "Colcord", - :state-abbrev "OK", - :zip "74338"} - {:lat 30.9326095, - :lon -89.566231, - :house-number "1147-1149", - :street "Stanford Lake Road", - :city "Poplarville", - :state-abbrev "MS", - :zip "39470"} - {:lat 37.2913799, - :lon -93.56379299999999, - :house-number "13140", - :street "West Farm Road 84", - :city "Ash Grove", - :state-abbrev "MO", - :zip "65604"} - {:lat 42.1301637, - :lon -95.9202078, - :house-number "15652", - :street "County Highway L20", - :city "Castana", - :state-abbrev "IA", - :zip "51010"} - {:lat 44.8608596, - :lon -85.662477, - :house-number "9331", - :street "East Summer Field Drive", - :city "Traverse City", - :state-abbrev "MI", - :zip "49684"} - {:lat 40.7873348, - :lon -98.3402758, - :house-number "9695-9999", - :street "South Locust Street", - :city "Doniphan", - :state-abbrev "NE", - :zip "68832"} - {:lat 37.1774093, - :lon -78.1800899, - :house-number "2499", - :street "Schutt Road", - :city "Burkeville", - :state-abbrev "VA", - :zip "23922"} - {:lat 38.0326862, - :lon -92.47617, - :house-number "344", - :street "Bentown Ridge Road", - :city "Brumley", - :state-abbrev "MO", - :zip "65017"} - {:lat 53.8940388, - :lon -166.5425726, - :house-number "104", - :street "Airport Drive", - :city "Unalaska", - :state-abbrev "AK", - :zip "99692"} - {:lat 39.981358, - :lon -122.273938, - :house-number "20520", - :street "No Name Road", - :city "Corning", - :state-abbrev "CA", - :zip "96021"} - {:lat 61.7038908, - :lon -150.1429048, - :house-number "27515", - :street "West Beryozova Drive", - :city "Willow", - :state-abbrev "AK", - :zip "99688"} - {:lat 42.0000164, - :lon -101.7142596, - :house-number "43863", - :street "Nebraska 2", - :city "Hyannis", - :state-abbrev "NE", - :zip "69350"} - {:lat 42.1885791, - :lon -84.3863756, - :house-number "1005", - :street "Floyd Avenue", - :city "Jackson", - :state-abbrev "MI", - :zip "49203"} - {:lat 37.4040114, - :lon -120.8017099, - :house-number "17315", - :street "Bloss Avenue", - :city "Delhi", - :state-abbrev "CA", - :zip "95315"} - {:lat 30.069701, - :lon -96.276923, - :house-number "11235", - :street "Jones Wilke Road", - :city "Chappell Hill", - :state-abbrev "TX", - :zip "77426"} - {:lat 41.2071017, - :lon -102.8070772, - :house-number "13001-13199", - :street "Road 30", - :city "Sidney", - :state-abbrev "NE", - :zip "69162"} - {:lat 41.291868, - :lon -85.694082, - :house-number "19", - :street "EMS B4 Lane", - :city "Pierceton", - :state-abbrev "IN", - :zip "46562"} - {:lat 41.1399049, - :lon -90.6578637, - :house-number "2151-2297", - :street "50th Avenue", - :city "Aledo", - :state-abbrev "IL", - :zip "61231"} - {:lat 37.814004, - :lon -96.97592399999999, - :house-number "7250", - :street "Southwest 10th Street", - :city "Towanda", - :state-abbrev "KS", - :zip "67144"} - {:lat 34.4809811, - :lon -89.04508229999999, - :house-number "1040", - :street "Bratton Road", - :city "New Albany", - :state-abbrev "MS", - :zip "38652"} - {:lat 30.08156009999999, - :lon -94.2732719, - :house-number "555", - :street "Sandringham", - :city "Beaumont", - :state-abbrev "TX", - :zip "77713"} - {:lat 40.6779436, - :lon -90.31499459999999, - :house-number "6503-6725", - :street "East Curve Road", - :city "Avon", - :state-abbrev "IL", - :zip "61415"} - {:lat 33.48275040000001, - :lon -113.1013913, - :house-number "3451", - :street "North 491st Avenue", - :city "Tonopah", - :state-abbrev "AZ", - :zip "85354"} - {:lat 42.811637, - :lon -93.4376149, - :house-number "1855", - :street "Dogwood Avenue", - :city "Alexander", - :state-abbrev "IA", - :zip "50420"} - {:lat 31.5672052, - :lon -93.5244615, - :house-number "1841", - :street "Shuteye Road", - :city "Many", - :state-abbrev "LA", - :zip "71449"} - {:lat 38.6181693, - :lon -92.1925908, - :house-number "12209", - :street "Renz Farm Road", - :city "Holts Summit", - :state-abbrev "MO", - :zip "65043"} - {:lat 42.3862177, - :lon -99.88273369999999, - :house-number "86683", - :street "Nebraska 7", - :city "Ainsworth", - :state-abbrev "NE", - :zip "69210"} - {:lat 34.39174879999999, - :lon -80.72494530000002, - :house-number "2301-2307", - :street "State Road S-28-697", - :city "Camden", - :state-abbrev "SC", - :zip "29020"} - {:lat 39.3701702, - :lon -105.3760011, - :house-number "19519-19527", - :street "Eos Mill Road", - :city "Pine", - :state-abbrev "CO", - :zip "80470"} - {:lat 48.5438796, - :lon -98.8271975, - :house-number "8216-8298", - :street "Cavalier-Ramsey County Line Road", - :city "Starkweather", - :state-abbrev "ND", - :zip "58377"} - {:lat 38.9132154, - :lon -105.7031712, - :house-number "26800-27176", - :street "Colorado 9", - :city "Guffey", - :state-abbrev "CO", - :zip "80820"} - {:lat 30.73168429999999, - :lon -83.488559, - :house-number "5314", - :street "Dewey Road", - :city "Valdosta", - :state-abbrev "GA", - :zip "31601"} - {:lat 42.940744, - :lon -77.56138399999999, - :house-number "1855", - :street "Hickory Lane", - :city "Honeoye Falls", - :state-abbrev "NY", - :zip "14472"} - {:lat 38.889392, - :lon -95.732744, - :house-number "4501", - :street "Southwest 97th Street", - :city "Wakarusa", - :state-abbrev "KS", - :zip "66546"} - {:lat 45.238332, - :lon -115.8133813, - :house-number "24833", - :street "Warren Wagon Road", - :city "McCall", - :state-abbrev "ID", - :zip "83638"} - {:lat 36.492435, - :lon -86.966335, - :house-number "3724", - :street "Hoods Branch Road", - :city "Springfield", - :state-abbrev "TN", - :zip "37172"} - {:lat 32.9092579, - :lon -103.2659859, - :house-number "24", - :street "Rosebud Lane", - :city "Lovington", - :state-abbrev "NM", - :zip "88260"} - {:lat 34.7794615, - :lon -89.2971718, - :house-number "3535", - :street "Little Snow Creek Road", - :city "Holly Springs", - :state-abbrev "MS", - :zip "38635"} - {:lat 40.9873587, - :lon -77.5623052, - :house-number "246", - :street "Hoy Road", - :city "Howard", - :state-abbrev "PA", - :zip "16841"} - {:lat 48.5014899, - :lon -122.1953009, - :house-number "25502", - :street "Hoehn Road", - :city "Sedro-Woolley", - :state-abbrev "WA", - :zip "98284"} - {:lat 36.1745853, - :lon -83.1806323, - :house-number "4142-4198", - :street "Parrottsville Road", - :city "Bybee", - :state-abbrev "TN", - :zip "37713"} - {:lat 44.0434558, - :lon -92.8169403, - :house-number "21301-21361", - :street "625th Street", - :city "Dodge Center", - :state-abbrev "MN", - :zip "55927"} - {:lat 31.8284709, - :lon -86.6683085, - :house-number "423", - :street "Manningham Loop", - :city "Greenville", - :state-abbrev "AL", - :zip "36037"} - {:lat 30.79443929999999, - :lon -96.29737539999999, - :house-number "9520", - :street "Dilly Shaw Tap Road", - :city "Bryan", - :state-abbrev "TX", - :zip "77808"} - {:lat 42.979323, - :lon -73.958883, - :house-number "1417", - :street "Peaceable Street", - :city "Ballston Spa", - :state-abbrev "NY", - :zip "12020"} - {:lat 33.6856683, - :lon -96.77413949999999, - :house-number "4084", - :street "Old Southmayd Road", - :city "Sherman", - :state-abbrev "TX", - :zip "75092"} - {:lat 40.5598283, - :lon -87.73477539999999, - :house-number "2001-2099", - :street "County Road 500 North", - :city "Wellington", - :state-abbrev "IL", - :zip "60973"} - {:lat 33.6263821, - :lon -91.4221505, - :house-number "308", - :street "Baughman Road", - :city "McGehee", - :state-abbrev "AR", - :zip "71654"} - {:lat 41.367849, - :lon -73.1448755, - :house-number "5", - :street "Sunset Terrace", - :city "Seymour", - :state-abbrev "CT", - :zip "06483"} - {:lat 33.2505184, - :lon -80.7431324, - :house-number "1703-1825", - :street "Banbury Drive", - :city "Branchville", - :state-abbrev "SC", - :zip "29432"} - {:lat 39.614977, - :lon -84.792006, - :house-number "8774", - :street "Fairhaven College CRNR Road", - :city "College Corner", - :state-abbrev "OH", - :zip "45003"} - {:lat 29.80548, - :lon -81.580928, - :house-number "108", - :street "Creek Lane", - :city "Palatka", - :state-abbrev "FL", - :zip "32177"} - {:lat 36.6515872, - :lon -121.6238129, - :house-number "1428", - :street "Abbott Street", - :city "Salinas", - :state-abbrev "CA", - :zip "93901"} - {:lat 42.6929731, - :lon -78.0005899, - :house-number "3980", - :street "Middle Reservation Road", - :city "Perry", - :state-abbrev "NY", - :zip "14530"} - {:lat 48.536864, - :lon -109.697746, - :house-number "1335", - :street "Washington Avenue", - :city "Havre", - :state-abbrev "MT", - :zip "59501"} - {:lat 37.5975641, - :lon -79.0825886, - :house-number "134-164", - :street "Berry Hill Lane", - :city "Amherst", - :state-abbrev "VA", - :zip "24521"} - {:lat 41.17628510000001, - :lon -105.8302223, - :house-number "61", - :street "Mason Lane", - :city "Laramie", - :state-abbrev "WY", - :zip "82070"} - {:lat 45.1875366, - :lon -92.04145539999999, - :house-number "E2302", - :street "County Road V", - :city "Prairie Farm", - :state-abbrev "WI", - :zip "54762"} - {:lat 46.215794, - :lon -104.6251721, - :house-number "312", - :street "Lame Jones Trail", - :city "Plevna", - :state-abbrev "MT", - :zip "59344"} - {:lat 29.7607019, - :lon -97.7324809, - :house-number "1395", - :street "Callihan Road", - :city "Luling", - :state-abbrev "TX", - :zip "78648"} - {:lat 38.6832382, - :lon -106.9923199, - :house-number "7911", - :street "County Road 730", - :city "Gunnison", - :state-abbrev "CO", - :zip "81230"} - {:lat 42.065906, - :lon -91.503693, - :house-number "2818", - :street "Jordans Grove Road", - :city "Marion", - :state-abbrev "IA", - :zip "52302"} - {:lat 34.0908609, - :lon -116.269298, - :house-number "9000", - :street "Rock Haven Road", - :city "Joshua Tree", - :state-abbrev "CA", - :zip "92252"} - {:lat 37.1489336, - :lon -100.1449543, - :house-number "23000-23524", - :street "29 Road", - :city "Meade", - :state-abbrev "KS", - :zip "67864"} - {:lat 40.830092, - :lon -78.328512, - :house-number "1512", - :street "Spring Street", - :city "Houtzdale", - :state-abbrev "PA", - :zip "16651"} - {:lat 40.8326643, - :lon -102.0270649, - :house-number "75915", - :street "Road 312", - :city "Venango", - :state-abbrev "NE", - :zip "69168"} - {:lat 31.2528411, - :lon -93.4338884, - :house-number "230-240", - :street "Farris Cemetary Road", - :city "Anacoco", - :state-abbrev "LA", - :zip "71403"} - {:lat 43.1328381, - :lon -74.11540099999999, - :house-number "551", - :street "Fayville Road", - :city "Broadalbin", - :state-abbrev "NY", - :zip "12025"} - {:lat 61.9880241, - :lon -147.0136133, - :house-number "8110", - :street "Glenn Highway", - :city "Glennallen", - :state-abbrev "AK", - :zip "99588"} - {:lat 30.5900209, - :lon -104.0698574, - :house-number "218", - :street "Cedar Trail", - :city "Fort Davis", - :state-abbrev "TX", - :zip "79734"} - {:lat 37.0965383, - :lon -86.13427329999999, - :house-number "19366", - :street "Louisville Road", - :city "Park City", - :state-abbrev "KY", - :zip "42160"} - {:lat 41.5211048, - :lon -79.9952654, - :house-number "25940-27498", - :street "Stockton Corners Road", - :city "Cochranton", - :state-abbrev "PA", - :zip "16314"} - {:lat 28.913617, - :lon -95.97610309999999, - :house-number "60", - :street "Avenue F North", - :city "Bay City", - :state-abbrev "TX", - :zip "77414"} - {:lat 47.4792833, - :lon -98.7133154, - :house-number "401-499", - :street "86th Avenue Northeast", - :city "Glenfield", - :state-abbrev "ND", - :zip "58443"} - {:lat 46.9018564, - :lon -117.7551321, - :house-number "2551", - :street "Storment Road", - :city "Endicott", - :state-abbrev "WA", - :zip "99125"} - {:lat 41.1757901, - :lon -86.3298392, - :house-number "14036", - :street "Indiana 110", - :city "Rochester", - :state-abbrev "IN", - :zip "46975"} - {:lat 43.101427, - :lon -78.2494959, - :house-number "6444", - :street "Fisher Road", - :city "Oakfield", - :state-abbrev "NY", - :zip "14125"} - {:lat 48.6786822, - :lon -113.8184402, - :house-number "16809", - :street "Going-to-the-Sun Road", - :city "West Glacier", - :state-abbrev "MT", - :zip "59936"} - {:lat 32.025204, - :lon -86.6599078, - :house-number "5187", - :street "County Road 45", - :city "Fort Deposit", - :state-abbrev "AL", - :zip "36032"} - {:lat 43.2662019, - :lon -96.19779609999999, - :house-number "2601-2699", - :street "Grant Avenue", - :city "Doon", - :state-abbrev "IA", - :zip "51235"} - {:lat 46.2787702, - :lon -111.2326623, - :house-number "92", - :street "Upper Greyson Creek Road", - :city "Townsend", - :state-abbrev "MT", - :zip "59644"} - {:lat 46.5612182, - :lon -117.5284755, - :house-number "140", - :street "South Deadman Road", - :city "Pomeroy", - :state-abbrev "WA", - :zip "99347"} - {:lat 38.5058074, - :lon -88.7177379, - :house-number "818-898", - :street "County Road 2300 East", - :city "Iuka", - :state-abbrev "IL", - :zip "62849"} - {:lat 30.9197909, - :lon -94.1673134, - :house-number "1898", - :street "County Road 027", - :city "Jasper", - :state-abbrev "TX", - :zip "75951"} - {:lat 38.8271655, - :lon -98.4199407, - :house-number "411-467", - :street "Avenue D", - :city "Wilson", - :state-abbrev "KS", - :zip "67490"} - {:lat 43.2543472, - :lon -94.0150718, - :house-number "2208", - :street "340th Street", - :city "Titonka", - :state-abbrev "IA", - :zip "50480"} - {:lat 33.1439027, - :lon -94.74486329999999, - :house-number "1564", - :street "County Road 3309", - :city "Omaha", - :state-abbrev "TX", - :zip "75571"} - {:lat 47.459075, - :lon -112.8400399, - :house-number "2335", - :street "Mule Creek Road", - :city "Augusta", - :state-abbrev "MT", - :zip "59410"} - {:lat 39.0120209, - :lon -83.81941479999999, - :house-number "13615-13827", - :street "Matthews Road", - :city "Sardinia", - :state-abbrev "OH", - :zip "45171"} - {:lat 37.990355, - :lon -85.4719301, - :house-number "3900", - :street "Love Lane", - :city "Coxs Creek", - :state-abbrev "KY", - :zip "40013"} - {:lat 30.78410239999999, - :lon -96.24686849999999, - :house-number "11459", - :street "Oak Lake Road", - :city "Bryan", - :state-abbrev "TX", - :zip "77808"} - {:lat 37.570637, - :lon -119.978165, - :house-number "5300", - :street "Rumley Mine Road", - :city "Midpines", - :state-abbrev "CA", - :zip "95345"} - {:lat 35.3526971, - :lon -97.10998529999999, - :house-number "14508", - :street "North South 331", - :city "Shawnee", - :state-abbrev "OK", - :zip "74801"} - {:lat 30.557133, - :lon -97.37338349999999, - :house-number "7197-7805", - :street "Farm to Market Road 619", - :city "Taylor", - :state-abbrev "TX", - :zip "76574"} - {:lat 41.6179294, - :lon -93.46465049999999, - :house-number "2627-2687", - :street "Northeast 72nd Street", - :city "Altoona", - :state-abbrev "IA", - :zip "50009"} - {:lat 35.025246, - :lon -89.559371, - :house-number "1437", - :street "Knox Road", - :city "Rossville", - :state-abbrev "TN", - :zip "38066"} - {:lat 41.86593149999999, - :lon -90.72437719999999, - :house-number "1896", - :street "215th Street", - :city "Grand Mound", - :state-abbrev "IA", - :zip "52751"} - {:lat 42.7013214, - :lon -97.08685129999999, - :house-number "57207", - :street "888th Road", - :city "Wynot", - :state-abbrev "NE", - :zip "68792"} - {:lat 31.184549, - :lon -89.451286, - :house-number "223", - :street "Haden Road", - :city "Purvis", - :state-abbrev "MS", - :zip "39475"} - {:lat 43.91931470000001, - :lon -95.9950034, - :house-number "351", - :street "Valley Road", - :city "Chandler", - :state-abbrev "MN", - :zip "56122"} - {:lat 41.401808, - :lon -82.141712, - :house-number "42270", - :street "Griswold Road", - :city "Elyria", - :state-abbrev "OH", - :zip "44035"} - {:lat 39.625267, - :lon -95.006856, - :house-number "12920", - :street "Southwest 81st Road", - :city "Rushville", - :state-abbrev "MO", - :zip "64484"} - {:lat 26.4487202, - :lon -81.2721499, - :house-number "2424", - :street "Thorp Road", - :city "Immokalee", - :state-abbrev "FL", - :zip "34142"} - {:lat 46.3331733, - :lon -91.53325819999999, - :house-number "52000-52086", - :street "Wisconsin 27", - :city "Solon Springs", - :state-abbrev "WI", - :zip "54873"} - {:lat 32.7212981, - :lon -114.3471867, - :house-number "7115", - :street "South Avenue 17 East", - :city "Yuma", - :state-abbrev "AZ", - :zip "85365"} - {:lat 35.492303, - :lon -78.22756799999999, - :house-number "481", - :street "Wc Braswell Road", - :city "Selma", - :state-abbrev "NC", - :zip "27576"} - {:lat 47.903819, - :lon -94.09948299999999, - :house-number "11802", - :street "South Co Road 6", - :city "Mizpah", - :state-abbrev "MN", - :zip "56660"} - {:lat 47.1241259, - :lon -111.550147, - :house-number "970", - :street "Adel Road", - :city "Cascade", - :state-abbrev "MT", - :zip "59421"} - {:lat 38.8777388, - :lon -107.1770073, - :house-number "12492-13498", - :street "County Road 12", - :city "Somerset", - :state-abbrev "CO", - :zip "81434"} - {:lat 48.4847586, - :lon -114.3989592, - :house-number "67", - :street "Eagle Creek Trail", - :city "Whitefish", - :state-abbrev "MT", - :zip "59937"} - {:lat 26.2078681, - :lon -98.3643379, - :house-number "3104", - :street "Humberto Garza Junior Street", - :city "Mission", - :state-abbrev "TX", - :zip "78572"} - {:lat 43.4984703, - :lon -84.81185909999999, - :house-number "9756", - :street "South Lincoln Road", - :city "Shepherd", - :state-abbrev "MI", - :zip "48883"} - {:lat 38.0396349, - :lon -78.313039, - :house-number "478", - :street "Campbell Road", - :city "Keswick", - :state-abbrev "VA", - :zip "22947"} - {:lat 39.4381138, - :lon -93.8289722, - :house-number "46801", - :street "East 192nd Street", - :city "Richmond", - :state-abbrev "MO", - :zip "64085"} - {:lat 43.9437577, - :lon -94.2440666, - :house-number "13478", - :street "507th Avenue", - :city "Vernon Center", - :state-abbrev "MN", - :zip "56090"} - {:lat 38.885884, - :lon -95.095698, - :house-number "1019", - :street "East 2200 Road", - :city "Eudora", - :state-abbrev "KS", - :zip "66025"} - {:lat 43.3300296, - :lon -82.53618829999999, - :house-number "3384", - :street "Old Orchard Lane", - :city "Lexington", - :state-abbrev "MI", - :zip "48450"} - {:lat 42.5477132, - :lon -85.9206291, - :house-number "3837", - :street "Forest Trail", - :city "Allegan", - :state-abbrev "MI", - :zip "49010"} - {:lat 37.3668518, - :lon -120.6647798, - :house-number "5301-5315", - :street "Olive Avenue", - :city "Atwater", - :state-abbrev "CA", - :zip "95301"} - {:lat 36.411321, - :lon -95.750602, - :house-number "13996", - :street "U.S Highway 169", - :city "Oologah", - :state-abbrev "OK", - :zip "74053"} - {:lat 39.1290762, - :lon -78.88821709999999, - :house-number "3936", - :street "Ashton Woods Drive", - :city "Moorefield", - :state-abbrev "WV", - :zip "26836"} - {:lat 43.0902834, - :lon -98.9564362, - :house-number "36150", - :street "Eldeen Avenue", - :city "Bonesteel", - :state-abbrev "SD", - :zip "57317"} - {:lat 47.150362, - :lon -120.872251, - :house-number "470", - :street "Thornton View Road", - :city "Cle Elum", - :state-abbrev "WA", - :zip "98922"} - {:lat 36.259424, - :lon -79.161563, - :house-number "1986", - :street "North Carolina 49", - :city "Prospect Hill", - :state-abbrev "NC", - :zip "27314"} - {:lat 43.3785313, - :lon -93.675874, - :house-number "42473", - :street "150th Avenue", - :city "Leland", - :state-abbrev "IA", - :zip "50453"} - {:lat 44.403199, - :lon -93.00742400000001, - :house-number "37929", - :street "20th Avenue", - :city "Dennison", - :state-abbrev "MN", - :zip "55018"} - {:lat 33.8434868, - :lon -95.90124290000001, - :house-number "1987", - :street "Farm to Market 79", - :city "Telephone", - :state-abbrev "TX", - :zip "75488"} - {:lat 38.3975096, - :lon -83.6592131, - :house-number "7219", - :street "Morehead Road", - :city "Flemingsburg", - :state-abbrev "KY", - :zip "41041"} - {:lat 39.0705916, - :lon -80.907283, - :house-number "864", - :street "Sunny Hollow Road", - :city "Smithville", - :state-abbrev "WV", - :zip "26178"} - {:lat 33.704565, - :lon -102.5888482, - :house-number "4151-4199", - :street "Kenya Road", - :city "Levelland", - :state-abbrev "TX", - :zip "79336"} - {:lat 33.472702, - :lon -82.48024939999999, - :house-number "1496-1502", - :street "Harrison Road Southeast", - :city "Thomson", - :state-abbrev "GA", - :zip "30824"} - {:lat 33.2287456, - :lon -99.195262, - :house-number "1551", - :street "U.S. 283", - :city "Throckmorton", - :state-abbrev "TX", - :zip "76483"} - {:lat 39.1898386, - :lon -93.3398946, - :house-number "27335", - :street "Durango Avenue", - :city "Malta Bend", - :state-abbrev "MO", - :zip "65339"} - {:lat 40.3536303, - :lon -97.20280249999999, - :house-number "1900", - :street "County Road Y", - :city "Western", - :state-abbrev "NE", - :zip "68464"} - {:lat 37.278886, - :lon -80.752978, - :house-number "167", - :street "Cooper Lane", - :city "Pearisburg", - :state-abbrev "VA", - :zip "24134"} - {:lat 35.1345926, - :lon -76.7618676, - :house-number "369", - :street "McCotter Road", - :city "Bayboro", - :state-abbrev "NC", - :zip "28515"} - {:lat 34.0696338, - :lon -103.2871496, - :house-number "1400-1598", - :street "South Roosevelt Road 13", - :city "Portales", - :state-abbrev "NM", - :zip "88130"} - {:lat 32.429694, - :lon -111.331505, - :house-number "12402", - :street "North Carbine Road", - :city "Marana", - :state-abbrev "AZ", - :zip "85653"} - {:lat 40.792316, - :lon -81.224113, - :house-number "9508", - :street "Lisbon Street Northeast", - :city "East Canton", - :state-abbrev "OH", - :zip "44730"} - {:lat 48.42087129999999, - :lon -98.4923376, - :house-number "6901-6963", - :street "100th Avenue Northeast", - :city "Edmore", - :state-abbrev "ND", - :zip "58330"} - {:lat 30.583725, - :lon -83.7119063, - :house-number "2-282", - :street "West 7th Way", - :city "Greenville", - :state-abbrev "FL", - :zip "32331"} - {:lat 30.714283, - :lon -94.902378, - :house-number "208", - :street "Dogwood Hill Road", - :city "Livingston", - :state-abbrev "TX", - :zip "77351"} - {:lat 45.75160400000001, - :lon -108.604186, - :house-number "22", - :street "Bridlewood Drive", - :city "Billings", - :state-abbrev "MT", - :zip "59102"} - {:lat 33.737525, - :lon -85.2354063, - :house-number "219", - :street "Old Ridgeway Road", - :city "Bremen", - :state-abbrev "GA", - :zip "30110"} - {:lat 46.5844548, - :lon -92.9939555, - :house-number "2612", - :street "South Finn Road", - :city "Kettle River", - :state-abbrev "MN", - :zip "55757"} - {:lat 33.8833259, - :lon -96.21635719999999, - :house-number "5499-5529", - :street "N3820 Road", - :city "Bokchito", - :state-abbrev "OK", - :zip "74726"} - {:lat 31.1658398, - :lon -91.2507991, - :house-number "498", - :street "Walker Lane", - :city "Woodville", - :state-abbrev "MS", - :zip "39669"} - {:lat 39.2245989, - :lon -97.42682169999999, - :house-number "1833-1899", - :street "North 270th Road", - :city "Clay Center", - :state-abbrev "KS", - :zip "67432"} - {:lat 38.6539478, - :lon -98.01970569999999, - :house-number "5", - :street "Bourbon Street", - :city "Geneseo", - :state-abbrev "KS", - :zip "67444"} - {:lat 47.41297850000001, - :lon -105.7740833, - :house-number "844-878", - :street "Mayberry Road", - :city "Circle", - :state-abbrev "MT", - :zip "59215"} - {:lat 46.8850376, - :lon -102.5623717, - :house-number "3639", - :street "100th Avenue Southwest", - :city "Gladstone", - :state-abbrev "ND", - :zip "58630"} - {:lat 38.329125, - :lon -82.6987683, - :house-number "16800-17498", - :street "Country Club Drive", - :city "Catlettsburg", - :state-abbrev "KY", - :zip "41129"} - {:lat 41.3518892, - :lon -82.8445302, - :house-number "500-550", - :street "Southwest Road", - :city "Castalia", - :state-abbrev "OH", - :zip "44824"} - {:lat 38.294071, - :lon -120.601589, - :house-number "15469", - :street "Jesus Maria Road", - :city "Mokelumne Hill", - :state-abbrev "CA", - :zip "95245"} - {:lat 33.9167659, - :lon -94.38419499999999, - :house-number "160", - :street "Riverview Drive", - :city "Horatio", - :state-abbrev "AR", - :zip "71842"} - {:lat 35.472722, - :lon -81.805212, - :house-number "198", - :street "Pearson Moss Drive", - :city "Bostic", - :state-abbrev "NC", - :zip "28018"} - {:lat 42.1307055, - :lon -102.4795368, - :house-number "3466", - :street "183rd Trail", - :city "Lakeside", - :state-abbrev "NE", - :zip "69351"} - {:lat 25.8698057, - :lon -81.173395, - :house-number "47201", - :street "Tamiami Trail East", - :city "Ochopee", - :state-abbrev "FL", - :zip "34141"} - {:lat 44.696725, - :lon -107.214077, - :house-number "37", - :street "Beckton Drive", - :city "Sheridan", - :state-abbrev "WY", - :zip "82801"} - {:lat 39.1864188, - :lon -105.4994581, - :house-number "25800", - :street "County Road 77", - :city "Jefferson", - :state-abbrev "CO", - :zip "80456"} - {:lat 47.0808663, - :lon -98.8165657, - :house-number "7901-7999", - :street "23rd Street Southeast", - :city "Buchanan", - :state-abbrev "ND", - :zip "58420"} - {:lat 37.0223516, - :lon -120.890925, - :house-number "18361-18655", - :street "South Creek Road", - :city "Los Banos", - :state-abbrev "CA", - :zip "93635"} - {:lat 48.37040150000001, - :lon -98.93015109999999, - :house-number "7740-7798", - :street "66th Street Northeast", - :city "Webster", - :state-abbrev "ND", - :zip "58382"} - {:lat 32.8409626, - :lon -81.20136839999999, - :house-number "5016", - :street "Luray Highway", - :city "Brunson", - :state-abbrev "SC", - :zip "29911"} - {:lat 42.4575898, - :lon -84.0450789, - :house-number "15313", - :street "Livermore Road", - :city "Pinckney", - :state-abbrev "MI", - :zip "48169"} - {:lat 41.7911848, - :lon -86.11495819999999, - :house-number "3205-3209", - :street "U.S. 12", - :city "Niles", - :state-abbrev "MI", - :zip "49120"} - {:lat 42.4367078, - :lon -71.8534573, - :house-number "70", - :street "Coal Kiln Road", - :city "Princeton", - :state-abbrev "MA", - :zip "01541"} - {:lat 44.3916327, - :lon -120.93806, - :house-number "7337", - :street "Northwest Ryegrass Road", - :city "Prineville", - :state-abbrev "OR", - :zip "97754"} - {:lat 32.885575, - :lon -94.810548, - :house-number "12231", - :street "Farm to Market Road 2796", - :city "Pittsburg", - :state-abbrev "TX", - :zip "75686"} - {:lat 36.012014, - :lon -96.559501, - :house-number "10431", - :street "South 513th West Avenue", - :city "Drumright", - :state-abbrev "OK", - :zip "74030"} - {:lat 31.9861377, - :lon -83.30078189999999, - :house-number "470", - :street "South Broad Street", - :city "Abbeville", - :state-abbrev "GA", - :zip "31001"} - {:lat 37.67874, - :lon -120.195549, - :house-number "4695", - :street "Crown Lead Road", - :city "Coulterville", - :state-abbrev "CA", - :zip "95311"} - {:lat 48.026764, - :lon -114.5130826, - :house-number "2734", - :street "Browns Meadow Road", - :city "Kila", - :state-abbrev "MT", - :zip "59920"} - {:lat 47.6827165, - :lon -118.234703, - :house-number "28515", - :street "Horwege Road", - :city "Davenport", - :state-abbrev "WA", - :zip "99122"} - {:lat 44.8173148, - :lon -113.6845403, - :house-number "542", - :street "National Forest Development Road 008", - :city "Lemhi", - :state-abbrev "ID", - :zip "83465"} - {:lat 35.22018, - :lon -82.092621, - :house-number "653", - :street "Green Fields Lane", - :city "Columbus", - :state-abbrev "NC", - :zip "28722"} - {:lat 36.8504259, - :lon -87.9559804, - :house-number "6627", - :street "Blue Spring Road", - :city "Cadiz", - :state-abbrev "KY", - :zip "42211"} - {:lat 46.77222, - :lon -104.71361, - :house-number "315", - :street "Pine Unit Road", - :city "Fallon", - :state-abbrev "MT", - :zip "59326"} - {:lat 45.8193559, - :lon -120.4218159, - :house-number "353-551", - :street "Newell Grade Road", - :city "Roosevelt", - :state-abbrev "WA", - :zip "99356"} - {:lat 41.1167214, - :lon -95.33849479999999, - :house-number "1224-1298", - :street "130th Street", - :city "Emerson", - :state-abbrev "IA", - :zip "51533"} - {:lat 32.0650555, - :lon -85.70541229999999, - :house-number "3686", - :street "County Road 31", - :city "Union Springs", - :state-abbrev "AL", - :zip "36089"} - {:lat 43.9630749, - :lon -99.5404085, - :house-number "33151", - :street "South Dakota 47", - :city "Reliance", - :state-abbrev "SD", - :zip "57569"} - {:lat 43.1264718, - :lon -74.08001809999999, - :house-number "139", - :street "Hans Creek Road", - :city "Broadalbin", - :state-abbrev "NY", - :zip "12025"} - {:lat 35.5942876, - :lon -77.098241, - :house-number "360", - :street "Page Road", - :city "Washington", - :state-abbrev "NC", - :zip "27889"} - {:lat 39.835329, - :lon -123.130293, - :house-number "30374", - :street "Mendocino Pass Road", - :city "Covelo", - :state-abbrev "CA", - :zip "95428"} - {:lat 44.0337702, - :lon -90.0817086, - :house-number "700-708", - :street "West Middle Street", - :city "Necedah", - :state-abbrev "WI", - :zip "54646"} - {:lat 44.2286948, - :lon -69.62147089999999, - :house-number "51", - :street "Gorman Lane", - :city "Whitefield", - :state-abbrev "ME", - :zip "04353"} - {:lat 47.8437113, - :lon -96.7390394, - :house-number "22364", - :street "320th Avenue Southwest", - :city "Fisher", - :state-abbrev "MN", - :zip "56723"} - {:lat 34.054148, - :lon -83.75065699999999, - :house-number "546", - :street "Mulberry Road", - :city "Winder", - :state-abbrev "GA", - :zip "30680"} - {:lat 40.8422394, - :lon -86.446347, - :house-number "5001-5637", - :street "North Co Road 375 West", - :city "Royal Center", - :state-abbrev "IN", - :zip "46978"} - {:lat 40.7876069, - :lon -91.96811699999999, - :house-number "17736-18032", - :street "Lark Avenue", - :city "Keosauqua", - :state-abbrev "IA", - :zip "52565"} - {:lat 45.7504108, - :lon -86.91291009999999, - :house-number "8905", - :street "15th Road", - :city "Rapid River", - :state-abbrev "MI", - :zip "49878"} - {:lat 46.9343702, - :lon -102.8765487, - :house-number "11523", - :street "33rd Street Southwest", - :city "Dickinson", - :state-abbrev "ND", - :zip "58601"} - {:lat 39.71045609999999, - :lon -90.60765669999999, - :house-number "225-299", - :street "West Phillips Ferry Road", - :city "Bluffs", - :state-abbrev "IL", - :zip "62621"} - {:lat 42.6513994, - :lon -114.8666274, - :house-number "901-921", - :street "East 4500 North", - :city "Buhl", - :state-abbrev "ID", - :zip "83316"} - {:lat 39.593326, - :lon -106.0200552, - :house-number "51-99", - :street "Circle B", - :city "Dillon", - :state-abbrev "CO", - :zip "80435"} - {:lat 43.863401, - :lon -88.6968, - :house-number "W10733", - :street "Olden Road", - :city "Pickett", - :state-abbrev "WI", - :zip "54964"} - {:lat 38.8216915, - :lon -81.3836443, - :house-number "1501-1517", - :street "Parkersburg Road", - :city "Spencer", - :state-abbrev "WV", - :zip "25276"} - {:lat 58.2438, - :lon -134.296, - :house-number "6020", - :street "Thane Road", - :city "Juneau", - :state-abbrev "AK", - :zip "99801"} - {:lat 43.150971, - :lon -78.580462, - :house-number "7922", - :street "Lincoln Avenue Extension", - :city "Lockport", - :state-abbrev "NY", - :zip "14094"} - {:lat 35.770582, - :lon -84.92956099999999, - :house-number "1100", - :street "Happy Top Road", - :city "Grandview", - :state-abbrev "TN", - :zip "37337"} - {:lat 38.3971132, - :lon -84.7471047, - :house-number "80", - :street "Old Teresita Road", - :city "Owenton", - :state-abbrev "KY", - :zip "40359"} - {:lat 33.2654697, - :lon -96.30465389999999, - :house-number "7667", - :street "County Road 705", - :city "Farmersville", - :state-abbrev "TX", - :zip "75442"} - {:lat 37.7642515, - :lon -106.7990794, - :house-number "36", - :street "Stagecoach Drive", - :city "South Fork", - :state-abbrev "CO", - :zip "81154"} - {:lat 31.8048375, - :lon -93.3722943, - :house-number "2191-2497", - :street "Allen-Beulah Road", - :city "Marthaville", - :state-abbrev "LA", - :zip "71450"} - {:lat 38.02106089999999, - :lon -102.3020413, - :house-number "26496-28658", - :street "County Road 25", - :city "Granada", - :state-abbrev "CO", - :zip "81041"} - {:lat 44.688761, - :lon -87.99036, - :house-number "4660", - :street "Brown Road", - :city "Little Suamico", - :state-abbrev "WI", - :zip "54141"} - {:lat 47.3486486, - :lon -119.9857975, - :house-number "299-373", - :street "Palisades Road", - :city "Palisades", - :state-abbrev "WA", - :zip "98845"} - {:lat 30.6165006, - :lon -102.5659586, - :house-number "185", - :street "Puckett Road", - :city "Fort Stockton", - :state-abbrev "TX", - :zip "79735"} - {:lat 41.5701556, - :lon -101.3875156, - :house-number "1796-1798", - :street "Nebraska 92", - :city "Sutherland", - :state-abbrev "NE", - :zip "69165"} - {:lat 39.8311148, - :lon -121.7066288, - :house-number "11422", - :street "Deer Creek Highway", - :city "Chico", - :state-abbrev "CA", - :zip "95928"} - {:lat 35.2979402, - :lon -80.7213334, - :house-number "1709", - :street "Jeffrey Bryan Drive", - :city "Charlotte", - :state-abbrev "NC", - :zip "28213"} - {:lat 38.9807004, - :lon -90.96349490000001, - :house-number "242-298", - :street "Thompson Drive", - :city "Troy", - :state-abbrev "MO", - :zip "63379"} - {:lat 45.1793539, - :lon -91.082781, - :house-number "29408", - :street "230th Avenue", - :city "Holcombe", - :state-abbrev "WI", - :zip "54745"} - {:lat 35.085311, - :lon -90.246799, - :house-number "1230", - :street "Caldwell Road", - :city "Proctor", - :state-abbrev "AR", - :zip "72376"} - {:lat 29.4831868, - :lon -98.8856216, - :house-number "715", - :street "County Road 2615", - :city "Rio Medina", - :state-abbrev "TX", - :zip "78066"} - {:lat 37.336518, - :lon -108.490367, - :house-number "30205", - :street "Highway 160", - :city "Cortez", - :state-abbrev "CO", - :zip "81321"} - {:lat 38.368046, - :lon -121.904845, - :house-number "6418", - :street "Byrnes Road", - :city "Vacaville", - :state-abbrev "CA", - :zip "95687"} - {:lat 37.5995954, - :lon -105.8436795, - :house-number "1619", - :street "County Road 111", - :city "Mosca", - :state-abbrev "CO", - :zip "81146"} - {:lat 44.55905389999999, - :lon -88.77040559999999, - :house-number "E9075", - :street "Bear Creek Road", - :city "Clintonville", - :state-abbrev "WI", - :zip "54929"} - {:lat 44.657691, - :lon -91.543655, - :house-number "S11780", - :street "County Road B", - :city "Eleva", - :state-abbrev "WI", - :zip "54738"} - {:lat 36.944042, - :lon -81.082864, - :house-number "485", - :street "West Union Street", - :city "Wytheville", - :state-abbrev "VA", - :zip "24382"} - {:lat 42.4936868, - :lon -91.6677739, - :house-number "2010-2054", - :street "Victor Avenue", - :city "Winthrop", - :state-abbrev "IA", - :zip "50682"} - {:lat 35.2039787, - :lon -94.7005509, - :house-number "25540", - :street "Nubbin Ridge", - :city "Spiro", - :state-abbrev "OK", - :zip "74959"} - {:lat 41.3055032, - :lon -96.20784669999999, - :house-number "18465-18849", - :street "Fort Street", - :city "Omaha", - :state-abbrev "NE", - :zip "68022"} - {:lat 41.3314761, - :lon -94.7418039, - :house-number "75848", - :street "Memphis Road", - :city "Anita", - :state-abbrev "IA", - :zip "50020"} - {:lat 63.44814479999999, - :lon -148.8350787, - :house-number "Mile 214.5", - :street "George Parks Highway", - :city "Denali National Park and Preserve", - :state-abbrev "AK", - :zip "99755"} - {:lat 41.3480212, - :lon -76.3170663, - :house-number "459", - :street "Ricketts Drive", - :city "Benton", - :state-abbrev "PA", - :zip "17814"} - {:lat 39.067987, - :lon -104.887748, - :house-number "3245", - :street "Doolittle Road", - :city "Monument", - :state-abbrev "CO", - :zip "80132"} - {:lat 38.044187, - :lon -121.448421, - :house-number "13222", - :street "West Rindge Road", - :city "Stockton", - :state-abbrev "CA", - :zip "95219"} - {:lat 43.4394989, - :lon -75.3129672, - :house-number "8724-8768", - :street "Domser Road", - :city "Boonville", - :state-abbrev "NY", - :zip "13309"} - {:lat 46.368827, - :lon -94.577142, - :house-number "12012", - :street "57th Avenue Southwest", - :city "Pillager", - :state-abbrev "MN", - :zip "56473"} - {:lat 32.3276924, - :lon -91.78834379999999, - :house-number "615", - :street "Whitehall Road", - :city "Mangham", - :state-abbrev "LA", - :zip "71259"} - {:lat 32.1274578, - :lon -86.8248954, - :house-number "19", - :street "Casey Road", - :city "Sardis", - :state-abbrev "AL", - :zip "36775"} - {:lat 46.88974, - :lon -119.6439359, - :house-number "58062", - :street "3rd Street Northeast", - :city "Royal City", - :state-abbrev "WA", - :zip "99357"} - {:lat 34.312091, - :lon -86.018813, - :house-number "2961", - :street "County Road 28", - :city "Crossville", - :state-abbrev "AL", - :zip "35962"} - {:lat 37.8714349, - :lon -92.4307795, - :house-number "19610", - :street "Highway 7", - :city "Richland", - :state-abbrev "MO", - :zip "65556"} - {:lat 42.2611518, - :lon -70.89390490000001, - :house-number "195", - :street "Downer Avenue", - :city "Hingham", - :state-abbrev "MA", - :zip "02043"} - {:lat 42.7077684, - :lon -76.4247091, - :house-number "1", - :street "Joseph Drive", - :city "Moravia", - :state-abbrev "NY", - :zip "13118"} - {:lat 42.5332468, - :lon -95.90447019999999, - :house-number "3559", - :street "120th Street", - :city "Pierson", - :state-abbrev "IA", - :zip "51048"} - {:lat 32.6073554, - :lon -86.11205770000001, - :house-number "6695-7143", - :street "Georgia Road", - :city "Wetumpka", - :state-abbrev "AL", - :zip "36092"} - {:lat 44.7075747, - :lon -100.1775982, - :house-number "29831-29999", - :street "185th Street", - :city "Onida", - :state-abbrev "SD", - :zip "57564"} - {:lat 31.458724, - :lon -82.1390318, - :house-number "6046-7330", - :street "Scenic Drive", - :city "Patterson", - :state-abbrev "GA", - :zip "31557"} - {:lat 39.365628, - :lon -84.85064, - :house-number "5007", - :street "Wesley Chapel Road", - :city "West Harrison", - :state-abbrev "IN", - :zip "47060"} - {:lat 30.7871609, - :lon -87.04861149999999, - :house-number "6478", - :street "Southridge Road", - :city "Milton", - :state-abbrev "FL", - :zip "32570"} - {:lat 47.1320838, - :lon -118.525546, - :house-number "901-939", - :street "Rosenoff Road", - :city "Ritzville", - :state-abbrev "WA", - :zip "99169"} - {:lat 47.8067285, - :lon -110.0965646, - :house-number "11533", - :street "Flat Creek Road", - :city "Geraldine", - :state-abbrev "MT", - :zip "59446"} - {:lat 42.780005, - :lon -78.729653, - :house-number "3837", - :street "Freeman Road", - :city "Orchard Park", - :state-abbrev "NY", - :zip "14127"} - {:lat 30.1642049, - :lon -100.0199915, - :house-number "397", - :street "Sd 32740", - :city "Rocksprings", - :state-abbrev "TX", - :zip "78880"} - {:lat 34.306449, - :lon -89.653038, - :house-number "484", - :street "County Road 343", - :city "Taylor", - :state-abbrev "MS", - :zip "38673"} - {:lat 31.7038236, - :lon -96.1186999, - :house-number "145", - :street "Pr 507", - :city "Fairfield", - :state-abbrev "TX", - :zip "75840"} - {:lat 44.9953209, - :lon -93.641418, - :house-number "4680", - :street "Creekwood Trail", - :city "Maple Plain", - :state-abbrev "MN", - :zip "55359"} - {:lat 41.7620177, - :lon -99.2775448, - :house-number "45908", - :street "825th Road", - :city "Burwell", - :state-abbrev "NE", - :zip "68823"} - {:lat 40.401603, - :lon -98.7812086, - :house-number "401-499", - :street "41 Road", - :city "Minden", - :state-abbrev "NE", - :zip "68959"} - {:lat 48.9263308, - :lon -99.0443299, - :house-number "10414-10498", - :street "76th Avenue Northeast", - :city "Sarles", - :state-abbrev "ND", - :zip "58372"} - {:lat 39.9552359, - :lon -76.9656205, - :house-number "53", - :street "Eisenhart Mill Road", - :city "East Berlin", - :state-abbrev "PA", - :zip "17316"} - {:lat 38.177664, - :lon -107.789232, - :house-number "3073", - :street "County Road 24", - :city "Ridgway", - :state-abbrev "CO", - :zip "81432"} - {:lat 47.1157639, - :lon -98.19402960000001, - :house-number "2050-2100", - :street "109th Avenue Southeast", - :city "Dazey", - :state-abbrev "ND", - :zip "58429"} - {:lat 34.8068352, - :lon -96.3323535, - :house-number "5201", - :street "North 376 Road", - :city "Allen", - :state-abbrev "OK", - :zip "74825"} - {:lat 39.2305368, - :lon -104.3967876, - :house-number "14041-14645", - :street "County Road 102", - :city "Elbert", - :state-abbrev "CO", - :zip "80106"} - {:lat 42.0337619, - :lon -71.6630163, - :house-number "131", - :street "Laurel Street", - :city "Uxbridge", - :state-abbrev "MA", - :zip "01569"} - {:lat 36.1576989, - :lon -76.9172385, - :house-number "915", - :street "Elm Grove Road", - :city "Colerain", - :state-abbrev "NC", - :zip "27924"} - {:lat 46.5779436, - :lon -111.2284119, - :house-number "835", - :street "Camas Creek Road", - :city "White Sulphur Springs", - :state-abbrev "MT", - :zip "59645"} - {:lat 48.39654789999999, - :lon -114.4081103, - :house-number "2875", - :street "U.S. 93", - :city "Whitefish", - :state-abbrev "MT", - :zip "59937"} - {:lat 38.1592284, - :lon -95.5663465, - :house-number "935", - :street "Verdure Road Southeast", - :city "Le Roy", - :state-abbrev "KS", - :zip "66857"} - {:lat 48.4095875, - :lon -95.5801213, - :house-number "46801", - :street "White Wolf Road Northwest", - :city "Grygla", - :state-abbrev "MN", - :zip "56727"} - {:lat 40.9809265, - :lon -86.92298989999999, - :house-number "500", - :street "South 5 Mi W Of 1600w", - :city "Francesville", - :state-abbrev "IN", - :zip "47946"} - {:lat 46.9383783, - :lon -99.5487438, - :house-number "4281-4371", - :street "33rd Street Southeast", - :city "Tappen", - :state-abbrev "ND", - :zip "58487"} - {:lat 30.2242984, - :lon -93.587592, - :house-number "257", - :street "Bigwoods Vinton Road", - :city "Vinton", - :state-abbrev "LA", - :zip "70668"} - {:lat 44.4086145, - :lon -68.4235918, - :house-number "1966", - :street "Bayside Road", - :city "Trenton", - :state-abbrev "ME", - :zip "04605"} - {:lat 41.008783, - :lon -105.5615779, - :house-number "244", - :street "Elk Crossing Road", - :city "Tie Siding", - :state-abbrev "WY", - :zip "82084"} - {:lat 35.7386538, - :lon -81.82084689999999, - :house-number "2510-2684", - :street "Conley Bumgarner Road", - :city "Morganton", - :state-abbrev "NC", - :zip "28655"} - {:lat 32.5134911, - :lon -104.9464219, - :house-number "5-101", - :street "G-032", - :city "Dell City", - :state-abbrev "NM", - :zip "79837"} - {:lat 38.427788, - :lon -106.534436, - :house-number "64103", - :street "U.S. 50", - :city "Gunnison", - :state-abbrev "CO", - :zip "81230"} - {:lat 31.5035347, - :lon -111.284977, - :house-number "2805", - :street "Ruby Road", - :city "Nogales", - :state-abbrev "AZ", - :zip "85621"} - {:lat 43.986271, - :lon -94.18518399999999, - :house-number "52136", - :street "150th Street", - :city "Vernon Center", - :state-abbrev "MN", - :zip "56090"} - {:lat 45.30644900000001, - :lon -91.877477, - :house-number "1363", - :street "7th Avenue", - :city "Hillsdale", - :state-abbrev "WI", - :zip "54733"} - {:lat 43.024329, - :lon -112.824998, - :house-number "2678", - :street "West 1200 South", - :city "Aberdeen", - :state-abbrev "ID", - :zip "83210"} - {:lat 39.8614895, - :lon -108.2667581, - :house-number "21144-22214", - :street "County Road 5", - :city "Rifle", - :state-abbrev "CO", - :zip "81650"} - {:lat 33.6274642, - :lon -105.8989291, - :house-number "12167", - :street "U.S. 54", - :city "Carrizozo", - :state-abbrev "NM", - :zip "88301"} - {:lat 39.9160374, - :lon -75.3583661, - :house-number "201-299", - :street "Papermill Road", - :city "Springfield", - :state-abbrev "PA", - :zip "19064"} - {:lat 34.8792474, - :lon -103.0762503, - :house-number "300-498", - :street "Curry Road 43", - :city "Broadview", - :state-abbrev "NM", - :zip "88112"} - {:lat 39.2079099, - :lon -83.12939790000001, - :house-number "1477-1645", - :street "Ohio 772", - :city "Bainbridge", - :state-abbrev "OH", - :zip "45612"} - {:lat 48.4928326, - :lon -100.6789272, - :house-number "7425", - :street "1st Avenue North", - :city "Towner", - :state-abbrev "ND", - :zip "58788"} - {:lat 47.316261, - :lon -111.2672231, - :house-number "1210", - :street "Eden Road", - :city "Great Falls", - :state-abbrev "MT", - :zip "59405"} - {:lat 40.370281, - :lon -76.759902, - :house-number "1016", - :street "Piketown Road", - :city "Harrisburg", - :state-abbrev "PA", - :zip "17112"} - {:lat 38.358731, - :lon -97.919955, - :house-number "27", - :street "Kiowa Road", - :city "Windom", - :state-abbrev "KS", - :zip "67491"} - {:lat 32.0771818, - :lon -84.0684537, - :house-number "1699", - :street "Georgia 195", - :city "Americus", - :state-abbrev "GA", - :zip "31709"} - {:lat 40.1744085, - :lon -82.5928914, - :house-number "4500-6098", - :street "Dutch Lane Northwest", - :city "Johnstown", - :state-abbrev "OH", - :zip "43031"} - {:lat 39.8006462, - :lon -106.2671922, - :house-number "1465", - :street "Black Creek Road", - :city "Silverthorne", - :state-abbrev "CO", - :zip "80498"} - {:lat 39.031739, - :lon -88.42046599999999, - :house-number "8047", - :street "North 2100th Street", - :city "Dieterich", - :state-abbrev "IL", - :zip "62424"} - {:lat 40.8826954, - :lon -84.1866254, - :house-number "21900-21998", - :street "Road 17", - :city "Columbus Grove", - :state-abbrev "OH", - :zip "45830"} - {:lat 35.8027731, - :lon -80.48833259999999, - :house-number "224-238", - :street "Singleton Road", - :city "Mocksville", - :state-abbrev "NC", - :zip "27028"} - {:lat 39.2667106, - :lon -83.03588740000001, - :house-number "484", - :street "Baptist Hill Road", - :city "Chillicothe", - :state-abbrev "OH", - :zip "45601"} - {:lat 47.9624757, - :lon -106.0816186, - :house-number "339", - :street "Maxwell Hill Road", - :city "Wolf Point", - :state-abbrev "MT", - :zip "59201"} - {:lat 36.609706, - :lon -85.05463, - :house-number "3072", - :street "Chanute Road", - :city "Pall Mall", - :state-abbrev "TN", - :zip "38577"} - {:lat 37.286474, - :lon -121.862554, - :house-number "741", - :street "Batista Drive", - :city "San Jose", - :state-abbrev "CA", - :zip "95136"} - {:lat 36.6981921, - :lon -92.1128186, - :house-number "9700", - :street "County Road 7950", - :city "Pottersville", - :state-abbrev "MO", - :zip "65790"} - {:lat 32.4484452, - :lon -81.8748105, - :house-number "801", - :street "Brannen Cemetery Road", - :city "Statesboro", - :state-abbrev "GA", - :zip "30458"} - {:lat 29.5870185, - :lon -95.8321783, - :house-number "693-799", - :street "Huntington Road", - :city "Rosenberg", - :state-abbrev "TX", - :zip "77471"} - {:lat 32.7711839, - :lon -91.7136507, - :house-number "11638", - :street "Johnson School Road", - :city "Mer Rouge", - :state-abbrev "LA", - :zip "71261"} - {:lat 43.9268497, - :lon -101.7960548, - :house-number "23950", - :street "Recluse Road", - :city "Philip", - :state-abbrev "SD", - :zip "57567"} - {:lat 39.3069469, - :lon -99.3298011, - :house-number "1528-1598", - :street "South Road", - :city "Plainville", - :state-abbrev "KS", - :zip "67663"} - {:lat 35.0778421, - :lon -85.1800033, - :house-number "7700-7706", - :street "Cecelia Drive", - :city "Chattanooga", - :state-abbrev "TN", - :zip "37416"} - {:lat 41.3652452, - :lon -75.2521935, - :house-number "106", - :street "Spruce Lane", - :city "Greentown", - :state-abbrev "PA", - :zip "18426"} - {:lat 33.7798117, - :lon -117.4158073, - :house-number "20090", - :street "Chalon Road", - :city "Perris", - :state-abbrev "CA", - :zip "92570"} - {:lat 43.1617463, - :lon -92.7789888, - :house-number "1350", - :street "River Road", - :city "Floyd", - :state-abbrev "IA", - :zip "50435"} - {:lat 35.1246269, - :lon -87.35063, - :house-number "20", - :street "Hardiman Road South", - :city "Leoma", - :state-abbrev "TN", - :zip "38468"} - {:lat 42.38576, - :lon -96.4448319, - :house-number "1943-1957", - :street "U.S. 75", - :city "Dakota City", - :state-abbrev "NE", - :zip "68731"} - {:lat 41.578093, - :lon -80.631832, - :house-number "6339", - :street "Creek Road", - :city "Andover", - :state-abbrev "OH", - :zip "44003"} - {:lat 41.383577, - :lon -93.369366, - :house-number "9537", - :street "228th Avenue", - :city "Ackworth", - :state-abbrev "IA", - :zip "50001"} - {:lat 37.8261403, - :lon -83.955142, - :house-number "2188-2226", - :street "Spout Springs Road", - :city "Clay City", - :state-abbrev "KY", - :zip "40312"} - {:lat 44.755191, - :lon -106.673704, - :house-number "924", - :street "Ulm Road", - :city "Banner", - :state-abbrev "WY", - :zip "82832"} - {:lat 45.1755568, - :lon -89.4512337, - :house-number "W593", - :street "Spring Brook Avenue", - :city "Merrill", - :state-abbrev "WI", - :zip "54452"} - {:lat 29.633604, - :lon -100.9240923, - :house-number "354", - :street "Summit Drive", - :city "Del Rio", - :state-abbrev "TX", - :zip "78840"} - {:lat 46.640867, - :lon -67.968823, - :house-number "157", - :street "Centerline Road", - :city "Presque Isle", - :state-abbrev "ME", - :zip "04769"} - {:lat 46.9913099, - :lon -104.2749999, - :house-number "372", - :street "Hodges Road", - :city "Wibaux", - :state-abbrev "MT", - :zip "59353"} - {:lat 40.110004, - :lon -75.957448, - :house-number "481", - :street "South Churchtown Road", - :city "Narvon", - :state-abbrev "PA", - :zip "17555"} - {:lat 34.2383253, - :lon -82.8546978, - :house-number "1567", - :street "Coldwater Road", - :city "Dewy Rose", - :state-abbrev "GA", - :zip "30634"} - {:lat 33.92903100000001, - :lon -83.678337, - :house-number "1405", - :street "Gin Mill Court", - :city "Monroe", - :state-abbrev "GA", - :zip "30656"} - {:lat 44.45397810000001, - :lon -75.5898072, - :house-number "701", - :street "Turner Road", - :city "Hammond", - :state-abbrev "NY", - :zip "13646"} - {:lat 45.8027586, - :lon -92.7680673, - :house-number "37656", - :street "Black Pine Road", - :city "Pine City", - :state-abbrev "MN", - :zip "55063"} - {:lat 41.0614976, - :lon -110.5364236, - :house-number "271", - :street "County Road", - :city "Fort Bridger", - :state-abbrev "WY", - :zip "82933"} - {:lat 33.096877, - :lon -116.1325306, - :house-number "6599", - :street "Alvarado Street", - :city "Borrego Springs", - :state-abbrev "CA", - :zip "92004"} - {:lat 46.3109698, - :lon -84.8021358, - :house-number "13785-13865", - :street "Sullivan Creek Trail", - :city "Rudyard", - :state-abbrev "MI", - :zip "49780"} - {:lat 39.8092853, - :lon -121.7420029, - :house-number "342", - :street "4 Acres Sec34 T23nr2e", - :city "Chico", - :state-abbrev "CA", - :zip "95928"} - {:lat 39.0242849, - :lon -82.2628741, - :house-number "30945", - :street "Ohio 325", - :city "Langsville", - :state-abbrev "OH", - :zip "45741"} - {:lat 40.900784, - :lon -86.99796900000001, - :house-number "7577", - :street "South County Road 210 East", - :city "Rensselaer", - :state-abbrev "IN", - :zip "47978"} - {:lat 40.8104888, - :lon -90.2666866, - :house-number "641", - :street "Knox Road 900 East", - :city "Gilson", - :state-abbrev "IL", - :zip "61436"} - {:lat 46.6261015, - :lon -108.6118494, - :house-number "125-177", - :street "Snowy Mountain Road", - :city "Roundup", - :state-abbrev "MT", - :zip "59072"} - {:lat 46.855473, - :lon -117.7997662, - :house-number "272", - :street "Guske Road", - :city "LaCrosse", - :state-abbrev "WA", - :zip "99143"} - {:lat 30.3724246, - :lon -85.43729569999999, - :house-number "12404", - :street "U.S. 231", - :city "Youngstown", - :state-abbrev "FL", - :zip "32466"} - {:lat 42.595562, - :lon -121.743452, - :house-number "41351", - :street "Solomon Drive", - :city "Chiloquin", - :state-abbrev "OR", - :zip "97624"} - {:lat 45.6720056, - :lon -88.93579230000002, - :house-number "9942", - :street "Suring Lane", - :city "Argonne", - :state-abbrev "WI", - :zip "54511"} - {:lat 31.3300691, - :lon -85.97398249999999, - :house-number "23-999", - :street "County Road 545", - :city "New Brockton", - :state-abbrev "AL", - :zip "36351"} - {:lat 37.7946338, - :lon -83.4015648, - :house-number "141", - :street "Blankenship Road", - :city "Hazel Green", - :state-abbrev "KY", - :zip "41332"} - {:lat 40.28411759999999, - :lon -74.2302674, - :house-number "200", - :street "Sunnyside Drive", - :city "Marlboro Township", - :state-abbrev "NJ", - :zip "07746"} - {:lat 40.9640534, - :lon -91.02591079999999, - :house-number "4746-4998", - :street "195th Street", - :city "Burlington", - :state-abbrev "IA", - :zip "52601"} - {:lat 39.516798, - :lon -82.225859, - :house-number "44600", - :street "Dawley-New Pittsburg Road", - :city "Nelsonville", - :state-abbrev "OH", - :zip "45764"} - {:lat 39.2393343, - :lon -79.0159398, - :house-number "71", - :street "Meadow Farms Road", - :city "Old Fields", - :state-abbrev "WV", - :zip "26845"} - {:lat 39.72992869999999, - :lon -106.1713332, - :house-number "2642", - :street "Meadowbrook Lane", - :city "Silverthorne", - :state-abbrev "CO", - :zip "80498"} - {:lat 41.9823355, - :lon -90.4063305, - :house-number "3536-3620", - :street "135th Street", - :city "Charlotte", - :state-abbrev "IA", - :zip "52731"} - {:lat 46.9822916, - :lon -107.2805484, - :house-number "487", - :street "South Sand Creek Road", - :city "Jordan", - :state-abbrev "MT", - :zip "59337"} - {:lat 41.4528115, - :lon -74.9944647, - :house-number "157-171", - :street "Neil Thompson Road", - :city "Shohola", - :state-abbrev "PA", - :zip "18458"} - {:lat 44.733007, - :lon -73.408199, - :house-number "275", - :street "Allen Road", - :city "Plattsburgh", - :state-abbrev "NY", - :zip "12901"} - {:lat 42.765204, - :lon -89.598237, - :house-number "N7109", - :street "Wettach Road", - :city "Monticello", - :state-abbrev "WI", - :zip "53570"} - {:lat 40.997771, - :lon -85.092398, - :house-number "9431", - :street "Hessen Cassel Road", - :city "Fort Wayne", - :state-abbrev "IN", - :zip "46816"} - {:lat 36.5902185, - :lon -98.8046696, - :house-number "35860", - :street "Oklahoma 45", - :city "Waynoka", - :state-abbrev "OK", - :zip "73860"} - {:lat 39.342818, - :lon -89.420245, - :house-number "23000-23220", - :street "East 15th Road", - :city "Morrisonville", - :state-abbrev "IL", - :zip "62546"} - {:lat 35.9029025, - :lon -77.8467766, - :house-number "11905", - :street "North Carolina 97", - :city "Rocky Mount", - :state-abbrev "NC", - :zip "27803"} - {:lat 45.9727092, - :lon -91.1340783, - :house-number "9032-9056", - :street "West County Highway B", - :city "Hayward", - :state-abbrev "WI", - :zip "54843"} - {:lat 41.4097631, - :lon -112.431176, - :house-number "5311", - :street "Southeast Promontory Road", - :city "Corinne", - :state-abbrev "UT", - :zip "84307"} - {:lat 34.9942849, - :lon -89.7761688, - :house-number "12577", - :street "State Line Road", - :city "Olive Branch", - :state-abbrev "MS", - :zip "38654"} - {:lat 34.4754932, - :lon -109.5960396, - :house-number "37232", - :street "Arizona 61", - :city "Concho", - :state-abbrev "AZ", - :zip "85924"} - {:lat 46.03810379999999, - :lon -91.0169315, - :house-number "11715", - :street "North Fr 174", - :city "Hayward", - :state-abbrev "WI", - :zip "54843"} - {:lat 38.0881508, - :lon -94.7917923, - :house-number "4708", - :street "Paine Road", - :city "Mound City", - :state-abbrev "KS", - :zip "66056"} - {:lat 36.489802, - :lon -88.5697129, - :house-number "740", - :street "Harrison Road", - :city "Palmersville", - :state-abbrev "TN", - :zip "38241"} - {:lat 38.9832517, - :lon -122.1164638, - :house-number "6225", - :street "Boles Road", - :city "Arbuckle", - :state-abbrev "CA", - :zip "95912"} - {:lat 42.1780297, - :lon -72.9587426, - :house-number "168", - :street "Otis Stage Road", - :city "Blandford", - :state-abbrev "MA", - :zip "01008"} - {:lat 40.1638939, - :lon -78.13666529999999, - :house-number "97", - :street "Po Box", - :city "Wood", - :state-abbrev "PA", - :zip "16694"} - {:lat 38.0254997, - :lon -85.1213398, - :house-number "3800", - :street "Murphy Lane", - :city "Mount Eden", - :state-abbrev "KY", - :zip "40046"} - {:lat 34.0996574, - :lon -102.5112853, - :house-number "1563", - :street "FM 303", - :city "Sudan", - :state-abbrev "TX", - :zip "79371"} - {:lat 44.15514599999999, - :lon -87.875097, - :house-number "14428", - :street "San Road", - :city "Cato", - :state-abbrev "WI", - :zip "54230"} - {:lat 46.7882987, - :lon -119.1126247, - :house-number "800-942", - :street "South Steele Road", - :city "Othello", - :state-abbrev "WA", - :zip "99344"} - {:lat 35.5156836, - :lon -77.82581379999999, - :house-number "384", - :street "Landis Road", - :city "Stantonsburg", - :state-abbrev "NC", - :zip "27883"} - {:lat 35.3017766, - :lon -118.8785867, - :house-number "5064-6362", - :street "South Edison Road", - :city "Bakersfield", - :state-abbrev "CA", - :zip "93307"} - {:lat 35.6617665, - :lon -81.5617742, - :house-number "1916", - :street "Off Road", - :city "Morganton", - :state-abbrev "NC", - :zip "28655"} - {:lat 40.264102, - :lon -85.24811199999999, - :house-number "11910", - :street "East Co Road 500 North", - :city "Albany", - :state-abbrev "IN", - :zip "47320"} - {:lat 34.3691713, - :lon -85.9096969, - :house-number "509", - :street "County Road 49", - :city "Dawson", - :state-abbrev "AL", - :zip "35963"} - {:lat 40.639914, - :lon -91.537768, - :house-number "1939", - :street "Iowa 2", - :city "Donnellson", - :state-abbrev "IA", - :zip "52625"} - {:lat 48.367617, - :lon -106.386911, - :house-number "1172", - :street "Geer Road", - :city "Nashua", - :state-abbrev "MT", - :zip "59248"} - {:lat 37.5534413, - :lon -80.6684452, - :house-number "153", - :street "Laurel Creek Road", - :city "Greenville", - :state-abbrev "WV", - :zip "24945"} - {:lat 48.5129061, - :lon -107.450546, - :house-number "4972", - :street "Lake Road", - :city "Saco", - :state-abbrev "MT", - :zip "59261"} - {:lat 44.303249, - :lon -122.693011, - :house-number "42750", - :street "Upper Calapooia Drive", - :city "Sweet Home", - :state-abbrev "OR", - :zip "97386"} - {:lat 37.968924, - :lon -92.4927889, - :house-number "1185", - :street "Mountview Road", - :city "Richland", - :state-abbrev "MO", - :zip "65556"} - {:lat 40.3180455, - :lon -99.34456770000001, - :house-number "72382", - :street "O Road", - :city "Holdrege", - :state-abbrev "NE", - :zip "68949"} - {:lat 37.7455954, - :lon -75.7387931, - :house-number "22317", - :street "Deep Creek Road", - :city "Onancock", - :state-abbrev "VA", - :zip "23417"} - {:lat 35.266777, - :lon -87.098073, - :house-number "305", - :street "Ball Hollow Estate Road", - :city "Pulaski", - :state-abbrev "TN", - :zip "38478"} - {:lat 60.04188310000001, - :lon -151.3121206, - :house-number "54117", - :street "Sisler Avenue", - :city "Ninilchik", - :state-abbrev "AK", - :zip "99639"} - {:lat 45.1750936, - :lon -88.81815429999999, - :house-number "4098", - :street "Fire Lane Road", - :city "White Lake", - :state-abbrev "WI", - :zip "54491"} - {:lat 32.3732398, - :lon -98.9501281, - :house-number "15151", - :street "Interstate 20", - :city "Cisco", - :state-abbrev "TX", - :zip "76437"} - {:lat 42.8860049, - :lon -84.9869425, - :house-number "4381", - :street "Klotz Road", - :city "Portland", - :state-abbrev "MI", - :zip "48875"} - {:lat 34.9344866, - :lon -89.4021398, - :house-number "2355-2665", - :street "Roberts Chapel Road", - :city "Lamar", - :state-abbrev "MS", - :zip "38642"} - {:lat 33.67856039999999, - :lon -97.8830539, - :house-number "159", - :street "East Rc Road", - :city "Bowie", - :state-abbrev "TX", - :zip "76230"} - {:lat 42.5489375, - :lon -85.1945466, - :house-number "4770", - :street "Maple Grove Road", - :city "Hastings", - :state-abbrev "MI", - :zip "49058"} - {:lat 41.52784, - :lon -91.725444, - :house-number "2096", - :street "560th Street Southwest", - :city "Kalona", - :state-abbrev "IA", - :zip "52247"} - {:lat 35.6193554, - :lon -85.92264879999999, - :house-number "724-1350", - :street "Jacksboro Road", - :city "Morrison", - :state-abbrev "TN", - :zip "37357"} - {:lat 36.399259, - :lon -76.2899489, - :house-number "102", - :street "Robin Drive", - :city "South Mills", - :state-abbrev "NC", - :zip "27976"} - {:lat 36.5620566, - :lon -80.0153004, - :house-number "175", - :street "Democrat Road", - :city "Spencer", - :state-abbrev "VA", - :zip "24165"} - {:lat 48.5784473, - :lon -101.3426061, - :house-number "8000-8054", - :street "29th Avenue Northwest", - :city "Lansford", - :state-abbrev "ND", - :zip "58750"} - {:lat 46.1444883, - :lon -91.37233309999999, - :house-number "14108", - :street "North Sonby Road", - :city "Hayward", - :state-abbrev "WI", - :zip "54843"} - {:lat 42.7471583, - :lon -82.90010029999999, - :house-number "21875-22399", - :street "28 Mile Road", - :city "Ray", - :state-abbrev "MI", - :zip "48096"} - {:lat 41.11358389999999, - :lon -86.38228640000001, - :house-number "7346", - :street "West 400 North", - :city "Rochester", - :state-abbrev "IN", - :zip "46975"} - {:lat 38.5410306, - :lon -105.030577, - :house-number "7502", - :street "Upper Beaver Creek Road", - :city "Penrose", - :state-abbrev "CO", - :zip "81240"} - {:lat 36.0810719, - :lon -81.57605339999999, - :house-number "2300-2332", - :street "Timber Run Drive", - :city "Lenoir", - :state-abbrev "NC", - :zip "28645"} - {:lat 48.5178342, - :lon -103.8474234, - :house-number "14601-14649", - :street "76th Street Northwest", - :city "Grenora", - :state-abbrev "ND", - :zip "58845"} - {:lat 35.3585085, - :lon -100.3074713, - :house-number "7329-7499", - :street "County Road 13", - :city "Wheeler", - :state-abbrev "TX", - :zip "79096"} - {:lat 46.1712919, - :lon -118.8883021, - :house-number "3500-3568", - :street "East Humorist Road", - :city "Burbank", - :state-abbrev "WA", - :zip "99323"} - {:lat 37.9988509, - :lon -92.65144699999999, - :house-number "1443", - :street "Lowell Williams Road", - :city "Linn Creek", - :state-abbrev "MO", - :zip "65052"} - {:lat 44.7876962, - :lon -94.28539289999999, - :house-number "11701", - :street "Melody Avenue", - :city "Glencoe", - :state-abbrev "MN", - :zip "55336"} - {:lat 28.375405, - :lon -81.649492, - :house-number "17600", - :street "Flemmings Road", - :city "Winter Garden", - :state-abbrev "FL", - :zip "34787"} - {:lat 42.6134894, - :lon -82.9754203, - :house-number "43314", - :street "Hillcrest Drive", - :city "Sterling Heights", - :state-abbrev "MI", - :zip "48313"} - {:lat 35.229939, - :lon -88.711297, - :house-number "1263", - :street "Curtis Hill Church Lane", - :city "Bethel Springs", - :state-abbrev "TN", - :zip "38315"} - {:lat 28.2967559, - :lon -81.84640279999999, - :house-number "A3", - :street "Van Fleet Road", - :city "Polk City", - :state-abbrev "FL", - :zip "33868"} - {:lat 48.94182, - :lon -94.92195559999999, - :house-number "6298", - :street "Northwest Sandy Shores Drive", - :city "Williams", - :state-abbrev "MN", - :zip "56686"} - {:lat 32.146161, - :lon -86.406871, - :house-number "1224", - :street "Plantation Road", - :city "Hope Hull", - :state-abbrev "AL", - :zip "36043"} - {:lat 27.472142, - :lon -80.431026, - :house-number "2001", - :street "Old Ffa Road", - :city "Fort Pierce", - :state-abbrev "FL", - :zip "34951"} - {:lat 32.270188, - :lon -90.9108059, - :house-number "400", - :street "Wilbert Lane", - :city "Vicksburg", - :state-abbrev "MS", - :zip "39180"} - {:lat 34.8768839, - :lon -85.24801699999999, - :house-number "1174", - :street "Red Belt Road", - :city "Chickamauga", - :state-abbrev "GA", - :zip "30707"} - {:lat 35.5362926, - :lon -98.2195119, - :house-number "23861", - :street "Route 66", - :city "Calumet", - :state-abbrev "OK", - :zip "73014"} - {:lat 38.6162698, - :lon -89.3774191, - :house-number "1511-1591", - :street "Kane Street", - :city "Carlyle", - :state-abbrev "IL", - :zip "62231"} - {:lat 43.4144182, - :lon -98.64741860000001, - :house-number "27358-27398", - :street "377th Avenue", - :city "Corsica", - :state-abbrev "SD", - :zip "57328"} - {:lat 34.271229, - :lon -87.1796677, - :house-number "99", - :street "County Road 3706", - :city "Addison", - :state-abbrev "AL", - :zip "35540"} - {:lat 32.862158, - :lon -108.5860274, - :house-number "473", - :street "Bill Evans Road", - :city "Silver City", - :state-abbrev "NM", - :zip "88061"} - {:lat 37.18846610000001, - :lon -77.9081442, - :house-number "3543", - :street "Rocky Hill Road", - :city "Blackstone", - :state-abbrev "VA", - :zip "23824"} - {:lat 47.959813, - :lon -106.0802946, - :house-number "339", - :street "Maxwell Hill Road", - :city "Wolf Point", - :state-abbrev "MT", - :zip "59201"} - {:lat 32.09018080000001, - :lon -84.41532629999999, - :house-number "1460", - :street "Youngs Mill Road", - :city "Plains", - :state-abbrev "GA", - :zip "31780"} - {:lat 35.2428253, - :lon -78.0706555, - :house-number "756", - :street "Country Club Road", - :city "Mount Olive", - :state-abbrev "NC", - :zip "28365"} - {:lat 46.4567953, - :lon -98.09833069999999, - :house-number "11079-11099", - :street "66th Street Southeast", - :city "Verona", - :state-abbrev "ND", - :zip "58490"} - {:lat 36.8523157, - :lon -87.5900484, - :house-number "3095", - :street "Hensley Lane", - :city "Hopkinsville", - :state-abbrev "KY", - :zip "42240"} - {:lat 29.836327, - :lon -97.43976699999999, - :house-number "1026", - :street "Pine Gap Drive", - :city "Dale", - :state-abbrev "TX", - :zip "78616"} - {:lat 34.0710594, - :lon -79.6735174, - :house-number "4139", - :street "Planer Road", - :city "Effingham", - :state-abbrev "SC", - :zip "29541"} - {:lat 31.477583, - :lon -98.133838, - :house-number "1636", - :street "U.S. 84", - :city "Evant", - :state-abbrev "TX", - :zip "76525"} - {:lat 41.5298448, - :lon -92.1890238, - :house-number "1564", - :street "325th Street", - :city "North English", - :state-abbrev "IA", - :zip "52316"} - {:lat 35.6221391, - :lon -79.2516907, - :house-number "1118", - :street "Cole Thomas Road", - :city "Bear Creek", - :state-abbrev "NC", - :zip "27207"} - {:lat 38.760812, - :lon -77.74101399999999, - :house-number "6742", - :street "Kirk Lane", - :city "Warrenton", - :state-abbrev "VA", - :zip "20187"} - {:lat 37.7204679, - :lon -119.934325, - :house-number "8622", - :street "Bull Creek Road", - :city "Coulterville", - :state-abbrev "CA", - :zip "95311"} - {:lat 31.4295568, - :lon -85.08885599999999, - :house-number "2-8", - :street "Henry County 47", - :city "Shorterville", - :state-abbrev "AL", - :zip "36373"} - {:lat 44.25241339999999, - :lon -86.02472209999999, - :house-number "13841", - :street "Chicago Avenue", - :city "Wellston", - :state-abbrev "MI", - :zip "49689"} - {:lat 40.9866609, - :lon -124.0667605, - :house-number "240", - :street "Wagle Lane", - :city "McKinleyville", - :state-abbrev "CA", - :zip "95519"} - {:lat 44.94850520000001, - :lon -117.9031187, - :house-number "46973", - :street "Haines Dump Road", - :city "Haines", - :state-abbrev "OR", - :zip "97833"} - {:lat 44.4356448, - :lon -121.9428254, - :house-number "13000", - :street "U.S. 20", - :city "Sisters", - :state-abbrev "OR", - :zip "97759"} - {:lat 30.2388971, - :lon -91.3172204, - :house-number "27729-27757", - :street "Intracoastal Road", - :city "Plaquemine", - :state-abbrev "LA", - :zip "70764"} - {:lat 45.1555286, - :lon -91.9936049, - :house-number "3254-3294", - :street "1300th Avenue", - :city "Ridgeland", - :state-abbrev "WI", - :zip "54763"} - {:lat 32.308539, - :lon -110.793313, - :house-number "5419", - :street "Shandon Place", - :city "Tucson", - :state-abbrev "AZ", - :zip "85749"} - {:lat 45.6170256, - :lon -90.4052562, - :house-number "N6687", - :street "Aspen Road", - :city "Phillips", - :state-abbrev "WI", - :zip "54555"} - {:lat 38.5529525, - :lon -86.2359341, - :house-number "8335", - :street "West Vincennes Trail", - :city "Campbellsburg", - :state-abbrev "IN", - :zip "47108"} - {:lat 44.407822, - :lon -92.6516345, - :house-number "37000-37912", - :street "190th Avenue", - :city "Goodhue", - :state-abbrev "MN", - :zip "55027"} - {:lat 41.2424746, - :lon -75.7229472, - :house-number "3001", - :street "Bald Mountain Road", - :city "Bear Creek Village", - :state-abbrev "PA", - :zip "18702"} - {:lat 40.8950958, - :lon -100.366425, - :house-number "36844", - :street "East Palmer Road", - :city "Brady", - :state-abbrev "NE", - :zip "69123"} - {:lat 33.4835755, - :lon -97.5134693, - :house-number "2840", - :street "Seldom Seen Road", - :city "Forestburg", - :state-abbrev "TX", - :zip "76239"} - {:lat 45.304834, - :lon -91.5486899, - :house-number "2963", - :street "7th Avenue", - :city "Chetek", - :state-abbrev "WI", - :zip "54728"} - {:lat 43.782105, - :lon -76.125839, - :house-number "7859", - :street "Lake Road", - :city "Belleville", - :state-abbrev "NY", - :zip "13611"} - {:lat 44.32127819999999, - :lon -97.9138131, - :house-number "21101-21199", - :street "415th Avenue", - :city "Iroquois", - :state-abbrev "SD", - :zip "57353"} - {:lat 42.7269199, - :lon -83.8923518, - :house-number "6876", - :street "Dean Road", - :city "Howell", - :state-abbrev "MI", - :zip "48855"} - {:lat 39.4287889, - :lon -84.1343097, - :house-number "3824-3938", - :street "Wilmington Road", - :city "Lebanon", - :state-abbrev "OH", - :zip "45036"} - {:lat 34.361765, - :lon -93.3366379, - :house-number "122", - :street "Falls Lane", - :city "Bonnerdale", - :state-abbrev "AR", - :zip "71933"} - {:lat 29.770311, - :lon -98.291823, - :house-number "628-998", - :street "Seay Lane", - :city "New Braunfels", - :state-abbrev "TX", - :zip "78132"} - {:lat 40.133207, - :lon -108.191913, - :house-number "3200", - :street "Penny Drive", - :city "Meeker", - :state-abbrev "CO", - :zip "81641"} - {:lat 40.77145489999999, - :lon -111.8558905, - :house-number "1100-1116", - :street "East 2nd Avenue", - :city "Salt Lake City", - :state-abbrev "UT", - :zip "84103"} - {:lat 37.84206289999999, - :lon -90.8244859, - :house-number "12949", - :street "Delbridge Road", - :city "Potosi", - :state-abbrev "MO", - :zip "63664"} - {:lat 37.3419049, - :lon -80.828667, - :house-number "510", - :street "Stock Pen Mountain Road", - :city "Narrows", - :state-abbrev "VA", - :zip "24124"} - {:lat 41.0536659, - :lon -91.01103529999999, - :house-number "25504-25986", - :street "42nd Avenue", - :city "Oakville", - :state-abbrev "IA", - :zip "52646"} - {:lat 30.493264, - :lon -98.97051499999999, - :house-number "721", - :street "Wasserfall Road", - :city "Fredericksburg", - :state-abbrev "TX", - :zip "78624"} - {:lat 46.1178152, - :lon -105.8201727, - :house-number "1086", - :street "Tongue River Road", - :city "Miles City", - :state-abbrev "MT", - :zip "59301"} - {:lat 33.156414, - :lon -105.782114, - :house-number "111-199", - :street "Cottonwood Drive", - :city "Mescalero", - :state-abbrev "NM", - :zip "88340"} - {:lat 37.2891389, - :lon -88.05956570000001, - :house-number "1272-1980", - :street "Weldon Road", - :city "Marion", - :state-abbrev "KY", - :zip "42064"} - {:lat 42.30973350000001, - :lon -105.0921531, - :house-number "355", - :street "Coleman Road", - :city "Wheatland", - :state-abbrev "WY", - :zip "82201"} - {:lat 45.008201, - :lon -92.406273, - :house-number "1950", - :street "County Road E", - :city "Baldwin", - :state-abbrev "WI", - :zip "54002"} - {:lat 44.1305376, - :lon -94.9190122, - :house-number "11560", - :street "370th Avenue", - :city "Comfrey", - :state-abbrev "MN", - :zip "56019"} - {:lat 46.7091378, - :lon -101.0908937, - :house-number "4816-4820", - :street "30th Avenue", - :city "Mandan", - :state-abbrev "ND", - :zip "58554"} - {:lat 42.1507858, - :lon -104.9566127, - :house-number "251", - :street "East Johnson Road", - :city "Wheatland", - :state-abbrev "WY", - :zip "82201"} - {:lat 44.9003897, - :lon -102.8874754, - :house-number "17224", - :street "Old 212", - :city "Mud Butte", - :state-abbrev "SD", - :zip "57758"} - {:lat 36.46426599999999, - :lon -89.352084, - :house-number "2460", - :street "Tennessee 213", - :city "Tiptonville", - :state-abbrev "TN", - :zip "38079"} - {:lat 46.7180626, - :lon -113.1962918, - :house-number "195", - :street "Big Sky Ridge Lane", - :city "Drummond", - :state-abbrev "MT", - :zip "59832"} - {:lat 42.927046, - :lon -74.853465, - :house-number "1049", - :street "Travis Road", - :city "Jordanville", - :state-abbrev "NY", - :zip "13361"} - {:lat 35.6341398, - :lon -91.7455191, - :house-number "1000", - :street "Old Union Road", - :city "Floral", - :state-abbrev "AR", - :zip "72534"} - {:lat 37.179507, - :lon -112.386285, - :house-number "7295", - :street "Johnson Canyon Road", - :city "Kanab", - :state-abbrev "UT", - :zip "84741"} - {:lat 43.479399, - :lon -88.583489, - :house-number "N7851", - :street "Bay View Road", - :city "Horicon", - :state-abbrev "WI", - :zip "53032"} - {:lat 30.9974104, - :lon -91.0533414, - :house-number "6310", - :street "Highway 422", - :city "Norwood", - :state-abbrev "LA", - :zip "70761"} - {:lat 38.5767965, - :lon -96.4920547, - :house-number "2099-2199", - :street "South 850 Road", - :city "Council Grove", - :state-abbrev "KS", - :zip "66846"} - {:lat 32.828037, - :lon -115.574871, - :house-number "2420", - :street "Enterprise Way", - :city "Imperial", - :state-abbrev "CA", - :zip "92251"} - {:lat 44.630733, - :lon -73.586221, - :house-number "41", - :street "Austin Road", - :city "Morrisonville", - :state-abbrev "NY", - :zip "12962"} - {:lat 45.0889128, - :lon -123.5819218, - :house-number "24118-24500", - :street "Shadow Lane", - :city "Grand Ronde", - :state-abbrev "OR", - :zip "97347"} - {:lat 39.3111942, - :lon -79.09821339999999, - :house-number "410", - :street "Burgess Hollow Road", - :city "New Creek", - :state-abbrev "WV", - :zip "26743"} - {:lat 30.484739, - :lon -84.59702999999999, - :house-number "7439", - :street "Old Federal Road", - :city "Quincy", - :state-abbrev "FL", - :zip "32351"} - {:lat 47.6658559, - :lon -105.793456, - :house-number "306-318", - :street "Thorgaard Road", - :city "Vida", - :state-abbrev "MT", - :zip "59274"} - {:lat 29.779582, - :lon -96.8117989, - :house-number "12016", - :street "Mazoch Road Holman Area", - :city "La Grange", - :state-abbrev "TX", - :zip "78945"} - {:lat 38.698893, - :lon -85.82955799999999, - :house-number "2999", - :street "County Road 50 North", - :city "Scottsburg", - :state-abbrev "IN", - :zip "47170"} - {:lat 26.630951, - :lon -80.910077, - :house-number "10000", - :street "CR 835", - :city "Clewiston", - :state-abbrev "FL", - :zip "33440"} - {:lat 37.3210317, - :lon -90.1330998, - :house-number "1572", - :street "RR 1", - :city "Glenallen", - :state-abbrev "MO", - :zip "63751"} - {:lat 39.6197165, - :lon -85.6859594, - :house-number "6352-6746", - :street "North Range Line Road", - :city "Shelbyville", - :state-abbrev "IN", - :zip "46176"} - {:lat 46.8348647, - :lon -99.59147390000001, - :house-number "4120", - :street "40th Street Southeast", - :city "Tappen", - :state-abbrev "ND", - :zip "58487"} - {:lat 40.5671369, - :lon -88.81208720000001, - :house-number "21766", - :street "East 1750 North Road", - :city "Towanda", - :state-abbrev "IL", - :zip "61776"} - {:lat 34.8072897, - :lon -87.6318849, - :house-number "800", - :street "South Cox Creek Parkway", - :city "Florence", - :state-abbrev "AL", - :zip "35630"} - {:lat 61.53484349999999, - :lon -166.0989777, - :house-number "1", - :street "Uinaq Road", - :city "Hooper Bay", - :state-abbrev "AK", - :zip "99604"} - {:lat 48.66046, - :lon -112.765961, - :house-number "375", - :street "Meriwether Road", - :city "Cut Bank", - :state-abbrev "MT", - :zip "59427"} - {:lat 48.6799332, - :lon -102.6469106, - :house-number "8701-8767", - :street "91st Avenue Northwest", - :city "Powers Lake", - :state-abbrev "ND", - :zip "58773"} - {:lat 42.5187101, - :lon -74.94718449999999, - :house-number "460", - :street "Burrillo Road", - :city "Maryland", - :state-abbrev "NY", - :zip "12116"} - {:lat 46.1642053, - :lon -96.67889219999999, - :house-number "8601-8649", - :street "178th Avenue Southeast", - :city "Wahpeton", - :state-abbrev "ND", - :zip "58075"} - {:lat 32.0780224, - :lon -85.57917119999999, - :house-number "662", - :street "Foster Road", - :city "Union Springs", - :state-abbrev "AL", - :zip "36089"} - {:lat 36.7672839, - :lon -119.225824, - :house-number "1444", - :street "Crane Lane", - :city "Squaw Valley", - :state-abbrev "CA", - :zip "93675"} - {:lat 31.982205, - :lon -99.095485, - :house-number "5580", - :street "County Road 411", - :city "Brownwood", - :state-abbrev "TX", - :zip "76801"} - {:lat 29.60951, - :lon -98.283165, - :house-number "7015", - :street "Farm to Market Road 3009", - :city "Schertz", - :state-abbrev "TX", - :zip "78154"} - {:lat 44.8499904, - :lon -121.0645029, - :house-number "85104", - :street "South Junction Road", - :city "Maupin", - :state-abbrev "OR", - :zip "97037"} - {:lat 40.281903, - :lon -76.52353099999999, - :house-number "1581", - :street "Horseshoe Pike", - :city "Lebanon", - :state-abbrev "PA", - :zip "17042"} - {:lat 34.9047695, - :lon -90.2370013, - :house-number "14036", - :street "Star Landing Road", - :city "Lake Cormorant", - :state-abbrev "MS", - :zip "38641"} - {:lat 39.514265, - :lon -83.53760559999999, - :house-number "5765-5981", - :street "U.S. 22", - :city "Washington Court House", - :state-abbrev "OH", - :zip "43160"} - {:lat 37.369013, - :lon -79.1272089, - :house-number "1986", - :street "Old Rustburg Road", - :city "Lynchburg", - :state-abbrev "VA", - :zip "24501"} - {:lat 32.3126203, - :lon -85.5588867, - :house-number "4615", - :street "County Road 16", - :city "Tuskegee", - :state-abbrev "AL", - :zip "36083"} - {:lat 40.9447254, - :lon -95.26528990000001, - :house-number "1601-1629", - :street "250 Street", - :city "Red Oak", - :state-abbrev "IA", - :zip "51566"} - {:lat 32.3376667, - :lon -80.528605, - :house-number "1", - :street "Whitams Island", - :city "Saint Helena Island", - :state-abbrev "SC", - :zip "29920"} - {:lat 30.1073029, - :lon -99.6336451, - :house-number "1-5", - :street "Texas 41", - :city "Mountain Home", - :state-abbrev "TX", - :zip "78058"} - {:lat 44.2163394, - :lon -84.8966808, - :house-number "8001-9999", - :street "East Finkle Road", - :city "Falmouth", - :state-abbrev "MI", - :zip "49632"} - {:lat 37.4752539, - :lon -91.1805078, - :house-number "1272", - :street "County Road 900", - :city "Bunker", - :state-abbrev "MO", - :zip "63629"} - {:lat 43.1691463, - :lon -95.1268561, - :house-number "2301-2307", - :street "East 30th Street", - :city "Spencer", - :state-abbrev "IA", - :zip "51301"} - {:lat 40.6847803, - :lon -86.688831, - :house-number "900", - :street "East North Street", - :city "Delphi", - :state-abbrev "IN", - :zip "46923"} - {:lat 54.8488896, - :lon -163.4073178, - :house-number "180", - :street "Unimak Drive", - :city "False Pass", - :state-abbrev "AK", - :zip "99583"} - {:lat 34.0070049, - :lon -91.5941429, - :house-number "755", - :street "Cades Lane", - :city "Gould", - :state-abbrev "AR", - :zip "71643"} - {:lat 38.5792025, - :lon -106.887352, - :house-number "321", - :street "Magnolia", - :city "Gunnison", - :state-abbrev "CO", - :zip "81230"} - {:lat 46.1661469, - :lon -106.2884395, - :house-number "895", - :street "Sweeney Creek Road", - :city "Rosebud", - :state-abbrev "MT", - :zip "59347"} - {:lat 29.1169075, - :lon -96.3296448, - :house-number "505", - :street "South FM 441 Road", - :city "Louise", - :state-abbrev "TX", - :zip "77455"} - {:lat 33.8299358, - :lon -93.5065874, - :house-number "593", - :street "Hempstead 207 Road", - :city "Prescott", - :state-abbrev "AR", - :zip "71857"} - {:lat 48.133432, - :lon -96.9065397, - :house-number "39583", - :street "180th Street Northwest", - :city "Warren", - :state-abbrev "MN", - :zip "56762"} - {:lat 40.041491, - :lon -85.717243, - :house-number "2602", - :street "Enterprise Drive", - :city "Anderson", - :state-abbrev "IN", - :zip "46013"} - {:lat 48.0997898, - :lon -103.2000809, - :house-number "11851", - :street "46th Street Northwest", - :city "Watford City", - :state-abbrev "ND", - :zip "58854"} - {:lat 31.1115134, - :lon -89.6005565, - :house-number "287", - :street "Tatum Salt Dome Road", - :city "Lumberton", - :state-abbrev "MS", - :zip "39455"} - {:lat 58.4085, - :lon -134.7549999, - :house-number "17900", - :street "Glacier Highway", - :city "Juneau", - :state-abbrev "AK", - :zip "99801"} - {:lat 46.701241, - :lon -119.5692451, - :house-number "7026", - :street "Mallard Drive Southeast", - :city "Warden", - :state-abbrev "WA", - :zip "98857"} - {:lat 29.9892952, - :lon -93.08805, - :house-number "1019-1299", - :street "Louisiana 27", - :city "Bell City", - :state-abbrev "LA", - :zip "70630"} - {:lat 41.676099, - :lon -73.378096, - :house-number "106", - :street "New Preston Hill Road", - :city "Washington", - :state-abbrev "CT", - :zip "06777"} - {:lat 46.1091442, - :lon -107.0786299, - :house-number "173", - :street "Bear Creek Road", - :city "Hysham", - :state-abbrev "MT", - :zip "59038"} - {:lat 35.65109899999999, - :lon -91.54011799999999, - :house-number "560", - :street "Goodie Creek Road", - :city "Rosie", - :state-abbrev "AR", - :zip "72571"} - {:lat 32.761235, - :lon -100.8384885, - :house-number "5000", - :street "East County Road 126", - :city "Snyder", - :state-abbrev "TX", - :zip "79549"} - {:lat 43.6587436, - :lon -97.7557446, - :house-number "42259", - :street "257th Street", - :city "Alexandria", - :state-abbrev "SD", - :zip "57311"} - {:lat 48.1777173, - :lon -105.7346406, - :house-number "5689", - :street "Road 1078", - :city "Wolf Point", - :state-abbrev "MT", - :zip "59201"} - {:lat 38.7081942, - :lon -105.1350515, - :house-number "114", - :street "Cedar Street", - :city "Victor", - :state-abbrev "CO", - :zip "80860"} - {:lat 44.0779761, - :lon -86.2130723, - :house-number "2705", - :street "East Townline Road", - :city "Free Soil", - :state-abbrev "MI", - :zip "49411"} - {:lat 38.938575, - :lon -77.883971, - :house-number "2518", - :street "Rectortown Road", - :city "Marshall", - :state-abbrev "VA", - :zip "20115"} - {:lat 38.4676563, - :lon -102.678174, - :house-number "44000-46998", - :street "Colorado 96", - :city "Eads", - :state-abbrev "CO", - :zip "81036"} - {:lat 35.03465, - :lon -113.681162, - :house-number "11735", - :street "Desert Fire Trail", - :city "Kingman", - :state-abbrev "AZ", - :zip "86401"} - {:lat 29.165482, - :lon -95.8897788, - :house-number "7500", - :street "FM 1728", - :city "Pledger", - :state-abbrev "TX", - :zip "77468"} - {:lat 45.2686766, - :lon -112.508021, - :house-number "3663", - :street "Stone Creek Road", - :city "Dillon", - :state-abbrev "MT", - :zip "59725"} - {:lat 38.5078724, - :lon -82.7571526, - :house-number "4478", - :street "Indian Run Road", - :city "Flatwoods", - :state-abbrev "KY", - :zip "41139"} - {:lat 47.3844573, - :lon -98.400517, - :house-number "10064", - :street "2nd Street Southeast", - :city "Sutton", - :state-abbrev "ND", - :zip "58484"} - {:lat 29.732441, - :lon -91.5441532, - :house-number "9071", - :street "Highway 182", - :city "Franklin", - :state-abbrev "LA", - :zip "70538"} - {:lat 37.8210517, - :lon -90.56398279999999, - :house-number "1700-1710", - :street "Ellis Road", - :city "Park Hills", - :state-abbrev "MO", - :zip "63601"} - {:lat 37.5612611, - :lon -85.9417637, - :house-number "128", - :street "Shady Bower Lane", - :city "Sonora", - :state-abbrev "KY", - :zip "42776"} - {:lat 37.4489193, - :lon -89.2712877, - :house-number "309-311", - :street "South Locust Street", - :city "Jonesboro", - :state-abbrev "IL", - :zip "62952"} - {:lat 29.4095736, - :lon -82.12125309999999, - :house-number "1579", - :street "Northeast 178th Place", - :city "Citra", - :state-abbrev "FL", - :zip "32113"} - {:lat 41.851276, - :lon -71.623779, - :house-number "164", - :street "Rocky Hill Road", - :city "Scituate", - :state-abbrev "RI", - :zip "02857"} - {:lat 36.8993552, - :lon -93.37103309999999, - :house-number "955-1163", - :street "V-20 C", - :city "Highlandville", - :state-abbrev "MO", - :zip "65669"} - {:lat 45.871341, - :lon -118.7664048, - :house-number "81140-81160", - :street "County 983 Road", - :city "Helix", - :state-abbrev "OR", - :zip "97835"} - {:lat 42.42348260000001, - :lon -91.4372509, - :house-number "1831", - :street "255th Street", - :city "Manchester", - :state-abbrev "IA", - :zip "52057"} - {:lat 36.8977589, - :lon -97.2649208, - :house-number "6945", - :street "North O Street", - :city "Braman", - :state-abbrev "OK", - :zip "74632"} - {:lat 37.75066169999999, - :lon -121.4455218, - :house-number "1600-1620", - :street "Hurley Court", - :city "Tracy", - :state-abbrev "CA", - :zip "95376"} - {:lat 46.2182794, - :lon -85.8061999, - :house-number "W18444", - :street "Hoffy Road", - :city "Germfask", - :state-abbrev "MI", - :zip "49836"} - {:lat 41.75712559999999, - :lon -96.7505654, - :house-number "1476-1498", - :street "B Road", - :city "West Point", - :state-abbrev "NE", - :zip "68788"} - {:lat 26.764708, - :lon -81.20095599999999, - :house-number "340", - :street "Witt Road", - :city "Clewiston", - :state-abbrev "FL", - :zip "33440"} - {:lat 42.69133370000001, - :lon -105.3532553, - :house-number "323-355", - :street "Irvine Road", - :city "Douglas", - :state-abbrev "WY", - :zip "82633"} - {:lat 34.2297964, - :lon -96.58023569999999, - :house-number "1002", - :street "Condon Grove Lane", - :city "Milburn", - :state-abbrev "OK", - :zip "73450"} - {:lat 42.19197279999999, - :lon -96.9166444, - :house-number "58101-58155", - :street "853rd Road", - :city "Wakefield", - :state-abbrev "NE", - :zip "68784"} - {:lat 44.8080149, - :lon -90.2971223, - :house-number "1095", - :street "Buxton Road", - :city "Spencer", - :state-abbrev "WI", - :zip "54479"} - {:lat 32.1473028, - :lon -96.08273989999999, - :house-number "350", - :street "North League Line Road", - :city "Trinidad", - :state-abbrev "TX", - :zip "75163"} - {:lat 44.1879289, - :lon -94.9584548, - :house-number "15436", - :street "County Highway 5", - :city "Springfield", - :state-abbrev "MN", - :zip "56087"} - {:lat 42.40922399999999, - :lon -78.112782, - :house-number "6642", - :street "Shongo Valley Road", - :city "Fillmore", - :state-abbrev "NY", - :zip "14735"} - {:lat 36.061302, - :lon -79.71980200000002, - :house-number "3435", - :street "McConnell Road", - :city "Greensboro", - :state-abbrev "NC", - :zip "27405"} - {:lat 38.961543, - :lon -85.862494, - :house-number "192-198", - :street "Agrico Lane", - :city "Seymour", - :state-abbrev "IN", - :zip "47274"} - {:lat 39.8072259, - :lon -120.3030839, - :house-number "86204", - :street "California 70", - :city "Beckwourth", - :state-abbrev "CA", - :zip "96129"} - {:lat 37.5284349, - :lon -87.6383283, - :house-number "1422", - :street "Kentucky 138", - :city "Dixon", - :state-abbrev "KY", - :zip "42409"} - {:lat 38.327386, - :lon -98.5166596, - :house-number "227-257", - :street "Southeast 140 Avenue", - :city "Ellinwood", - :state-abbrev "KS", - :zip "67526"} - {:lat 63.63418100000001, - :lon -148.7870271, - :house-number "229", - :street "George Parks Highway", - :city "Denali National Park and Preserve", - :state-abbrev "AK", - :zip "99755"} - {:lat 46.7353089, - :lon -104.7412436, - :house-number "1602", - :street "Cabin Creek Road", - :city "Fallon", - :state-abbrev "MT", - :zip "59326"} - {:lat 35.4267215, - :lon -94.4967037, - :house-number "201", - :street "Lennington Street", - :city "Roland", - :state-abbrev "OK", - :zip "74954"} - {:lat 43.36129890000001, - :lon -116.8722702, - :house-number "13684", - :street "US Highway 95", - :city "Marsing", - :state-abbrev "ID", - :zip "83639"} - {:lat 32.0403894, - :lon -95.5530392, - :house-number "3930", - :street "County Road 312", - :city "Frankston", - :state-abbrev "TX", - :zip "75763"} - {:lat 35.0765497, - :lon -106.5560287, - :house-number "8101-8199", - :street "Chico Road Northeast", - :city "Albuquerque", - :state-abbrev "NM", - :zip "87108"} - {:lat 39.1612492, - :lon -89.81132269999999, - :house-number "18240", - :street "Quarry Road", - :city "Gillespie", - :state-abbrev "IL", - :zip "62033"} - {:lat 40.5954602, - :lon -78.5604488, - :house-number "201", - :street "Dysart Drive", - :city "Dysart", - :state-abbrev "PA", - :zip "16636"} - {:lat 46.55166, - :lon -116.021097, - :house-number "2869", - :street "Bashaw Road", - :city "Orofino", - :state-abbrev "ID", - :zip "83544"} - {:lat 36.8637617, - :lon -94.4574351, - :house-number "14119", - :street "Haven Lane", - :city "Neosho", - :state-abbrev "MO", - :zip "64850"} - {:lat 38.0967399, - :lon -118.990192, - :house-number "9954", - :street "California 167", - :city "Bridgeport", - :state-abbrev "CA", - :zip "93517"} - {:lat 37.2872133, - :lon -84.9102649, - :house-number "1217", - :street "Gosser Ridge Road", - :city "Liberty", - :state-abbrev "KY", - :zip "42539"} - {:lat 32.9386966, - :lon -83.3117592, - :house-number "1748", - :street "Fred Hall Road", - :city "Gordon", - :state-abbrev "GA", - :zip "31031"} - {:lat 48.7637566, - :lon -102.1365474, - :house-number "53401-54799", - :street "506th Avenue Northwest", - :city "Bowbells", - :state-abbrev "ND", - :zip "58721"} - {:lat 35.3441291, - :lon -106.207004, - :house-number "2327-2391", - :street "Turquoise Trail", - :city "Los Cerrillos", - :state-abbrev "NM", - :zip "87010"} - {:lat 47.0220841, - :lon -111.6467656, - :house-number "2265", - :street "Adel Lane", - :city "Cascade", - :state-abbrev "MT", - :zip "59421"} - {:lat 47.761038, - :lon -100.7330401, - :house-number "601-681", - :street "24th Street Northwest", - :city "Butte", - :state-abbrev "ND", - :zip "58723"} - {:lat 34.991869, - :lon -120.187257, - :house-number "752", - :street "Tepusquet Road", - :city "Santa Maria", - :state-abbrev "CA", - :zip "93454"} - {:lat 42.5428125, - :lon -92.0625377, - :house-number "1678-1684", - :street "Baxter Avenue", - :city "Jesup", - :state-abbrev "IA", - :zip "50648"} - {:lat 30.7372104, - :lon -89.0382218, - :house-number "1085-1249", - :street "Wire Road East", - :city "Perkinston", - :state-abbrev "MS", - :zip "39573"} - {:lat 46.259491, - :lon -119.473502, - :house-number "31703", - :street "North River Road Way", - :city "Benton City", - :state-abbrev "WA", - :zip "99320"} - {:lat 45.65729959999999, - :lon -111.2469468, - :house-number "10722", - :street "Pine Butte Road", - :city "Bozeman", - :state-abbrev "MT", - :zip "59718"} - {:lat 36.6521744, - :lon -82.1788784, - :house-number "9438", - :street "Goose Creek Road", - :city "Bristol", - :state-abbrev "VA", - :zip "24202"} - {:lat 28.95668, - :lon -98.4589081, - :house-number "1393", - :street "Coughran Road", - :city "Pleasanton", - :state-abbrev "TX", - :zip "78064"} - {:lat 34.689707, - :lon -112.329328, - :house-number "10150", - :street "North Antelope Meadows Drive", - :city "Prescott Valley", - :state-abbrev "AZ", - :zip "86315"} - {:lat 42.7290184, - :lon -85.65195179999999, - :house-number "4260-4264", - :street "Cloverfield Court", - :city "Wayland", - :state-abbrev "MI", - :zip "49348"} - {:lat 41.1628398, - :lon -91.5400306, - :house-number "1004", - :street "Henry-Washington Road", - :city "Crawfordsville", - :state-abbrev "IA", - :zip "52621"} - {:lat 32.8014353, - :lon -97.2434668, - :house-number "2524", - :street "Minnis Drive", - :city "Fort Worth", - :state-abbrev "TX", - :zip "76117"} - {:lat 35.5192539, - :lon -96.793336, - :house-number "103615", - :street "South 3490 Road", - :city "Prague", - :state-abbrev "OK", - :zip "74864"} - {:lat 61.3830338, - :lon -145.2370339, - :house-number "56", - :street "Richardson Highway", - :city "Valdez", - :state-abbrev "AK", - :zip "99686"} - {:lat 31.951665, - :lon -85.0065432, - :house-number "1704", - :street "Georgia 27", - :city "Georgetown", - :state-abbrev "GA", - :zip "39854"} - {:lat 35.3371225, - :lon -89.548907, - :house-number "2785", - :street "Porter Road", - :city "Mason", - :state-abbrev "TN", - :zip "38049"} - {:lat 35.702655, - :lon -119.7611477, - :house-number "1667", - :street "Shelco Road", - :city "Lost Hills", - :state-abbrev "CA", - :zip "93249"} - {:lat 43.963342, - :lon -88.031961, - :house-number "23933", - :street "Point Creek Road", - :city "Kiel", - :state-abbrev "WI", - :zip "53042"} - {:lat 47.4609631, - :lon -111.3595861, - :house-number "4700-5230", - :street "31st Street Southwest", - :city "Great Falls", - :state-abbrev "MT", - :zip "59404"} - {:lat 40.1041264, - :lon -94.8880025, - :house-number "1507", - :street "County Road 34", - :city "Bolckow", - :state-abbrev "MO", - :zip "64427"} - {:lat 46.9547514, - :lon -94.328178, - :house-number "4081-4157", - :street "McKeown Lake Road Northwest", - :city "Hackensack", - :state-abbrev "MN", - :zip "56452"} - {:lat 41.2161147, - :lon -84.5251529, - :house-number "15492", - :street "Road 218", - :city "Cecil", - :state-abbrev "OH", - :zip "45821"} - {:lat 31.1858, - :lon -85.54050000000001, - :house-number "441", - :street "Pilgrims Rest Road", - :city "Slocomb", - :state-abbrev "AL", - :zip "36375"} - {:lat 39.5623999, - :lon -82.899913, - :house-number "7117", - :street "Tarlton Road", - :city "Circleville", - :state-abbrev "OH", - :zip "43113"} - {:lat 61.51703819999999, - :lon -148.7885501, - :house-number "20000", - :street "East Plumley Road", - :city "Palmer", - :state-abbrev "AK", - :zip "99645"} - {:lat 46.176571, - :lon -102.2612163, - :house-number "1928-1968", - :street "13th Avenue Northeast", - :city "Mott", - :state-abbrev "ND", - :zip "58646"} - {:lat 47.380622, - :lon -119.385335, - :house-number "4917", - :street "Road 20 Northeast", - :city "Soap Lake", - :state-abbrev "WA", - :zip "98851"} - {:lat 33.6260388, - :lon -82.5395871, - :house-number "1055", - :street "Smith Mill Road", - :city "Thomson", - :state-abbrev "GA", - :zip "30824"} - {:lat 31.4103163, - :lon -83.5762767, - :house-number "675", - :street "Isabella-Nashville Road", - :city "Tifton", - :state-abbrev "GA", - :zip "31793"} - {:lat 44.306777, - :lon -85.9339515, - :house-number "18310", - :street "North Coates Highway", - :city "Brethren", - :state-abbrev "MI", - :zip "49619"} - {:lat 61.52757399999999, - :lon -149.0397359, - :house-number "16385", - :street "Sullivan Avenue", - :city "Palmer", - :state-abbrev "AK", - :zip "99645"} - {:lat 38.9740243, - :lon -93.6939909, - :house-number "4766", - :street "Mock Road", - :city "Concordia", - :state-abbrev "MO", - :zip "64020"} - {:lat 46.8588589, - :lon -117.7999214, - :house-number "3898", - :street "Union Flat Creek Road", - :city "Endicott", - :state-abbrev "WA", - :zip "99125"} - {:lat 30.4446267, - :lon -90.4252506, - :house-number "211-231", - :street "North Rateau Road", - :city "Ponchatoula", - :state-abbrev "LA", - :zip "70454"} - {:lat 70.6355001, - :lon -160.043015, - :house-number "1355", - :street "Milikruak Street", - :city "Wainwright", - :state-abbrev "AK", - :zip "99782"} - {:lat 33.374294, - :lon -96.021456, - :house-number "1622", - :street "Farm to Market Road 1563", - :city "Wolfe City", - :state-abbrev "TX", - :zip "75496"} - {:lat 44.9507935, - :lon -105.634956, - :house-number "116-118", - :street "Weischedel Road", - :city "Recluse", - :state-abbrev "WY", - :zip "82725"} - {:lat 41.6255455, - :lon -92.124358, - :house-number "2625", - :street "J Avenue", - :city "Williamsburg", - :state-abbrev "IA", - :zip "52361"} - {:lat 37.0615106, - :lon -83.92517699999999, - :house-number "1547", - :street "Blackwater Road", - :city "London", - :state-abbrev "KY", - :zip "40744"} - {:lat 30.0033359, - :lon -94.6902803, - :house-number "1150", - :street "County Road 118", - :city "Liberty", - :state-abbrev "TX", - :zip "77575"} - {:lat 40.1186724, - :lon -94.4976959, - :house-number "4130", - :street "470 Road", - :city "King City", - :state-abbrev "MO", - :zip "64463"} - {:lat 35.1502163, - :lon -90.5974762, - :house-number "344-654", - :street "3 Way Road West", - :city "Heth", - :state-abbrev "AR", - :zip "72346"} - {:lat 32.6073483, - :lon -105.4085629, - :house-number "4408", - :street "Owen Prather Highway", - :city "Piñon", - :state-abbrev "NM", - :zip "88344"} - {:lat 32.3870464, - :lon -82.37761669999999, - :house-number "755", - :street "Georgia 46", - :city "Lyons", - :state-abbrev "GA", - :zip "30436"} - {:lat 39.6597005, - :lon -87.8228669, - :house-number "7393-7999", - :street "East 1300th Road", - :city "Paris", - :state-abbrev "IL", - :zip "61944"} - {:lat 42.13567, - :lon -78.173823, - :house-number "3149", - :street "Clair Carrier Road", - :city "Friendship", - :state-abbrev "NY", - :zip "14739"} - {:lat 34.13038179999999, - :lon -89.8219354, - :house-number "2824", - :street "County Road 41", - :city "Oakland", - :state-abbrev "MS", - :zip "38948"} - {:lat 35.5366119, - :lon -91.6837504, - :house-number "204-310", - :street "Staggs Drive", - :city "Pleasant Plains", - :state-abbrev "AR", - :zip "72568"} - {:lat 59.7496642, - :lon -161.9046606, - :house-number "101", - :street "Qanirtuuq Road", - :city "Quinhagak", - :state-abbrev "AK", - :zip "99655"} - {:lat 36.8587898, - :lon -86.06222819999999, - :house-number "1149", - :street "State Park Road", - :city "Lucas", - :state-abbrev "KY", - :zip "42156"} - {:lat 44.51793199999999, - :lon -87.595322, - :house-number "N5334", - :street "Hemlock Lane", - :city "Kewaunee", - :state-abbrev "WI", - :zip "54216"} - {:lat 48.7385587, - :lon -113.2676118, - :house-number "309-605", - :street "Livermore Creek Road", - :city "Browning", - :state-abbrev "MT", - :zip "59417"} - {:lat 36.2050501, - :lon -91.950527, - :house-number "1325", - :street "Wideman Road", - :city "Oxford", - :state-abbrev "AR", - :zip "72565"} - {:lat 39.79783990000001, - :lon -98.91230829999999, - :house-number "150", - :street "Road", - :city "Athol", - :state-abbrev "KS", - :zip "66932"} - {:lat 32.3045134, - :lon -95.5923265, - :house-number "11332-11338", - :street "Sunrise Drive", - :city "Brownsboro", - :state-abbrev "TX", - :zip "75756"} - {:lat 33.966146, - :lon -83.170627, - :house-number "1709", - :street "Crawford Smithonia Road", - :city "Colbert", - :state-abbrev "GA", - :zip "30628"} - {:lat 36.0135077, - :lon -79.83430729999999, - :house-number "34100-34248", - :street "Interstate 85 Business", - :city "Greensboro", - :state-abbrev "NC", - :zip "27406"} - {:lat 31.3418073, - :lon -84.7140546, - :house-number "10993", - :street "Georgia 45", - :city "Damascus", - :state-abbrev "GA", - :zip "39841"} - {:lat 39.6956233, - :lon -93.3732881, - :house-number "21609", - :street "Liv 306", - :city "Hale", - :state-abbrev "MO", - :zip "64643"} - {:lat 59.8500631, - :lon -151.7150523, - :house-number "67945", - :street "Stoddard Avenue", - :city "Anchor Point", - :state-abbrev "AK", - :zip "99556"} - {:lat 38.8952257, - :lon -93.2806047, - :house-number "12851", - :street "Range Line Road", - :city "Houstonia", - :state-abbrev "MO", - :zip "65333"} - {:lat 33.2018945, - :lon -104.568924, - :house-number "242-254", - :street "Old Y O Crossing Road", - :city "Dexter", - :state-abbrev "NM", - :zip "88230"} - {:lat 41.029585, - :lon -93.153317, - :house-number "48908", - :street "310th Avenue", - :city "Russell", - :state-abbrev "IA", - :zip "50238"} - {:lat 26.9229735, - :lon -99.2503988, - :house-number "1803", - :street "Mier Avenue", - :city "Zapata", - :state-abbrev "TX", - :zip "78076"} - {:lat 32.249878, - :lon -88.457056, - :house-number "6311", - :street "Wallace Road", - :city "Meridian", - :state-abbrev "MS", - :zip "39301"} - {:lat 42.0848745, - :lon -90.31647199999999, - :house-number "5874", - :street "500th Avenue", - :city "Miles", - :state-abbrev "IA", - :zip "52064"} - {:lat 38.2981465, - :lon -95.24883729999999, - :house-number "27687", - :street "Northwest 1980th Road", - :city "Garnett", - :state-abbrev "KS", - :zip "66032"} - {:lat 37.8417416, - :lon -106.9536837, - :house-number "463", - :street "County Road 517", - :city "Creede", - :state-abbrev "CO", - :zip "81130"} - {:lat 43.0470953, - :lon -89.9016754, - :house-number "7866-8194", - :street "Byrn Grwyn Road", - :city "Barneveld", - :state-abbrev "WI", - :zip "53507"} - {:lat 43.8723442, - :lon -91.15840879999999, - :house-number "4000", - :street "South Kinney Coulee Road", - :city "Onalaska", - :state-abbrev "WI", - :zip "54650"} - {:lat 33.0377127, - :lon -116.8830116, - :house-number "100-112", - :street "Day Street", - :city "Ramona", - :state-abbrev "CA", - :zip "92065"} - {:lat 46.06438, - :lon -114.161997, - :house-number "2525", - :street "Rocky Mountain Road", - :city "Darby", - :state-abbrev "MT", - :zip "59829"} - {:lat 44.77638719999999, - :lon -69.3937615, - :house-number "407", - :street "Stinson Street", - :city "Pittsfield", - :state-abbrev "ME", - :zip "04967"} - {:lat 46.1943865, - :lon -109.4390499, - :house-number "105-361", - :street "Haase Road", - :city "Ryegate", - :state-abbrev "MT", - :zip "59074"} - {:lat 40.852284, - :lon -86.351699, - :house-number "1213", - :street "East Co Road 600 North", - :city "Logansport", - :state-abbrev "IN", - :zip "46947"} - {:lat 32.486036, - :lon -80.571241, - :house-number "43", - :street "Snapper Lane", - :city "Beaufort", - :state-abbrev "SC", - :zip "29907"} - {:lat 32.706736, - :lon -92.3541071, - :house-number "539", - :street "Mann Road", - :city "Downsville", - :state-abbrev "LA", - :zip "71234"} - {:lat 46.2678617, - :lon -84.752438, - :house-number "18640", - :street "U S F S 3136 Road", - :city "Rudyard", - :state-abbrev "MI", - :zip "49780"} - {:lat 44.0269686, - :lon -95.984054, - :house-number "1201-1239", - :street "40th Avenue", - :city "Lake Wilson", - :state-abbrev "MN", - :zip "56151"} - {:lat 39.5259232, - :lon -118.6169201, - :house-number "8400", - :street "Austin Road", - :city "Fallon", - :state-abbrev "NV", - :zip "89406"} - {:lat 64.86752899999999, - :lon -147.660289, - :house-number "271", - :street "Peters Road", - :city "Fairbanks", - :state-abbrev "AK", - :zip "99712"} - {:lat 37.499158, - :lon -120.553747, - :house-number "3728", - :street "Turlock Road", - :city "Snelling", - :state-abbrev "CA", - :zip "95369"} - {:lat 42.5105867, - :lon -96.0165025, - :house-number "1358-1398", - :street "Ida Avenue", - :city "Moville", - :state-abbrev "IA", - :zip "51039"} - {:lat 32.1078929, - :lon -94.4963762, - :house-number "893", - :street "County Road 151", - :city "Carthage", - :state-abbrev "TX", - :zip "75633"} - {:lat 29.56428, - :lon -98.71687899999999, - :house-number "11220", - :street "Indian Trail", - :city "Helotes", - :state-abbrev "TX", - :zip "78023"} - {:lat 46.871891, - :lon -109.003212, - :house-number "13160", - :street "Surenuff Road", - :city "Forest Grove", - :state-abbrev "MT", - :zip "59441"} - {:lat 37.4667781, - :lon -92.8629958, - :house-number "2059-2087", - :street "Country Trails Road", - :city "Conway", - :state-abbrev "MO", - :zip "65632"} - {:lat 44.6845383, - :lon -116.3997104, - :house-number "2368-2380", - :street "National Forest Development Road 199", - :city "Council", - :state-abbrev "ID", - :zip "83612"} - {:lat 30.0520353, - :lon -95.5334307, - :house-number "19020", - :street "Doerre Road", - :city "Spring", - :state-abbrev "TX", - :zip "77379"} - {:lat 35.250475, - :lon -91.03065199999999, - :house-number "93", - :street "U.S. Highway 64", - :city "McCrory", - :state-abbrev "AR", - :zip "72101"} - {:lat 38.809142, - :lon -85.04777299999999, - :house-number "325", - :street "Plum Creek Road", - :city "Vevay", - :state-abbrev "IN", - :zip "47043"} - {:lat 44.6804526, - :lon -98.13950709999999, - :house-number "18622", - :street "404th Avenue", - :city "Hitchcock", - :state-abbrev "SD", - :zip "57348"} - {:lat 40.7801538, - :lon -98.8175242, - :house-number "10870", - :street "Range Road", - :city "Gibbon", - :state-abbrev "NE", - :zip "68840"} - {:lat 40.9412188, - :lon -104.0093035, - :house-number "64920", - :street "County Road 111", - :city "Grover", - :state-abbrev "CO", - :zip "80729"} - {:lat 46.6835719, - :lon -91.49065929999999, - :house-number "76525", - :street "Middleman Road", - :city "Iron River", - :state-abbrev "WI", - :zip "54847"} - {:lat 46.3307976, - :lon -107.0807389, - :house-number "1360", - :street "Mission Valley Road", - :city "Hysham", - :state-abbrev "MT", - :zip "59038"} - {:lat 41.1401692, - :lon -80.383175, - :house-number "4529", - :street "New Castle Road", - :city "New Wilmington", - :state-abbrev "PA", - :zip "16142"} - {:lat 38.5239585, - :lon -90.2220954, - :house-number "108", - :street "Coulter Road", - :city "Dupo", - :state-abbrev "IL", - :zip "62240"} - {:lat 35.7222386, - :lon -95.5312242, - :house-number "2300", - :street "South 114th Street West", - :city "Muskogee", - :state-abbrev "OK", - :zip "74401"} - {:lat 39.4734539, - :lon -77.850335, - :house-number "1261", - :street "Cedar Lane", - :city "Shepherdstown", - :state-abbrev "WV", - :zip "25443"} - {:lat 47.6225856, - :lon -94.76550069999999, - :house-number "15753", - :street "Gull Lake Loop Road Northeast", - :city "Bemidji", - :state-abbrev "MN", - :zip "56601"} - {:lat 47.8606576, - :lon -97.8522739, - :house-number "4758-4798", - :street "13th Avenue Northeast", - :city "Larimore", - :state-abbrev "ND", - :zip "58251"} - {:lat 42.9046042, - :lon -71.5083034, - :house-number "16", - :street "Cottage Walk", - :city "Bedford", - :state-abbrev "NH", - :zip "03110"} - {:lat 38.0211479, - :lon -84.579594, - :house-number "1501", - :street "Beaumont Centre Lane", - :city "Lexington", - :state-abbrev "KY", - :zip "40513"} - {:lat 37.4740047, - :lon -90.7621156, - :house-number "27645", - :street "Missouri 21", - :city "Lesterville", - :state-abbrev "MO", - :zip "63654"} - {:lat 45.0111897, - :lon -122.9340654, - :house-number "6225-6403", - :street "62nd Avenue Northeast", - :city "Salem", - :state-abbrev "OR", - :zip "97305"} - {:lat 30.34925699999999, - :lon -81.810532, - :house-number "9278", - :street "Derby Acres Lane", - :city "Jacksonville", - :state-abbrev "FL", - :zip "32220"} - {:lat 42.9353519, - :lon -96.8425834, - :house-number "30716", - :street "Greenfield Road", - :city "Burbank", - :state-abbrev "SD", - :zip "57010"} - {:lat 36.4962399, - :lon -76.1600948, - :house-number "193-195", - :street "Eagle Creek Road", - :city "Moyock", - :state-abbrev "NC", - :zip "27958"} - {:lat 38.237254, - :lon -86.96439, - :house-number "9426", - :street "U.S. 231", - :city "Huntingburg", - :state-abbrev "IN", - :zip "47542"} - {:lat 43.557459, - :lon -84.6285341, - :house-number "5782", - :street "South Chippewa Road", - :city "Shepherd", - :state-abbrev "MI", - :zip "48883"} - {:lat 36.9634275, - :lon -84.72491509999999, - :house-number "148", - :street "Cedar Bluff Drive", - :city "Monticello", - :state-abbrev "KY", - :zip "42633"} - {:lat 45.3888078, - :lon -98.7651605, - :house-number "37119", - :street "138th Street", - :city "Mina", - :state-abbrev "SD", - :zip "57451"} - {:lat 48.5907054, - :lon -107.675887, - :house-number "2030", - :street "River Road", - :city "Malta", - :state-abbrev "MT", - :zip "59538"} - {:lat 46.7991253, - :lon -93.42379489999999, - :house-number "26989", - :street "560th Street", - :city "Palisade", - :state-abbrev "MN", - :zip "56469"} - {:lat 25.8698057, - :lon -81.173395, - :house-number "47201", - :street "Tamiami Trail East", - :city "Ochopee", - :state-abbrev "FL", - :zip "34141"} - {:lat 41.4273558, - :lon -89.5586106, - :house-number "19304", - :street "County Road 1550 East", - :city "Princeton", - :state-abbrev "IL", - :zip "61356"} - {:lat 33.3223142, - :lon -85.85702479999999, - :house-number "256", - :street "Mountain View Road", - :city "Ashland", - :state-abbrev "AL", - :zip "36251"} - {:lat 28.0595066, - :lon -82.32739939999999, - :house-number "11898", - :street "Tom Folsom Road", - :city "Thonotosassa", - :state-abbrev "FL", - :zip "33592"} - {:lat 48.686101, - :lon -104.741158, - :house-number "515", - :street "Welliver Road", - :city "Plentywood", - :state-abbrev "MT", - :zip "59254"} - {:lat 42.728378, - :lon -75.58789999999999, - :house-number "132", - :street "Merrifield Road", - :city "Earlville", - :state-abbrev "NY", - :zip "13332"} - {:lat 43.02555660000001, - :lon -123.3808739, - :house-number "2817", - :street "Boomer Hill Road", - :city "Myrtle Creek", - :state-abbrev "OR", - :zip "97457"} - {:lat 41.570531, - :lon -81.368055, - :house-number "7698", - :street "Hidden Valley Drive", - :city "Kirtland", - :state-abbrev "OH", - :zip "44094"} - {:lat 42.6449933, - :lon -99.955286, - :house-number "88413", - :street "426th Avenue", - :city "Ainsworth", - :state-abbrev "NE", - :zip "69210"} - {:lat 37.695751, - :lon -82.15174499999999, - :house-number "455", - :street "Lower Curry Branch Road", - :city "Delbarton", - :state-abbrev "WV", - :zip "25670"} - {:lat 40.425112, - :lon -75.74838, - :house-number "143", - :street "Lobachsville Road", - :city "Fleetwood", - :state-abbrev "PA", - :zip "19522"} - {:lat 29.2867264, - :lon -82.15236399999999, - :house-number "9370", - :street "US-441 South", - :city "Ocala", - :state-abbrev "FL", - :zip "34475"} - {:lat 34.1727417, - :lon -103.3267628, - :house-number "1680", - :street "South Roosevelt Road Q 1/2", - :city "Portales", - :state-abbrev "NM", - :zip "88130"} - {:lat 32.7751699, - :lon -81.56260879999999, - :house-number "3169", - :street "Brannens Bridge Road", - :city "Sylvania", - :state-abbrev "GA", - :zip "30467"} - {:lat 64.71566419999999, - :lon -148.5639821, - :house-number "328", - :street "George Parks Highway", - :city "Fairbanks", - :state-abbrev "AK", - :zip "99709"} - {:lat 43.816909, - :lon -75.421206, - :house-number "6459", - :street "Benton Road", - :city "Lowville", - :state-abbrev "NY", - :zip "13367"} - {:lat 48.4882457, - :lon -101.677415, - :house-number "4412-4472", - :street "74th Street Northwest", - :city "Carpio", - :state-abbrev "ND", - :zip "58725"} - {:lat 39.665793, - :lon -83.993715, - :house-number "812", - :street "Van Eaton Road", - :city "Xenia", - :state-abbrev "OH", - :zip "45385"} - {:lat 38.4189036, - :lon -86.25064789999999, - :house-number "14701-14899", - :street "West Pay Drive Northwest", - :city "Depauw", - :state-abbrev "IN", - :zip "47115"} - {:lat 45.6316468, - :lon -94.4986029, - :house-number "18995", - :street "Quaker Road", - :city "Albany", - :state-abbrev "MN", - :zip "56307"} - {:lat 45.79399, - :lon -120.9666936, - :house-number "1", - :street "Appaloosa Court", - :city "Centerville", - :state-abbrev "WA", - :zip "98613"} - {:lat 45.5686723, - :lon -89.3084379, - :house-number "3507", - :street "North Faust Lake Road", - :city "Rhinelander", - :state-abbrev "WI", - :zip "54501"} - {:lat 42.590495, - :lon -91.2598897, - :house-number "2754", - :street "137th Street", - :city "Earlville", - :state-abbrev "IA", - :zip "52041"} - {:lat 44.64831, - :lon -89.135053, - :house-number "N11196", - :street "Fisher Road", - :city "Iola", - :state-abbrev "WI", - :zip "54945"} - {:lat 36.7122979, - :lon -79.1152288, - :house-number "2150", - :street "Lewis Ferrell Road", - :city "South Boston", - :state-abbrev "VA", - :zip "24592"} - {:lat 44.136243, - :lon -93.1205566, - :house-number "5653", - :street "Northeast 46th Street", - :city "Owatonna", - :state-abbrev "MN", - :zip "55060"} - {:lat 31.8220068, - :lon -86.9211897, - :house-number "911", - :street "George Swamp Road", - :city "Pine Apple", - :state-abbrev "AL", - :zip "36768"} - {:lat 33.1818402, - :lon -93.25339939999999, - :house-number "70", - :street "Columbia Road 265", - :city "Magnolia", - :state-abbrev "AR", - :zip "71753"} - {:lat 32.4786567, - :lon -100.6970409, - :house-number "1-7", - :street "County Road 462", - :city "Loraine", - :state-abbrev "TX", - :zip "79532"} - {:lat 32.098464, - :lon -94.9092257, - :house-number "9798", - :street "County Road 471", - :city "Henderson", - :state-abbrev "TX", - :zip "75654"} - {:lat 47.6184996, - :lon -118.5427508, - :house-number "19602", - :street "7 Springs Dairy Road", - :city "Creston", - :state-abbrev "WA", - :zip "99117"} - {:lat 35.1566478, - :lon -103.9041753, - :house-number "6000-6398", - :street "Q R Az", - :city "Tucumcari", - :state-abbrev "NM", - :zip "88401"} - {:lat 37.3314546, - :lon -103.75748, - :house-number "21000-23904", - :street "County Road 153", - :city "Branson", - :state-abbrev "CO", - :zip "81027"} - {:lat 40.308699, - :lon -81.3817131, - :house-number "4325-4699", - :street "Watson Creek Road Southeast", - :city "Uhrichsville", - :state-abbrev "OH", - :zip "44683"} - {:lat 46.0871158, - :lon -90.2699255, - :house-number "1008-1164", - :street "County Highway FF", - :city "Butternut", - :state-abbrev "WI", - :zip "54514"} - {:lat 43.14766710000001, - :lon -97.7165775, - :house-number "330", - :street "Washington Street", - :city "Scotland", - :state-abbrev "SD", - :zip "57059"} - {:lat 36.9358921, - :lon -87.41141139999999, - :house-number "7330", - :street "Greenville Road", - :city "Hopkinsville", - :state-abbrev "KY", - :zip "42240"} - {:lat 48.51422489999999, - :lon -96.9010531, - :house-number "39296-39998", - :street "440th Street Northwest", - :city "Stephen", - :state-abbrev "MN", - :zip "56757"} - {:lat 48.6913934, - :lon -94.6949867, - :house-number "869", - :street "25th Avenue Southwest", - :city "Baudette", - :state-abbrev "MN", - :zip "56623"} - {:lat 40.1747307, - :lon -79.07656639999999, - :house-number "324", - :street "Spangler Road", - :city "Boswell", - :state-abbrev "PA", - :zip "15531"} - {:lat 35.630887, - :lon -86.95428799999999, - :house-number "834", - :street "Cranford Hollow Road", - :city "Columbia", - :state-abbrev "TN", - :zip "38401"} - {:lat 33.15448140000001, - :lon -111.5760606, - :house-number "899", - :street "West Daniel Road", - :city "San Tan Valley", - :state-abbrev "AZ", - :zip "85143"} - {:lat 63.88414579999999, - :lon -152.3099922, - :house-number "123", - :street "Airport way", - :city "Lake Minchumina", - :state-abbrev "AK", - :zip "99757"} - {:lat 47.0809647, - :lon -99.7587157, - :house-number "2290-2398", - :street "35th Avenue Southeast", - :city "Robinson", - :state-abbrev "ND", - :zip "58478"} - {:lat 40.493902, - :lon -82.893883, - :house-number "512", - :street "South Marion Street", - :city "Cardington", - :state-abbrev "OH", - :zip "43315"} - {:lat 40.8077553, - :lon -88.1398961, - :house-number "1700-1794", - :street "East 2800N Road", - :city "Piper City", - :state-abbrev "IL", - :zip "60959"} - {:lat 39.337351, - :lon -80.111975, - :house-number "539", - :street "Beverly Pike", - :city "Grafton", - :state-abbrev "WV", - :zip "26354"} - {:lat 40.88742420000001, - :lon -99.7145264, - :house-number "76299", - :street "Wiley Canyon Road", - :city "Lexington", - :state-abbrev "NE", - :zip "68850"} - {:lat 40.1645279, - :lon -90.5143044, - :house-number "20518", - :street "Carty Road", - :city "Rushville", - :state-abbrev "IL", - :zip "62681"} - {:lat 39.9229843, - :lon -94.17851689999999, - :house-number "12175-12179", - :street "Oval Avenue", - :city "Winston", - :state-abbrev "MO", - :zip "64689"} - {:lat 33.9322874, - :lon -99.0809671, - :house-number "15551-16213", - :street "Thaxton Pens Road", - :city "Electra", - :state-abbrev "TX", - :zip "76360"} - {:lat 36.035844, - :lon -77.00750239999999, - :house-number "748", - :street "Governors Road", - :city "Windsor", - :state-abbrev "NC", - :zip "27983"} - {:lat 40.6770766, - :lon -101.6959374, - :house-number "74868", - :street "330 Avenue", - :city "Imperial", - :state-abbrev "NE", - :zip "69033"} - {:lat 44.47460299999999, - :lon -93.2118069, - :house-number "32811", - :street "Garrett Avenue", - :city "Northfield", - :state-abbrev "MN", - :zip "55057"} - {:lat 44.711761, - :lon -89.80506299999999, - :house-number "1706", - :street "Fisher Lane", - :city "Mosinee", - :state-abbrev "WI", - :zip "54455"} - {:lat 30.9204382, - :lon -94.80944989999999, - :house-number "181", - :street "Rock Island Road", - :city "Moscow", - :state-abbrev "TX", - :zip "75960"} - {:lat 43.0761346, - :lon -83.8429441, - :house-number "5001-5129", - :street "Deland Road", - :city "Flushing", - :state-abbrev "MI", - :zip "48433"} - {:lat 64.67863249999999, - :lon -148.8758712, - :house-number "67", - :street "George Parks Highway", - :city "Nenana", - :state-abbrev "AK", - :zip "99760"} - {:lat 41.6846909, - :lon -74.4484736, - :house-number "102-270", - :street "Tempaloni Road", - :city "Ellenville", - :state-abbrev "NY", - :zip "12428"} - {:lat 40.2436957, - :lon -92.6596596, - :house-number "22971", - :street "Rye Creek Road", - :city "Kirksville", - :state-abbrev "MO", - :zip "63501"} - {:lat 28.59424, - :lon -96.735123, - :house-number "2412", - :street "Farm to Market 1679", - :city "Port Lavaca", - :state-abbrev "TX", - :zip "77979"} - {:lat 31.0430463, - :lon -81.9712313, - :house-number "13071", - :street "Winokur Road", - :city "Nahunta", - :state-abbrev "GA", - :zip "31553"} - {:lat 37.576548, - :lon -97.8057989, - :house-number "40502", - :street "West 63rd Street South", - :city "Cheney", - :state-abbrev "KS", - :zip "67025"} - {:lat 45.9095164, - :lon -91.19431709999999, - :house-number "10094", - :street "Campfire Circle", - :city "Hayward", - :state-abbrev "WI", - :zip "54843"} - {:lat 36.3751784, - :lon -92.2747564, - :house-number "7039", - :street "U.S. Highway 62", - :city "Mountain Home", - :state-abbrev "AR", - :zip "72653"} - {:lat 45.25263940000001, - :lon -102.3141182, - :house-number "18635", - :street "Usta Road", - :city "Faith", - :state-abbrev "SD", - :zip "57626"} - {:lat 36.8311004, - :lon -95.0253779, - :house-number "447534", - :street "East 130 Road", - :city "Bluejacket", - :state-abbrev "OK", - :zip "74333"} - {:lat 45.2530768, - :lon -90.206575, - :house-number "W3110", - :street "Wood Creek Avenue", - :city "Medford", - :state-abbrev "WI", - :zip "54451"} - {:lat 30.2842935, - :lon -95.5964412, - :house-number "4739-5421", - :street "Honea Egypt Road", - :city "Montgomery", - :state-abbrev "TX", - :zip "77316"} - {:lat 40.8287855, - :lon -98.0202961, - :house-number "1461-1493", - :street "West 10 Road", - :city "Aurora", - :state-abbrev "NE", - :zip "68818"} - {:lat 35.618299, - :lon -81.070032, - :house-number "3427", - :street "Joe Johnson Road", - :city "Catawba", - :state-abbrev "NC", - :zip "28609"} - {:lat 38.1662389, - :lon -95.68379499999999, - :house-number "901-999", - :street "Planter Road", - :city "Burlington", - :state-abbrev "KS", - :zip "66839"} - {:lat 38.3983727, - :lon -100.5071491, - :house-number "74", - :street "West Road 130", - :city "Dighton", - :state-abbrev "KS", - :zip "67839"} - {:lat 35.715097, - :lon -82.821319, - :house-number "650", - :street "Halfmoon Ridge", - :city "Hot Springs", - :state-abbrev "NC", - :zip "28743"} - {:lat 34.4179036, - :lon -102.0900064, - :house-number "2303-2349", - :street "County Road 526", - :city "Dimmitt", - :state-abbrev "TX", - :zip "79027"} - {:lat 37.4976312, - :lon -80.745508, - :house-number "204", - :street "Fritz Run Road", - :city "Forest Hill", - :state-abbrev "WV", - :zip "24935"} - {:lat 40.3159813, - :lon -96.3239148, - :house-number "61345", - :street "724 Road", - :city "Tecumseh", - :state-abbrev "NE", - :zip "68450"} - {:lat 37.7264844, - :lon -92.7464256, - :house-number "26496", - :street "Noland Drive", - :city "Lebanon", - :state-abbrev "MO", - :zip "65536"} - {:lat 46.2965995, - :lon -106.246808, - :house-number "2446", - :street "Cartersville Road", - :city "Rosebud", - :state-abbrev "MT", - :zip "59347"} - {:lat 27.4748437, - :lon -82.3284395, - :house-number "20890", - :street "Florida 64", - :city "Bradenton", - :state-abbrev "FL", - :zip "34212"} - {:lat 31.5021188, - :lon -88.2518348, - :house-number "565", - :street "Ellis Jordan Sawmill Road", - :city "Chatom", - :state-abbrev "AL", - :zip "36518"} - {:lat 35.572079, - :lon -85.157082, - :house-number "701", - :street "Cherokee Ridge Road", - :city "Pikeville", - :state-abbrev "TN", - :zip "37367"} - {:lat 40.5912064, - :lon -85.77687759999999, - :house-number "5399", - :street "West Henderson Court", - :city "Marion", - :state-abbrev "IN", - :zip "46952"} - {:lat 29.693961, - :lon -97.501752, - :house-number "5142", - :street "Fm 1386 Harwood", - :city "Luling", - :state-abbrev "TX", - :zip "78648"} - {:lat 31.2508327, - :lon -103.9209099, - :house-number "300", - :street "County Road 229", - :city "Toyah", - :state-abbrev "TX", - :zip "79785"} - {:lat 44.7851097, - :lon -91.92887069999999, - :house-number "4400-4410", - :street "290th Avenue", - :city "Menomonie", - :state-abbrev "WI", - :zip "54751"} - {:lat 42.8251985, - :lon -102.276917, - :house-number "6680", - :street "240th Lane", - :city "Gordon", - :state-abbrev "NE", - :zip "69343"} - {:lat 44.3388163, - :lon -83.42027739999999, - :house-number "1861", - :street "Davison Road", - :city "East Tawas", - :state-abbrev "MI", - :zip "48730"} - {:lat 62.327013, - :lon -150.0131199, - :house-number "21871", - :street "Hancock Street", - :city "Talkeetna", - :state-abbrev "AK", - :zip "99676"} - {:lat 39.9534575, - :lon -77.6047306, - :house-number "3199", - :street "Fox Hill Drive", - :city "Chambersburg", - :state-abbrev "PA", - :zip "17202"} - {:lat 31.6590638, - :lon -87.53021179999999, - :house-number "4000-5282", - :street "Mabien Lake Road", - :city "Franklin", - :state-abbrev "AL", - :zip "36444"} - {:lat 37.1956175, - :lon -103.9941708, - :house-number "13623-14999", - :street "County Road 127", - :city "Trinchera", - :state-abbrev "CO", - :zip "81081"} - {:lat 46.6717504, - :lon -116.7632031, - :house-number "1043-1057", - :street "Bethel Road", - :city "Troy", - :state-abbrev "ID", - :zip "83871"} - {:lat 39.7178499, - :lon -88.9226398, - :house-number "8417-9203", - :street "Walmsley Road", - :city "Macon", - :state-abbrev "IL", - :zip "62544"} - {:lat 39.30385709999999, - :lon -87.4732437, - :house-number "3675", - :street "West Evans Drive", - :city "Terre Haute", - :state-abbrev "IN", - :zip "47802"} - {:lat 31.7716629, - :lon -91.59559, - :house-number "974", - :street "Highway 567", - :city "Clayton", - :state-abbrev "LA", - :zip "71326"} - {:lat 42.4732457, - :lon -89.1208698, - :house-number "4002", - :street "Yale Bridge Road", - :city "Rockton", - :state-abbrev "IL", - :zip "61072"} - {:lat 40.2688392, - :lon -96.9157705, - :house-number "26028", - :street "Southwest 142 Road", - :city "Beatrice", - :state-abbrev "NE", - :zip "68310"} - {:lat 44.2619463, - :lon -121.1254701, - :house-number "2899", - :street "Oregon 126", - :city "Redmond", - :state-abbrev "OR", - :zip "97756"} - {:lat 34.90789, - :lon -84.214333, - :house-number "100", - :street "Echo Valley Road", - :city "Morganton", - :state-abbrev "GA", - :zip "30560"} - {:lat 41.2484208, - :lon -89.6577463, - :house-number "10000-10484", - :street "County Road 700 North", - :city "Buda", - :state-abbrev "IL", - :zip "61314"} - {:lat 31.6778338, - :lon -95.05052529999999, - :house-number "2200", - :street "County Road 2501", - :city "Alto", - :state-abbrev "TX", - :zip "75925"} - {:lat 34.788219, - :lon -87.5892764, - :house-number "1815", - :street "River Road", - :city "Muscle Shoals", - :state-abbrev "AL", - :zip "35661"} - {:lat 44.0660442, - :lon -96.8579036, - :house-number "46756", - :street "229th Street", - :city "Colman", - :state-abbrev "SD", - :zip "57017"} - {:lat 35.1008912, - :lon -93.7577212, - :house-number "602-606", - :street "Catlett Lane", - :city "Magazine", - :state-abbrev "AR", - :zip "72943"} - {:lat 42.0012328, - :lon -93.5811332, - :house-number "1813-1899", - :street "560th Avenue", - :city "Ames", - :state-abbrev "IA", - :zip "50010"} - {:lat 42.1118798, - :lon -86.07009219999999, - :house-number "84000-87998", - :street "54th Street", - :city "Decatur", - :state-abbrev "MI", - :zip "49045"} - {:lat 36.8677232, - :lon -84.2397771, - :house-number "813", - :street "Rosetown Church Road", - :city "Corbin", - :state-abbrev "KY", - :zip "40701"} - {:lat 44.77214, - :lon -73.4780679, - :house-number "207", - :street "Ashley Road", - :city "Plattsburgh", - :state-abbrev "NY", - :zip "12901"} - {:lat 45.3850832, - :lon -105.9586621, - :house-number "108", - :street "15 Mile Road", - :city "Sonnette", - :state-abbrev "MT", - :zip "59317"} - {:lat 40.29477139999999, - :lon -74.108205, - :house-number "7", - :street "Duke Court", - :city "Tinton Falls", - :state-abbrev "NJ", - :zip "07724"} - {:lat 29.796155, - :lon -96.17647799999999, - :house-number "972", - :street "FM 2187 Road", - :city "Sealy", - :state-abbrev "TX", - :zip "77474"} - {:lat 48.5031535, - :lon -122.8041454, - :house-number "134-372", - :street "Armitage Road", - :city "Blakely Island", - :state-abbrev "WA", - :zip "98222"} - {:lat 46.1421636, - :lon -102.9751943, - :house-number "1001-1075", - :street "17th Street Northwest", - :city "Reeder", - :state-abbrev "ND", - :zip "58649"} - {:lat 43.886111, - :lon -92.16992599999999, - :house-number "9241", - :street "County Road 10 Southeast", - :city "Chatfield", - :state-abbrev "MN", - :zip "55923"} - {:lat 30.9297181, - :lon -90.5465336, - :house-number "74212", - :street "Wyndotte Road", - :city "Kentwood", - :state-abbrev "LA", - :zip "70444"} - {:lat 38.920534, - :lon -94.180622, - :house-number "34604", - :street "East Hammond Road", - :city "Lone Jack", - :state-abbrev "MO", - :zip "64070"} - {:lat 39.8700699, - :lon -96.69368109999999, - :house-number "1000-1098", - :street "7th Road", - :city "Marysville", - :state-abbrev "KS", - :zip "66508"} - {:lat 41.69481, - :lon -87.57314679999999, - :house-number "11001", - :street "South Jeffery Avenue", - :city "Chicago", - :state-abbrev "IL", - :zip "60617"} - {:lat 32.2916274, - :lon -110.8232995, - :house-number "4645-4653", - :street "North Black Rock Place", - :city "Tucson", - :state-abbrev "AZ", - :zip "85750"} - {:lat 44.5974832, - :lon -85.6202182, - :house-number "2125", - :street "Clous Road", - :city "Kingsley", - :state-abbrev "MI", - :zip "49649"} - {:lat 33.43045740000001, - :lon -80.2814899, - :house-number "729", - :street "Ferguson Landing Way", - :city "Eutawville", - :state-abbrev "SC", - :zip "29048"} - {:lat 38.52552, - :lon -106.162496, - :house-number "7005", - :street "County Road 221", - :city "Salida", - :state-abbrev "CO", - :zip "81201"} - {:lat 41.1347313, - :lon -75.27136829999999, - :house-number "588", - :street "Cranberry Creek Road", - :city "Cresco", - :state-abbrev "PA", - :zip "18326"} - {:lat 44.805811, - :lon -106.662583, - :house-number "366", - :street "South R Buffalo Creek Road", - :city "Sheridan", - :state-abbrev "WY", - :zip "82801"} - {:lat 43.105184, - :lon -92.559314, - :house-number "3383", - :street "180th Street", - :city "Ionia", - :state-abbrev "IA", - :zip "50645"} - {:lat 40.171608, - :lon -88.153183, - :house-number "1652", - :street "County Road 2000 North", - :city "Urbana", - :state-abbrev "IL", - :zip "61802"} - {:lat 35.175917, - :lon -78.318257, - :house-number "163", - :street "Holiday Lane", - :city "Newton Grove", - :state-abbrev "NC", - :zip "28366"} - {:lat 37.26021110000001, - :lon -100.1818605, - :house-number "15454-15806", - :street "27 Road", - :city "Fowler", - :state-abbrev "KS", - :zip "67844"} - {:lat 44.3558952, - :lon -102.4925634, - :house-number "17938-17944", - :street "River Road", - :city "Wasta", - :state-abbrev "SD", - :zip "57791"} - {:lat 35.820176, - :lon -87.7719951, - :house-number "719", - :street "Lost Creek Road", - :city "Lobelville", - :state-abbrev "TN", - :zip "37097"} - {:lat 38.3082323, - :lon -89.4215566, - :house-number "15093-15749", - :street "Nixon Road", - :city "Nashville", - :state-abbrev "IL", - :zip "62263"} - {:lat 35.8872101, - :lon -78.68693979999999, - :house-number "3001", - :street "Howard Road", - :city "Raleigh", - :state-abbrev "NC", - :zip "27613"} - {:lat 34.1413335, - :lon -96.00751199999999, - :house-number "3078-3088", - :street "Mossy Lake Road", - :city "Bennington", - :state-abbrev "OK", - :zip "74723"} - {:lat 46.48775879999999, - :lon -90.99776849999999, - :house-number "63201-63227", - :street "Franciskovich Road", - :city "Mason", - :state-abbrev "WI", - :zip "54856"} - {:lat 37.7011357, - :lon -86.0150568, - :house-number "6626-7298", - :street "Long Grove Road", - :city "Elizabethtown", - :state-abbrev "KY", - :zip "42701"} - {:lat 41.77538, - :lon -92.8673, - :house-number "11449", - :street "North 67th Avenue East", - :city "Kellogg", - :state-abbrev "IA", - :zip "50135"} - {:lat 39.778217, - :lon -105.29644, - :house-number "26102", - :street "Golden Gate Canyon Road", - :city "Golden", - :state-abbrev "CO", - :zip "80403"} - {:lat 38.620669, - :lon -104.406894, - :house-number "22771", - :street "Sagebrush Lane", - :city "Colorado Springs", - :state-abbrev "CO", - :zip "80928"} - {:lat 42.287588, - :lon -104.8312269, - :house-number "262-278", - :street "Wendover Road", - :city "Guernsey", - :state-abbrev "WY", - :zip "82214"} - {:lat 46.6744302, - :lon -98.6800164, - :house-number "8453-8499", - :street "51st Street Southeast", - :city "Montpelier", - :state-abbrev "ND", - :zip "58472"} - {:lat 29.355971, - :lon -95.628168, - :house-number "22416", - :street "East Farm to Market 1462", - :city "Damon", - :state-abbrev "TX", - :zip "77430"} - {:lat 32.154442, - :lon -90.16464719999999, - :house-number "193-203", - :street "Zelma Lane", - :city "Florence", - :state-abbrev "MS", - :zip "39073"} - {:lat 36.3033271, - :lon -85.7327644, - :house-number "391", - :street "Frizzell Hollow Road", - :city "Gainesboro", - :state-abbrev "TN", - :zip "38562"} - {:lat 40.5445495, - :lon -100.6019921, - :house-number "38619", - :street "Road 740", - :city "Curtis", - :state-abbrev "NE", - :zip "69025"} - {:lat 26.249905, - :lon -97.63499449999999, - :house-number "21344", - :street "Krupala Road", - :city "Harlingen", - :state-abbrev "TX", - :zip "78550"} - {:lat 29.7187481, - :lon -97.91061529999999, - :house-number "4201", - :street "Old Lehman Road", - :city "Kingsbury", - :state-abbrev "TX", - :zip "78638"} - {:lat 35.114211, - :lon -81.7128989, - :house-number "1403", - :street "Chesnee Highway", - :city "Gaffney", - :state-abbrev "SC", - :zip "29341"} - {:lat 44.0759145, - :lon -89.10181390000001, - :house-number "4441", - :street "Buttercup Drive", - :city "Redgranite", - :state-abbrev "WI", - :zip "54970"} - {:lat 35.6755522, - :lon -78.76927649999999, - :house-number "3904", - :street "Summer Brook Drive", - :city "Apex", - :state-abbrev "NC", - :zip "27539"} - {:lat 44.7139688, - :lon -105.1429957, - :house-number "1311", - :street "Heald Road", - :city "Gillette", - :state-abbrev "WY", - :zip "82731"} - {:lat 36.397726, - :lon -88.528498, - :house-number "2285", - :street "Hunt Road", - :city "Cottage Grove", - :state-abbrev "TN", - :zip "38224"} - {:lat 38.136482, - :lon -80.790978, - :house-number "4182", - :street "Upper Anglins Creek", - :city "Mount Nebo", - :state-abbrev "WV", - :zip "26679"} - {:lat 43.9163659, - :lon -73.3899132, - :house-number "1800-1952", - :street "Lake Street", - :city "Shoreham", - :state-abbrev "VT", - :zip "05770"} - {:lat 35.0182001, - :lon -76.76226489999999, - :house-number "106", - :street "Creekside Lane", - :city "Oriental", - :state-abbrev "NC", - :zip "28571"} - {:lat 48.9439658, - :lon -104.8569088, - :house-number "295-299", - :street "Big Valley Road", - :city "Outlook", - :state-abbrev "MT", - :zip "59252"} - {:lat 40.4370093, - :lon -79.6483465, - :house-number "3475", - :street "Lake Ridge Drive", - :city "Murrysville", - :state-abbrev "PA", - :zip "15668"} - {:lat 40.711495, - :lon -74.929238, - :house-number "1", - :street "Spring Brook Lane", - :city "Glen Gardner", - :state-abbrev "NJ", - :zip "08826"} - {:lat 32.4896481, - :lon -99.7583769, - :house-number "3060", - :street "West Overland Trail", - :city "Abilene", - :state-abbrev "TX", - :zip "79603"} - {:lat 34.6214936, - :lon -78.91809429999999, - :house-number "166", - :street "Bessie", - :city "Lumberton", - :state-abbrev "NC", - :zip "28358"} - {:lat 42.2472548, - :lon -121.3915386, - :house-number "1517-4093", - :street "Bly Mountain Cutoff Road", - :city "Bonanza", - :state-abbrev "OR", - :zip "97623"} - {:lat 42.6855014, - :lon -76.2889201, - :house-number "1-661", - :street "Poverty Lane", - :city "Cortland", - :state-abbrev "NY", - :zip "13045"} - {:lat 44.5892651, - :lon -94.2497736, - :house-number "48824", - :street "250th Street", - :city "Gaylord", - :state-abbrev "MN", - :zip "55334"} - {:lat 47.272479, - :lon -116.3010206, - :house-number "4500", - :street "Gold Ridge Road", - :city "Saint Maries", - :state-abbrev "ID", - :zip "83861"} - {:lat 39.5533571, - :lon -97.2362132, - :house-number "801-881", - :street "30th Road", - :city "Clifton", - :state-abbrev "KS", - :zip "66937"} - {:lat 40.6242207, - :lon -93.865386, - :house-number "28765", - :street "U.S. 69", - :city "Davis City", - :state-abbrev "IA", - :zip "50065"} - {:lat 41.3743424, - :lon -94.6883993, - :house-number "1054-1076", - :street "190th Street", - :city "Anita", - :state-abbrev "IA", - :zip "50020"} - {:lat 41.00518599999999, - :lon -91.153881, - :house-number "136", - :street "Centennial Drive", - :city "Mediapolis", - :state-abbrev "IA", - :zip "52637"} - {:lat 36.8508045, - :lon -76.24297589999999, - :house-number "3448-3460", - :street "Trant Avenue", - :city "Norfolk", - :state-abbrev "VA", - :zip "23502"} - {:lat 35.5537, - :lon -85.543933, - :house-number "17162", - :street "Tennessee 8", - :city "McMinnville", - :state-abbrev "TN", - :zip "37110"} - {:lat 48.5054476, - :lon -113.9800674, - :house-number "113", - :street "Logan Lane", - :city "West Glacier", - :state-abbrev "MT", - :zip "59936"} - {:lat 44.6072478, - :lon -97.04753799999999, - :house-number "19149-19199", - :street "458th Avenue", - :city "Castlewood", - :state-abbrev "SD", - :zip "57223"} - {:lat 42.1794235, - :lon -90.1845962, - :house-number "6456-7908", - :street "Camp Creek Road", - :city "Savanna", - :state-abbrev "IL", - :zip "61074"} - {:lat 47.1812463, - :lon -94.1146838, - :house-number "3037-3167", - :street "104th Street Northeast", - :city "Remer", - :state-abbrev "MN", - :zip "56672"} - {:lat 63.5664678, - :lon -148.8142708, - :house-number "224", - :street "George Parks Highway", - :city "Denali National Park and Preserve", - :state-abbrev "AK", - :zip "99755"} - {:lat 42.54258309999999, - :lon -99.48099270000002, - :house-number "87743", - :street "450th Avenue", - :city "Bassett", - :state-abbrev "NE", - :zip "68714"} - {:lat 33.3037867, - :lon -91.7920324, - :house-number "244", - :street "Ashley Road", - :city "Hamburg", - :state-abbrev "AR", - :zip "71646"} - {:lat 36.607847, - :lon -96.9313729, - :house-number "939", - :street "80 Road", - :city "Ponca City", - :state-abbrev "OK", - :zip "74604"} - {:lat 46.466885, - :lon -120.392185, - :house-number "2141", - :street "Donald Wapato Road", - :city "Wapato", - :state-abbrev "WA", - :zip "98951"} - {:lat 42.6573649, - :lon -98.5648155, - :house-number "88536", - :street "496th Avenue", - :city "O'Neill", - :state-abbrev "NE", - :zip "68763"} - {:lat 40.97705, - :lon -104.282042, - :house-number "67125", - :street "County Road 83", - :city "Grover", - :state-abbrev "CO", - :zip "80729"} - {:lat 43.2851418, - :lon -115.1254857, - :house-number "9546", - :street "County Line Road", - :city "Hill City", - :state-abbrev "ID", - :zip "83337"} - {:lat 34.5428605, - :lon -88.07217159999999, - :house-number "2508", - :street "County Road 90", - :city "Red Bay", - :state-abbrev "AL", - :zip "35582"} - {:lat 33.3112533, - :lon -88.9530561, - :house-number "444", - :street "York Road", - :city "Sturgis", - :state-abbrev "MS", - :zip "39769"} - {:lat 38.290215, - :lon -75.33184709999999, - :house-number "8410", - :street "Ninepin Branch Road", - :city "Berlin", - :state-abbrev "MD", - :zip "21811"} - {:lat 48.3250683, - :lon -99.4660873, - :house-number "5317-5323", - :street "63rd Street Northeast", - :city "Leeds", - :state-abbrev "ND", - :zip "58346"} - {:lat 32.85935, - :lon -89.90156449999999, - :house-number "504-766", - :street "Burrell Road", - :city "Pickens", - :state-abbrev "MS", - :zip "39146"} - {:lat 32.0280591, - :lon -91.83638619999999, - :house-number "572-798", - :street "Louisiana 871", - :city "Winnsboro", - :state-abbrev "LA", - :zip "71295"} - {:lat 32.2929204, - :lon -88.7441599, - :house-number "5396-5492", - :street "Valley Road", - :city "Meridian", - :state-abbrev "MS", - :zip "39307"} - {:lat 43.318729, - :lon -85.77300699999999, - :house-number "1152", - :street "East 128th Street", - :city "Grant", - :state-abbrev "MI", - :zip "49327"} - {:lat 36.4598366, - :lon -85.3474748, - :house-number "100-312", - :street "Hunter Cove Road", - :city "Allons", - :state-abbrev "TN", - :zip "38541"} - {:lat 43.4705134, - :lon -88.0708804, - :house-number "7701-7759", - :street "Meadow Road", - :city "West Bend", - :state-abbrev "WI", - :zip "53090"} - {:lat 28.854199, - :lon -96.92175739999999, - :house-number "611", - :street "Foster Field Drive", - :city "Victoria", - :state-abbrev "TX", - :zip "77904"} - {:lat 39.27953000000001, - :lon -76.01646099999999, - :house-number "11020", - :street "Perkins Hill Road", - :city "Chestertown", - :state-abbrev "MD", - :zip "21620"} - {:lat 30.8716958, - :lon -81.5971895, - :house-number "155", - :street "Sunrise Drive", - :city "Woodbine", - :state-abbrev "GA", - :zip "31569"} - {:lat 33.9551463, - :lon -83.8301824, - :house-number "2200-2998", - :street "Harfield Court Southeast", - :city "Bethlehem", - :state-abbrev "GA", - :zip "30620"} - {:lat 44.5646367, - :lon -100.3644203, - :house-number "19400-19484", - :street "288th Avenue", - :city "Pierre", - :state-abbrev "SD", - :zip "57501"} - {:lat 40.46128239999999, - :lon -80.6199252, - :house-number "443", - :street "Fairview Heights Drive", - :city "Toronto", - :state-abbrev "OH", - :zip "43964"} - {:lat 46.22892179999999, - :lon -93.0031521, - :house-number "14256", - :street "Dahlstein Road", - :city "Finlayson", - :state-abbrev "MN", - :zip "55735"} - {:lat 28.171865, - :lon -99.040449, - :house-number "2065", - :street "Huajuco Lane Lasalle Co", - :city "Cotulla", - :state-abbrev "TX", - :zip "78014"} - {:lat 40.0093863, - :lon -105.4231668, - :house-number "6181", - :street "Sugarloaf Road", - :city "Boulder", - :state-abbrev "CO", - :zip "80302"} - {:lat 47.58456349999999, - :lon -106.1512125, - :house-number "1798", - :street "Montana 24", - :city "Circle", - :state-abbrev "MT", - :zip "59215"} - {:lat 40.510231, - :lon -104.974479, - :house-number "5317", - :street "South Co Road 3f", - :city "Fort Collins", - :state-abbrev "CO", - :zip "80528"} - {:lat 42.3615365, - :lon -71.3522355, - :house-number "8", - :street "Melody Lane", - :city "Wayland", - :state-abbrev "MA", - :zip "01778"} - {:lat 47.873104, - :lon -117.388124, - :house-number "23626", - :street "North Perry Road", - :city "Colbert", - :state-abbrev "WA", - :zip "99005"} - {:lat 41.2992808, - :lon -99.6296247, - :house-number "79369", - :street "Drive 439", - :city "Broken Bow", - :state-abbrev "NE", - :zip "68822"} - {:lat 35.8696915, - :lon -79.6465757, - :house-number "5346", - :street "Ramseur Julian Road", - :city "Liberty", - :state-abbrev "NC", - :zip "27298"} - {:lat 45.7665632, - :lon -99.2717316, - :house-number "34601-34605", - :street "112th Street", - :city "Eureka", - :state-abbrev "SD", - :zip "57437"} - {:lat 34.808124, - :lon -86.91013699999999, - :house-number "17400", - :street "Oakdale Road", - :city "Athens", - :state-abbrev "AL", - :zip "35613"} - {:lat 62.9602798, - :lon -143.353976, - :house-number "800", - :street "Tok Highway", - :city "Gakona", - :state-abbrev "AK", - :zip "99586"} - {:lat 44.005569, - :lon -69.320786, - :house-number "308", - :street "Cushing Road", - :city "Friendship", - :state-abbrev "ME", - :zip "04547"} - {:lat 41.3181687, - :lon -96.17180270000001, - :house-number "16500-16548", - :street "Bauman Circle", - :city "Omaha", - :state-abbrev "NE", - :zip "68116"} - {:lat 45.2915529, - :lon -96.4570057, - :house-number "101-151", - :street "Main Street", - :city "Big Stone City", - :state-abbrev "SD", - :zip "57216"} - {:lat 41.046256, - :lon -87.95983199999999, - :house-number "4777", - :street "West 5000 Road South", - :city "Kankakee", - :state-abbrev "IL", - :zip "60901"} - {:lat 30.415433, - :lon -87.54827499999999, - :house-number "13151", - :street "County Road 95", - :city "Elberta", - :state-abbrev "AL", - :zip "36530"} - {:lat 29.0252997, - :lon -98.50175449999999, - :house-number "300", - :street "Hillside", - :city "Pleasanton", - :state-abbrev "TX", - :zip "78064"} - {:lat 44.10125660000001, - :lon -96.5869936, - :house-number "22656", - :street "South Dakota 13", - :city "Flandreau", - :state-abbrev "SD", - :zip "57028"} - {:lat 47.6908723, - :lon -117.5036908, - :house-number "3201-4915", - :street "North Indian Bluff Road", - :city "Spokane", - :state-abbrev "WA", - :zip "99224"} - {:lat 32.3482789, - :lon -98.16811640000002, - :house-number "27485", - :street "North Sh108", - :city "Stephenville", - :state-abbrev "TX", - :zip "76401"} - {:lat 65.068141, - :lon -146.1060121, - :house-number "17030", - :street "Chena Hot Springs Road", - :city "Fairbanks", - :state-abbrev "AK", - :zip "99712"} - {:lat 46.807219, - :lon -68.121844, - :house-number "1747", - :street "Washburn Road", - :city "Washburn", - :state-abbrev "ME", - :zip "04786"} - {:lat 41.4077159, - :lon -91.79534540000002, - :house-number "1795", - :street "170th Street", - :city "Wellman", - :state-abbrev "IA", - :zip "52356"} - {:lat 29.9355215, - :lon -96.1070745, - :house-number "42560", - :street "Harpers Church Road", - :city "Bellville", - :state-abbrev "TX", - :zip "77418"} - {:lat 29.7829284, - :lon -97.2045977, - :house-number "6921", - :street "Three Mile Road", - :city "Flatonia", - :state-abbrev "TX", - :zip "78941"} - {:lat 37.299598, - :lon -113.101774, - :house-number "9", - :street "Kolob Terrace Road", - :city "Virgin", - :state-abbrev "UT", - :zip "84779"} - {:lat 36.190323, - :lon -96.37033199999999, - :house-number "2229", - :street "North Cocomo Loop", - :city "Mannford", - :state-abbrev "OK", - :zip "74044"} - {:lat 44.9343023, - :lon -71.68654409999999, - :house-number "185-1883", - :street "Sable Mountain Road", - :city "Canaan", - :state-abbrev "VT", - :zip "05903"} - {:lat 33.9722673, - :lon -91.6113769, - :house-number "15729", - :street "Arkansas 114", - :city "Gould", - :state-abbrev "AR", - :zip "71643"} - {:lat 40.1208677, - :lon -78.13654430000001, - :house-number "2139", - :street "Schenck Road", - :city "Wells Tannery", - :state-abbrev "PA", - :zip "16691"} - {:lat 32.5836029, - :lon -85.344824, - :house-number "575", - :street "Lee Road 40", - :city "Opelika", - :state-abbrev "AL", - :zip "36804"} - {:lat 32.1291719, - :lon -98.48731199999999, - :house-number "770", - :street "County Road 462", - :city "De Leon", - :state-abbrev "TX", - :zip "76444"} - {:lat 39.5802385, - :lon -103.5189258, - :house-number "9794-10792", - :street "County Road 1", - :city "Genoa", - :state-abbrev "CO", - :zip "80818"} - {:lat 37.46576719999999, - :lon -103.4180605, - :house-number "32523-32943", - :street "County Road 193.5", - :city "Kim", - :state-abbrev "CO", - :zip "81049"} - {:lat 43.5907349, - :lon -100.0809238, - :house-number "26279", - :street "304th Avenue", - :city "Winner", - :state-abbrev "SD", - :zip "57580"} - {:lat 40.7147525, - :lon -85.39709859999999, - :house-number "2748", - :street "East 800 South", - :city "Warren", - :state-abbrev "IN", - :zip "46792"} - {:lat 35.6193693, - :lon -80.34309979999999, - :house-number "1550", - :street "Poole Road", - :city "Salisbury", - :state-abbrev "NC", - :zip "28146"} - {:lat 41.5718425, - :lon -74.151854, - :house-number "334-336", - :street "Lake Osiris Road", - :city "Walden", - :state-abbrev "NY", - :zip "12586"} - {:lat 43.314036, - :lon -96.83119699999999, - :house-number "46865", - :street "281st Street", - :city "Lennox", - :state-abbrev "SD", - :zip "57039"} - {:lat 42.841993, - :lon -92.182942, - :house-number "1444", - :street "Tahoe Avenue", - :city "Sumner", - :state-abbrev "IA", - :zip "50674"} - {:lat 36.4249024, - :lon -90.1034226, - :house-number "29846", - :street "County Road 305", - :city "Campbell", - :state-abbrev "MO", - :zip "63933"} - {:lat 42.2602933, - :lon -121.5564791, - :house-number "19047", - :street "Highway 140 East", - :city "Dairy", - :state-abbrev "OR", - :zip "97625"} - {:lat 35.145161, - :lon -113.511055, - :house-number "9161", - :street "North Concho Drive", - :city "Kingman", - :state-abbrev "AZ", - :zip "86401"} - {:lat 44.9144835, - :lon -69.1501892, - :house-number "256", - :street "Clark's Hill Road", - :city "Stetson", - :state-abbrev "ME", - :zip "04488"} - {:lat 46.133132, - :lon -112.668086, - :house-number "2627", - :street "Telegraph Gulch", - :city "Butte", - :state-abbrev "MT", - :zip "59701"} - {:lat 36.1289603, - :lon -87.55618969999999, - :house-number "1588", - :street "Tummins Road", - :city "McEwen", - :state-abbrev "TN", - :zip "37101"} - {:lat 40.4173527, - :lon -74.3017223, - :house-number "145-175", - :street "Jake Brown Road", - :city "Old Bridge Township", - :state-abbrev "NJ", - :zip "08857"} - {:lat 48.0951728, - :lon -101.3786815, - :house-number "6001", - :street "135th Avenue Southwest", - :city "Minot", - :state-abbrev "ND", - :zip "58701"} - {:lat 41.514026, - :lon -93.362155, - :house-number "402", - :street "Molly Court", - :city "Runnells", - :state-abbrev "IA", - :zip "50237"} - {:lat 38.358538, - :lon -87.102161, - :house-number "4410", - :street "South 3rd Street", - :city "Velpen", - :state-abbrev "IN", - :zip "47590"} - {:lat 30.6230283, - :lon -91.0465433, - :house-number "12512", - :street "Greenwell Spring Pt Hudso Road", - :city "Zachary", - :state-abbrev "LA", - :zip "70791"} - {:lat 40.7192098, - :lon -78.11898719999999, - :house-number "1446", - :street "Centre Line Road", - :city "Warriors Mark", - :state-abbrev "PA", - :zip "16877"} - {:lat 39.3107383, - :lon -122.5328865, - :house-number "4475", - :street "Lodoga Stonyford Road", - :city "Stonyford", - :state-abbrev "CA", - :zip "95979"} - {:lat 43.9247077, - :lon -69.8961209, - :house-number "261", - :street "Old Bath Road", - :city "Brunswick", - :state-abbrev "ME", - :zip "04011"} - {:lat 38.2939375, - :lon -95.76334899999999, - :house-number "1825", - :street "Kafir Road", - :city "Burlington", - :state-abbrev "KS", - :zip "66839"} - {:lat 38.7039277, - :lon -93.25010549999999, - :house-number "901", - :street "South Limit Avenue", - :city "Sedalia", - :state-abbrev "MO", - :zip "65301"} - {:lat 31.6810774, - :lon -92.2265779, - :house-number "118", - :street "Belah Cemetery Road", - :city "Trout", - :state-abbrev "LA", - :zip "71371"} - {:lat 39.169834, - :lon -83.60190999999999, - :house-number "5794", - :street "South R 247", - :city "Hillsboro", - :state-abbrev "OH", - :zip "45133"} - {:lat 61.99231690000001, - :lon -146.7686644, - :house-number "2446", - :street "Glenn Highway", - :city "Glennallen", - :state-abbrev "AK", - :zip "99588"} - {:lat 38.3477305, - :lon -95.6188909, - :house-number "2200-2298", - :street "Shetland Road", - :city "Waverly", - :state-abbrev "KS", - :zip "66871"} - {:lat 36.9082415, - :lon -76.90512439999999, - :house-number "8332", - :street "Bell Avenue", - :city "Ivor", - :state-abbrev "VA", - :zip "23866"} - {:lat 41.1928259, - :lon -74.66955899999999, - :house-number "111", - :street "Haggerty Road", - :city "Wantage", - :state-abbrev "NJ", - :zip "07461"} - {:lat 32.7562537, - :lon -83.8201728, - :house-number "5700", - :street "Stokes Road", - :city "Lizella", - :state-abbrev "GA", - :zip "31052"} - {:lat 29.3102213, - :lon -95.74301249999999, - :house-number "19028-19030", - :street "Old Guy Road", - :city "Damon", - :state-abbrev "TX", - :zip "77430"} - {:lat 39.7652264, - :lon -93.3202542, - :house-number "28757", - :street "Bear Drive", - :city "Meadville", - :state-abbrev "MO", - :zip "64659"} - {:lat 39.2299951, - :lon -87.61143679999999, - :house-number "21000-22464", - :street "County Road 550 North", - :city "West Union", - :state-abbrev "IL", - :zip "62477"} - {:lat 39.2699827, - :lon -77.43403359999999, - :house-number "1619-1631", - :street "Park Mills Road", - :city "Adamstown", - :state-abbrev "MD", - :zip "21710"} - {:lat 33.9215182, - :lon -80.05810799999999, - :house-number "8080", - :street "Forge Road", - :city "Turbeville", - :state-abbrev "SC", - :zip "29162"} - {:lat 34.6621039, - :lon -102.139477, - :house-number "650-698", - :street "County Road 523", - :city "Happy", - :state-abbrev "TX", - :zip "79042"} - {:lat 31.809885, - :lon -86.4015411, - :house-number "1183", - :street "Center Ridge Road", - :city "Luverne", - :state-abbrev "AL", - :zip "36049"} - {:lat 41.3964881, - :lon -84.4180001, - :house-number "3001-3941", - :street "Wieland Road", - :city "Defiance", - :state-abbrev "OH", - :zip "43512"} - {:lat 29.7936609, - :lon -93.18750399999999, - :house-number "632", - :street "Wakefield Road", - :city "Cameron", - :state-abbrev "LA", - :zip "70631"} - {:lat 41.272848, - :lon -104.617244, - :house-number "2080", - :street "Road 136", - :city "Cheyenne", - :state-abbrev "WY", - :zip "82009"} - {:lat 32.645886, - :lon -87.5942093, - :house-number "12771", - :street "Al Highway 25", - :city "Greensboro", - :state-abbrev "AL", - :zip "36744"} - {:lat 31.804467, - :lon -98.63238, - :house-number "2000", - :street "Ranch Road 573", - :city "Comanche", - :state-abbrev "TX", - :zip "76442"} - {:lat 41.14615440000001, - :lon -92.5845738, - :house-number "22087", - :street "Columbia Road", - :city "Eddyville", - :state-abbrev "IA", - :zip "52553"} - {:lat 39.3056362, - :lon -83.0713213, - :house-number "1329-2599", - :street "Alum Cliff Road", - :city "Chillicothe", - :state-abbrev "OH", - :zip "45601"} - {:lat 37.271048, - :lon -92.973175, - :house-number "1482", - :street "Ridge Road", - :city "Marshfield", - :state-abbrev "MO", - :zip "65706"} - {:lat 42.082152, - :lon -78.66308099999999, - :house-number "648", - :street "Parkside Drive", - :city "Limestone", - :state-abbrev "NY", - :zip "14753"} - {:lat 44.5315223, - :lon -106.2157111, - :house-number "2799", - :street "Tipperary Road", - :city "Arvada", - :state-abbrev "WY", - :zip "82831"} - {:lat 46.4295937, - :lon -101.6249409, - :house-number "5746-5768", - :street "68th Street Southwest", - :city "Carson", - :state-abbrev "ND", - :zip "58529"} - {:lat 36.5835077, - :lon -92.247591, - :house-number "220", - :street "Bluetick Ridge Lane", - :city "Tecumseh", - :state-abbrev "MO", - :zip "65760"} - {:lat 38.1613425, - :lon -91.60582130000002, - :house-number "1183", - :street "State Highway U", - :city "Bland", - :state-abbrev "MO", - :zip "65014"} - {:lat 37.7563672, - :lon -95.098474, - :house-number "151", - :street "4800th Street", - :city "Savonburg", - :state-abbrev "KS", - :zip "66772"} - {:lat 36.8673735, - :lon -90.289456, - :house-number "859", - :street "County Road 572", - :city "Poplar Bluff", - :state-abbrev "MO", - :zip "63901"} - {:lat 40.26783959999999, - :lon -80.86239540000001, - :house-number "4225-4433", - :street "Smithfield-Adena Road", - :city "Adena", - :state-abbrev "OH", - :zip "43901"} - {:lat 36.4587022, - :lon -93.9533701, - :house-number "19057", - :street "U.S. Highway 62", - :city "Garfield", - :state-abbrev "AR", - :zip "72732"} - {:lat 41.7480865, - :lon -89.4574213, - :house-number "1101-1185", - :street "Illinois 26", - :city "Dixon", - :state-abbrev "IL", - :zip "61021"} - {:lat 41.8207449, - :lon -83.91851009999999, - :house-number "6949", - :street "Crockett Highway", - :city "Blissfield", - :state-abbrev "MI", - :zip "49228"} - {:lat 36.5258829, - :lon -105.4877284, - :house-number "281", - :street "Cuchilla Road", - :city "Taos", - :state-abbrev "NM", - :zip "87571"} - {:lat 44.9585579, - :lon -73.69073999999999, - :house-number "507", - :street "Lamberton Road", - :city "Mooers Forks", - :state-abbrev "NY", - :zip "12959"} - {:lat 35.4931658, - :lon -95.1962375, - :house-number "936", - :street "U.S. Highway 64", - :city "Webbers Falls", - :state-abbrev "OK", - :zip "74470"} - {:lat 62.599373, - :lon -150.2273, - :house-number "4142", - :street "North Parks Highway", - :city "Talkeetna", - :state-abbrev "AK", - :zip "99676"} - {:lat 25.775827, - :lon -80.2161845, - :house-number "219", - :street "Northwest 13th Avenue", - :city "Miami", - :state-abbrev "FL", - :zip "33125"} - {:lat 63.55269000000001, - :lon -145.866618, - :house-number "1221", - :street "Richardson Highway", - :city "Delta Junction", - :state-abbrev "AK", - :zip "99737"} - {:lat 32.5791956, - :lon -102.6688225, - :house-number "1068", - :street "County Road 305", - :city "Seminole", - :state-abbrev "TX", - :zip "79360"} - {:lat 33.943168, - :lon -78.9874791, - :house-number "6000-6244", - :street "Hucks Road", - :city "Conway", - :state-abbrev "SC", - :zip "29526"} - {:lat 41.9291494, - :lon -122.4036239, - :house-number "11100", - :street "Heather Lane", - :city "Hornbrook", - :state-abbrev "CA", - :zip "96044"} - {:lat 31.3419491, - :lon -88.0256923, - :house-number "435", - :street "Toinette Road", - :city "Wagarville", - :state-abbrev "AL", - :zip "36585"} - {:lat 44.954284, - :lon -116.875041, - :house-number "54253", - :street "Oregon 86", - :city "Halfway", - :state-abbrev "OR", - :zip "97834"} - {:lat 41.583846, - :lon -80.54728399999999, - :house-number "6123", - :street "Pymatuning Lake Road", - :city "Andover", - :state-abbrev "OH", - :zip "44003"} - {:lat 45.9565305, - :lon -114.1214446, - :house-number "100-198", - :street "Lazy Pine Road", - :city "Darby", - :state-abbrev "MT", - :zip "59829"} - {:lat 35.150464, - :lon -89.92967600000001, - :house-number "3887", - :street "Faxon Avenue", - :city "Memphis", - :state-abbrev "TN", - :zip "38122"} - {:lat 41.3616879, - :lon -96.9324879, - :house-number "2351", - :street "43 Road", - :city "Linwood", - :state-abbrev "NE", - :zip "68036"} - {:lat 48.8364755, - :lon -96.1627155, - :house-number "30000-30236", - :street "210th Avenue", - :city "Greenbush", - :state-abbrev "MN", - :zip "56726"} - {:lat 44.3398472, - :lon -97.4646326, - :house-number "43701-43745", - :street "210th Street", - :city "De Smet", - :state-abbrev "SD", - :zip "57231"} - {:lat 47.97314060000001, - :lon -110.1031342, - :house-number "3091", - :street "White Rocks Road", - :city "Big Sandy", - :state-abbrev "MT", - :zip "59520"} - {:lat 32.7834189, - :lon -116.8897473, - :house-number "804-880", - :street "Willow Glen Drive", - :city "El Cajon", - :state-abbrev "CA", - :zip "92019"} - {:lat 29.329903, - :lon -98.287882, - :house-number "9417", - :street "Stuart Road", - :city "San Antonio", - :state-abbrev "TX", - :zip "78263"} - {:lat 41.0161228, - :lon -94.4307601, - :house-number "1990", - :street "Clover Avenue", - :city "Creston", - :state-abbrev "IA", - :zip "50801"} - {:lat 43.3737186, - :lon -98.3097361, - :house-number "27600-27698", - :street "394th Avenue", - :city "Armour", - :state-abbrev "SD", - :zip "57313"} - {:lat 33.9705571, - :lon -88.6153678, - :house-number "30001-30019", - :street "Quail Cove", - :city "Okolona", - :state-abbrev "MS", - :zip "38860"} - {:lat 32.9355839, - :lon -92.8595831, - :house-number "290", - :street "Ella Ford Road", - :city "Haynesville", - :state-abbrev "LA", - :zip "71038"} - {:lat 37.9335619, - :lon -78.3050973, - :house-number "399", - :street "Two Rivers Drive", - :city "Troy", - :state-abbrev "VA", - :zip "22974"} - {:lat 47.4686878, - :lon -105.4528496, - :house-number "467-605", - :street "Montana 200", - :city "Circle", - :state-abbrev "MT", - :zip "59215"} - {:lat 44.1133821, - :lon -93.1815084, - :house-number "2697", - :street "Kenyon Road", - :city "Owatonna", - :state-abbrev "MN", - :zip "55060"} - {:lat 44.287157, - :lon -76.142338, - :house-number "42662", - :street "Thurso Bay", - :city "Clayton", - :state-abbrev "NY", - :zip "13624"} - {:lat 41.0662326, - :lon -104.1784873, - :house-number "400-496", - :street "County Road 158", - :city "Carpenter", - :state-abbrev "WY", - :zip "82054"} - {:lat 40.3243005, - :lon -93.0029117, - :house-number "14470", - :street "East Gate Road", - :city "Green City", - :state-abbrev "MO", - :zip "63545"} - {:lat 42.7346338, - :lon -75.5133221, - :house-number "198-422", - :street "Castle Hill Road", - :city "Sherburne", - :state-abbrev "NY", - :zip "13460"} - {:lat 34.337856, - :lon -82.322595, - :house-number "219", - :street "Timms Road", - :city "Donalds", - :state-abbrev "SC", - :zip "29638"} - {:lat 43.6759365, - :lon -88.2080613, - :house-number "W1722", - :street "County Road B", - :city "Eden", - :state-abbrev "WI", - :zip "53019"} - {:lat 38.8787613, - :lon -91.8143237, - :house-number "8290", - :street "County Road 134", - :city "Fulton", - :state-abbrev "MO", - :zip "65251"} - {:lat 32.3607249, - :lon -97.95839389999999, - :house-number "2400", - :street "Rock Church Highway", - :city "Tolar", - :state-abbrev "TX", - :zip "76476"} - {:lat 38.51624109999999, - :lon -94.0457396, - :house-number "1585-1615", - :street "Northwest 1050 Road", - :city "Urich", - :state-abbrev "MO", - :zip "64788"} - {:lat 41.97421019999999, - :lon -100.5062283, - :house-number "83820", - :street "Gaston Road", - :city "Thedford", - :state-abbrev "NE", - :zip "69166"} - {:lat 41.6188953, - :lon -112.3642282, - :house-number "13469-14379", - :street "Utah 102", - :city "Tremonton", - :state-abbrev "UT", - :zip "84337"} - {:lat 46.5532026, - :lon -106.0391607, - :house-number "1370", - :street "Montana 59", - :city "Miles City", - :state-abbrev "MT", - :zip "59301"} - {:lat 43.641095, - :lon -111.048747, - :house-number "2699", - :street "East 5000 South", - :city "Victor", - :state-abbrev "ID", - :zip "83455"} - {:lat 29.4590646, - :lon -99.1169827, - :house-number "3883", - :street "Texas 173", - :city "Hondo", - :state-abbrev "TX", - :zip "78861"} - {:lat 33.3409668, - :lon -102.4427318, - :house-number "932", - :street "County Road 230", - :city "Meadow", - :state-abbrev "TX", - :zip "79345"} - {:lat 30.0251478, - :lon -91.00133609999999, - :house-number "7035", - :street "Louisiana 70", - :city "Belle Rose", - :state-abbrev "LA", - :zip "70341"} - {:lat 34.9966929, - :lon -81.89568729999999, - :house-number "295", - :street "Mule Farm Road", - :city "Spartanburg", - :state-abbrev "SC", - :zip "29303"} - {:lat 37.0135164, - :lon -106.9052055, - :house-number "7390F", - :street "County Road 359", - :city "Pagosa Springs", - :state-abbrev "CO", - :zip "81147"} - {:lat 34.3648639, - :lon -80.7861429, - :house-number "814", - :street "Rolling Hills Road", - :city "Ridgeway", - :state-abbrev "SC", - :zip "29130"} - {:lat 35.5054713, - :lon -80.67574979999999, - :house-number "6551-6651", - :street "Miller Road", - :city "Kannapolis", - :state-abbrev "NC", - :zip "28081"} - {:lat 32.3409754, - :lon -91.7168365, - :house-number "275", - :street "Highway 584", - :city "Rayville", - :state-abbrev "LA", - :zip "71269"} - {:lat 33.0372336, - :lon -115.5756934, - :house-number "401-499", - :street "Boarts Road", - :city "Brawley", - :state-abbrev "CA", - :zip "92227"} - {:lat 30.8796596, - :lon -84.6495801, - :house-number "944", - :street "John Sam Road", - :city "Bainbridge", - :state-abbrev "GA", - :zip "39817"} - {:lat 35.7023803, - :lon -119.5085531, - :house-number "2479", - :street "Gun Club Road", - :city "Wasco", - :state-abbrev "CA", - :zip "93280"} - {:lat 32.1138939, - :lon -94.367318, - :house-number "382", - :street "County Road 302", - :city "Carthage", - :state-abbrev "TX", - :zip "75633"} - {:lat 40.7513715, - :lon -85.4486616, - :house-number "5112-5510", - :street "South Warren Road", - :city "Warren", - :state-abbrev "IN", - :zip "46792"} - {:lat 43.5870284, - :lon -122.0120442, - :house-number "26150", - :street "Oregon 58", - :city "Crescent", - :state-abbrev "OR", - :zip "97733"} - {:lat 30.1014042, - :lon -96.0686004, - :house-number "145", - :street "Calvit Street", - :city "Hempstead", - :state-abbrev "TX", - :zip "77445"} - {:lat 39.9977088, - :lon -91.7154652, - :house-number "27525", - :street "State Highway N", - :city "Ewing", - :state-abbrev "MO", - :zip "63440"} - {:lat 43.9067968, - :lon -92.8634064, - :house-number "18756-18998", - :street "720th Street", - :city "Hayfield", - :state-abbrev "MN", - :zip "55940"} - {:lat 38.319152, - :lon -75.838825, - :house-number "22358", - :street "Deep Branch Road", - :city "Quantico", - :state-abbrev "MD", - :zip "21856"} - {:lat 39.7386659, - :lon -75.0294809, - :house-number "346", - :street "Johnson Road", - :city "Sicklerville", - :state-abbrev "NJ", - :zip "08081"} - {:lat 41.9543142, - :lon -76.7888085, - :house-number "260", - :street "Monkey Run Road", - :city "Gillett", - :state-abbrev "PA", - :zip "16925"} - {:lat 41.1009, - :lon -86.6770219, - :house-number "3828", - :street "West 300 North", - :city "Winamac", - :state-abbrev "IN", - :zip "46996"} - {:lat 44.011282, - :lon -89.2391004, - :house-number "975", - :street "Cypress Road", - :city "Neshkoro", - :state-abbrev "WI", - :zip "54960"} - {:lat 47.0958654, - :lon -99.3796684, - :house-number "5252-5298", - :street "22nd Street Southeast", - :city "Woodworth", - :state-abbrev "ND", - :zip "58496"} - {:lat 32.4864678, - :lon -100.6358039, - :house-number "579-1053", - :street "County Road 169", - :city "Roscoe", - :state-abbrev "TX", - :zip "79545"} - {:lat 46.0631211, - :lon -93.41270970000001, - :house-number "3213", - :street "Falcon Street", - :city "Isle", - :state-abbrev "MN", - :zip "56342"} - {:lat 44.6275708, - :lon -73.5379217, - :house-number "35", - :street "Stone Bridge Way", - :city "Plattsburgh", - :state-abbrev "NY", - :zip "12901"} - {:lat 40.4012142, - :lon -80.763559, - :house-number "1010-1311", - :street "Township Road 223", - :city "Richmond", - :state-abbrev "OH", - :zip "43944"} - {:lat 37.701113, - :lon -77.42609999999999, - :house-number "9479", - :street "Sliding Hill Road", - :city "Ashland", - :state-abbrev "VA", - :zip "23005"} - {:lat 27.0896397, - :lon -80.5149292, - :house-number "9601", - :street "T M Road", - :city "Indiantown", - :state-abbrev "FL", - :zip "34956"} - {:lat 30.2316212, - :lon -96.2623417, - :house-number "10402", - :street "FM 2193", - :city "Brenham", - :state-abbrev "TX", - :zip "77833"} - {:lat 39.9809, - :lon -91.35653490000001, - :house-number "4134", - :street "North 36th Street", - :city "Quincy", - :state-abbrev "IL", - :zip "62305"} - {:lat 27.780107, - :lon -97.91449, - :house-number "1903", - :street "2nd Street", - :city "Agua Dulce", - :state-abbrev "TX", - :zip "78330"} - {:lat 36.0824814, - :lon -94.78128149999999, - :house-number "463210", - :street "East 594 Road", - :city "Kansas", - :state-abbrev "OK", - :zip "74347"} - {:lat 48.889109, - :lon -106.46857, - :house-number "247", - :street "Roanwood Road", - :city "Opheim", - :state-abbrev "MT", - :zip "59250"} - {:lat 34.2245448, - :lon -79.9830906, - :house-number "1720", - :street "Country Manor Road", - :city "Timmonsville", - :state-abbrev "SC", - :zip "29161"} - {:lat 44.9538531, - :lon -89.07141879999999, - :house-number "16480", - :street "Hemlock Road", - :city "Birnamwood", - :state-abbrev "WI", - :zip "54414"} - {:lat 33.0803727, - :lon -108.4894079, - :house-number "535", - :street "Turkey Creek Road", - :city "Silver City", - :state-abbrev "NM", - :zip "88061"} - {:lat 45.780511, - :lon -110.115136, - :house-number "398", - :street "North Yellowstone Trail Road", - :city "Big Timber", - :state-abbrev "MT", - :zip "59011"} - {:lat 31.565726, - :lon -97.78056699999999, - :house-number "820", - :street "Cr 239", - :city "Gatesville", - :state-abbrev "TX", - :zip "76528"} - {:lat 37.5001623, - :lon -77.654427, - :house-number "112-208", - :street "Coalfield Road", - :city "Midlothian", - :state-abbrev "VA", - :zip "23114"} - {:lat 33.4192279, - :lon -105.416806, - :house-number "27587", - :street "U.S. 70", - :city "Glencoe", - :state-abbrev "NM", - :zip "88324"} - {:lat 57.0565648, - :lon -135.3704941, - :house-number "1190", - :street "Seward Avenue", - :city "Sitka", - :state-abbrev "AK", - :zip "99835"} - {:lat 37.6143574, - :lon -114.4812157, - :house-number "600", - :street "Clover Creek Road", - :city "Caliente", - :state-abbrev "NV", - :zip "89008"} - {:lat 42.669734, - :lon -82.57851099999999, - :house-number "7882", - :street "Morrow Road", - :city "Marine City", - :state-abbrev "MI", - :zip "48039"} - {:lat 43.1411556, - :lon -94.1562886, - :house-number "1514-1568", - :street "260th Street", - :city "Algona", - :state-abbrev "IA", - :zip "50511"} - {:lat 35.4250248, - :lon -81.5005142, - :house-number "4632", - :street "Fallston Road", - :city "Shelby", - :state-abbrev "NC", - :zip "28150"} - {:lat 31.2472719, - :lon -97.5642558, - :house-number "5690", - :street "Farm to Market 184", - :city "Gatesville", - :state-abbrev "TX", - :zip "76528"} - {:lat 41.54929, - :lon -73.2168571, - :house-number "98-108", - :street "Judson Avenue", - :city "Woodbury", - :state-abbrev "CT", - :zip "06798"} - {:lat 35.225912, - :lon -84.789648, - :house-number "637", - :street "Dry Valley Road Northeast", - :city "Cleveland", - :state-abbrev "TN", - :zip "37312"} - {:lat 48.91047709999999, - :lon -104.1266629, - :house-number "201-363", - :street "McElroy Road", - :city "Westby", - :state-abbrev "MT", - :zip "59275"} - {:lat 38.5357658, - :lon -78.74227309999999, - :house-number "1358", - :street "Warner Lane", - :city "Harrisonburg", - :state-abbrev "VA", - :zip "22802"} - {:lat 31.7556515, - :lon -84.3729352, - :house-number "1605-1611", - :street "Sellers Road", - :city "Dawson", - :state-abbrev "GA", - :zip "39842"} - {:lat 34.6606528, - :lon -78.6013504, - :house-number "852", - :street "Smith and Hair Road", - :city "Elizabethtown", - :state-abbrev "NC", - :zip "28337"} - {:lat 35.4922289, - :lon -86.82591479999999, - :house-number "1797-1927", - :street "New Columbia Highway", - :city "Lewisburg", - :state-abbrev "TN", - :zip "37091"} - {:lat 35.819588, - :lon -80.92777199999999, - :house-number "2097", - :street "Old Wilkesboro Road", - :city "Statesville", - :state-abbrev "NC", - :zip "28625"} - {:lat 42.826871, - :lon -76.36948699999999, - :house-number "5625", - :street "Mack Road", - :city "Skaneateles", - :state-abbrev "NY", - :zip "13152"} - {:lat 34.36168, - :lon -88.8239395, - :house-number "100-198", - :street "Road 1", - :city "Tupelo", - :state-abbrev "MS", - :zip "38804"} - {:lat 37.685311, - :lon -106.6649902, - :house-number "1077-1487", - :street "Colorado 149", - :city "South Fork", - :state-abbrev "CO", - :zip "81154"} - {:lat 32.54768, - :lon -82.0425238, - :house-number "41-51", - :street "Georgia 121", - :city "Twin City", - :state-abbrev "GA", - :zip "30471"} - {:lat 38.7840047, - :lon -97.15234319999999, - :house-number "1283-1293", - :street "1300 Avenue", - :city "Abilene", - :state-abbrev "KS", - :zip "67410"} - {:lat 37.285231, - :lon -93.7755416, - :house-number "363", - :street "State Highway WW", - :city "Miller", - :state-abbrev "MO", - :zip "65707"} - {:lat 34.0449385, - :lon -82.6381945, - :house-number "1310", - :street "Bobby Brown State Park Road", - :city "Elberton", - :state-abbrev "GA", - :zip "30635"} - {:lat 41.29878480000001, - :lon -123.220365, - :house-number "27529-27827", - :street "Sawyers Bar Road", - :city "Etna", - :state-abbrev "CA", - :zip "96027"} - {:lat 41.44222329999999, - :lon -75.8678892, - :house-number "1515", - :street "Keelersburg Road", - :city "Tunkhannock", - :state-abbrev "PA", - :zip "18657"} - {:lat 36.60397409999999, - :lon -80.0159182, - :house-number "945", - :street "Old Well Road", - :city "Spencer", - :state-abbrev "VA", - :zip "24165"} - {:lat 35.5220545, - :lon -98.5358859, - :house-number "3006", - :street "County Street 2500", - :city "Hydro", - :state-abbrev "OK", - :zip "73048"} - {:lat 47.1815654, - :lon -114.93413, - :house-number "16-62", - :street "Thompson Creek Road", - :city "Superior", - :state-abbrev "MT", - :zip "59872"} - {:lat 44.2569619, - :lon -117.0542315, - :house-number "729", - :street "Jonathan Road", - :city "Weiser", - :state-abbrev "ID", - :zip "83672"} - {:lat 29.8632357, - :lon -96.86068159999999, - :house-number "1900-2012", - :street "George Road", - :city "La Grange", - :state-abbrev "TX", - :zip "78945"} - {:lat 43.7119068, - :lon -102.1301612, - :house-number "19651", - :street "South Dakota 44", - :city "Interior", - :state-abbrev "SD", - :zip "57750"} - {:lat 39.277648, - :lon -106.962145, - :house-number "4305", - :street "Snowmass Creek Road", - :city "Snowmass", - :state-abbrev "CO", - :zip "81654"} - {:lat 34.7461054, - :lon -102.4947431, - :house-number "3240", - :street "U.S. 60", - :city "Hereford", - :state-abbrev "TX", - :zip "79045"} - {:lat 36.290432, - :lon -83.817886, - :house-number "1878", - :street "Hickory Valley Road", - :city "Maynardville", - :state-abbrev "TN", - :zip "37807"} - {:lat 44.9100772, - :lon -94.6225424, - :house-number "11258", - :street "570th Avenue", - :city "Cosmos", - :state-abbrev "MN", - :zip "56228"} - {:lat 35.8832669, - :lon -90.98008, - :house-number "8399", - :street "CR 194", - :city "Cash", - :state-abbrev "AR", - :zip "72421"} - {:lat 42.5763337, - :lon -101.1235419, - :house-number "18-30", - :street "302nd Avenue", - :city "Valentine", - :state-abbrev "NE", - :zip "69201"} - {:lat 32.3376667, - :lon -80.528605, - :house-number "1", - :street "Whitams Island", - :city "Saint Helena Island", - :state-abbrev "SC", - :zip "29920"} - {:lat 38.2782884, - :lon -105.6437323, - :house-number "710", - :street "Lake Creek Lane", - :city "Cotopaxi", - :state-abbrev "CO", - :zip "81223"} - {:lat 47.605072, - :lon -92.3040578, - :house-number "6500-6698", - :street "Giants Ridge Road", - :city "Embarrass", - :state-abbrev "MN", - :zip "55732"} - {:lat 32.6444029, - :lon -95.56368700000002, - :house-number "25678", - :street "County Road 457", - :city "Mineola", - :state-abbrev "TX", - :zip "75773"} - {:lat 43.244654, - :lon -83.739317, - :house-number "10787", - :street "Rose Lane", - :city "Birch Run", - :state-abbrev "MI", - :zip "48415"} - {:lat 38.3867667, - :lon -78.0820758, - :house-number "23123-23159", - :street "Roland Road", - :city "Rapidan", - :state-abbrev "VA", - :zip "22733"} - {:lat 39.062332, - :lon -123.243362, - :house-number "6091", - :street "Boonville Road", - :city "Ukiah", - :state-abbrev "CA", - :zip "95482"} - {:lat 42.7312246, - :lon -76.7093886, - :house-number "18", - :street "Sunset Beach Road", - :city "Aurora", - :state-abbrev "NY", - :zip "13026"} - {:lat 42.1696132, - :lon -118.5709799, - :house-number "44289", - :street "Whitehorse Ranch Lane", - :city "Fields", - :state-abbrev "OR", - :zip "97710"} - {:lat 34.61839, - :lon -92.8443247, - :house-number "24141", - :street "Old Hot Springs Highway", - :city "Hot Springs Village", - :state-abbrev "AR", - :zip "71909"} - {:lat 41.2517668, - :lon -104.2248914, - :house-number "6255", - :street "County Road 213", - :city "Pine Bluffs", - :state-abbrev "WY", - :zip "82082"} - {:lat 33.485464, - :lon -82.0220871, - :house-number "501", - :street "Delano Street", - :city "Augusta", - :state-abbrev "GA", - :zip "30904"} - {:lat 39.9526071, - :lon -90.9820034, - :house-number "2701-2799", - :street "North 1353rd Lane", - :city "Clayton", - :state-abbrev "IL", - :zip "62324"} - {:lat 43.0633923, - :lon -105.565439, - :house-number "28", - :street "Highland Loop Road", - :city "Douglas", - :state-abbrev "WY", - :zip "82633"} - {:lat 47.1533778, - :lon -99.0071076, - :house-number "7001-7089", - :street "18th Street Southeast", - :city "Pingree", - :state-abbrev "ND", - :zip "58476"} - {:lat 30.557063, - :lon -96.30854199999999, - :house-number "13546", - :street "Alacia Court", - :city "College Station", - :state-abbrev "TX", - :zip "77845"} - {:lat 40.0936749, - :lon -86.92878619999999, - :house-number "1435", - :street "West 400 North", - :city "Crawfordsville", - :state-abbrev "IN", - :zip "47933"} - {:lat 40.429191, - :lon -80.038403, - :house-number "666", - :street "Hestor Drive", - :city "Pittsburgh", - :state-abbrev "PA", - :zip "15220"} - {:lat 48.306407, - :lon -120.0517531, - :house-number "1", - :street "Benson Creek Drive", - :city "Twisp", - :state-abbrev "WA", - :zip "98856"} - {:lat 33.6578638, - :lon -96.4607095, - :house-number "435", - :street "Craft Road", - :city "Bells", - :state-abbrev "TX", - :zip "75414"} - {:lat 42.2964941, - :lon -83.148913, - :house-number "12821", - :street "Dix", - :city "Dearborn", - :state-abbrev "MI", - :zip "48120"} - {:lat 35.24744099999999, - :lon -83.625271, - :house-number "254", - :street "Otter Creek Road", - :city "Topton", - :state-abbrev "NC", - :zip "28781"} - {:lat 45.5650285, - :lon -121.0089962, - :house-number "4757-5201", - :street "Emerson Loop Road", - :city "The Dalles", - :state-abbrev "OR", - :zip "97058"} - {:lat 42.1992991, - :lon -97.03739809999999, - :house-number "85346-85398", - :street "575 Avenue", - :city "Wayne", - :state-abbrev "NE", - :zip "68787"} - {:lat 46.15602, - :lon -89.907809, - :house-number "14077", - :street "East Circle Lily Road", - :city "Manitowish Waters", - :state-abbrev "WI", - :zip "54545"} - {:lat 44.98760499999999, - :lon -93.990574, - :house-number "11500", - :street "Ferman Avenue Southwest", - :city "Waverly", - :state-abbrev "MN", - :zip "55390"} - {:lat 38.563198, - :lon -94.270044, - :house-number "28909", - :street "South Kircher Road", - :city "Harrisonville", - :state-abbrev "MO", - :zip "64701"} - {:lat 32.5621624, - :lon -99.7002526, - :house-number "822", - :street "Comanche Trail", - :city "Abilene", - :state-abbrev "TX", - :zip "79601"} - {:lat 41.2800528, - :lon -73.8347881, - :house-number "1510-1580", - :street "Whitehill Road", - :city "Yorktown Heights", - :state-abbrev "NY", - :zip "10598"} - {:lat 40.593251, - :lon -80.84441, - :house-number "628", - :street "Ohio 164", - :city "Salineville", - :state-abbrev "OH", - :zip "43945"} - {:lat 33.0242556, - :lon -81.9565897, - :house-number "501-899", - :street "Idlewood Road", - :city "Waynesboro", - :state-abbrev "GA", - :zip "30830"} - {:lat 34.3102816, - :lon -80.251449, - :house-number "681", - :street "Newsome Road", - :city "Bishopville", - :state-abbrev "SC", - :zip "29010"} - {:lat 39.332676, - :lon -78.240403, - :house-number "2616", - :street "Siler Road", - :city "Winchester", - :state-abbrev "VA", - :zip "22603"} - {:lat 45.96328279999999, - :lon -118.3866197, - :house-number "84325", - :street "Oregon 11", - :city "Milton-Freewater", - :state-abbrev "OR", - :zip "97862"} - {:lat 45.0264787, - :lon -69.599564, - :house-number "24", - :street "Cross Road", - :city "Wellington", - :state-abbrev "ME", - :zip "04942"} - {:lat 41.3111215, - :lon -85.8015207, - :house-number "2071-2199", - :street "East Riverside Drive", - :city "Warsaw", - :state-abbrev "IN", - :zip "46582"} - {:lat 37.4179811, - :lon -85.7573845, - :house-number "12280", - :street "North Jackson Highway", - :city "Magnolia", - :state-abbrev "KY", - :zip "42757"} - {:lat 42.484824, - :lon -72.8480639, - :house-number "1876", - :street "Spruce Corner Road", - :city "Ashfield", - :state-abbrev "MA", - :zip "01330"} - {:lat 35.2600134, - :lon -106.7031468, - :house-number "125-127", - :street "2nd Street Southeast", - :city "Rio Rancho", - :state-abbrev "NM", - :zip "87124"} - {:lat 37.155673, - :lon -122.024959, - :house-number "1000", - :street "Wilderfield Road", - :city "Los Gatos", - :state-abbrev "CA", - :zip "95033"} - {:lat 47.9367019, - :lon -91.4237666, - :house-number "3191", - :street "Fernberg Road", - :city "Ely", - :state-abbrev "MN", - :zip "55731"} - {:lat 30.114453, - :lon -97.9510375, - :house-number "8700", - :street "Farm to Market 967", - :city "Buda", - :state-abbrev "TX", - :zip "78610"} - {:lat 44.1517741, - :lon -98.0955537, - :house-number "22310", - :street "406th Avenue", - :city "Forestburg", - :state-abbrev "SD", - :zip "57314"} - {:lat 28.8448101, - :lon -99.0027399, - :house-number "5056-5638", - :street "Keystone Road", - :city "Pearsall", - :state-abbrev "TX", - :zip "78061"} - {:lat 32.918188, - :lon -84.89107200000001, - :house-number "493", - :street "Old Chipley Road", - :city "Pine Mountain", - :state-abbrev "GA", - :zip "31822"} - {:lat 35.872716, - :lon -78.63470640000001, - :house-number "409", - :street "Westbrook Drive", - :city "Raleigh", - :state-abbrev "NC", - :zip "27615"} - {:lat 35.9351531, - :lon -79.0572364, - :house-number "875-893", - :street "Estes Drive Extension", - :city "Chapel Hill", - :state-abbrev "NC", - :zip "27516"} - {:lat 34.8583854, - :lon -91.6012164, - :house-number "2993", - :street "Arkansas 249", - :city "Hazen", - :state-abbrev "AR", - :zip "72064"} - {:lat 41.1521072, - :lon -73.7005391, - :house-number "99", - :street "Pioneer Trail", - :city "Armonk", - :state-abbrev "NY", - :zip "10504"} - {:lat 66.5295218, - :lon -152.6634842, - :house-number "21", - :street "Tanana-Allakaket Winter Trail", - :city "Allakaket", - :state-abbrev "AK", - :zip "99720"} - {:lat 40.1315377, - :lon -89.09725139999999, - :house-number "2499", - :street "Bungtown Road", - :city "Kenney", - :state-abbrev "IL", - :zip "61749"} - {:lat 37.3424648, - :lon -86.01359289999999, - :house-number "770", - :street "Cave Hill Road", - :city "Munfordville", - :state-abbrev "KY", - :zip "42765"} - {:lat 39.2092304, - :lon -82.4539298, - :house-number "35887", - :street "State Route 324", - :city "Hamden", - :state-abbrev "OH", - :zip "45634"} - {:lat 36.456136, - :lon -76.87827, - :house-number "70", - :street "Tinkham Road", - :city "Eure", - :state-abbrev "NC", - :zip "27935"} - {:lat 48.3779906, - :lon -109.2142716, - :house-number "16475", - :street "Cleveland Road", - :city "Chinook", - :state-abbrev "MT", - :zip "59523"} - {:lat 37.6707712, - :lon -91.1372466, - :house-number "1465", - :street "Ponderosa", - :city "Bixby", - :state-abbrev "MO", - :zip "65439"} - {:lat 40.8572074, - :lon -98.3295741, - :house-number "1099", - :street "East Wildwood Drive", - :city "Grand Island", - :state-abbrev "NE", - :zip "68801"} - {:lat 41.9850861, - :lon -96.4640027, - :house-number "2160", - :street "U.S. 77", - :city "Lyons", - :state-abbrev "NE", - :zip "68038"} - {:lat 44.5762138, - :lon -98.681271, - :house-number "37500-37598", - :street "194th Street", - :city "Wessington", - :state-abbrev "SD", - :zip "57381"} - {:lat 32.2830071, - :lon -101.4354302, - :house-number "104", - :street "Broken Bow Road", - :city "Big Spring", - :state-abbrev "TX", - :zip "79720"} - {:lat 39.9008824, - :lon -102.6886584, - :house-number "22000-22998", - :street "County Road G", - :city "Yuma", - :state-abbrev "CO", - :zip "80759"} - {:lat 38.6578676, - :lon -75.1426649, - :house-number "23402", - :street "Camp Arrowhead Road", - :city "Lewes", - :state-abbrev "DE", - :zip "19958"} - {:lat 38.32789959999999, - :lon -113.0122461, - :house-number "186", - :street "4500 South", - :city "Milford", - :state-abbrev "UT", - :zip "84751"} - {:lat 47.726737, - :lon -117.19418, - :house-number "15708", - :street "East Lincoln Road", - :city "Spokane", - :state-abbrev "WA", - :zip "99217"} - {:lat 38.821582, - :lon -84.659021, - :house-number "14933", - :street "Walton-Verona Road", - :city "Verona", - :state-abbrev "KY", - :zip "41092"}) diff --git a/lein-commands/sample-dataset/metabase/sample_dataset/generate.clj b/lein-commands/sample-dataset/metabase/sample_dataset/generate.clj deleted file mode 100644 index 4c159674349ae80fc91f3a2a6d67d7de36d00a10..0000000000000000000000000000000000000000 --- a/lein-commands/sample-dataset/metabase/sample_dataset/generate.clj +++ /dev/null @@ -1,551 +0,0 @@ -(ns metabase.sample-dataset.generate - "Logic for generating the sample dataset. - Run this with `lein generate-sample-dataset`." - (:require [clojure - [edn :as edn] - [string :as str]] - [clojure.java - [io :as io] - [jdbc :as jdbc]] - [clojure.math.numeric-tower :as math] - [faker - [company :as company] - [internet :as internet] - [lorem :as lorem] - [name :as name]] - [jdistlib.core :as dist] - [medley.core :as m] - [metabase.db.spec :as dbspec] - [metabase.util :as u] - [metabase.util.date :as du]) - (:import java.util.Date)) - -(def ^:private ^:const sample-dataset-filename - (str (System/getProperty "user.dir") "/resources/sample-dataset.db")) - -(def ^:private num-rows-to-create - {:people 2500 - :products 200}) - -(def ^:private num-reviews-distribution - "Normal distribution sampled to determine number of reviews each product should have. Actual average number of - reviews will be slightly higher because negative values returned by the sample will be floored at 0 (e.g. a product - cannot have less than 0 reviews)." - (dist/normal 5 4)) - -(def ^:private num-orders-distibution - "Normal distribution sampled to determine number of orders each person should have." - (dist/normal 5 10)) - -;;; ## PEOPLE - -(defn ^Date random-date-between [^Date min, ^Date max] - (let [min-ms (.getTime min) - max-ms (.getTime max) - range (- max-ms min-ms) - d (Date.)] - (.setTime d (+ (long (rand range)) min-ms)) - d)) - -(def ^:private addresses (atom nil)) - -(defn- load-addresses! [] - (println "Loading addresses...") - (reset! addresses (edn/read-string (slurp "lein-commands/sample-dataset/metabase/sample_dataset/addresses.edn"))) - :ok) - -(defn- next-address [] - (when-not (seq @addresses) - (load-addresses!)) - (let [address (first @addresses)] - (swap! addresses rest) - address)) - -(defn- random-person [] - (let [first (name/first-name) - last (name/last-name) - addr (next-address)] - {:name (format "%s %s" first last) - :email (internet/free-email (format "%s.%s" first last)) - :password (str (java.util.UUID/randomUUID)) - :birth_date (random-date-between (du/relative-date :year -60) (du/relative-date :year -18)) - :address (str (:house-number addr) " " (:street addr)) - :city (:city addr) - :zip (:zip addr) - :state (:state-abbrev addr) - :latitude (:lat addr) - :longitude (:lon addr) - :source (rand-nth ["Google" "Twitter" "Facebook" "Organic" "Affiliate"]) - :created_at (random-date-between (du/relative-date :year -2) (du/relative-date :year 1))})) - -;;; ## PRODUCTS - -(defn- random-company-name [] - (first (company/names))) - -(defn- rejection-sample - "Sample from distribution `dist` until `pred` is truthy for the sampled value. - https://en.wikipedia.org/wiki/Rejection_sampling" - [pred dist] - (let [x (dist/sample dist)] - (if (pred x) - x - (rejection-sample pred dist)))) - -(defn- random-price [min max] - (let [range (- max min) - mean1 (+ min (* range 0.3)) - mean2 (+ min (* range 0.75)) - variance (/ range 8)] - ; Sample from a multi modal distribution (mix of two normal distributions - ; with means `mean1` and `mean2` and variance `variance`). - (rejection-sample #(<= min % max) (rand-nth [(dist/normal mean1 variance) - (dist/normal mean2 variance)])))) - -(def ^:private ^:const product-names - {:adjective '[Small, Ergonomic, Rustic, Intelligent, Gorgeous, Incredible, Fantastic, Practical, Sleek, Awesome, - Enormous, Mediocre, Synergistic, Heavy-Duty, Lightweight, Aerodynamic, Durable] - :material '[Steel, Wooden, Concrete, Plastic, Cotton, Granite, Rubber, Leather, Silk, Wool, Linen, Marble, Iron, - Bronze, Copper, Aluminum, Paper] - :product '[Chair, Car, Computer, Gloves, Pants, Shirt, Table, Shoes, Hat, Plate, Knife, Bottle, Coat, Lamp, - Keyboard, Bag, Bench, Clock, Watch, Wallet, Toucan]}) - -(defn- random-product-name [] - (format "%s %s %s" - (rand-nth (product-names :adjective)) - (rand-nth (product-names :material)) - (rand-nth (product-names :product)))) - -(def ^:private ean-checksum - (let [^:const weights (flatten (repeat 6 [1 3]))] - (fn [digits] - {:pre [(= 12 (count digits)) - (= 12 (count (apply str digits)))] - :post [(= 1 (count (str %)))]} - (as-> (reduce + (map (fn [digit weight] - (* digit weight)) - digits weights)) - it - (mod it 10) - (- 10 it) - (mod it 10))))) - -(defn- random-ean [] - {:post [(= (count %) 13)]} - (let [digits (vec (repeatedly 12 #(rand-int 10)))] - (->> (conj digits (ean-checksum digits)) - (apply str)))) - -(defn- random-product [] - {:ean (random-ean) - :title (random-product-name) - :category (rand-nth ["Widget" "Gizmo" "Gadget" "Doohickey"]) - :vendor (random-company-name) - :price (random-price 12 100) - :created_at (random-date-between (du/relative-date :year -2) (du/relative-date :year 1))}) - - -;;; ## ORDERS - -(def ^:private state->tax-rate - {"AK" 0.0 - "AL" 0.04 - "AR" 0.065 - "AZ" 0.056 - "CA" 0.075 - "CO" 0.029 - "CT" 0.0635 - "DC" 0.0575 - "DE" 0.0 - "FL" 0.06 - "GA" 0.04 - "HI" 0.04 - "IA" 0.06 - "ID" 0.06 - "IL" 0.0625 - "IN" 0.07 - "KS" 0.065 - "KY" 0.06 - "LA" 0.04 - "MA" 0.0625 - "MD" 0.06 - "ME" 0.055 - "MI" 0.06 - "MN" 0.06875 - "MO" 0.04225 - "MS" 0.07 - "MT" 0.0 - "NC" 0.0475 - "ND" 0.05 - "NE" 0.055 - "NH" 0.0 - "NJ" 0.07 - "NM" 0.05125 - "NV" 0.0685 - "NY" 0.04 - "OH" 0.0575 - "OK" 0.045 - "OR" 0.0 - "PA" 0.06 - "RI" 0.07 - "SC" 0.06 - "SD" 0.04 - "TN" 0.07 - "TX" 0.0625 - "UT" 0.047 - "VA" 0.043 - "VT" 0.06 - "WA" 0.065 - "WI" 0.05 - "WV" 0.06 - "WY" 0.04 - ;; Territories / Associated States / Armed Forces - just give these all zero - ;; These might come back from address/us-state-abbr - "AA" 0.0 ; Armed Forces - Americas - "AE" 0.0 ; Armed Forces - Europe - "AP" 0.0 ; Armed Forces - Pacific - "AS" 0.0 ; American Samoa - "FM" 0.0 ; Federated States of Micronesia - "GU" 0.0 ; Guam - "MH" 0.0 ; Marshall Islands - "MP" 0.0 ; Northern Mariana Islands - "PR" 0.0 ; Puerto Rico - "PW" 0.0 ; Palau - "VI" 0.0 ; Virgin Islands - }) - -(defn- max-date [& dates] - {:pre [(every? (partial instance? Date) dates)] - :post [(instance? Date %)]} - (doto (Date.) - (.setTime (apply max (map #(.getTime ^Date %) dates))))) - -(defn- min-date [& dates] - {:pre [(every? (partial instance? Date) dates)] - :post [(instance? Date %)]} - (doto (Date.) - (.setTime (apply min (map #(.getTime ^Date %) dates))))) - -(defn- with-probability - "Return `(f)` with probability `p`, else return nil." - [p f] - (when (> p (rand)) - (f))) - -(defn random-order [{:keys [state], :as ^Person person} {:keys [price], :as product}] - {:pre [(string? state) - (number? price)] - :post [(map? %)]} - (let [tax-rate (state->tax-rate state) - _ (assert tax-rate - (format "No tax rate found for state '%s'." state)) - created-at (random-date-between (min-date (:created_at person) - (:created_at product)) - (du/relative-date :year 2)) - price (if (> (.getTime created-at) (.getTime (Date. 118 0 1))) - (* 1.5 price) - price) - tax (u/round-to-decimals 2 (* price tax-rate))] - {:user_id (:id person) - :product_id (:id product) - :subtotal price - :tax tax - :quantity (random-price 1 5) - :discount (with-probability 0.1 #(random-price 0 10)) - :total (+ price tax) - :created_at created-at})) - - -;;; ## REVIEWS - -(defn random-review [product] - {:product_id (:id product) - :reviewer (internet/user-name) - :rating (rand-nth [1 1 - 2 2 2 - 3 3 - 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 - 5 5 5 5 5 5 5 5 5 5 5 5 5]) - :body (first (lorem/paragraphs)) - :created_at (random-date-between (:created_at product) (du/relative-date :year 2))}) - -(defn- add-ids [objs] - (map-indexed - (fn [id obj] - (assoc obj :id (inc id))) - objs)) - -(defn- create-randoms [n f] - (-> (take n (distinct (repeatedly f))) - add-ids)) - -(defn- product-add-reviews [product] - (let [num-reviews (max 0 (dist/sample num-reviews-distribution)) ; with 200 products should give us ~1000 reviews - reviews (vec (for [review (repeatedly num-reviews #(random-review product))] - (assoc review :product_id (:id product)))) - rating (if (seq reviews) (/ (reduce + (map :rating reviews)) - (count reviews)) - 0.0)] - (assoc product :reviews reviews, :rating (-> (* rating 10.0) - int - (/ 10.0))))) - -(defn- person-add-orders [products person] - {:pre [(sequential? products) - (map? person)] - :post [(map? %)]} - (let [num-orders (max 0 (dist/sample num-orders-distibution))] ; with 2500 people should give us ~15k orders - (if (zero? num-orders) - person - (assoc person :orders (vec (repeatedly num-orders #(random-order person (rand-nth products)))))))) - -(defn- add-autocorrelation - "Add autocorrelation with lag `lag` to field `k` by adding the value from `lag` steps back (and dividing by 2 to - retain roughly the same value range). https://en.wikipedia.org/wiki/Autocorrelation" - ([k xs] (add-autocorrelation 1 k xs)) - ([lag k xs] - (map (fn [prev next] - (update next k #(/ (+ % (k prev)) 2))) - xs - (drop lag xs)))) - -(defn- add-increasing-variance - "Gradually increase variance of field `k` by scaling it an (on average) increasingly larger random noise. - - https://en.wikipedia.org/wiki/Variance" - [k xs] - (let [n (count xs)] - (map-indexed (fn [i x] - ; Limit the noise to [0.1, 2.1]. - (update x k * (+ 1 (* (/ i n) (- (* 2 (rand)) 0.9))))) - xs))) - -(defn- add-seasonality - "Add seasonal component to field `k`. Seasonal variation (a multiplicative factor) is described with map - `seasonality-map` indexed into by `season-fn` (eg. month of year of field created_at)." - [season-fn k seasonality-map xs] - (for [x xs] - (update x k * (seasonality-map (season-fn x))))) - -(defn- add-outliers - "Add `n` outliers (times `scale` value spikes) to field `k`. `n` can be either percentage or count, determined by - `mode`." - ([mode n k xs] (add-outliers mode n 10 k xs)) - ([mode n scale k xs] - (if (= mode :share) - (for [x xs] - (if (< (rand) n) - (update x k * scale) - x)) - (let [candidate-idxs (keep (fn [[idx x]] - (when (k x) - idx)) - (m/indexed xs)) - ; Note: since we are sampling with replacement there is a small chance - ; single index gets chosen multiple times. - outlier-idx? (set (repeatedly n #(rand-nth candidate-idxs)))] - (for [[idx x] (m/indexed xs)] - (if (outlier-idx? idx) - (update x k * scale) - x)))))) - -(defn create-random-data [] - {:post [(map? %) - (= (count (:people %)) (:people num-rows-to-create)) - (= (count (:products %)) (:products num-rows-to-create)) - (every? keyword? (keys %)) - (every? sequential? (vals %))]} - (let [{:keys [products people]} num-rows-to-create] - (printf "Generating random data: %d people, %d products...\n" people products) - (let [products (for [product (create-randoms products random-product)] - (product-add-reviews product)) - people (vec (for [person (create-randoms people random-person)] - (person-add-orders products person)))] - {:people (map #(dissoc % :orders) people) - :products (map #(dissoc % :reviews) products) - :reviews (mapcat :reviews products) - :orders (->> people - (mapcat :orders) - (add-autocorrelation :quantity) - (add-outliers :share 0.01 :quantity) - (add-outliers :count 5 :discount) - (add-increasing-variance :total) - (add-seasonality #(.getMonth ^java.util.Date (:created_at %)) - :quantity {0 0.6 - 1 0.5 - 2 0.3 - 3 0.9 - 4 1.3 - 5 1.9 - 6 1.5 - 7 2.1 - 8 1.5 - 9 1.7 - 10 0.9 - 11 0.6}))}))) - -;;; # LOADING THE DATA - -(defn- create-table-sql [table-name field->type] - {:pre [(keyword? table-name) - (map? field->type) - (every? keyword? (keys field->type)) - (every? string? (vals field->type))] - :post [(string? %)]} - (format "CREATE TABLE \"%s\" (\"ID\" BIGINT AUTO_INCREMENT, %s, PRIMARY KEY (\"ID\"));" - (str/upper-case (name table-name)) - (apply str (->> (for [[field type] (seq field->type)] - (format "\"%s\" %s" (str/upper-case (name field)) type)) - (interpose ", "))))) - -(def ^:private ^:const tables - {:people {:name "VARCHAR(255)" - :email "VARCHAR(255)" - :password "VARCHAR(255)" - :birth_date "DATE" - :address "VARCHAR(255)" - :zip "CHAR(5)" - :city "VARCHAR(255)" - :state "CHAR(2)" - :latitude "FLOAT" - :longitude "FLOAT" - :source "VARCHAR(255)" - :created_at "DATETIME"} - :products {:ean "CHAR(13)" - :title "VARCHAR(255)" - :category "VARCHAR(255)" - :vendor "VARCHAR(255)" - :price "FLOAT" - :rating "FLOAT" - :created_at "DATETIME"} - :orders {:user_id "INTEGER" - :product_id "INTEGER" - :subtotal "FLOAT" - :tax "FLOAT" - :total "FLOAT" - :discount "FLOAT" - :created_at "DATETIME" - :quantity "INTEGER"} - :reviews {:product_id "INTEGER" - :reviewer "VARCHAR(255)" - :rating "SMALLINT" - :body "TEXT" - :created_at "DATETIME"}}) - -(def ^:private ^:const fks - [{:source-table "ORDERS" - :field "USER_ID" - :dest-table "PEOPLE"} - {:source-table "ORDERS" - :field "PRODUCT_ID" - :dest-table "PRODUCTS"} - {:source-table "REVIEWS" - :field "PRODUCT_ID" - :dest-table "PRODUCTS"}]) - -(def ^:private ^:const metabase-metadata - {:orders {:description "This is a confirmed order for a product from a user." - :columns {:created_at {:description "The date and time an order was submitted."} - :id {:description "This is a unique ID for the product. It is also called the “Invoice number†or “Confirmation number†in customer facing emails and screens."} - :product_id {:description "The product ID. This is an internal identifier for the product, NOT the SKU."} - :subtotal {:description "The raw, pre-tax cost of the order. Note that this might be different in the future from the product price due to promotions, credits, etc."} - :tax {:description (str "This is the amount of local and federal taxes that are collected on the purchase. Note that other governmental fees " - "on some products are not included here, but instead are accounted for in the subtotal.")} - :total {:description "The total billed amount."} - :user_id {:description (str "The id of the user who made this order. Note that in some cases where an order was created on behalf " - "of a customer who phoned the order in, this might be the employee who handled the request.")} - :quantity {:description "Number of products bought."} - :discount {:description "Discount amount."}}} - :people {:description "This is a user account. Note that employees and customer support staff will have accounts." - :columns {:address {:description "The street address of the account’s billing address"} - :birth_date {:description "The date of birth of the user"} - :city {:description "The city of the account’s billing address"} - :created_at {:description "The date the user record was created. Also referred to as the user’s \"join date\""} - :email {:description "The contact email for the account."} - :id {:description "A unique identifier given to each user."} - :latitude {:description "This is the latitude of the user on sign-up. It might be updated in the future to the last seen location."} - :longitude {:description "This is the longitude of the user on sign-up. It might be updated in the future to the last seen location."} - :name {:description "The name of the user who owns an account"} - :password {:description "This is the salted password of the user. It should not be visible"} - :source {:description "The channel through which we acquired this user. Valid values include: Affiliate, Facebook, Google, Organic and Twitter"} - :state {:description "The state or province of the account’s billing address"} - :zip {:description "The postal code of the account’s billing address" - :special_type "type/ZipCode"}}} - :products {:description "This is our product catalog. It includes all products ever sold by the Sample Company." - :columns {:category {:description "The type of product, valid values include: Doohicky, Gadget, Gizmo and Widget"} - :created_at {:description "The date the product was added to our catalog."} - :ean {:description "The international article number. A 13 digit number uniquely identifying the product."} - :id {:description "The numerical product number. Only used internally. All external communication should use the title or EAN."} - :price {:description "The list price of the product. Note that this is not always the price the product sold for due to discounts, promotions, etc."} - :rating {:description "The average rating users have given the product. This ranges from 1 - 5"} - :title {:description "The name of the product as it should be displayed to customers."} - :vendor {:description "The source of the product."}}} - :reviews {:description "These are reviews our customers have left on products. Note that these are not tied to orders so it is possible people have reviewed products they did not purchase from us." - :columns {:body {:description "The review the user left. Limited to 2000 characters." - :special_type "type/Description"} - :created_at {:description "The day and time a review was written by a user."} - :id {:description "A unique internal identifier for the review. Should not be used externally."} - :product_id {:description "The product the review was for"} - :rating {:description "The rating (on a scale of 1-5) the user left."} - :reviewer {:description "The user who left the review"}}}}) - -(defn create-h2-db - ([filename] - (create-h2-db filename (create-random-data))) - ([filename data] - (println "Deleting existing db...") - (io/delete-file (str filename ".mv.db") :silently) - (io/delete-file (str filename ".trace.db") :silently) - (println "Creating db...") - (let [db (dbspec/h2 {:db (format (str "file:%s;UNDO_LOG=0;CACHE_SIZE=131072;QUERY_CACHE_SIZE=128;COMPRESS=TRUE;" - "MULTI_THREADED=TRUE;MVCC=TRUE;DEFRAG_ALWAYS=TRUE;MAX_COMPACT_TIME=5000;" - "ANALYZE_AUTO=100") - filename)})] - (doseq [[table-name field->type] (seq tables)] - (jdbc/execute! db [(create-table-sql table-name field->type)])) - - ;; Add FK constraints - (println "Adding FKs...") - (doseq [{:keys [source-table field dest-table]} fks] - (jdbc/execute! db [(format "ALTER TABLE \"%s\" ADD CONSTRAINT \"FK_%s_%s_%s\" FOREIGN KEY (\"%s\") REFERENCES \"%s\" (\"ID\");" - source-table - source-table field dest-table - field - dest-table)])) - - ;; Insert the data - (println "Inserting data...") - (doseq [[table rows] (seq data)] - (assert (keyword? table)) - (assert (sequential? rows)) - (let [table-name (str/upper-case (name table))] - (println (format "Inserting %d rows into %s..." (count rows) table-name)) - (jdbc/insert-multi! db table-name (for [row rows] - (into {} (for [[k v] (seq row)] - {(str/upper-case (name k)) v})))))) - - ;; Insert the _metabase_metadata table - (println "Inserting _metabase_metadata...") - (jdbc/execute! db ["CREATE TABLE \"_METABASE_METADATA\" (\"KEYPATH\" VARCHAR(255), \"VALUE\" VARCHAR(255), PRIMARY KEY (\"KEYPATH\"));"]) - (jdbc/insert-multi! db "_METABASE_METADATA" (reduce concat (for [[table-name {table-description :description, columns :columns}] metabase-metadata] - (let [table-name (str/upper-case (name table-name))] - (conj (for [[column-name kvs] columns - [k v] kvs] - {:keypath (format "%s.%s.%s" table-name (str/upper-case (name column-name)) (name k)) - :value v}) - {:keypath (format "%s.description" table-name) - :value table-description}))))) - - ;; Create the 'GUEST' user - (println "Preparing database for export...") - (jdbc/execute! db ["CREATE USER GUEST PASSWORD 'guest';"]) - (doseq [table (conj (keys data) "_METABASE_METADATA")] - (jdbc/execute! db [(format "GRANT SELECT ON %s TO GUEST;" (str/upper-case (name table)))])) - - (println "Done.")))) - -(defn -main [& [filename]] - (let [filename (or filename sample-dataset-filename)] - (printf "Writing sample dataset to %s...\n" filename) - (create-h2-db filename) - (System/exit 0))) diff --git a/lein-plugins/include-drivers/src/leiningen/include_drivers.clj b/lein-plugins/include-drivers/src/leiningen/include_drivers.clj index 74dd558ff45c9b4b14c33db13833a5ef23bd41d0..4d7eefe85169db99ec2eca72279fc9ed4c6f12e7 100644 --- a/lein-plugins/include-drivers/src/leiningen/include_drivers.clj +++ b/lein-plugins/include-drivers/src/leiningen/include_drivers.clj @@ -38,7 +38,7 @@ (println (colorize/color :red - (format " [include-drivers middleware]Not including %s because not all dependencies matching %s found in /plugins" + (format "[include-drivers middleware] Not including %s because not all dependencies matching %s found in /plugins" driver (set include-drivers-dependencies))))) (println (colorize/color diff --git a/locales/ca.po b/locales/ca.po index 376e31db08d28ae8c1f6074a8fae00eba749a93e..6b18268b52cd8aa60c78fca4b81be18b95df0c9c 100644 --- a/locales/ca.po +++ b/locales/ca.po @@ -29,19 +29,18 @@ msgid "Select a database type" msgstr "Selecciona un tipus de base de dades" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "Desa" @@ -101,7 +100,7 @@ msgstr "Mai. Ho faré manualment si ho necessito." #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "Desant..." @@ -138,16 +137,16 @@ msgstr "en aquest camp:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -155,20 +154,20 @@ msgstr "en aquest camp:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "Cancel·lar" @@ -180,33 +179,33 @@ msgstr "Cancel·lar" msgid "Delete" msgstr "Eliminar" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "Bases de dades" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "Afegir una base de dades" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "Connexió" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "Programació" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -216,18 +215,18 @@ msgstr "Programació" msgid "Save changes" msgstr "Desar els canvis" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "Accions" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "Sincronitzar ara l'esquema de la base de dades" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -235,41 +234,41 @@ msgstr "Sincronitzar ara l'esquema de la base de dades" msgid "Starting…" msgstr "Iniciant..." -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "Error al sincronitzar" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "Sincronització programada!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "Torna a analitzar els valors dels camps ara" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "Error a l'iniciar l'anà lisi" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "Sincronització programada!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "Zona de perill" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "Descartar els valors del camp guardats" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "Elimina base de dades" @@ -278,18 +277,17 @@ msgid "Add database" msgstr "Afegeix base de dades" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "Nom" @@ -309,23 +307,24 @@ msgstr "Carregant..." msgid "Bring the sample dataset back" msgstr "Recuperar la base de dades de prova" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "No s'ha pogut connectar a la base de dades. Si us plau, reviseu els parà metres de connexió" -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "Creat correctament!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "Desat correctament!" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "Edita" @@ -365,9 +364,9 @@ msgstr "Fallit" msgid "Success" msgstr "Èxit" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "Vista prèvia" @@ -387,7 +386,7 @@ msgstr "Sense cap tipus especial" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "Altres" @@ -416,7 +415,7 @@ msgstr "Columna" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "Visibilitat" @@ -498,35 +497,34 @@ msgstr "Troba una taula" msgid "Schemas" msgstr "Esquemes" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "Mètriques" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "Afegir una mètrica" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "Definició" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "Crea mètriques per afegir-les al desplegable \"Veure\" al generador de consultes" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -534,11 +532,11 @@ msgstr "Crea mètriques per afegir-les al desplegable \"Veure\" al generador de msgid "Segments" msgstr "Segments" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "Afegir un segment" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "Crea segments per afegir-los al menú de filtres del generador de consultes" @@ -584,23 +582,23 @@ msgstr " Historial" msgid "Revision History for" msgstr "Historial de versions per" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} - Configuració dels camps" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "On es mostrara aquest camp al Metabase" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Filtrant per aquest camp" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "Quan aquest camp s'utilitza en un filtre, quins valors ha de poder introduir l'usuari?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "No existeix cap descripció per aquest camp" @@ -641,11 +639,11 @@ msgstr "El camp actual no es una clau forana o fan falten les metadades de la cl msgid "The selected field isn't a foreign key" msgstr "El camp seleccionat no es una clau forana" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "Mostra valors" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "Escull si vols mostrar el valor original de la base de dades o mostrar informació associada o personalitzada" @@ -665,12 +663,12 @@ msgstr "Consell:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "Es possible que vulgueu actualitzar el nom del camp per assegurar-t'he que encara tinguin sentit en funció de les opcions d'assignació." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "Valors del camp a la memòria cau" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "El metabase pot escanejar els valors d'aquest camp per habilitar els filtres de casella de verificació pels quadres de comandament i preguntes." @@ -697,82 +695,82 @@ msgstr "Neteja iniciada!" msgid "Select any table to see its schema and add or edit metadata." msgstr "Seleccioneu qualsevol taula per veure el seu esquema i afegir o editar les metadades." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "El nom es obligatori" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "La descripció es obligatòria" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "El missatge de revisió es obligatori" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "La agrupació es obligatòria" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "Edita la teva mètrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "Crea la teva mètrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "Feu canvis a la vostra mètrica i deixeu un nota explicativa" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "Pots crear mètriques i guardar-les com un camp calculat en aquesta taula. Les mètriques guardades inclouen el tipus d'agregat, el camp agregat i opcionalment qualsevol filtre que afegeixis. Per exemple, pots fer servir això per definir la forma oficial de calcular el \"Preu mig\" d'una taula de preus." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "Resultat: " -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "Doneu-li un nom a la vostra mètrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "Doneu-li un nom a la vostra mètrica per ajudar als altres a trobar-la." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "Alguna cosa descriptiva però no massa llarga" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "Descriu la mètrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "Doneu-li una descripció a la vostra mètrica per ajudar als altres a entendre de el seu contingut." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "Es un bon lloc per ser més especÃfiques sobre les regles de la mètrica no tan evidents. " -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "Motiu dels canvis" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "Deixeu una nota per explicar els canvis que heu fet i per a que són necessaris." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "Es mostrarà al historial de revisions de la mètrica per ajudar als altres a entendre perquè han canviat les coses." @@ -788,7 +786,7 @@ msgstr "Edita el teu segment" msgid "Create Your Segment" msgstr "Crear el teu segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "Feu canvis al vostre segment i deixeu un nota explicativa" @@ -796,37 +794,37 @@ msgstr "Feu canvis al vostre segment i deixeu un nota explicativa" msgid "Select and add filters to create your new segment for the {0} table" msgstr "Seleccioneu i afegiu filtres per crear un nou segment de la taula {0}" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "Doneu-li un nom al vostre segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "Doneu un nom al vostre segment per ajudar als altres a trobar-lo." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "Descriu el segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "Doneu una descripció al vostre segment per ajudar als altres a saber de que va." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "Aquest es un bon lloc per ser més especÃfics sobre les regles menys obvies del segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "Això apareixerà al historial de versions d'aquest segment per ajudar a tothom a recordar perquè es va realitzar aquest canvi." #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "Configuració" @@ -840,33 +838,29 @@ msgstr "Tornar a escanejar aquesta taula" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "Afegir" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "El format del correu electrònic no es và lid" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "Nom" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "Cognom" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "Correu electrònic" @@ -902,7 +896,7 @@ msgstr "Membres" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "Correu electrònic" @@ -911,8 +905,8 @@ msgid "A group is only as good as its members." msgstr "Un grop només val el que valen els seus membres" #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "Administrador" @@ -972,11 +966,11 @@ msgstr "Elimina el grup" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "Fet" @@ -985,9 +979,9 @@ msgid "Group name" msgstr "Nom del grup" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "Groups" @@ -1016,10 +1010,10 @@ msgstr "Restablir la contrasenya" msgid "Deactivate" msgstr "Desactiva" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "Gent" @@ -1058,7 +1052,7 @@ msgstr "Hem enviat una invitació a {0} amb les instruccions per establir la sev msgid "We've re-sent {0}'s invite" msgstr "Hem reenviat la invitació del {0}" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "D'accord" @@ -1090,7 +1084,7 @@ msgstr "Podran tornar a iniciar sessió i se'ls tornarà a col·locar als grups msgid "Reset {0}'s password?" msgstr "Restablir la contrasenya del {0}?" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "Restableix" @@ -1129,19 +1123,19 @@ msgstr "Afegir algú" msgid "Last Login" msgstr "Últim accés" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Accés a mitjançant de Google" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "Accés a mitjançant de LDAP" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "Reactivar aquest compte" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "Mai" @@ -1183,7 +1177,7 @@ msgid " native queries for " msgstr " consultes natives de " #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "Permisos" @@ -1240,115 +1234,115 @@ msgstr "El Metabot es el bot de Slack de Metabase. Aquà pots elegir a que te ac msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "El grup \"{0}\" pot tenir accés a un conjunt diferent de {1} que aquest grup, lo que pot donar-li accés addicional a algun {2}" -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "El grup \"{0}\" té un major nivell d'accés que aquest cosa que anul·larà aquesta configuració. Has de limitar o revocar el accés del grup \"{1}\" a aquest element." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "LÃmit" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "Revocar" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "el accés encara que el grup \"{0}\" té major accés?" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "Limitar accés" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "Revocar el acces" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "Canviar l'accés a aquesta base de dades a limitat?" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "Canvi" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "Permetre l'escriptura de consultes directes?" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "Això també canviarà l'accés d'aquest grup a les dades \"Sense restriccions\" per aquesta base de dades." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "Permetre" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "Revocar l'accés a totes les taules?" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "Això també revocarà l'accés d'aquest grup a les consultes en pla per aquesta base de dades." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "Concedir accés sense restriccions" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "Accés sense restriccions" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "Accés limitat" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "Sense accés" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "Escriure consultes directes" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Pot escriure consultes directes" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "Mima la col·lecció" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "Mostrar la col·lecció" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "Accedir a les dades" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "Mostrar taules" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "Consultes SQL" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "Mostrar esquemes" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "Model de dades" @@ -1491,8 +1485,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "La versió {0} de Metabase esta disponible. Esteu fent servir la versió {1}" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "Actualitzat" @@ -1515,18 +1509,20 @@ msgstr "Elimina el mapa personalitzat" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "Elimina" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "Selecciona..." @@ -1727,7 +1723,7 @@ msgstr "No es coneix la configuració {0}" msgid "Setup" msgstr "Configuració" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "General" @@ -1854,7 +1850,7 @@ msgid "Username or DN" msgstr "Nom d'usuari o DN" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "Contrasenya" @@ -2017,31 +2013,31 @@ msgstr "No recordo la meva contrasenya" msgid "The email you use for your Metabase account" msgstr "El correu electrònic que utilitzes per la teva compta de Metabase" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "Enviar el correu electrònic per recuperar la contrasenya" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "Consulta el teu correu electrònic per obtenir les instruccions sobre com recuperar la teva contrasenya" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "Iniciar sessió al Metabase" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "O" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "Nom d'usuari o direcció de correu electrònic" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "Accedeix" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "Sembla que no recordo la meva contrasenya" @@ -2059,7 +2055,7 @@ msgid "For security reasons, password reset links expire after a little while. I msgstr "Per raons de seguretat els enllaços per recuperar la contrasenya caduquen al cap d'un temps. Si encara necessites recuperar la teva contrasenya, pots {0}" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "Nova contrasenya" @@ -2072,38 +2068,38 @@ msgid "Create a new password" msgstr "Crea una nova contraseña" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "Han de complir les instruccions anteriors" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "Confirma la nova contraseña" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "Assegureu-vos que coincideix amb la que acabes d'introduir" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "La teva contrasenya ha estat restablerta." -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "Inicia sessió amb la nova contrasenya" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "No s'ha pogut guardar" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2119,25 +2115,26 @@ msgstr "Arxiva aquesta col·lecció?" #: frontend/src/metabase/components/ArchiveCollectionModal.jsx:42 msgid "The dashboards, collections, and pulses in this collection will also be archived." -msgstr "Les" +msgstr "Els cuadres de comandament, les colecions i els polsos d'aquesta col·lecció també s'arxivaran." #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "Arxiva" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "Aquest {0} ha estat arxivat" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "Mostra l'arxiu" @@ -2147,17 +2144,19 @@ msgstr "Desarxiva aquest {0}" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "Les nostres dades" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "Aplica rajos-X a aquesta taula" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "Aprèn sobre aquesta taula" @@ -2252,44 +2251,44 @@ msgstr "Contingut fixat" msgid "Drag something here to pin it to the top" msgstr "Arrasta coses aquà per fixar-les a dalt" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "Col·leccions" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "Arrastra-ho aquà per deixar de fixar-los" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} element seleccionat" msgstr[1] "{0} elements seleccionats" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "Moure {0} element(s)?" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "Moure \"{0}\"?" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "Moure" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "Edita aquesta col·lecció" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "Arxiva aquesta col·lecció" @@ -2306,11 +2305,11 @@ msgstr "Nova col·lecció" msgid "Copied!" msgstr "Copiat!" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "Utilitza un túnel SSH per a les connexions a la base de dades" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." @@ -2318,7 +2317,7 @@ msgstr "Algunes instancies de bases de dades només es poden accedir a través d "Aquesta configuració també proporcionarà una cap addicional de seguretat quan no es disposi d'una VPN. \n" "Aquest configuració normalment es més lenta que una connexió directa." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "Aquesta es una base de dades gran. Deixem decidir quan el Metabase es sincronitza i escaneja les dades" @@ -2328,47 +2327,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail msgstr "De forma predeterminada el Metabase realitzar una sincronització lleugera cada hora i un anà lisis diari intensiu dels valors dels camps.\n" "Si tens una base de dades gran et recomanem que activis aquesta configuració i que revisis quan i amb quina freqüència s'escanegen els valors del camp." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0] per generar un ID de client i una clau secreta pel teu projecte" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "Cliqueu aquÃ" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "Escul \"Un altre\" com a tipus d'aplicació. Nombra-ho com vulguis." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0} per obtenir un codi d'autentificació" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "amb permisos de Google Drive" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "Per utilitzar el Metabase amb aquestes dades has d'habilitar el accés a la API a la Consola de Desenvolupadors de Googl" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "{0} per anar a la consola si encara no ho has fet" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "Com t'agradaria anomenar aquesta base de dades?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "Següent" @@ -2387,7 +2386,7 @@ msgstr "Mou aquest element" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "Edita aquesta pregunta" @@ -2400,7 +2399,7 @@ msgstr "Tipus d'acció" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "Mostra l'historial de revisions" @@ -2416,7 +2415,7 @@ msgstr "Acció d'arxivar" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "Afegir al quadre de comandament" @@ -2427,7 +2426,7 @@ msgstr "Descarrega els resultats" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "Compartint i incrustant" @@ -2473,65 +2472,63 @@ msgstr "Basat en l'esquema" msgid "A look at your" msgstr "Una vista als teus" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "Busca a la llista" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "Buscar per {0}" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr " o introdueix un ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "Introdueix un ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "Introdueix un número" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "Introdueix un text" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "No s'han trobat {0} coincidents" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "Incloure totes les opcions al filtre possiblement no servirà de res" -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "Ho sentim, alguna cosa no ha sortit bé" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "Em trobat un error. Pots intentar refrescar la pà gina o simplement tornar enrere." -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "Encara sense cap descripció" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "Nou {0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "Preguntat pel {0}" @@ -2552,8 +2549,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "Revertit a una revisió anterior i {0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "Historial de revisións" @@ -2598,7 +2595,7 @@ msgid "Questions" msgstr "Preguntes" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "Polsos" @@ -2635,7 +2632,7 @@ msgstr "Subscriure's" msgid "You're subscribed. Thanks for using Metabase!" msgstr "Ja està s subscrit. Grà cies per utilitzar el Metabase!" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "Estem una mica perduts..." @@ -2644,14 +2641,14 @@ msgid "Temporary Password" msgstr "Contrasenya temporal" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "Amaga" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "Mostra" @@ -2753,7 +2750,7 @@ msgstr "Seleccionat" msgid "Nothing to select" msgstr "No hi ha res a seleccionar" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "Ho sentim, no tens permisos per veure això." @@ -2761,8 +2758,8 @@ msgstr "Ho sentim, no tens permisos per veure això." msgid "Unknown error encountered" msgstr "S'ha trobat un error desconegut" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "Crea" @@ -2770,7 +2767,6 @@ msgstr "Crea" msgid "Create dashboard" msgstr "Crea un quadre de comandament" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "Taula" @@ -2795,12 +2791,11 @@ msgstr "Intenta ajustar el teu filtre per trobar el que estas buscan" msgid "View by" msgstr "Vist per" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "de" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "No li diguis a ningú però ets el meu favorit" @@ -2808,19 +2803,19 @@ msgstr "No li diguis a ningú però ets el meu favorit" msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "Quan connectes les teves pròpies dades et puc mostrar algunes exploracions automà tiques anomenades rajos-X. Aquà hi ha alguns exemples de mostra." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "Comença aquÃ" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "La nostra analÃtica" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "Mostrar tots els elements" @@ -2832,44 +2827,45 @@ msgstr "Sobreescriure o guardar com una nova pregunta?" msgid "Replace original question, \"{0}\"" msgstr "Sobreescriure la pregunta original: \"{0}\"" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "Guarda com una nova pregunta" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "Primer guarda la teva pregunta" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "Guardar la pregunta" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "Quin es el nom de la teva tarjeta?" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "Descripció" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "Es opcional, però va tan bé a vegades" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "A quina col·lecció vols guardar-ho?" @@ -2910,11 +2906,11 @@ msgstr "Arxiva el quadre de comandament" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "Asegura't de fer una selecció per a cada sèrie sinó el filtre no funcionarà per aquesta targeta." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "Sembla que aquest quadre de comandament està buit." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "Afegeix una pregunta per a que sigui útil" @@ -2934,50 +2930,50 @@ msgstr "Desactiva la pantalla complerta" msgid "Enter fullscreen" msgstr "Activa la pantalla complerta" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "Guardant..." -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "Afegeix una pregunta" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "Afegiu una pregunta a aquest quadre de comandament." -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "Afegeix un filtre" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "Parà metres" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "Afegeix una caixa de text" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "Moure el quadre de comandament" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "Edita el quadre de comandament" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "Editar la disposició del quadre de comandament" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "Esteu editant un quadre de comandament" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Selecciona el camp que s'ha de filtrar per a cada targeta" @@ -3028,11 +3024,11 @@ msgstr "30 minuts" msgid "60 minutes" msgstr "60 minuts" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "Refresca automà ticamente" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "Actualitzant en" @@ -3044,7 +3040,7 @@ msgstr "Eliminar aquesta pregunta?" msgid "Your dashboard was saved" msgstr "S'ha guardat el teu quadre de comandament" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "Veure-ho" @@ -3131,10 +3127,9 @@ msgstr "ha eliminat una pregunta al quadre de comandament - " msgid "received the latest data from" msgstr "ha rebut les ultimes dades de" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "Desconegut" @@ -3251,7 +3246,7 @@ msgstr "Mostra'ls tots" msgid "Recently Viewed" msgstr "Vist recentment" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "No has consultat cap quadre de comandament o pregunta recentment" @@ -3265,11 +3260,11 @@ msgid "Unarchive" msgstr "Desarxivar" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "Activitat" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "Resultats de \"{0}\"" @@ -3331,6 +3326,9 @@ msgstr "URL del avatar" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "Comú" @@ -3373,8 +3371,8 @@ msgstr "Longitud" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "Número" @@ -3420,93 +3418,93 @@ msgstr "Hora de creació" msgid "Creation date" msgstr "Data de creació" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "Producte" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "Usuari" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "Origen" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "Preu" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "Unir per temps" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "Unir per temps" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "Unir per data" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "Compartir" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "Propietari" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "Empresa" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "Subscripció" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "Puntuació" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "TÃtol" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "Comentari" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "Cost" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Marge brut" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "Aniversari" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "Caixa de cerca" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "Una llista amb tots els valors" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "Caixa de text" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "A tot arreu" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "Configuració per defecte. El camp es mostrarà normalment en taules i grà fics" @@ -3514,7 +3512,7 @@ msgstr "Configuració per defecte. El camp es mostrarà normalment en taules i g msgid "Only in Detail Views" msgstr "Només a les vistes detallades" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "Aquest camp només es mostrarà al veure els detalls d'un registre. Feu-ho servir per obtenir informació llarga o que no es útil en una taula o grà fic." @@ -3528,7 +3526,8 @@ msgstr "El Metabase mai obtindrà aquesta camp. Fes-ho servir per informació se #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3543,8 +3542,9 @@ msgid "CumulativeCount" msgstr "RecompteCumulatiu" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "Suma" @@ -3553,7 +3553,7 @@ msgid "CumulativeSum" msgstr "SumaCumulativa" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "Diferent" @@ -3562,25 +3562,28 @@ msgid "StandardDeviation" msgstr "DesviacióEstà ndard" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "Mitja" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "MÃnim" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "Mà xim" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "Trist, molt trista: S'han trobat errors lèxics" @@ -3630,12 +3633,13 @@ msgid "What do you want to find out?" msgstr "Sobre que vols buscar?" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "Dades brutes" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "Recompte cumulatiu" @@ -3679,174 +3683,174 @@ msgstr "Filtrar per" msgid "Sorted by " msgstr "Ordenat per" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "Verdader" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "Fals" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Selecciona la longitud del camp" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "Introdueix la latitud superior" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "Longitud esquerra" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "Longitud inferior" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "Longitud dreta" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "És" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "No és" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "Està buit" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "No està buit" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "Igual a" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "Diferent de" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "Major que" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "Menor que" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "Entre" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "Major o igual que" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "Menor o igual que" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "Conté" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "No conté" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "Comença amb" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "Acaba amb" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "Abans" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "Després" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "Dins" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "Només una taula amb files a la a resposta. Sense operacions addicionals." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "Nombre de files" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "Nombre total de files a la resposta" -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "Suma de ..." -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "Suma tots els valors de una columna" -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "Mitja de ..." -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "Mitja de tots els valors de una columna" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "Nombre de valors diferents de ..." -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "Nombre de valors únics de una columna entre totes les files de la resposta" -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "Suma acumulada de ..." @@ -3854,7 +3858,7 @@ msgstr "Suma acumulada de ..." msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "Suma cumulativa de tots els valors de una columan. \\\\n Per exemple: Els ingressos totals al llarg del temps" -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "Recompte acumulat de files" @@ -3862,27 +3866,27 @@ msgstr "Recompte acumulat de files" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "Recompte acumulat del número de files. \\\\n Per exemple: el nombre total de vendes al llarg del temps" -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "Desviació està ndard de ..." -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "Nombre que expressa com varien els valors de una columna entre totes les files de la resposta" -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "MÃnim de ..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Valor mÃnim de una columna" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "Mà xim de ..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "Valor mà xim de una columna" @@ -4056,68 +4060,70 @@ msgstr "Altres categories" msgid "Category, Type, Model, Rating, etc." msgstr "Categoria" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "Configuració del compte" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "Sortir de l'administració" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "Registres" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Ajuda" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "Sobre Metabase" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "Sortir" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "Grà cies per utilitzar" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "Esteu utilitzant la versió" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "Construïda el" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "es una marca registrada de" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "i s'ha desenvolupat amb amor a San Francisco, California" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Administració del Metabase" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "Fes una pregunta" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "Afegeix un nou quadre de comandament" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "Nou pols" @@ -4130,7 +4136,6 @@ msgstr "Referència" msgid "Which metric?" msgstr "Quina mètrica?" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "La definició de mètriques comunes per al teu equip fa que sigui encara més fà cil crear preguntes" @@ -4148,7 +4153,7 @@ msgid "Custom" msgstr "Personalitzat" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "Nova pregunta" @@ -4156,13 +4161,13 @@ msgstr "Nova pregunta" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "Utilitzeu el generador de preguntes per veure tendències, llistes de coses o les teves pròpies mètriques" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "Consulta nativa" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "Per a preguntes més complicades pots escriure la teva pròpia consulta SQL o nativa." @@ -4266,7 +4271,7 @@ msgstr "Introduïu un valor" msgid "Enter a default value..." msgstr "Introduïu un valor predeterminat" -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "S'ha produït un error" @@ -4514,7 +4519,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "Recomanem mantenir els polsos petits i enfocats per facilitar la seva comprensió i que siguin útils per tot l'equip" #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "Escull les teves dade" @@ -4530,47 +4535,47 @@ msgstr "Correus electrònics" msgid "Slack messages" msgstr "Missatges de Slack" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "Enviat" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} s'enviarà a la les" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "Missatges" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "Envia el correu electrònic ara" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "Envia a {0} ara" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "Enviant..." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "S'ha produït un error al enviar" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "No s'ha enviat el pols perquè no te resultats" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "Pols enviat" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} ha de ser configurat per un administrador." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4657,7 +4662,7 @@ msgstr "Nombre de files per temps" msgid "Break out by {0}" msgstr "Distribueix per {0}" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "Resumeix aquest segment" @@ -4711,15 +4716,15 @@ msgstr "Ascendent" msgid "Descending" msgstr "Descendent" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "a través del temps" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "Mitja" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "Diferents" @@ -4915,6 +4920,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} Les alertes basades en objectius encara no són comptables amb grà fics de més d'una linia de manera que aquesta alerta s'enviara sempre que el grà fic tingui {1}." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "resultats" @@ -4930,47 +4936,47 @@ msgstr "Consell:" msgid "usually" msgstr "generalment" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "Tria un segment o taula" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "Selecciona una base de dades" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "Seleccionar.." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "Selecciona una taula" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "No s'han trobat taules en aquesta base de dades" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "Falta una pregunta?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "Aconsegueix més informació sobre consultes anidades" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "Camps" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "No s'han trobat segments" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "Troba un segment" @@ -5020,7 +5026,7 @@ msgstr "Afegeix una agrupació" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5028,9 +5034,9 @@ msgstr "Afegeix una agrupació" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5053,7 +5059,7 @@ msgstr "Agrupat per" msgid "None" msgstr "Cap" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "Aquesta pregunta està escrita en {0}" @@ -5065,11 +5071,11 @@ msgstr "Amaga l'editor" msgid "Hide Query" msgstr "Amaga la consulta" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "Obrir l'editor" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "Mostra la consulta" @@ -5114,7 +5120,7 @@ msgstr "CANCEL·LA" msgid "Move question" msgstr "Moure la pregunta" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "A quina col·lecció ho haurÃem de guardar?" @@ -5168,7 +5174,7 @@ msgstr "{0} d'auquesta pregunta" msgid "Convert this question to {0}" msgstr "Convertir aquesta pregunta a {0}" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "Aquesta pregunta tardarà aproximadament {0} en actualitzar-se" @@ -5202,7 +5208,7 @@ msgstr "Si em dones algunes dades et puc mostrar coses genials. Executa una cons msgid "How do I use this thing?" msgstr "Com es fa servir aquesta cosa?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "Obtenir la resposta" @@ -5270,7 +5276,7 @@ msgstr "rebre una alterta" msgid "Back to last run" msgstr "Tornar a la última execució" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "Visualització" @@ -5282,7 +5288,7 @@ msgstr "Sense descripció" msgid "Use for current question" msgstr "Utilitzar per la pregunta actual" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "Preguntes potencialment útils" @@ -5306,7 +5312,7 @@ msgstr "Tots els valors diferents de {0}" msgid "Number of {0} grouped by {1}" msgstr "Número de {0} agrupades per {1}" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5340,12 +5346,12 @@ msgid "Filter by {0}" msgstr "Filtrar per {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "Número de {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "Veure tots els {0}" @@ -5365,32 +5371,33 @@ msgstr "Mostra les dades de {0}" msgid "More" msgstr "Més" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "Expressió invà lida" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "error desconegut" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Formula del camp" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "Pensa que això es com escriure una fórmula en un full de cà lcul: Pots utilitzar números, camps d'aquesta taula, sÃmbols mà temà tics com + i algunes funcions. Pots escriure alguna cosa com: Subtotal - Cost" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "Aprendre'n més" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "Dona-li un nom" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "Quelcom agradable i descriptiu" @@ -5470,7 +5477,7 @@ msgid "Enter desired number" msgstr "Introdueix el nombre desitjat" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "Buit" @@ -5516,7 +5523,7 @@ msgstr "Filtres de camp" #: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:147 msgid "Giving a variable the \"Field Filter\" type allows you to link SQL cards to dashboard filter widgets or use more types of filter widgets on your SQL question. A Field Filter variable inserts SQL similar to that generated by the GUI query builder when adding filters on existing columns." -msgstr "Donar-li a la variable el tipus \"Filtre de camp\" et permet vincular les targetes SQL amb quadres de comandament amb elements de filtre o utilitzar més tipus d'elements de filtro a la teva pregunta de SQL. Una variable de filtre insereix un SQL similar al que es genera a la UI de generador de consultes quan s'afegeixen filtres amb columnes existents." +msgstr "Donar-li a la variable el tipus \"Filtre de camp\" et permet vincular les targetes SQL amb quadres de comandament amb elements de filtre o utilitzar més tipus d'elements de filtre a la teva pregunta de SQL. Una variable de filtre insereix un SQL similar al que es genera a la UI de generador de consultes quan s'afegeixen filtres amb columnes existents." #: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:150 msgid "When adding a Field Filter variable, you'll need to map it to a specific field. You can then choose to display a filter widget on your question, but even if you don't, you can now map your Field Filter variable to a dashboard filter when adding this question to a dashboard. Field Filters should be used inside of a \"WHERE\" clause." @@ -5538,41 +5545,41 @@ msgstr "Pots utilitzar múltiples clà usules opcions, pots incloure almenys una msgid "Read the full documentation" msgstr "Llegeix la documentació complerta" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "Filtre d'etiqueta" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "Tipus de variable" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "Text" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "Data" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Filtre de camp" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "Camp per mapejar a" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "Tipus de filtre" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "Obligatori?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "Valor per defecte el camp de filtre" @@ -5584,7 +5591,7 @@ msgstr "Arxivar aquesta pregunta?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "Aquesta pregunta s'eliminarà dels quadres de comandaments o polsos que la utilitzin." -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "Pregunta" @@ -5596,8 +5603,8 @@ msgstr "Escull una pregunta per afegir" msgid "You are editing this page" msgstr "Està s editant aquesta pà gina" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "Veure aquest {0}" @@ -5605,15 +5612,15 @@ msgstr "Veure aquest {0}" msgid "A subset of" msgstr "Un subconjunt de" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "Selecciona un tipus de camp" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5624,8 +5631,8 @@ msgid "by" msgstr "per" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "Tipus de camp" @@ -5650,12 +5657,12 @@ msgid "Nothing important yet" msgstr "Res important de moment" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "Res interessant de moment" @@ -5664,12 +5671,12 @@ msgid "Things to be aware of about this {0}" msgstr "Coses a tenir en compte d'aquest {0}" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "No hi ha res que hauries de saber" @@ -5715,7 +5722,7 @@ msgstr "Hi ha alguna cosa que els usuaris d'aquest {0} hagin de saber?" msgid "Which 2-3 fields do you usually group this metric by?" msgstr "Amb quins 2 o 3 camps s'agrupa normalment aquesta mètrica?" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "Aquest es el lloc per començar si ets nou amb les dades de la teva empresa o si només vols verificar el que està passant." @@ -5731,11 +5738,11 @@ msgstr "Motiu del canvi" msgid "Leave a note to explain what changes you made and why they were required" msgstr "Deixa una nota per explicar quins canvis has realitzat i perquè han estat necessaris." -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "Perquè aquesta base de dades és interessant" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "Coses a tenir en compte d'aquesta base de dades" @@ -5745,44 +5752,44 @@ msgid "Databases and tables" msgstr "Base de dates i taules" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "Detalls" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "Taules a {0}" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "Nom real a la base de dades" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "Perquè aquest camp es interessant" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "Coses a tenir en compte d'aquest camp" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "Tipus de dada" @@ -5796,12 +5803,12 @@ msgstr "Els camps apareixeran aquà a mesura que es vagin afegint" msgid "Fields in {0}" msgstr "Camps a {0}" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "Nom del camp" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "Aplica rajos-X a aquest camp" @@ -5832,11 +5839,11 @@ msgstr "Recompte de {0}" msgid "See raw data for {0}" msgstr "Mostra les dades de {0}" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "Perquè aquesta taula es interesant" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "Coses a tenir en compte sobre aquesta taule" @@ -5850,7 +5857,7 @@ msgstr "Les preguntes d'aquesta taula es mostraran aquà una vegades afegeixes" #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "Preguntes sobre {0}" @@ -5865,7 +5872,7 @@ msgstr "Creat fa {0} per {1}" msgid "Fields in this table" msgstr "Camps en aquesta taula" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "Preguntes sobre aquesta taula" @@ -5901,7 +5908,7 @@ msgstr "Mostra totes les mètriques" msgid "Segments and tables" msgstr "Segments i taules" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "Taules" @@ -6018,8 +6025,8 @@ msgstr "Hi ha algú que els teus usuaris poden contactar en cas de que tinguin d msgid "Who should users contact for help if they're confused about this data?" msgstr "Amb quin han de contactar els usuaris per obtenir ajuda si tenen dubtes sobre aquesta informació?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "Si us plau afegeix un missatge de revisió" @@ -6035,15 +6042,15 @@ msgstr "Coses a tenir en compte d'aquesta mètrica" msgid "How this Metric is calculated" msgstr "Com es calcula aquesta metrica" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "Encara no sabem com s'han calculat" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "Altres camps pels que es pot agrupar aquesta mètrica" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "Camps pels que es pot agrupar aquesta mètrica" @@ -6068,20 +6075,20 @@ msgid "There are no revisions for this metric" msgstr "No hi ha revisions per aquesta mètrica" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "Historial de revisions de {0}" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "Aplica rajos-X a aquesta mètrica" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "Perquè aquest segment es interessant" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "Coses a tenir en compte d'aquest segment" @@ -6105,60 +6112,60 @@ msgstr "Aprèn a crear segments" msgid "Questions about this segment will appear here as they're added" msgstr "Les preguntes sobre aquest segment apareixeran aquà quan s'afegeixin" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "No hi ha revisions per aquest segment" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "Camps en aquest segment" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "Preguntes sobre aquest segment" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "Aplica rajos-X a aquest segment" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "Inicia sessió" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "Cerca" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "Quadre de comandament" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "Nova pregunta" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "Selecciona el tipus de base de dades que utilitzes" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "Afegeix les teves dades" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "Afegiré les meves dades més tard" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "Connectant amb {0}" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "Et farà falta la informació de la teva base de dades: el nom d'usuari i la contrasenya. Si no tens aquesta informació ara mateix el Metabase conté un conjunt de dades de mostra amb els que pots començar." -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "Afegiré les meves dades més tard" @@ -6166,43 +6173,43 @@ msgstr "Afegiré les meves dades més tard" msgid "Control automatic scans" msgstr "Controla els escanejos automà tics" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "Preferències d'utilització de dades" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "Grà cies per ajudar-nos a millorar" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "No recopilarem cap esdeveniment d'ús." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Per ajudar-nos a millorar el Metabase ens agradaria recollir informació sobre el seu us a través de Google Analytics." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "Aquà hi ha una llista complerta de tota la informació que recollirem i perquè." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "Permetre que el Metabase reculli esdeveniments d'ús de forma anònima" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase {0} recull informació sobre les teves dades o els resultats de les preguntes" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "mai" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "Tota la informació obtinguda es totalment anònima" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "La recopilació es pot desactivar en qualsevol moment des de la pà gina de configuració." @@ -6250,24 +6257,24 @@ msgstr "Hola {0}, encantat de coneixe't" msgid "Create a password" msgstr "Crea una contrasenya" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "Shhht..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "Confirma la contrasenya" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "Shhht... una altra vegada per assegurar-nos que ho fem bé" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "El nom de la teva empresa o equip" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "Departament" @@ -6444,11 +6451,11 @@ msgstr "Inicia sessió amb la direcció de correu electrònic de Googl" msgid "User Details" msgstr "Detalls del usuari" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "Restablir els valors predeterminats" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "mapa desconegut" @@ -6456,7 +6463,7 @@ msgstr "mapa desconegut" msgid "Grid map requires binned longitude/latitude." msgstr "El mapa de quadrÃcula necessita que la longitud i la latitud estigui agrupada." -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "més" @@ -6493,31 +6500,31 @@ msgstr "Desmarcar" msgid "Rows {0}-{1} of {2}" msgstr "Files {0}-{1} de {2}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "Les dades s'han truncat a {0} files." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "No s'ha pogut trobar la visualització" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "No s'ha pogut mostrar el grà fic amb aquesta informació." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "Sense resultats" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "Esperant..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "Normalment tarda una mitja de {0}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(es una mica llarg per a un quadre de comandament)" @@ -6533,11 +6540,11 @@ msgstr "Selecciona un camp" msgid "error" msgstr "erro" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "Clica i arrastra per canviar l'ordre" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "Afegeix camps de la llista inferior" @@ -6676,19 +6683,19 @@ msgstr "Afegir una regla" msgid "Update rule" msgstr "Actualitzar la regla" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "La visualització es buida" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "La visualització ha de definir una variable 'identificadora' està tica: " -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "Ja s'ha registrat una visualització amb aquesta identificació:" -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "No hi ha visualitzacions per {0}" @@ -6696,11 +6703,11 @@ msgstr "No hi ha visualitzacions per {0}" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "El camp \"{0}\" no es un agregat: si hi ha més d'un valor en un punt del eix X els valors es sumaran." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "Aquest tipus de grà fic requereix com a mÃnim dos columnes" -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "Aquest tipus de grà fic no permet més de {0} sèries de dades." @@ -6741,7 +6748,7 @@ msgstr "Si us plau, configura aquest grà fic a la configuració dels grà fics" msgid "Edit Settings" msgstr "Editar configuració" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "Falten valors per les x!" @@ -6768,7 +6775,7 @@ msgid "Bubble size" msgstr "Mida de la bombolla" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "LÃnia" @@ -6825,104 +6832,104 @@ msgstr "Res" msgid "Linear Interpolated" msgstr "Interpolació lineal" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "Escala Eix-X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "Series de temps" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "Lineal" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "Exponencial" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "LogarÃtimc" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "Histograma" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "Ordinal" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "Escala Eix-Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "Mostra lÅ„ia i marca del Eix-X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Compacte" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "Girar 45º" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "Girar 90º" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "Mostra Ãnia i marques del Eix-Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Rang del Eix-Y automà tic" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "Utilitza un Eix-Y dividit quan sigui necesà ri" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "Mostra etiqueta en l'Eix-X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "Etiqueta Eix-X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "Mostra etiqueta en l'Eix-Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Etiqueta Eix-Y" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "Desviació Està ndard" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "Àrea" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "Grà fic de à rea" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "Barra" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "Grà fic de barres" @@ -6948,19 +6955,19 @@ msgstr "Tipus d'embut" msgid "Bar chart" msgstr "Grà fic de barres" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "Grà fic de lÃnies" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "Selecciona les columnes de longitud i latitud a la configuració del grà fic." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "Si us plau, selecciona un mapa de la regió" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "Selecciona les columnes de regió i mètriques a la configuració del grà fic." @@ -6968,73 +6975,73 @@ msgstr "Selecciona les columnes de regió i mètriques a la configuració del gr msgid "Map" msgstr "Mapa" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "Tipus de mapa" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "Mapa de la regió" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "Mapa de pin" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "Tipus de pin" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "Rajoles" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "Marcados" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "Camp latitud" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "Camp longitud" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "Camp mètrica" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "Camp regió" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "Radi" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "Difuminar" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "Opacitat mÃnima" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "Zoom Maxim" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "No s'han trobat relacions" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "via {0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "Està {0} està connectada a:" @@ -7046,7 +7053,7 @@ msgstr "Detall del objecte" msgid "object" msgstr "objecte" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "Total" @@ -7095,7 +7102,7 @@ msgid "Progress" msgstr "Progrès" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "Color" @@ -7187,13 +7194,13 @@ msgstr "Dreta" msgid "Show background" msgstr "Mostrar el fons" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "{0} agrupació" msgstr[1] "{0} agrupacions" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "Agrupació automà tica" @@ -7619,7 +7626,7 @@ msgstr "suma acumulativa" msgid "{0} and {1}" msgstr "{0} i {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} de {1}" @@ -8940,31 +8947,31 @@ msgstr "Veure tots els permisos de les col·leccions" msgid "Also change sub-collections" msgstr "Canviar també les sub-col·leccions" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Pot editar aquesta col·lecció i els seus continguts" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Pot veure el contingut d'aquesta col·lecció" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "Accés a la col·lecció" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "Aquest grup té permisos per veure com a mÃnim una sub-col·lecció d'aquesta col·lecció" -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "Aquest grup té permisos per editar com a mÃnim una sub-col·lecció d'aquesta col·lecció" -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "Mostra sub col·leccÃó" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "Recorda'm" @@ -8984,7 +8991,7 @@ msgstr "Afegiu aquesta pregunta a un quadre de comandament" msgid "Create a new dashboard" msgstr "Crea un quadre de comandament" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "No s'ha trobat la pà gina que heu solicitat" @@ -8992,11 +8999,11 @@ msgstr "No s'ha trobat la pà gina que heu solicitat" msgid "Select a {0}" msgstr "Selecciona un(a) {0}" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "Guardar els quadres de comandament, preguntes i col·leccions a \"{0}\"" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "Accedir als quadres de comandament, preguntes i col·leccions de \"{0}\"" @@ -9016,12 +9023,12 @@ msgstr "Relacionat" msgid "More X-rays" msgstr "Més rajos-X" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "No hi ha resultats" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "El Metabase no ha pogut trobar cap resultat per la seva cerca." @@ -9231,10 +9238,10 @@ msgstr "N/A" msgid "Windows domain" msgstr "Domini de Windows" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "Etiquetes" @@ -9269,6 +9276,8 @@ msgstr "Compartir" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9283,33 +9292,33 @@ msgstr "Compartir" msgid "Display" msgstr "Visualitza" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "Eixos" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "Format" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "Prova aquests rajos-X segons les teves dades" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "Hi ha hagut un problema al mostrar aquesta grà fica" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "Ho sentim, no tens permisos per veure aquesta targeta" @@ -9329,20 +9338,20 @@ msgstr "Aplica rajos-X" msgid "Compare to the rest" msgstr "Compara amb a resta" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "Utilitza la zona horà ria de la mà quina virtual de Java (JVM)" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "Et suggerim que desactivis això excepte si està s forçant manualment la zona horà ria a la majoria de consultes d'aquestes dades" -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "Els quadres de comandament més importants van aquÃ" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "Fixeu els quadres de comandament a {0] per a que es mostrin en aquest espai per a tots" @@ -9366,12 +9375,12 @@ msgstr "Consell: " msgid "Select a currency type" msgstr "Selecciona un tipus de moneda" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "Tipo de camp" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "Solució de problemes" @@ -9419,11 +9428,11 @@ msgstr "Duració (ms)" msgid "Currency" msgstr "Modena" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "Escull un usuari o canal" -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "Sense configuració de format" @@ -9596,15 +9605,15 @@ msgstr "Comptador" msgid "Gauge ranges" msgstr "Rangs del comptador" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "Camp a mostrar" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "últim {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} era {1} {2}" @@ -9732,7 +9741,7 @@ msgstr "trimestre" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "Afegir {0} targetes al quadre de comandament {1}:n{2}" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "Error llegint {0}:n{1}" @@ -10026,7 +10035,7 @@ msgstr "La neteja del històrial de tasques ha completat amb èxit. S'han elimin msgid "not" msgstr "no" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "Per obtenir més informació vistia" @@ -11027,6 +11036,7 @@ msgstr "Com es distribueix aquesta mètrica entre els diferents nombres." msgid "Sessions by page where the session began" msgstr "Sessions per pà gina on ha començat la sessió" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11375,15 +11385,15 @@ msgstr "Es pot tornar a executar?" msgid "Triggers for {0}" msgstr "Disparadors per {0}" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "Tasques" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "Treballs" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "S'ha duplicat {0}" @@ -11395,7 +11405,7 @@ msgstr "Duplica aquest Ãtem" msgid "Archive this item" msgstr "Arxiva aquest Ãtem" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "Duplica el quadre de comandaments" @@ -11422,6 +11432,7 @@ msgid "Next {0}" msgstr "Següent {0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "{0} anterior" @@ -11516,8 +11527,8 @@ msgstr "[Q]Q" msgid "This" msgstr "Aquest" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "Invà lid" @@ -11525,11 +11536,11 @@ msgstr "Invà lid" msgid "Add a time" msgstr "Afegeix una hora" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "Res que comprar amb el {0} anterior." -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "per {0}." @@ -11585,39 +11596,39 @@ msgstr "Error al agregar la directiva SQL a la pregunta guardada en BigQuery" msgid "Failed to notify {0} Database {1} updated" msgstr "Error al notificar {0} base de dades {1} actualitzada" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "Carregant el controlador {0} {1}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "Carrega el controlador {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "El controlador {0} no s'ha registrat després de la cà rrega." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "Error intentant cambiar la proipetat {0} `:abstract?` de {1} a {2}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "Controlador abstracte {0} registrat" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "Controlador {0} registrat" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(superiors: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "Inicialitzant controlador {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "Raó:" @@ -11769,11 +11780,11 @@ msgstr "{0} dependència {1} satisfeta? {2}" msgid "Plugins with unsatisfied deps: {0}" msgstr "Extensions amb dependències insatisfetes: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "Extreure el fitxer {0} -> {1}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "El recurs no existeix" @@ -12098,7 +12109,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreateDate]] per trimestre del any" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "Editar usuari" @@ -12106,12 +12117,12 @@ msgstr "Editar usuari" msgid "New user" msgstr "Nou usuari" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "Restablir contrasenya" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "Desactivar usuari" @@ -12388,11 +12399,11 @@ msgstr "Instruccions de fallada" msgid "Archive this?" msgstr "Arxivar això?" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "Apren de les teves dades" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "Utilitza el DNS SRV quan et conectis" @@ -12402,7 +12413,7 @@ msgid "Using this option requires that provided host is a FQDN. If connecting t "leave this disabled." msgstr "Aquesta opció requereis que el host sigui FQDN. Si es conecta a un clúster Atlar es possibleu que necessiteu habilitar aquesta opció. Si no sabeu el que significa deixa-ho deshbilitat." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "Executa les consultes automà ticament quan es realitze un sumari o un filtre simple." @@ -12410,7 +12421,7 @@ msgstr "Executa les consultes automà ticament quan es realitze un sumari o un fi msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Quan axxò esta actiu el Metabase executarà automaticament les consultes quan els usuaris duen a terme exploracions simples amb els botons de Resumiri filtrar quan es mostra una taula o grafica. Podeu desactivar-ho si les consultes a la base de dades son lesntes. Aquesta configuració no afecta la otenció de detalls o les consultes SQL." -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "Apren d'aquesta base de dades" @@ -12418,25 +12429,25 @@ msgstr "Apren d'aquesta base de dades" msgid "Archive this dashboard?" msgstr "Arxivar aquest quadr de comandament?" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "Tots els resultats" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "Les nostres analÃtiques" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "Suma aditiva de tots els valors d'una columna.\\n P.e: Ingresos totals al llarg dels temps." -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "Recompte aditiu del nombre de files.\\n P.e: Nombre total de vendes en el temps" #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Filtre" @@ -12446,27 +12457,27 @@ msgid_plural "records" msgstr[0] "registre" msgstr[1] "registres" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "Navegar" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "Escriu SQL" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "Pregunta simple" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "Tria algunes dades, visualitza'ls i filtra'ls, resumeix-los i analitza'ls de forma senzilla." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "Pregunta personalitzada" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "Utilitza l'editor avançat per unir dades, crear columnes personalitzades, fer cálculs matemà tics i més." @@ -12474,7 +12485,7 @@ msgstr "Utilitza l'editor avançat per unir dades, crear columnes personalitzade msgid "Basic Metrics" msgstr "Mètriques bà siques" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "Personalitzada..." @@ -12490,7 +12501,7 @@ msgstr "Trieu un limit" msgid "Show maximum" msgstr "Mostra el mà xi" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "Mostra una previsualització" @@ -12520,7 +12531,7 @@ msgid "Custom column" msgstr "Columna personalitzada" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "Resumeix" @@ -12537,11 +12548,10 @@ msgid "Pick the metric you want to see" msgstr "Trieu la mètrica que voleu veure" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "Trieu la columna per la qual agrupar" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "Trieu les dades inicials" @@ -12553,7 +12563,7 @@ msgstr "Seleccionar cap" msgid "Select All" msgstr "Selecciona'ls tots" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "Trieu una taula..." @@ -12599,15 +12609,15 @@ msgid_plural "{0} breakouts" msgstr[0] "desglos de {0}" msgstr[1] "desglossos de {0}º" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "Amaga el filtres" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "Mostra els filtres" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "Iniciat des de" @@ -12637,11 +12647,11 @@ msgstr "Mostrant {0}" msgid "Summarized" msgstr "Resumit" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "Amaga l'editor" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "Mostra l'editor" @@ -12649,7 +12659,7 @@ msgstr "Mostra l'editor" msgid "Pick the metric you'd like to see" msgstr "Trieu la mètrica que voleu veure" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "{0} opcions" @@ -12677,7 +12687,7 @@ msgstr "Afegeix una mètrica" msgid "Profile" msgstr "Perfil" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "Això normalment es batant rà pid pero sembla que aquesta vegada esta tardant una mica." @@ -12705,19 +12715,19 @@ msgstr "Segment desconegut" msgid "Unknown Filter" msgstr "Filtre desconegut" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "Unió externa per l'esquerra" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "Unió externa per la dreta" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "Unió interna" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "Unió externa complerta" @@ -12769,7 +12779,7 @@ msgstr "Configuració de la base de dades de l'aplicació" msgid "Could not find {0} driver." msgstr "No s'ha trobar el driver {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "Els controladors abstractes no poden derivar de controladors concrets" @@ -12827,7 +12837,7 @@ msgstr "A partir del Metabas 0.32.0+ ja no es necesita el spark-deps.jar. El pod msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "Utilitzant la clase NEWLY CREATE com a carregardor de classes de context compartit: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "No s'ha pogut copia el fitxer" @@ -13100,12 +13110,12 @@ msgstr "Error al programar tasques per la base de dades {0}" msgid "All elements must be distinct." msgstr "Tots els elements han de ser diferents" -#: +#: msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "Esculleix les columnes que vols incloure" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Al activar aquesta opció Metabase executarà automà ticamente les consultes quan els usuaris realitzin exploracions simples amb els botóns Resumir i Filtra de taules i grà fiques. Pots desactivar aquesta opció si les consultes a la base de dades son lentes. Aquesta configuració no afecta als detalls ni a les consultes SQL." @@ -13143,3 +13153,439 @@ msgstr "Error al determinar les columnes esperades de la consulta" msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "Excepció no controlada, s'espera un middleware `catch-exceptions` que la controli" +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "Informació diagnostic" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "Selecciona el process de metabase:" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "Tots els processos de metabase" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "S'ha tancat la finestra sense completar l'autentificació de Google." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "S'ha product un error amb l'autentificació de Google. Si us plau, contacteu amb l'administrador." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "Registrar-se a través del correu electrònic" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "Utiltizar aquesta opció requereix que la maquina contingui un FQDN. Si us conecteu a un cluster de Atlas, potseu haureu d'habilitar aquesta opció. Si no sabeu el que vol dir això, millor que ho deixeu desactivat." + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "Per defecte, Metabase fa un sincronització lleujera cada hora i una sincronització intensiva cada hora dels valors dels camps. Si teniu una base de dades gran, us recomanem activar aquesta opció i revisar quan i amb quina freqüencia s'escanejen els valors dels camps." + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "Elimina aquestes sugerències" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "Voleu eliminar aquestes sugerències?" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "No es mostrarán a la pagina inicial de cap dels usuaris pero es pot accedir els raig-x clicant la opció \"Navegada a les dades\" al menú principal i desprès clicant al icon del raig amb una de les taules." + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "Amaga aquesta secció" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "Eliminar aquesta secció?" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "\"Les nostres dades\" no es mostrarà més a la pà gina inicial per cap dels usuaris però sempre podreu navegar per les databases i clicant l'opció \"Explora les dades\" de la navegació prinicipal." + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "La meva fantà stica col·lecció nova" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "Data i hora de cancel·lació" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "Hora de cancel·lació" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "Data de cancel·lació" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "Data i hora d'eliminació" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "Hora d'eliminació" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "Data d'eliminació" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "Només a les vistes de detall" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "No ho incloguis" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "El camp no sera visible o seleccionable a les preguntes createdes amb la interface d'usuari. Si que es podrà accedir amb consultes SQL/natives." + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "Suma acumulada" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "Desviació està ndard" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "ha de tenir com a mÃnim {0} carà cters" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "Ha de tenir com a mÃnim {0} carà cters" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "Nom (obligatori)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "Execut el text seleccionat" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "Executa la consulta" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "(⌘ + intro)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "(Ctrl + intro)" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "Aquà es on apareixeran els teus resultats" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "No fareu cap canvi permanent a les questions guardades sinó cliqueu \"Guarda\" i seleccioneu la opció de sobrescriure la pregunta original." + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "Encara no hi ha cap tipus de giny de cerca per aquest tipus de camp." + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "Buscar en aquest camp" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "Perquè és interessant aquesta mètrica" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "Coses a tenir en compte d'aquesta mètrica" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "Com es calcula aquesta mètrica" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "Taula basada en" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "(buit)" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "LÃnia objectiu" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "LÃnia de tendència" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "Mostra els valors amb punts de dades" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "Valors a mostrar" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "El mà xim que es mostrin correctament" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "Tots" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "Les dades incluen valors de dimensions que falten." + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "Em trobar una data invà lida: \"{0}\"" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "La consulta d'aquest grà fic s'ha executat en {0} en comptes de {1} per requeriments de la base de dades." + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "Aquest grà fic conté consultes que s'executarán en múltiples zones horà ries: {0}" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "S'ha produït un error mentres s'executava la consulta." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "La base de dades H2 desti ja existeix: %s, s'eliminarà ." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "No es requereix cap migració, només cal utilizar el fitxer H2 existent" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "La BD destà ja ha estat inicialitzada" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "Informació del sistema:n {0}" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "Configuració de la base de dades" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "Movent les instancies de {0} que no están a la col·lecció {1} a la col·lecció {2}" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "Clà usula '{{..}}'' invà lida: s'espera un nom de parà metre" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "Les clà usules '{{...}}' no poden ser buides." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "Les clà usules '[[...]]' han de contenir com a mÃnim una clà usula '{{...}}'." +"" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "Consulta invà lida: s'ha trobat '[[' o '{{' sense el respectiu ']]' or '}}'" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "Heu d'introduïr un valor per \"{0}\" abans de que es pugui executar aquesta consulta." + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "No s'ha pogut trobar un camp amb ID: {0}" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "Error carregant el espai de noms dels drivers" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "No s'ha pogut carregar el driver {0}." + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "No es pot executar la consulta: falten els parà metres obligatoris: {0}" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "Es desconeix com llegir {0} {1}" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "No es sap com crear un à lias {0}, s'espera un identificador." + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "No sabem com despreparar els valors de la classe {0}" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "Creant un nou pool de conexions {0} per la base de dades {1}" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "Zona horà ria invà lida: \"{0}\"" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "No s'ha pogut establir la zona horaria: Cadena SQL de format invà lida pel driver {0}." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "Heu implementat set-timezone-sql?" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "No s'ha pogut establir la zona horarà ria \"{0}\"" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "Error al conectar a la base de dades" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "Error al llegir el JSON" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "Si es mostra o no dades a la pà gina inici. L'administrador port desactivar aquesta opció per mostrar als usuaris un contingut millor que les dades en cru." + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "Si es mostra o no les sugestions de raigs-x a la pà gina d'inici. No es mostrarà n si hi ha algún cuadre de comandament fixat. L'adminsitrador pot desactivar aquesta opció per mostrar als usuaris un contingut millor que les dades en cru." + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "Identifica l'oirgen de les peticions HTTP per aquest valor de la capçal·lera en comptes de la seva adreça remota." + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "No es pot resoldre la Configuració {0}/{1}" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "Configuració invà lida {0}/{1}" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "ha arribat a l'objectiu" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "està per devall de l'objectiu" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "Enviant el pols ({0}: {1}) per correu electrònic" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "Pols: {0}" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "Enviant el pols ({0}: {1}) per Slack" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "Enviant l'alerta ({0}: {1}) per correu electrònic" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "Alerta Metabase: {0} té {1}" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "Enviant l'alerta ({0}: {1}) a través de Slack" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "Alerta: {0}" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "No es pot trobar un selector de color per a \"{0}\"" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "FIXME: Elssegüents literals temporals no són và lids: {0} {1} Perquè estem intentant de formatejar-los com a tal?" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "No s'ha trobar inforamció per fer una unició de la taula {0} \"{1}\" amb el camp {2} \"{3}\" a través de la CF {4} \"{5}\"" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "No se com obtenir la informació del camp: {0}" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "S'ha esgotat el temps d'execució de la conulsta desprès de {0}" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "Formatejant els resultats amb la zona horaria {0}" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "El ID de la zona horarà ria \"{0}\" és invà lid." + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "Guardant el fingerprint per {0}" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "Enviant email d'abandonament!" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "Les transformacions resultants no compleixen amb les expectactives.nS'espera: {0}" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "S'ha esgotat el temps d'execució desprès de {0}" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "No exixteix un ajustador temporal anomenat {0}" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "Unitat invà lida: {0}" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "No es sap com llegir {0} utilitzat el format {1}" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "Falta el valor del token per la ruta de clau {0}" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "No s'ha pogut enviar les estadÃstiques d'US." diff --git a/locales/de.po b/locales/de.po index c71918140ed1734710487f33ea543ad82f1109b9..425294b4a110c48f4e84c4e84a768d5869c42b7e 100644 --- a/locales/de.po +++ b/locales/de.po @@ -29,19 +29,18 @@ msgid "Select a database type" msgstr "Wähle einen Datenbanktyp" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "Speichern" @@ -101,7 +100,7 @@ msgstr "Niemals, ich werde das manuell machen, falls nötig" #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "Speichere..." @@ -138,16 +137,16 @@ msgstr "in dieses Eingabefeld:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -155,20 +154,20 @@ msgstr "in dieses Eingabefeld:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "Abbrechen" @@ -180,33 +179,33 @@ msgstr "Abbrechen" msgid "Delete" msgstr "Löschen" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "Datenbanken" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "Datenbank hinzufügen" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "Verbindung" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "Planung" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -216,19 +215,19 @@ msgstr "Planung" msgid "Save changes" msgstr "Änderungen speichern" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "Aktionen" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "Datenbankschema synchronisieren" #. Starte... -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -236,41 +235,41 @@ msgstr "Datenbankschema synchronisieren" msgid "Starting…" msgstr "Starten…" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "Synchronisierung fehlgeschlagen" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "Synchronisierung gestartet!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "Prüfe Feldwerte erneut" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "Scan konnte nicht gestartet werden" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "Scan gestartet!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "Gefahrenzone" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "Verwerfen gespeicherter Werte" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "Diese Datenbank löschen" @@ -279,18 +278,17 @@ msgid "Add database" msgstr "Datenbank hinzufügen" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "Name" @@ -310,23 +308,24 @@ msgstr "Laden..." msgid "Bring the sample dataset back" msgstr "Wiederherstellen der Beispieldaten" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "Konnte keine Verbindung zur Datenbank herstellen. Bitte prüfe die Verbindungsdaten." -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "Erfolgreich erstellt!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "Erfolgreich gespeichert!" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "Bearbeiten" @@ -366,9 +365,9 @@ msgstr "Fehlgeschlagen" msgid "Success" msgstr "Erfolgreich" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "Vorschau" @@ -388,7 +387,7 @@ msgstr "Kein spezieller Typ" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "Andere" @@ -417,7 +416,7 @@ msgstr "Spalte" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "Sichtbarkeit" @@ -499,35 +498,34 @@ msgstr "Finde eine Tabelle" msgid "Schemas" msgstr "Schemata" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "Metrik" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "Hinzufügen einer Metrik" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "Definition" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "Erstelle Metriken, um diese einer Liste in der Ansicht des Abfragengenerators hinzuzufügen" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -535,11 +533,11 @@ msgstr "Erstelle Metriken, um diese einer Liste in der Ansicht des Abfragengener msgid "Segments" msgstr "Segmente" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "Hinzufügen eines Segments" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "Erstelle Segmente, um diese einer Liste in der Ansicht des Abfragengenerators hinzuzufügen" @@ -585,23 +583,23 @@ msgstr " Geschichte" msgid "Revision History for" msgstr "Revisionshistorie für" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} - Feldeinstellungen" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "Wo dieses Feld in Metabase erscheint" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Filtern des Feldes" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "Welche Eingaben sollen Benutzer tätigen, wenn sie das Feld filtern möchten?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "Keine Beschreibung für dieses Feld" @@ -642,11 +640,11 @@ msgstr "Aktuelles Feld ist kein Fremdschlüssel oder es fehlen Metadaten der Fre msgid "The selected field isn't a foreign key" msgstr "Das ausgewählte Feld ist kein Fremdschlüssel" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "Anzeigewerte" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "Wähle diese Option, um den ursprünglichen Wert aus der Datenbank anzuzeigen, oder lasse dir die zugehörigen oder benutzerdefinierten Informationen in diesem Feld anzeigen." @@ -666,12 +664,12 @@ msgstr "Hinweis:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "Möglicherweise möchtest du den Feldnamen aktualisieren, um sicherzustellen, dass er auf der Grundlage deiner Umstellungen noch sinnvoll ist." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "Gepufferte Feldwerte" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabase kann die Werte für dieses Feld prüfen, um Listenfitler für Dashboards und Fragen zu aktivieren." @@ -698,82 +696,82 @@ msgstr "Verwerfen gestartet!" msgid "Select any table to see its schema and add or edit metadata." msgstr "Wähle eine beliebige Tabelle aus, um ihr Schema anzuzeigen und Metadaten hinzuzufügen oder zu bearbeiten." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "Name ist erforderlich" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "Beschreibung ist erforderlich" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "Änderungstext ist erforderlich" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "Aggregation ist erforderlich" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "Editieren Deiner Metrik" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "Erstellen Deiner Metrik" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "Nimm Änderungen an deiner Metrik vor und hinterlasse eine Erläuterung." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "Du kannst gespeicherte Metriken erstellen, um dieser Tabelle eine benannte Metrikoption hinzuzufügen. Gespeicherte Metriken umfassen den Aggregationstyp, das aggregierte Feld und optional jeden von dir hinzugefügten Filter. Als Beispiel kannst du damit so etwas wie die offizielle Art der Berechnung des \"Durchschnittspreises\" für eine Bestell-Tabelle erstellen." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "Ergebnis: " -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "Benenne Deine Metrik" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "Benenne Deine Metrik, um anderen zu helfen, sie zu finden." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "Eine Beschreibung, aber nicht zu lang" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "Beschreibe Deine Metrik" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "Gib deiner Metrik eine Beschreibung, damit andere verstehen, worum es geht." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "Dies ist ein guter Ort, um genauer auf weniger offensichtliche metrische Regeln einzugehen" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "Grund der Änderung" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "Hinterlasse eine Notiz, um zu erklären, welche Änderungen du vorgenommen hast und warum sie erforderlich waren." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "Dies wird in der Revisionshistorie für diese Metrik angezeigt, damit sich jeder daran erinnern kann, warum sich die Dinge geändert haben" @@ -789,7 +787,7 @@ msgstr "Abschnitt bearbeiten" msgid "Create Your Segment" msgstr "Abschnitt erstellen" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "Nimm Änderungen an deinem Segment vor und hinterlasse eine Erläuterung." @@ -797,37 +795,37 @@ msgstr "Nimm Änderungen an deinem Segment vor und hinterlasse eine Erläuterung msgid "Select and add filters to create your new segment for the {0} table" msgstr "Um ein neues Segment für die {0} Tabelle zu erstellen, wähle einen Filter und füge diesen hinzu" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "Abschnitt benennen" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "Benenne Dein Segment, um anderen zu helfen, sie zu finden." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "Abschnitt beschreiben" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "Gib deinem Segment eine Beschreibung, damit andere verstehen, worum es geht." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "Dies ist ein guter Ort, um etwas genauer auf weniger offensichtliche Segmentregeln einzugehen" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "Dies wird in der Revisionshistorie für dieses Segment angezeigt, damit sich jeder daran erinnern kann, warum sich die Dinge geändert haben" #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "Einstellungen" @@ -841,33 +839,29 @@ msgstr "Diese Tabelle erneut scannen" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "Hinzufügen" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "Keine gültige formatierte E-Mail-Adresse" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "Vorname" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "Nachname" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "E-Mail-Adresse" @@ -904,7 +898,7 @@ msgstr "Mitglieder" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "E-Mail" @@ -913,8 +907,8 @@ msgid "A group is only as good as its members." msgstr "Eine Gruppe ist nur so gut wie ihre Mitglieder." #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "Administrator" @@ -975,11 +969,11 @@ msgstr "Gruppe löschen" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "Fertig" @@ -988,9 +982,9 @@ msgid "Group name" msgstr "Gruppenname" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "Gruppen" @@ -1019,10 +1013,10 @@ msgstr "Passwort zurücksetzen" msgid "Deactivate" msgstr "Deaktivieren" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "Mitglieder" @@ -1061,7 +1055,7 @@ msgstr "Wir haben eine Einladung an {0} mit Anweisungen zum Setzen ihres Passwor msgid "We've re-sent {0}'s invite" msgstr "Wir haben die Einladung von {0} erneut gesendet" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "In Ordnung" @@ -1093,7 +1087,7 @@ msgstr "Sie können sich wieder einloggen und starten mit den Gruppen, in denen msgid "Reset {0}'s password?" msgstr "{0}s Passwort zurücksetzen?" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "Zurücksetzen" @@ -1132,19 +1126,19 @@ msgstr "Jemanden hinzufügen" msgid "Last Login" msgstr "Letzte Anmeldung" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Anmeldung über Google" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "Anmeldung über LDAP" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "Reaktivieren des Accounts" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "Nie" @@ -1186,7 +1180,7 @@ msgid " native queries for " msgstr " native Abfragen für " #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "Berechtigungen" @@ -1243,115 +1237,115 @@ msgstr "MetaBot ist der Slack-Bot von Metabase. Du kannst hier auswählen, auf w msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "Die Gruppe \"{0}\" hat anderen Zugriff auf {1} als diese Gruppe, was dieser Gruppe somit weiteren Zugriff auf {2} gibt." -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "Die Gruppe \"{0}\" hat höheren Zugriff als diese, was wiederum ein Ãœberschreiben dieser Einstellung mit sich bringt. Du solltest den Zugriff der Gruppe \"{1}\" auf das Element beschränken oder revidieren." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "Begrenzung" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "Widerrufen" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "Zugriff, obwohl \"{0}\" einen größeren Zugriff hat?" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "Zugriff beschränken" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "Zugriff widerrufen" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "Soll der Zugriff dieser Datenbank auf beschränkt geändert werden?" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "Änderung" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "Schreiben von SQL-Abfragen zulassen?" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "Dadurch bekommt diese Gruppe unbeschränkten Zugriff auf die Datensätze dieser Datenbank." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "Erlauben" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "Zugriff auf alle Tabellen widerrufen?" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "Dadurch wird der Datenzugriff dieser Gruppe auf die Datensätze der Datenbank widerrufen." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "Unbeschränkten Zugriff gewähren" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "Unbeschränkter Zugriff" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "Eingeschränkter Zugriff" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "Kein Zugriff" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "Native Abfragen schreiben" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Kann native Abfragen schreiben" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "Sammlung organisieren" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "Sammlung ansehen" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "Datenzugriff" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "Tabellen ansehen" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "SQL Queries" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "Schemas ansehen" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "Datenmodell" @@ -1494,8 +1488,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "Metabase {0} ist verfügbar. Du verwendest Version {1}" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "Update" @@ -1518,18 +1512,20 @@ msgstr "Lösche individuelle Karte" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "Löschen" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "Wähle…" @@ -1731,7 +1727,7 @@ msgstr "Unbekannte Einstellung {0}" msgid "Setup" msgstr "Einstellungen" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "Allgemein" @@ -1858,7 +1854,7 @@ msgid "Username or DN" msgstr "Benutzername oder DN" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "Passwort" @@ -2021,31 +2017,31 @@ msgstr "Passwort vergessen" msgid "The email you use for your Metabase account" msgstr "Deine E-Mail-Adresse für das Metabase-Konto" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "Sende E-Mail zur Kennwortzurücksetzung" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "Prüfe deine E-Mails, um weitere Informationen zur Kennwortzurücksetzung zu erhalten." -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "Bei Metabase anmelden" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "Oder" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "Benutzername oder E-Mail-Adresse" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "Anmelden" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "Ich habe mein Passwort vermeintlich vergessen" @@ -2063,7 +2059,7 @@ msgid "For security reasons, password reset links expire after a little while. I msgstr "Aus Sicherheitsgründen laufen E-Mails zur Kennwortzurücksetzung nach einer gewissen Weile ab. Solltest du dein Passwort weiterhin zurücksetzen wollen, kannst du {0}." #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "Neues Passwort" @@ -2076,38 +2072,38 @@ msgid "Create a new password" msgstr "Erstelle ein neues Passwort" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "Versichere dich, dass es den oben benannten Sicherheitsanforderungen entspricht" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "Bestätige neues Passwort" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "Stelle sicher, dass es dem bereits Eingegebenen entspricht" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "Dein Passwort wurde zurückgesetzt." -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "Melde dich mit deinem neuen Passwort an" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "Speichern fehlgeschlagen" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2126,22 +2122,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "Alle Dashboards, Sammlungen und Pulses in dieser Sammlung werden auch archiviert." #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "Archiv" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "Dieses {0} wurde archiviert" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "Sieh dir das Archiv an" @@ -2151,17 +2148,19 @@ msgstr "Stelle Archiv {0} wieder her" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "Unsere Daten" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "X-Ray für diese Tabelle" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "Lerne etwas über diese Tabelle" @@ -2256,44 +2255,44 @@ msgstr "Pins" msgid "Drag something here to pin it to the top" msgstr "Ziehe etwas hierher, um es oben anzupinnen" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "Sammlungen" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "Ziehe es hierher, um es das Anpinnen zu entfernen" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} Element ausgewählt" msgstr[1] "{0} Elemente ausgewählt" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "Bewege {0} Elemente?" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "Bewege \"{0}\"?" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "Verschieben" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "Ändere diese Sammlung" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "Archiviere diese Sammlung" @@ -2310,17 +2309,17 @@ msgstr "Neue Sammlung" msgid "Copied!" msgstr "Kopiert!" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "Benutze einen SSH-Tunnel für Datenbankverbindungen" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." msgstr "Auf einige Datenbanken können nur mittels SSH Bastion Host zugegriffen werden. Diese Option integriert gleichfalls eine höhere Ebenen an Sicherheit, sobald das VPN nicht erreichbar ist. Im Normalfall ist die Verbindung langsamer als eine Direktanbindung." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "Dies ist eine große Datenbank. Lasst mich also selbst entscheiden, wann Metabase synchronisiert und prüft" @@ -2330,48 +2329,48 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail msgstr "Standardmäßig führt Metabase eine stündliche Synchronisation und einen intensiven täglichen Scan der Feldwerte durch.\n" "Wenn du eine große Datenbank besitzt, empfehlen wir, diese Option zu aktivieren, um die Intervalle selbst einzustellen." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0}, um eine Client-ID und ein Client-Secret für dein Projekt zu generieren." #. Hier klicken -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "Hier klicken" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "Wähle \"Andere\" als Applikationstyp. Benenne es wie du willst." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0}, um einen Authentifizierungscode" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "mit Google Drive Berechtigungen" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "Um Metabase mit diesen Daten verwenden zu können, musst du den API-Zugriff in der Google Developers Console aktivieren." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "{0}, um zur Konsole zu gelangen, insofern du das noch nicht getan hast." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "Wie würdest du gerne auf diese Datenbank referenzieren?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "Nächste" @@ -2390,7 +2389,7 @@ msgstr "Bewege dieses Element" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "Ändere dieses Element" @@ -2403,7 +2402,7 @@ msgstr "Aktiontyp" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "Betrachte die Revisionshistorie" @@ -2419,7 +2418,7 @@ msgstr "Archivierungsaktion" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "Zu Dashboard hinzufügen" @@ -2430,7 +2429,7 @@ msgstr "Ergebnis downloaden" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "Teilen und einbetten" @@ -2476,65 +2475,63 @@ msgstr "Basierend auf dem Schema" msgid "A look at your" msgstr "Ein Blick auf" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "Liste durchsuchen" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "Suche nach {0}" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr " oder gibt eine ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "ID eingeben" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "Nummer eingeben" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "Text eingeben" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "Keine Treffer für {0} gefunden." -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "Jede Option in deinem Filter zu verwenden wird wahrscheinlich nicht viel bewirken…" -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "Etwas ging schief" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "Wir sind auf einen Fehler gestoßen. Du kannst versuchen, die Seite zu aktualisieren oder einfach zurücknavigieren." -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "Noch keine Beschreibung" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "Neue {0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "Gefragt durch {0}" @@ -2555,8 +2552,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "Wiederhergestellt zu einer früheren Version und {0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "Revisionshistorie" @@ -2601,7 +2598,7 @@ msgid "Questions" msgstr "Fragen" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "Pulses" @@ -2638,7 +2635,7 @@ msgstr "Abonnieren" msgid "You're subscribed. Thanks for using Metabase!" msgstr "Du bist angemeldet. Danke, dass du Metabase verwendest!" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "Wir fühlen uns etwas hilflos..." @@ -2647,14 +2644,14 @@ msgid "Temporary Password" msgstr "Temporäres Passwort" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "Verstecken" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "Anzeigen" @@ -2756,7 +2753,7 @@ msgstr "Ausgewählt" msgid "Nothing to select" msgstr "Nichts zu wählen" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "Tut mir leid, du hast keine Berechtigung um das zu sehen." @@ -2764,8 +2761,8 @@ msgstr "Tut mir leid, du hast keine Berechtigung um das zu sehen." msgid "Unknown error encountered" msgstr "Unbekannter Fehler aufgetreten" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "Erstellen" @@ -2773,7 +2770,6 @@ msgstr "Erstellen" msgid "Create dashboard" msgstr "Dashboard erstellen" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "Tabelle" @@ -2798,12 +2794,11 @@ msgstr "Versuche, deinen Filter anzupassen, um das zu finden, wonach du suchst." msgid "View by" msgstr "Ansicht nach" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "von" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "Sag es niemandem, aber du bist mein Liebling." @@ -2811,19 +2806,19 @@ msgstr "Sag es niemandem, aber du bist mein Liebling." msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "Sobald du deine eigenen Daten verbunden hast, kann ich dir einige automatische Analysen zeigen, die X-Ray genannt werden. Anbei einige Beispieldaten." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "Beginne hier" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "Unsere Analysen" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "Durchsuche alle Elemente" @@ -2835,44 +2830,45 @@ msgstr "Ãœberschreibe oder speichere als neu?" msgid "Replace original question, \"{0}\"" msgstr "Ãœberschreibe originale Frage, \"{0}\"" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "Speichere als neue Frage" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "Speichere zuerst deine Frage" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "Speichere Frage" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "Wie lautet der Name deiner Karte?" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "Beschreibung" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "Es ist optional, aber sehr hilfreich" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "In welche Sammlung soll es gehen?" @@ -2913,11 +2909,11 @@ msgstr "Dashboard archivieren" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "Stelle sicher, dass du für jede Serie eine Auswahl triffst, sonst funktioniert der Filter auf dieser Karte nicht." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "Dieses Dashboard sieht leer aus." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "Füge eine Frage hinzu, um es nützlicher zu machen!" @@ -2937,50 +2933,50 @@ msgstr "Vollbild beenden" msgid "Enter fullscreen" msgstr "Vollbild anzeigen" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "Speichern…" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "Füge eine Frage hinzu" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "Füge eine Frage zu diesem Dashboard hinzu" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "Füge einen Filter hinzu" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "Parameter" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "Füge ein Textfeld hinzu" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "Bewege das Dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "Ändere das Dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "Ändere das Dashboard-Layout" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "Du editierst ein Dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Wähle das Feld aus, welches auf jeder Karte gefiltert werden soll" @@ -3031,11 +3027,11 @@ msgstr "30 Minuten" msgid "60 minutes" msgstr "60 Minuten" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "Automatische Aktualisierung" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "Aktualisiere in" @@ -3047,7 +3043,7 @@ msgstr "Diese frage löschen?" msgid "Your dashboard was saved" msgstr "Dein Dashboard wurde gespeichert" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "Sieh es dir an" @@ -3134,10 +3130,9 @@ msgstr "Löschte eine Frage vom Dashboard - " msgid "received the latest data from" msgstr "erhielt aktuellste Daten von" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "Unbekannt" @@ -3254,7 +3249,7 @@ msgstr "Alle Anzeigen" msgid "Recently Viewed" msgstr "Vor Kurzem Anzeige" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "Du hast dir in letzter Zeit keine Dashboards oder Fragen angeschaut" @@ -3268,11 +3263,11 @@ msgid "Unarchive" msgstr "Stelle aus dem Archiv wieder her" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "Aktivitäten" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "Ergebnisse für \"{0}\"" @@ -3334,6 +3329,9 @@ msgstr "Avatar Bild-URL" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "Gemeinsam" @@ -3376,8 +3374,8 @@ msgstr "Länge" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "Nummer" @@ -3424,93 +3422,93 @@ msgstr "Zeit der Erstellung" msgid "Creation date" msgstr "Datum der Erstellung" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "Produkt" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "Benutzer" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "Quelle" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "Preis" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "Zeitstempel des Join" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "Zeit des Join" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "Datum des Join" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "Teile" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "Besitzer" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "Firma" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "Abonnement" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "Ergebnis" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "Titel" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "Kommentar" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "Kosten" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Bruttogewinn" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "Geburtstag" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "Suchleiste" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "Eine Liste aller Werte" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "Eingabemaske" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "Ãœberall" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "Die Standardeinstellung. Dieses Feld wird normalerweise in Tabellen und Diagrammen angezeigt." @@ -3518,7 +3516,7 @@ msgstr "Die Standardeinstellung. Dieses Feld wird normalerweise in Tabellen und msgid "Only in Detail Views" msgstr "Nur in allen Detailansichten" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "Dieses Feld wird nur angezeigt, wenn die Details eines einzelnen Datensatzes angezeigt werden. Verwende dies für Informationen, die langwierig oder in einer Tabelle bzw. Diagramm nicht nützlich sind." @@ -3532,7 +3530,8 @@ msgstr "Metabase wird dieses Feld nie abrufen. Benutze dies für vertrauliche od #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3547,8 +3546,9 @@ msgid "CumulativeCount" msgstr "Kumulative Zählung" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "Summe" @@ -3557,7 +3557,7 @@ msgid "CumulativeSum" msgstr "Kumulative Summe" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "Eindeutig" @@ -3566,25 +3566,28 @@ msgid "StandardDeviation" msgstr "Standardabweichung" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "Durchschnitt" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "Min" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "Max" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "trauriger trauriger Panda, Lexing-Fehler entdeckt" @@ -3634,12 +3637,13 @@ msgid "What do you want to find out?" msgstr "Was möchtest du herausfinden?" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "Rohdaten" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "Kumulative Zählung" @@ -3683,174 +3687,174 @@ msgstr "Filtern nach " msgid "Sorted by " msgstr "Sortieren nach " -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "Wahr" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "Falsch" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Wähle limitierendes Feld aus" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "Setze oberes Limit" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "Setze linkes Limit" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "Setze unteres Limit" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "Setze rechtes Limit" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "Ist" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "Ist nicht" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "Ist leer" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "Nicht leer" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "Gleich zu" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "Nicht gleich zu" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "Größer als" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "Kleiner als" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "Zwischen" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "Größer oder gleich als" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "Kleiner oder gleich als" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "Enthält" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "Enthält nicht" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "Startet mit" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "Endet mit" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "Vor" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "Nach" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "Intern" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "Nur eine Tabelle mit den Zeilen in der Antwort ohne zusätzlichen Operationen." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "Zählen der Zeilen" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "Gesamtanzahl der Zeilen einer Antwort." -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "Summe von..." -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "Summe aller Werte einer Spalte." -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "Durchschnitt von..." -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "Durchschnitt aller Werte einer Spalte" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "Anzahl eindeutiger Werte von..." -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "Anzahl eindeutiger Werte einer Spalte für die Zeilen einer Antwort." -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "Kumulative Summe von..." @@ -3858,7 +3862,7 @@ msgstr "Kumulative Summe von..." msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "Additive Summe aller Werte einer Spalte.\\\\ne.x. Gesamtumsatz über die Zeit." -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "Kumulative Zählung von Zeilen" @@ -3866,27 +3870,27 @@ msgstr "Kumulative Zählung von Zeilen" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "Additive Zählung von Reihen.\\\\ne.x. Gesamtanzahl vom Verkauf über die Zeit." -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "Standardabweichung von..." -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "Zahl, die angibt, wie stark die Werte einer Spalte zwischen allen Zeilen der Antwort variieren." -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "Minimum von ..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Minimalwert einer Spalte" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "Maximum von ..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "Maximalwert einer Spalte" @@ -4060,68 +4064,70 @@ msgstr "Andere Kategorien" msgid "Category, Type, Model, Rating, etc." msgstr "Kategorie, Typ, Modell, Bewertung, usw." -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "Kontoeinstellungen" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "Verlasse Administration" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "Protokolle" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Hilfe" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "Ãœber Metabase" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "Abmelden" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "Danke für die Nutzung" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "Du nutzt Version" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "Aufgebaut auf" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "ist ein Warenzeichen von" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "und wird mit Sorgfalt in San Francisco, CA gebaut" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Metabase Administrator" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "Stelle eine Frage" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "Neues Dashboard" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "Neuer Pulse" @@ -4134,7 +4140,6 @@ msgstr "Referenz" msgid "Which metric?" msgstr "Welchen Kennwert?" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "Die Definition gemeinsamer Metriken für dein Team macht es noch einfacher, Fragen zu stellen" @@ -4152,7 +4157,7 @@ msgid "Custom" msgstr "Benutzerdefiniert" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "Neue Frage" @@ -4160,13 +4165,13 @@ msgstr "Neue Frage" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "Verwende den einfachen Fragen-Builder, um Trends und Listen zu betrachten oder eigene Metriken zu erstellen." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "Native Abfrage" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "Für kompliziertere Fragen kannst du deine eigenen SQL- bzw. native Abfragen schreiben." @@ -4270,7 +4275,7 @@ msgstr "Gib einen Wert ein..." msgid "Enter a default value..." msgstr "Trage einen Standardwert ein..." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "Ein Fehler ist aufgetaucht" @@ -4519,7 +4524,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "Wir empfehlen, die Pulse klein und essentiell zu halten, damit diese für das Team verständlich bleiben." #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "Wähle deine Daten" @@ -4535,48 +4540,48 @@ msgstr "E-Mails" msgid "Slack messages" msgstr "Slack-Nachrichten" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "Versendet" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} wird gesendet an" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "Nachrichten" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "E-Mail jetzt versenden" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "Jetzt an {0} versenden" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "Senden…" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "Senden fehlgeschlagen" #. How to translate "Pulse"? Is it like Pulse / Heartbeat or the name of the untranslated metabase feature? -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "Wurde nicht versandt, da der Pulse nichts beinhaltet." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "Pulse gesendet" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} muss von einem Administrator eingerichtet werden." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4665,7 +4670,7 @@ msgid "Break out by {0}" msgstr "Aufschlüsseln nach {0}" #. Summarize heisst m.E. (hier) "zusammenfassen" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "Summiere dieses Segment" @@ -4719,15 +4724,15 @@ msgstr "Aufsteigend" msgid "Descending" msgstr "Absteigend" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "über die Zeit" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "Mittel" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "Besonderheiten" @@ -4923,6 +4928,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} zielbasierte Alarme werden für Diagramme mit mehr als einer Zeile noch nicht unterstützt, daher wird dieser Alarm immer dann gesendet, wenn das Diagramm {1} hat." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "Ergebnis" @@ -4938,47 +4944,47 @@ msgstr "Tipp" msgid "usually" msgstr "normalerweise" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "Wähle ein Abschnitt oder eine Tabelle" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "Wähle eine Datenbank" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "Wähle..." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "Wähle eine Tabelle" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "Es wurde keine Tabelle in der Datenbank gefunden." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "Fehlt hier eine Frage?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "Lerne mehr über verschachtelte Abfragen" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "Felder" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "Es wurden keine Abschnitte gefunden." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "Finde ein Segment" @@ -5028,7 +5034,7 @@ msgstr "Füge eine Gruppierung hinzu" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5036,9 +5042,9 @@ msgstr "Füge eine Gruppierung hinzu" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5061,7 +5067,7 @@ msgstr "Gruppiert nach" msgid "None" msgstr "Nichts" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "Diese Frage wurde in {0} geschrieben." @@ -5073,11 +5079,11 @@ msgstr "Verberge Editor" msgid "Hide Query" msgstr "Verberge Abfrage" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "Öffne Editor" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "Zeige Abfrage" @@ -5122,7 +5128,7 @@ msgstr "ABBRECHEN" msgid "Move question" msgstr "Verschiebe Frage" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "In welcher Sammlung sollte dies sein?" @@ -5176,7 +5182,7 @@ msgstr "{0} für diese Frage" msgid "Convert this question to {0}" msgstr "Konvertiere diese Frage zu {0}" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "Diese Frage wird ungefähr {0} zum aktualisieren benötigen" @@ -5211,7 +5217,7 @@ msgstr "Wenn du mir ein paar Daten gibst, kann ich dir etwas Aufregendes zeigen. msgid "How do I use this thing?" msgstr "Wie benutze ich das?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "Antwort bekommen" @@ -5279,7 +5285,7 @@ msgstr "bekomme einen Alarm" msgid "Back to last run" msgstr "Zurück zur vorherigen Ausführung" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "Visualisierung" @@ -5291,7 +5297,7 @@ msgstr "Keine Beschreibung hinterlegt." msgid "Use for current question" msgstr "Benutze es für die aktuelle Frage" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "Potentiell nützliche Frage" @@ -5315,7 +5321,7 @@ msgstr "Alle eindeutigen Werte von {0}" msgid "Number of {0} grouped by {1}" msgstr "Anzahl von {0}, gruppiert nach {1}" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5349,12 +5355,12 @@ msgid "Filter by {0}" msgstr "Gefiltert nach {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "Anzahl von {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "Betrachte all {0}" @@ -5374,32 +5380,33 @@ msgstr "Siehe die Rohdaten für {0}" msgid "More" msgstr "Mehr" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "Ungültiger Ausdruck" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "unbekannter Fehler" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Feld-Formel" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "Stelle es dir wie das Schreiben einer Formel in einem Tabellenkalkulationsprogramm vor: du kannst Zahlen, Felder und mathematische Symbole wie + und weitere Funktionen für Tabellen verwenden. Du kannst also so etwas wie Zwischensumme eingeben." -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "Mehr erfahren" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "Benenne es" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "Etwas genau Beschreibendes" @@ -5479,7 +5486,7 @@ msgid "Enter desired number" msgstr "Gib die gewünschte Zahl ein" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "Leer" @@ -5547,41 +5554,41 @@ msgstr "Um mehrere optionale Klauseln zu verwenden, kannst du mindestens eine ni msgid "Read the full documentation" msgstr "Lies die Dokumentation" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "Filterbezeichnung" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "Variablentyp" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "Text" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "Datum" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Feldfilter" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "Feld soll Folgendes verknüpft werden" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "Feld-Widget-Typ" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "Wird benötigt?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "Standard Filter-Widget-Wert" @@ -5593,7 +5600,7 @@ msgstr "Archivieren dieser Frage?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "Diese Frage wird von allen Dashboards oder Pulse, die sie verwenden, entfernt." -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "Frage" @@ -5605,8 +5612,8 @@ msgstr "Wähle eine Frage zum Hinzufügen" msgid "You are editing this page" msgstr "Du editierst diese Seite" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "Betrachte dies {0}" @@ -5614,15 +5621,15 @@ msgstr "Betrachte dies {0}" msgid "A subset of" msgstr "Ein Subset von" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "Wähle einen Feldtyp" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5633,8 +5640,8 @@ msgid "by" msgstr "nach" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "Feldtyp" @@ -5659,12 +5666,12 @@ msgid "Nothing important yet" msgstr "Nichts Interessantes momentan" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "Nichts Interessantes bisher" @@ -5673,12 +5680,12 @@ msgid "Things to be aware of about this {0}" msgstr "Dinge, die man darüber wissen sollte {0}" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "Noch nichts zu beachten" @@ -5724,7 +5731,7 @@ msgstr "Irgendwas, was die Benutzer darüber wissen sollten {0}?" msgid "Which 2-3 fields do you usually group this metric by?" msgstr "Nach welchen 2-3 Feldern gruppierst du diese Metrik?" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "Dies ist der perfekte Ausgangspunkt, wenn du mit den Daten deines Unternehmens noch nicht vertraut bist oder wenn du dich einfach nur über etwas aktuelles informieren möchten." @@ -5740,11 +5747,11 @@ msgstr "Grund der Änderung" msgid "Leave a note to explain what changes you made and why they were required" msgstr "Hinterlasse eine Notiz, um zu erklären, welche Änderungen du vorgenommen hast und warum sie erforderlich waren" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "Warum ist diese Datenbank interessant" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "Dinge über die Datenbank, auf die man achten sollte" @@ -5754,44 +5761,44 @@ msgid "Databases and tables" msgstr "Datenbanken und Tabellen" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "Details" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "Tabellen in {0}" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "Tatsächlicher Name in der Datenbank" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "Warum ist dieses Feld interessant" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "Dinge, die man bei diesem Feld beachten sollte" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "Datentyp" @@ -5805,13 +5812,13 @@ msgstr "Felder in dieser Tabelle erscheinen hier, wenn sie hinzugefügt werden" msgid "Fields in {0}" msgstr "Felder in {0}" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "Feldname" #. I am not sure if "to x-ray" should be translated or kept as untranslatable feature? -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "X-Ray für dieses Feld" @@ -5842,11 +5849,11 @@ msgstr "Anzahl von {0}" msgid "See raw data for {0}" msgstr "Siehe Rohdaten für {0}" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "Warum ist diese Tabelle interessant" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "Dinge, auf die man bei dieser Tabelle achten sollte" @@ -5860,7 +5867,7 @@ msgstr "Fragen über diese Tabelle werden hier erscheinen, sobald sie hinzugefü #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "Fragen zum {0}" @@ -5875,7 +5882,7 @@ msgstr "Erstellt {0} von {1}" msgid "Fields in this table" msgstr "Felder dieser Tabelle" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "Fragen über diese Tabelle" @@ -5911,7 +5918,7 @@ msgstr "Alle Metriken ansehen" msgid "Segments and tables" msgstr "Segmente und Tabellen" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "Tabellen" @@ -6028,8 +6035,8 @@ msgstr "Gibt es jemanden den deine Nutzer zur Unterstützung kontaktieren sollte msgid "Who should users contact for help if they're confused about this data?" msgstr "Wen sollten Nutzer kontaktieren wenn sie Unterstützung zu diesen Daten benötigen?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "Bitte gib eine Änderungsnachricht ein" @@ -6045,15 +6052,15 @@ msgstr "Dinge, auf die man bei der Metrik achten sollte" msgid "How this Metric is calculated" msgstr "Wie diese Metrik kalkuliert wird" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "Keine Information, wie es kalkuliert wurde" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "Andere Felder, nach denen die Metrik gruppiert werden kann" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "Felder, nach denen die Metrik gruppiert werden kann" @@ -6078,20 +6085,20 @@ msgid "There are no revisions for this metric" msgstr "Es gibt keine Revisionen dieser Metrik" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "Revisionshistorie für {0}" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "X-Ray für diese Metrik" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "Weshalb dieser Abschnitt interessant ist" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "Wissenswertes über diesen Abschnitt" @@ -6115,60 +6122,60 @@ msgstr "Lerne wie man Abschnitte erstellt" msgid "Questions about this segment will appear here as they're added" msgstr "Fragen zu diesem Abschnitt erscheinen hier, wenn sie hinzugefügt werden" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "Es gibt keine Revisionen für diesen Abschnitt" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "Felder in diesem Abschnitt" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "Fragen über diesen Abschnitt" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "X-Ray für diesen Abschnitt" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "Anmeldung" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "Suche" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "Dashboard" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "Neue Frage" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "Wähle den Datenbanktyp" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "Füge deine Daten hinzu" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "Ich füge meine eigenen Daten später hinzu" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "Stelle Verbindung zu {0} her" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "Du benötigst Informationen wie Benutzername oder das Passwort für die Datenbank. Wenn Du das im Moment nicht hast, kann Metabase zu Beginn auch Beispieldaten bereitstellen." -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "Ich füge meine Daten später hinzu" @@ -6176,43 +6183,43 @@ msgstr "Ich füge meine Daten später hinzu" msgid "Control automatic scans" msgstr "Administriere automatische Ãœberprüfungen" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "Einstellungen zu Benutzungsdaten" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "Danke, dass sie uns bei der Verbesserung helfen" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "Wir sammeln keine Benutzerereignisse" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Um uns bei der Verbesserung von Metabase zu helfen, möchten wir bestimmte Daten über die Nutzung durch Google Analytics sammeln." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "Hier ist eine vollständige Liste von allem, was wir verfolgen und weshalb." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "Erlaube Metabase das anonyme Sammeln von Ereignisinformationen" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase {0} sammelt alles über deine Daten oder Frageergebnisse." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "niemals" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "Die gesamte Sammlung ist völlig anonym." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "Die Sammlung kann an jeder beliebigen Stelle in den administrativen Einstellungen deaktiviert werden." @@ -6260,24 +6267,24 @@ msgstr "Hallo {0}. Schön, dich kennenzulernen!" msgid "Create a password" msgstr "Erstelle ein Passwort" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "Pssst..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "Bestätige das Passwort" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "Pssst...aber noch einmal, damit wir es richtig machen" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "Dein Unternehmens- oder Teamname" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "Abteilung für Unglaubliches" @@ -6454,11 +6461,11 @@ msgstr "Mit Google E-Mail Adresse einloggen" msgid "User Details" msgstr "Benutzerdetails" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "Auf Standard zurücksetzen" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "Unbekannte Karte" @@ -6466,7 +6473,7 @@ msgstr "Unbekannte Karte" msgid "Grid map requires binned longitude/latitude." msgstr "Die Grid-Map benötigt klassifizierte Längen- und Breitengrade. " -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "mehr" @@ -6504,31 +6511,31 @@ msgid "Rows {0}-{1} of {2}" msgstr "Zeilen {0}-{1} von {2}" #. Daten auf {0} Zeilen gekürzt. -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "Daten auf {0} Zeilen gekürzt." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "Konnte keine Visualisierung finden" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "Konnte das Diagramm mit diesen Daten nicht anzeigen." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "Keine Ergebnisse!" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "Warte weiterhin..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "Das dauert gewöhnlich durchschnittlich {0}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(Das ist ein wenig lange für ein Dashboard)" @@ -6544,11 +6551,11 @@ msgstr "Wähle ein Feld" msgid "error" msgstr "Fehler" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "Klicke und ziehe um deren Reihenfolge zu ändern" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "Füge Felder von der folgenden Liste hinzu" @@ -6687,19 +6694,19 @@ msgstr "Regel hinzufügen" msgid "Update rule" msgstr "Regel aktualisieren" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "Visualisierung ist NULL" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "Die Visualisierung muss eine statische Variable \"Identifier\" definieren: " -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "Die Visualisierung mit dieser Kennung ist bereits registriert: " -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "Keine Visualisierung für {0}" @@ -6707,11 +6714,11 @@ msgstr "Keine Visualisierung für {0}" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "\"{0}\" ist ein unaggregiertes Feld: Wenn es mehr als einen Wert an einem Punkt auf der x-Achse hat, werden die Werte zusammengefasst." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "Dieser Diagramm-Typ benötigt mindestens 2 Spalten." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "Dieser Diagramm-Typ unterstützt nicht mehr als {0} Datenreihen." @@ -6752,7 +6759,7 @@ msgstr "Bitte konfiguriere dieses Diagramm in den Diagramm-Einstellungen" msgid "Edit Settings" msgstr "Einstellungen anpassen" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "x-Werte fehlen!" @@ -6780,7 +6787,7 @@ msgid "Bubble size" msgstr "Blasengröße" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "Linie" @@ -6837,104 +6844,104 @@ msgstr "Nichts" msgid "Linear Interpolated" msgstr "Linear interpoliert" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "X-Achsen Skala" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "Zeitreihe" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "Linear" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "Potenz" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "Logarithmus" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "Histogramm" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "Ordnungszahl" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "Y-Achsen-Skala" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "Zeige Linie und Markierungen der X-Achse" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Kompakt" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "Drehen 45°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "Drehen 90°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "Zeige Linie und Markierungen der Y-Achse" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Automatische Y-Achsen-Skalierung" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "Verwende bei Bedarf eine geteilte y-Achse" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "Beschriftung auf der X-Achse anzeigen" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "Beschriftung X-Achse" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "Beschriftung auf der Y-Achse anzeigen" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Beschriftung Y-Achse" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "Standardabweichung" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "Fläche" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "Flächendiagramm" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "Balken" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "Balkendiagramm" @@ -6960,19 +6967,19 @@ msgstr "Trichter-Typ" msgid "Bar chart" msgstr "Balkendiagramm" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "Liniendiagramm" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "Bitte wähle die Längen- und Breitengrad-Spalten in den Diagramm-Einstellungen." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "Bitte wähle eine Region-Karte." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "Bitte wähle eine Region sowie die metrischen Spalten in den Diagramm-Einstellungen." @@ -6980,73 +6987,73 @@ msgstr "Bitte wähle eine Region sowie die metrischen Spalten in den Diagramm-Ei msgid "Map" msgstr "Karte" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "Kartentyp" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "Region-Karte" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "Pin-Karte" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "Pin-Typ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "Kacheln" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "Markierungen" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "Breitengrad-Feld" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "Längengrad-Feld" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "Metrisches Feld" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "Region-Feld" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "Radius" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "Unschärfe" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "Min. Transparenz" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "Max. Zoom" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "Keine Beziehungen gefunden." -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "via {0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "{0} ist verbunden mit:" @@ -7058,7 +7065,7 @@ msgstr "Objekt Detail" msgid "object" msgstr "Objekt" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "Gesamt" @@ -7107,7 +7114,7 @@ msgid "Progress" msgstr "Fortschritt" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "Farbe" @@ -7199,13 +7206,13 @@ msgstr "Rechts" msgid "Show background" msgstr "Hintergrund anzeigen" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "Klasse" msgstr[1] "Klassen" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 #, fuzzy msgid "Auto binned" msgstr "Automatische Klassifizierung" @@ -7641,7 +7648,7 @@ msgstr "kumulierte Summe" msgid "{0} and {1}" msgstr "{0} und {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} of {1}" @@ -8124,12 +8131,12 @@ msgstr "Attribut, welches für die E-Mail-Adresse des Benutzers zu verwenden ist #: src/metabase/integrations/ldap.clj #, fuzzy msgid "Attribute to use for the user''s first name. (usually ''givenName'')" -msgstr "Attribut, welches für den Vornamen des Benutzers zu verwenden ist.(normalerweise \"givenName\")" +msgstr "Attribut, welches für den Vornamen des Benutzers zu verwenden ist. (normalerweise \"givenName\")" #: src/metabase/integrations/ldap.clj #, fuzzy msgid "Attribute to use for the user''s last name. (usually ''sn'')" -msgstr "Attribut, welches für den Nachnamen des Benutzers zu verwenden ist.(normalerweise \"sn\")" +msgstr "Attribut, welches für den Nachnamen des Benutzers zu verwenden ist. (normalerweise \"sn\")" #: src/metabase/integrations/ldap.clj msgid "Enable group membership synchronization with LDAP." @@ -8138,7 +8145,7 @@ msgstr "Aktiviere Gruppen-Mitgliedschaft-Synchronisation mit LDAP." #: src/metabase/integrations/ldap.clj #, fuzzy msgid "Search base for groups, not required if your LDAP directory provides a ''memberOf'' overlay. (Will be searched recursively)" -msgstr "Suche Basis für Gruppen. Nicht benötigt sofern das LDAP-Verzeichnis ein \"memberOf\"-Overlay bereitstellt. (wird rekursiv durchsucht)" +msgstr "Suchbasis für Gruppen. Nicht benötigt sofern das LDAP-Verzeichnis ein \"memberOf\"-Overlay bereitstellt. (wird rekursiv durchsucht)" #. Should be in the form: {"cn=Some Group,dc=...": [1, 2, 3]} where keys are LDAP groups and values are lists of MB groups IDs #: src/metabase/integrations/ldap.clj @@ -8997,31 +9004,31 @@ msgstr "Alle Sammlungsberechtigungen sehen" msgid "Also change sub-collections" msgstr "Auch Untersammlungen ändern" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Kann diese Sammlung und ihre Inhalte editieren" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Kann Objekte in dieser Sammlung sehen" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "Sammlungszugriff" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "Diese Gruppe hat die Erlaubnis, mindestens eine Untersammlung dieser Sammlung zu sehen." -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "Diese Gruppe hat die Erlaubnis, mindestens eine Untersammlung dieser Sammlung zu bearbeiten." -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "Untersammlungen anzeigen" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "Angemeldet bleiben" @@ -9041,7 +9048,7 @@ msgstr "Füge diese Frage zu einem Dashboard hinzu " msgid "Create a new dashboard" msgstr "Neues Dashboard erstellen" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "Die von dir angeforderte Seite konnte nicht gefunden werden." @@ -9049,11 +9056,11 @@ msgstr "Die von dir angeforderte Seite konnte nicht gefunden werden." msgid "Select a {0}" msgstr "Wähle eine/n {0}" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "Speichere Dashboards, Fragen und Sammlungen in \"{0}\"" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "Öffne Dashboards, Fragen und Sammlungen in \"{0}\"" @@ -9073,12 +9080,12 @@ msgstr "Ähnlich" msgid "More X-rays" msgstr "Mehr X-Rays" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "Keine Ergebnisse" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabase konnte keine Ergebnisse für deine Suche finden." @@ -9290,10 +9297,10 @@ msgstr "N/A" msgid "Windows domain" msgstr "Windows Domain" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "Beschriftungen" @@ -9328,6 +9335,8 @@ msgstr "Teilen" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9342,33 +9351,33 @@ msgstr "Teilen" msgid "Display" msgstr "Anzeige" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "Achsen" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "Formatierung" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "Schaue dir diese X-Rays, basierend auf deinen Daten, an " -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "Es gab ein Problem, dieses Diagramm anzuzeigen." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "Es tut uns leid, du hast keine Erlaubnis, diese Karte zu sehen." @@ -9388,20 +9397,20 @@ msgstr "X-Ray" msgid "Compare to the rest" msgstr "Vergleiche mit dem Rest" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "Verwende die Java Virtual Machine (JVM) Zeitzone" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "Wir empfehlen dir diesen Wert zu belassen, es sei denn, du machst manuelle Zeitzone-Castings in vielen oder den meisten deiner Abfragen mit diesen Daten." -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "Die wichtigsten Dashboards deines Teams kommen hier hin" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "Fixiere Dashboards in {0} damit sie für jeden an dieser Stelle erscheinen" @@ -9427,12 +9436,12 @@ msgstr "Tipp: " msgid "Select a currency type" msgstr "Wähle einen Währungstypen" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "Feld-Typ" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "Fehlerbehebung" @@ -9480,11 +9489,11 @@ msgstr "Dauer (ms) " msgid "Currency" msgstr "Währung" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "Wähle einen Benutzer oder einen Kanal" -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "Keine Format-Einstellungen" @@ -9658,15 +9667,15 @@ msgstr "Tacho" msgid "Gauge ranges" msgstr "Messbereich" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "Feld zum Anzeigen" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "Letzte {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} war {1} {2}" @@ -9794,7 +9803,7 @@ msgstr "Quartal" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "Hinzufügen von {0} Karten zum Dashboard {1}:n{2}" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "Fehleranalyse {0}:n{1}" @@ -10089,7 +10098,7 @@ msgstr "Bereinigung der Aufgabenhistorie erfolgreich - {0} Zeilen wurden entfern msgid "not" msgstr "Nicht" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "Für mehr Informationen siehe" @@ -11091,6 +11100,7 @@ msgstr "Wie diese Kennzahl auf verschiedene Zahlen verteilt ist" msgid "Sessions by page where the session began" msgstr "Sitzungen nach Seite, auf der die Sitzung begann." +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11439,15 +11449,15 @@ msgstr "Erneut ausführen?" msgid "Triggers for {0}" msgstr "Auslöser für {0}" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "Aufgaben" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "Jobs" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "Doppelte {0}" @@ -11459,7 +11469,7 @@ msgstr "Eintrag duplizieren" msgid "Archive this item" msgstr "Eintrag archivieren" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "Dashboard duplizieren" @@ -11486,6 +11496,7 @@ msgid "Next {0}" msgstr "Nächsten {0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "Vorheriger {0}" @@ -11580,8 +11591,8 @@ msgstr "[Q]Q" msgid "This" msgstr "Dieses" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "Ungültig" @@ -11589,11 +11600,11 @@ msgstr "Ungültig" msgid "Add a time" msgstr "Zeit hinzufügen" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "Es gibt nichts zum vorigen {0} zu vergleichen." -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "von {0}" @@ -11649,39 +11660,39 @@ msgstr "Fehler beim Hinzufügen der Legacy-SQL-Anweisung zur BigQuery Abfrage" msgid "Failed to notify {0} Database {1} updated" msgstr "Fehlgeschlagene Information an {0} Datenbank {1} aktualisiert" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "Lade Treiber {0} {1}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "Lade Treiber {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "Treiber nach dem Laden nicht registriert: {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "Fehler: Die Eigenschaft {0} zu ändern `:abstract?` von {1} nach {2}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "Abstrakter Treiber {0} registriert" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "Treiber {0} registriert" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(Eltern: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "Initialisiere Treiber {0}..." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "Grund:" @@ -11833,11 +11844,11 @@ msgstr "{0} Abhängigkeit {1} erfüllt? {2}" msgid "Plugins with unsatisfied deps: {0}" msgstr "Plugins mit nicht erfüllten Abhängigkeiten: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "Extrahiere Datei {0} -> {1}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "Ressource existiert nicht." @@ -12164,7 +12175,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreateDate]] pro Quartal eines Jahres" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "Benutzer bearbeiten" @@ -12172,12 +12183,12 @@ msgstr "Benutzer bearbeiten" msgid "New user" msgstr "Neuer Benutzer" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "Passwort zurücksetzen" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "Benutzer deaktivieren" @@ -12454,11 +12465,11 @@ msgstr "Fehlzündungsanweisung" msgid "Archive this?" msgstr "Archivieren?" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "Erfahre mehr über deine Daten" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "Verwende DNS SRV zum Verbinden" @@ -12470,7 +12481,7 @@ msgstr "Die Verwendung dieser Option setzt voraus, dass der angegebene Host ein "einen Atlas-Cluster verbinden, musst du diese Option möglicherweise aktivieren. Wenn du nicht weißt, was das bedeutet,\n" "lasse es deaktiviert." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "Führe Abfragen bei einechem Filtern und Zusammenfassen automatisch aus" @@ -12478,7 +12489,7 @@ msgstr "Führe Abfragen bei einechem Filtern und Zusammenfassen automatisch aus" msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Wenn dies aktiviert ist, führt Metabase automatisch Abfragen aus, wenn Benutzer einfache Erkundungen mit den Schaltflächen Zusammenfassen und Filtern, während sie Tabellen oder ein Diagramm anzeigen. Du kannst dies ausschalten, wenn die Abfrage dieser Datenbank langsam ist. Diese Einstellung hat keinen Einfluss auf Drill-Throughs oder SQL-Abfragen." -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "Lerne etwas über diese Datenbank" @@ -12486,25 +12497,25 @@ msgstr "Lerne etwas über diese Datenbank" msgid "Archive this dashboard?" msgstr "Dieses Dashboard archivieren?" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "Alle Ergebnisse" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "Unsere Analysen" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." -msgstr "" +msgstr "Additive Summe aller Werte einer Spalte.\\ne.x. Gesamtumsatz über die Zeit." -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." -msgstr "" +msgstr "Additive Zählung der Anzahl der Zeilen.\\ne.x. Gesamtzahl der Verkäufe über die Zeit." #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Filter" @@ -12514,35 +12525,35 @@ msgid_plural "records" msgstr[0] "Eintrag" msgstr[1] "Einträge" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "Daten anzeigen" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "Sql schreiben" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "Einfache Frage" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." -msgstr "" +msgstr "Wähle einige Daten aus, betrachte, filter, summiere und visualisiere sie." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "Benutzerdefinierte Frage" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." -msgstr "" +msgstr "Verwende den erweiterten Notebook-Editor, um Daten zu verknüpfen, benutzerdefinierte Spalten zu erstellen, Berechnungen durchzuführen und vieles mehr." #: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:23 msgid "Basic Metrics" msgstr "Einfache Metriken" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "Benutzerdefiniert..." @@ -12558,7 +12569,7 @@ msgstr "Wähle ein Limit" msgid "Show maximum" msgstr "Maximum anzeigen" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "Vorschau anzeigen" @@ -12587,7 +12598,7 @@ msgid "Custom column" msgstr "Benutzerdefinierte Spalte" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "Zusammenfassen" @@ -12597,18 +12608,17 @@ msgstr "Aggregieren" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:68 msgid "Breakout" -msgstr "" +msgstr "Ausbruch" #: frontend/src/metabase/query_builder/components/notebook/steps/AggregateStep.jsx:18 msgid "Pick the metric you want to see" msgstr "Wähle eine Metrik" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "Wähle eine Spalte für die Gruppierung" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "Wähle deine Start-Daten" @@ -12620,7 +12630,7 @@ msgstr "Nichts auswählen" msgid "Select All" msgstr "Alles auswählen" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "Wähle eine Tabelle..." @@ -12663,18 +12673,18 @@ msgstr "Alarme" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:31 msgid "{0} breakout" msgid_plural "{0} breakouts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "{0} Ausbruch" +msgstr[1] "{0} Ausbrüche" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "Filter verstecken" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "Filter anzeigen" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "Gestarten von" @@ -12704,11 +12714,11 @@ msgstr "Zeige {0}" msgid "Summarized" msgstr "Summiert" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "Editor verstecken" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "Editor anzeigen" @@ -12716,7 +12726,7 @@ msgstr "Editor anzeigen" msgid "Pick the metric you'd like to see" msgstr "Wähle die Metrik, die du sehen möchtest" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "{0} Optionen" @@ -12744,7 +12754,7 @@ msgstr "Metrik hinzufügen" msgid "Profile" msgstr "Profil" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "Das geht normalerweise zeimlich schnell aber scheint gerade sehr lange zu dauern." @@ -12772,25 +12782,25 @@ msgstr "Unbekanntes Segment" msgid "Unknown Filter" msgstr "Unbekannter Filter" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "Left outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "Right outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "Inner join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "Full outer join" #: src/metabase/api/card.clj msgid "Card results metadata passed in to API is MISSING. Running query to fetch correct metadata." -msgstr "" +msgstr "Metadaten von Kartenresultaten, die an die API übergeben wurden, FEHLEN. Führe Abfrage aus, um die korrekten Metadaten zu erhalten." #: src/metabase/api/session.clj msgid "Problem connecting to LDAP server, will fall back to local authentication" @@ -12814,7 +12824,7 @@ msgstr "Unerwarteter Fehler beim Schreiben des Ergebnisses in den Output-Kanal: #: src/metabase/async/util.clj msgid "Unexpected error writing exception to output channel: already closed" -msgstr "" +msgstr "Unerwarteter Fehler beim Schreiben einer Ausnahme auf den Ausgabekanal: bereits geschlossen" #: src/metabase/async/util.clj msgid "Request canceled, canceling future." @@ -12826,7 +12836,7 @@ msgstr "Metabase kann Daten nur von H2 zu Postgres oder MySQL/MariaDB übertrage #: src/metabase/db.clj msgid "WARNING: Using Metabase with an H2 application database is not recommended for production deployments." -msgstr "" +msgstr "WARNUNG: Die Verwendung von Metabase mit einer H2-Applikationsdatenbank wird nicht für den Produktiveinsatz empfohlen." #: src/metabase/db.clj msgid "Application database setup" @@ -12836,9 +12846,9 @@ msgstr "Anwendungs-Datenbank Setup" msgid "Could not find {0} driver." msgstr "Konnte {0} Treiber nicht finden." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." -msgstr "" +msgstr "Abstrakte Treiber können nicht von konkreten Elterntreibern abgeleitet werden." #: src/metabase/driver/mysql.clj msgid "You may need to add 'trustServerCertificate=true' to the additional connection options to connect with SSL." @@ -12866,53 +12876,53 @@ msgstr "Setzen der site-url fehlgeschlagen." #: src/metabase/models/database.clj msgid "Error destroying thread pool for DB." -msgstr "" +msgstr "Fehler zerstöre Thread-Pool für Datenbank." #: src/metabase/models/humanization.clj msgid "Updating display name for {0} ''{1}'': ''{2}'' -> ''{3}''" -msgstr "" +msgstr "Aktualisiere Anzeigenname für {0} ''{1}'': ''{2}'' -> ''{3}''" #: src/metabase/models/humanization.clj msgid "Invalid humanization strategy ''{0}''. Valid strategies are: {1}" -msgstr "" +msgstr "Ungültige Vermenschlichungsstrategie \"{0}\". Gültige Strategien sind: {1}" #. now rehumanize all the Tables and Fields using the new strategy. #. TODO: Should we do this in a background thread because it is potentially slow? #: src/metabase/models/humanization.clj msgid "Chaning Table & Field names humanization strategy from ''{0}'' to ''{1}''" -msgstr "" +msgstr "Ändere Tabellen- und Feldernamen-Vermenschlichungsstrategie von \"{0}\" to \"{1}\"" #: src/metabase/models/task_history.clj src/metabase/sync/util.clj msgid "Error saving task history" -msgstr "" +msgstr "Fehler beim Speichern der Aufgabenhistorie" #: src/metabase/plugins.clj msgid "spark-deps.jar is no longer needed by Metabase 0.32.0+. You can delete it from the plugins directory." -msgstr "" +msgstr "spark-deps.jar wird nicht länger von Metabase 0.32.0+ benötigt. Du kannst es aus dem Plugin-Verzeichnis löschen." #: src/metabase/plugins/classloader.clj msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" -msgstr "" +msgstr "Verwende NEULICH ERSTELLT Klassenlader als geteilter Kontextklassenlader: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "Fehler beim Kopieren der Datei." #: src/metabase/public_settings.clj msgid "Invalid site URL: {0}" -msgstr "" +msgstr "Ungültige Seiten-URL: {0}" #: src/metabase/public_settings.clj msgid "site-url is invalid; returning nil for now. Will be reset on next request." -msgstr "" +msgstr "Seiten-URL ist ungültig; gebe für den Augenblick nichts zurück. Wird bei der nächsten Abfrage zurückgesetzt." #: src/metabase/pulse/render/body.clj msgid "More results have been included as a file attachment" -msgstr "" +msgstr "Weitere Ergebnisse wurden als Dateianhang aufgenommen." #: src/metabase/pulse/render/body.clj msgid "This question has been included as a file attachment" -msgstr "" +msgstr "Diese Frage wurde als ein Dateianhang aufgenommen." #: src/metabase/pulse/render/body.clj msgid "We were unable to display this Pulse." @@ -12928,7 +12938,7 @@ msgstr "Beim Anzeigen der Karte ist ein Fehler aufgetreten." #: src/metabase/query_processor.clj msgid "Can only determine expected columns for MBQL queries." -msgstr "" +msgstr "Kann nur erwartete Spalten für MBQL-Abfragen bestimmen." #: src/metabase/query_processor.clj msgid "No columns returned." @@ -12936,15 +12946,15 @@ msgstr "Keine Spalten zurückgegeben." #: src/metabase/query_processor/middleware/add_implicit_clauses.clj msgid "Warining: cannot determine fields for an explicit `source-query` unless you also include `source-metadata`." -msgstr "" +msgstr "Warnung: kann keine Felder für eine explizite `Quellabfrage` bestimmen, es sei denn, Sie geben auch `Quellmetadaten` an." #: src/metabase/query_processor/middleware/add_implicit_joins.clj msgid "Cannot resolve {0}: Field does not exist, or its Table belongs to a different Database." -msgstr "" +msgstr "Kann nicht auflösen {0}: Feld existiert nicht, oder seine Tabelle gehört zu einer anderen Datenbank." #: src/metabase/query_processor/middleware/add_implicit_joins.clj msgid "Cannot resolve :field-literal inside :fk-> unless inside join with explicit :alias." -msgstr "" +msgstr "Kann nicht :field-literal inside :fk-> auflösen, solange der innere Join mit expliziten :alias." #: src/metabase/query_processor/middleware/add_implicit_joins.clj msgid "Cannot find Table ID for {0}" @@ -12960,7 +12970,7 @@ msgstr "Konnte {0} nicht auflösen" #: src/metabase/query_processor/middleware/add_implicit_joins.clj msgid "Invalid fk-> clause: nowhere to add corresponding join." -msgstr "" +msgstr "Ungültiger Fremdschlüssel -> Klausel: nirgendwo, um einen entsprechenden Join hinzuzufügen." #: src/metabase/query_processor/middleware/add_implicit_joins.clj msgid "{0} driver does not support foreign keys." @@ -12968,19 +12978,19 @@ msgstr "Der Treiber für {0} unterstützt keine Fremdschlüssel." #: src/metabase/query_processor/middleware/add_source_metadata.clj msgid "Cannot infer `:source-metadata` for source query with native source query without source metadata." -msgstr "" +msgstr "Kann nicht ableiten `:source-metadata` für eine Quellabfrage mit nativer Quellabfrage ohne Quellenmetadaten." #: src/metabase/query_processor/middleware/annotate.clj msgid "Query processor error: number of columns returned by driver does not match results." -msgstr "" +msgstr "Abfrageprozessorfehler: Die Anzahl der vom Treiber zurückgegebenen Spalten stimmt nicht mit den Ergebnissen überein." #: src/metabase/query_processor/middleware/annotate.clj msgid "Expected {0} columns, but first row of resuls has {1} columns." -msgstr "" +msgstr "Erwartete {0} Spalten, aber die erste Zeile der Ergebnisse hat {1} Spalten." #: src/metabase/query_processor/middleware/annotate.clj msgid "No expression named {0} found. Found: {1}" -msgstr "" +msgstr "Kein Ausdruck mit dem Namen {0} gefunden. Gefunden: {1}" #: src/metabase/query_processor/middleware/annotate.clj msgid "Distinct values of {0}" @@ -13021,51 +13031,51 @@ msgstr "Anzahl an Zeilen, die Bedingung erfüllend" #: src/metabase/query_processor/middleware/async.clj msgid "Request already canceled, will not run synchronous QP code." -msgstr "" +msgstr "Anfrage bereits abgebrochen, werde nicht synchronen QP-Code ausführen." #: src/metabase/query_processor/middleware/async.clj msgid "Unexpectedly got `nil` Query Processor response." -msgstr "" +msgstr "Unerwartet wurde die Anwort `nil` des Abfrageprozessors erhalten." #: src/metabase/query_processor/middleware/async.clj msgid "Got InterruptedException. Canceling query." -msgstr "" +msgstr "Habe Unterbrechungsausnahme erhalten. Breche Abfrage ab." #: src/metabase/query_processor/middleware/async.clj msgid "Unhandled exception, exepected `catch-exceptions` middleware to handle it." -msgstr "" +msgstr "Unbehandelte Ausnahme, erwartete `catch-exceptions` Middleware, um sie zu behandeln." #: src/metabase/query_processor/middleware/async.clj msgid "Query timed out after %s" -msgstr "" +msgstr "Abfragezeitüberschreitung nach %s" #: src/metabase/query_processor/middleware/async_wait.clj msgid "Creating new query thread pool for Database {0}" -msgstr "" +msgstr "Erstelle neuen Abfrage-Thread-Pool für Datenbank {0}" #: src/metabase/query_processor/middleware/async_wait.clj msgid "Destroying query thread pool for Database {0}" -msgstr "" +msgstr "Zerstöre Abfrage-Thread-Pool für Datenbank {0}" #: src/metabase/query_processor/middleware/async_wait.clj msgid "Request canceled, canceling pending query" -msgstr "" +msgstr "Anfrage abgebrochen, breche ausstehende Abfrage ab" #: src/metabase/query_processor/middleware/binning.clj msgid "Cannot update binned field: query is missing source-metadata" -msgstr "" +msgstr "Kann nicht das weggeworfene Feld aktualisieren: Abfrage vermisst Quellmetadaten" #: src/metabase/query_processor/middleware/binning.clj msgid "Cannot update binned field: could not find matching source metadata for Field ''{0}''" -msgstr "" +msgstr "Kann das eingelagerte Feld nicht aktualisieren: Es konnten keine passenden Quellmetadaten für das Feld ''{0}'' gefunden werden" #: src/metabase/query_processor/middleware/cache.clj msgid "Using query processor cache backend: {0}" -msgstr "" +msgstr "Benutze Abfrageprozessor-Zwischenspeicherbackend: {0}" #: src/metabase/query_processor/middleware/expand_macros.clj msgid "Invalid metric: {0} reason: {1}" -msgstr "" +msgstr "Ungültige Metrik: {0} Grund: {1}" #: src/metabase/query_processor/middleware/process_userland_query.clj msgid "Unknown error" @@ -13081,47 +13091,47 @@ msgstr "Query abgebrochen" #: src/metabase/query_processor/middleware/resolve_driver.clj msgid "Unable to resolve driver for query: missing or invalid `:database` ID." -msgstr "" +msgstr "Treiber kann nicht für die Abfrage aufgelöst werden: Fehlende oder ungültige `:database`-ID." #: src/metabase/query_processor/middleware/resolve_driver.clj msgid "Unable to resolve driver for query: Database {0} does not exist." -msgstr "" +msgstr "Treiber kann nicht für die Abfrage aufgelöst werden: Datenbank {0} existiert nicht." #: src/metabase/query_processor/middleware/resolve_joins.clj msgid "Cannot use :fields :all in join against source query unless it has :source-metadata." -msgstr "" +msgstr "Kann nicht :fields :all in Join gegen Quellabfrage benutzen, solange es keine :source-metadata hat." #: src/metabase/query_processor/middleware/resolve_joins.clj msgid "Bad :joined-field clause: join with alias ''{0}'' does not exist. Found: {1}" -msgstr "" +msgstr "Schlechte :joined-field Klausel: Verbindung mit Alias \"{0}\" existiert nicht. Gefunden: {1}" #: src/metabase/query_processor/middleware/resolve_source_table.clj msgid "Invalid :source-table ''{0}'': should be resolved to a Table ID by now." -msgstr "" +msgstr "Ungültige :source-table ''{0}'': sollte nun zu einer Tabellen-ID aufgelöst werden." #: src/metabase/query_processor/store.clj msgid "Cannot store Tables or Fields before Database is stored." -msgstr "" +msgstr "Kann nicht Tabellen oder Felder speichern, bevor die Datenbank gespeichert wurde." #: src/metabase/query_processor/store.clj msgid "Attempting to fetch second Database. Queries can only reference one Database." -msgstr "" +msgstr "Versuche, die zweite Datenbank zu holen. Abfragen können nur auf eine Datenbank verweisen." #: src/metabase/query_processor/store.clj msgid "Failed to fetch Table {0}: Table does not exist, or belongs to a different Database." -msgstr "" +msgstr "Tabelle {0} konnte nicht abgerufen werden: Tabelle existiert nicht oder gehört zu einer anderen Datenbank." #: src/metabase/query_processor/store.clj msgid "Failed to fetch Field {0}: Field does not exist, or belongs to a different Database." -msgstr "" +msgstr "Feld {0} konnte nicht abgerufen werden: Feld existiert nicht oder gehört zu einer anderen Datenbank." #: src/metabase/routes/index.clj msgid "Failed to load template ''{0}''. Did you remember to build the Metabase frontend?" -msgstr "" +msgstr "Vorlage ''{0}'' konnte nicht geladen werden. Hast du daran gedacht, das Metabase-Frontend zu erstellen?" #: src/metabase/sample_data.clj msgid "Sample dataset DB file ''{0}'' cannot be found." -msgstr "" +msgstr "Beispieldatensatz DB-Datei ''{0}'' kann nicht gefunden werden." #: src/metabase/sample_data.clj msgid "Loading sample dataset..." @@ -13167,14 +13177,14 @@ msgstr "Fehler beim Planen der Aufgaben für Datenbank {0}" msgid "All elements must be distinct." msgstr "Jedes Element muss eindeutig sein." -#: +#: msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" -msgstr "" +msgstr "Wähle die Spalten aus, die Du einbeziehen möchtest." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." -msgstr "" +msgstr "Wenn dies aktiviert ist, führt Metabase automatisch Abfragen aus, wenn Benutzer einfache Erkundungen mit den Schaltflächen Zusammenfassen und Filtern durchführen, wenn sie eine Tabelle oder ein Diagramm anzeigen. Sie können dies ausschalten, wenn die Abfrage dieser Datenbank langsam ist. Diese Einstellung hat keinen Einfluss auf Drill-Throughs oder SQL-Abfragen." #: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:97 msgid "Change join type" @@ -13182,7 +13192,7 @@ msgstr "Ändere join Typ" #: src/metabase/driver/sql/util.clj msgid "Don't know how to alias {0}, expected an Identifier." -msgstr "" +msgstr "Weiß nicht, wie {0} benannt werden soll; erwartete eine Kennung." #: src/metabase/integrations/common.clj msgid "Error adding User {0} to Group {1}" @@ -13192,21 +13202,457 @@ msgstr "Fehler beim Hinzufügen von Benutzer {0} zu Gruppe {1}" #. TODO: Should we do this in a background thread because it is potentially slow? #: src/metabase/models/humanization.clj msgid "Changing Table & Field names humanization strategy from ''{0}'' to ''{1}''" -msgstr "" +msgstr "Ändere Tabellen- und Feldernamen-Vermenschlichungsstrategie von \"{0}\" to \"{1}\"" #: src/metabase/query_processor.clj msgid "Infinite loop detected: recursively preprocessed query {0} times." -msgstr "" +msgstr "Endlosschleife erkannt: Rekursiv vorverarbeitete Abfrage {0} mal." #: src/metabase/query_processor/middleware/add_implicit_clauses.clj msgid "Warning: cannot determine fields for an explicit `source-query` unless you also include `source-metadata`." -msgstr "" +msgstr "Warnung: kann keine Felder für eine explizite `Quellabfrage` bestimmen, es sei denn, Sie geben auch `Quellmetadaten` an." #: src/metabase/query_processor/middleware/add_source_metadata.clj msgid "Error determining expected columns for query" -msgstr "" +msgstr "Fehler beim Bestimmen der erwarteten Spalten für die Abfrage" #: src/metabase/query_processor/middleware/async.clj msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." -msgstr "" +msgstr "Unbehandelte Ausnahme, erwartete `catch-exceptions` Middleware um es zu behandeln." + +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "Diagnoseinformationen" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "Wähle Metabaseprozess:" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "Alle Metabaseprozesse" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "Das Fenster wurde geschlossen, bevor die Google-Authentifizierung vervollständigt wurde." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "Es gab ein Problem bei der Anmeldung mit Google. Bitte kontaktiere einen Administrator." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "Anmeldung per E-Mail" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "Die Auswahl dieser Option erfordert einen Host, der über einen FQDN verfügt. Wenn zu einem Atlas-Cluster verbunden wird, musst Du diese Option eventuell aktivieren. Falls Du nicht weißt, was diese Option bedeutet, lass sie deaktiviert." + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "Standardmäßig führt Metabase eine leichte stündliche Synchronisierung und eine intensive tägliche Ãœberprüfung der Feldwerte durch. Wenn Du eine große Datenbank hast, empfehlen wir Dir, das hier einzuschalten und zu überprüfen, wann und wie oft die Feldwertüberprüfungen stattfinden." + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "Diese Vorschläge entfernen" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "Diese Vorschläge entfernen?" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "Diese werden für keinen Deiner Benutzer mehr auf der Homepage erscheinen, aber Du kannst jederzeit zu den x-rays gelangen, indem Du in der Hauptnavigation auf Daten durchsuchen und dann auf das Blitzsymbol in einer Deiner Tabellen klickst." + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "Diesen Bereich ausblenden" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "Diesen Bereich entfernen?" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "\"Unsere Daten\" werden für keinen Deiner Benutzer mehr auf der Homepage erscheinen, aber Du kannst jederzeit durch Deine Datenbanken und Tabellen blättern, indem Du in der Hauptnavigation auf Daten durchsuchen klickst." + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "Meine neue fantastische Sammlung" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "Stornierungszeitpunkt" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "Stornierungszeit" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "Stornierungsdatum" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "Löschzeitpunkt" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "Löschzeit" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "Löschdatum" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "Nur in Detailansichten" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "Nicht enthalten" +"" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "Dieses Feld ist bei Fragen, die mit den GUI-Oberflächen erstellt wurden, nicht sichtbar oder auswählbar. Es wird weiterhin in SQL/nativen Abfragen verfügbar sein." + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "Kumulierte Summe" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "Standardabweichung" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "muss mindestens {0} Zeichen lang sein" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "Muss mindestens {0} Zeichen lang sein" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "Name (erforderlich)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "Führe ausgewählten Text aus" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "Führe Abfrage aus" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "(⌘ + Enter)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "(STRG + Enter)" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "An dieser Stelle werden Deine Resultate erscheinen" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "Du wirst keine dauerhaften Änderungen an einer gespeicherten Frage vornehmen, es sei denn, Du klickst auf Speichern und wählst die ursprüngliche Frage zum Ersetzen aus." + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "Es existieren momentan keine Filter-Steuerelemente für diesen Feldtyp." + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "Schlage in diesem Feld nach" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "Warum diese Metrik interessant ist" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "Was man über diese Metrik bewusst wissen muss" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "Wie diese Metrik kalkuliert wird" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "Tabelle basiert auf" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "(leer)" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "Ziellinie" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "Trendlinie" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "Werte auf Datenpunkten anzeigen" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "Anzuzeigende Werte" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "So viele wie möglich, die gut passen" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "Alle" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "Daten beinhalten fehlende Dimensionswerte." + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "Wir haben ein ungültiges Datum festgestellt: \"{0}\"" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "Die Abfrage für dieses Diagramm wurde aufgrund von Datenbank- oder Treiberbeschränkungen unter {0} und nicht unter {1} ausgeführt." + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "Dieses Diagramm enthält Abfragen, die in mehreren Zeitzonen ausgeführt werden: {0}" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "Beim Ausführen der Abfrage ist ein Fehler aufgetreten." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "Ausgabe H2-Datenbank existiert bereits: %s, entferne." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "Muss nicht migrieren, verwende einfach die vorhandene H2-Datei" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "Die Zieldatenbank ist bereits besetzt!" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "Systeminformation: n {0}" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "Datenbankkonfiguration" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "Verschiebe Instanzen von {0} welche sich nicht in der Sammlung zu {1} von der Sammlung {2} befinden. " + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "Ungültie '{{...}}' Klausel: erwartete einen Parameternamen" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "'{{...}}' Klauseln können nicht leer sein." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "'[[...]]' Klauseln müssen wenigstens eine '{{...}}' Klausel enthalten." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "Ungültige Abfrage: Gefunden '[[' oder '{{' mit keiner Ãœbereinstimmung ']]' oder '}}'" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "Du musst einen Wert für \"{0}\" auswählen, bevor diese Abfrage ausgeführt werden kann." + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "Kann nicht das Feld mit der ID: {0} finden" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "Fehler beim Laden des Treiber-Namensraums" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "Konnte nicht den {0} Treiber laden." + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "Abfrage kann nicht ausgeführt werden: Es fehlen benötigte Parameter: {0}" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "Weiß nicht wie ich {0} {1} zerlegen soll" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "Weiß nicht, wie {0} benannt werden soll, erwarte eine Kennung." + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "Weiß nicht, wie Werte der Klasse {0} unvorbereitet werden können" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "Erstelle neuen Verbindungspool für {0} Datenbank {1} ..." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "Ungültige Zeitzone \"{0}\"" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "Zeitzone kann nicht gesetzt werden: Falsches oder fehlerhaftes SQL-Formatierungszeichen für Treiber {0}." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "Hast Du set-timezone-sql implementiert?" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "Zeitzone \"{0}\" konnte nicht gesetzt werden" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "Datenbankverbindungsfehler" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "Fehler beim Parsen von JSON" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "Ob Daten auf der Homepage angezeigt werden sollen oder nicht. Administratoren können dies deaktivieren, um die Benutzer auf bessere Inhalte als auf Rohdaten hinzuweisen." + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "Ob x-ray Vorschläge auf der Homepage angezeigt werden oder nicht; sie werden auch ausgeblendet, falls irgendein Dashboard angeheftet ist. Administratoren könnten dies ausblenden, um Benutzer auf besseren Inhalt als auf Rohdaten hinzuweisen" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "Identifiziere die Quelle der HTTP-Anfrage anhand des Wertes dieses Headers anstelle seiner Remote-Adresse." + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "Konnte die Einstellung {0}/{1} nicht auflösen" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "Ungültige Einstellung: {0}/{1}" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "hat sein Ziel erreicht" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "hat sein Ziel verfehlt" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "Sende Puls ({0}: {1}) über E-Mail" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "Puls: {0}" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "Sende Puls ({0}: {1}) über Slack" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "Sende Alarm ({0}: {1}) über E-Mail" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "Metabase-Alarm: {0} hat {1}" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "Sende Alarm ({0}: {1}) über Slack" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "Alarm: {0}" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "Kann nicht den JS-Farbselektor bei \"{0}\" finden" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "BEHEBE MICH: Das hier sind keine gültigen temporären Buchstaben: {0} {1}. Warum versuchen wir, sie als solche zu formatieren?" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "Keine übereinstimmenden Informationen für den Join gegen Tabelle {0} ''{1}'' auf Feld {2} ''{3}'' über Fremdschlüssel {4} ''{5}'' gefunden" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "Weiß nicht, wie ich Informationen über das Feld {0} beziehen kann" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "Abfragezeitüberschreitung nach {0}" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "Formatiere Zeilen mit der Ergebniszeitzonen-ID {0}" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "Ungültige Zeitzonen-ID \"{0}\"" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "Speichere Fingerabdruck für {0}" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "Sende Verlassenheits-E-Mail!" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "Die daraus resultierenden Veränderungen entsprechen nicht den Erwartungen.nErwartet: {0}" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "Zeitüberschreitung nach {0}" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "Kein Zeitjustierer namens {0}" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "Ungültige Einheit: {0}" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "Weiß nicht, wie ich {0} mit dem Formats {1} zerlegen kann" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "Token fehlt Wert für Schlüsselpfad {0]" +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "Sende Nutzungsstatistiken FEHLGESCHLAGEN" diff --git a/locales/es.po b/locales/es.po index f24b1d5d2c6f728d32c041ad2bcdebdc150b4af8..56f5b7f071c4241fc714ae0cf652f2dfd0bdc17e 100644 --- a/locales/es.po +++ b/locales/es.po @@ -29,19 +29,18 @@ msgid "Select a database type" msgstr "Selecciona un tipo de base de datos" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "Guardar" @@ -51,7 +50,7 @@ msgstr "Para hacer algo de magia, Metabase necesita escanear la base de datos. L #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:127 msgid "Database syncing" -msgstr "Sincronizando Base de Datos" +msgstr "Sincronizando base de datos" #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:128 msgid "This is a lightweight process that checks for\n" @@ -68,7 +67,7 @@ msgstr "Explorar" #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:152 msgid "Scanning for Filter Values" -msgstr "Buscando Valores de Filtrado" +msgstr "Buscando valores de filtrado" #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:153 msgid "Metabase can scan the values present in each\n" @@ -76,7 +75,7 @@ msgid "Metabase can scan the values present in each\n" "can be a somewhat resource-intensive process, particularly if you have a very large\n" "database." msgstr "Metabase puede escanear los valores presentes en cada \n" -"campo en esta base de datos para habilitar filtros de casilla de verificación en cuadros de mando ypreguntas. Esto \n" +"campo en esta base de datos para habilitar filtros de casilla de verificación en cuadros de mando y preguntas. Esto \n" "puede ser un proceso que consume muchos recursos, particularmente si tienes una \n" "base de datos grande." @@ -86,7 +85,7 @@ msgstr "¿Cuándo deberÃa Metabase escanear y almacenar automáticamente los va #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:163 msgid "Regularly, on a schedule" -msgstr "Regularmente, siguiendo un horario" +msgstr "Periódicamente, siguiendo un horario" #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:194 msgid "Only when adding a new filter widget" @@ -106,7 +105,7 @@ msgstr "Nunca, lo haré manualmente si lo necesito" #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "Guardando..." @@ -143,16 +142,16 @@ msgstr "en esta casilla:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -160,20 +159,20 @@ msgstr "en esta casilla:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "Cancelar" @@ -185,33 +184,33 @@ msgstr "Cancelar" msgid "Delete" msgstr "Eliminar" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" -msgstr "Bases de Datos" +msgstr "Bases de datos" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" -msgstr "Añadir Base de Datos" +msgstr "Añadir base de datos" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "Conexión" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "Programación" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -221,18 +220,18 @@ msgstr "Programación" msgid "Save changes" msgstr "Guardar cambios" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "Acciones" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "Sincronizar el esquema de la base de datos ahora" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -240,41 +239,41 @@ msgstr "Sincronizar el esquema de la base de datos ahora" msgid "Starting…" msgstr "Empezando…" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "No se ha podido sincronizar" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "¡Sincronización iniciada!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "Vuelva a escanear los valores de campo ahora" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "No se ha podido iniciar la exploración" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "¡Exploración iniciada!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "Zona Peligrosa" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "Descartar valores de campos guardados" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "Eliminar esta base de datos" @@ -283,18 +282,17 @@ msgid "Add database" msgstr "Añadir base de datos" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "Nombre" @@ -314,24 +312,25 @@ msgstr "Cargando..." msgid "Bring the sample dataset back" msgstr "Recuperar la base de datos de prueba" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "No se ha podido conectar a la base de datos. Por favor, comprueba los detalles de la conexión." -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "¡Creado con éxito!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "¡Guardado con éxito!" #. Editar #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "Editar" @@ -345,11 +344,11 @@ msgstr "¿Retirar este {0}?" #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:37 msgid "Saved questions and other things that depend on this {0} will continue to work, but this {1} will no longer be selectable from the query builder." -msgstr "Las preguntas guardadas y otras cosas que dependen de este {0} continuarán funcionando, pero este {1} ya no se podrá seleccionar desde el generador de consultas." +msgstr "Las preguntas guardadas y otras cosas que dependen de este {0} continuarán funcionando pero este {1} ya no se podrá seleccionar desde el generador de consultas." #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:38 msgid "If you're sure you want to retire this {0}, please write a quick explanation of why it's being retired:" -msgstr "Si estás seguro de querer retirar este {0}, escribe una explicación de por qué está siendo retirado:" +msgstr "Si estás seguro de querer retirar este {0} escribe una explicación de por qué está siendo retirado:" #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:42 msgid "This will show up in the activity feed and in an email that will be sent to anyone on your team who created something that uses this {0}." @@ -371,12 +370,12 @@ msgstr "Ha fallado" msgid "Success" msgstr "Éxito" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" -msgstr "Vista Preliminar" +msgstr "Vista preliminar" #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:90 msgid "No column description yet" @@ -393,14 +392,14 @@ msgstr "Sin tipo especial" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "Otro" #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:220 msgid "Select a special type" -msgstr "Selección un tipo especial" +msgstr "Seleccione un tipo especial" #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:265 msgid "Select a target" @@ -423,7 +422,7 @@ msgstr "Campo" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "Visibilidad" @@ -433,19 +432,19 @@ msgstr "Tipo" #: frontend/src/metabase/admin/datamodel/components/database/MetadataHeader.jsx:104 msgid "Current database:" -msgstr "Base de Datos actual:" +msgstr "Base de datos actual:" #: frontend/src/metabase/admin/datamodel/components/database/MetadataHeader.jsx:109 msgid "Show original schema" -msgstr "Mostrar Esquema Original" +msgstr "Mostrar esquema original" #: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:47 msgid "Data Type" -msgstr "Tipo de Dato" +msgstr "Tipo de dato" #: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:48 msgid "Additional Info" -msgstr "Información Adicional" +msgstr "Información adicional" #: frontend/src/metabase/admin/datamodel/components/database/MetadataSchemaList.jsx:46 msgid "Find a schema" @@ -490,13 +489,13 @@ msgstr "Alcance Metadatos" msgid "{0} Queryable Table" msgid_plural "{0} Queryable Tables" msgstr[0] "{0] Tabla Consultable" -msgstr[1] "{0] Tablas Consultables" +msgstr[1] "{0] Tablas consultables" #: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:92 msgid "{0} Hidden Table" msgid_plural "{0} Hidden Tables" msgstr[0] "{0] Tabla Escondida" -msgstr[1] "{0] Tablas Escondidas" +msgstr[1] "{0] Tablas escondidas" #: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:109 msgid "Find a table" @@ -506,35 +505,34 @@ msgstr "Encontrar una tabla" msgid "Schemas" msgstr "Esquemas" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "Métricas" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" -msgstr "Añadir una Métrica" +msgstr "Añadir una métrica" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "Definición" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "Crea métricas para añadirlas al menú Ver en el generador de consultas" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -542,11 +540,11 @@ msgstr "Crea métricas para añadirlas al menú Ver en el generador de consultas msgid "Segments" msgstr "Segmentos" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" -msgstr "Añadir un Segmento" +msgstr "Añadir un segmento" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "Crea segmentos para añadirlos al menú Filtro en el generador de consultas" @@ -592,23 +590,23 @@ msgstr "Historia" msgid "Revision History for" msgstr "Historial de Revisiones para" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} – Configuración de campos" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "Donde aparecerá este campo en Metabase" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Filtrando sobre este campo" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "Cuando este campo se usa en un filtro, ¿qué valores deberÃa aceptar?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "No hay descripción para este campo todavÃa" @@ -649,11 +647,11 @@ msgstr "El campo actual no es una clave foránea o faltan los metadatos de clave msgid "The selected field isn't a foreign key" msgstr "El campo seleccionado no es una clave foránea" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "Valores mostrados" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "Elige si quieres mostrar el valor original de la base de datos, o mostrar información asociada o personalizada." @@ -673,12 +671,12 @@ msgstr "Consejo:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "Es posible que quieras actualizar el nombre del campo para asegurarte de que todavÃa tenga sentidoen función de las opciones de asignación." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "Valores de campo en caché" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabase puede escanear los valores de este campo para habilitar los filtros de casilla de verificación en cuadros de mando y preguntas." @@ -705,82 +703,82 @@ msgstr "¡Limpieza iniciada!" msgid "Select any table to see its schema and add or edit metadata." msgstr "Selecciona cualquier tabla para ver su esquema y añadir o editar metadatos." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "Nombre es obligatorio" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "Descripción es obligatorio" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "Mensaje de la revisión es obligatorio" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "Agregación es obligatoria" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "Edita tu Métrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "Crea tu Métrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "Haz cambios en tu métrica y deja una nota explicativa." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "Puedes crear métricas y guardarlas como campo calculado en esta tabla.Las métricas guardadas incluyen el tipo de agregación, el campo agregado y, opcionalmente, cualquier filtro que añadas.Por ejemplo, puedes usar esto para definir la forma oficial de calcular el \"Precio promedio\" para una tabla de Pedidos." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "Resultado:" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "Ponle nombre a tu Métrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "Dale un nombre a tu métrica para ayudar a otros a encontrarla." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "Algo descriptivo pero no demasiado largo" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "Describe tu Métrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "Dale una descripción a tu métrica para ayudar a otros a entender de qué se trata." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "Este es un buen lugar para ser más especÃfico sobre las reglas métricas menos obvias" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "Motivo de los cambios" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "Deja una nota para explicar qué cambios has hecho y por qué fueron necesarios." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "Esto aparecerá en el historial de revisiones de esta métrica para ayudar a todos a recordar por qué se realizó el cambio" @@ -796,7 +794,7 @@ msgstr "Edita tu Segmento" msgid "Create Your Segment" msgstr "Crea tu Segmento" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "Haz cambios en tu segmento y deja una nota explicativa." @@ -804,37 +802,37 @@ msgstr "Haz cambios en tu segmento y deja una nota explicativa." msgid "Select and add filters to create your new segment for the {0} table" msgstr "Selecciona y añade filtros para crear un nuevo segmento para la tabla {0}" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "Ponle nombre a tu segmento" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "Dale un nombre a tu segmento para ayudar a otros a encontrarla." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "Describe tu Segmento" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "Dale una descripción a tu segmento para ayudar a otros a entender de qué se trata." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "Este es un buen lugar para ser más especÃfico sobre las reglas de segmentación menos obvias" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "Esto aparecerá en el historial de revisiones de este segmento para ayudar a todos a recordar por qué se realizó el cambio" #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "Configuración" @@ -848,33 +846,29 @@ msgstr "Re-Leer esta tabla" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "Añadir" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "Formato de Email incorrecto" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "Nombre" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "Apellidos" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "Dirección de Email" @@ -910,7 +904,7 @@ msgstr "Miembros" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "Email" @@ -919,8 +913,8 @@ msgid "A group is only as good as its members." msgstr "Un grupo solo vale lo que valen sus miembros." #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "Admin" @@ -981,11 +975,11 @@ msgstr "Borrar Grupo" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "Hecho" @@ -994,9 +988,9 @@ msgid "Group name" msgstr "Nombre Grupo" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "Grupos" @@ -1025,10 +1019,10 @@ msgstr "Restablecer la contraseña" msgid "Deactivate" msgstr "Desactivar" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "Personas" @@ -1067,7 +1061,7 @@ msgstr "Hemos enviado una invitación a {0} con instrucciones para configurar su msgid "We've re-sent {0}'s invite" msgstr "Hemos vuelto a enviar la invitación de {0}" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "Vale" @@ -1099,7 +1093,7 @@ msgstr "Podrán volver a iniciar sesión y se les volverá a colocar en los grup msgid "Reset {0}'s password?" msgstr "¿Restablecer la contraseña de {0}?" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "Reiniciar" @@ -1138,19 +1132,19 @@ msgstr "Añadir alguien" msgid "Last Login" msgstr "Ultimo acceso" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Acceso via Google" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "Acceso via LDAP" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "Activar esta cuenta" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "Nunca" @@ -1192,7 +1186,7 @@ msgid " native queries for " msgstr "consultas nativas para" #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "Permisos" @@ -1249,115 +1243,115 @@ msgstr "MetaBot es el bot de Slack de Metabase. Puedes elegir a qué tiene acces msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "El grupo \"{0}\" puede tener acceso a un conjunto diferente de {1} que este grupo, lo que puede darle a este grupo acceso adicional a algún {2}." -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "El grupo \"{0}\" tiene un mayor nivel de acceso que este, lo que anulará esta configuración. Debes limitar o revocar el acceso del grupo \"{1}\" a este elemento." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "¿Limitar" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "¿Revocar" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "el acceso a pesar de que el grupo \"{0}\" tiene mayor acceso?" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "Limita el acceso" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "Revocar el acceso" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "¿Cambiar el acceso a esta base de datos a limitado?" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "Cambiar" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "Permitir escritura de consultas directas" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "Esto también cambiará el acceso de datos de este grupo a Sin restricciones para esta base de datos." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "Permitir" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "¿Revoca el acceso a todas las tablas?" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "Esto también revocará el acceso de este grupo a consultas sin formato para esta base de datos." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "Conceder acceso sin restricciones" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "Acceso no restingido" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "Acceso limitado" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "Sin acceso" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "Escribir consultas directas" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Puede escribir consultas directas" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "Mima la colección" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "Ver colección" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "Acceso a Datos" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "Ver tablas" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "Consultas SQL" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "Ver esquemas" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "Modelo de Datos" @@ -1500,8 +1494,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "Metabase {0} está disponible. Estás ejecutando {1}" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "Actualiza" @@ -1524,18 +1518,20 @@ msgstr "Elimina mapa personalizado" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "Borrar" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "Selecciona…" @@ -1736,7 +1732,7 @@ msgstr "La directiva de configuración {0} es desconocida" msgid "Setup" msgstr "Configura" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "General" @@ -1863,7 +1859,7 @@ msgid "Username or DN" msgstr "Nombre de Usuario o DN" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "Contraseña" @@ -2026,31 +2022,31 @@ msgstr "Olvidé mi contraseña" msgid "The email you use for your Metabase account" msgstr "El correo electrónico que utilizas para tu cuenta Metabase" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "Enviar correo electrónico de restablecimiento de contraseña" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "Consulta tu correo electrónico para obtener instrucciones sobre cómo restablecer tu contraseña." -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "Iniciar sesión en Metabase" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "O" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "Nombre de usuario o dirección de correo electrónico" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "Acceder" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "Parece que olvidé mi contraseña" @@ -2069,7 +2065,7 @@ msgstr "Por razones de seguridad, los enlaces de restablecimiento de contraseña "Si aún necesita restablecer tu contraseña, puedes {0}" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "Nueva contraseña" @@ -2082,38 +2078,38 @@ msgid "Create a new password" msgstr "Crear una nueva contraseña" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "Ha de cumplir las instrucciones anteriores" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "Confirmar nueva contraseña" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "Tiene que coincidir con la que acabas de poner" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "Tu contraseña ha sido restablecida." -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "Inicia sesión con tu nueva contraseña" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "Ha fallado" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2132,22 +2128,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "Los cuadros de mando, colecciones y pulsos guardados en esta colección también se archivarán." #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "Archivar" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "Este {0} ha sido archivado" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "Ver el archivo" @@ -2157,17 +2154,19 @@ msgstr "Desarchive este {0}" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "Nuestros datos" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "Aplica rayos-X a esta tabla" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "Aprende sobre esta tabla" @@ -2262,44 +2261,44 @@ msgstr "Pins" msgid "Drag something here to pin it to the top" msgstr "Arrastra algo aquà para pegarlo arriba" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "Colecciones" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "Arrastra aquà para despegarlo" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} elemento seleccionado" msgstr[1] "{0} elementos seleccionados" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "¿Mover {1} elemento(s)?" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "¿Mover \"{0}\"?" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "Mover" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "Edita esta colección" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "Archivar esta colección" @@ -2316,11 +2315,11 @@ msgstr "Nueva colección" msgid "Copied!" msgstr "¡Copiado!" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "Utiliza un túnel SSH para las conexiones a la base de datos" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." @@ -2328,7 +2327,7 @@ msgstr "Algunas instalaciones de bases de datos solo se pueden acceder conectán "Esta opción también proporciona una capa adicional de seguridad cuando no dispones de una VPN.\n" "Esto suele ser más lento que una conexión directa." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "Esta es una base de datos grande, asà que déjame elegir cuándo Metabase sincroniza y escanea" @@ -2338,47 +2337,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail msgstr "De forma predeterminada, Metabase realiza una sincronización ligera cada hora y un análisis diario intensivo de los valores de campo.\n" "Si tienes una base de datos grande, te recomendamos activarla y revisar cuándo y con qué frecuencia ocurren los escaneos de valores de campo." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0} para generar un ID y clave secreta de cliente para tu proyecto." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "Haz clic aquÃ" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "Elige \"Otro\" como tipo de aplicación. Llámalo como quieras" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0} para obtener un código de autenticación" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "con permisos de Google Drive" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "Para usar Metabase con estos datos, debes habilitar el acceso a la API en Google Developers Console." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "{0} para ir a la consola si aún no lo has hecho." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "¿Cómo te gustarÃa llamar esta base de datos?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "Siguiente" @@ -2397,7 +2396,7 @@ msgstr "Mueve este elemento" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "Editar esta pregunta" @@ -2410,7 +2409,7 @@ msgstr "Tipo acción" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "Ver el historial de revisiones" @@ -2426,7 +2425,7 @@ msgstr "Acción de archivar" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "Añadir a Cuadro de Mando" @@ -2437,7 +2436,7 @@ msgstr "Descarga los resultados" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "Compartiendo y Incrustando" @@ -2483,65 +2482,63 @@ msgstr "Basado en el esquema" msgid "A look at your" msgstr "Una vista a tus" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "Busca la lista" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "Buscar por {0}" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr "o introduce un ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "Introduce un ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "Introduce un número" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "Introduce un texto" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "No se encontraron {0} coincidentes." -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "Incluir cada opción en tu filtro probablemente no hará mucho…" -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "Lo siento. Algo salió mal." -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "Nos encontramos con un error. Puedes intentar refrescar la página, o simplemente volver atrás" -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "Sin descripción todavÃa" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "Nuevo {0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "Preguntado por {0}" @@ -2562,8 +2559,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "Revertido a una revisión anterior y {0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "Historial de Revisiones" @@ -2608,7 +2605,7 @@ msgid "Questions" msgstr "Preguntas" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "Pulsos" @@ -2645,7 +2642,7 @@ msgstr "Suscribir" msgid "You're subscribed. Thanks for using Metabase!" msgstr "Estás suscrito. ¡Gracias por usar Metabase!" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "Estamos un poco perdidos..." @@ -2654,14 +2651,14 @@ msgid "Temporary Password" msgstr "Contraseña Temporal" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "Esconder" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "Mostrar" @@ -2763,7 +2760,7 @@ msgstr "Seleccionado" msgid "Nothing to select" msgstr "Nada para seleccionar" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "Lo siento, no tienes permiso para ver eso." @@ -2771,8 +2768,8 @@ msgstr "Lo siento, no tienes permiso para ver eso." msgid "Unknown error encountered" msgstr "Error desconocido encontrado" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "Crea" @@ -2780,7 +2777,6 @@ msgstr "Crea" msgid "Create dashboard" msgstr "Crea un Cuadro de Mando" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "Tabla" @@ -2805,12 +2801,11 @@ msgstr "Intenta ajustar tu filtro para encontrar lo que estás buscando." msgid "View by" msgstr "Ver por" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "de" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "No se lo digas a nadie, pero eres mi favorito." @@ -2818,19 +2813,19 @@ msgstr "No se lo digas a nadie, pero eres mi favorito." msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "En cuanto conectas tus propios datos, puedo mostrarte algunas exploraciones automáticas llamadas rayos-X. Aquà hay algunos ejemplos con datos de muestra." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "Empieza aquÃ" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "Nuestra AnalÃtica" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "Ver todos los elementos" @@ -2842,44 +2837,45 @@ msgstr "¿Reemplazar o guardar como nuevo?" msgid "Replace original question, \"{0}\"" msgstr "Reemplazar la pregunta original, \"{0}\"" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "Guardar como nueva pregunta" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "Primero, guarda tu pregunta" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "Guardar pregunta" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "¿Cuál es el nombre de tu tarjeta?" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "Descripción" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "Es opcional pero, tan útil" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "¿En qué colección deberÃa ir esto?" @@ -2920,11 +2916,11 @@ msgstr "Archivar Cuadro de Mando" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "Asegúrate de hacer una selección para cada serie, o el filtro no funcionará en esta tarjeta." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "Este cuadro de mando parece estar vacÃo." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "¡Añade una pregunta para hacerlo útil!" @@ -2944,50 +2940,50 @@ msgstr "Desactivar Pantalla Completa" msgid "Enter fullscreen" msgstr "Activar Pantalla Completa" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "Guardando…" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "Añade una pregunta" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "Añade una pregunta a este cuadro de mando" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "Añadir filtro" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "Parámetros" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "Añade una caja de texto" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "Mover cuadro de mando" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "Editar Cuadro de Mando" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "Editar Disposición del Cuadro de Mando" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "Estás editando un cuadro de mando" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Selecciona el campo que debe filtrarse para cada tarjeta" @@ -3038,11 +3034,11 @@ msgstr "30 minutos" msgid "60 minutes" msgstr "60 minutos" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "Auto-Refresco" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "Actualizando en" @@ -3054,7 +3050,7 @@ msgstr "¿Eliminar esta pregunta?" msgid "Your dashboard was saved" msgstr "Se ha guardado tu cuadro de mando." -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "Verlo" @@ -3141,10 +3137,9 @@ msgstr "eliminado una pregunta del cuadro de mando - " msgid "received the latest data from" msgstr "recibido los últimos datos de" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "Desconocido" @@ -3261,7 +3256,7 @@ msgstr "Ver todos" msgid "Recently Viewed" msgstr "Visto Recientemente" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "No has consultado ningún cuadro de mando o pregunta recientemente" @@ -3275,11 +3270,11 @@ msgid "Unarchive" msgstr "Desarchivar" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "Actividad" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "Resultados de \"{0}\"" @@ -3341,6 +3336,9 @@ msgstr "URL Avatar" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "Común" @@ -3383,8 +3381,8 @@ msgstr "Longitud" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "Número" @@ -3431,93 +3429,93 @@ msgstr "Hora de Creación" msgid "Creation date" msgstr "Fecha de Creación" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "Producto" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "Usuario" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "Fuente" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "Precio" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "Unir por Tiempo" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "Unir por Tiempo" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "Unir por Fecha" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "Compartir" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "Propietario" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "Empresa" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "Suscripción" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "Puntuación" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "TÃtulo" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "Comentario" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "Coste" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Margen Bruto" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "Cumpleaños" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "Caja de Búsqueda" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "Una lista con todos los valores" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "Caja de Texto" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "En todas partes" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "La configuración predeterminada. Este campo se mostrará normalmente en tablas y gráficos." @@ -3525,7 +3523,7 @@ msgstr "La configuración predeterminada. Este campo se mostrará normalmente en msgid "Only in Detail Views" msgstr "Solo en vistas detalladas" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "Este campo solo se mostrará cuando veas los detalles de un solo registro. Úsalo para obtener información larga o que no sea útil en una tabla o gráfico." @@ -3539,7 +3537,8 @@ msgstr "Metabase nunca recuperará este campo. Úsalo para información sensible #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3554,8 +3553,9 @@ msgid "CumulativeCount" msgstr "RecuentoAcumulativo" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "Suma" @@ -3564,7 +3564,7 @@ msgid "CumulativeSum" msgstr "SumaAcumulativa" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "Distinto" @@ -3574,25 +3574,28 @@ msgid "StandardDeviation" msgstr "DesviacionEstandar" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "Media" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "MÃn" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "Máx" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "triste panda triste, errores léxicos detectados" @@ -3642,12 +3645,13 @@ msgid "What do you want to find out?" msgstr "¿Qué quieres saber?" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "Datos brutos" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "Recuento acumulativo" @@ -3691,174 +3695,174 @@ msgstr "Filtrado por" msgid "Sorted by " msgstr "Ordenado por" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "Verdadero" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "Falso" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Selecciona el campo de longitud" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "Latitud Superior" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "Longitud Izquierda" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "Latitud Inferior" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "Longitud Derecha" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "Es" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "No es" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "VacÃo" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "No VacÃo" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "Igual a" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "Distinto a" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "Mayor que" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "Menor que" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "Entre" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "Mayor o igual a" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "Menos o igual a" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "Contiene" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "No contiene" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "Empieza con" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "Termina en" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "Antes" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "Después" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "Dentro" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "Solo una tabla con las filas en la respuesta, sin operaciones adicionales." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "Número de filas" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "Número total de filas en la respuesta." -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "Suma de ..." -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "Suma de todos los valores de una columna." -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "Media de ..." -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "Promedio de todos los valores de una columna" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "Número de valores distintos de ..." -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "Número de valores únicos de una columna entre todas las filas en la respuesta." -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "Suma acumulada de ..." @@ -3867,7 +3871,7 @@ msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over t msgstr "Suma aditiva de todos los valores de una columna.\n" " e.g. los ingresos totales a lo largo del tiempo" -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "Recuento acumulado de filas" @@ -3876,27 +3880,27 @@ msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over msgstr "Recuento aditiva del número de filas.\n" " e.g. número total de ventas en el tiempo" -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "Desviación estándar de ..." -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "Número que expresa cuánto varÃan los valores de una columna entre todas las filas en la respuesta." -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "MÃnimo de ..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Valor mÃnimo de una columna" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "Máximo de ..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "Valor máximo de una columna" @@ -4070,68 +4074,70 @@ msgstr "Otras CategorÃas" msgid "Category, Type, Model, Rating, etc." msgstr "CategorÃa, Tipo, Modelo, Clasificación, etc." -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "Configuración de la cuenta" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "Salir de Configuración" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "Logs" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Ayuda" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "Sobre Metabase" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "Salir" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "Gracias por utilizar" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "Estás en la versión" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "Construida el" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "es una marca registrada de" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "y está construido con cariño en San Francisco, CA" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Configuración Metabase" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "Haz una pregunta" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "Añadir nuevo Cuadro de Mando" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "Nuevo pulso" @@ -4144,7 +4150,6 @@ msgstr "Referencia" msgid "Which metric?" msgstr "¿Qué Métrica?" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "La definición de métricas comunes para tu equipo hace que sea aún más fácil hacer preguntas" @@ -4162,7 +4167,7 @@ msgid "Custom" msgstr "Personalizado" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "Nueva pregunta" @@ -4170,13 +4175,13 @@ msgstr "Nueva pregunta" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "Utiliza el generador de preguntas para ver tendencias, listas de cosas o para crear tus propias métricas." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "Consulta nativa" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "Para preguntas más complicadas, puedes escribir tu propia consulta SQL o nativa." @@ -4280,7 +4285,7 @@ msgstr "Introduce un valor..." msgid "Enter a default value..." msgstr "Introduce un valor predeterminado..." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "Ha ocurrido un error" @@ -4528,7 +4533,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "Recomendamos mantener los pulsos pequeños y enfocados para ayudar a mantenerlos digeribles y útiles para todo el equipo." #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "Elige tus datos" @@ -4544,47 +4549,47 @@ msgstr "Emails" msgid "Slack messages" msgstr "Mensajes Slack" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "Enviado" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} se enviará a las" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "Mensajes" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "Enviar email ahora" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "Enviar a {0} ahora" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "Enviando…" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "Ha fallado el envÃo" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "No se envió porque el pulso no tiene resultados." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "Pulso enviado" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} debe ser configurado por un administrador." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4671,7 +4676,7 @@ msgstr "Número de filas por tiempo" msgid "Break out by {0}" msgstr "Distribuir por {0}" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "Resume este segmento" @@ -4725,15 +4730,15 @@ msgstr "Ascendente" msgid "Descending" msgstr "Descendente" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "a través del tiempo." -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "Media" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "Distintos" @@ -4929,6 +4934,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} Las alertas basadas en objetivos aún no son compatibles para gráficos con más de una lÃnea, por lo que esta alerta se enviará siempre que el gráfico tenga {1}." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "resultados" @@ -4944,47 +4950,47 @@ msgstr "Consejo:" msgid "usually" msgstr "generalmente" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "Elige un segmento o tabla" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "Selecciona una base de datos" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "Seleccionar..." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "Selecciona una tabla" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "No se encontraron tablas en esta base de datos." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "¿Falta una pregunta?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "Obtén más información sobre consultas anidadas" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "Campos" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "No se encontraron segmentos" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "Encuentra un segmento" @@ -5034,7 +5040,7 @@ msgstr "Añadir una agrupación" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5042,9 +5048,9 @@ msgstr "Añadir una agrupación" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5067,7 +5073,7 @@ msgstr "Agrupado por" msgid "None" msgstr "Ninguno" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "Esta pregunta está escrita en {0}" @@ -5079,11 +5085,11 @@ msgstr "Esconder Editor" msgid "Hide Query" msgstr "Esconder Consulta" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "Abrir Editor" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "Mostrar Consulta" @@ -5128,7 +5134,7 @@ msgstr "CANCELAR" msgid "Move question" msgstr "Mover pregunta" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "¿En qué colección deberÃa estar esto?" @@ -5182,7 +5188,7 @@ msgstr "{0} de esta pregunta" msgid "Convert this question to {0}" msgstr "Convertir esta pregunta en {0}" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "Esta pregunta se actualizará en aproximadamente {0}" @@ -5216,7 +5222,7 @@ msgstr "Si me das algunos datos puedo mostrarte algo genial. ¡Ejecuta una consu msgid "How do I use this thing?" msgstr "¿Cómo uso esta cosa?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "Obtener Respuesta" @@ -5284,7 +5290,7 @@ msgstr "recibir una alerta" msgid "Back to last run" msgstr "Volver a la última ejecución" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "Visualización" @@ -5296,7 +5302,7 @@ msgstr "Sin descripción" msgid "Use for current question" msgstr "Usar para la pregunta actual" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "Preguntas potencialmente útiles" @@ -5320,7 +5326,7 @@ msgstr "Todos los valores distintos de {0}" msgid "Number of {0} grouped by {1}" msgstr "Número de {0} agrupadas por {1}" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5354,12 +5360,12 @@ msgid "Filter by {0}" msgstr "Filtrar por {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "Número de {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "Ver todos los {0}" @@ -5379,32 +5385,33 @@ msgstr "Ver los datos de {0}" msgid "More" msgstr "Más" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "Expresión inválida" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "error no controlado" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Fórmula de campo" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "Piensa en esto como algo parecido a escribir una fórmula en un programa de hoja de cálculo: puedes usar números, campos de esta tabla, sÃmbolos matemáticos como + y algunas funciones. Asà puedes escribir algo como Subtotal - Cost." -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "Aprende más" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "Dale un nombre" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "Algo agradable y descriptivo" @@ -5484,7 +5491,7 @@ msgid "Enter desired number" msgstr "Introduce el número deseado" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "VacÃo" @@ -5552,41 +5559,41 @@ msgstr "Para utilizar varias cláusulas opcionales, puedes incluir al menos una msgid "Read the full documentation" msgstr "Lee la documentación completa" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "Filtro de Etiqueta" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "Tipo de Variable" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "Texto" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "Fecha" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Filtro de Campo" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "Campo para mapear a" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "Tipo de filtro" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "¿Obligatorio?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "Valor por defecto del filtro" @@ -5598,7 +5605,7 @@ msgstr "¿Archivar esta pregunta?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "Esta pregunta se eliminará de cualquier cuadro de mando o pulso que lo usen." -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "Pregunta" @@ -5610,8 +5617,8 @@ msgstr "Elige una pregunta para añadir" msgid "You are editing this page" msgstr "Estás editando esta página" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "Ver este {0}" @@ -5619,15 +5626,15 @@ msgstr "Ver este {0}" msgid "A subset of" msgstr "Un subconjunto de" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "Selecciona un tipo de campo" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5638,8 +5645,8 @@ msgid "by" msgstr "por" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "Tipo campo" @@ -5664,12 +5671,12 @@ msgid "Nothing important yet" msgstr "Nada importante todavÃa" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "Nada interesante todavÃa" @@ -5678,12 +5685,12 @@ msgid "Things to be aware of about this {0}" msgstr "Cosas a tener en cuenta acerca de este {0}" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "Nada de lo que estar enterado todavÃa" @@ -5729,7 +5736,7 @@ msgstr "¿Hay alguna cosa que los usuarios deben saber sobre este {0}?" msgid "Which 2-3 fields do you usually group this metric by?" msgstr "¿Con qué 2-3 campos se agrupa normalmente esta métrica?" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "Este es el lugar perfecto para comenzar si eres nuevo en los datos de tu empresa, o si solo deseas verificar lo que está sucediendo." @@ -5745,11 +5752,11 @@ msgstr "Motivo del cambio" msgid "Leave a note to explain what changes you made and why they were required" msgstr "Deja una nota para explicar qué cambios ha realizado y por qué fueron necesarios" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "Por qué esta base de datos es interesante" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "Cosas a tener en cuenta acerca de esta base de datos" @@ -5759,44 +5766,44 @@ msgid "Databases and tables" msgstr "Bases de datos y tablas" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "Detalles" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "Tablas en {0}" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "Nombre real en la base de datos" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "Por qué este campo es interesante" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "Cosas a tener en cuenta sobre este campo" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "Tipo de dato" @@ -5810,12 +5817,12 @@ msgstr "Los campos en esta tabla aparecerán aquà a medida que se añadan" msgid "Fields in {0}" msgstr "Campos en {0}" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "Nombre de campo" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "Aplica rayos-X a este campo" @@ -5846,11 +5853,11 @@ msgstr "Número de {0}" msgid "See raw data for {0}" msgstr "Ver datos de {0}" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "Por qué esta tabla es interesante" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "Cosas a tener en cuenta sobre esta tabla" @@ -5864,7 +5871,7 @@ msgstr "Las preguntas sobre esta tabla aparecerán aquà cuando se añadan" #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "Preguntas sobre {0}" @@ -5879,7 +5886,7 @@ msgstr "Creado hace {0} por {1}" msgid "Fields in this table" msgstr "Campos en esta tabla" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "Preguntas sobre esta tabla" @@ -5915,7 +5922,7 @@ msgstr "Ver todas las métricas" msgid "Segments and tables" msgstr "Segmentos y tablas" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "Tablas" @@ -6032,8 +6039,8 @@ msgstr "¿Hay alguien con quien tus usuarios puedan contactar si necesitan ayuda msgid "Who should users contact for help if they're confused about this data?" msgstr "¿A quién deben contactar los usuarios para obtener ayuda si están confundidos acerca de esta información?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "Por favor añade un mensaje de revisión" @@ -6049,15 +6056,15 @@ msgstr "Cosas a tener en cuenta acerca de esta métrica" msgid "How this Metric is calculated" msgstr "Cómo se calcula esta métrica" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "Nada sobre cómo se calculó aún" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "Otros campos por los que puedes agrupar esta métrica" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "Campos por los que puedes agrupar esta métrica" @@ -6082,20 +6089,20 @@ msgid "There are no revisions for this metric" msgstr "No hay revisiones para esta métrica" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "Historial de revisiones de {0}" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "Aplica rayos-X a esta métrica" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "Por qué este segmento es interesante" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "Cosas a tener en cuenta sobre este segmento" @@ -6119,60 +6126,60 @@ msgstr "Aprende a crear segmentos" msgid "Questions about this segment will appear here as they're added" msgstr "Las preguntas sobre este segmento aparecerán aquà cuando se añadan" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "No hay revisiones para este segmento" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "Campos en este segmento" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "Preguntas sobre este segmento" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "Aplica rayos-X a este segmento" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "Iniciar sesión" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "Buscar" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "Cuadro de Mando" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "Nueva Pregunta" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "Selecciona el tipo de base de datos que utilizas" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "Añade tus datos" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "Añadiré mis propios datos más tarde" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "Conectando con {0}" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "Necesitarás información sobre tu base de datos, como el nombre de usuario y la contraseña. Si no tienes eso ahora mismo, Metabase también viene con un conjunto de datos de muestra con los que puedes empezar." -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "Añadiré mis datos más tarde" @@ -6180,43 +6187,43 @@ msgstr "Añadiré mis datos más tarde" msgid "Control automatic scans" msgstr "Control de escaneos automáticos" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "Preferencias de uso de datos" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "Gracias por ayudarnos a mejorar" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "No recopilaremos ningún evento de uso" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Para ayudarnos a mejorar Metabase, nos gustarÃa recopilar cierta información sobre el uso a través de Google Analytics." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "Aquà hay una lista completa de todo lo que rastreamos y por qué." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "Permitir que Metabase recopile eventos de uso de forma anónima" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase {0} recopila información sobre tus datos o resultados de preguntas." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "nunca" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "Toda la información obtenida es completamente anónima." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "La recopilación puede desactivarse en cualquier momento en la sección de configuración." @@ -6264,24 +6271,24 @@ msgstr "Hola {0}, ¡Encantado de conocerte!" msgid "Create a password" msgstr "Crea una contraseña" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "Shhh..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "Confirma la contraseña" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "Shhh... otra vez, para asegurarnos que lo hacemos bien" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "El nombre de tu empresa o equipo" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "Departamento impresionante" @@ -6459,11 +6466,11 @@ msgstr "Inicia sesión con la dirección de correo electrónico de Google" msgid "User Details" msgstr "Detalles Usuario" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "Restablecer los valores predeterminados" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "mapa desconocido" @@ -6471,7 +6478,7 @@ msgstr "mapa desconocido" msgid "Grid map requires binned longitude/latitude." msgstr "El mapa de cuadrÃcula requiere longitud/latitud agrupada." -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "más" @@ -6508,31 +6515,31 @@ msgstr "Desmarcar" msgid "Rows {0}-{1} of {2}" msgstr "Filas {0}-{1} de {2}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "Datos truncados a {0} filas." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "No se pudo encontrar la visualización" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "No se pudo mostrar este gráfico con esta información." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "¡Sin resultados!" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "Esperando..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "Esto suele tardar unos {0}." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(Es un poco largo para un cuadro de mando)" @@ -6548,11 +6555,11 @@ msgstr "Selecciona un campo" msgid "error" msgstr "error" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "Pulsa y arrastra para cambiar el orden" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "Añade campos de la lista inferior" @@ -6692,19 +6699,19 @@ msgstr "Añadir regla" msgid "Update rule" msgstr "Actualizar regla" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "Visualización VacÃa" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "La visualización debe definir una variable estática 'identificadora':" -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "La visualización con ese identificador ya está registrada:" -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "No hay visualización para {0}" @@ -6712,11 +6719,11 @@ msgstr "No hay visualización para {0}" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "\"{0}\" es un campo no agregado: si tienes más de un valor en un punto en el eje X, los valores se sumarán." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "Este tipo de gráfico requiere al menos 2 columnas." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "Este tipo de gráfico no admite más de {0} series de datos." @@ -6757,7 +6764,7 @@ msgstr "Por favor, configura este gráfico en la configuración del gráfico" msgid "Edit Settings" msgstr "Editar Configuración" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "¡Faltan valores x!" @@ -6784,7 +6791,7 @@ msgid "Bubble size" msgstr "Tamaño de burbuja" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "LÃnea" @@ -6841,104 +6848,104 @@ msgstr "Nada" msgid "Linear Interpolated" msgstr "Lineal Interpolado" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "Escala Eje-X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "Series de tiempo" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "Lineal" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "Exponente" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "LogarÃtmico" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "Histograma" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "Ordinal" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "Escala Eje-Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "Mostrar lÃnea y marcas del Eje-X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Compacto" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "Rotar 45°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "Rotar 90°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "Mostrar lÃnea y marcas del Eje-Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Rango del Eje-Y automático" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "Utiliza un Eje-Y dividido cuando sea necesario" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "Mostrar etiqueta en el Eje-X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "Etiqueta Eje-X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "Mostrar etiqueta en el Eje-Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Etiqueta Eje-Y" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "Desviación Estándar" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "Area" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "Gráfico de área" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "Barra" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "Gráfico de barras" @@ -6964,19 +6971,19 @@ msgstr "Tipo Embudo" msgid "Bar chart" msgstr "Gráfico de barras" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "Gráfico de lÃneas" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "Selecciona las columnas de longitud y latitud en la configuración del gráfico." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "Por favor, selecciona un mapa de la región." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "Selecciona las columnas de región y métricas en la configuración del gráfico." @@ -6984,73 +6991,73 @@ msgstr "Selecciona las columnas de región y métricas en la configuración del msgid "Map" msgstr "Mapa" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "Tipo mapa" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "Mapa de la región" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "Mapa de pin" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "Tipo Pin" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "Baldosas" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "Marcadores" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "Campo Latitud" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "Campo Longitud" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "Campo Métrica" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "Campo Región" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "Radio" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "Difuminar" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "Opacidad MÃnima" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "Acercamiento Máximo" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "No se encontraron relaciones." -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "via {0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "Esta {0} está conectada a:" @@ -7062,7 +7069,7 @@ msgstr "Detalle del Objeto" msgid "object" msgstr "objeto" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "Total" @@ -7111,7 +7118,7 @@ msgid "Progress" msgstr "Progreso" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "Color" @@ -7202,13 +7209,13 @@ msgstr "Derecho" msgid "Show background" msgstr "Mostrar fondo" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "{0} agrupación" msgstr[1] "{0} agrupaciones" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "Agrupación Auto" @@ -7634,7 +7641,7 @@ msgstr "suma acumulativa" msgid "{0} and {1}" msgstr "{0} y {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} de {1}" @@ -8957,31 +8964,31 @@ msgstr "Ver todos los permisos de colecciones" msgid "Also change sub-collections" msgstr "También cambiar sub-colecciones" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Puede editar esta colección y sus contenidos" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Puede ver artÃculos en esta colección" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "Acceso a Colección" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "Este grupo tiene permiso para ver al menos una subcolección de esta colección." -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "Este grupo tiene permiso para editar al menos una subcolección de esta colección." -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "Ver subcolección" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "Recuerdame" @@ -9001,7 +9008,7 @@ msgstr "Añadir esta pregunta a un cuadro de mando" msgid "Create a new dashboard" msgstr "Crea un Cuadro de Mando" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "La página que pidió no ha sido encontrada." @@ -9009,11 +9016,11 @@ msgstr "La página que pidió no ha sido encontrada." msgid "Select a {0}" msgstr "Seleccione un(a) {0}" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "Guardar cuadros de mando, preguntas, y colecciones en \"{0}\"" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "Acceder cuadros de mando, preguntas, y colecciones en \"{0}\"" @@ -9033,12 +9040,12 @@ msgstr "Relacionado" msgid "More X-rays" msgstr "Más Rayos-X" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "No hay resultados" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabase no pudo encontrar ningún resultado para su busqueda." @@ -9248,10 +9255,10 @@ msgstr "No aplica" msgid "Windows domain" msgstr "Dominio de Windows" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "Etiquetas" @@ -9286,6 +9293,8 @@ msgstr "Compartir" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9300,33 +9309,33 @@ msgstr "Compartir" msgid "Display" msgstr "Visualización" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "Ejes" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "Formato" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "Pruebe estos rayos-X en función de tus datos." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "Hubo un problema al mostrar esta gráfico." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "Lo siento, no tienes permiso para ver etsa tarjeta." @@ -9346,21 +9355,21 @@ msgstr "Aplica rayos-X" msgid "Compare to the rest" msgstr "Compara con el resto" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "Utiliza la zona horaria de la máquina virtual Java" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "Te sugerimos que desactives esto a menos que estés forzando manualmente la zona horaria en\n" "muchas o la mayorÃa de tus consultas con estos datos." -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "Los cuadros de mando más importantes van aquÃ" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "Fija los cuadros de mando en {0} para que aparezcan en este espacio para todos" @@ -9384,12 +9393,12 @@ msgstr "Consejo: " msgid "Select a currency type" msgstr "Selecciona un tipo de moneda" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "Tipo Campo" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "Solución de problemas" @@ -9437,11 +9446,11 @@ msgstr "Duración (ms)" msgid "Currency" msgstr "Moneda" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "Elige un usuario o canal..." -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "Sin ajustes de formato" @@ -9614,15 +9623,15 @@ msgstr "Contador" msgid "Gauge ranges" msgstr "Rangos del contador" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "Campo a mostrar" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "último {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} era {1} {2}" @@ -9750,7 +9759,7 @@ msgstr "trimestre" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "Añadiendo {0} tarjetas al cuadro de mando {1}:n{2}" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "Error leyendo {0}:n{1}" @@ -10044,7 +10053,7 @@ msgstr "La limpieza del historial de tareas fue exitosa, {0} se eliminaron filas msgid "not" msgstr "no" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "Para obtener más información, visita" @@ -11045,6 +11054,7 @@ msgstr "Cómo se distribuye esta métrica entre diferentes números." msgid "Sessions by page where the session began" msgstr "Sesiones por página donde comenzó la sesión." +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11393,15 +11403,15 @@ msgstr "¿Puede ejecutarse de nuevo?" msgid "Triggers for {0}" msgstr "Disparadores para {0}" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "Tareas" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "Trabajos" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "Duplicado {0}" @@ -11413,7 +11423,7 @@ msgstr "Duplica este Ãtem" msgid "Archive this item" msgstr "Archiva este Ãtem" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "Duplicar Cuadro de Mando" @@ -11440,6 +11450,7 @@ msgid "Next {0}" msgstr "Siguiente {0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "Anterior {0}" @@ -11534,8 +11545,8 @@ msgstr "[Q]Q" msgid "This" msgstr "Este" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "Inválido" @@ -11543,11 +11554,11 @@ msgstr "Inválido" msgid "Add a time" msgstr "Añade una hora" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "Nada que comparar en el {0} anterior." -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "por {0}." @@ -11603,39 +11614,39 @@ msgstr "Error al agregar la directiva SQL a la pregunta guardada de BigQuery" msgid "Failed to notify {0} Database {1} updated" msgstr "Error al notificar {0} Base de datos {1} actualizada" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "Cargando controlador {0} {1}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "Cargar controlador {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "Controlador no registrado después de la carga: {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "Error: al intentar cambiar la propiedad {0} `:abstract?` de {1} a {2}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "Controlador {0} abstracto registrado" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "Controlador {0} registrado" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(superiores: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "Inicializando controlador {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "Razón:" @@ -11787,11 +11798,11 @@ msgstr "{0} dependencia {1} satisfecha? {2}" msgid "Plugins with unsatisfied deps: {0}" msgstr "Extensiones con dependencias no satisfechas: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "Extraer fichero {0} -> {1}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "Recurso no existe." @@ -12116,7 +12127,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreateDate]] por trimestre del año" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "Editar usuario" @@ -12124,12 +12135,12 @@ msgstr "Editar usuario" msgid "New user" msgstr "Nuevo usuario" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "Restablecer contraseña" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "Desactivar usuario" @@ -12406,11 +12417,11 @@ msgstr "Instrucciones de fallo" msgid "Archive this?" msgstr "¿Archivar esto?" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "Aprende cosas de nuestros datos" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "Utiliza DNS SRV al conectar" @@ -12420,7 +12431,7 @@ msgid "Using this option requires that provided host is a FQDN. If connecting t "leave this disabled." msgstr "Esta opción requiere que el host sea FQDN. Si se conecta a un clúster Atlas, es posible que deba habilitar esta opción. Si no sabe lo que esto significa, deje esto deshabilitado." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "Ejecutar consultas automáticamente al realizar un filtrado/resumen simple" @@ -12428,7 +12439,7 @@ msgstr "Ejecutar consultas automáticamente al realizar un filtrado/resumen simp msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Cuando esto está activo en Metabase, se ejecutarán consultas automáticamente cuando los usuarios realicen exploraciones simples con los botones Resumir y Filtrar al ver una tabla o gráfico. Puedes desactivar esto si las consultas de esta base de datos son lentas. Esta configuración no afecta la obtención de detalles ni a las consultas SQL." -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "Aprende cosas sobre esta base de datos" @@ -12436,25 +12447,25 @@ msgstr "Aprende cosas sobre esta base de datos" msgid "Archive this dashboard?" msgstr "¿Archivar este cuadro de mando?" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "Todos los resultados" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "Nuestras AnalÃticas" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "Suma aditiva de todos los valores de una columna.\\ne.g. ingresos totales a lo largo del tiempo." -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "Conteo aditivo del número de filas.\\ne.g. Número total de ventas en el tiempo." #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Filtro" @@ -12464,27 +12475,27 @@ msgid_plural "records" msgstr[0] "registro" msgstr[1] "registros" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "Navegar " -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "Escribir SQL" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "Pregunta Simple" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "Elige algunos datos, visualÃzalos y fÃltralos, resúmelos y analÃzalos fácilmente." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "Pregunta personalizada" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "Utiliza el editor avanzado para unir datos, crear columnas personalizadas, hacer cálculos matemáticos y más." @@ -12492,7 +12503,7 @@ msgstr "Utiliza el editor avanzado para unir datos, crear columnas personalizada msgid "Basic Metrics" msgstr "Indicadores básicos" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "Personalizado..." @@ -12508,7 +12519,7 @@ msgstr "Seleccione un lÃmite" msgid "Show maximum" msgstr "Mostrar máximo" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "Vista previa" @@ -12537,7 +12548,7 @@ msgid "Custom column" msgstr "Columna personalizada" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "Resumir" @@ -12554,11 +12565,10 @@ msgid "Pick the metric you want to see" msgstr "Elige la métrica que quieres ver" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "Elige una columna para agrupar" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "Elige tus datos iniciales" @@ -12570,7 +12580,7 @@ msgstr "Selecciona Ninguno" msgid "Select All" msgstr "Selecciona Todos" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "Elige una tabla..." @@ -12616,15 +12626,15 @@ msgid_plural "{0} breakouts" msgstr[0] "desglose de {0}" msgstr[1] "desgloses de {0}" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "Esconder filtros" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "Mostrar filtros" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "Iniciado desde" @@ -12654,11 +12664,11 @@ msgstr "Mostrando {0}" msgid "Summarized" msgstr "Resumido" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "Esconder editor" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "Mostrar editor" @@ -12666,7 +12676,7 @@ msgstr "Mostrar editor" msgid "Pick the metric you'd like to see" msgstr "Elige la métrica que quieres ver" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "{0} opciones" @@ -12694,7 +12704,7 @@ msgstr "Añadir una métrica" msgid "Profile" msgstr "Perfil" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "Esto suele ser bastante rápido, pero parece estar tardando un poco en este momento." @@ -12722,19 +12732,19 @@ msgstr "Segmento Desconocido" msgid "Unknown Filter" msgstr "Filtro Desconocido" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "Unión izquierda externa" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "Unión derecha externa" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "Unión interna" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "Unión externa completa" @@ -12786,7 +12796,7 @@ msgstr "Configuración de la base de datos de la aplicación" msgid "Could not find {0} driver." msgstr "No se pudo encontrar el controlador {0}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "Los controladores abstractos no pueden derivar de controladores padres concretos." @@ -12845,7 +12855,7 @@ msgstr "spark-deps.jar ya no es necesario para Metabase 0.32.0+. Puede eliminarl msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "Utilizando la clase NEWLY CREATED como cargador de clases de contexto compartido: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "No se ha podido copiar el fichero" @@ -13123,7 +13133,7 @@ msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "Elige las columnas que quieres incluir" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Al activar esto, Metabase ejecutará consultas automáticamente cuando los usuarios realicen exploraciones simples con los botones Resumir y Filtrar ea tablas o gráficos. Puedes desactivar esto si las consultas de esta base de datos son lentas. Esta configuración no afecta a los detalles ni a las consultas SQL." @@ -13161,3 +13171,439 @@ msgstr "Error al determinar las columnas esperadas de la consulta" msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "Excepción no controlada, se espera que el proceso `catch-exceptions` lo manejara." +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "Información de Diagnóstico" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "Selecciona el proceso de Metabase:" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "Todos los procesos de Metabase" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "Se ha cerrado la ventana sin haber completado la Autentificación con Google" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "Ha habido un problema validando con Google. Por favor, pregunta a un administrador." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "Entrar con email" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "El uso de esta opción requiere que el host proporcionado sea un FQDN. Si te conectas a un clúster de Atlas, es posible que debas habilitar esta opción. Si no sabes lo que significa esto, dejalo deshabilitado." + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "De manera predeterminada, Metabase realiza una sincronización por hora y un escaneo diario intensivo de valores de campo. Si tienes una base de datos grande, recomendamos activar esto y revisar cuándo y con qué frecuencia ocurren los escaneos de valor de campo." + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "Eliminar estas sugerencias" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "Eliminar estas sugerencias?" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "Estos ya no aparecerán en la página de inicio de ninguno de tus usuarios, pero siempre puedes obtener radiografÃas haciendo clic en Examinar datos en la navegación principal y luego haciendo clic en el icono del rayo en una de las tablas." + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "Esconder esta sección" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "Eliminar esta sección" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "\"Nuestros datos\" ya no aparecerá en la página de inicio de ninguno de tus usuarios, pero siempre puedes navegar por tus bases de datos y tablas haciendo clic en Examinar datos en la navegación principal." + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "Mi colección fantástica" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "Tiempo de cancelación" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "Tiempo de cancelación" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "Fecha de cancelación" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "Tiempo de eliminación" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "Tiempo de eliminación" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "Fecha de eliminación" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "Solo en vistas de detalle" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "No incluir" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "Este campo no será visible o seleccionable en las preguntas creadas con la aplicación. TodavÃa será accesible en consultas SQL/nativas." + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "Suma Acumulada" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "Desviacion estandar" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "debe tener al menos {0} caracteres de longitud" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "Debe tener al menos {0} caracteres de longitud" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "Nombre (requerido)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "Ejecutar texto seleccionado" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "Ejecutar consulta" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "(⌘ + intro)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "(Ctrl + intro)" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "Aquà es donde aparecerán tus resultados" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "No realizará cambios permanentes en una pregunta guardada a menos que haga clic en Guardar y elija reemplazar la pregunta original." + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "TodavÃa no hay widgets de filtro para este tipo de campo." + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "Buscar este campo" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "Por que esta métrica es interesante" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "Cosas a tener en cuenta sobre esta métrica" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "Cómo se calcula esta métrica" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "Tabla en la que está basada" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "(vacÃo)" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "Meta" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "Tendencia" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "Mostrar valores en puntos de datos" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "Valores a mostrar" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "Tantos como quepan bien" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "Todos" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "Los datos incluyen valores de dimensión faltantes." + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "Hay una fecha no válida: \"{0}\"" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "La consulta para este gráfico se ejecutó en {0} en lugar de {1} debido a restricciones de la base de datos o del controlador." + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "Este gráfico contiene consultas ejecutadas en varias zonas horarias: {0}" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "Se produjo un error al ejecutar la consulta." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "La base de datos H2 de salida ya existe: %s, eliminando." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "No es necesario migrar, utiliza el archivo H2 existente" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "¡La base de datos de destino ya contiene datos!" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "Información del sistema:n {0}" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "Configuración de la base de datos" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "Moviendo instancias de {0} que no están en una Colección a {1} Colección {2}" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "Cláusula '{{...}}' no válida: se esperaba un nombre de parámetro" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "las cláusulas '{{...}}' no pueden estar vacÃas." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "las cláusulas '[[...]]' deben contener al menos una cláusula '{{...}}'." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "Consulta no válida: se encontró '[[' o '{{' sin coincidencias ']]' o '}}'" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "Deberá elegir un valor para \"{0}\" antes de que se pueda ejecutar esta consulta." + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "No se puede encontrar el campo con ID: {0}" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "Error al cargar el espacio de nombres del controlador" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "No se pudo cargar el controlador {0}." + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "No se puede ejecutar la consulta: faltan los parámetros necesarios: {0}" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "No sé cómo analizar {0} {1}" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "No sé cómo hacer un alias de {0}, esperaba un identificador." + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "No sé cómo deshacer los valores de la clase {0}" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "Creando un nuevo grupo de conexiones para la base de datos {0} {1} ..." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "Zona horaria inválida \"{0}\"" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "No se puede establecer la zona horaria: cadena de formato SQL no válida o faltante para el controlador {0}." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "¿Implementaste set-timezone-sql?" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "Error al establecer la zona horaria \"{0}\"" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "Error de conexión a la base de datos" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "Error analizando JSON" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "Si mostrar o no datos en la página de inicio. Los administradores pueden desactivar esto para dirigir a los usuarios a un mejor contenido que los datos sin procesar" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "Si se muestran o no sugerencias de rayos X en la página de inicio. También estarán ocultos si hay paneles fijados. Los administradores pueden ocultar esto para dirigir a los usuarios a un mejor contenido que los datos sin procesar" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "Identifique el origen de las solicitudes HTTP por el valor de este encabezado, en lugar de su dirección remota." + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "No se pudo resolver la configuración {0}/{1}" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "Configuración inválida: {0}/{1}" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "alcanzó su objetivo" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "ido por debajo de su objetivo" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "Enviando Pulso ({0}: {1}) vÃa email" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "Pulso: {0}" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "Enviando Pulso ({0}: {1}) vÃa Slack" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "Enviando Alerta ({0}: {1}) vÃa email" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "Alerta Metabase: {0} tiene {1}" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "Enviando Alerta ({0}: {1}) vÃa Slack" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "Alerta: {0}" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "No se puede encontrar el selector de color JS en \"{0}\"" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "FIXME: Estos no son literales temporales válidos: {0} {1}. ¿Por qué estamos tratando de formatearlos como tales?" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "No se encontró información coincidente para unir con la tabla {0} \"{1}\" usando el campo {2} \"{3}\" a través de la clave foránea {4} \"{5}\"" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "No sé cómo obtener información sobre el campo: {0}" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "La consulta expiró después de {0}" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "Formateando filas con resultados utilizando la zona horaria {0}" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "Zona horaria inválida \"{0}\"" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "Guardar huella digital para {0}" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "Enviando correo electrónico de abandono!" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "Las transformaciones resultantes no se ajustan a las expectativas. Esperado: {0}" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "Se agotó el tiempo de espera después de {0}" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "Ningún ajustador temporal llamado {0}" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "Unidad inválida: {0}" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "No sé cómo analizar {0} usando el formato {1}" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "Al token le falta el valor para keypath {0}" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "EnvÃo de estadÃsticas de uso FALLIDO" + diff --git a/locales/fa.po b/locales/fa.po index ecd66e530247bb8b4d469abd89baa3dc739aadce..9afdf8fec069b44254b207b542762268f5230c75 100644 --- a/locales/fa.po +++ b/locales/fa.po @@ -33,19 +33,18 @@ msgid "Select a database type" msgstr "یک نوع پایگاه داده را انتخاب Ú©Ù†" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 #, fuzzy msgid "Save" msgstr "ذخیره کردن" @@ -113,7 +112,7 @@ msgstr "هرگز، اگر لازم داشته باشم به صورت دستی ا #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 #, fuzzy msgid "Saving..." msgstr "درØال ذخیره‌سازی..." @@ -153,16 +152,16 @@ msgstr "داخل این کادر:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -170,20 +169,20 @@ msgstr "داخل این کادر:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "لغو" @@ -195,33 +194,33 @@ msgstr "لغو" msgid "Delete" msgstr "ØØ°Ù" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "پایگاه داده" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "اضاÙÙ‡ کردن پایگاه داده" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "ارتباط" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "برنامه ریزی کردن" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -231,18 +230,18 @@ msgstr "برنامه ریزی کردن" msgid "Save changes" msgstr "ذخیره کردن تغییرات" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "اقدام" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "در Øال همگام سازی شمای دیتابیس" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -250,41 +249,41 @@ msgstr "در Øال همگام سازی شمای دیتابیس" msgid "Starting…" msgstr "در Øال شروع..." -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "موÙÙ‚ به همگام سازی نشد" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "همگام سازی شروع شد!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "در Øال بررسی مجدد مقادیر Ùیلد" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "بررسی انجام نگرÙت" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "اسکن شروع شد" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "منطقه خطر" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "نادیده گرÙتن مقادیر Ùیلد ذخیره شده" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "این پایگاه داده را Øذ٠کنید" @@ -293,18 +292,17 @@ msgid "Add database" msgstr "اضاÙÙ‡ کردن پایگاه داده" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "نام" @@ -324,23 +322,24 @@ msgstr "در Øال بارگذاری" msgid "Bring the sample dataset back" msgstr "مجموعه داده نمونه را بازگردانید" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "نمیتوانم به پایگاه داده وصل شوم لطÙا جزئیات اتصال را بررسی کنید." -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "با موÙقیت ایجاد شد!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "با موÙقیت ذخیره شد!" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "ویرایش" @@ -380,9 +379,9 @@ msgstr "ناموÙÙ‚" msgid "Success" msgstr "موÙقیت" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 #, fuzzy msgid "Preview" @@ -403,7 +402,7 @@ msgstr "نوع خاصی یاÙت نشد" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "سایر" @@ -432,7 +431,7 @@ msgstr "ستون" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "رؤیت" @@ -511,35 +510,34 @@ msgstr "یک جدول را پیدا کنید" msgid "Schemas" msgstr "Ø·Ø±Ø Ù‡Ø§" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "متریک‌ها" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "یک سنجش اضاÙÙ‡ Ú©Ù†" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "تعریÙ" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "ایجاد متریک برای اضاÙÙ‡ کردن آنها به نمایش کشویی در سازنده پرس Ùˆ جو" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -547,11 +545,11 @@ msgstr "ایجاد متریک برای اضاÙÙ‡ کردن آنها به نما msgid "Segments" msgstr "بخش ها" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "یک بخش اضاÙÙ‡ Ú©Ù†" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "ایجاد بخش ها برای اÙزودن آنها به Ùیلتر کشویی در کوری ساز" @@ -597,23 +595,23 @@ msgstr "تاریخچهâ£" msgid "Revision History for" msgstr "تاریخچه نسخه گذاری برای" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} - تنظیمات Ùیلد" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "کجا این Ùیلد در سراسر Metabase ظاهر Ù…ÛŒ شود" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Ùیلتر کردن این Ùیلد" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "هنگامی Ú©Ù‡ این Ùیلد در یک Ùیلتر استÙاده Ù…ÛŒ شود، Ú†Ù‡ اÙرادی باید برای وارد کردن مقدار مورد نظر برای Ùیلتر کردن، Ú†Ù‡ استÙاده کنند؟" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "هنوز برای این قیلد توضیØÛŒ نوشته نشده است" @@ -654,11 +652,11 @@ msgstr "Ùیلد جاری دارای کلید خارجی نیست یا متا د msgid "The selected field isn't a foreign key" msgstr "Ùیلد انتخابی کلید خارجی نیست" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "نمایش مقادیر" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "انتخاب کنید Ú©Ù‡ ارزش اصلی را از پایگاه داده نشان Ù…ÛŒ دهد یا این اطلاعات را نمایش داده یا مرتبط کنید." @@ -678,12 +676,12 @@ msgstr "نکته:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "شما ممکن است بخواهید نام Ùیلد را به روز کنید تا مطمئن شوید Ú©Ù‡ هنوز بر اساس گزینه های بازخوانی شما منطقی است." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "مقادیر Ùیلد ذخیره شده" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabase Ù…ÛŒ تواند مقادیر این Ùیلد را Ùعال کند تا Ùیلترهای جعبه Ú†Ú© را در داشبورد Ùˆ سوالات Ùعال کند." @@ -710,83 +708,83 @@ msgstr "تغییرات را نادیده بگیر!" msgid "Select any table to see its schema and add or edit metadata." msgstr "جدولی را برای مشاهد شما Ùˆ یا ویرایش متادیتا انتخاب نمایید." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 #, fuzzy msgid "Name is required" msgstr "نام مورد نیاز است" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "ØªÙˆØ¶ÛŒØ Ù…ÙˆØ±Ø¯ نیاز است" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "پیام بازبینی مورد نیاز است" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "یکپارچه‌سازی لازم است" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "متریک خود را ویرایش کنید" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "متریک خود را ایجاد کنید" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "تغییر در متریک خود را انجام دهید Ùˆ یک یادداشت توضیØÛŒ را ترک کنید." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "شما Ù…ÛŒ توانید معیارهای ذخیره شده را برای اÙزودن یک گزینه متریک نام به این جدول ایجاد کنید. معیارهای ذخیره شده شامل نوع تجمع، Ùیلد جمع شده Ùˆ به صورت اختیاری هر Ùیلتر اضاÙÙ‡ Ù…ÛŒ شود. به عنوان مثال، شما ممکن است از این برای ایجاد چیزی شبیه روش رسمی Ù…Øاسبه \"میانگین قیمت\" برای جدول سÙارشات استÙاده کنید." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "نتیجه:" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "نام متریک خود را" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "نام متریک خود را برای Ú©Ù…Ú© به دیگران پیدا کنید." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "چیزی توصیÙÛŒ اما نه خیلی طولانی" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "متریک خود را Ø´Ø±Ø Ø¯Ù‡ÛŒØ¯" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "توضیØات متریک خود را برای Ú©Ù…Ú© به دیگران درک کنید." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "این مکان بسیار خوبی است Ú©Ù‡ درمورد قوانین متریک کمتر آشکارتر باشد" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "دلیل تغییرات" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "یک یادداشت را برای ØªÙˆØ¶ÛŒØ Ø¢Ù†Ú†Ù‡ Ú©Ù‡ تغییراتی ایجاد کرده اید Ùˆ چرا آنها مورد نیاز بود را ترک کنید." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "این در تاریخ تجدید نظر برای این متریک نشان داده خواهد شد تا به همه Ú©Ù…Ú© کند Ú©Ù‡ به یاد داشته باشید Ú©Ù‡ چرا همه چیز تغییر کرده است" @@ -802,7 +800,7 @@ msgstr "بخش شما را ویرایش کنید" msgid "Create Your Segment" msgstr "ایجاد بخش شما" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "تغییرات را در بخش خود انجام دهید Ùˆ یک یادداشت توضیØÛŒ را ترک کنید." @@ -810,37 +808,37 @@ msgstr "تغییرات را در بخش خود انجام دهید Ùˆ یک یا msgid "Select and add filters to create your new segment for the {0} table" msgstr "برای ایجاد بخش جدید خود برای جدول {0} را انتخاب کنید Ùˆ Ùیلترها را اضاÙÙ‡ کنید" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "بخش خود را بنویسید" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "بخش خود را به نام برای Ú©Ù…Ú© به دیگران پیدا کنید." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "بخش خود را توصی٠کنید" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "Ø´Ø±Ø Ø®ÙˆØ¯ را به بخش خود بدهید تا دیگران را در درک آنچه در مورد آن هستید Ú©Ù…Ú© کنید." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "این مکان خوبی است Ú©Ù‡ در مورد قوانین جزئی کمتر آشکار باشد" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "این در تاریخ تجدید نظر برای این بخش نشان داده خواهد شد تا به همه Ú©Ù…Ú© کند Ú©Ù‡ به یاد داشته باشید Ú©Ù‡ چرا همه چیز تغییر کرده است" #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "تنضیمات" @@ -854,33 +852,29 @@ msgstr "دوباره این جدول را اسکن کنید" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "اضاÙÙ‡ کردن" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "یک آدرس ایمیل Ùرمت معتبر نیست" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "نام" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "نام خانوادگی" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "آدرس ایمیل" @@ -918,7 +912,7 @@ msgstr "اعضا" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "ایمیل" @@ -927,8 +921,8 @@ msgid "A group is only as good as its members." msgstr "گروه Ùقط به عنوان اعضای آن است." #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "مدیر/ مدیر سیستم" @@ -988,11 +982,11 @@ msgstr "Øذ٠گروه" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "انجام شد" @@ -1001,9 +995,9 @@ msgid "Group name" msgstr "نام گروه" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "گروه‌ها" @@ -1032,10 +1026,10 @@ msgstr "بازیابی گذرواژه" msgid "Deactivate" msgstr "غیرÙعال" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "مردم" @@ -1076,7 +1070,7 @@ msgstr "ما دعوت نامه ای برای {0} با دستورالعمل ها msgid "We've re-sent {0}'s invite" msgstr "دعوت {0} را دوباره Ùرستادیم" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "باشه" @@ -1108,7 +1102,7 @@ msgstr "آنها دوباره قادر به ورود به سیستم خواهن msgid "Reset {0}'s password?" msgstr "رمز عبور {0} را دوباره تنظیم کنید؟" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "بارگذازی مجدد" @@ -1147,19 +1141,19 @@ msgstr "کسی را اضاÙÙ‡ کنید" msgid "Last Login" msgstr "آخرین ورود" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "ثبت نام شده به وسیله Ú¯ÙˆÚ¯Ù„" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "ثبت نام شده به وسیله LDAP" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "این اکانت را مجددا Ùعال کنید" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "هرگز" @@ -1200,7 +1194,7 @@ msgid " native queries for " msgstr " نمایش داده بومی برای" #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "دسترسی ها" @@ -1257,115 +1251,115 @@ msgstr "MetaBot ربات Slack Metabase است. شما Ù…ÛŒ توانید آنچ msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "گروه \"{0}\" ممکن است به یک مجموعه متÙاوت از {1} از این گروه دسترسی داشته باشد، Ú©Ù‡ ممکن است این گروه دسترسی اضاÙÛŒ به برخی {2} را داشته باشد." -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "گروه \"{0}\" Ø³Ø·Ø Ø¯Ø³ØªØ±Ø³ÛŒ بیشتری نسبت به این دارد Ú©Ù‡ این تنظیم را برطر٠می کند. شما باید \"{1}\" دسترسی گروه به این مورد را Ù…Øدود یا لغو کنید." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "Ù…Øدودیت" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "لغو" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "Øتی اگر {0} دسترسی بیشتری داشته باشد" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "Ù…Øدودیت دسترسی" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "لغو دسترسی" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "تغییر دسترسی به این پایگاه داده به Ù…Øدود؟" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "تغییر" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "اجازه نوشتن پرس Ùˆ جو خام را بدهید؟" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "این امر همچنین دسترسی داده های این گروه را به Unrestricted برای این پایگاه داده تغییر خواهد داد." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "مجاز" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "دسترسی به تمام جداول را لغو کنید؟" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "این همچنین دسترسی این گروه به درخواستهای خام برای این پایگاه داده را لغو خواهد کرد." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "دسترسی غیر Ù…Øدود" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "دسترسی نامØدود" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "دسترسی Ù…Øدود" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "دسترسی ندارید" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "نامه های خام را بنویسید" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Ù…ÛŒ توانید پرس Ùˆ جوهای خام را بنویسید" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "مجموعه گردنبند" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "مشاهده مجموعه" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "دسترسی به داده ها" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "مشاهده جداول" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "SQL Queries" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "نمایش Ø·Ø±Ø Ù‡Ø§" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "مدل داده" @@ -1508,8 +1502,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "Metabase {0} در دسترس است شما در Øال اجرا {1}" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "به روز رسانی" @@ -1532,18 +1526,20 @@ msgstr "Øذ٠نقشه سÙارشی" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "پاک کردن" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "اتخاب..." @@ -1746,7 +1742,7 @@ msgstr "تنظیم ناشناخته {0}" msgid "Setup" msgstr "برپایی" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "عمومی" @@ -1873,7 +1869,7 @@ msgid "Username or DN" msgstr "نام کاربری یا DN" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "کلمه عبور" @@ -2036,31 +2032,31 @@ msgstr "Ùراموشی پسورد / پسورد خود را Ùراموش کرده msgid "The email you use for your Metabase account" msgstr "ایمیل شما برای Øساب Metabase شما استÙاده Ù…ÛŒ شود" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "ارسال ایمیل بازیابی پسورد" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "برای دریاÙت دستورالعمل در مورد چگونگی بازنشانی گذرواژه خود، ایمیل خود را بررسی کنید." -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "به Metabase وارد شوید" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "یا" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "نام کاربری یا آدرس ایمیل" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "ورود" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "به نظر Ù…ÛŒ رسد رمز عبور من را Ùراموش کرده ام" @@ -2079,7 +2075,7 @@ msgstr "به دلایل امنیتی، لینک های بازنشانی رمز "برای بازنشانی گذرواژه خود، میتوانید {0} را انتخاب کنید." #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "رمز عبور جدید" @@ -2092,38 +2088,38 @@ msgid "Create a new password" msgstr "پسورد جدید بسازید" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "مطمئن شوید Ú©Ù‡ ایمن مانند دستورالعمل بالا است" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "تایید پسورد جدید" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "اطمینان Øاصل کنید Ú©Ù‡ آن را با آنکه وارد کردید مطابقت دهید" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "گذرواژه شما تنظیم مجدد شده است" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "با گذرواژه جدید خود وارد شوید" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "ذخیره سازی ناموÙÙ‚" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2142,22 +2138,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "داشبورد، مجموعه ها Ùˆ پالس ها در این مجموعه نیز بایگانی خواهند شد." #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "آرشیو" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "این {0} بایگانی شده است" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "آرشیو را ببینید" @@ -2167,17 +2164,19 @@ msgstr "این را {0} بایگانی کنید" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "اطلاعات ما" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "اشعه ایکس این جدول" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "درباره این جدول اطلاعاتی کسب کنید" @@ -2272,43 +2271,43 @@ msgstr "پین" msgid "Drag something here to pin it to the top" msgstr "چیزی را در اینجا بکشید تا آن را به بالا ببرید" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "مجموعه‌ها" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "برای un-pin به اینجا بکشید" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} مورد انتخاب شده است" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "{0} موارد را انتقال دهید؟" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "Øرکت \"{0}\"ØŸ" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "انتقال" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "این مجموعه را ویرایش کنید" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "بایگانی این مجموعه" @@ -2325,11 +2324,11 @@ msgstr "مجموعه جدید" msgid "Copied!" msgstr "Ú©Ù¾ÛŒ شده!" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "برای اتصال به پایگاه داده از یک تونل SSH استÙاده کنید" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." @@ -2337,7 +2336,7 @@ msgstr "برخی از تاسیسات پایگاه داده تنها با اتص "این گزینه همچنین یک لایه اضاÙÛŒ امنیتی را هنگامی Ú©Ù‡ یک VPN در دسترس نیست Ùراهم Ù…ÛŒ کند.\n" "Ùعال کردن این معمولا کمتر از یک اتصال مستقیم است." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "این یک پایگاه داده بزرگ است، بنابراین اجازه دهید زمانی Ú©Ù‡ Metabase همگام سازی Ùˆ اسکن کند، انتخاب کنم" @@ -2347,47 +2346,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail msgstr "به طور پیش Ùرض، Metabase یک همگام سازی ساعته سبک Ùˆ یک روزه اسکن شدید از مقادیر Ùیلد را Ù…ÛŒ دهد.\n" "اگر شما یک پایگاه داده بزرگ دارید، توصیه Ù…ÛŒ کنیم این را به کار ببندید Ùˆ بررسی کنید Ú©Ù‡ Ú†Ù‡ زمانی Ùˆ Ú†Ù‡ مقدار ارزش Ùیلد اتÙاق Ù…ÛŒ اÙتد." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0} برای ایجاد شناسه مشتری Ùˆ مشتری راز برای پروژه شما." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "اینجا کلیک کنید" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "به عنوان نوع برنامه، \"دیگر\" را انتخاب کنید. نام هر آنچه را Ú©Ù‡ دوست دارید." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0} برای دریاÙت کد Auth" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "با مجوزهای Google Drive" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "برای استÙاده از Metabase با این داده ها باید دسترسی API را در کنسول Google Developers ها Ùعال کنید." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "{0} برای رÙتن به کنسول اگر قبلا چنین کاری نکرده اید." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "چگونه Ù…ÛŒ خواهید به این پایگاه داده مراجعه کنید؟" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "بعدی" @@ -2406,7 +2405,7 @@ msgstr "این گزینه را انتقال بدین" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "این سوال را ویرایش کنید" @@ -2419,7 +2418,7 @@ msgstr "نوع اقدام" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "مشاهده تاریخچه ویرایش" @@ -2435,7 +2434,7 @@ msgstr "اقدام بایگانی" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "اضاÙÙ‡ کردن به داشبورد" @@ -2446,7 +2445,7 @@ msgstr "نتایج را دانلود کنید" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "به اشتراک گذاری Ùˆ تعبیه" @@ -2492,65 +2491,63 @@ msgstr "بر اساس طرØ" msgid "A look at your" msgstr "یک نگاه به تو" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "جستجو در لیست" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "جستجو توسط {0}" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr " یا یک شناسه وارد کنید" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "یک شناسه وارد کنید" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "شماره را وارد کنید" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "بعضی از متن ها را وارد کنید" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "هیچ تطابق {0} یاÙت نشد" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "از جمله هر گزینه ای در Ùیلتر شما اØتمالا زیاد کار نمی کند ..." -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "چیزی اشتباه رÙته است" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "ما به خطا رسیده ایم شما Ù…ÛŒ توانید صÙØÙ‡ را تمیز کنید یا Ùقط به عقب برگردید." -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "هنوز توضیØÛŒ ندارید" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "جدید {0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "درخواست شده توسط {0}" @@ -2571,8 +2568,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "بازگشت به یک نسخه پیشین Ùˆ {0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "تاریخچه ویرایشهای" @@ -2617,7 +2614,7 @@ msgid "Questions" msgstr "سوال" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "پالس ها" @@ -2654,7 +2651,7 @@ msgstr "اشتراک در" msgid "You're subscribed. Thanks for using Metabase!" msgstr "شما مشترک هستید با تشکر برای استÙاده از Metabase!" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "ما Ú©Ù…ÛŒ Ú¯Ù… شده ..." @@ -2663,14 +2660,14 @@ msgid "Temporary Password" msgstr "گذرواژه موقت" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "پنهان" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "نمایش دادن" @@ -2772,7 +2769,7 @@ msgstr "انتخاب کنید" msgid "Nothing to select" msgstr "هیچ چیز برای انتخاب" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "با عرض پوزش، شما مجاز به دیدن آن نیستید" @@ -2780,8 +2777,8 @@ msgstr "با عرض پوزش، شما مجاز به دیدن آن نیستید" msgid "Unknown error encountered" msgstr "خطای ناشناخته رخ داده است" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "بسازید" @@ -2789,7 +2786,6 @@ msgstr "بسازید" msgid "Create dashboard" msgstr "ایجاد داشبورد" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "جدول" @@ -2814,12 +2810,11 @@ msgstr "سعی کنید Ùیلتر خود را برای پیدا کردن آنچ msgid "View by" msgstr "مشاهده توسط" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "از" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "به کسی نگویید، اما شما مورد علاقه من است." @@ -2827,19 +2822,19 @@ msgstr "به کسی نگویید، اما شما مورد علاقه من است msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "هنگامی Ú©Ù‡ دادههای خود را به هم وصل میکنید، میتوانم به شما برخی از کاوشهای خودکار را به نام اشعه ایکس نشان دهم. در اینجا چند نمونه با داده های نمونه است." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "از اینجا شروع کنید" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "تجزیه Ùˆ تØلیل ما" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "همه موارد را مرور کنید" @@ -2851,44 +2846,45 @@ msgstr "جایگزین یا ذخیره شده به عنوان جدید؟" msgid "Replace original question, \"{0}\"" msgstr "سوال اصلی را تغییر دهید، \"{0}\"" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "به عنوان سوال جدید ذخیره کنید" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "اول، سوال خود را ذخیره کنید" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "صرÙÙ‡ جویی در سوال" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "نام کارت شما چیست؟" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "توضیØات" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "این اختیاری است اما اوه، خیلی Ù…Ùید است" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "کدام مجموعه باید این باشد؟" @@ -2929,11 +2925,11 @@ msgstr "داشبورد بایگانی" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "اطمینان Øاصل کنید Ú©Ù‡ انتخاب برای هر سری، یا Ùیلتر بر روی این کارت کار نخواهد کرد." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "این داشبورد خالی است." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "یک سوال برای شروع Ù…Ùید بودن اضاÙÙ‡ کنید" @@ -2953,50 +2949,50 @@ msgstr "خروج از تمام صÙØÙ‡" msgid "Enter fullscreen" msgstr "ورود به Øالت تمام صÙØÙ‡" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "درØال ذخیره‌ سازی" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "سوالی اضاÙÙ‡ کنید" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "یک سوال به این داشبورد اضاÙÙ‡ کنید" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "یک Ùیلتر اضاÙÙ‡ کنید" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "مولÙÙ‡ های" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "یک جعبه متن را اضاÙÙ‡ کنید" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "Øرکت داشبورد" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "ویرایش داشبورد" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "ویرایش Ø·Ø±Ø Ø¨Ù†Ø¯ÛŒ داشبورد" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "شما در Øال ویرایش داشبورد هستید" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Ùیلد را انتخاب کنید Ú©Ù‡ باید برای هر کارت Ùیلتر شود" @@ -3047,11 +3043,11 @@ msgstr "Û³Û° دقیقه" msgid "60 minutes" msgstr "Û¶Û° دقیقه" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "خودکار تازه کردن" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "بازخوانی در" @@ -3063,7 +3059,7 @@ msgstr "این سوال پاک شود؟" msgid "Your dashboard was saved" msgstr "پایگاه داده شما ذخیره شده است" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "آن را ببینید" @@ -3150,10 +3146,9 @@ msgstr "یک سوال از داشبورد Øذ٠شد -" msgid "received the latest data from" msgstr "آخرین اطلاعات دریاÙت شده از" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "ناشناخته" @@ -3270,7 +3265,7 @@ msgstr "نمایش همه" msgid "Recently Viewed" msgstr "به تازگی بازدید شده" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "شما اخیرا به هیچ داشبورد یا سوالی نگاه نکردید" @@ -3284,11 +3279,11 @@ msgid "Unarchive" msgstr "بازخوانی" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "Ùعالیت" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "نتایج برای \"{0}\"" @@ -3350,6 +3345,9 @@ msgstr "URL تصویر آواتار" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "مشترک" @@ -3392,8 +3390,8 @@ msgstr "عرض جغراÙیایی" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "شماره" @@ -3439,93 +3437,93 @@ msgstr "زمان ایجاد" msgid "Creation date" msgstr "تاریخ ایجاد" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "تولید - Ù…Øصول" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "کاربر" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "منبع" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "قیمت" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "تاریخ تایمر" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "زمان پیوستن" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "تاریخ عضویت" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "اشتراک گذاری" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "صاØب" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "شرکت" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "اشتراک، ابونمان" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "امتیاز" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "عنوان" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "اظهار نظر" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "هزینه" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Øاشیه ناخالص" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "تاریخ تولد" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "کادر جستوجو" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "لیستی از تمام ارزش ها" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "جعبه ورودی ساده" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "هر کجا" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "تنظیم پیش Ùرض این Ùیلد به طور معمول در جداول Ùˆ نمودار نمایش داده خواهد شد." @@ -3533,7 +3531,7 @@ msgstr "تنظیم پیش Ùرض این Ùیلد به طور معمول در ج msgid "Only in Detail Views" msgstr "Ùقط در نمایش جزئیات" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "این قسمت Ùقط در هنگام مشاهده جزئیات یک رکورد تنها نمایش داده Ù…ÛŒ شود. برای اطلاعاتی Ú©Ù‡ طولانی است یا در جدول یا نمودار سودمند نیست، از این استÙاده کنید." @@ -3547,7 +3545,8 @@ msgstr "Metabase هرگز این Ùیلد را بازیابی نخواهد کر #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3562,8 +3561,9 @@ msgid "CumulativeCount" msgstr "جمع انباشته" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "جمع" @@ -3572,7 +3572,7 @@ msgid "CumulativeSum" msgstr "مجموع جمله" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "متمایز" @@ -3581,25 +3581,28 @@ msgid "StandardDeviation" msgstr "انØرا٠معیار" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "میانگین" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "کمترین" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "بیشترین" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "غم انگیز غم انگیز پاندا، اشتباهات لایسنس شناسایی شده است" @@ -3647,12 +3650,13 @@ msgid "What do you want to find out?" msgstr "Ú†Ù‡ Ù…ÛŒ خواهید بیرون بیایید؟" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "داده های خام" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "شمارش تجمعی" @@ -3696,174 +3700,174 @@ msgstr "Ùیلتر شده توسط" msgid "Sorted by " msgstr "مرتب شده بر اساس" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "درست است" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "نادرست" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Ùیلد طول جغراÙیایی را انتخاب کنید" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "طول عرضی بالا را وارد کنید" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "طول جغراÙیایی را وارد کنید" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "عرض پایین را وارد کنید" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "طول جغراÙیایی را وارد کنید" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "است" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "نیست" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "خالی است" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "خالی نیست" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "مساوی با" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "برابر نیست با" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "بزرگتر از" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "کمتر از" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "بین" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "بزرگتر یا مساوی با" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "کمتر یا برابر است" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "شامل" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "شامل نمی شود" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "شروع Ù…ÛŒ شود با" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "به پایان Ù…ÛŒ رسد با" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "قبل از" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "بعد از" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "داخل" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "Ùقط یک جدول با ردی٠در پاسخ، هیچ عملیات اضاÙÛŒ." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "تعداد ردی٠ها" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "تعداد ردی٠ها در پاسخ." -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "مجموع ..." -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "مجموع تمام مقادیر یک ستون." -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "میانگین ..." -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "میانگین تمام مقادیر یک ستون" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "تعداد مقادیر متمایز ..." -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "تعداد مقادیر منØصر به Ùرد یک ستون در میان تمام ردی٠در پاسخ." -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "جمع تجمعی ..." @@ -3871,7 +3875,7 @@ msgstr "جمع تجمعی ..." msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "مجموع اÙزودنی تمام مقادیر یک ستون. \\\\ ne.x. درآمد Ú©Ù„ در طول زمان." -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "تعداد تجمعی ردیÙ" @@ -3879,27 +3883,27 @@ msgstr "تعداد تجمعی ردیÙ" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "تعداد اÙزودنی تعداد ردیÙها. \\\\ ne.x. تعداد Ú©Ù„ Ùروش در طول زمان." -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "انØرا٠استاندارد ..." -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "شماره ای Ú©Ù‡ بیان Ù…ÛŒ کند مقدار مقادیر یک ستون در میان تمام ردی٠ها در جواب متÙاوت است." -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "Øداقل از ..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Øداقل مقدار یک ستون" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "Øداکثر ..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "Øداکثر مقدار یک ستون" @@ -4073,68 +4077,70 @@ msgstr "سایر دسته بندی ها" msgid "Category, Type, Model, Rating, etc." msgstr "رده، نوع، مدل، رتبه Ùˆ غیره" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "تنظیمات Øساب" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "خروج از مدیر" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "سیاههها" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Ú©Ù…Ú©" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "درباره Metabase" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "خروج" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "با تشکر برای استÙاده" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "شما در نسخه هستید" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "ساخته شده بر پایه ÛŒ" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "علامت تجاری است" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "Ùˆ با مراقبت در سان Ùرانسیسکو، کالیÙرنیا ساخته شده است" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "مدیر متاباکس" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "یک سوال بپرس" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "داشبورد جدید" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "پالس جدید" @@ -4147,7 +4153,6 @@ msgstr "ارجاع" msgid "Which metric?" msgstr "کدام متریک؟" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "تعری٠معیارهای رایج برای تیم شما باعث Ù…ÛŒ شود Ú©Ù‡ سؤالاتتان را Øتی ساده تر کنید" @@ -4165,7 +4170,7 @@ msgid "Custom" msgstr "سÙارشی" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "سوال جدید" @@ -4173,13 +4178,13 @@ msgstr "سوال جدید" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "از سازنده سؤال ساده برای دیدن روند، Ùهرستی از چیزها یا برای ایجاد معیارهای خود استÙاده کنید." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "پرس Ùˆ جو بومی" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "برای سوالات پیچیده تر، شما Ù…ÛŒ توانید پرس Ùˆ جو SQL خود Ùˆ یا بومی خود را بنویسید." @@ -4280,7 +4285,7 @@ msgstr "یک مقدار را وارد کنید" msgid "Enter a default value..." msgstr "مقدار پیش Ùرض را وارد کنید ..." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "یک خطا رخ داده است" @@ -4527,7 +4532,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "ما توصیه Ù…ÛŒ کنیم پالس ها را Ú©ÙˆÚ†Ú© Ù†Ú¯Ù‡ داریم Ùˆ متمرکز شویم تا بتوانیم آنها را هضم کنیم Ùˆ برای Ú©Ù„ تیم Ù…Ùید باشیم." #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "اطلاعات خود را انتخاب کنید" @@ -4543,47 +4548,47 @@ msgstr "ایمیل ها" msgid "Slack messages" msgstr "پیام های خالی" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "ارسال شد" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} Ùرستاده خواهد شد" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "پیام ها" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "اکنون ایمیل بÙرست" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "ارسال به {0} در Øال Øاضر" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "در Øال ارسال…" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "ارسال نشد" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "Ùرستاده نشد زیرا پالس هیچ نتیجه ای ندارد" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "پالس ارسال شد" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} باید توسط یک مدیر تنظیم شود." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "لاغر" @@ -4670,7 +4675,7 @@ msgstr "شمار ردی٠ها بر اساس زمان" msgid "Break out by {0}" msgstr "شکستن توسط {0}" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "خلاصه این بخش" @@ -4724,15 +4729,15 @@ msgstr "صعودی" msgid "Descending" msgstr "نزولی" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "اضاÙÙ‡ کاری" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "میانگین" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "تمایز" @@ -4927,6 +4932,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} هشدارهای مبتنی بر هد٠برای نمودارها با بیش از یک خط هنوز پشتیبانی نمی شوند بنابراین این هشدار هر بار Ú©Ù‡ {1} نمودار ارسال Ù…ÛŒ شود ارسال Ù…ÛŒ شود." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "نتایج" @@ -4942,47 +4948,47 @@ msgstr "نکته" msgid "usually" msgstr "معمولا" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "یک بخش یا جدول را انتخاب کنید" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "یک پایگاه داده را انتخاب کنید" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "انتخاب کنید..." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "یک جدول را انتخاب کنید" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "هیچ جداول موجود در این پایگاه داده یاÙت نشد." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "یک سوال Ú¯Ù… شده است؟" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "درباره پرس Ùˆ جوهای توزیع شده بیشتر بدانید" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "زمینه های" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "هیچ بخش یاÙت نشد" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "یک قطعه را پیدا کنید" @@ -5032,7 +5038,7 @@ msgstr "یک گروه را اضاÙÙ‡ کنید" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5040,9 +5046,9 @@ msgstr "یک گروه را اضاÙÙ‡ کنید" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5065,7 +5071,7 @@ msgstr "گروه بندی شده توسط" msgid "None" msgstr "هیچ یک" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "این سوال در {0} نوشته شده است." @@ -5077,11 +5083,11 @@ msgstr "مخÙÛŒ کردن ویرایشگر" msgid "Hide Query" msgstr "پنهان کردن پرس Ùˆ جو" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "بازکردن ویرایشگر" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "نمایش پرس Ùˆ جو" @@ -5126,7 +5132,7 @@ msgstr "لغو" msgid "Move question" msgstr "انتقال سوال" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "کدام مجموعه باید این باشد؟" @@ -5180,7 +5186,7 @@ msgstr "{0} برای این سوال" msgid "Convert this question to {0}" msgstr "این سوال را به {0} تبدیل کنید" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "این سوال تقریبا {0} را برای تازه کردن انجام خواهد داد" @@ -5213,7 +5219,7 @@ msgstr "اگر شما برخی از داده ها را به من بدهید، Ù… msgid "How do I use this thing?" msgstr "چطور از این چیزی استÙاده کنم؟" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "دریاÙت پاسخ" @@ -5281,7 +5287,7 @@ msgstr "هشدار بده" msgid "Back to last run" msgstr "بازگشت به آخرین اجرا" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "تجسم" @@ -5293,7 +5299,7 @@ msgstr "بدون شرØ" msgid "Use for current question" msgstr "برای سوال Ùعلی استÙاده کنید" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "سوالات بالقوه Ù…Ùید" @@ -5317,7 +5323,7 @@ msgstr "تمام مقادیر متمایز {0}" msgid "Number of {0} grouped by {1}" msgstr "تعداد {0} گروه بندی شده توسط {1}" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5351,12 +5357,12 @@ msgid "Filter by {0}" msgstr "Ùیلتر توسط {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "تعداد {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "مشاهده تمام {0}" @@ -5376,32 +5382,33 @@ msgstr "داده های خام برای {0}" msgid "More" msgstr "بیشتر" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "عبارت نادرست" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "خطای ناشناخته" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Ùرمول Ùیلد" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "از این به عنوان نوعی از نوشتن یک Ùرمول در یک برنامه صÙØÙ‡ گسترده استÙاده کنید. میتوانید از اعداد، Ùیلدها در این جدول، نمادهای ریاضی مانند + Ùˆ برخی از توابع استÙاده کنید. بنابراین شما Ù…ÛŒ توانید چیزی مانند Subtotal - Cost را تایپ کنید." -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "بیشتر بدانید" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "نام آن را بدهید" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "چیزی خوب Ùˆ توصیÙÛŒ" @@ -5481,7 +5488,7 @@ msgid "Enter desired number" msgstr "شماره مورد نظر را وارد کنید" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "خالی" @@ -5549,41 +5556,41 @@ msgstr "برای استÙاده از چندین پارامتر اختیاری Ù… msgid "Read the full documentation" msgstr "مستندات کامل را بخوانید" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "برچسب Ùیلتر" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "نوع متغیر" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "متن" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "تاریخ" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Ùیلتر Ùیلد" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "Ùیلد برای نقشه" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "نوع ویجت Ùیلتر" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "ضروری؟" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "مقدار ویجت Ùیلتر پیش Ùرض" @@ -5595,7 +5602,7 @@ msgstr "بایگانی این سوال؟" msgid "This question will be removed from any dashboards or pulses using it." msgstr "این سوال از هر داشبورد یا پالس از آن Øذ٠خواهد شد." -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "سوال" @@ -5607,8 +5614,8 @@ msgstr "یک سوال برای اضاÙÙ‡ کردن انتخاب کنید" msgid "You are editing this page" msgstr "شما در Øال ویرایش این صÙØÙ‡ هستید" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "این را ببینید {0}" @@ -5616,15 +5623,15 @@ msgstr "این را ببینید {0}" msgid "A subset of" msgstr "زیر مجموعه ای از" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "یک نوع Ùیلد را انتخاب کنید" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5635,8 +5642,8 @@ msgid "by" msgstr "توسط" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "نوع Ùیلد" @@ -5661,12 +5668,12 @@ msgid "Nothing important yet" msgstr "هیچ چیز مهم نیست" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "هیچ چیز جالب نیست" @@ -5675,12 +5682,12 @@ msgid "Things to be aware of about this {0}" msgstr "چیزهایی Ú©Ù‡ در مورد این آگاه هستند {0}" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "هیچ چیز از قبل هنوز آگاه نیست" @@ -5726,7 +5733,7 @@ msgstr "هر چیزی Ú©Ù‡ کاربران باید در مورد این {0} Ø¢Ú¯ msgid "Which 2-3 fields do you usually group this metric by?" msgstr "کدام 2-3 Ùیلد آیا شما معمولا این متریک را با گروه بندی Ù…ÛŒ کنید؟" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "این Ù…ØÙ„ مناسب برای شروع است اگر شما به اطلاعات شرکت خود جدید هستید یا اگر Ùقط Ù…ÛŒ خواهید در آنچه Ú©Ù‡ در جریان است، بررسی کنید." @@ -5742,11 +5749,11 @@ msgstr "دلیل تغییرات" msgid "Leave a note to explain what changes you made and why they were required" msgstr "یک یادداشت را برای ØªÙˆØ¶ÛŒØ Ø¢Ù†Ú†Ù‡ Ú©Ù‡ تغییراتی ایجاد کرده اید Ùˆ چرا آنها مورد نیاز بود را ترک کنید" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "چرا این پایگاه جالب است؟" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "چیزهایی Ú©Ù‡ باید درباره این پایگاه اطلاعات بدانند" @@ -5756,44 +5763,44 @@ msgid "Databases and tables" msgstr "پایگاه های داده Ùˆ جداول" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "جزئیات" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "جداول در {0}" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "نام واقعی در پایگاه داده" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "چرا این زمینه جالب است" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "چیزهایی Ú©Ù‡ در مورد این زمینه آگاهی دارند" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "نوع داده" @@ -5807,12 +5814,12 @@ msgstr "Ùیلدها در این جدول در اینجا به نظر میرسن msgid "Fields in {0}" msgstr "Ùیلدها در {0}" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "نام زمینه" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "اشعه ایکس این میدان" @@ -5843,11 +5850,11 @@ msgstr "تعداد {0}" msgid "See raw data for {0}" msgstr "اطلاعات خام را برای {0} مشاهده کنید" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "چرا این جدول جالب است" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "چیزهایی Ú©Ù‡ باید در مورد این جدول آگاه باشند" @@ -5861,7 +5868,7 @@ msgstr "سوالات در مورد این جدول در اینجا به عنوا #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "سوالات در مورد {0}" @@ -5876,7 +5883,7 @@ msgstr "{0} توسط {1} ایجاد شد" msgid "Fields in this table" msgstr "زمینه های این جدول" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "سوالات در مورد این جدول" @@ -5912,7 +5919,7 @@ msgstr "تمام معیارها را ببینید" msgid "Segments and tables" msgstr "بخش ها Ùˆ جداول" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "جداول" @@ -6029,8 +6036,8 @@ msgstr "آیا کسی وجود دارد Ú©Ù‡ کاربران شما Ù…ÛŒ توان msgid "Who should users contact for help if they're confused about this data?" msgstr "اگر در مورد این اطلاعات اشتباه گرÙته شود، کاربران باید برای Ú©Ù…Ú© تماس بگیرند؟" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "لطÙا یک پیام تجدید نظر را وارد کنید" @@ -6046,15 +6053,15 @@ msgstr "چیزهایی Ú©Ù‡ در مورد این متریال آگاه هستن msgid "How this Metric is calculated" msgstr "چگونه این متریک Ù…Øاسبه شده است" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "هیچ چیز در مورد چگونگی Ù…Øاسبه هنوز" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "دیگر زمینه های شما Ù…ÛŒ توانید این متریک با گروه" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "زمینه های شما Ù…ÛŒ توانید این متریک با گروه" @@ -6079,20 +6086,20 @@ msgid "There are no revisions for this metric" msgstr "برای این متریک تجدیدنظر وجود ندارد" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "تاریخچه ویرایش برای {0}" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "اشعه ایکس این متریک" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "چرا این بخش جالب است" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "چیزهایی Ú©Ù‡ در مورد این بخش آگاهی دارند" @@ -6116,60 +6123,60 @@ msgstr "یاد بگیرید چگونه برای ایجاد بخش" msgid "Questions about this segment will appear here as they're added" msgstr "سوالات در مورد این بخش در اینجا به عنوان آنها اضاÙÙ‡ Ù…ÛŒ شود" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "برای این بخش تجدیدنظر وجود ندارد" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "زمینه های این بخش" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "سوالات در مورد این بخش" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "اشعه ایکس این بخش" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "ورود" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "جستجو کردن" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "داشبورد" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "سوال جدید" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "نوع پایگاه داده ای Ú©Ù‡ استÙاده Ù…ÛŒ کنید را انتخاب کنید" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "اطلاعات خود را اضاÙÙ‡ کنید" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "بعدا داده های خودم را اضاÙÙ‡ خواهم کرد" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "اتصال به {0}" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "شما به اطلاعاتی درباره پایگاه داده خود نیاز دارید، مانند نام کاربری Ùˆ رمز عبور. اگر شما آن را در Øال Øاضر ندارید، Metabase همچنین با مجموعه داده های نمونه ای Ú©Ù‡ Ù…ÛŒ توانید از آن استÙاده کنید." -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "بعدا داده هایم را اضاÙÙ‡ خواهم کرد" @@ -6177,43 +6184,43 @@ msgstr "بعدا داده هایم را اضاÙÙ‡ خواهم کرد" msgid "Control automatic scans" msgstr "کنترل اسکن خودکار" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "تنظیمات داده استÙاده" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "با تشکر برای Ú©Ù…Ú© به بهبود ما" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "ما هر گونه رویداد استÙاده را جمع آوری نخواهیم کرد" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "به منظور Ú©Ù…Ú© به بهبود MetabaseØŒ ما Ù…ÛŒ خواهیم اطلاعات خاصی در مورد استÙاده از طریق Google Analytics جمع آوری کنیم." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "در اینجا یک لیست کامل از همه چیز ما پیگیری Ùˆ به همین دلیل است." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "اجازه دهید Metabase به صورت ناشناس رویدادهای استÙاده را جمع آوری کند" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase {0} اطلاعاتی درباره نتایج یا نتایج شما را جمع آوری Ù…ÛŒ کند." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "هرگز" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "تمام مجموعه کاملا ناشناس است." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "مجموعه را Ù…ÛŒ توانید در هر نقطه از تنظیمات مدیریت خود خاموش کنید." @@ -6261,24 +6268,24 @@ msgstr "سلام {0} از ملاقات شما خوشبختم!" msgid "Create a password" msgstr "یک رمز عبور ایجاد کنید" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "شیخ ..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "رمز عبور را تایید کنید" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "شوش ... اما یک بار دیگر، بنابراین ما آن را درست Ù…ÛŒ گیریم" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "نام شرکت یا تیم شما" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "بخش بسیار جذاب" @@ -6456,11 +6463,11 @@ msgstr "با آدرس ایمیل Google وارد شوید" msgid "User Details" msgstr "اطلاعات کاربر" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "بازنشانی به پیش Ùرضها" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "نقشه ناشناخته" @@ -6468,7 +6475,7 @@ msgstr "نقشه ناشناخته" msgid "Grid map requires binned longitude/latitude." msgstr "نقشه شبکه نیازمند طول جغراÙیایی / عرض جغراÙیایی است." -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "بیشتر" @@ -6505,31 +6512,31 @@ msgstr "گمشده" msgid "Rows {0}-{1} of {2}" msgstr "ردی٠{0} - {1} از {2}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "داده های کوتاه شده به {0} ردیÙ." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "تجسم یاÙت نشد" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "این نمودار را نمیتوان با این اطلاعات نمایش داد." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "هیچ نتیجه ای!" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "هنوز منتظرم..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "این معمولا طول Ù…ÛŒ کشد به طور متوسط ​​{0}." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(این Ú©Ù…ÛŒ طولانی برای داشبورد است)" @@ -6545,11 +6552,11 @@ msgstr "یک Ùیلد را انتخاب کنید" msgid "error" msgstr "خطا" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "برای تغییر سÙارش خود روی بکشید Ùˆ بکشید" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "Ùیلدهای را از لیست زیر اضاÙÙ‡ کنید" @@ -6689,19 +6696,19 @@ msgstr "اضاÙÙ‡ کردن قانون" msgid "Update rule" msgstr "به روز رسانی قانون" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "تجسم صÙر است" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "تجسم باید متغیر ایستا 'شناسه' را تعری٠کند:" -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "تجسم با آن شناسه قبلا ثبت شده است:" -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "هیچ تصویری برای {0}" @@ -6709,11 +6716,11 @@ msgstr "هیچ تصویری برای {0}" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "\"{0}\" یک Ùیلد جمع نشده است: در صورتی Ú©Ù‡ دارای مقدار بیش از یک مقدار در یک Ù…Øور x باشد، مقادیر جمع Ù…ÛŒ شوند." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "این نوع نمودار نیاز به Øداقل 2 ستون دارد." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "این نوع نمودار بیش از {0} سری داده ها را پشتیبانی نمی کند." @@ -6752,7 +6759,7 @@ msgstr "لطÙا این نمودار را در تنظیمات نمودار تن msgid "Edit Settings" msgstr "ویرایش تنظیمات" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "xValues ​​گم شده!" @@ -6779,7 +6786,7 @@ msgid "Bubble size" msgstr "اندازه Øباب" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "خط" @@ -6836,104 +6843,104 @@ msgstr "هیچ Ú†ÛŒ" msgid "Linear Interpolated" msgstr "خطی Interpolated" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "مقیاس Ù…Øور X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "سری زمانی" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "خطی" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "قدرت" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "ورود" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "هیستوگرام" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "Ordinal" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "مقیاس Ù…Øور Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "نمایش خط x Ù…Øور Ùˆ علائم" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Ùشرده" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "چرخش 45 درجه" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "چرخش 90 درجه" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "نمایش خط Ù…Øور y Ùˆ علائم" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Ù…Øدوده ÛŒ Ù…Øدوده ÛŒ خودکار" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "در صورت لزوم از Ù…Øور y تقسیم استÙاده کنید" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "برچسب را روی Ù…Øور x نشان دهید" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "برچسب Ù…Øور X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "نمایش برچسب در Ù…Øور y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "برچسب Ù…Øور Y" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "انØرا٠معیار" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "Øوزه" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "نمودار منطقه" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "بار" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "نمودار میله ای" @@ -6959,19 +6966,19 @@ msgstr "نوع Ù‚ÛŒÙ" msgid "Bar chart" msgstr "نمودار میله ای" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "نمودار خط" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "لطÙا ستون طول Ùˆ عرض جغراÙیایی را در تنظیمات نمودار انتخاب کنید." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "لطÙا یک نقشه منطقه را انتخاب کنید" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "لطÙا ستون های منطقه Ùˆ متریک را در تنظیمات نمودار انتخاب کنید." @@ -6979,73 +6986,73 @@ msgstr "لطÙا ستون های منطقه Ùˆ متریک را در تنظیما msgid "Map" msgstr "نقشه" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "نوع نقشه" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "نقشه منطقه" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "نقشه پین" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "نوع پین" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "کاشی" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "نشانگرها" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "زمینه عرض" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "میدان طول جغراÙیایی" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "زمینه متریک" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "زمینه منطقه" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "شعاع" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "تاری" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "Øداقل ابعاد" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "Øداکثر زوم" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "هیچ روابطی پیدا نشد" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "از طریق {0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "این {0} به متصل است:" @@ -7057,7 +7064,7 @@ msgstr "جزئیات شیء" msgid "object" msgstr "هد٠- Ø´ÛŒ" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "جمع" @@ -7106,7 +7113,7 @@ msgid "Progress" msgstr "پیش رÙتن" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "رنگ" @@ -7198,12 +7205,12 @@ msgstr "درست" msgid "Show background" msgstr "نمایش پس زمینه" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "{0} بن" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "خودکار متصل" @@ -7625,7 +7632,7 @@ msgstr "جمع تجمعی" msgid "{0} and {1}" msgstr "{0} Ùˆ {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} از {1}" @@ -8945,31 +8952,31 @@ msgstr "تمام مجوزهای مجموعه را مشاهده کنید" msgid "Also change sub-collections" msgstr "همچنین زیر مجموعه ها را تغییر دهید" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Ù…ÛŒ توانید این مجموعه Ùˆ Ù…Øتویات آن را ویرایش کنید" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Ù…ÛŒ توانید آیتم های موجود در این مجموعه را مشاهده کنید" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "دسترسی به مجموعه" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "این گروه اجازه Ù…ÛŒ دهد Øداقل یک زیر مجموعه از این مجموعه را مشاهده کنید." -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "این گروه اجازه ویرایش Øداقل یک زیر مجموعه از این مجموعه را دارد." -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "مشاهده زیر مجموعه ها" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "مرا به خاطر بسپار" @@ -8989,7 +8996,7 @@ msgstr "این سوال را به یک داشبورد اضاÙÙ‡ کنید" msgid "Create a new dashboard" msgstr "ساخت داشبورد جدید" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "صÙØÙ‡ درخواستی شما یاÙت نشد" @@ -8997,11 +9004,11 @@ msgstr "صÙØÙ‡ درخواستی شما یاÙت نشد" msgid "Select a {0}" msgstr "یک {0} را انتخاب کنید" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "ذخیره داشبورد ها، سوالات Ùˆ مجموعه ها در \"{0}\"" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "دسترسی به داشبورد ها، سوالات Ùˆ مجموعه ها در \"{0}\"" @@ -9021,12 +9028,12 @@ msgstr "مربوط" msgid "More X-rays" msgstr "اشعه X بیشتر" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "بدون نتیجه" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabase نمی تواند برای جستجوی شما هیچ نتیجه ای پیدا کند." @@ -9236,10 +9243,10 @@ msgstr "ناموجود" msgid "Windows domain" msgstr "دامین ویندوز" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "برچسب ها" @@ -9275,6 +9282,8 @@ msgstr "اشتراک گذاری" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9289,33 +9298,33 @@ msgstr "اشتراک گذاری" msgid "Display" msgstr "نمایش دادن" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "Ù…Øورها" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "در Øال پاک‌سازی" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "با استÙاده از داده های خود این اشعه ایکس را امتØان کنید." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "مشکلی در نمایش نمودار وجود دارد." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "شرمنده، شما اجازه مشاهده این کارت را ندارید." @@ -9335,21 +9344,21 @@ msgstr "اشعه X" msgid "Compare to the rest" msgstr "با بقیه مقایسه Ú©Ù†." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "از منطقه زمانی ماشین مجازی جاوا استÙاده Ú©Ù†." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "ما پیشنهاد Ù…ÛŒ کنیم Ú©Ù‡ این کار را ترک کنید مگر اینکه در Øال انجام مراØÙ„ مربوط به زمان بندی کاربر هستید\n" "بسیاری از یا بیشتر از پرس Ùˆ جو خود را با این داده ها." -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "مهمترین داشبورد تیم شما در اینجا قرار دارد" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "پانل داشبورد در {0} برای اینکه آنها در این Ùضا برای همه ظاهر شوند" @@ -9373,12 +9382,12 @@ msgstr "نکته:" msgid "Select a currency type" msgstr "یک واØد پول انتخاب کنید" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "نوع Ùیلد" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "عیب‌یابی" @@ -9426,11 +9435,11 @@ msgstr "دیرش (میلی ثانیه)" msgid "Currency" msgstr "واØد پول" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "یک کاربر یا کانال را انتخاب کنید..." -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "بدون تنظیمات قالب بندی" @@ -9603,15 +9612,15 @@ msgstr "سنج" msgid "Gauge ranges" msgstr "Ù…Øدوده سنج" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "زمینه برای نشان دادن" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "آخرین {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} بود {1} {2}" @@ -9740,7 +9749,7 @@ msgstr "ربع" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "اÙزودن کارت {0} به داشبورد {1}: {n {2" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "خطا در تجزیه {0}: {n {1" @@ -10036,7 +10045,7 @@ msgstr "پاک سازی سابقه کار با موÙقیت انجام شد ØŒ msgid "not" msgstr "نه" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "برای اطلاعات بیش‌تر مشاهده کنید :" @@ -11039,6 +11048,7 @@ msgstr "Ù†Øوه توزیع این متریک در اعداد مختلÙ" msgid "Sessions by page where the session began" msgstr "جلسات براساس صÙØÙ‡ ای Ú©Ù‡ جلسه شروع شده است" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11388,15 +11398,15 @@ msgstr "ممکن است دوباره آتش بگیریم؟" msgid "Triggers for {0}" msgstr "شروع برای {0}" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "وظایÙ" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "شغل ها" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "Ú©Ù¾ÛŒ شده {0}" @@ -11408,7 +11418,7 @@ msgstr "این مورد را Ú©Ù¾ÛŒ کنید" msgid "Archive this item" msgstr "بایگانی این مورد" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "داشبورد Ú©Ù¾ÛŒ" @@ -11435,6 +11445,7 @@ msgid "Next {0}" msgstr "بعدی {0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "قبلی {0}" @@ -11519,8 +11530,8 @@ msgstr "[Q]Q" msgid "This" msgstr "این" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "بی اعتبار" @@ -11528,11 +11539,11 @@ msgstr "بی اعتبار" msgid "Add a time" msgstr "زمان اضاÙÙ‡ کنید" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "هیچ چیز برای مقایسه قبلی نیست {0}" -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "توسط {0}" @@ -11588,39 +11599,39 @@ msgstr "خطا در اضاÙÙ‡ کردن بخشنامه SQL میراث به BigQu msgid "Failed to notify {0} Database {1} updated" msgstr "به روزرسانی {0} پایگاه داده {1} انجام نشد" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "بارگیری درایور {0} {1}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "راننده بار {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "راننده بعد از بارگیری ثبت نشده است: {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "خطا: تلاش برای تغییر {0} ویژگی `: انتزاعی؟` از {1} به {2}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "راننده انتزاعی ثبت شده {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "راننده ثبت شده {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(والدین: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "درایور اولیه {0} ..." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "دلیل:" @@ -11772,11 +11783,11 @@ msgstr "{0} وابستگی {1} راضی هستید؟ {2}" msgid "Plugins with unsatisfied deps: {0}" msgstr "اÙزونه های دارای بخش ناراضی: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "استخراج پرونده {0} -> {1}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "منبع وجود ندارد." @@ -12101,7 +12112,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreatDate]] تا چهارم سال" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "ویرایش کاربر" @@ -12109,12 +12120,12 @@ msgstr "ویرایش کاربر" msgid "New user" msgstr "کاربر جدید" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "بازنشانی گذرواژه" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "غیرÙعال کردن کاربر" @@ -12391,11 +12402,11 @@ msgstr "دستورالعمل سوء استÙاده" msgid "Archive this?" msgstr "بایگانی این؟" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "درباره داده های ما اطلاعات کسب کنید" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "هنگام اتصال از DNS SRV استÙاده کنید" @@ -12407,7 +12418,7 @@ msgstr "استÙاده از این گزینه مستلزم آن است Ú©Ù‡ Ù…ÛŒ "ممکن است لازم باشد این گزینه را Ùعال کنید. اگر نمی دانید این به Ú†Ù‡ معنی است ØŒ\n" "این را غیرÙعال کنید." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "هنگام انجام Ùیلتر کردن ساده Ùˆ جمع بندی ساده ØŒ نمایش داده شد" @@ -12415,7 +12426,7 @@ msgstr "هنگام انجام Ùیلتر کردن ساده Ùˆ جمع بندی س msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "هنگامی Ú©Ù‡ این در Metabase است ØŒ به طور خودکار هنگام نمایش جدول یا نمودار ØŒ دکمه های Summarize Ùˆ Filter را با استÙاده از کاوش های ساده ØŒ نمایش داده شد. اگر جستجوی این پایگاه داده کند است ØŒ Ù…ÛŒ توانید این را خاموش کنید. این تنظیم تأثیر نمی گذارد از طریق تمرین یا سؤالهای SQL." -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "در مورد این پایگاه داده اطلاعات کسب کنید" @@ -12423,25 +12434,25 @@ msgstr "در مورد این پایگاه داده اطلاعات کسب Ú©Ù†ÛŒ msgid "Archive this dashboard?" msgstr "بایگانی این داشبورد؟" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "همه نتایج" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "تØلیل ما" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "جمع اضاÙÛŒ از تمام مقادیر یک ستون. \\ ne.x. درآمد Ú©Ù„ در طول زمان" -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "تعداد اÙزودنی تعداد ردی٠ها. \\ ne.x. تعداد Ú©Ù„ Ùروش در طول زمان" #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Ùیلتر" @@ -12450,27 +12461,27 @@ msgid "record" msgid_plural "records" msgstr[0] "رکورد" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "مرور داده ها" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "SQL بنویسید" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "سوال ساده" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "برخی از داده ها را انتخاب کنید ØŒ آن را مشاهده کنید Ùˆ به راØتی آن را Ùیلتر ØŒ خلاصه Ùˆ تجسم کنید." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "سوال سÙارشی" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "از ویرایشگر نوت بوک پیشرÙته برای پیوستن به داده ها ØŒ ایجاد ستون های سÙارشی ØŒ انجام ریاضی Ùˆ موارد دیگر استÙاده کنید." @@ -12478,7 +12489,7 @@ msgstr "از ویرایشگر نوت بوک پیشرÙته برای پیوستن msgid "Basic Metrics" msgstr "اندازه گیری های اساسی" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "سÙارشی…" @@ -12494,7 +12505,7 @@ msgstr "Øد انتخاب کنید" msgid "Show maximum" msgstr "نمایش Øداکثر" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "پیش نمایش را دریاÙت کنید" @@ -12523,7 +12534,7 @@ msgid "Custom column" msgstr "ستون سÙارشی" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "خلاصه کنید" @@ -12540,11 +12551,10 @@ msgid "Pick the metric you want to see" msgstr "متریک مورد نظر خود را انتخاب کنید" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "یک ستون را برای گروه انتخاب کنید" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "داده شروع را انتخاب کنید" @@ -12556,7 +12566,7 @@ msgstr "هیچ کدام را انتخاب نکنید" msgid "Select All" msgstr "انتخاب همه" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "انتخاب یک جدول ..." @@ -12601,15 +12611,15 @@ msgid "{0} breakout" msgid_plural "{0} breakouts" msgstr[0] "{0} breakout" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "Ùیلترها را مخÙÛŒ کنید" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "Ùیلترها را نشان دهید" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "شروع شده از" @@ -12638,11 +12648,11 @@ msgstr "نمایش {0}" msgid "Summarized" msgstr "خلاصه" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "ویرایشگر را مخÙÛŒ کنید" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "نمایش ویرایشگر" @@ -12650,7 +12660,7 @@ msgstr "نمایش ویرایشگر" msgid "Pick the metric you'd like to see" msgstr "متریک مورد نظر خود را انتخاب کنید" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "{0} گزینه ها" @@ -12678,13 +12688,13 @@ msgstr "متریک اضاÙÙ‡ کنید" msgid "Profile" msgstr "مشخصات" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "این معمولاً خیلی سریع است اما به نظر Ù…ÛŒ رسد اکنون مدتی طول Ù…ÛŒ کشد." #: frontend/src/metabase/visualizations/visualizations/ComboChart.jsx:16 msgid "Combo" -msgstr "Combo" +msgstr "ترکیب" #: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:13 msgid "Row" @@ -12706,19 +12716,19 @@ msgstr "بخش ناشناخته" msgid "Unknown Filter" msgstr "Ùیلتر ناشناخته" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "پیوست بیرونی سمت Ú†Ù¾" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "پیوست بیرونی راست" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "پیوستن به درون" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "پیوستن بیرونی کامل" @@ -12770,7 +12780,7 @@ msgstr "راه اندازی پایگاه داده برنامه" msgid "Could not find {0} driver." msgstr "درایور {0} یاÙت نشد." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "رانندگان چکیده نمی توانند از درایورهای والد والدین استخراج شوند." @@ -12828,7 +12838,7 @@ msgstr "جرقه-deps.jar دیگر مورد نیاز Metabase 0.32.0+ نیست. msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "با استÙاده از لودر کلاس جديد ساخته شده به عنوان متن كلاس طبقه بندي مشترك: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "Ú©Ù¾ÛŒ کردن پرونده انجام نشد" @@ -13106,7 +13116,7 @@ msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "ستون هایی را Ú©Ù‡ Ù…ÛŒ خواهید گنجانید انتخاب کنید" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "هنگامی Ú©Ù‡ این کار روشن است ØŒ وقتی کاربر در هنگام مشاهده جدول یا نمودار ØŒ دکمه های خلاصه Ùˆ Ùیلتر را با استÙاده از کاوش ساده انجام Ù…ÛŒ دهد ØŒ Metabase به صورت خودکار نمایش داده Ù…ÛŒ شود. اگر جستجوی این پایگاه داده کند است ØŒ Ù…ÛŒ توانید این را خاموش کنید. این تنظیم تأثیر نمی گذارد از طریق مته یا سؤالهای SQL." @@ -13143,3 +13153,439 @@ msgstr "خطا در تعیین ستون های مورد انتظار برای Ù¾ #: src/metabase/query_processor/middleware/async.clj msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "استثناء نامØدود ØŒ انتظار Ù…ÛŒ رود واسطه میانجی \"گرÙتن استثناء\" برای رسیدگی به آن." + +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "" + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "(⌘ + enter)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "(Ctrl + enter)" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "" + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "همه" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "" + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "" + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "" diff --git a/locales/fr.po b/locales/fr.po index 9533dcbab9959abccb68e730f7a47ddc2f0d4b98..9f1551161231b7ad391737018c0ac6d0f833bde7 100644 --- a/locales/fr.po +++ b/locales/fr.po @@ -31,19 +31,18 @@ msgid "Select a database type" msgstr "Sélectionner un type de base de données" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "Sauvegarder" @@ -104,7 +103,7 @@ msgstr "Jamais, je le ferai manuellement au besoin" #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "Sauvegarde..." @@ -141,16 +140,16 @@ msgstr "dans cette case :" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -158,20 +157,20 @@ msgstr "dans cette case :" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "Annuler" @@ -183,33 +182,33 @@ msgstr "Annuler" msgid "Delete" msgstr "Supprimer" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "Bases de données" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "Ajouter une base de données" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "Connexion" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "Planification" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -219,18 +218,18 @@ msgstr "Planification" msgid "Save changes" msgstr "Sauvegarder les modifications" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "Actions" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "Synchroniser le schéma de base de données" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -238,42 +237,42 @@ msgstr "Synchroniser le schéma de base de données" msgid "Starting…" msgstr "Démarrage..." -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "Échec de la synchronisation" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "Synchronisation déclenchée !" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "Analyser à nouveau les valeurs des filtres maintenant" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "Impossible de démarrer l analyse" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "Analyse déclenchée !" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "Zone Dangereuse" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "Supprimer les valeurs mises en cache" #. Personnellement la première fois que j'ai voulu supprimer une base, j'aurais aimé que soit mentionné le fait que seules les métadonnées sont supprimées, et pas les données. -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "Retirer cette base de données de Metabase" @@ -282,18 +281,17 @@ msgid "Add database" msgstr "Ajouter une base de données" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "Nom" @@ -313,23 +311,24 @@ msgstr "Chargement ..." msgid "Bring the sample dataset back" msgstr "Charger de nouveau le jeu de données d'exemple" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "Impossible de se connecter à la base de données. Veuillez vérifier les paramètres de connexion." -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "Création réussie!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "Sauvegarde réussie!" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "Modifier" @@ -369,9 +368,9 @@ msgstr "Échec" msgid "Success" msgstr "Succès" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "Prévisualisation" @@ -391,7 +390,7 @@ msgstr "Aucun type particulier" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "Autre" @@ -420,7 +419,7 @@ msgstr "Colonne" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "Visibilité" @@ -502,36 +501,35 @@ msgstr "Trouver une table" msgid "Schemas" msgstr "Schémas" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "Métriques" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "Ajouter une métrique" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "Définition" #. Bonjour François, ici il semble s'agir de la liste déroulante 'View' du générateur de requête -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "Créer des métriques pour les ajouter au menu déroulant 'Vue' du générateur de requêtes" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -539,11 +537,11 @@ msgstr "Créer des métriques pour les ajouter au menu déroulant 'Vue' du gén msgid "Segments" msgstr "Segments" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "Ajouter un segment" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "Créer des segments pour les ajouter à la liste déroulante Filtre dans le générateur de requêtes" @@ -589,23 +587,23 @@ msgstr " Historique" msgid "Revision History for" msgstr "Historique de modification pour" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} – Réglages du champ" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "Où ce champ apparaîtra dans Metabase" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Filtrer sur ce champ" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "Lorsque ce champ est utilisé dans un filtre, que doivent faire les utilisateurs pour saisir la valeur à filtrer?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "Aucune description pour ce champ" @@ -646,11 +644,11 @@ msgstr "Le champ actuel n'est pas une clé étrangère ou les métadonnées de l msgid "The selected field isn't a foreign key" msgstr "Le champ sélectionné n'est pas une clé étrangère" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "Afficher les valeurs" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "Choisir d'afficher la valeur originale dans la base de données, ou une information associée ou personnalisée." @@ -670,12 +668,12 @@ msgstr "Astuce:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "Il se peut que vous vouliez mettre à jour le nom du champ pour s'assurer qu'il est toujours pertinent selon vos choix de mise en corespondance." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "Valeurs des filtres mises en cache" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabase peut analyser les valeurs de ce champ pour proposer des filtres dans les tableaux de bord et les questions." @@ -702,82 +700,82 @@ msgstr "Suppression lancée" msgid "Select any table to see its schema and add or edit metadata." msgstr "Sélectionner une table pour voir son schéma et enrichir ses métadonnées" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "Le nom est requis" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "La description est requise" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "Un message d'historique est requis" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "Une agrégation est requise." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "Éditer votre métrique" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "Créer votre métrique" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "Modifier votre métrique et laisser un commentaire pour ces changements." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "Sauvegardez des métriques pour les rendre disponibles dans l'option de Vue de cette table. Les métriques se définissent par un type d'agrégation, un champ aggrégé, et optionnellement tous filtres que vous y ajouterez. Par exemple, vous pourriez vouloir créer une métrique pour définir la façon officielle de calculer le \"Prix moyen\" d'une table qui contient des Commandes." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "Résultat : " -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "Nommez votre métrique" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "Donnez un nom à votre métrique pour aider les autres à la retrouver." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "Description syntétique" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "Décrivez votre métrique" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "Donnez une description à votre métrique pour aider les autres à mieux l'utiliser." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "C'est le bon endroit pour expliquer plus précisement à quoi sert votre métrique et comment vous l'avez construite." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "Raison des modifications" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "Laisser un mot d'explication sur les changements que vous avez fait et pourquoi ils étaient nécessaires." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "Sera affiché dans l'historique des révisions de cette métrique afin d'aider tout le monde à se souvenir des changements effectués." @@ -793,7 +791,7 @@ msgstr "Modifier votre segment" msgid "Create Your Segment" msgstr "Créez votre segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "Faites des changement à votre segment et laissez une note explicative" @@ -801,37 +799,37 @@ msgstr "Faites des changement à votre segment et laissez une note explicative" msgid "Select and add filters to create your new segment for the {0} table" msgstr "Sélectionnez et ajoutez des filtres pour créer un nouveau segement pour la table {0}" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "Nommez votre segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "Donnez un nom à votre segment pour aider les utilisateurs à le retrouver." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "Décrivez votre segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "Donnez une description à votre segment pour aider les autres à mieux l'utiliser." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "C'est le bon endroit pour être plus spécifique sur les règles de segment moins évidentes" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "Ce sera affiché dans l'historique des révisions pour ce segement, afin d'aider tout le monde à se souvenir pour ça a été changé" #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "Paramètres" @@ -845,33 +843,29 @@ msgstr "Analyser à nouveau cette table" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "Ajouter" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "Format de l'adresse électronique invalide" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "Prénom" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "Nom" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "Adresse électronique" @@ -907,7 +901,7 @@ msgstr "Membres" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "Adresse électronique" @@ -917,8 +911,8 @@ msgstr "Un groupe n'a de valeur que lorsqu'il contient des utilisateurs." #. tous les items du menu paramètres sont des noms... #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "Administration" @@ -979,11 +973,11 @@ msgstr "Supprimer le groupe" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "Fait" @@ -992,9 +986,9 @@ msgid "Group name" msgstr "Nom du groupe" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "Groupes" @@ -1023,10 +1017,10 @@ msgstr "Réinitialiser le mot de passe" msgid "Deactivate" msgstr "Désactiver" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "Utilisateurs" @@ -1065,7 +1059,7 @@ msgstr "Nous avons envoyé une invitation à {0} avec les instructions pour modi msgid "We've re-sent {0}'s invite" msgstr "Nous avons renvoyé l'invitation de {0}" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "OK" @@ -1097,7 +1091,7 @@ msgstr "Ces utilisateurs pourront se connecter à nouveau et ils seront replacé msgid "Reset {0}'s password?" msgstr "Réinitialiser le mot de passe de {0}" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "Réinitialiser" @@ -1136,19 +1130,19 @@ msgstr "Ajouter quelqu'un" msgid "Last Login" msgstr "Dernier login" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Inscription via Google" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "Inscription via LDAP" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "Ré-activer ce compte" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "Jamais" @@ -1190,7 +1184,7 @@ msgid " native queries for " msgstr " questions brutes pour " #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "Permissions" @@ -1247,115 +1241,115 @@ msgstr "MetaBot est le bot Slack de Metabase. Vous pouvez choisir à quoi il a a msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "Le groupe \"{0}\" peut avoir accès à un ensemble différent de {1} que ce groupe, ce qui peut donner à ce groupe un accès supplémentaire à certains {2}." -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "Le groupe \"{0}\" a un niveau d'accès plus élevé que celui-ci, qui remplacera ce paramètre. Vous devez limiter ou révoquer l'accès du groupe \"{1}\" à cet élément." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "Limite" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "Révoquer" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "accéder même si \"{0}\" a accès supérieur?" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "Limiter l'accès" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "Révoquer l'accès" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "Changer l'accès de cette base de données à limité ?" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "Changer" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "Autoriser l'écriture de requête brute ?" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "Cela aura aussi pour effet de donner à ce groupe un accès non restreint aux données de cette base." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "Autoriser" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "Révoquer l'accès à toutes les tables ?" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "Cela aura aussi pour effet de révoquer à ce groupe l'usage des questions brutes vers cette base de données." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "Accorder un accès non restreint" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "Accès non restreint" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "Accès limité" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "Aucun accès" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "Ecrire des questions brutes" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Peut/peuvent écrire des questions brutes" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "Organiser une collection" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "Voir le contenu d'une collection" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "Accès aux données" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "Voir les tables" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "Requêtes SQL" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "Voir les schémas" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "Modèles de données" @@ -1498,8 +1492,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "Metabase {0} est disponible. Vous faites actuellement tourner {1}" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "Mettre à jour" @@ -1522,18 +1516,20 @@ msgstr "Supprimer une carte personnalisée" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "Supprimer" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "Sélectionner..." @@ -1736,7 +1732,7 @@ msgstr "Réglage inconnu {0}" msgid "Setup" msgstr "Réglages" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "Général" @@ -1863,7 +1859,7 @@ msgid "Username or DN" msgstr "Utilisateur" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "Mot de passe" @@ -2027,32 +2023,32 @@ msgstr "Mot de passe oublié" msgid "The email you use for your Metabase account" msgstr "L'adresse électronique que vous utilisez pour votre compte Metabase" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "Envoyer un courriel de réinitialisation de mot de passe" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "Vérifiez vos courriels pour obtenir les instructions de réinitialisation de votre mot de passe." -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "Se connecter à Metabase" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "OU" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "Identifiant ou adresse électronique" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "Se connecter" #. faute d'accord -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "Je semble avoir oublié mon mot de passe" @@ -2070,7 +2066,7 @@ msgid "For security reasons, password reset links expire after a little while. I msgstr "Pour des raisons de sécurité, les liens de réinitialisation de mot de passe expirent après un petit moment. Si vous avez toujours besoin de réinitialiser votre mot de passe, vous pouvez {0}." #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "Nouveau mot de passe" @@ -2083,38 +2079,38 @@ msgid "Create a new password" msgstr "Créer un nouveau mot de passe" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "Assurez-vous que c'est sécurisé conformément aux instruction ci-dessus" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "Confirmer le nouveau mot de passe" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "Assurez-vous qu'il correspond à celui que vous venez de saisir" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "Votre mot de passe a été réinitialisé." -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "Vous connecter avec votre nouveau mot de passe" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "La sauvegarde a échouée" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2133,22 +2129,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "Les tableaux de bord, collections et pulses de cette collection seront aussi archivés." #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "Archiver" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "Ce/cette {0} a été archivé(e)" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "Voir l'archive" @@ -2158,17 +2155,19 @@ msgstr "Annuler l'archivage de ce/cette {0}" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "Nos données" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "Radiographier cette table" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "Apprendre au sujet de cette table" @@ -2263,44 +2262,44 @@ msgstr "Epingles" msgid "Drag something here to pin it to the top" msgstr "Déposer quelque chose ici pour l'épingler en haut" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "Collections" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "Déposer ici pour ôter une épingle" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} élément sélectionné" msgstr[1] "{0} éléments sélectionnés" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "Déplacer {0} éléments" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "Déplacer \"{0}\" ?" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "Déplacer" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "Modifier cette collection" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "Archiver cette collection" @@ -2317,17 +2316,17 @@ msgstr "Nouvelle collection" msgid "Copied!" msgstr "Copié(e)(s) !" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "Utiliser un tunnel SSH pour les connexions à la base de données" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." msgstr "Certaines bases de données ne sont accessibles qu'en SSH au travers d'un serveur bastion. Cette option ajoute aussi une couche de sécurité lors d'une connexion hors VPN. L'activer est plus lent qu'une connexion directe." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "C'est une grande base de données, laissez-moi donc choisir quand Metabase lance les synchronisations et les analyses" @@ -2337,47 +2336,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail msgstr "Par défaut, Metabase effectue une synchronisation horaire légère et un analyse journalière intensive des valeurs de filtre.\n" "Si vous avez une grande base de données, nous vous recommandons d'activer cette option et de définir quand et à quelle fréquence l'analyse des valeurs de filtre s'effectue." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0} pour générer un ID et un secret client pour votre projet." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "Cliquer ici" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "Choisir \"Autre\" comme type d'application. La nommer comme bon vous semble." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0} pour obtenir un code d'authentification" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "avec les permissions de Google Drive" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "Pour pouvoir utiliser Metabase avec cette donnée, vous devez activer l'accès à l'API dans la Google Developers Console." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "{0} pour se rendre dans la console si ce n'est déjà fait." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "Sous quel nom souhaitez-vous référencer cette base de données ?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "Suivant" @@ -2396,7 +2395,7 @@ msgstr "Déplacer cet élément" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "Modifier cette question" @@ -2409,7 +2408,7 @@ msgstr "Type d'action" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "Voir l'historique des modifications" @@ -2425,7 +2424,7 @@ msgstr "Archivage" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "Ajouter à un tableau de bord" @@ -2436,7 +2435,7 @@ msgstr "Télécharger les résultats" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "Partager et intégrer" @@ -2482,65 +2481,63 @@ msgstr "Selon le schéma" msgid "A look at your" msgstr "Jeter un Å“il à votre" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "Recherche dans la liste" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "Recherche par {0}" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr " ou saisir un ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "Saisir un ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "Saisir un nombre" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "Saisir du texte" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "Aucun(e) {0} correspondant trouvé(e)." -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "Inclure chaque option dans votre filtre n'apportera probablement pas grand chose..." -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "Quelque chose s'est mal passé" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "Une erreur est survenue. Vous pouvez essayer de rafraîchir la page, ou juste revenir en arrière." -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "Aucune description" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "Nouveau/nouvelle {0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "Demandé par {0}" @@ -2561,8 +2558,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "Ramené(e) à une précédente version et {0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "Historique des modifications" @@ -2607,7 +2604,7 @@ msgid "Questions" msgstr "Questions" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "Pulses" @@ -2644,7 +2641,7 @@ msgstr "S'inscrire" msgid "You're subscribed. Thanks for using Metabase!" msgstr "Vous êtes inscrit. Merci d'utiliser Metabase !" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "Nous sommes un peu perdus..." @@ -2653,14 +2650,14 @@ msgid "Temporary Password" msgstr "Mot de passe temporaire" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "Masquer" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "Montrer" @@ -2762,7 +2759,7 @@ msgstr "Sélectionné(e)(s)" msgid "Nothing to select" msgstr "Rien à sélectionner" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "Désolé, vous n'avez pas la permission de voir cela." @@ -2770,8 +2767,8 @@ msgstr "Désolé, vous n'avez pas la permission de voir cela." msgid "Unknown error encountered" msgstr "Un erreur inconnue a été rencontrée" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "Créer" @@ -2779,7 +2776,6 @@ msgstr "Créer" msgid "Create dashboard" msgstr "Créer un tableau de bord" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "Table" @@ -2804,12 +2800,11 @@ msgstr "Essayez d'ajuster votre filtre pour trouver ce que vous recherchez" msgid "View by" msgstr "Voir par" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "de" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "Ne le dites à personne, mais vous êtes mon favori." @@ -2817,19 +2812,19 @@ msgstr "Ne le dites à personne, mais vous êtes mon favori." msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "Une fois connecté à vos propres données, je peux vous montrer quelques explorations automatiquement générées, appelées radiographies. En voici quelques exemples basés sur des données de démonstration." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "Commencez ici" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "Notre décisionnel" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "Parcourir tous les éléments" @@ -2841,44 +2836,45 @@ msgstr "Remplacer ou sauvegarder en tant que nouvel élément ?" msgid "Replace original question, \"{0}\"" msgstr "Remplacer la question originale. \"{0}\"" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "Sauvegarder en tant que nouvelle question" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "Avant toute chose, sauvegardez votre question" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "Sauvegarder la question" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "Quel est le nom de votre carte ?" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "Description" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "C'est facultatif, mais ô combien utile" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "Dans quelle collection cela devrait-il aller ?" @@ -2919,11 +2915,11 @@ msgstr "Archiver le tableau de bord" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "Assurez-vous de faire un choix pour chaque série de données, ou le filtre ne fonctionnera pas avec cette carte." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "Ce tableau de bord semble vide." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "Ajoutez une question pour commencer à le rendre utile !" @@ -2943,50 +2939,50 @@ msgstr "Sortir du mode plein écran" msgid "Enter fullscreen" msgstr "Passer en mode plein écran" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "Sauvegarde en cours..." -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "Ajouter une question" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "Ajouter une question à ce tableau de bord" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "Ajouter un filtre" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "Paramètres" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "Ajouter une zone de texte" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "Déplacer le tableau de bord" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "Modifier le tableau de bord" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "Modifier l'agencement du tableau de bord" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "Vous modifiez un tableau de bord" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Sélectionner le champ qui devrait être filtré pour chaque carte" @@ -3037,11 +3033,11 @@ msgstr "30 minutes" msgid "60 minutes" msgstr "60 minutes" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "Rafraîchissement automatique" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "Rafraîchissement dans" @@ -3053,7 +3049,7 @@ msgstr "Enlever cette question ?" msgid "Your dashboard was saved" msgstr "Votre tableau de bord a été sauvegardé" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "Voir le résultat" @@ -3141,10 +3137,9 @@ msgstr "a enlevé une question du tableau de bord - " msgid "received the latest data from" msgstr "a reçu les dernières données de" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "Inconnu" @@ -3261,7 +3256,7 @@ msgstr "Tout voir" msgid "Recently Viewed" msgstr "Consulté récemment" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "Vous n'avez consulté aucun tableau de bord ou question récemment" @@ -3275,11 +3270,11 @@ msgid "Unarchive" msgstr "Désarchiver" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "Activité" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "Résultats pour \"{0}\"" @@ -3342,6 +3337,9 @@ msgstr "URL de l'image d'avatar" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "Commun" @@ -3384,8 +3382,8 @@ msgstr "Longitude" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "Numérique" @@ -3431,94 +3429,94 @@ msgstr "Heure de création" msgid "Creation date" msgstr "Date de création" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "Produit" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "Utilisateur" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "Origine" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "Prix" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "Joindre l'horodatage" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "Joindre l'heure" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "Joindre la date" #. Il semble que ce soit plus dans un context économique ou financier -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "Action/Part" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "Propriétaire" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "Entreprise" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "Inscription" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "Score" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "Titre" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "Commentaire" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "Coût" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Marge brute" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "Date de naissance" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "Zone de recherche avec autocomplétion" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "Liste de toutes les valeurs" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "Zone de texte" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "Partout" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "Réglage par défaut. Ce champ sera affiché normalement dans les tables et graphiques." @@ -3526,7 +3524,7 @@ msgstr "Réglage par défaut. Ce champ sera affiché normalement dans les tables msgid "Only in Detail Views" msgstr "Seulement dans les vues détaillées" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "Ce champ sera affiché seulement dans la vue détaillée d'un enregistrement. Utilisez ce réglage pour les informations verbeuses ou non pertinentes dans une table ou un graphique." @@ -3540,7 +3538,8 @@ msgstr "Metabase ne récupèrera jamais ce champ. Utilisez ce réglage pour les #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3555,8 +3554,9 @@ msgid "CumulativeCount" msgstr "Nombre cumulé de lignes" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "Somme" @@ -3565,7 +3565,7 @@ msgid "CumulativeSum" msgstr "Somme cumulée" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "Nombre de valeurs distinctes" @@ -3574,25 +3574,28 @@ msgid "StandardDeviation" msgstr "Ecart-type" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "Moyenne" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "Minimum" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "Maximum" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "Des ereurs syntaxiques ou lexicales ont été détectées" @@ -3642,12 +3645,13 @@ msgid "What do you want to find out?" msgstr "Que voulez-vous déterminer ?" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "Données brutes" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "Nombre cumulé" @@ -3691,174 +3695,174 @@ msgstr "Filtré(e) par " msgid "Sorted by " msgstr "Trié par " -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "Vrai" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "Faux" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Sélectionner le champ longitude" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "Saisir la latitude supérieure" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "Saisir la longitude inférieure" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "Saisir la latitude inférieure" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "Saisir la longitude supérieure" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "Est" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "N'est pas" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "Est vide" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "Non vide" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "Egal(e) à " -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "Différent(e) de" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "Supérieur à " -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "Inférieur à " -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "Entre" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "Supérieur ou égal à " -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "Inférieur ou égal à " -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "Contient" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "Ne contient pas" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "Commence par" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "Finit par" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "Avant" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "Après" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "Dans" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "Juste une table avec ces lignes dans la réponse, aucune opération additionnelle." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "Nombre de lignes" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "Nombre total de lignes dans la réponse." -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "Somme de ..." -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "Somme de toutes les valeurs d'une colonne." -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "Moyenne de ..." -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "Moyenne de toutes les valeurs d'une colonne" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "Nombre de valeurs distinctes de ..." -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "Nombre de valeurs uniques d'une colonne parmi toutes les lignes dans la réponse." -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "Somme cumulée de ..." @@ -3866,7 +3870,7 @@ msgstr "Somme cumulée de ..." msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "Somme cumulée de toutes les valeurs d'une colonne. Ex : Gain total au cours du temps." -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "Nombre cumulé de lignes" @@ -3874,27 +3878,27 @@ msgstr "Nombre cumulé de lignes" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "Nombre cumulé de lignes. Ex : Nombre total de ventes au cours du temps." -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "Ecart-type de ..." -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "Nombre qui exprime la dispersion des valeurs d'une colonne parmi toutes les lignes dans la réponse." -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "Minimum de ..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Valeur minimum d'une colonne" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "Maximum de ..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "Valeur maximum d'une colonne" @@ -4068,70 +4072,72 @@ msgstr "Autres catégories" msgid "Category, Type, Model, Rating, etc." msgstr "Catégorie, Type, Modèle, Classement" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "Réglages du compte utilisateur" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "Quitter le panneau d'administration" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "Journaux" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Aide" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "A propos de Metabase" #. Les items du menu sont tous des noms... -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "Déconnexion" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "Merci d'utiliser" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "Vous êtes en version" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "Sortie le" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "est une marque de" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "et est fabriqué avec soin à San Francisco, CA" #. C'est le texte dans le coin haut gauche du panneau d'administration -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Admin Metabase" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "Poser une question" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "Nouveau tableau de bord" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "Nouveau pulse" @@ -4144,7 +4150,6 @@ msgstr "Référentiel" msgid "Which metric?" msgstr "Quelle métrique ?" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "Définissez des métriques pour aider votre équipe à poser des questions plus simplement" @@ -4163,7 +4168,7 @@ msgid "Custom" msgstr "Personnalisée" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "Nouvelle question" @@ -4171,13 +4176,13 @@ msgstr "Nouvelle question" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "Utilisez le générateur de questions pour voir des tendances, afficher des listes ou créer vos propres métriques." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "Requête native" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "Pour des questions plus complexes, vous pouvez écrire votre propre requête SQL" @@ -4281,7 +4286,7 @@ msgstr "Saisir une valeur..." msgid "Enter a default value..." msgstr "Saisir une valeur par défaut..." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "Une erreur est survenue" @@ -4532,7 +4537,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "Nous recommandons de garder les pulses petits et ciblés pour aider à les conserver compréhensibles et utiles pour l'ensemble de l'équipe" #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "Sélectionner vos données" @@ -4548,47 +4553,47 @@ msgstr "Courriels" msgid "Slack messages" msgstr "Messages Slack" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "Envoyé" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} sera envoyé à " -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "Messages" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "Envoyer par courriel maintenant" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "Envoyer à {0} maintenant" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "Envoi en cours..." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "L'envoi a échoué" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "L'envoi n'a pas été fait car le pulse n'a aucun résultat." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "Pulse envoyé" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} a besoin d'être configuré(e) par un administrateur." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4675,7 +4680,7 @@ msgstr "Nombre de lignes au fil du temps" msgid "Break out by {0}" msgstr "Eclater par {0}" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "Résumez ce segment" @@ -4729,15 +4734,15 @@ msgstr "Croissant" msgid "Descending" msgstr "Décroissant" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "au cours du temps" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "Moyenne" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "Valeurs distinctes" @@ -4933,6 +4938,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} Les alertes basées sur l'objectif ne prennent pas encore en charge les graphiques multi-lignes, cette alerte sera donc envoyée chaque fois que le graphique a {1}." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "résultats" @@ -4948,48 +4954,48 @@ msgstr "Astuce" msgid "usually" msgstr "habituellement" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "Choisir un segment ou une table" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "Sélectionner une base de données" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "Sélectionner..." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "Sélectionner une table" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "Aucune table trouvé dans cette base de données" #. Manque-t-il ? https://www.lalanguefrancaise.com/orthographe/y-a-t-il-orthographe/ -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "Manque-t-il une question ?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "En savoir plus sur les questions imbriquées" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "Champs" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "Aucun segment trouvé." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "Trouver un segment" @@ -5039,7 +5045,7 @@ msgstr "Ajouter une agrégation" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5047,9 +5053,9 @@ msgstr "Ajouter une agrégation" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5075,7 +5081,7 @@ msgstr "Agrégat" msgid "None" msgstr "Aucun" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "Cette question est écrite en {0}." @@ -5087,11 +5093,11 @@ msgstr "Masquer l'éditeur" msgid "Hide Query" msgstr "Masquer la requête" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "Ouvrir l'éditeur" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "Montrer la requête" @@ -5136,7 +5142,7 @@ msgstr "SUPPRIMER" msgid "Move question" msgstr "Déplacer la question" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "Dans quelle collection cela devrait-il aller ?" @@ -5190,7 +5196,7 @@ msgstr "{0} pour cette question" msgid "Convert this question to {0}" msgstr "Convertir cette question en {0}" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "Cette question prendra approximativement {0} à se rafraîchir" @@ -5224,7 +5230,7 @@ msgstr "Si vous me donnez du grain à moudre, je peux vous montrer quelque chose msgid "How do I use this thing?" msgstr "Comment utiliser ceci ?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "Obtenir la réponse" @@ -5292,7 +5298,7 @@ msgstr "Obtenir une alerte" msgid "Back to last run" msgstr "Retourner à la dernière exécution" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "Visualisation" @@ -5304,7 +5310,7 @@ msgstr "Aucune description." msgid "Use for current question" msgstr "Utiliser pour la question actuelle" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "Questions potentiellement utiles" @@ -5328,7 +5334,7 @@ msgstr "Toutes les valeurs distinctes de {0}" msgid "Number of {0} grouped by {1}" msgstr "Nombre de {0} aggrégés par {1}" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5362,12 +5368,12 @@ msgid "Filter by {0}" msgstr "Filtrer par {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "Nombre de {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "Voir tous les {0}" @@ -5387,32 +5393,33 @@ msgstr "Voir les données brutes de {0}" msgid "More" msgstr "Plus" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "Expression invalide" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "erreur inconnue" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Formule du champ" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "Imaginez cela comme étant une sorte de formule de tableur : vous pouvez utiliser des nombres, champs dans la table, opérations mathématiques comme +, et quelques fonctions. Vous pourriez donc écrire quelque chose comme Soustotal - Cout." -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "En savoir plus" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "Donner un nom" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "Quelque chose de sympa et descriptif" @@ -5494,7 +5501,7 @@ msgid "Enter desired number" msgstr "Saisir le nombre désiré" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "Vide" @@ -5566,41 +5573,41 @@ msgstr "Pour utiliser plusieurs clauses optionnelles, vous pouvez inclure au moi msgid "Read the full documentation" msgstr "Lire la documentation complète" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "Libellé du filtre" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "Type de variable" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "Texte" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "Date" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Filtre de champ" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "Champ lié à " -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "Type de filtre" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "Obligatoire ?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "Valeur du filtre par défaut" @@ -5612,7 +5619,7 @@ msgstr "Archiver cette question?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "Cette question sera retirée de tous les tableaux de bords ou pulses qui l'utilisent." -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "Question" @@ -5624,8 +5631,8 @@ msgstr "Choisissez une question à ajouter" msgid "You are editing this page" msgstr "Vous modifiez cette page" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "Voir ce {0}" @@ -5633,15 +5640,15 @@ msgstr "Voir ce {0}" msgid "A subset of" msgstr "Un sous ensemble de" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "Choisir un type de champ" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5652,8 +5659,8 @@ msgid "by" msgstr "par" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "Type de champ" @@ -5678,12 +5685,12 @@ msgid "Nothing important yet" msgstr "Rien d'important pour l'instant" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "Rien d'intéressant pour l'instant" @@ -5693,12 +5700,12 @@ msgstr "Choses dont il faut être conscient à propos de ce/cette {0}" #. liaison #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "Rien de connu pour l'instant" @@ -5745,7 +5752,7 @@ msgstr "Quelque chose dont les utilisateurs devraient être conscient à propos msgid "Which 2-3 fields do you usually group this metric by?" msgstr "Quels champs (3 max.) regroupez-vous habituellement pour cette métrique ?" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "C'est l'endroit idéal où commencer si vous êtes novice dans les données de votre société, ou si vous voulez seulement voir ce qu'il s'y passe." @@ -5761,11 +5768,11 @@ msgstr "Raisons des modifications" msgid "Leave a note to explain what changes you made and why they were required" msgstr "Laisser un mot d'explication sur vos modifications et leurs motivations" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "Pourquoi cette base de données est intéressante" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "Choses dont on doit être conscient à propos de cette base de données" @@ -5775,44 +5782,44 @@ msgid "Databases and tables" msgstr "Bases de données et tables" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "Détails" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "Tables dans {0}" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "Nom réel dans la base de données" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "Pourquoi ce champ est intéressant" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "Choses dont on doit être conscient à propos de ce champ" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "Type de donnée" @@ -5826,12 +5833,12 @@ msgstr "Les champs de cette table apparaîtront ici au fur et à mesure de leur msgid "Fields in {0}" msgstr "Champs dans {0}" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "Nom du champ" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "Radiographier ce champ" @@ -5862,11 +5869,11 @@ msgstr "Nombre de {0}" msgid "See raw data for {0}" msgstr "Voir les données brutes pour {0}" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "Pourquoi cette table est intéressante" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "Choses dont on doit être conscient à propos de cette table" @@ -5880,7 +5887,7 @@ msgstr "Les questions à propos de cette table apparaîtront ici au fur et à me #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "Questions sur {0}" @@ -5895,7 +5902,7 @@ msgstr "{0} créé par {1}" msgid "Fields in this table" msgstr "Champs de cette table" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "Questions à propos de cette table" @@ -5931,7 +5938,7 @@ msgstr "Voir toutes les métriques" msgid "Segments and tables" msgstr "Segments et tables" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "Tables" @@ -6050,8 +6057,8 @@ msgstr "Y a-t-il une personne que vos utilisateurs pourraient contacter s'ils on msgid "Who should users contact for help if they're confused about this data?" msgstr "A qui les utilisateurs pourraient demander de l'aide s'ils ont besoin d'éclaircissements sur ces données ?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "Veuillez saisir un commentaire de révision" @@ -6067,15 +6074,15 @@ msgstr "Tout ce qu'il faut savoir sur cette métrique" msgid "How this Metric is calculated" msgstr "Comment cette métrique est calculée" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "Rien sur la façon dont c'est calculé pour le moment" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "Autres champs d'agrégation possibles pour cette métrique" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "Champs sur lesquels vous pouvez aggréger cette métrique" @@ -6100,20 +6107,20 @@ msgid "There are no revisions for this metric" msgstr "Il n'y pas de modifications pour cette métrique" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "Historique des modifications pour {0}" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "Radiographier cette métrique" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "Pourquoi ce segment est intéressant" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "Choses dont on doit être conscient à propos de ce segment" @@ -6137,60 +6144,60 @@ msgstr "Apprendre comment créer des segments" msgid "Questions about this segment will appear here as they're added" msgstr "Les questions à propos de ce segment apparaîtront ici au fil du temps" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "Il n'y pas de modifications pour ce segment" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "Champs utilisés dans ce segment" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "Questions sur ce segment" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "Radiographier ce segment" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "Se connecter" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "Rechercher" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "Tableau de bord" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "Nouvelle question" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "Sélectionner le type de base de données que vous utilisez" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "Ajoutez vos données" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "J'ajouterai mes données plus tard" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "Connexion en cours à {0}" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "Vous aurez besoin de quelques informations sur votre base de données, comme le nom d'utilisateur et son mot de passe. Si vous ne les avez pas maintenant, Metabase est aussi fourni avec un jeu de données d'exemple avec lequel vous pouvez démarrer." -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "J'ajouterai mes données plus tard" @@ -6198,43 +6205,43 @@ msgstr "J'ajouterai mes données plus tard" msgid "Control automatic scans" msgstr "Contrôler les analyses automatiques" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "Préférences relatives aux données d'utilisation" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "Merci de nous aider à améliorer Metabase" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "Nous ne collecterons aucun évènement d'utilisation" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Pour nous aider à améliorer Metabase, nous voudrions collecter certaines données concernant son usage via Google Analytics." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "Voici la liste complète de ce que nous collectons et pourquoi" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "Permettre à Metabase de collecter anonymement les événements d'utilisation" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase {0} ne collecte rien concernant vos données ou les réponses de vos questions." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "jamais" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "Toute la collection est complètement anonyme" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "La collection peut être désactivée à tout moment dans vos paramètres d'administration." @@ -6282,24 +6289,24 @@ msgstr "Bonjour, {0}, ravi de vous rencontrer !" msgid "Create a password" msgstr "Créer un mot de passe" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "Chut ..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "Confirmez le mot de passe" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "Chut... une seconde fois de façon à s'en assurer" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "Votre nom d'entreprise ou d'équipe" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "Bureau des prodiges" @@ -6477,11 +6484,11 @@ msgstr "Se connecter avec Google" msgid "User Details" msgstr "Détails de l'utilisateur" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "Réinitialiser" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "carte inconnue" @@ -6489,7 +6496,7 @@ msgstr "carte inconnue" msgid "Grid map requires binned longitude/latitude." msgstr "Une carte à quadrillage nécessite un regroupement (binning) de la latitude et de la longitude." -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "plus" @@ -6526,31 +6533,31 @@ msgstr "Désactiver" msgid "Rows {0}-{1} of {2}" msgstr "Lignes {0}-{1} parmi {2}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "Données tronquées à {0} lignes." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "Impossible de trouver la visualisation" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "Impossible d'afficher cet graphique avec ces données." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "Pas de résultat!" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "Toujours en attente..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "Cela prend habituellement en moyenne {0}." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(C'est un peu long pour un tableau de bord)" @@ -6566,11 +6573,11 @@ msgstr "Sélectionner un champ" msgid "error" msgstr "erreur" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "Cliquer et Glisser pour changer leur ordre" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "Ajouter des champs depuis la liste ci-dessous" @@ -6715,19 +6722,19 @@ msgstr "Ajouter une règle" msgid "Update rule" msgstr "Mettre à jour la règle" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "La visualisation est nulle" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "La visualisation doit définir une variable statique d'identifiant : " -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "Une visualisation avec cet identifiant est déjà enregistrée : " -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "Aucune visualisation pour {0}" @@ -6735,11 +6742,11 @@ msgstr "Aucune visualisation pour {0}" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "\"{0}\" est un champ non agrégé : S'il a plus d'une valeur pour une abscisse donnée, les valeurs seront additionnées." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "Ce type de graphique nécessite au moins 2 colonnes." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "Ce type de graphique ne prend pas en charge plus de {0} séries de données." @@ -6780,7 +6787,7 @@ msgstr "Configurez s'il vous plaît ce graphique" msgid "Edit Settings" msgstr "Modifier les paramètres de configuration" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "Des valeurs sont manquantes !" @@ -6807,7 +6814,7 @@ msgid "Bubble size" msgstr "Taille des bulles" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "Ligne" @@ -6864,104 +6871,104 @@ msgstr "Rien" msgid "Linear Interpolated" msgstr "Interpolation linéaire" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "Echelle des abscisses" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "Séries temporelles" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "Linéaire" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "Exponentielle" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "Logarithmique" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "Histogramme" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "Ordinal" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "Echelle des ordonnées" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "Afficher l'axe des abscisses et ses graduations" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Compacte" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "Tourner de 45°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "Tourner de 90°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "Afficher l'axe des ordonnées et ses graduations" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Mise à l'échelle automatique des ordonnées" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "Utiliser deux axes d'ordonnées si nécessaire" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "Afficher le libellé des abscisses" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "Libellé des abscisses" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "Afficher le libellé des ordonnées" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Libellé des ordonnées" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "Ecart-type" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "Surface" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "Histogramme" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "Histogramme" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "diagramme en colonnes" @@ -6987,19 +6994,19 @@ msgstr "Type d'entonnoir" msgid "Bar chart" msgstr "Diagramme en colonnes" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "Courbe" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "Choisissez s'il vous plaît les colonnes de longitude et latitude." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "Choisissez s'il vous plaît une carte régionale." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "Choisissez s'il vous plaît les colonnes de métrique et de région." @@ -7007,73 +7014,73 @@ msgstr "Choisissez s'il vous plaît les colonnes de métrique et de région." msgid "Map" msgstr "Carte" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "Type de carte" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "Carte régionale" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "Carte à épingles" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "Type d'épingle" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "Tuiles" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "Puces" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "Champ latitude" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "Champ longitude" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "Champ de métrique" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "Champ de région" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "Rayon" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "Flouter" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "Opacité minimale" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "Zoom maximum" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "Aucune relation trouvée." -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "via {0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "Ce/cette {0} est relié(e) à :" @@ -7085,7 +7092,7 @@ msgstr "Détail de l'objet" msgid "object" msgstr "objet" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "Total" @@ -7134,7 +7141,7 @@ msgid "Progress" msgstr "Barre de progession" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "Couleur" @@ -7225,13 +7232,13 @@ msgstr "Droite" msgid "Show background" msgstr "Montrer l'arrière plan" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "{0} cellule" msgstr[1] "{0} cellules" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "Binning automatique" @@ -7657,7 +7664,7 @@ msgstr "somme cumulée" msgid "{0} and {1}" msgstr "{0} et {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} parmi {1}" @@ -8979,31 +8986,31 @@ msgstr "Voir toutes les permissions sur la collection" msgid "Also change sub-collections" msgstr "Changer aussi les sous-collections" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Peut modifier cette collection et son contenu" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Peut voir les items de cette collection" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "Accès à la collection" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "Ce groupe a la permission de voir au moins une sous-collection de cette collection." -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "Ce groupe a le droit de modifier au moins une sous-collection de cette colleciton." -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "Voir les sous-collections" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "Se souvenir de moi" @@ -9023,7 +9030,7 @@ msgstr "Ajouter cette question au tableau de bord" msgid "Create a new dashboard" msgstr "Créer un nouveau tableau de bord" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "La page que vous avez demandé n'a pas pu être trouvée." @@ -9031,11 +9038,11 @@ msgstr "La page que vous avez demandé n'a pas pu être trouvée." msgid "Select a {0}" msgstr "Sélectionner un(e) {0}" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "Sauvegarder les tableaux de bord, questions et collections de \"{0}\"" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "Accéder aux tableaux de bord, questions et collections de \"{0}\"" @@ -9055,12 +9062,12 @@ msgstr "En lien" msgid "More X-rays" msgstr "Plus de radiographies" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "Pas de résultats" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabase n'a trouvé aucun résultat à votre recherche." @@ -9271,10 +9278,10 @@ msgid "Windows domain" msgstr "Nom de domaine Windows" #. Il semble que ce soit le libellé d'un des onglets : Données/Visualisation/Axes/Libellés -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "Libellés" @@ -9310,6 +9317,8 @@ msgstr "Partage" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9324,33 +9333,33 @@ msgstr "Partage" msgid "Display" msgstr "Affichage" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "Axes" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "Formatage" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "Essayez ces radiographies basées sur vos données." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "Un problème est survenu lors de l'affichage de ce graphique." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "Désolé, vous n'êtes pas autorisé à voir cette question." @@ -9370,20 +9379,20 @@ msgstr "Radiographie" msgid "Compare to the rest" msgstr "Comparer au reste" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "Utiliser le fuseau horaire de la machine virtuelle Java (JVM)" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "Nous vous suggérons de le laisser cela désactivé à moins que vous ne procédiez à un paramétrage manuel du fuseau horaire dans la plupart de vos requêtes avec ces données." -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "Les tableaux de bord les plus importants pour votre équipe vont ici" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "Épingler les tableaux de bord dans {0} pour qu'ils apparaissent dans cet espace pour tout le monde" @@ -9407,12 +9416,12 @@ msgstr "Astuce:â£" msgid "Select a currency type" msgstr "Sélectionnez un type de devise" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "Type de champ" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "Dépannage" @@ -9460,11 +9469,11 @@ msgstr "Durée (ms)" msgid "Currency" msgstr "Devise" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "Choisissez un utilisateur ou un canal ..." -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "Aucun paramètre de formatage" @@ -9637,15 +9646,15 @@ msgstr "Jauge" msgid "Gauge ranges" msgstr "Intervalle de jauge" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "Champ à afficher" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "dernier {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} était {1} {2}" @@ -9773,7 +9782,7 @@ msgstr "trimestre" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "Ajouter la question {0} au tableau de bord {1}:n{2}" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "Erreur lors de l'analyse de {0}:n{1}" @@ -10067,7 +10076,7 @@ msgstr "Tâche de nettoyage de l'historique réussie, {0} lignes ont été suppr msgid "not" msgstr "aucune" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "Pour plus d'informations, voir" @@ -11068,6 +11077,7 @@ msgstr "Comment cette métrique est répartie sur différents nombres" msgid "Sessions by page where the session began" msgstr "Sessions par page où la session a commencé" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11417,15 +11427,15 @@ msgstr "Peut se déclencher à nouveau ?" msgid "Triggers for {0}" msgstr "Déclencheurs pour {0}" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "Tâches" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "Tâches" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "Dupliqué {0}" @@ -11437,7 +11447,7 @@ msgstr "Dupliquer cet élément" msgid "Archive this item" msgstr "Archiver cet élément" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "Dupliquer le tableau de bord" @@ -11464,6 +11474,7 @@ msgid "Next {0}" msgstr "Suivant {0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "Précédent {0}" @@ -11558,8 +11569,8 @@ msgstr "[Q]Q" msgid "This" msgstr "Ce" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "Invalide" @@ -11567,11 +11578,11 @@ msgstr "Invalide" msgid "Add a time" msgstr "Ajouter une heure" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "Rien à comparer pour les {0} précédents." -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "par {0}" @@ -11628,39 +11639,39 @@ msgstr "Erreur lors de l'ajout de la directive SQL legacy à la Question sauvega msgid "Failed to notify {0} Database {1} updated" msgstr "Impossible de notifier {0} Base de données {1} mise à jour" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "Chargement du driver {0} {1}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "Chargement du pilote {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "Pilote non enregistré après le chargement {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "Erreur : tentative de changer la propriété {0} `:abstract?` de {1} à {2}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "Driver abstract enregistré {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "Pilote enregistré {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(parents: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "Initialisation du pilote {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "Raison :" @@ -11812,11 +11823,11 @@ msgstr "{0} dépendance {1} satisfaite ? {2}" msgid "Plugins with unsatisfied deps: {0}" msgstr "Plug-ins avec des dépendances non satisfaites : {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "Extraire le fichier {0} -> {1}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "La ressource n'existe pas." @@ -12142,7 +12153,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreateDate]] par semestre de l'année" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "Modifier l'utilisateur" @@ -12150,12 +12161,12 @@ msgstr "Modifier l'utilisateur" msgid "New user" msgstr "Nouvel utilisateur" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "Réinitialiser le mot de passe" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "Désactiver l'utilisateur" @@ -12437,11 +12448,11 @@ msgstr "Mauvaise instruction" msgid "Archive this?" msgstr "Archiver ?" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "Apprenez de vos données" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "Utiliser DNS SRV lors de la connexion" @@ -12451,7 +12462,7 @@ msgid "Using this option requires that provided host is a FQDN. If connecting t "leave this disabled." msgstr "L'utilisation de cette option nécessite que l'hôte fourni soit un FQDN. Si vous vous connectez à un cluster Atlas, vous devrez peut-être activer cette option. Si vous ne savez pas ce que cela signifie, laissez-la désactivée." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "Exécuter automatiquement les requêtes lors de filtrages ou de synthèses simples" @@ -12459,7 +12470,7 @@ msgstr "Exécuter automatiquement les requêtes lors de filtrages ou de synthès msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Lorsque cette option est activée, Metabase exécute automatiquement des requêtes lorsque les utilisateurs effectuent des explorations simples à l'aide des boutons \"Résumer\" et \"Filtrer\" lors de l'affichage d'un tableau ou d'un graphique. Vous pouvez désactiver cette option si les requêtes de cette base de données sont lentes. Ce paramètre n’affecte pas les accès aux détails ni les requêtes SQL." -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "En savoir plus sur cette base de données" @@ -12467,25 +12478,25 @@ msgstr "En savoir plus sur cette base de données" msgid "Archive this dashboard?" msgstr "Archiver ce tableau de bord?" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "Tous les résultats" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "Nos analyses" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "Somme cumulée de toutes les valeurs d'une colonne. \\ne.x. chiffre d'affaires total dans le temps." -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "Compte cumulé du nombre de lignes. \\ne.x. nombre total de ventes dans le temps." #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Filtre" @@ -12495,27 +12506,27 @@ msgid_plural "records" msgstr[0] "enregistrement" msgstr[1] "enregistrements" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "Parcourir les données" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "Ecrire le SQL" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "Question simple" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "Choisissez des données, affichez-les et filtrez-les, résumez-les et visualisez-les facilement." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "Question personnalisée" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "Utilisez l'éditeur de bloc-notes avancé pour joindre des modèles de données, créer des colonnes personnalisées, faire des calculs et bien plus encore." @@ -12523,7 +12534,7 @@ msgstr "Utilisez l'éditeur de bloc-notes avancé pour joindre des modèles de d msgid "Basic Metrics" msgstr "Métriques de base" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "Personnalisé..." @@ -12539,7 +12550,7 @@ msgstr "Choisir une limite" msgid "Show maximum" msgstr "Afficher le maximum" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "Prévisualiser" @@ -12568,7 +12579,7 @@ msgid "Custom column" msgstr "colonne personnalisée" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "Résumer" @@ -12585,11 +12596,10 @@ msgid "Pick the metric you want to see" msgstr "Choisissez la métrique que vous voulez voir" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "Choisissez une colonne d'agrégation" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "Choisissez vos données de départ" @@ -12601,7 +12611,7 @@ msgstr "Ne rien sélectionner" msgid "Select All" msgstr "Tout sélectionner" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "Choisissez une table..." @@ -12647,15 +12657,15 @@ msgid_plural "{0} breakouts" msgstr[0] "décomposition de {0}" msgstr[1] "Décompositions de {0}" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "Cacher les filtres" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "Afficher les filtres" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "A partir de" @@ -12685,11 +12695,11 @@ msgstr "Affichage de {0}" msgid "Summarized" msgstr "Résumé" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "Cacher l'éditeur" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "Montrer l'éditeur" @@ -12697,7 +12707,7 @@ msgstr "Montrer l'éditeur" msgid "Pick the metric you'd like to see" msgstr "Choisissez la métrique que vous voudriez voir" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "options de {0}" @@ -12725,7 +12735,7 @@ msgstr "Ajouter un métrique" msgid "Profile" msgstr "Profil" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "C'est habituellement agréablement rapide mais semble prendre un moment désormais." @@ -12753,19 +12763,19 @@ msgstr "Segment inconnu" msgid "Unknown Filter" msgstr "Filtre inconnu" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "Jointure externe gauche (left outer join)" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "Jointure externe droite (right outer join)" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "Jointure interne (inner join)" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "Jointure externe complète (full outer join)" @@ -12817,7 +12827,7 @@ msgstr "Installation de la base de données" msgid "Could not find {0} driver." msgstr "Impossible de trouver le driver {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "Les pilotes abstraits ne peuvent pas dériver (hériter) de pilotes concrets." @@ -12875,7 +12885,7 @@ msgstr "spark-deps.jar n'est plus utilisé par Metabase 0.32.0+. Vous pouvez don msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "Utilisation d'un classloader nouvellement créé comme classloader de contexte partagé: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "Impossible de copier le fichier" @@ -13038,7 +13048,7 @@ msgstr "Incapable de mettre à jour le champ binné: la requête manque de méta #: src/metabase/query_processor/middleware/binning.clj msgid "Cannot update binned field: could not find matching source metadata for Field ''{0}''" -msgstr "Dans l'incapacité de mttre à jour le champ binné: métadonnées correspondantes non trouvées pour le champ ''{0}''" +msgstr "Dans l'incapacité de mttre à jour le champ binné: métadonnées correspondantes non trouvées pour le champ \"{0}\"" "" #: src/metabase/query_processor/middleware/cache.clj @@ -13154,7 +13164,7 @@ msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "Choisissez les colonnes concernées" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Lorsque cette option est activée, Metabase exécute automatiquement des requêtes lorsque les utilisateurs effectuent des explorations simples à l'aide des boutons Résumer et Filtrer lors de l'affichage d'un tableau ou d'un graphique. Vous pouvez désactiver cette option si l'interrogation de cette base de données est lente. Ce paramètre n’affecte pas les accès au détail ni les requêtes SQL." @@ -13191,3 +13201,440 @@ msgstr "Erreur lors de la détermination des colonnes attendues pour la requête #: src/metabase/query_processor/middleware/async.clj msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "Exception non gérée, aurait du être prise en charge par le middleware `catch-exceptions`." + +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "Informations de diagnostic" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "Sélectionnez le processus de Metabase :" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "Tous les processus de Metabase" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "La fenêtre a été fermée avant la fin de l'authentification Google." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "Un problème est survenu lors de la connexion avec Google. Veuillez contacter un administrateur." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "Connectez-vous avec un e-mail" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "L'utilisation de cette option nécessite que l'hôte fourni soit un nom de domaine complet. Si vous vous connectez à un cluster Atlas, vous devrez peut-être activer cette option. Si vous ne savez pas ce que cela signifie, laissez cette option désactivée." + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "Par défaut, Metabase effectue une synchronisation horaire légère et une analyse quotidienne intensive des valeurs de champ. Si vous avez une grande base de données, nous vous recommandons de l'activer et de vérifier quand et à quelle fréquence les analyses de valeur de champ se produisent." + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "Supprimer ces suggestions" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "Supprimer ces suggestions ?" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "Celles-ci n'apparaîtront plus sur la page d'accueil pour aucun de vos utilisateurs, mais vous pouvez toujours accéder aux radiographies en cliquant sur Parcourir les données dans la navigation principale, puis en cliquant sur l'icône de l'éclair sur l'une de vos tables." + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "Cacher cette section" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "Cacher cette section ?" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "\"Nos données\" n'apparaîtront plus sur la page d'accueil pour aucun de vos utilisateurs, mais vous pouvez toujours parcourir vos bases de données et tableaux en cliquant sur Parcourir les données dans la navigation principale." + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "Ma nouvelle collection fantastique" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "Horodatage d'annulation" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "Heure d'annulation" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "Date d'annulation" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "Horodatage de la suppression" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "Heure de suppression" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "Date de suppression" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "Uniquement dans les vues de détail" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "N'incluez pas" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "Ce champ ne sera ni visible ni sélectionnable dans les questions créées avec le générateur de requêtes. Il sera toujours accessible dans les requêtes SQL / natives." + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "Somme cumulative" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "Déviation standard" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "doit contenir au moins {0} caractères" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "Doit contenir au moins {0} caractères" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "Nom (requis)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "Exécuter le texte sélectionné" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "Exécuter la requête" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "(⌘ + Entrée)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "(Ctrl + Entrée)" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "Voici où vos résultats apparaîtront" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "Vous n'apporterez aucune modification permanente à une question enregistrée, sauf si vous cliquez sur Enregistrer et choisissez de remplacer la question d'origine." + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "Il n'y a pas encore de filtres pour ce type de champ." + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "Recherchez ce champ" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "Pourquoi cette métrique est intéressante" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "Choses à savoir sur cette métrique" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "Comment cette métrique est calculée" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "Tableau basé sur" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "(vide)" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "Ligne de but" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "Ligne de tendance" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "Afficher les valeurs sur les points de données" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "Valeurs à afficher" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "Autant que possible" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "Tout" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "Les données incluent des valeurs de dimension manquantes." + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "Nous avons rencontré une date non valide : \"{0}\"" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "La requête pour ce graphique a été exécutée dans {0} plutôt que {1} en raison de contraintes de base de données ou de pilote." + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "Ce graphique contient des requêtes exécutées dans plusieurs fuseaux horaires : {0}" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "Une erreur s'est produite pendant l'execution de la requête" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "La base de données H2 existe déjà : %s, suppression." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "Pas besoin de migrer, utilisez simplement le fichier H2 existant" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "La BDD cible est déjà remplie!" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "Informations système : n {0}" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "Configuration de la base de données" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "Déplacement d'instances de {0} qui ne font pas partie d'une collection vers {1} collection {2}" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "Clause '{{...}}' non valide : un nom de paramètre est attendu" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "Les clauses '{{...}}' ne peuvent pas être vides." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "Les clauses '[[...]]' doivent contenir au moins une clause '{{...}}'." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "Requête invalide : '[[' ou '{{' sans ']]' ou '}}' correspondant" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "Vous devrez sélectionner une valeur pour ''{0}'' avant que cette requête puisse s'exécuter." + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "Impossible de trouver le champ avec l'ID : {0}" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "Erreur lors du chargement de l'espace de noms du pilote" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "Impossible de charger le pilote {0}." + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "Impossible d'exécuter la requête : paramètres requis manquants : {0}" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "Je ne sais pas comment analyser {0} {1}" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "Je ne sais pas comment remplacer {0}, attendait un identifiant." + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "Je ne sais pas comment annuler la préparation des valeurs de la classe {0}" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "Création d'un nouveau pool de connexions pour {0} de la base de données {1} ..." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "Fuseau horaire non valide ''{0}''" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "Impossible de définir le fuseau horaire : chaîne de format SQL non valide ou manquante pour le pilote {0}." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "Avez-vous implémenté set-timezone-sql?" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "Impossible de définir le fuseau horaire ''{0}''" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "Erreur de connexion à la base de données" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "Erreur lors de l'analyse du JSON" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "Afficher ou non les données sur la page d'accueil. Les administrateurs peuvent désactiver cette option afin de diriger les utilisateurs vers un meilleur contenu que les données brutes" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "Afficher ou non des suggestions de rayons X sur la page d'accueil. Ils seront également masqués si des tableaux de bord sont épinglés. Les administrateurs peuvent les masquer pour diriger les utilisateurs vers un meilleur contenu que les données brutes" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "Identifiez la source des requêtes HTTP par la valeur de cet entête, au lieu de son adresse distante." + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "Impossible de résoudre le paramètre {0}/{1}" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "Paramètre invalide : {0}/{1}" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "a atteint son objectif" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "est en dessous de son objectif" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "Envoi du Pulse ({0} : {1}) par email" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "Pulse : {0}" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "Envoi du Pulse ({0} : {1}) par Slack" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "Envoi de l'alerte ({0} : {1}) par email" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "Alerte Metabase : {0} a {1}" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "Envoi de l'alerte ({0} : {1}) par Slack" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "Alerte : {0}" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "Impossible de trouver le sélecteur de couleurs JS à ''{0} '" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "CORRIGEZMOI: Ce ne sont pas des littéraux temporels valides: {0} {1}. Pourquoi essayons-nous de les formater comme tels?" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "Aucune information correspondante trouvée pour la jointure avec la table {0} ''{1}'' sur le champ {2} ''{3}'' via la clef étrangère {4} ''{5}''" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "Je ne sais pas comment obtenir des informations sur le champ: {0}" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "La requête a expiré après {0}" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "Formatage des lignes avec les résultat de l'ID du fuseau horaire {0}" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "ID de fuseau horaire invalide ''{0}''" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "Enregistrement de l'empreinte digitale pour {0}" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "Envoi d'un e-mail d'abandon !" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "Les transformations résultantes ne sont pas conformes aux attentes. \n" +"Attendu : {0}" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "A expiré après {0}" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "Aucun ajusteur temporel nommé {0}" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "Unité invalide : {0}" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "Je ne sais pas comment analyser {0} en utilisant le format {1}" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "La valeur du jeton est manquante pour le chemin {0}" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "Échec de l'envoi des statistiques d'utilisation" diff --git a/locales/it.po b/locales/it.po index fd4e722d84687ee5a1c4c139818f650c79eddf58..d38ddfb3ed9ae7debb5929496f3b347fe965cff4 100644 --- a/locales/it.po +++ b/locales/it.po @@ -29,19 +29,18 @@ msgid "Select a database type" msgstr "Selezionare il tipo di database" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "Salva" @@ -101,7 +100,7 @@ msgstr "Mai, lo farò manualmente se necessario" #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "Salvataggio..." @@ -138,16 +137,16 @@ msgstr "in questa casella:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -155,20 +154,20 @@ msgstr "in questa casella:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "Annulla" @@ -180,33 +179,33 @@ msgstr "Annulla" msgid "Delete" msgstr "Elimina" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "Basi di Dati" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "Aggiungi un Database" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "Connessione" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "Schedulazione" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -216,18 +215,18 @@ msgstr "Schedulazione" msgid "Save changes" msgstr "Salva i cambiamenti" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "Azioni" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "Sincronizza lo schema database ora" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -235,41 +234,41 @@ msgstr "Sincronizza lo schema database ora" msgid "Starting…" msgstr "Avvio..." -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "Sync fallito" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "Sync azionato!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "Ri-scansiona i valori dei campi adesso" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "Inizio della scansione fallito" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "Scan azionato!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "Zona Pericolosa" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "Scarta valori campo salvati" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "Rimuovere questo database" @@ -278,18 +277,17 @@ msgid "Add database" msgstr "Aggiungi un database" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "Nome" @@ -309,23 +307,24 @@ msgstr "Caricamento..." msgid "Bring the sample dataset back" msgstr "Ripristinare i dati d'esempio" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "Impossibile collegarsi al database. Controlla i parametri connessione" -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "Creazione riuscita!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "Salvataggio riuscito!" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "Edita" @@ -365,9 +364,9 @@ msgstr "Fallito" msgid "Success" msgstr "Riuscito" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "Anteprima" @@ -387,7 +386,7 @@ msgstr "Nessun tipo speciale" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "Altri" @@ -416,7 +415,7 @@ msgstr "Colonna" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "Visibilità " @@ -498,35 +497,34 @@ msgstr "Trova una tabella" msgid "Schemas" msgstr "Schemi" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "Metriche" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "Aggiungi una metrica" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "Definizione" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "Crea metriche per aggiungerle al menu a discesa dela Vista nel generatore di query" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -534,11 +532,11 @@ msgstr "Crea metriche per aggiungerle al menu a discesa dela Vista nel generator msgid "Segments" msgstr "Segmenti" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "Aggiungi un segmento" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "Crea segmenti per aggiungerle nel menu a discesa dei Filtri nel generatore di query" @@ -584,23 +582,23 @@ msgstr "Storico" msgid "Revision History for" msgstr "Cronologia delle revisioni per" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} – Impostazioni dei campi" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "Dove questo campo apparirà in tutto Metabase" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Filtra per questo campo" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "Quando questo campo é usato in un filtro, cosa dovrebbero usare le persone per inserire il valore per il quale vogliono filtrare?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "Nessuna descrizione per questo campo fino ad ora" @@ -641,11 +639,11 @@ msgstr "Il campo corrente non é una Foreign Key o il metadata della tabella tar msgid "The selected field isn't a foreign key" msgstr "Il campo selezionato non é una foreign key" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "Visualizza valori" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "Scegli se mostrare il valore originale dal database o se visualizzare questo campo associato o informazioni personalizzate." @@ -665,12 +663,12 @@ msgstr "Suggerimento:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "Potresti voler aggiornare il nome del campo per assicurarti che abbia ancora senso in base alle tue scelte di rimappatura." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "Valori del campo memorizzato nella cache" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabase può analizzare i valori per questo campo in modo da abilitare i filtri delle caselle di controllo nelle 'dashboard' e nelle 'question'." @@ -697,82 +695,82 @@ msgstr "Cancellazione avviata" msgid "Select any table to see its schema and add or edit metadata." msgstr "Seleziona una qualsiasi tabella per vederne lo schema o cambiarne i metadati" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "Nome è obbligatorio" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "Descrizione è obbligatorio" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "Sono richieste le informazioni di revisione" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "E' richiesta un' aggregazione" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "Modifica la tua Metrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "Crea la tua metrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "Cambia le tue metriche e aggiungi una nota esplicativa" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "È possibile creare metriche salvate per aggiungere un'opzione metrica con nome a questa tabella. Le metriche salvate includono il tipo di aggregazione, il campo aggregato e, facoltativamente, qualsiasi filtro aggiunto. Ad esempio, è possibile utilizzarlo per creare qualcosa come il modo ufficiale di calcolare 'Prezzo medio' per una tabella Ordini." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "Risultato:" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "Dai un nome alla tua Metrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "Dai un nome alla tua Metrica per aiutare gli altri a trovarla." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "Qualcosa di descrittivo ma non troppo dettagliato" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "Descrivi la tua Metrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "Dai alla tua Metrica una descrizione per aiutare gli altri a capire di cosa tratta" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "Questo é un buon posto per essere piú specifici riguardo le metriche meno ovvie" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "Motivo per le modifiche" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "Lascia un commento per spiegare quali cambiamenti hai fatto e perché li ritenevi necessari." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "Questo verrá mostrato nello storico revisioni di questa metrica per aiutare tutti a ricordarsi perché le cose sono cambiate" @@ -788,7 +786,7 @@ msgstr "Modifica il tuo Segmento" msgid "Create Your Segment" msgstr "Crea il tuo Segmento" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "Cambia il tuo segmento e aggiungi una nota esplicativa" @@ -796,37 +794,37 @@ msgstr "Cambia il tuo segmento e aggiungi una nota esplicativa" msgid "Select and add filters to create your new segment for the {0} table" msgstr "Seleziona un filtro da aggiungere per creare un nuovo segmento sulla tabella {0}" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "Dai un nome al tuo Segmento" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "Dai un nome al tuo segmento per aiutare gli altri a trovarlo" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "Discrivi il tuo segmento" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "Dai una descrizione al tuo segmento per aiutare gli altri a capire di cosa si tratta." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "questo e' un buon posto per essere precisi nel descrivere le regole di segmento meno ovvie" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "Questo verrà visualizzato nella cronologia delle revisioni di questo segmento per aiutare tutti a ricordare perché le cose sono cambiate" #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "Impostazioni" @@ -840,33 +838,29 @@ msgstr "Riscansiona questa tabella" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "Aggiungi" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "Indirizzo email formattato non correttamente" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "Primo nome" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "Cognome" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "Indirizzo email" @@ -904,7 +898,7 @@ msgstr "Utenti" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "Email" @@ -913,8 +907,8 @@ msgid "A group is only as good as its members." msgstr "Un gruppo é tanto buono quanto lo sono i suoi membri." #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "Admin" @@ -974,11 +968,11 @@ msgstr "Rimuovi gruppo" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "Fatto" @@ -987,9 +981,9 @@ msgid "Group name" msgstr "Nome del gruppo" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "Gruppi" @@ -1018,10 +1012,10 @@ msgstr "Password dimenticata" msgid "Deactivate" msgstr "Disattiva" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "Persone" @@ -1062,7 +1056,7 @@ msgstr "Abbiamo inviato un invito a {0} con le istruzioni per impostare la passw msgid "We've re-sent {0}'s invite" msgstr "Sono stati inviati gli inviti di {0}" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "Ok" @@ -1094,7 +1088,7 @@ msgstr "Saranno in grado di accedere di nuovo e verranno reinseriti nei gruppi i msgid "Reset {0}'s password?" msgstr "Reimposta la password di {0}?" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "Reset" @@ -1133,19 +1127,19 @@ msgstr "Aggiungi qualcuno" msgid "Last Login" msgstr "Ultimo Login" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Iscritto tramite Google" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "Accesso con LDAP" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "Riattivare questo account" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "Mai" @@ -1187,7 +1181,7 @@ msgid " native queries for " msgstr " query native per " #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "Permessi" @@ -1244,115 +1238,115 @@ msgstr "MetaBot è il bot Slack di Metabase. Puoi scegliere a cosa può accedere msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "Il \"{0}\" gruppo può avere accesso a un diverso insieme di {1} rispetto a questo gruppo, che può dare a questo gruppo ulteriore accesso ad alcune {2}." -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "Il gruppo \"{0}\" ha un livello di accesso superiore a questo, per cui sarà sostutuita questa impostazione. Devi limitare o revocare l'accesso del gruppo \"{1}\" a questo elemento." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "Limita" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "Revoca" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "accesso anche se \"{0}\" ha un accesso maggiore?" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "Limita l'accesso" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "Revoca L'accesso" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "Modificare l'accesso a questo database a limitato?" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "Cambia" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "Consenti scrittura di query?" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "Questo cambierà anche l'accesso ai dati di questo gruppo a 'Non ristretto' (Unrestricted) per questo database." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "Permetto" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "Revocare l'accesso a tutte le tabelle?" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "Questo revocherà anche l'accesso di questo gruppo alle query per questo database." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "Concedere l'accesso illimitato" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "Accesso Illimitato" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "Acceso limitato" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "Accesso Negato" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "Scrivi Query" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Puoi scrivere query brutali" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "Cura la collezione" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "Vedi collezione" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "Accesso ai dati" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "Vedi tabelle" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "SQL query" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "Vedi schemi" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "Modello dei dati" @@ -1495,8 +1489,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "É disponibile Metabase {0}. La versione in uso é la {1}." #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "Aggiornare" @@ -1519,18 +1513,20 @@ msgstr "Cancellare mappa personalizzata" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "Rimuovere" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "Seleziona..." @@ -1733,7 +1729,7 @@ msgstr "Impostazione sconosciuta {0}" msgid "Setup" msgstr "Imposta" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "Generale" @@ -1860,7 +1856,7 @@ msgid "Username or DN" msgstr "Username o DN" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "Password" @@ -2023,31 +2019,31 @@ msgstr "Password dimenticata" msgid "The email you use for your Metabase account" msgstr "L'email che usi per il tuo account Metabase" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "Invia email di reimpostazione della password" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "Controlla la tua e-mail per le istruzioni su come reimpostare la password." -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "Accedi a Metabase" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "O" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "Username e indirizzo email" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "Accedi" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "Mi sembra di aver dimenticato la mia password" @@ -2066,7 +2062,7 @@ msgstr "Per motivi di sicurezza, i link di reimpostazione password scadono dopo "per resettare la tua password, puoi {0}." #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "Nuova password" @@ -2079,38 +2075,38 @@ msgid "Create a new password" msgstr "Crea una nuova password" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "Assicurati che sia sicuro come le istruzioni sopra" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "Conferma la nuova password" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "Assicurati che corrisponda a quello che hai appena inserito" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "La tua password è stata appena reimpostata" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "Accedi con la tua nuova password" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "salvataggio fallito" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2129,22 +2125,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "Anche le 'dashboard', le collezioni, e i 'pulse' in questa collezione saranno archiviati" #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "Archivia" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "Questo {0} è stato archiviato" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "Vedi l'archivio" @@ -2154,17 +2151,19 @@ msgstr "Annulla questo {0}" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "I tuoi dati" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "Verifica questa tabella" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "Ulteriori informazioni su questa tabella" @@ -2259,44 +2258,44 @@ msgstr "Fissa" msgid "Drag something here to pin it to the top" msgstr "Trascina qualcosa qui per fissarlo in cima" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "Collezioni" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "Trascian qui per sbloccare" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} elemento selezionato" msgstr[1] "{0} elementi selezionati" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "Vuoi spostare {0} elementi" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "Vuoi spostare \"{0}\"?" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "Sposta" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "Modifica la collezione" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "Archivia questa collezione" @@ -2313,11 +2312,11 @@ msgstr "Nuova collezione" msgid "Copied!" msgstr "Copiato!" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "Usa un tunnel-SSH per le connessioni col database" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." @@ -2325,7 +2324,7 @@ msgstr "È possibile accedere ad alcune installazioni di database solo collegand "Questa opzione fornisce anche un ulteriore livello di sicurezza quando una VPN non è disponibile.\n" "Abilitare ciò è di solito più lento rispetto ad una connessione diretta." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "Questo è un database grande, quindi lasciami scegliere quando Metabase deve sincronizzare e scansionare" @@ -2335,47 +2334,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail msgstr "Come impostazione predefinita, Metabase esegue una sincronizzazione oraria leggera e un'analisi giornaliera intensiva dei valori dei campi.\n" "Se si dispone di un database di grandi dimensioni, si consiglia di attivarlo e rivedere quando e con quale frequenza si verificano le scansioni dei valori di campo." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0} per generare un ID client e un client segreto per il progetto." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "Clicca qui" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "Scegli \"Altro\" come tipo di applicazione. Chiamalo come preferisci." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0} per prendere un codice di autenticazione" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "con i permessi di Google Drive" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "Per usare Metabase con questi dati, devi abilitare l'accesso API nella console degli sviluppatori Google (Google Developers Console)." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "{0} per andare alla console se non lo hai già fatto" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "Come vorresti fare riferimento a questo database?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "Successivo" @@ -2394,7 +2393,7 @@ msgstr "Sposta questo elemento" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "Modifica questa domanda (question)" @@ -2407,7 +2406,7 @@ msgstr "Tipo di azione" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "Vedi storia di revisione" @@ -2423,7 +2422,7 @@ msgstr "Archivia azione" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "Aggiungi alla 'dashboard'" @@ -2434,7 +2433,7 @@ msgstr "Scarica i risultati" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "Condividi e incorpora" @@ -2480,65 +2479,63 @@ msgstr "Basato sullo schema" msgid "A look at your" msgstr "Uno sguardo alla tua" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "Cerca la lista" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "Cercato da {0}" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr " o inserisci un ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "Inserisci un ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "Inserisci un numero" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "Inserisci del testo" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "Nessun {0} corrispondente trovato" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "Includendo tutte le opzioni nel tuo filtro probabilmente non farai molto..." -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "Qualcosa è andato storto" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "Ci siamo imbattuti in un errore. Puoi provare ad aggiornare la pagina, o semplicemente tornare indietro." -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "Ancora nessuna descrizione" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "Nuovo {0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "Chiesto da {0}" @@ -2559,8 +2556,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "Ripristinato a una revisione precedente e {0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "Storia di revisione" @@ -2605,7 +2602,7 @@ msgid "Questions" msgstr "Domande" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "Pulse" @@ -2642,7 +2639,7 @@ msgstr "Iscriviti" msgid "You're subscribed. Thanks for using Metabase!" msgstr "Sei iscritto. Grazie per aver usato Metabase" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "Siamo un po' persi..." @@ -2651,14 +2648,14 @@ msgid "Temporary Password" msgstr "Password temporanea" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "Nascondi" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "Mostra" @@ -2760,7 +2757,7 @@ msgstr "Selezionato" msgid "Nothing to select" msgstr "Niente da selezionare" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "Mi spiace, non hai i permessi per vederlo." @@ -2768,8 +2765,8 @@ msgstr "Mi spiace, non hai i permessi per vederlo." msgid "Unknown error encountered" msgstr "C'è stato un errore sconosciuto" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "Crea" @@ -2777,7 +2774,6 @@ msgstr "Crea" msgid "Create dashboard" msgstr "Crea una 'dashboard'" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "Tabella" @@ -2802,12 +2798,11 @@ msgstr "Prova ad aggiustare il tuo filtro per trovare ciò che stai cercando." msgid "View by" msgstr "Visto da" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "di" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "Non dirlo a nessuno, ma tu sei il mio preferito." @@ -2815,19 +2810,19 @@ msgstr "Non dirlo a nessuno, ma tu sei il mio preferito." msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "Una volta che hai collegato i tuoi dati, posso mostrarti alcune esplorazioni automatiche chiamate raggi X. Ecco alcuni esempi con dati di esempio." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "Inizia qui" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "La nostra analisi" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "Sfoglia tutti gli elementi" @@ -2839,44 +2834,45 @@ msgstr "Sostituisci o salva come nuovo?" msgid "Replace original question, \"{0}\"" msgstr "Sostituisci la richiesta (`question`) originaria, {0}" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "Salva come nuova richiesta (`question`)" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "Prima, salva la tua richiesta (`question`)" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "Salva la richiesta (`question`)" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "Quale è il nome della tua card?" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "Descrizione" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "E' opzionale ma oh, così utile" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "In quale raccolta dovrebbe andare?" @@ -2917,11 +2913,11 @@ msgstr "Archivia la 'dashboard'" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "Assicurati di fare una selezione per ogni serie, altrimenti il filtro non funzionerà su questa card." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "Questa dashboard sembra vuota" -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "Aggiungi una richiesta(Question) per iniziare a renderla utile!" @@ -2941,50 +2937,50 @@ msgstr "Esci dallo schermo intero" msgid "Enter fullscreen" msgstr "Porta a tutto schermo" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "Salvataggio...." -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "Aggiungi una richiesta (question)" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "Aggiungi una richiesta (question) alla dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "Aggiungi un filtro" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "Parametri" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "Aggiungi un campo di testo" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "Sposta la Dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "Modifica la dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "Modifica il layout della dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "Stai modificando una dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Seleziona il campo che vorresti fosse filtrato per ogni card" @@ -3035,11 +3031,11 @@ msgstr "30 minuti" msgid "60 minutes" msgstr "60 minuti" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "Auto-aggiorna" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "Aggiornando in" @@ -3051,7 +3047,7 @@ msgstr "Eliminare la richiesta (Question)?" msgid "Your dashboard was saved" msgstr "La tua dashboard è stata salvata" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "Guardalo" @@ -3138,10 +3134,9 @@ msgstr "eliminata una richiesta dalla dashboard - " msgid "received the latest data from" msgstr "ricevuti gli ultimi dati da" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "Sconosciuto" @@ -3258,7 +3253,7 @@ msgstr "Vedi tutto" msgid "Recently Viewed" msgstr "Recentemente visualizzato" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "Di recente non hai guardato dashboard o domande" @@ -3272,11 +3267,11 @@ msgid "Unarchive" msgstr "Non archiviare" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "Attività " -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "Risultati per \"{0}\"" @@ -3338,6 +3333,9 @@ msgstr "URL dell'immagine di avatar" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "Comune" @@ -3380,8 +3378,8 @@ msgstr "Longitudine" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "Numero" @@ -3427,93 +3425,93 @@ msgstr "ora di creazione " msgid "Creation date" msgstr "Data creazione " -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "Prodotto" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "Utente" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "Sorgente" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "Prezzo" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "Timestamp di iscrizione" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "Orario di iscrizione" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "Data di iscrizione" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "Condividi" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "Proprietario" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "Società " -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "Sottoscrizione" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "Punteggio" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "Titolo" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "Commento" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "Costo" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Margine lordo" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "Compleanno" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "Casella di ricerca" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "Una lista di tutti i valori" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "Casella di input normale" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "Ovunque" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "L'impostazione predefinita Questo campo verrà visualizzato normalmente in tabelle e grafici." @@ -3521,7 +3519,7 @@ msgstr "L'impostazione predefinita Questo campo verrà visualizzato normalmente msgid "Only in Detail Views" msgstr "Solo nelle viste di dettaglio" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "Questo campo verrà visualizzato solo quando si visualizzano i dettagli di un singolo record. Usalo per informazioni lunghe o inutili in una tabella o in un grafico." @@ -3535,7 +3533,8 @@ msgstr "Metabase non recupererà mai questo campo. Utilizzare questo per informa #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3550,8 +3549,9 @@ msgid "CumulativeCount" msgstr "Conteggio cumulativo" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "Somma" @@ -3560,7 +3560,7 @@ msgid "CumulativeSum" msgstr "Somma cumulativa" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "Distinto" @@ -3569,25 +3569,28 @@ msgid "StandardDeviation" msgstr "DeviazioneStandard" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "Media" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "Min" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "Max" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "rilevati errori di lessico" @@ -3637,12 +3640,13 @@ msgid "What do you want to find out?" msgstr "Cosa vuoi scoprire?" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "Dati grezzi" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "Conto cumulativo" @@ -3686,174 +3690,174 @@ msgstr "Filtrato per " msgid "Sorted by " msgstr "Ordinato per " -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "Vero" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "Falso" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Seleziona il campo longitudine" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "Inserisci la latituine superiore" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "inserisci la longitudine a sinistra" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "Inserisci la latitudine inferiore" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "Inserisci la longitudine a destra" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "E'" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "Non è" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "E' vuoto" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "Non vuoto" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "Uguale a" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "Non uguale a " -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "Più grande di" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "Meno di" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "Tra" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "Più grande o uguale a" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "Meno di o uguale a" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "Contiene" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "Non contiene" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "Inizia con" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "Finisce con" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "Prima" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "Dopo" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "Dentro" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "Solo una tabella con le righe nella risposta, nessuna operazione aggiuntiva." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "Conteggio di righe" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "Numero totale di righe nella risposta" -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "Somma di ..." -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "Somma di tutti i valori di una colonna" -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "Media di ..." -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "Media di tutti i valori di una colonna" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "Numeri di valori distinti di ..." -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "Numero di valori univoci di una colonna tra tutte le righe nella risposta." -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "Somma cumulativa di ..." @@ -3861,7 +3865,7 @@ msgstr "Somma cumulativa di ..." msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "Somma additiva di tutti i valori di una colonna. \\\\ ne.x. entrate totali nel tempo." -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "Conteggio cumulativo di righe" @@ -3869,27 +3873,27 @@ msgstr "Conteggio cumulativo di righe" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "Conteggio additivo del numero di righe. \\\\ ne.x. numero totale di vendite nel tempo." -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "Deviazione standard di ..." -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "Numero che esprime quanto i valori di una colonna variano tra tutte le righe nella risposta." -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "Minimo di ..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Minimo valore di una colonna" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "Massimo di ..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "Massimo valore di una colonna" @@ -4063,68 +4067,70 @@ msgstr "Altre categorie" msgid "Category, Type, Model, Rating, etc." msgstr "Categoria, Tipo, Valutazione, ecc." -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "Impostazioni di account" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "Esci da amministratore" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "I log" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Aiuto" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "Su Metabase" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "Esci" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "Grazie per l'uso" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "Tu stai usando la versione" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "Costruita su" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "E un Marchio di" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "ed è costruito con cura a San Francisco, in California" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Amministratore Metabase" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "Poni una domanda" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "Nuova Dashboard" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "Nuovo Pulse" @@ -4137,7 +4143,6 @@ msgstr "Referente" msgid "Which metric?" msgstr "Quale metrica?" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "Definire metriche comuni per il tuo team rende ancora più facile fare domande" @@ -4155,7 +4160,7 @@ msgid "Custom" msgstr "Personalizzato" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "Nuove domande" @@ -4163,13 +4168,13 @@ msgstr "Nuove domande" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "Utilizza il semplice generatore di domande per visualizzare tendenze, elenchi di cose o per creare le tue metriche." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "Query native" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "Per domande più complicate, puoi scrivere la tua query SQL o nativa." @@ -4273,7 +4278,7 @@ msgstr "Inserisci un valore" msgid "Enter a default value..." msgstr "Inserisci un valore predefinito..." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "C'è stato un errore" @@ -4521,7 +4526,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "Raccomandiamo di mantenere gli impulsi piccoli e concentrati per mantenerli digeribili e utili a tutta la squadra." #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "Scegli i tuoi dati" @@ -4537,47 +4542,47 @@ msgstr "Email" msgid "Slack messages" msgstr "Messaggi Slack" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "Spedito" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} saranno spediti a" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "Messaggi" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "Spedisci email ora" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "Spedisci {0} ora" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "Invio..." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "Invio fallito" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "Non spedire in quanto pulse non ha risultati" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "Pulse ha inviato" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} deve essere impostato da un amministratore." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4664,7 +4669,7 @@ msgstr "Conteggio delle righe per tempo" msgid "Break out by {0}" msgstr "Spezza per {0}" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "Totalizza questo segmento" @@ -4718,15 +4723,15 @@ msgstr "Ascendente" msgid "Descending" msgstr "Discentente" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "Fuori tempo" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "Media" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "Distinti" @@ -4922,6 +4927,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} Gli alert basati sugli obiettivi non sono al momento supportati per più di una linea, per cui questo alert sarà inviato ogni qualvolta il grafico abbia {1}." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "risultati" @@ -4937,47 +4943,47 @@ msgstr "Consiglio" msgid "usually" msgstr "solitamente" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "Seleziona un segmento o una tabella" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "Seleziona un database" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "Seleziona..." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "Seleziona una tabella" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "In questo database non è stata trovata nessuna tabella." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "Manca una domanda?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "Scopri di più sulle query annidate" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "Campi" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "Non è stato trovato alcun segmento" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "Trova un segmento" @@ -5027,7 +5033,7 @@ msgstr "Aggiungi un raggruppamento" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5035,9 +5041,9 @@ msgstr "Aggiungi un raggruppamento" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5060,7 +5066,7 @@ msgstr "Raggruppati per" msgid "None" msgstr "Nessuno" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "Questa domanda è scritta in {0}" @@ -5072,11 +5078,11 @@ msgstr "Nascondi Editor" msgid "Hide Query" msgstr "Nascondi Query" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "Apri Editor" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "Mostra Query" @@ -5121,7 +5127,7 @@ msgstr "ANNULLA" msgid "Move question" msgstr "Sposta la domanda" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "In quale collezione va inserito?" @@ -5175,7 +5181,7 @@ msgstr "{0} per questa domanda" msgid "Convert this question to {0}" msgstr "Trasforma questa domanda in {0}" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "Questa domanda impiegherà circa {0} per aggiornarsi" @@ -5209,7 +5215,7 @@ msgstr "Se mi dai dei dati, posso mostrarti qualcosa di interessante. Lancia una msgid "How do I use this thing?" msgstr "Come uso questa cosa?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "Ottieni la risposta" @@ -5277,7 +5283,7 @@ msgstr "ricevi un alert" msgid "Back to last run" msgstr "Torna all'ultima esecuzione" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "Visualizzazione" @@ -5289,7 +5295,7 @@ msgstr "Nessuna descrizione impostata." msgid "Use for current question" msgstr "Usa per la domanda corrente" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "Domande potenzialmente utili" @@ -5313,7 +5319,7 @@ msgstr "Tutti i valori che assume {0}" msgid "Number of {0} grouped by {1}" msgstr "Numero di {0} raggruppato per {1}" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5347,12 +5353,12 @@ msgid "Filter by {0}" msgstr "Filtra per {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "Numero di {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "Mostra tutti {0}" @@ -5372,32 +5378,33 @@ msgstr "Mostra i dati grezzi per {0}" msgid "More" msgstr "Altro" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "Espressione non valida" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "errore sconosciuto" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Campo formula" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "Pensa che è come scrivere una formula in un foglio di calcolo: puoi usare numeri, campi in questa tabella, simboli matematici come + e alcune funzioni. Quindi puoi digitare qualcosa come Subtotal - Cost." -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "Scopri di più" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "Assegna un nome" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "Qualcosa di chiaro e descrittivo" @@ -5477,7 +5484,7 @@ msgid "Enter desired number" msgstr "Inserisci il numero desiderato" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "Vuoto" @@ -5546,41 +5553,41 @@ msgstr "Per utilizzare più clausole facoltative, è possibile includere almeno msgid "Read the full documentation" msgstr "Leggi la documentazione completa" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "Etichetta di filtro" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "Tipo di variabile" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "Testo" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "Data" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Filtro per colonna" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "Campo a cui mappare" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "Filtro tipo di widget" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "Richiesto?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "Valore di default del widget" @@ -5592,7 +5599,7 @@ msgstr "Archivia questa domanda?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "Questa domanda sarà rimossa da ogni dashboard o pulse che la contiene" -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "Domanda" @@ -5604,8 +5611,8 @@ msgstr "Scegli una domanda da aggiungere" msgid "You are editing this page" msgstr "Stai modificando questa pagina" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "Guarda questo {0}" @@ -5613,15 +5620,15 @@ msgstr "Guarda questo {0}" msgid "A subset of" msgstr "Un sottoinsieme di" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "Scegli un tipo di campo" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5632,8 +5639,8 @@ msgid "by" msgstr "per" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "Tipo di campo" @@ -5658,12 +5665,12 @@ msgid "Nothing important yet" msgstr "Nulla di importante per ora" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "Nulla di interessante per ora" @@ -5672,12 +5679,12 @@ msgid "Things to be aware of about this {0}" msgstr "Cose da sapere su questo {0}" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "Niente di cui essere ancora a conoscenza" @@ -5723,7 +5730,7 @@ msgstr "Qualcosa di cui gli utenti debbano essere a conoscenza di questo {0}?" msgid "Which 2-3 fields do you usually group this metric by?" msgstr "Secondo quali 2 o 3 campi raggruppi solitamente questa metrica?" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "Questo è il punto di partenza perfetto se sei nuovo ai dati della tua azienda o se vuoi semplicemente controllare cosa sta succedendo." @@ -5739,11 +5746,11 @@ msgstr "Motivo delle modifiche" msgid "Leave a note to explain what changes you made and why they were required" msgstr "Lascia una nota per spiegare quali modifiche hai effettuato e perché erano necessarie" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "Perchè questo database è interessante" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "Punti di attenzione su questo database" @@ -5753,44 +5760,44 @@ msgid "Databases and tables" msgstr "Database e tabelle" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "Dettagli" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "Tabelle in {0}" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "Nome reale nel database" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "Perché questo campo è interessante" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "Punti di attenzione su questo campo" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "Tipo dati" @@ -5804,12 +5811,12 @@ msgstr "I campi in questa tabella appariranno qui man mano verranno aggiunti" msgid "Fields in {0}" msgstr "Campi in {0}" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "Nome del campo" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "Fai un x-ray al campo" @@ -5840,11 +5847,11 @@ msgstr "Conteggio di {0}" msgid "See raw data for {0}" msgstr "Visualizza i dati piatti di {0}" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "Perchè questa tabella è interessante" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "Cose di cui essere a conoscenza riguardanti questa tabella" @@ -5858,7 +5865,7 @@ msgstr "Le domande su questa tabella appariranno qui man mano verranno aggiunte" #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "Domande riguardanti {0}" @@ -5873,7 +5880,7 @@ msgstr "Creato {0} per {1}" msgid "Fields in this table" msgstr "Campi in questa tabella" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "Domande relative a questa tabella" @@ -5909,7 +5916,7 @@ msgstr "Mostra tutte le metriche" msgid "Segments and tables" msgstr "Segmenti e tabelle" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "Tabelle" @@ -6026,8 +6033,8 @@ msgstr "C'è qualcuno che i tuoi utenti potrebbero contattare per chiedere aiuto msgid "Who should users contact for help if they're confused about this data?" msgstr "Chi dovrebbe contattare gli utenti per chiedere assistenza se sono confusi su questi dati?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "Per favore scrivi un messaggio per la revisione" @@ -6043,15 +6050,15 @@ msgstr "Cose di che dovresti sapere riguardo questa metrica" msgid "How this Metric is calculated" msgstr "Come viene calcolata questa metrica" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "Per ora nulla rispetto a come è calcolato" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "Altri campi puoi raggruppare questa metrica per" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "Campi con cui puoi raggruppare questa metrica" @@ -6076,20 +6083,20 @@ msgid "There are no revisions for this metric" msgstr "Non ci sono revisioni per questa metrica" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "Storia delle revisioni per {0}" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "Esegui raggi-X su questa metrica" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "Perché questo segmento è interessante" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "Cose da sapere su questo segmento" @@ -6113,62 +6120,62 @@ msgstr "Impara come creare dei segmenti" msgid "Questions about this segment will appear here as they're added" msgstr "Le domande su questo segmento appariranno qui non appena saranno aggiunte" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "Non ci sono revisioni per questo segmento" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "Campi in questo segmento" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "Domande su questo segmento" #. Purtroppo in italiano non possiamo essere così snelli come in inglese... -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "Analizza il segmento ai Raggi-X" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "Accedi" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "Cerca" #. Usare cruscotto lo trovo agghiacciante -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "Dashboard" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "Nuova domanda" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "Seleziona il tipo di Database che utilizzi" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "Aggiungi i tuoi dati" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "Aggiungerò i miei dati più tardi" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "Mi sto connettendo a {0}" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "Avrai bisogno di alcune informazioni sul tuo database, come il nome utente e la password. Se non lo hai in questo momento, Metabase viene fornito con un set di dati di esempio con cui puoi iniziare." -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "Aggiungerò i miei dati più tardi" @@ -6176,43 +6183,43 @@ msgstr "Aggiungerò i miei dati più tardi" msgid "Control automatic scans" msgstr "Controlla le scansioni automatiche" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "Preferenze di utilizzo dei dati " -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "Grazie per averci aiutato a migliorare" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "Non raccoglieremo eventi di utilizzo" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Per aiutarci a migliorare Metabase, desideriamo raccogliere determinati dati sull'utilizzo tramite Google Analytics." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "Qui trovi la lista completa di cosa tracciamo e perché" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "Consenti a Metabase di raccogliere dati anonimi sugli eventi" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase {0} reccoglie nulla riguardo i tuoi dati e risultati." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "mai" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "Tutte le raccolte dati sono completamente anonime." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "La raccolta dati può essere disabilitata in qualsiasi momento dalle impostazioni di amministrazione." @@ -6260,25 +6267,25 @@ msgstr "Ciao {0}. Piacere di conoscerti!" msgid "Create a password" msgstr "Crea una password" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "Shhh..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "Conferma la password" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "Shhh... un'ultima volta così non sbagliamo" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "Il nome della tua Società o del tuo team" #. Propongo lieve cambio -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "Team che spacca" @@ -6455,11 +6462,11 @@ msgstr "Accedi con Google" msgid "User Details" msgstr "Dettagli utente" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "Ripristina i valori di default" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "mappa sconosciuta" @@ -6467,7 +6474,7 @@ msgstr "mappa sconosciuta" msgid "Grid map requires binned longitude/latitude." msgstr "La mappa a griglia richiede longitudine / latitudine separate." -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "di più" @@ -6504,31 +6511,31 @@ msgstr "Non impostato" msgid "Rows {0}-{1} of {2}" msgstr "Righe {0}-{1} di {2}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "Dati troncati a {0} righe" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "Impossibile trovare visualizzazione" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "Impossibile visualizzare questo grafico con questi dati" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "Nessun risultato!" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "Sto ancora aspettando..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "Solitamente impiega una media di {0}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(Questo è un po' lungo per una dashboard)" @@ -6544,11 +6551,11 @@ msgstr "Seleziona un campo" msgid "error" msgstr "errore" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "Clicca e trascina per cambiarne l'ordine" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "Aggiungi i campi dalla lista sotto" @@ -6687,19 +6694,19 @@ msgstr "Aggiungi regola" msgid "Update rule" msgstr "Aggiorna regola" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "La visualizzazione è nulla" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "La visualizzazione deve definire una variabile statica 'identificatore':" -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "La visualizzazione con quell'identificatore è già registrata" -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "Nessuna visualizzazione per {0}" @@ -6707,11 +6714,11 @@ msgstr "Nessuna visualizzazione per {0}" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "\"{0}\" è un campo non aggregato: se ha più di un valore nello stesso punto dell'asse X, i valori saranno sommati" -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "Questo tipo di grafico richiede almeno 2 colonne" -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "Questo tipo di grafico non supporta più di {0} serie di dati" @@ -6752,7 +6759,7 @@ msgstr "Per favore configura questo grafico nelle impostazioni" msgid "Edit Settings" msgstr "Modifica Impostazioni" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "Manca il valore X!" @@ -6779,7 +6786,7 @@ msgid "Bubble size" msgstr "Dimensione del fumetto" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "Linea" @@ -6836,104 +6843,104 @@ msgstr "Niente" msgid "Linear Interpolated" msgstr "Interpolato lineare" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "Scala dell'asse-X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "Serie temporali" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "Lineare" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "Esponente" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "Log" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "Istogramma" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "Ordinale" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "scala asse Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "Mostra linea e punti sull'asse X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Compatta" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "Ruota di 45°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "Ruota di 90°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "Mostra linea e punti sull'asse X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Auto range l'asse Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "Dividi l'asse Y quando necessario" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "Mostra etichetta sul asse X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "Etichetta asse X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "Mostra etichetta sul asse Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Etichetta asse Y" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "Deviazione Standard" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "Area" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "grafico ad area" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "barre" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "grafico a barre" @@ -6959,19 +6966,19 @@ msgstr "Tipo di imbuto" msgid "Bar chart" msgstr "grafico a barre" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "grafico lineare" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "Si prega di selezionare le colonne di longitudine e latitudine nelle impostazioni del grafico." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "Si prega di selezionare una mappa della regione." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "Seleziona le colonne della regione e delle metriche nelle impostazioni del grafico." @@ -6979,73 +6986,73 @@ msgstr "Seleziona le colonne della regione e delle metriche nelle impostazioni d msgid "Map" msgstr "Mappa" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "Tipo di mappa" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "Mappa della regione" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "Mappa puntine" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "Tipo di puntine" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "Riquadri" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "Marcatori" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "Campo latitudine" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "Campo longitudine" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "Campo per Metrica" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "Campo Regione" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "Raggio" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "Offusca" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "Opacità minima" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "Max Zoom" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "Nessuna relazione trovata" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "via {0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "Questo {0} è connesso a:" @@ -7057,7 +7064,7 @@ msgstr "Dettagli oggetto" msgid "object" msgstr "oggetto" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "Totale" @@ -7106,7 +7113,7 @@ msgid "Progress" msgstr "Avanzamento" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "Colore" @@ -7198,13 +7205,13 @@ msgstr "Destra" msgid "Show background" msgstr "Mostra sfondo" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "{0} bidone" msgstr[1] "{0} bidoni" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "intervallo automatico" @@ -7630,7 +7637,7 @@ msgstr "somma cumulata" msgid "{0} and {1}" msgstr "{0} e {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} di {1}" @@ -8951,31 +8958,31 @@ msgstr "Vedi tutti i permessi della raccolta" msgid "Also change sub-collections" msgstr "Cambia anche sotto-raccolte" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Puoi modificare questa raccolta e i suoi contenuti" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Può visualizzare gli elementi in questa raccolta" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "Accesso alla raccolta" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "Questo gruppo ha il permesso di vedere almeno una sottoraccolta di questa raccolta." -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "Questo gruppo ha il permesso di modificare almeno una sottoraccolta di questa raccolta." -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "Visualizza sotto-raccolte" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "Ricordami" @@ -8995,7 +9002,7 @@ msgstr "Aggiungi questa domanda alla dashboard" msgid "Create a new dashboard" msgstr "Creare una nuova dashboard" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "La pagina che hai rihiesto non può essere trovata." @@ -9003,11 +9010,11 @@ msgstr "La pagina che hai rihiesto non può essere trovata." msgid "Select a {0}" msgstr "Seleziona un {0}" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "Salva dashboard, domande e collezioni in \"{0}\"" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "Accedi a dashboard, domande e collezioni in \"{0}\" " @@ -9027,12 +9034,12 @@ msgstr "Relazionato" msgid "More X-rays" msgstr "Altri raggi X" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "Nessun risultato" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabase non può trovare nessun risultato per la tua ricerca." @@ -9243,10 +9250,10 @@ msgstr "N/A" msgid "Windows domain" msgstr "dominio Windows" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "Etichette" @@ -9281,6 +9288,8 @@ msgstr "Condividi" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9295,33 +9304,33 @@ msgstr "Condividi" msgid "Display" msgstr "Display" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "Assi" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "Formattazione" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "Prova questi raggi-x basati sui tuoi dati" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "Si é verificato un errore nel visualizzare questo grafico." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "Spiacenti, non hai i permessi per vedere questa card." @@ -9341,20 +9350,20 @@ msgstr "Raggi-X" msgid "Compare to the rest" msgstr "Confronta con il resto" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "Usa la timezone di Java Virtual Machine (JVM)" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "Ti suggeriamo di lasciar perdere, a meno che tu non stia eseguendo manualmente il fuso orario in molte o la maggior parte delle tue query con questi dati." -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "le dashboard più importanti del tuo team vanno qui" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "Inserisci le dashboard in {0} per visualizzarli in questo spazio per tutti" @@ -9378,12 +9387,12 @@ msgstr "Suggerimento: " msgid "Select a currency type" msgstr "Seleziona un tipo di valuta" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "Tipo Campo" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "Risoluzione Problemi" @@ -9431,11 +9440,11 @@ msgstr "Durata (ms)" msgid "Currency" msgstr "Valuta" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "Scegli un utente o un canale..." -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "Nessuna impostazione di formattazione" @@ -9608,15 +9617,15 @@ msgstr "Gauge" msgid "Gauge ranges" msgstr "Intervallo Gauge" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "Campo da mostrare" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "l'ultimo {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} era {1} {2}" @@ -9744,7 +9753,7 @@ msgstr "quarto" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "Aggiunta di {0} carte alla dashboard {1}: n {2}" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "Analisi degli errori {0}:n{1}" @@ -10038,7 +10047,7 @@ msgstr "Elenco attività pulito con successo, eliminate {0} righe." msgid "not" msgstr "no" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "Per maggiori informazioni, guardare" @@ -11039,6 +11048,7 @@ msgstr "Come questa metrica è distribuira attraverso numeri differenti" msgid "Sessions by page where the session began" msgstr "Sessioni per pagina in cui è iniziata la sessione" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11387,15 +11397,15 @@ msgstr "Può Lanciare ancora?" msgid "Triggers for {0}" msgstr "Innesco per {0}" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "Tasks" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "Jobs" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "Duplicato {0}" @@ -11407,7 +11417,7 @@ msgstr "Duplica questo elemento" msgid "Archive this item" msgstr "Archivia questo elemento" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "Duplica dashboard" @@ -11434,6 +11444,7 @@ msgid "Next {0}" msgstr "Prossimo {0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "Precedente {0}" @@ -11528,8 +11539,8 @@ msgstr "[Q]Q" msgid "This" msgstr "Questo" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "Invalido" @@ -11537,11 +11548,11 @@ msgstr "Invalido" msgid "Add a time" msgstr "Aggiungi tempo" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "Niente da confrontare con il precedente {0}" -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "di {0}" @@ -11598,39 +11609,39 @@ msgstr "Errore nell'aggiunta della direttiva SQL sulla Domanda (`Question`) salv msgid "Failed to notify {0} Database {1} updated" msgstr "Fallimento della notifica {0} Database {1} aggiornato" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "Caricamento driver {0} {1}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "Carica driver {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "Driver non registrato dopo il caricamento: {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "Errore: tentativo di modificare {0} proprietà `:abstract?` da {1} a {2}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "Registrato driver astratto {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "Driver registrato {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(genitori: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "Inizializzazione del driver {0}..." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "Ragione:" @@ -11782,11 +11793,11 @@ msgstr "{0} dipendenza {1} soddisfatta? {2}" msgid "Plugins with unsatisfied deps: {0}" msgstr "Plugins con dipendenze insoddisfatte: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "Estrai file {0} -> {1}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "La risorsa è inesistente" @@ -12111,7 +12122,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreateDate]] per trimestre dell'anno" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "Modifica utente" @@ -12119,12 +12130,12 @@ msgstr "Modifica utente" msgid "New user" msgstr "Nuovo utente" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "Reset password" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "Disattiva utente" @@ -12401,11 +12412,11 @@ msgstr "Istruzione per mancata accensione" msgid "Archive this?" msgstr "Archiviare?" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "Impara dai nostri dati" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "usa DNS SRV quando ti connetti" @@ -12415,7 +12426,7 @@ msgid "Using this option requires that provided host is a FQDN. If connecting t "leave this disabled." msgstr "L'utilizzo di questa opzione richiede che l'host fornito sia un nome di dominio completo. Se ci si connette a un cluster Atlas, potrebbe essere necessario abilitare questa opzione. Se non sai cosa significa, lascialo disabilitato." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "Esegui automaticamente query quando esegui semplici filtri e riepiloghi" @@ -12423,7 +12434,7 @@ msgstr "Esegui automaticamente query quando esegui semplici filtri e riepiloghi" msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Quando è attivo, Metabase eseguirà automaticamente le query quando gli utenti eseguono semplici esplorazioni con i pulsanti Riassumi e Filtro durante la visualizzazione di una tabella o di un grafico. È possibile disattivarlo se l'interrogazione di questo database è lenta. Questa impostazione non influisce sui drill-through o sulle query SQL." -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "Impara da questo database" @@ -12431,25 +12442,25 @@ msgstr "Impara da questo database" msgid "Archive this dashboard?" msgstr "Archiviare questa dashboard?" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "Tutti i risultati" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "La nostra analisi" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "Somma additiva di tutti i valori di una colonna. \\ne.x. entrate totali nel tempo." -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "Conteggio additivo di tutti i valori di una riga. \\ne.x. numero totale di vendite nel tempo." #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Filtro" @@ -12459,27 +12470,27 @@ msgid_plural "records" msgstr[0] "record" msgstr[1] "record" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "Sfoglia i dati" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "Scrivi SQL" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "Domanda semplice" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "Raccogli qualche dato, guardalo, e filtra, riepilogalo e visualizzalo facilemnte" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "`question` personalizzata" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "Usa l'editor avanzato per notebook per unire i dati, creare colonne personalizzate, fare matematica e altro." @@ -12488,7 +12499,7 @@ msgstr "Usa l'editor avanzato per notebook per unire i dati, creare colonne pers msgid "Basic Metrics" msgstr "Metriche basilari" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "Personalizzato... " @@ -12504,7 +12515,7 @@ msgstr "Scegli un limite" msgid "Show maximum" msgstr "Mostra massimo" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "Anteprima" @@ -12533,7 +12544,7 @@ msgid "Custom column" msgstr "Colonna personalizzata" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "Riassume" @@ -12550,11 +12561,10 @@ msgid "Pick the metric you want to see" msgstr "Scegli la metrica che vuoi vedere" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "Scegli la colonna da raggruppare " -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "Scegli una data d'inizio" @@ -12566,7 +12576,7 @@ msgstr "Seleziona nula" msgid "Select All" msgstr "Seleziona tutto" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "Sceglie una tabela" @@ -12612,15 +12622,15 @@ msgid_plural "{0} breakouts" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "Nascondi i filtri" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "Mostra i filtri" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "Iniziato da" @@ -12650,11 +12660,11 @@ msgstr "Mostra {0}" msgid "Summarized" msgstr "Riassunto" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "Nascondi l'editor" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "Mostra l'editor" @@ -12662,7 +12672,7 @@ msgstr "Mostra l'editor" msgid "Pick the metric you'd like to see" msgstr "Seleziona la metrica che vorresti vedere" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "{0} opzionj" @@ -12690,7 +12700,7 @@ msgstr "Aggiungi una metrica" msgid "Profile" msgstr "Profilo" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "Questo di solito è piuttosto veloce ma sembra richiedere del tempo proprio ora." @@ -12718,19 +12728,19 @@ msgstr "Segmento sconosciuto" msgid "Unknown Filter" msgstr "Filtro sconosciuto " -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "Left outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "Right outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "Inner join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "Full outer join" @@ -12782,7 +12792,7 @@ msgstr "Impostazione database dell'applicazione" msgid "Could not find {0} driver." msgstr "Impossibile trovare il driver {0}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "I driver astratti non possono derivare da driver genitori concreti" @@ -12792,7 +12802,7 @@ msgstr "Potrebbe essere necessario aggiungere \"trustServerCertificate = true\" #: src/metabase/driver/sql/util.clj msgid "Don't know how to alias {0}, expected an Identifer." -msgstr "" +msgstr "Non conosco come alias {0}, previsto un identificatore" #: src/metabase/driver/sql_jdbc/execute.clj msgid "Client closed connection, canceling query" @@ -12816,7 +12826,7 @@ msgstr "" #: src/metabase/models/humanization.clj msgid "Updating display name for {0} ''{1}'': ''{2}'' -> ''{3}''" -msgstr "" +msgstr "Aggiornato il nome mostrato per {0} \"{1}\"_ \"{2}\" -> \"{3}\"" #: src/metabase/models/humanization.clj msgid "Invalid humanization strategy ''{0}''. Valid strategies are: {1}" @@ -12830,7 +12840,7 @@ msgstr "" #: src/metabase/models/task_history.clj src/metabase/sync/util.clj msgid "Error saving task history" -msgstr "" +msgstr "Errore durante il salvataggio della cronologia delle attività " #: src/metabase/plugins.clj msgid "spark-deps.jar is no longer needed by Metabase 0.32.0+. You can delete it from the plugins directory." @@ -12840,7 +12850,7 @@ msgstr "spark-deps.jar non è più necessario da Metabase 0.32.0+. Puoi cancella msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "Impossibile copiare il file" @@ -12930,11 +12940,11 @@ msgstr "" #: src/metabase/query_processor/middleware/annotate.clj msgid "Distinct values of {0}" -msgstr "" +msgstr "Valori distinti di {0}" #: src/metabase/query_processor/middleware/annotate.clj msgid "Average of {0}" -msgstr "" +msgstr "Media di {0}" #: src/metabase/query_processor/middleware/annotate.clj msgid "Sum of {0}" @@ -13076,6 +13086,7 @@ msgstr "Caricamento database di esempio..." #: src/metabase/sample_data.clj msgid "Failed to load sample dataset" msgstr "Caricamento del database di esempio fallito" +"" #: src/metabase/sync/sync_metadata/tables.clj msgid "Found new tables:" @@ -13083,7 +13094,7 @@ msgstr "Trovate nuove tabelle:" #: src/metabase/sync/sync_metadata/tables.clj msgid "Marking tables as inactive:" -msgstr "Marking tables as inactive:" +msgstr "" #: src/metabase/sync/sync_metadata/tables.clj msgid "Updating description for tables:" @@ -13112,15 +13123,16 @@ msgstr "" #: src/metabase/util/schema.clj msgid "All elements must be distinct." msgstr "All elements must be distinct." +"" #: msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "Scegli le colonne che desideri includere" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." -msgstr "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." +msgstr "" #: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:97 msgid "Change join type" @@ -13128,7 +13140,7 @@ msgstr "Cambia tipo di join" #: src/metabase/driver/sql/util.clj msgid "Don't know how to alias {0}, expected an Identifier." -msgstr "Don't know how to alias {0}, expected an Identifier." +msgstr "" #: src/metabase/integrations/common.clj msgid "Error adding User {0} to Group {1}" @@ -13138,20 +13150,456 @@ msgstr "Errore nell' aggiungere l' Utente {0} al Gruppo {1}" #. TODO: Should we do this in a background thread because it is potentially slow? #: src/metabase/models/humanization.clj msgid "Changing Table & Field names humanization strategy from ''{0}'' to ''{1}''" -msgstr "Changing Table & Field names humanization strategy from ''{0}'' to ''{1}''" +msgstr "" #: src/metabase/query_processor.clj msgid "Infinite loop detected: recursively preprocessed query {0} times." -msgstr "Infinite loop detected: recursively preprocessed query {0} times." +msgstr "" #: src/metabase/query_processor/middleware/add_implicit_clauses.clj msgid "Warning: cannot determine fields for an explicit `source-query` unless you also include `source-metadata`." -msgstr "Warning: cannot determine fields for an explicit `source-query` unless you also include `source-metadata`." +msgstr "" #: src/metabase/query_processor/middleware/add_source_metadata.clj msgid "Error determining expected columns for query" -msgstr "Error determining expected columns for query" +msgstr "" #: src/metabase/query_processor/middleware/async.clj msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." -msgstr "Unhandled exception, expected `catch-exceptions` middleware to handle it." +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "" + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "" + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "" + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "" + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "" diff --git a/locales/ja.po b/locales/ja.po index c4b3b51d244e42f20a8eb7c58aa01746ed4e20bd..be490915263c6324697de196b02124108bffaf01 100644 --- a/locales/ja.po +++ b/locales/ja.po @@ -30,19 +30,18 @@ msgid "Select a database type" msgstr "データベースタイプをé¸æŠžã™ã‚‹" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "ä¿å˜" @@ -103,7 +102,7 @@ msgstr "自動的ã«è¡Œã‚ãšã€å¿…è¦ãªæ™‚ã«æ‰‹å‹•è¨å®šã™ã‚‹" #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "ä¿å˜ä¸..." @@ -140,16 +139,16 @@ msgstr "ã“ã®ãƒ†ã‚ストボックスã«:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -157,20 +156,20 @@ msgstr "ã“ã®ãƒ†ã‚ストボックスã«:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "ã‚ャンセル" @@ -182,33 +181,33 @@ msgstr "ã‚ャンセル" msgid "Delete" msgstr "削除" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "データベース" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’è¿½åŠ " #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "接続" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "スケジューリング" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -218,18 +217,18 @@ msgstr "スケジューリング" msgid "Save changes" msgstr "変更をä¿å˜" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "アクション" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "今ã™ãデータベーススã‚ーマã¨åŒæœŸã™ã‚‹" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -237,41 +236,41 @@ msgstr "今ã™ãデータベーススã‚ーマã¨åŒæœŸã™ã‚‹" msgid "Starting…" msgstr "開始ã—ã¦ã„ã¾ã™..." -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "åŒæœŸã«å¤±æ•—ã—ã¾ã—ãŸ" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "åŒæœŸã‚’開始ã—ã¾ã—ãŸï¼" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "今ã™ãフィールド値をå†ã‚¹ã‚ャンã™ã‚‹" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "スã‚ャンã®ã‚¹ã‚¿ãƒ¼ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸ" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "スã‚ャンを開始ã—ã¾ã—ãŸï¼" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "å±é™ºã‚¾ãƒ¼ãƒ³" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "ä¿å˜ã•ã‚ŒãŸãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰å€¤ã‚’ç ´æ£„ã™ã‚‹" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’削除ã™ã‚‹" @@ -280,18 +279,17 @@ msgid "Add database" msgstr "ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’è¿½åŠ " #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "åå‰" @@ -311,23 +309,24 @@ msgstr "èªè¾¼ä¸..." msgid "Bring the sample dataset back" msgstr "サンプルデータセットを復元" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "データベースã«æŽ¥ç¶šã§ãã¾ã›ã‚“。接続è¨å®šã‚’確èªã—ã¦ãã ã•ã„。" -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "作æˆã•ã‚Œã¾ã—ãŸï¼" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "ä¿å˜ã•ã‚Œã¾ã—ãŸï¼" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "編集" @@ -367,9 +366,9 @@ msgstr "失敗" msgid "Success" msgstr "æˆåŠŸ" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "プレビュー" @@ -389,7 +388,7 @@ msgstr "特別タイプãªã—" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "ãã®ä»–" @@ -418,7 +417,7 @@ msgstr "列" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "å¯è¦–性" @@ -497,35 +496,34 @@ msgstr "テーブルを探ã™" msgid "Schemas" msgstr "スã‚ーマ" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "メトリクス" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’è¿½åŠ ã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "定義" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "クエリビルダーã®è¡¨ç¤ºãƒ‰ãƒãƒƒãƒ—ダウンã«ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’作æˆã—è¿½åŠ ã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -533,11 +531,11 @@ msgstr "クエリビルダーã®è¡¨ç¤ºãƒ‰ãƒãƒƒãƒ—ダウンã«ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’ msgid "Segments" msgstr "セグメント" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚’è¿½åŠ ã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "クエリビルダーã®ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ãƒ‰ãƒãƒƒãƒ—ダウンã«ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚’作æˆã—è¿½åŠ ã™ã‚‹" @@ -583,23 +581,23 @@ msgstr "å±¥æ´" msgid "Revision History for" msgstr "å±¥æ´" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} - フィールドè¨å®š" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "Metabase上ã§ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ãŒè¡¨ç¤ºã•ã‚Œã‚‹ç®‡æ‰€" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã§ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼è¨å®šã—ã¦ã„ã¾ã™" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã§ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼è¨å®šãŒã•ã‚Œã¦ã„ã‚‹å ´åˆã€ä»–ユーザーãŒãƒ•ã‚£ãƒ«ã‚¿ãƒ¼è¨å®šã—ãŸã„値をã©ã®ã‚ˆã†ã«å…¥åŠ›ã™ã‚Œã°ã‚ˆã„ã§ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«ã¯èª¬æ˜ŽãŒã¾ã ã‚ã‚Šã¾ã›ã‚“" @@ -640,11 +638,11 @@ msgstr "ç¾åœ¨ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã¯å¤–部ã‚ーã§ã¯ãªã„ã‹ã€FKターゲッ msgid "The selected field isn't a foreign key" msgstr "é¸æŠžã•ã‚ŒãŸãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã¯å¤–部ã‚ーã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "値を表示ã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "データベースã‹ã‚‰å…ƒã®å€¤ã‚’表示ã™ã‚‹ã‹ã€ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«é–¢é€£ã™ã‚‹æƒ…å ±ã¾ãŸã¯ã‚«ã‚¹ã‚¿ãƒ æƒ…å ±ã‚’è¡¨ç¤ºã™ã‚‹ã‹ã‚’é¸æŠžã—ã¾ã™ã€‚" @@ -664,12 +662,12 @@ msgstr "ヒント:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "å†ãƒžãƒƒãƒ”ングã®é¸æŠžã¨å†…容ãŒåˆã†ã‚ˆã†ã«ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰åã‚’æ›´æ–°ã™ã‚‹ã¨è‰¯ã„ã§ã—ょã†ã€‚" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "フィールド値をã‚ャッシュã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabaseã¯ã€ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã¾ãŸã¯è³ªå•ã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’有効化ã™ã‚‹ãŸã‚ã€ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®å€¤ã‚’スã‚ャンã—ã¾ã™" @@ -696,82 +694,82 @@ msgstr "削除ã•ã‚Œã¾ã—ãŸï¼" msgid "Select any table to see its schema and add or edit metadata." msgstr "テーブルをé¸æŠžã—ã€ã‚¹ã‚ーマを見ã¦ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã‚’è¿½åŠ ãƒ»ç·¨é›†ã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "åå‰ãŒå¿…è¦ã§ã™" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "説明ãŒå¿…è¦ã§ã™" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "å±¥æ´ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒå¿…è¦ã§ã™" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "アグリゲーションãŒå¿…è¦ã§ã™" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "メトリクスを編集ã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "メトリクスを作æˆã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "メトリクスを変更ã—æ³¨é‡ˆã‚’åŠ ãˆã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "ä¿å˜ã•ã‚ŒãŸãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’使用ã—ã¦ã€ã“ã®ãƒ†ãƒ¼ãƒ–ルã«åå‰ä»˜ããƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’è¿½åŠ ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ä¿å˜ã•ã‚ŒãŸãƒ¡ãƒˆãƒªã‚¯ã‚¹ã«ã¯ã€é›†ç´„タイプã€é›†ç´„フィールドã€ãŠã‚ˆã³ã‚ªãƒ—ションã§è¿½åŠ ã™ã‚‹ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ãŒå«ã¾ã‚Œã¾ã™ã€‚ ãŸã¨ãˆã°ã€ã“れを使用ã—ã¦Ordersテーブルã®ã€Œå¹³å‡ä¾¡æ ¼ã€ã®å…¬å¼ãªè¨ˆç®—方法を作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "çµæžœ: " -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "メトリクスã«åå‰ã‚’付ã‘ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "他ユーザーã®ãŸã‚ã«ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã«åå‰ã‚’付ã‘ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "ç°¡å˜ãªèª¬æ˜Ž" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "メトリクスを説明ã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "他ユーザーã®ãŸã‚ã«ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã«èª¬æ˜Žã‚’åŠ ãˆã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "メトリクスã®ãƒ«ãƒ¼ãƒ«ã«ã¤ã„ã¦ã‚ˆã‚Šè©³ç´°ãªæƒ…å ±ã‚’ã“ã¡ã‚‰ã«è¨˜å…¥ã—ã¦ãã ã•ã„" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "変更ç†ç”±" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "変更箇所ã¨å¤‰æ›´ç†ç”±ã‚’記入ã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "他ユーザーã«ã‚‚変更ç†ç”±ãŒã‚ã‹ã‚‹ã‚ˆã†ã€ã“ã®ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã®å±¥æ´ã«è¡¨ç¤ºã•ã‚Œã¾ã™" @@ -787,7 +785,7 @@ msgstr "セグメントを編集ã™ã‚‹" msgid "Create Your Segment" msgstr "セグメントを作æˆã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "セグメントを変更ã—æ³¨é‡ˆã‚’åŠ ãˆã‚‹" @@ -795,37 +793,37 @@ msgstr "セグメントを変更ã—æ³¨é‡ˆã‚’åŠ ãˆã‚‹" msgid "Select and add filters to create your new segment for the {0} table" msgstr "{0}テーブルã®æ–°ã—ã„セグメントを作æˆã™ã‚‹ãŸã‚ã®ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ã‚’é¸æŠžã—è¿½åŠ ã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "セグメントã«åå‰ã‚’付ã‘ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "他ユーザーã®ãŸã‚ã«ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚’åå‰ã‚’付ã‘ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "セグメントを説明ã™ã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "他ユーザーã®ãŸã‚ã«ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã«èª¬æ˜Žã‚’åŠ ãˆã‚‹" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "セグメントã®ãƒ«ãƒ¼ãƒ«ã«ã¤ã„ã¦ã‚ˆã‚Šè©³ç´°ãªæƒ…å ±ã‚’ã“ã¡ã‚‰ã«è¨˜å…¥ã—ã¦ãã ã•ã„" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "他ユーザーã«ã‚‚変更ç†ç”±ãŒã‚ã‹ã‚‹ã‚ˆã†ã€ã“ã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã®å±¥æ´ã«è¡¨ç¤ºã•ã‚Œã¾ã™" #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "è¨å®š" @@ -839,33 +837,29 @@ msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルをå†ã‚¹ã‚ャンã™ã‚‹" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "è¿½åŠ " #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "有効ãªãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "å" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "姓" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "メールアドレス" @@ -901,7 +895,7 @@ msgstr "メンãƒãƒ¼" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "メール" @@ -910,8 +904,8 @@ msgid "A group is only as good as its members." msgstr "グループもãã®ãƒ¡ãƒ³ãƒãƒ¼ã‚‚ã©ã¡ã‚‰ã‚‚大事ã§ã™ã€‚" #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "管ç†è€…" @@ -971,11 +965,11 @@ msgstr "グループを削除ã™ã‚‹" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "完了" @@ -984,9 +978,9 @@ msgid "Group name" msgstr "グループå" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "グループ" @@ -1015,10 +1009,10 @@ msgstr "パスワードをリセットã™ã‚‹" msgid "Deactivate" msgstr "無効化" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "ユーザー" @@ -1057,7 +1051,7 @@ msgstr "パスワードè¨å®šæ–¹æ³•ã‚’記載ã—ãŸæ‹›å¾…メールを{0}ã¸é€ä¿¡ msgid "We've re-sent {0}'s invite" msgstr "招待メールを{0}ã«å†é€ã—ã¾ã—ãŸ" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "確èªã—ã¾ã—ãŸ" @@ -1089,7 +1083,7 @@ msgstr "ãƒã‚°ã‚¤ãƒ³ãŒå¯èƒ½ã«ãªã‚Šã€ç„¡åŠ¹åŒ–ã•ã‚Œã‚‹å‰ã®ã‚°ãƒ«ãƒ¼ãƒ—ã« msgid "Reset {0}'s password?" msgstr "{0}ã®ãƒ‘スワードをリセットã—ã¾ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "リセットã™ã‚‹" @@ -1128,19 +1122,19 @@ msgstr "è¿½åŠ ã™ã‚‹" msgid "Last Login" msgstr "最終ãƒã‚°ã‚¤ãƒ³" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Googleを利用ã—ã¦ç™»éŒ²ã™ã‚‹" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "LDAP経由ã§ç™»éŒ²ã•ã‚Œã¾ã—ãŸ" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’å†æœ‰åŠ¹åŒ–ã™ã‚‹" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "ã—ãªã„" @@ -1181,7 +1175,7 @@ msgid " native queries for " msgstr "ã®ãƒã‚¤ãƒ†ã‚£ãƒ–クエリ" #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "権é™" @@ -1238,115 +1232,115 @@ msgstr "MetaBotã¯Metabaseã®Slackボットã§ã™ã€‚ ã“ã“ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ã msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "\"{0}\"グループã¯ã€ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¨ã¯ç•°ãªã‚‹{1}セットã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚ãã®å ´åˆã€{0}グループã«ã¯{2}ã¸ã®è¿½åŠ アクセス権ãŒä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚" -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "\"{0}\"グループã®ã‚¢ã‚¯ã‚»ã‚¹ãƒ¬ãƒ™ãƒ«ã¯ã“れより高ããªã‚Šã€ã“ã®è¨å®šãŒä¸Šæ›¸ãã•ã‚Œã¾ã™ã€‚ \"{1}\"グループã®ã“ã®ã‚¢ã‚¤ãƒ†ãƒ ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’ブãƒãƒƒã‚¯ã¾ãŸã¯å–り消ã™å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "制é™ã™ã‚‹" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "å–り消ã™" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "{0}ã®æ–¹ãŒã‚ˆã‚Šåºƒã„アクセス権é™ã‚’æŒã£ã¦ã„ã¾ã™ãŒã€ã‚¢ã‚¯ã‚»ã‚¹ã‚’" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "アクセスを制é™ã™ã‚‹" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "アクセスをå–り消ã™" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’制é™ã—ã¾ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "変更ã™ã‚‹" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "ãƒãƒ¼ã‚¯ã‚¨ãƒªã®ä½œæˆã‚’許å¯ã—ã¾ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "ã“ã‚Œã«ã‚ˆã‚Šã€ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ‡ãƒ¼ã‚¿ã‚¢ã‚¯ã‚»ã‚¹ã‚‚無制é™ã«å¤‰æ›´ã•ã‚Œã¾ã™ã€‚" -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "許å¯ã™ã‚‹" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "ã™ã¹ã¦ã®ãƒ†ãƒ¼ãƒ–ルã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’å–り消ã—ã¾ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ãƒãƒ¼ã‚¯ã‚¨ãƒªã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚‚å–り消ã•ã‚Œã¾ã™ã€‚" -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "無制é™ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯ã™ã‚‹" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "無制é™ã®ã‚¢ã‚¯ã‚»ã‚¹" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "制é™ã•ã‚ŒãŸã‚¢ã‚¯ã‚»ã‚¹" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "アクセスãŒã‚ã‚Šã¾ã›ã‚“" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "ãƒãƒ¼ã‚¯ã‚¨ãƒªã‚’書ã" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "ãƒãƒ¼ã‚¯ã‚¨ãƒªã‚’書ãã“ã¨ãŒã§ãã‚‹" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "コレクションを公開ã™ã‚‹" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "コレクションを見る" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "データアクセス" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "テーブルを見る" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "SQLクエリ" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "スã‚ーマを見る" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "データモデル" @@ -1489,8 +1483,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "Metabase {0}ãŒåˆ©ç”¨å¯èƒ½ã§ã™ã€‚ç¾åœ¨{1}を利用ä¸ã§ã™ã€‚" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "アップデートã™ã‚‹" @@ -1513,18 +1507,20 @@ msgstr "カスタムマップを削除ã™ã‚‹" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "削除ã™ã‚‹" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "é¸æŠž..." @@ -1725,7 +1721,7 @@ msgstr "ä¸æ˜Žãªè¨å®š{0}" msgid "Setup" msgstr "è¨å®š" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "一般" @@ -1852,7 +1848,7 @@ msgid "Username or DN" msgstr "ユーザーãƒãƒ¼ãƒ ã¾ãŸã¯DN" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "パスワード" @@ -2015,31 +2011,31 @@ msgstr "パスワードをãŠå¿˜ã‚Œã®å ´åˆ" msgid "The email you use for your Metabase account" msgstr "Metabaseアカウントã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "パスワードリセットã®ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã™ã‚‹" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "パスワードã®ãƒªã‚»ãƒƒãƒˆæ–¹æ³•ã«ã¤ã„ã¦ã¯ãƒ¡ãƒ¼ãƒ«ã‚’ã”確èªãã ã•ã„" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "Metabaseã«ã‚µã‚¤ãƒ³ã‚¤ãƒ³ã™ã‚‹" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "ã¾ãŸã¯" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "ユーザーãƒãƒ¼ãƒ ã¾ãŸã¯ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "サインイン" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "パスワードを忘れã¦ã—ã¾ã„ã¾ã—ãŸ" @@ -2057,7 +2053,7 @@ msgid "For security reasons, password reset links expire after a little while. I msgstr "ã‚»ã‚ュリティã®ç†ç”±ã«ã‚ˆã‚Šã€ãƒ‘スワードリセットã®ãƒªãƒ³ã‚¯ã¯ä¸€å®šæœŸé–“ã‚’éŽãŽã‚‹ã¨ç„¡åŠ¹ã¨ãªã‚Šã¾ã™ã€‚パスワードリセットãŒå¿…è¦ãªå ´åˆã¯ã€{0}ãŒã§ãã¾ã™" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "æ–°ã—ã„パスワード" @@ -2070,38 +2066,38 @@ msgid "Create a new password" msgstr "æ–°ã—ã„パスワードを作æˆã™ã‚‹" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "è¨å®šæ–¹æ³•ã«å¾“ã„ã‚»ã‚ュリティ度ã®é«˜ã„パスワードをè¨å®šã—ã¦ãã ã•ã„" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "æ–°ã—ã„パスワードã®ç¢ºèª" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "上記ã§å…¥åŠ›ã—ãŸãƒ‘スワードã¨åŒã˜ã‚‚ã®ã‚’入力ã—ã¦ãã ã•ã„" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "パスワードãŒãƒªã‚»ãƒƒãƒˆã•ã‚Œã¾ã—ãŸ" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "æ–°ã—ã„パスワードã§ã‚µã‚¤ãƒ³ã‚¤ãƒ³ã™ã‚‹" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "ä¿å˜ãŒå¤±æ•—ã—ã¾ã—ãŸ" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2120,22 +2116,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "ã“ã®ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³å†…ã®ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã€ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã€ãƒ‘ルスもアーカイブã•ã‚Œã¾ã™" #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "アーカイブ" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "ã“ã®{0}ã¯ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã•ã‚Œã¾ã—ãŸ" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "アーカイブを見る" @@ -2145,17 +2142,19 @@ msgstr "ã“ã®{0}ã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã‚’å–り消ã™" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "データ" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルを自動探査(X-ray)ã™ã‚‹" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã«ã¤ã„ã¦è©³ç´°ã‚’見る" @@ -2250,43 +2249,43 @@ msgstr "固定" msgid "Drag something here to pin it to the top" msgstr "ドラッグã—ã¦ãƒˆãƒƒãƒ—ã«å›ºå®šã—ã¦ãã ã•ã„" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "コレクション" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "固定を外ã™ã«ã¯ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ãã ã•ã„" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0}アイテムãŒé¸æŠžã•ã‚Œã¾ã—ãŸ" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "{0}アイテムを移動ã—ã¾ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "{0}を移動ã—ã¾ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "移動ã™ã‚‹" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "ã“ã®ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã‚’編集ã™ã‚‹" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "ã“ã®ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã‚’アーカイブã™ã‚‹" @@ -2303,17 +2302,17 @@ msgstr "æ–°ã—ã„コレクション" msgid "Copied!" msgstr "コピーã•ã‚Œã¾ã—ãŸ" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "データベース接続ã«SSHトンãƒãƒ«ã‚’利用ã™ã‚‹" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." msgstr "一部ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã¯ã€SSHホストを介ã—ã¦æŽ¥ç¶šã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦ã®ã¿ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚VPNãŒåˆ©ç”¨ã§ããªã„å ´åˆã€ã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã“ã¨ã§ã‚»ã‚ュリティーレベルを高ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®æ©Ÿèƒ½ã‚’有効ã«ã™ã‚‹ã¨ç›´æŽ¥æŽ¥ç¶šã™ã‚‹ã‚ˆã‚Šã‚‚動作ãŒé…ããªã‚Šã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "データベースãŒå¤§ãã„ãŸã‚ã€Metabaseã®åŒæœŸã¨ã‚¹ã‚ャンã®ã‚¿ã‚¤ãƒŸãƒ³ã‚°ã‚’é¸æŠžã—ã¾ã™" @@ -2322,47 +2321,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail "If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." msgstr "Metabaseã¯ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰å€¤ã«å¯¾ã—1時間毎ã®ã‚¯ã‚¤ãƒƒã‚¯ã‚¹ã‚ャンã¨æ¯Žæ—¥ã®ãƒ•ãƒ«ã‚¹ã‚ャンを行ã†ã‚ˆã†ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§è¨å®šã•ã‚Œã¦ã„ã¾ã™ã€‚データベースãŒå¤§ãã„å ´åˆã€ã“ã®è¨å®šã‚’オンã«ã—ã€ã„ã¤ã©ã®ã‚ˆã†ã«ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰å€¤ã®ã‚¹ã‚ャンをã™ã‚‹ã‹ç¢ºèªã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "クライアントIDã¨ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã‚·ãƒ¼ã‚¯ãƒ¬ãƒƒãƒˆã‚’作æˆã™ã‚‹ã«ã¯{0}ã—ã¦ãã ã•ã„" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "ã“ã¡ã‚‰ã‚’クリックã—ã¦ãã ã•ã„" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "アプリケーションタイプã¯ã€Œãã®ä»–ã€ã‚’é¸æŠžã—ã¦ãã ã•ã„。åå‰ã¯è‡ªç”±ã«ä»˜ã‘られã¾ã™ã€‚" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "èªè¨¼ã‚³ãƒ¼ãƒ‰ã‚’å–å¾—ã™ã‚‹ãŸã‚{0}" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "Googleドライブ権é™ã§" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "ã“ã®ãƒ‡ãƒ¼ã‚¿ã§Metabaseを利用ã™ã‚‹ã«ã¯ã€Google Developers Consoleã®APIアクセスを有効化ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "有効化ã—ã¦ã„ãªã„å ´åˆã¯ã€Consoleã§{0}ã—ã¦ãã ã•ã„" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "ã©ã®ã‚ˆã†ã«ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’å‚ç…§ã—ã¾ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "次ã¸" @@ -2381,7 +2380,7 @@ msgstr "ã“ã®ã‚¢ã‚¤ãƒ†ãƒ を移動ã™ã‚‹" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "ã“ã®è³ªå•ã‚’編集ã™ã‚‹" @@ -2394,7 +2393,7 @@ msgstr "アクションタイプ" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "å±¥æ´ã‚’見る" @@ -2410,7 +2409,7 @@ msgstr "アクションをアーカイブã™ã‚‹" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "ダッシュボードã«è¿½åŠ ã™ã‚‹" @@ -2421,7 +2420,7 @@ msgstr "çµæžœã‚’ダウンãƒãƒ¼ãƒ‰ã™ã‚‹" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "共有ã¨åŸ‹ã‚è¾¼ã¿" @@ -2467,65 +2466,63 @@ msgstr "スã‚ーマã«åŸºã¥ã" msgid "A look at your" msgstr "見ã¦ã¿ã‚‹" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "一覧を検索ã™ã‚‹" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "{0}ã§æ¤œç´¢ã™ã‚‹" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr "â£ã¾ãŸã¯IDを入力ã™ã‚‹" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "IDを入力ã™ã‚‹" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "番å·ã‚’入力ã™ã‚‹" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "テã‚ストを入力ã™ã‚‹" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "一致ã™ã‚‹{0}ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "フィルターã«å…¨ã¦ã®ã‚ªãƒ—ションをå«ã‚ã¦ã—ã¾ã†ã¨ã€åŠ¹æžœçš„ãªçµæžœãŒå¾—られãªã„å ´åˆãŒã‚ã‚Šã¾ã™" -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸ" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "エラーãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã“ã®ãƒšãƒ¼ã‚¸ã‚’æ›´æ–°ã™ã‚‹ã‹ã€å‰ã®ãƒšãƒ¼ã‚¸ã«ãŠæˆ»ã‚Šãã ã•ã„" -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "ã¾ã 説明ãŒã‚ã‚Šã¾ã›ã‚“" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "æ–°ã—ã„{0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "{0}ã«ã‚ˆã‚Šè³ªå•ã•ã‚ŒãŸ" @@ -2546,8 +2543,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "以å‰ã®å±¥æ´ã¨{0}ã«æˆ»ã—ã¾ã—ãŸ" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "å±¥æ´" @@ -2592,7 +2589,7 @@ msgid "Questions" msgstr "質å•" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "パルス" @@ -2629,7 +2626,7 @@ msgstr "è³¼èªã™ã‚‹" msgid "You're subscribed. Thanks for using Metabase!" msgstr "è³¼èªã®ç™»éŒ²ãŒã•ã‚Œã¾ã—ãŸã€‚Metabaseã‚’ã”利用ã„ãŸã ãã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ï¼" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "エラーãŒç™ºç”Ÿã—ã¾ã—ãŸ..." @@ -2638,14 +2635,14 @@ msgid "Temporary Password" msgstr "仮パスワード" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "éžè¡¨ç¤ºã«ã™ã‚‹" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "表示ã™ã‚‹" @@ -2747,7 +2744,7 @@ msgstr "é¸æŠžã•ã‚Œã¾ã—ãŸ" msgid "Nothing to select" msgstr "é¸æŠžã™ã‚‹ã‚‚ã®ãŒã‚ã‚Šã¾ã›ã‚“" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "申ã—訳ã‚ã‚Šã¾ã›ã‚“ã€é–²è¦§æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“" @@ -2755,8 +2752,8 @@ msgstr "申ã—訳ã‚ã‚Šã¾ã›ã‚“ã€é–²è¦§æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“" msgid "Unknown error encountered" msgstr "ä¸æ˜Žã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "作æˆã™ã‚‹" @@ -2764,7 +2761,6 @@ msgstr "作æˆã™ã‚‹" msgid "Create dashboard" msgstr "ダッシュボードを作æˆã™ã‚‹" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "テーブル" @@ -2789,12 +2785,11 @@ msgstr "ãŠæŽ¢ã—ã®ãƒ‡ãƒ¼ã‚¿ã‚’見ã¤ã‘ã‚‹ãŸã‚フィルターã®èª¿æ•´ã‚’㊠msgid "View by" msgstr "ã§è¦‹ã‚‹" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "ã®" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "皆ã«ã¯å†…ç·’ã§ã™ãŒã€ã‚ãªãŸã¯ç§ã®ãŠæ°—ã«å…¥ã‚Šã§ã™" @@ -2802,19 +2797,19 @@ msgstr "皆ã«ã¯å†…ç·’ã§ã™ãŒã€ã‚ãªãŸã¯ç§ã®ãŠæ°—ã«å…¥ã‚Šã§ã™" msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "データを接続ã™ã‚‹ã¨ã€Xç·šã¨å‘¼ã°ã‚Œã‚‹è‡ªå‹•æŽ¢æŸ»ã‚’表示ã§ãã¾ã™ã€‚サンプルデータã®ä¾‹ã‚’ã„ãã¤ã‹è¡¨ç¤ºã—ã¾ã™ã€‚" -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "ã“ã“ã‹ã‚‰é–‹å§‹ã™ã‚‹" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "分æž" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "全データをブラウズã™ã‚‹" @@ -2826,44 +2821,45 @@ msgstr "上書ãã—ã¾ã™ã‹ï¼Ÿæ–°ã—ã„データã¨ã—ã¦ä¿å˜ã—ã¾ã™ã‹ï¼Ÿ msgid "Replace original question, \"{0}\"" msgstr "å…ƒã®è³ªå•â€{0}â€ã‚’上書ãã™ã‚‹" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "æ–°ã—ã„質å•ã¨ã—ã¦ä¿å˜ã™ã‚‹" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "ã¾ãšã¯ã€è³ªå•ã‚’ä¿å˜ã—ã¦ãã ã•ã„" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "質å•ã‚’ä¿å˜ã™ã‚‹" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "カードã®åå‰ã¯ï¼Ÿ" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "説明" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "ä»»æ„ã§ã™ãŒã€å…¥åŠ›ã—ã¦ãŠãã¨ã¨ã¦ã‚‚便利ã§ã™" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "ã“ã‚Œã¯ã©ã®ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã«ä¿å˜ã—ã¾ã™ã‹ï¼Ÿ" @@ -2904,11 +2900,11 @@ msgstr "ダッシュボードをアーカイブã™ã‚‹" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "å„シリーズを必ãšé¸æŠžã—ã¦ãã ã•ã„。é¸æŠžã—ãªã„å ´åˆã€ã“ã®ã‚«ãƒ¼ãƒ‰ã§ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ã¯æ©Ÿèƒ½ã—ã¾ã›ã‚“。" -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "ã“ã®ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã¯ç©ºã§ã™" -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "質å•ã‚’è¿½åŠ ã—ã¦ä½¿ã„易ãã—ã¾ã—ょã†ï¼" @@ -2928,50 +2924,50 @@ msgstr "フルスクリーンを解除ã™ã‚‹" msgid "Enter fullscreen" msgstr "フルスクリーン" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "ä¿å˜ä¸..." -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "質å•ã‚’è¿½åŠ ã™ã‚‹" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "ã“ã®ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã«è³ªå•ã‚’è¿½åŠ ã™ã‚‹" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ã‚’è¿½åŠ ã™ã‚‹" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "パラメーター" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "テã‚ã‚¹ãƒˆãƒœãƒƒã‚¯ã‚¹ã‚’è¿½åŠ ã™ã‚‹" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "ダッシュボードを移動ã™ã‚‹" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "ダッシュボードを編集ã™ã‚‹" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "ダッシュボードã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’編集ã™ã‚‹" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "ダッシュボード編集ä¸" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "å„カードã«ãƒ•ã‚£ãƒ«ã‚¿ãƒªãƒ³ã‚°ã™ã‚‹ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’é¸æŠžã™ã‚‹" @@ -3022,11 +3018,11 @@ msgstr "30分" msgid "60 minutes" msgstr "60分" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "自動更新" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "æ›´æ–°é–“éš”" @@ -3038,7 +3034,7 @@ msgstr "ã“ã®è³ªå•ã‚’削除ã—ã¾ã™ã‹ï¼Ÿ" msgid "Your dashboard was saved" msgstr "ダッシュボードãŒä¿å˜ã•ã‚Œã¾ã—ãŸ" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "見る" @@ -3125,10 +3121,9 @@ msgstr "ダッシュボードã‹ã‚‰è³ªå•ã‚’削除ã—ã¾ã—ãŸ" msgid "received the latest data from" msgstr "ã‹ã‚‰æœ€æ–°ã®ãƒ‡ãƒ¼ã‚¿ã‚’å—ä¿¡ã—ã¾ã—ãŸ" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "ä¸æ˜Ž" @@ -3245,7 +3240,7 @@ msgstr "å…¨ã¦è¦‹ã‚‹" msgid "Recently Viewed" msgstr "最近見ãŸãƒ‡ãƒ¼ã‚¿" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "最近ダッシュボードや質å•ã‚’見ã¦ã„ãªã„よã†ã§ã™" @@ -3259,11 +3254,11 @@ msgid "Unarchive" msgstr "アーカイブをå–り消ã™" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "アクティビティ" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "{0}ã®çµæžœ" @@ -3325,6 +3320,9 @@ msgstr "ã‚¢ãƒã‚¿ãƒ¼ã‚¤ãƒ¡ãƒ¼ã‚¸URL" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "一般" @@ -3367,8 +3365,8 @@ msgstr "経度" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "数値" @@ -3414,93 +3412,93 @@ msgstr "作æˆæ™‚é–“" msgid "Creation date" msgstr "作æˆæ—¥" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "商å“" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "ユーザー" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "ソース" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "料金" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "タイムスタンプå‚åŠ " -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "å‚åŠ æ™‚é–“" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "登録日" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "共有ã™ã‚‹" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "オーナー" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "会社" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "è³¼èª" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "スコア" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "タイトル" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "コメント" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "コスト" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "売上ç·åˆ©ç›Š" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "生年月日" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "検索ボックス" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "全値ã®ä¸€è¦§" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "入力ボックス" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "ã©ã“ã§ã‚‚" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "デフォルトè¨å®šã€‚ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã¯é€šå¸¸ãƒ†ãƒ¼ãƒ–ルやãƒãƒ£ãƒ¼ãƒˆã«è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚" @@ -3508,7 +3506,7 @@ msgstr "デフォルトè¨å®šã€‚ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã¯é€šå¸¸ãƒ†ãƒ¼ãƒ–ルやムmsgid "Only in Detail Views" msgstr "詳細表示ã®ã¿" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã¯ã€å˜ä¸€ã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã®è©³ç´°ã‚’閲覧ã™ã‚‹å ´åˆã«ã®ã¿è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ 処ç†ã«æ™‚é–“ã®ã‹ã‹ã‚‹æƒ…å ±ã‚„ã€ãƒ†ãƒ¼ãƒ–ルやãƒãƒ£ãƒ¼ãƒˆå†…ã§ã¯åˆ©ç”¨ã§ããªã„æƒ…å ±ã«ä½¿ç”¨ã—ã¦ãã ã•ã„。" @@ -3522,7 +3520,8 @@ msgstr "Metabaseã¯ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’å–å¾—ã—ãªããªã‚Šã¾ã™ã€‚å–å¾— #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3537,8 +3536,9 @@ msgid "CumulativeCount" msgstr "ç´¯ç©ã‚«ã‚¦ãƒ³ãƒˆ" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "åˆè¨ˆ" @@ -3547,7 +3547,7 @@ msgid "CumulativeSum" msgstr "ç´¯ç©å’Œ" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "ディスティンクト" @@ -3556,25 +3556,28 @@ msgid "StandardDeviation" msgstr "標準åå·®" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "å¹³å‡" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "最低" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "最高" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "å—å¥ã‚¨ãƒ©ãƒ¼ãŒæ¤œå‡ºã•ã‚Œã¾ã—ãŸ" @@ -3622,12 +3625,13 @@ msgid "What do you want to find out?" msgstr "何を調ã¹ã¾ã™ã‹ï¼Ÿ" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "ãƒãƒ¼ãƒ‡ãƒ¼ã‚¿" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "ç´¯ç©ã‚«ã‚¦ãƒ³ãƒˆ" @@ -3671,174 +3675,174 @@ msgstr "フィルターã•ã‚ŒãŸ" msgid "Sorted by " msgstr "ソートã•ã‚ŒãŸ" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "æ£" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "誤" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "経度フィールドをé¸æŠžã™ã‚‹" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "ã‚‚ã£ã¨ä¸Šã®ç·¯åº¦ã‚’入力ã™ã‚‹" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "ã‚‚ã£ã¨å·¦ã®çµŒåº¦ã‚’入力ã™ã‚‹" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "ã‚‚ã£ã¨ä¸‹ã®ç·¯åº¦ã‚’入力ã™ã‚‹" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "ã‚‚ã£ã¨å³ã®çµŒåº¦ã‚’入力ã™ã‚‹" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "ã§ã‚ã‚‹" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "ã§ã¯ãªã„" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "空" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "空ã§ã¯ãªã„" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "åŒç‰" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "åŒç‰ã§ã¯ãªã„" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "より大ãã„" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "よりå°ã•ã„" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "é–“" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "以上" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "以下" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "å«ã‚€" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "å«ã¾ãªã„" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "ã§å§‹ã¾ã‚‹" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "ã§çµ‚ã‚ã‚‹" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "å‰" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "後" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "ä¸" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "回ç”内ã®è¡Œã‚’å«ã‚€ãƒ†ãƒ¼ãƒ–ルã®ã¿ã€ä»–æ“作ãªã—" -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "è¡Œã®ã‚«ã‚¦ãƒ³ãƒˆ" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "回ç”ã®å…¨è¡Œæ•°" -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "ã®åˆè¨ˆ" -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "列ã®å…¨å€¤ã®åˆè¨ˆ" -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "ã®å¹³å‡" -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "列ã®å…¨å€¤ã®å¹³å‡" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "...ã®ç•°ãªã‚‹å€¤ã®æ•°" -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "回ç”ã®å…¨è¡Œã®ã†ã¡ãƒ¦ãƒ‹ãƒ¼ã‚¯å€¤ã®åˆ—æ•°" -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "ç´¯ç©åˆè¨ˆ" @@ -3846,7 +3850,7 @@ msgstr "ç´¯ç©åˆè¨ˆ" msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "列ã®å…¨å€¤ã®åˆè¨ˆ\\\\ne.x. 経年ã®å…¨åŽå…¥" -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "è¡Œã®ç´¯ç©ã‚«ã‚¦ãƒ³ãƒˆ" @@ -3854,27 +3858,27 @@ msgstr "è¡Œã®ç´¯ç©ã‚«ã‚¦ãƒ³ãƒˆ" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "行数ã®åˆè¨ˆ\\\\ne.x.経年ã®è²©å£²æ•°åˆè¨ˆ" -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "...ã®æ¨™æº–åå·®" -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "回ç”ã®å…¨è¡Œã®é–“ã§åˆ—ã®å€¤ãŒã©ã‚Œãらã„ç•°ãªã‚‹ã‹ã‚’表ã™æ•°å€¤" -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "...ã®æœ€ä½Ž" -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "列ã®æœ€ä½Žå€¤" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "...ã®æœ€é«˜" -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "列ã®æœ€é«˜å€¤" @@ -4048,68 +4052,70 @@ msgstr "他カテゴリー" msgid "Category, Type, Model, Rating, etc." msgstr "カテゴリーã€ã‚¿ã‚¤ãƒ—ã€ãƒ¢ãƒ‡ãƒ«ã€ãƒ¬ãƒ¼ãƒ†ã‚£ãƒ³ã‚°ç‰" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "アカウントè¨å®š" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "管ç†ç”»é¢ã‹ã‚‰é›¢ã‚Œã‚‹" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "ãƒã‚°" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "ヘルプ" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "Metabaseã«ã¤ã„ã¦" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "サインアウト" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "ã”利用ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "ã”利用ä¸ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "ビルド年月日: " -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "ã¯å³è¨˜ã®ä¼šç¤¾ãŒæœ‰ã™ã‚‹å•†æ¨™ã§ã™" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "カリフォルニアã®ã‚µãƒ³ãƒ•ãƒ©ãƒ³ã‚·ã‚¹ã‚³ã§åˆ¶ä½œã•ã‚Œã¦ã„ã¾ã™" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Metabase管ç†è€…" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "照会ã™ã‚‹" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "æ–°ã—ã„ダッシュボード" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "æ–°ã—ã„パルス" @@ -4122,7 +4128,6 @@ msgstr "å‚ç…§" msgid "Which metric?" msgstr "ã©ã®ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã§ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "ãƒãƒ¼ãƒ ã®å…±é€šã®ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’定義ã™ã‚‹ã“ã¨ã§ã€ã•ã‚‰ã«ç°¡å˜ã«è³ªå•ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™" @@ -4140,7 +4145,7 @@ msgid "Custom" msgstr "カスタム" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "æ–°ã—ã„質å•" @@ -4148,13 +4153,13 @@ msgstr "æ–°ã—ã„質å•" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "トレンドやリストを表示ã—ãŸã‚Šã€ç‹¬è‡ªã®ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’作æˆã™ã‚‹ã«ã¯ã€ç°¡å˜ãªè³ªå•ãƒ“ルダーを使用ã—ã¦ãã ã•ã„。" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "ãƒã‚¤ãƒ†ã‚£ãƒ–クエリ" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "複雑ãªè³ªå•ã«ã¤ã„ã¦ã¯ã€ç‹¬è‡ªã®SQLã¾ãŸã¯ãƒã‚¤ãƒ†ã‚£ãƒ–クエリを記述ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" @@ -4255,7 +4260,7 @@ msgstr "値を入力ã™ã‚‹..." msgid "Enter a default value..." msgstr "デフォルト値を入力ã™ã‚‹..." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "エラーãŒç™ºç”Ÿã—ã¾ã—ãŸ" @@ -4502,7 +4507,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "パルスをå°ã•ãä¿ã¡ã€ãƒãƒ¼ãƒ 全体ã«ã¨ã£ã¦ä½¿ã„ã‚„ã™ã処ç†ã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚" #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "データをé¸ã¶" @@ -4518,47 +4523,47 @@ msgstr "メール" msgid "Slack messages" msgstr "Slackメッセージ" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "é€ä¿¡ã—ã¾ã—ãŸ" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0}ãŒé€ä¿¡ã•ã‚Œã¾ã™" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "メッセージ" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "今ã™ãメールをé€ä¿¡ã™ã‚‹" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "今ã™ã{0}ã«é€ä¿¡ã™ã‚‹" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "é€ä¿¡ä¸..." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "é€ä¿¡ã«å¤±æ•—ã—ã¾ã—ãŸ" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "パルスã®çµæžœãŒå˜åœ¨ã—ãªã„ãŸã‚é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "パルスãŒé€ä¿¡ã•ã‚Œã¾ã—ãŸ" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0}ã¯ç®¡ç†è€…ãŒè¨å®šã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4645,7 +4650,7 @@ msgstr "時間ã”ã¨ã®è¡Œæ•°" msgid "Break out by {0}" msgstr "{0}ã”ã¨ã«åˆ†å‰²ã™ã‚‹" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "ã“ã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚’è¦ç´„ã™ã‚‹" @@ -4699,15 +4704,15 @@ msgstr "æ˜‡é †" msgid "Descending" msgstr "é™é †" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "時間ã¨ã¨ã‚‚ã«" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "å¹³å‡" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "Distinct" @@ -4902,6 +4907,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} 2行以上ã®ãƒãƒ£ãƒ¼ãƒˆã§ã¯ç›®æ¨™ãƒ™ãƒ¼ã‚¹ã®ã‚¢ãƒ©ãƒ¼ãƒˆãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„ãŸã‚ã€ãƒãƒ£ãƒ¼ãƒˆã«{1}ãŒã‚ã‚‹ãŸã³ã«ã‚¢ãƒ©ãƒ¼ãƒˆãŒé€ä¿¡ã•ã‚Œã¾ã™ã€‚" #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "çµæžœ" @@ -4917,47 +4923,47 @@ msgstr "ヒント" msgid "usually" msgstr "通常" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "セグメントã¾ãŸã¯ãƒ†ãƒ¼ãƒ–ルをé¸ã¶" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "データベースをé¸æŠžã™ã‚‹" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "é¸æŠžã™ã‚‹..." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "テーブルをé¸æŠžã™ã‚‹" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«ã¯ãƒ†ãƒ¼ãƒ–ルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "質å•ãŒã‚ã‚Šã¾ã›ã‚“ã‹ï¼Ÿ" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "ãƒã‚¹ãƒˆã—ãŸã‚¯ã‚¨ãƒªã«ã¤ã„ã¦ã‚‚ã£ã¨èª¿ã¹ã‚‹" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "フィールド" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "セグメントãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "セグメントを探ã™" @@ -5007,7 +5013,7 @@ msgstr "ã‚°ãƒ«ãƒ¼ãƒ”ãƒ³ã‚°ã‚’è¿½åŠ ã™ã‚‹" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5015,9 +5021,9 @@ msgstr "ã‚°ãƒ«ãƒ¼ãƒ”ãƒ³ã‚°ã‚’è¿½åŠ ã™ã‚‹" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5040,7 +5046,7 @@ msgstr "グループ化ã•ã‚ŒãŸ" msgid "None" msgstr "ãªã—" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "ã“ã®è³ªå•ã¯{0}ã§æ›¸ã‹ã‚Œã¾ã—ãŸ" @@ -5052,11 +5058,11 @@ msgstr "エディターをéžè¡¨ç¤ºã«ã™ã‚‹" msgid "Hide Query" msgstr "クエリをéžè¡¨ç¤ºã«ã™ã‚‹" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "エディターを表示ã™ã‚‹" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "クエリを表示ã™ã‚‹" @@ -5101,7 +5107,7 @@ msgstr "ã‚ャンセル" msgid "Move question" msgstr "質å•ã‚’移動ã™ã‚‹" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "ã“ã‚Œã¯ã©ã®ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã«ä¿å˜ã—ã¾ã™ã‹ï¼Ÿ" @@ -5155,7 +5161,7 @@ msgstr "ã“ã®è³ªå•ã®{0}" msgid "Convert this question to {0}" msgstr "ã“ã®è³ªå•ã‚’{0}ã«è»¢æ›ã™ã‚‹" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "ã“ã®è³ªå•ã¯æ›´æ–°ã«ç´„{0}ã‹ã‹ã‚Šã¾ã™" @@ -5188,7 +5194,7 @@ msgstr "ãŠè¦‹ã›ã—ãŸã„ã‚‚ã®ãŒã‚ã‚Šã¾ã™ã€‚データを入力ã—〠是 msgid "How do I use this thing?" msgstr "ã©ã®ã‚ˆã†ã«ä½¿ã„ã¾ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "回ç”ã‚’å¾—ã‚‹" @@ -5256,7 +5262,7 @@ msgstr "アラートをå—ã‘å–ã‚‹" msgid "Back to last run" msgstr "最後ã®å®Ÿè¡Œã«æˆ»ã‚‹" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "ビジュアライゼーション" @@ -5268,7 +5274,7 @@ msgstr "ã¾ã 説明ãŒã‚ã‚Šã¾ã›ã‚“" msgid "Use for current question" msgstr "ç¾åœ¨ã®è³ªå•ã§ä½¿ç”¨ã™ã‚‹" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "役立ã¤ã‹ã‚‚ã—ã‚Œãªã„質å•" @@ -5292,7 +5298,7 @@ msgstr "{0}ã®å…¨ã¦ã®é‡è¤‡ã‚’除ã„ãŸå€¤" msgid "Number of {0} grouped by {1}" msgstr "{1}ã§ã‚°ãƒ«ãƒ¼ãƒ—化ã•ã‚ŒãŸ{0}ã®æ•°" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5326,12 +5332,12 @@ msgid "Filter by {0}" msgstr "{0}ã§ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ã‚’ã‹ã‘ã‚‹" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "{0}ã®æ•°" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "å…¨ã¦ã®{0}を見る" @@ -5351,32 +5357,33 @@ msgstr "{0}ã®ãƒãƒ¼ãƒ‡ãƒ¼ã‚¿ã‚’見る" msgid "More" msgstr "ã•ã‚‰ã«" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "無効ãªè¡¨ç¾" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "ä¸æ˜Žãªã‚¨ãƒ©ãƒ¼" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "フィールド計算å¼" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "ã“ã‚Œã¯ã€ã‚¹ãƒ—レッドシートプãƒã‚°ãƒ©ãƒ ã§æ•°å¼ã‚’書ãよã†ãªã‚‚ã®ã ã¨ãŠè€ƒãˆãã ã•ã„。数値ã€ã“ã®è¡¨ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã€+ãªã©ã®æ•°å¦è¨˜å·ã€ãã®ä»–一部ã®æ©Ÿèƒ½ã‚’使用ã§ãã¾ã™ã€‚ãã®ãŸã‚ã€Subtotal - Costã®ã‚ˆã†ãªã‚‚ã®ã‚’入力ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "詳ã—ã見る" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "åå‰ã‚’付ã‘ã‚‹" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "分ã‹ã‚Šã‚„ã™ã„説明" @@ -5456,7 +5463,7 @@ msgid "Enter desired number" msgstr "希望ã®ç•ªå·ã‚’入力ã™ã‚‹" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "空" @@ -5524,41 +5531,41 @@ msgstr "複数ã®ä»»æ„ã®å¥ã‚’使用ã™ã‚‹ã«ã¯ã€æœ€ä½Ž1ã¤ã®ä»»æ„ã§ãª msgid "Read the full documentation" msgstr "全文をèªã‚€" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "フィルターラベル" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "値タイプ" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "テã‚スト" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "日付" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "フィールドフィルター" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "マップã™ã‚‹ãŸã‚ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "フィルターウィジェットタイプ" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "å¿…è¦ã§ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "デフォルトã®ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆå€¤" @@ -5570,7 +5577,7 @@ msgstr "ã“ã®è³ªå•ã‚’アーカイブã—ã¾ã™ã‹ï¼Ÿ" msgid "This question will be removed from any dashboards or pulses using it." msgstr "ã“ã®è³ªå•ã¯é–¢é€£ã—ãŸãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã‚„パルスã‹ã‚‰å‰Šé™¤ã•ã‚Œã¾ã™" -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "質å•" @@ -5582,8 +5589,8 @@ msgstr "è¿½åŠ ã™ã‚‹è³ªå•ã‚’é¸ã¶" msgid "You are editing this page" msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã‚’編集ä¸ã§ã™" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "ã“ã®{0}を見る" @@ -5591,15 +5598,15 @@ msgstr "ã“ã®{0}を見る" msgid "A subset of" msgstr "ã®ã‚µãƒ–セット" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "フィールドタイプをé¸æŠžã™ã‚‹" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5610,8 +5617,8 @@ msgid "by" msgstr "ã§" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "フィールドタイプ" @@ -5636,12 +5643,12 @@ msgid "Nothing important yet" msgstr "é‡è¦ãªãƒ‡ãƒ¼ã‚¿ã¯ã¾ã ã‚ã‚Šã¾ã›ã‚“" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "興味深ã„データã¯ã¾ã ã‚ã‚Šã¾ã›ã‚“" @@ -5650,12 +5657,12 @@ msgid "Things to be aware of about this {0}" msgstr "ã“ã®{0}é–¢ã—ã¦çŸ¥ã£ã¦ãŠãã¹ãã“ã¨" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "知ã£ã¦ãŠãã¹ãã“ã¨ã¯ã¾ã ã‚ã‚Šã¾ã›ã‚“" @@ -5701,7 +5708,7 @@ msgstr "{0}ã«é–¢ã—ã¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒçŸ¥ã£ã¦ãŠãã¹ãã“ã¨ã¯ã‚ã‚Šã¾ã™ msgid "Which 2-3 fields do you usually group this metric by?" msgstr "ã“ã®ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’グループ化ã™ã‚‹ã«ã‚ãŸã‚Šã‚ˆã使ã†ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰2〜3個ã¯ã©ã‚Œã§ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "ä¼æ¥ã®ãƒ‡ãƒ¼ã‚¿ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã®ãŒåˆã‚ã¦ã®å ´åˆã‚„ã€ã¾ãšã¯ã©ã‚“ãªæ„Ÿã˜ã‹è¦‹ã¦ã¿ãŸã„å ´åˆã¯ã€ã“ã“ã‹ã‚‰å§‹ã‚ã‚‹ã¨è‰¯ã„ã§ã—ょã†" @@ -5717,11 +5724,11 @@ msgstr "変更ç†ç”±" msgid "Leave a note to explain what changes you made and why they were required" msgstr "変更箇所ã¨å¤‰æ›´ç†ç”±ã‚’記入ã—ã¦ãã ã•ã„" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "ãªãœã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã¯èˆˆå‘³æ·±ã„ã§ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«é–¢ã—ã¦çŸ¥ã£ã¦ãŠãã¹ãã“ã¨" @@ -5731,44 +5738,44 @@ msgid "Databases and tables" msgstr "データベースã¨ãƒ†ãƒ¼ãƒ–ル" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "詳細" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "{0}ã®ãƒ†ãƒ¼ãƒ–ル" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "データベース上ã®å®Ÿéš›ã®åå‰" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "ãªãœã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã¯èˆˆå‘³æ·±ã„ã§ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«é–¢ã—ã¦çŸ¥ã£ã¦ãŠãã¹ãã“ã¨" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "データタイプ" @@ -5782,12 +5789,12 @@ msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã¯è¿½åŠ ã•ã‚Œã‚‹ã¨ã“ã“ã«è¡¨ç¤º msgid "Fields in {0}" msgstr "{0}ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "フィールドå" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’自動探査(X-ray)ã™ã‚‹" @@ -5818,11 +5825,11 @@ msgstr "{0}ã®ã‚«ã‚¦ãƒ³ãƒˆ" msgid "See raw data for {0}" msgstr "{0}ã®ãƒãƒ¼ãƒ‡ãƒ¼ã‚¿ã‚’見る" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "ãªãœã“ã®ãƒ†ãƒ¼ãƒ–ルã¯èˆˆå‘³æ·±ã„ã§ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã«é–¢ã—ã¦çŸ¥ã£ã¦ãŠãã¹ãã“ã¨" @@ -5836,7 +5843,7 @@ msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã«é–¢ã™ã‚‹è³ªå•ã¯è¿½åŠ ã•ã‚Œã‚‹ã¨ã“ã“ã«è¡¨ç¤º #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "{0}ã«é–¢ã™ã‚‹è³ªå•" @@ -5851,7 +5858,7 @@ msgstr "{1}ã§{0}を作æˆã—ã¾ã—ãŸ" msgid "Fields in this table" msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã«é–¢ã™ã‚‹è³ªå•" @@ -5887,7 +5894,7 @@ msgstr "全メトリクスを見る" msgid "Segments and tables" msgstr "セグメントã¨ãƒ†ãƒ¼ãƒ–ル" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "テーブル" @@ -6004,8 +6011,8 @@ msgstr "ã“ã®ã‚¬ã‚¤ãƒ‰ã§ä¸æ˜Žç‚¹ãŒã‚ã£ãŸéš›ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚³ãƒ³ã‚¿ã‚¯ msgid "Who should users contact for help if they're confused about this data?" msgstr "ã“ã®ãƒ‡ãƒ¼ã‚¿ã§ä¸æ˜Žç‚¹ãŒã‚ã£ãŸéš›ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯èª°ã«ã‚³ãƒ³ã‚¿ã‚¯ãƒˆã™ã¹ãã§ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "å±¥æ´ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’入力ã—ã¦ãã ã•ã„" @@ -6021,15 +6028,15 @@ msgstr "ã“ã®ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã«é–¢ã—ã¦çŸ¥ã£ã¦ãŠãã¹ãã“ã¨" msgid "How this Metric is calculated" msgstr "ã“ã®ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã®è¨ˆç®—方法" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "計算方法ã¯ã¾ã ã‚ã‚Šã¾ã›ã‚“" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "ã“ã®ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’グループ化ã™ã‚‹ä»–ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "ã“ã®ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’グループ化ã™ã‚‹ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰" @@ -6054,20 +6061,20 @@ msgid "There are no revisions for this metric" msgstr "ã“ã®ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã«ã¯å±¥æ´ãŒã‚ã‚Šã¾ã›ã‚“" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "{0}ã®å±¥æ´" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "ã“ã®ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’自動探査(X-ray)ã™ã‚‹" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "ãªãœã“ã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã¯èˆˆå‘³æ·±ã„ã§ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "ã“ã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã«é–¢ã—ã¦çŸ¥ã£ã¦ãŠãã¹ãã“ã¨" @@ -6091,60 +6098,60 @@ msgstr "セグメントã®ä½œæˆæ–¹æ³•ã«ã¤ã„ã¦è©³ã—ã見る" msgid "Questions about this segment will appear here as they're added" msgstr "ã“ã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã«é–¢ã™ã‚‹è³ªå•ã¯è¿½åŠ ã•ã‚Œã‚‹ã¨ã“ã“ã«è¡¨ç¤ºã•ã‚Œã¾ã™" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "ã“ã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã«ã¯å±¥æ´ãŒã‚ã‚Šã¾ã›ã‚“" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "ã“ã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "ã“ã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã«é–¢ã™ã‚‹è³ªå•" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "ã“ã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚’自動探査(X-ray)ã™ã‚‹" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "ãƒã‚°ã‚¤ãƒ³" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "検索" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "ダッシュボード" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "æ–°ã—ã„質å•" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "使用ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã™ã‚‹" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "ãƒ‡ãƒ¼ã‚¿ã‚’è¿½åŠ ã™ã‚‹" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "ã‚ã¨ã§ãƒ‡ãƒ¼ã‚¿ã‚’è¿½åŠ ã™ã‚‹" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "{0}ã«æŽ¥ç¶šä¸" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "ユーザーåやパスワードç‰ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«é–¢ã™ã‚‹æƒ…å ±ãŒå¿…è¦ã§ã™ã€‚" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "ã‚ã¨ã§ãƒ‡ãƒ¼ã‚¿ã‚’è¿½åŠ ã™ã‚‹" @@ -6152,43 +6159,43 @@ msgstr "ã‚ã¨ã§ãƒ‡ãƒ¼ã‚¿ã‚’è¿½åŠ ã™ã‚‹" msgid "Control automatic scans" msgstr "自動スã‚ャンをè¨å®šã™ã‚‹" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "データ使用ã®å„ªå…ˆåº¦" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "ã”å”力ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "Usage eventã«é–¢ã™ã‚‹æƒ…å ±ã¯åŽé›†ã„ãŸã—ã¾ã›ã‚“" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Metabaseサービスをå‘上ã•ã›ã‚‹ãŸã‚ã€Google Analyticsを通ã˜ã¦ãƒ‡ãƒ¼ã‚¿ä½¿ç”¨ã«é–¢ã™ã‚‹æƒ…å ±ã‚’åŽé›†ã„ãŸã—ã¾ã™" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "åŽé›†ã™ã‚‹æƒ…å ±ã¨ãã®ç†ç”±ã«ã¤ã„ã¦ã¯ã“ã¡ã‚‰ã‚’ã”確èªãã ã•ã„" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "MetabaseãŒåŒ¿åã®æƒ…å ±åŽé›†ã‚’ã™ã‚‹ã“ã¨ã«åŒæ„ã™ã‚‹" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase {0}ã¯ãƒ‡ãƒ¼ã‚¿ã‚„質å•çµæžœã«é–¢ã™ã‚‹æƒ…å ±ã‚’åŽé›†ã—ã¾ã™" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "ã—ãªã„" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "æƒ…å ±åŽé›†ã¯å…¨ã¦åŒ¿åã§ã™" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "æƒ…å ±åŽé›†ã«ã‚ˆã‚‹è¨å®šã¯ç®¡ç†è€…è¨å®šã‹ã‚‰ã„ã¤ã§ã‚‚変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™" @@ -6236,24 +6243,24 @@ msgstr "ã‚„ã‚ {0} ã•ã‚“ã€ã¯ã˜ã‚ã¾ã—ã¦ï¼" msgid "Create a password" msgstr "パスワードを作æˆã™ã‚‹" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "シーッ" -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "パスワード確èª" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "ã‚‚ã†ä¸€åº¦ãŠè©¦ã—ãã ã•ã„" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "ä¼æ¥åã¾ãŸã¯ãƒãƒ¼ãƒ å" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "部署å" @@ -6430,11 +6437,11 @@ msgstr "Googleメールアドレスã§ã‚µã‚¤ãƒ³ã‚¤ãƒ³ã™ã‚‹" msgid "User Details" msgstr "ユーザー詳細" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "デフォルトã«æˆ»ã™" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "ä¸æ˜Žãªãƒžãƒƒãƒ—" @@ -6442,7 +6449,7 @@ msgstr "ä¸æ˜Žãªãƒžãƒƒãƒ—" msgid "Grid map requires binned longitude/latitude." msgstr "グリッドマップã«ã¯çµŒåº¦/緯度ãŒãƒ“ニングã•ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "ã•ã‚‰ã«" @@ -6479,31 +6486,31 @@ msgstr "解除ã™ã‚‹" msgid "Rows {0}-{1} of {2}" msgstr "{2}ã®è¡Œ{0}〜{1}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "{0}è¡Œã«åˆ‡ã‚Šæ¨ã¦ã•ã‚ŒãŸãƒ‡ãƒ¼ã‚¿" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "ビジュアライゼーションãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "ã“ã®ãƒ‡ãƒ¼ã‚¿ã§ã¯ãƒãƒ£ãƒ¼ãƒˆãŒè¡¨ç¤ºã§ãã¾ã›ã‚“" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "çµæžœãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "å¾…æ©Ÿä¸..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "通常約{0}ã‹ã‹ã‚Šã¾ã™" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(通常ã®ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰å‡¦ç†ã‚ˆã‚Šæ™‚é–“ãŒã‹ã‹ã£ã¦ã„ã¾ã™ï¼‰" @@ -6519,11 +6526,11 @@ msgstr "フィールドをé¸æŠžã™ã‚‹" msgid "error" msgstr "エラー" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "é †ç•ªã‚’å¤‰ãˆã‚‹ã«ã¯ã‚¯ãƒªãƒƒã‚¯ã—ã¦ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ãã ã•ã„" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "以下リストã‹ã‚‰ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’è¿½åŠ ã™ã‚‹" @@ -6662,19 +6669,19 @@ msgstr "ãƒ«ãƒ¼ãƒ«ã‚’è¿½åŠ ã™ã‚‹" msgid "Update rule" msgstr "ルールをアップデートã™ã‚‹" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "ビジュアライゼーションã¯nullã§ã™ã€‚" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "ビジュアライゼーションã§ã¯ã€'è˜åˆ¥å'スタティック変数を定義ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™: " -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "ã“ã®è˜åˆ¥åを用ã„ãŸãƒ“ジュアライゼーションã¯ã™ã§ã«å˜åœ¨ã—ã¾ã™: " -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "{0}ã®ãƒ“ジュアライゼーションãŒã‚ã‚Šã¾ã›ã‚“" @@ -6682,11 +6689,11 @@ msgstr "{0}ã®ãƒ“ジュアライゼーションãŒã‚ã‚Šã¾ã›ã‚“" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "「{0}ã€ã¯å±žæ€§ã®ãªã„フィールドã§ã™ã€‚X軸上ã«è¤‡æ•°ã®å€¤ãŒã‚ã‚‹å ´åˆã€å€¤ã¯åˆè¨ˆå€¤ã¨ãªã‚Šã¾ã™ã€‚" -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "ã“ã®ãƒãƒ£ãƒ¼ãƒˆã‚¿ã‚¤ãƒ—ã§ã¯æœ€ä½Ž2列ãŒå¿…è¦ã§ã™" -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "ã“ã®ãƒãƒ£ãƒ¼ãƒˆã‚¿ã‚¤ãƒ—ã¯ã€{0}個以上ã®ãƒ‡ãƒ¼ã‚¿ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“。" @@ -6725,7 +6732,7 @@ msgstr "ãƒãƒ£ãƒ¼ãƒˆè¨å®šã§ã“ã®ãƒãƒ£ãƒ¼ãƒˆã‚’è¨å®šã—ã¦ãã ã•ã„" msgid "Edit Settings" msgstr "編集è¨å®š" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "x値ãŒã‚ã‚Šã¾ã›ã‚“" @@ -6752,7 +6759,7 @@ msgid "Bubble size" msgstr "å¹ã出ã—サイズ" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "ç·š" @@ -6809,104 +6816,104 @@ msgstr "ãªã—" msgid "Linear Interpolated" msgstr "線形補間" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "X軸目盛" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "時系列" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "ç·šå½¢" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "累乗" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "ãƒã‚°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "ヒストグラム" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "åºæ•°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "Y軸目盛" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "X軸線ã¨ãƒžãƒ¼ã‚¯ã‚’表示ã™ã‚‹" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "コンパクト" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "45°回転" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "90°回転" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "Y軸線ã¨ãƒžãƒ¼ã‚¯ã‚’表示ã™ã‚‹" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "自動Y軸範囲" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "å¿…è¦ã«å¿œã˜ã¦åˆ†å‰²ã—ãŸY軸を使用ã™ã‚‹" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "X軸ã«ãƒ©ãƒ™ãƒ«ã‚’表示ã™ã‚‹" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "X軸ラベル" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "Y軸ã®ãƒ©ãƒ™ãƒ«ã‚’表示ã™ã‚‹" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Y軸ラベル" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "標準åå·®" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "範囲" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "範囲図" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "棒" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "棒グラフ" @@ -6932,19 +6939,19 @@ msgstr "ファãƒãƒ«ã‚¿ã‚¤ãƒ—" msgid "Bar chart" msgstr "棒グラフ" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "折れ線グラフ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "ãƒãƒ£ãƒ¼ãƒˆè¨å®šã§ç·¯åº¦ã¨çµŒåº¦ã‚’é¸æŠžã—ã¦ãã ã•ã„" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "地域マップをé¸æŠžã—ã¦ãã ã•ã„" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "ãƒãƒ£ãƒ¼ãƒˆè¨å®šã§åœ°åŸŸã¨ãƒ¡ãƒˆãƒªã‚¯ã‚¹åˆ—ã‚’é¸æŠžã—ã¦ãã ã•ã„" @@ -6952,73 +6959,73 @@ msgstr "ãƒãƒ£ãƒ¼ãƒˆè¨å®šã§åœ°åŸŸã¨ãƒ¡ãƒˆãƒªã‚¯ã‚¹åˆ—ã‚’é¸æŠžã—ã¦ãã ã• msgid "Map" msgstr "マップ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "マップタイプ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "地域マップ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "ピンマップ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "ピンタイプ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "タイル" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "マーカー" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "緯度" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "経度" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "メトリクスフィールド" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "地域フィールド" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "åŠå¾„" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "ã¼ã‹ã—" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "最å°ä¸é€æ˜Žåº¦" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "最大ズーム" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "関係ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "{0}経由" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "ã“ã®{0}ã¯æŽ¥ç¶šã—ã¦ã„ã¾ã›ã‚“:" @@ -7030,7 +7037,7 @@ msgstr "オブジェクト詳細" msgid "object" msgstr "オブジェクト" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "åˆè¨ˆ" @@ -7079,7 +7086,7 @@ msgid "Progress" msgstr "プãƒã‚°ãƒ¬ã‚¹" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "色" @@ -7171,12 +7178,12 @@ msgstr "å³" msgid "Show background" msgstr "背景を表示ã™ã‚‹" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "{0}ビン" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "自動ビニングã•ã‚ŒãŸ" @@ -7598,7 +7605,7 @@ msgstr "ç´¯ç©å’Œ" msgid "{0} and {1}" msgstr "{0}ã¨{1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{1}ã®{0}" @@ -8918,31 +8925,31 @@ msgstr "å…¨ã¦ã®ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³æ¨©é™ã‚’見る" msgid "Also change sub-collections" msgstr "サブコレクションを変更ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "ã“ã®ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã¨ã‚³ãƒ³ãƒ†ãƒ³ãƒ„を編集ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "ã“ã®ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³å†…ã®ã‚¢ã‚¤ãƒ†ãƒ を見るã“ã¨ãŒã§ãã¾ã™" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "コレクションアクセス" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã¯ã€ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³å†…ã®æœ€ä½Žä¸€ã¤ã®ã‚µãƒ–コレクションã®é–²è¦§æ¨©é™ãŒã‚ã‚Šã¾ã™" -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¯ã€ã“ã®ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã®æœ€ä½Ž1ã¤ã®ã‚µãƒ–コレクションを編集ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã™" -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "サブコレクションを見る" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "記憶ã™ã‚‹" @@ -8962,7 +8969,7 @@ msgstr "ダッシュボードã«ã“ã®è³ªå•ã‚’è¿½åŠ ã™ã‚‹" msgid "Create a new dashboard" msgstr "新ダッシュボードを作æˆã™ã‚‹" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "リクエストã—ãŸãƒšãƒ¼ã‚¸ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" @@ -8970,11 +8977,11 @@ msgstr "リクエストã—ãŸãƒšãƒ¼ã‚¸ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" msgid "Select a {0}" msgstr "{0}ã‚’é¸æŠžã™ã‚‹" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "\"{0}\"ã«ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã€è³ªå•ã€ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã‚’ä¿å˜ã™ã‚‹" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "\"{0}\"ã®ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã€è³ªå•ã€ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹" @@ -8994,12 +9001,12 @@ msgstr "関連" msgid "More X-rays" msgstr "ã•ã‚‰ã«è‡ªå‹•æŽ¢æŸ»(X-ray)" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "çµæžœãŒã‚ã‚Šã¾ã›ã‚“" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "検索çµæžœãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" @@ -9209,10 +9216,10 @@ msgstr "該当ãªã—" msgid "Windows domain" msgstr "ウィンドウズドメイン" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "ラベル" @@ -9247,6 +9254,8 @@ msgstr "共有" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9261,33 +9270,33 @@ msgstr "共有" msgid "Display" msgstr "表示" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "軸" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "書å¼" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "データã«åŸºã¥ã自動探査(X-ray)を試ã™" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "ãƒãƒ£ãƒ¼ãƒˆã®è¡¨ç¤ºã§å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸ" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "申ã—訳ã‚ã‚Šã¾ã›ã‚“ã€ã“ã®ã‚«ãƒ¼ãƒ‰ã®é–²è¦§æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。" @@ -9307,20 +9316,20 @@ msgstr "自動探査(X-ray)" msgid "Compare to the rest" msgstr "残りã¨æ¯”較ã™ã‚‹" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "JVMã®ã‚¿ã‚¤ãƒ ゾーンを使ã†" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "ã‚‚ã—ã»ã¨ã‚“ã©ã®ã‚¯ã‚¨ãƒªã§æ‰‹å‹•ã§ã‚¿ã‚¤ãƒ ゾーンã®ã‚ャストをã—ã¦ã„ãªã„é™ã‚Šã€ã“ã®è¨å®šã¯ãã®ã¾ã¾ã«ã—ã¦ãŠãã“ã¨ã‚’ãŠã™ã™ã‚ã—ã¾ã™" -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "ã‚ãªãŸã®ãƒãƒ¼ãƒ ã®æœ€ã‚‚é‡è¦ãªãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ãŒã“ã“ã«è¡¨ç¤ºã•ã‚Œã¾ã™" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "ä»–ã®äººã‚‚閲覧ã§ãるよã†ã“ã®å ´æ‰€ã«è¡¨ç¤ºã•ã›ã‚‹ãŸã‚ã€ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã‚’{0}ã§ãƒ”ン留ã‚ã™ã‚‹" @@ -9344,12 +9353,12 @@ msgstr "ヒント: " msgid "Select a currency type" msgstr "通貨å˜ä½ã‚’é¸æŠž" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "フィールドタイプ" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "トラブルシューティング" @@ -9397,11 +9406,11 @@ msgstr "実行時間(ms)" msgid "Currency" msgstr "通貨" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "ユーザーã‹ãƒãƒ£ãƒ³ãƒãƒ«ã‚’é¸ã¶..." -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "フォーマットè¨å®šã¯ã‚ã‚Šã¾ã›ã‚“" @@ -9576,16 +9585,16 @@ msgstr "ゲージ" msgid "Gauge ranges" msgstr "ゲージã®ç¯„囲" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "表示ã™ã‚‹ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰" #. 「å‰{0}ã€ã¯ã©ã†ã§ã—ょã†ã€‚å‰æ—¥ã€å‰æœˆã€â€¦ -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "å‰{0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} 㯠{1} {2}ã§ã—ãŸ" @@ -9713,7 +9722,7 @@ msgstr "å››åŠæœŸ" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "{0}カードをダッシュボード{1}:n{2}ã«è¿½åŠ ä¸" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "" @@ -9859,7 +9868,7 @@ msgstr "プラグインをèªã¿è¾¼ã¿ä¸ {0}... {1}" #: src/metabase/public_settings.clj msgid "Object keyed by type, containing formatting settings" -msgstr "" +msgstr "タイプã”ã¨ã«ã‚ーè¨å®šã•ã‚Œã€ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆè¨å®šã‚’å«ã‚€ã‚ªãƒ–ジェクト" #: src/metabase/public_settings.clj msgid "Allow users to explore data using X-rays" @@ -9985,7 +9994,7 @@ msgstr "クエリを実行ã§ãã¾ã›ã‚“: ソーステーブル {0} ãŒè¦‹ã¤ #: src/metabase/query_processor/middleware/results_metadata.clj msgid "Error recording results metadata for query:" -msgstr "" +msgstr "クエリã®çµæžœãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®è¨˜éŒ²ã‚¨ãƒ©ãƒ¼:" #: src/metabase/query_processor/store.clj msgid "Error: Query Processor store is not initialized." @@ -10007,7 +10016,7 @@ msgstr "タスク履æ´ã®å‰Šé™¤ã¯æˆåŠŸã—ã¾ã—ãŸã€‚{0}è¡ŒãŒå‰Šé™¤ã•ã‚Œã¾ msgid "not" msgstr "ã§ãªã„" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "詳細ã¯ã“ã¡ã‚‰" @@ -10317,7 +10326,7 @@ msgstr "最もå‚ç…§ã•ã‚ŒãŸãƒšãƒ¼ã‚¸" #: resources/automagic_dashboards/table/UserTable.yaml msgid "An exploration of your users to get you started." -msgstr "" +msgstr "開始ã™ã‚‹ãŸã‚ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®èª¿æŸ»ã€‚" #: resources/automagic_dashboards/table/GenericTable.yaml msgid "An overview of your [[this]] and how its distributed across time, place, and categories." @@ -10467,7 +10476,7 @@ msgstr "国ã”ã¨" #: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml msgid "A deeper look at how different countries are performing for you." -msgstr "" +msgstr "ã•ã¾ã–ã¾ãªå›½ãŒã‚ãªãŸã®ãŸã‚ã«ã©ã®ã‚ˆã†ã«æ©Ÿèƒ½ã—ã¦ã„ã‚‹ã‹ã‚’より深ã見ã¾ã™ã€‚" #: resources/automagic_dashboards/table/TransactionTable/ByState.yaml #: resources/automagic_dashboards/table/TransactionTable.yaml @@ -10547,7 +10556,7 @@ msgstr "ソースã”ã¨ã®å¹³å‡æ•°é‡" #: resources/automagic_dashboards/metric/GenericMetric.yaml msgid "How they compare by across different numbers" -msgstr "" +msgstr "ç•°ãªã‚‹æ•°å€¤ã§ã®æ¯”較方法" #: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml msgid "New users per country in the last 30 days" @@ -11010,6 +11019,7 @@ msgstr "ã“ã®ãƒ¡ãƒˆãƒªãƒƒã‚¯ãŒç•°ãªã‚‹æ•°å€¤ã«ã©ã®ã‚ˆã†ã«åˆ†å¸ƒã—ã¦ã„ msgid "Sessions by page where the session began" msgstr "ページ別ã®é–‹å§‹ã•ã‚ŒãŸã‚»ãƒƒã‚·ãƒ§ãƒ³" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11358,15 +11368,15 @@ msgstr "" msgid "Triggers for {0}" msgstr "{0}ã¸ã®ãƒˆãƒªã‚¬ãƒ¼" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "タスク" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "ジョブ" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "" @@ -11378,7 +11388,7 @@ msgstr "ã“ã®ã‚¢ã‚¤ãƒ†ãƒ を複製ã™ã‚‹" msgid "Archive this item" msgstr "ã“ã®ã‚¢ã‚¤ãƒ†ãƒ をアーカイブã™ã‚‹" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "ダッシュボードを複製ã™ã‚‹" @@ -11405,6 +11415,7 @@ msgid "Next {0}" msgstr "次ã®{0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "å‰ã®{0}" @@ -11489,8 +11500,8 @@ msgstr "[Q]Q" msgid "This" msgstr "" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "無効" @@ -11498,11 +11509,11 @@ msgstr "無効" msgid "Add a time" msgstr "æ™‚é–“ã‚’è¿½åŠ ã™ã‚‹" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "" -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "" @@ -11558,39 +11569,39 @@ msgstr "" msgid "Failed to notify {0} Database {1} updated" msgstr "" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "{0} {1} ドライãƒãƒ¼ã‚’èªè¾¼ä¸" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "{0} ドライãƒãƒ¼ã‚’èªè¾¼" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "ãƒãƒ¼ãƒ‰å¾Œã«ãƒ‰ãƒ©ã‚¤ãƒãƒ¼ãŒç™»éŒ²ã•ã‚Œã¦ã„ã¾ã›ã‚“: {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "抽象ドライãƒãƒ¼ {0} を登録ã—ã¾ã—ãŸ" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "ドライãƒãƒ¼ {0} を登録ã—ã¾ã—ãŸ" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "ドライãƒãƒ¼{0}ã®åˆæœŸåŒ–ä¸ã§ã™..." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "ç†ç”±:" @@ -11742,11 +11753,11 @@ msgstr "" msgid "Plugins with unsatisfied deps: {0}" msgstr "満ãŸã•ã‚Œã¦ã„ãªã„ä¾å˜é–¢ä¿‚ã‚’æŒã¤ãƒ—ラグイン: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "リソースãŒå˜åœ¨ã—ã¾ã›ã‚“。" @@ -12071,7 +12082,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "å››åŠæœŸåˆ¥ã® [[CreateDate]]" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "ユーザーを編集" @@ -12079,12 +12090,12 @@ msgstr "ユーザーを編集" msgid "New user" msgstr "æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "パスワードをリセットã™ã‚‹" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "ユーザーを無効化" @@ -12361,11 +12372,11 @@ msgstr "" msgid "Archive this?" msgstr "ã“れをアーカイブã—ã¾ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "データã«ã¤ã„ã¦å¦ã¶" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "接続時ã«DNS SRVを使用ã™ã‚‹" @@ -12375,7 +12386,7 @@ msgid "Using this option requires that provided host is a FQDN. If connecting t "leave this disabled." msgstr "ã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã«ã¯ã€æä¾›ã•ã‚ŒãŸãƒ›ã‚¹ãƒˆãŒFQDNã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ Atlasクラスターã«æŽ¥ç¶šã™ã‚‹å ´åˆã¯ã€ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ ã“ã‚ŒãŒä½•ã‚’æ„味ã™ã‚‹ã®ã‹ã‚ã‹ã‚‰ãªã„å ´åˆã¯ã€ã“れを無効ã®ã¾ã¾ã«ã—ã¾ã™ã€‚" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "ç°¡å˜ãªãƒ•ã‚£ãƒ«ã‚¿ãƒªãƒ³ã‚°ã¨è¦ç´„ã‚’è¡Œã†ã¨ãã«è‡ªå‹•çš„ã«ã‚¯ã‚¨ãƒªã‚’実行ã™ã‚‹" @@ -12383,7 +12394,7 @@ msgstr "ç°¡å˜ãªãƒ•ã‚£ãƒ«ã‚¿ãƒªãƒ³ã‚°ã¨è¦ç´„ã‚’è¡Œã†ã¨ãã«è‡ªå‹•çš„ã«ã‚¯ msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "ã“れを有効ã«ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€ãƒ¦ãƒ¼ã‚¶â€•ãŒãƒ†ãƒ¼ãƒ–ルやãƒãƒ£ãƒ¼ãƒˆã‚’見るã¨ãã«è¦ç´„やフィルターボタンを利用ã—ã¦ç°¡å˜ãªæŽ¢ç´¢ã‚’è¡Œã£ãŸå ´åˆã«ã€MetabaseãŒè‡ªå‹•çš„ã«ã‚¯ã‚¨ãƒªã‚’実行ã™ã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã¸ã®ã‚¯ã‚¨ãƒªãŒé…ã„å ´åˆã¯ã€ã“ã®è¨å®šã‚’無効ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®è¨å®šã«ã‚ˆã£ã¦ãƒ‰ãƒªãƒ«ã‚¹ãƒ«ãƒ¼ã‚„SQLクエリãŒå½±éŸ¿ã‚’å—ã‘ã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。" -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«ã¤ã„ã¦è©³ç´°ã‚’見る" @@ -12391,25 +12402,25 @@ msgstr "ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«ã¤ã„ã¦è©³ç´°ã‚’見る" msgid "Archive this dashboard?" msgstr "ã“ã®ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã‚’アーカイブã—ã¾ã™ã‹ï¼Ÿ" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "å…¨ã¦ã®çµæžœ" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "我々ã®åˆ†æž" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "" #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "フィルター" @@ -12418,27 +12429,27 @@ msgid "record" msgid_plural "records" msgstr[0] "レコード" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "データを見る" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "SQLを書ã" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "ç°¡å˜ãªè³ªå•" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "データをé¸æŠžã—ã€è¦‹ã¦ã€ãã—ã¦ç°¡å˜ã«ãƒ•ã‚£ãƒ«ã‚¿ãƒªãƒ³ã‚°ã‚„集約をã—ã€å¯è¦–化ã—ã¾ã™ã€‚" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "カスタム質å•" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "高度ãªãƒŽãƒ¼ãƒˆãƒ–ックエディターを使用ã—ã¦ã€ãƒ‡ãƒ¼ã‚¿ã®çµåˆã€ã‚«ã‚¹ã‚¿ãƒ 列ã®ä½œæˆã€è¨ˆç®—ãªã©ã‚’è¡Œã„ã¾ã™ã€‚" @@ -12446,7 +12457,7 @@ msgstr "高度ãªãƒŽãƒ¼ãƒˆãƒ–ックエディターを使用ã—ã¦ã€ãƒ‡ãƒ¼ã‚¿ã® msgid "Basic Metrics" msgstr "基本的ãªãƒ¡ãƒˆãƒªã‚¯ã‚¹" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "カスタム…" @@ -12462,7 +12473,7 @@ msgstr "" msgid "Show maximum" msgstr "最大を表示" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "" @@ -12491,7 +12502,7 @@ msgid "Custom column" msgstr "カスタム列" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "è¦ç´„" @@ -12508,11 +12519,10 @@ msgid "Pick the metric you want to see" msgstr "見ãŸã„メトリクスをé¸ã¶" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "集約ã™ã‚‹ãŸã‚ã®ã‚ー列をé¸ã¶" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "開始ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ã‚’é¸æŠžã—ã¦ãã ã•ã„" @@ -12524,7 +12534,7 @@ msgstr "é¸æŠžè§£é™¤" msgid "Select All" msgstr "ã™ã¹ã¦é¸æŠž" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "テーブルをé¸ã¶..." @@ -12569,15 +12579,15 @@ msgid "{0} breakout" msgid_plural "{0} breakouts" msgstr[0] "" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "フィルターをéžè¡¨ç¤º" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "フィルターを表示ã™ã‚‹" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "ã‹ã‚‰é–‹å§‹" @@ -12606,11 +12616,11 @@ msgstr "{0}を表示ã—ã¦ã„ã¾ã™" msgid "Summarized" msgstr "è¦ç´„ã•ã‚ŒãŸ" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "エディターをéžè¡¨ç¤ºã«ã™ã‚‹" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "エディターを表示ã™ã‚‹" @@ -12618,7 +12628,7 @@ msgstr "エディターを表示ã™ã‚‹" msgid "Pick the metric you'd like to see" msgstr "ã‚ãªãŸã®è¦‹ãŸã„指標をé¸ã¶" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "" @@ -12646,7 +12656,7 @@ msgstr "ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’è¿½åŠ ã™ã‚‹" msgid "Profile" msgstr "プãƒãƒ•ã‚£ãƒ¼ãƒ«" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "ã“ã‚Œã¯ãŸã„ã¦ã„ã®å ´åˆã¯ã¨ã¦ã‚‚速ã„ã§ã™ãŒã€ç¾åœ¨ã¯æ™‚é–“ãŒã‹ã‹ã£ã¦ã„るよã†ã§ã™ã€‚" @@ -12674,19 +12684,19 @@ msgstr "ä¸æ˜Žãªã‚»ã‚°ãƒ¡ãƒ³ãƒˆ" msgid "Unknown Filter" msgstr "ä¸æ˜Žãªãƒ•ã‚£ãƒ«ã‚¿ãƒ¼" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "左外部çµåˆ" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "å³å¤–部çµåˆ" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "内部çµåˆ" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "完全外部çµåˆ" @@ -12738,7 +12748,7 @@ msgstr "アプリケーションデータベース セットアップ" msgid "Could not find {0} driver." msgstr "{0}ã®ãƒ‰ãƒ©ã‚¤ãƒãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "" @@ -12796,7 +12806,7 @@ msgstr "spark-deps.jarã¯Metabase 0.32.0以é™ã§ã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。プ msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "「新ã—ã作æˆã•ã‚ŒãŸã€ã‚¯ãƒ©ã‚¹ãƒãƒ¼ãƒ€ãƒ¼ã‚’共有コンテã‚ストクラスãƒãƒ¼ãƒ€ãƒ¼ã¨ã—ã¦ä½¿ç”¨: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "ファイルã®ã‚³ãƒ”ーã«å¤±æ•—ã—ã¾ã—ãŸ" @@ -13074,7 +13084,7 @@ msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "å«ã‚ãŸã„列をé¸ã¶" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "ã“れを有効ã«ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒãƒãƒ£ãƒ¼ãƒˆã‚„テーブルを見るã¨ãã«è¦ç´„やフィルターボタンを利用ã—ã¦ç°¡å˜ãªæŽ¢ç´¢ã‚’è¡Œã£ãŸå ´åˆã«ã€MetabaseãŒè‡ªå‹•çš„ã«ã‚¯ã‚¨ãƒªã‚’実行ã™ã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã¸ã®ã‚¯ã‚¨ãƒªãŒé…ã„å ´åˆã¯ã€ã“ã®è¨å®šã‚’無効ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®è¨å®šã«ã‚ˆã£ã¦ãƒ‰ãƒªãƒ«ã‚¹ãƒ«ãƒ¼ã‚„SQLクエリãŒå½±éŸ¿ã‚’å—ã‘ã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。" @@ -13112,3 +13122,439 @@ msgstr "クエリã®äºˆæƒ³åˆ—ã®æ±ºå®šã‚¨ãƒ©ãƒ¼" msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "例外ãŒãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°ã•ã‚Œã¦ã„ã¾ã›ã‚“。ミドルウェアã§`catch-exceptions`ã‚’è¡Œã„ãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°ã—ã¦ãã ã•ã„。" +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "" + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "" + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "" + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "" + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "" + diff --git a/locales/metabase.pot b/locales/metabase.pot index ff3a86e14c0fbf2c20e639f3c47b00d8f574d875..acc10e671d4eab4a999b20fb18d2acfcde19fefc 100644 --- a/locales/metabase.pot +++ b/locales/metabase.pot @@ -13,7 +13,7 @@ msgstr "" "#-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-#\n" "Project-Id-Version: metabase\n" "Report-Msgid-Bugs-To: docs@metabase.com\n" -"POT-Creation-Date: 2019-03-18 14:07-0700\n" +"POT-Creation-Date: 2019-12-11 15:09-0800\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" @@ -53,10 +53,11 @@ msgstr "" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:327 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:96 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:265 +#: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "" @@ -64,19 +65,19 @@ msgstr "" msgid "Select a database type" msgstr "" -#: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:75 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:170 -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:401 -#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:71 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:182 +#: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 +#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 +#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:180 -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:197 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 +#: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:171 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "" @@ -100,7 +101,7 @@ msgid "" msgstr "" #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:147 -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:184 +#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:183 msgid "Scan" msgstr "" @@ -118,19 +119,19 @@ msgid "" "database." msgstr "" -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:159 +#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:158 msgid "When should Metabase automatically scan and cache field values?" msgstr "" -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:164 +#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:163 msgid "Regularly, on a schedule" msgstr "" -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:195 +#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:194 msgid "Only when adding a new filter widget" msgstr "" -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:199 +#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:198 msgid "" "When a user adds a new filter to a dashboard or a SQL question, Metabase " "will\n" @@ -138,243 +139,233 @@ msgid "" "selectable values." msgstr "" -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:210 +#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:209 msgid "Never, I'll do this manually if I need to" msgstr "" -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:222 +#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:221 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:27 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:426 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "" -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:39 +#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:38 #: frontend/src/metabase/components/form/FormMessage.jsx:4 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:144 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:146 msgid "Server error encountered" msgstr "" -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:53 -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:70 +#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:52 +#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:65 msgid "DELETE" msgstr "" -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:55 -msgid "Just a heads up:" -msgstr "" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:58 +#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:56 msgid "Delete this database?" msgstr "" -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:63 -msgid "" -"{0} without the Sample Dataset, the Query Builder tutorial won't work. You " -"can always restore the Sample Dataset, but any questions you've saved using " -"this data will be lost." -msgstr "" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:66 +#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:61 msgid "" "All saved questions, metrics, and segments that rely on this database will " "be lost." msgstr "" -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:67 +#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:62 msgid "This cannot be undone." msgstr "" -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:70 +#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:65 msgid "If you're sure, please type" msgstr "" -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:71 +#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:66 msgid "in this box:" msgstr "" -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:82 -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:50 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:87 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:93 +#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 +#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 -#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:58 -#: frontend/src/metabase/admin/permissions/selectors.js:160 -#: frontend/src/metabase/admin/permissions/selectors.js:170 -#: frontend/src/metabase/admin/permissions/selectors.js:185 -#: frontend/src/metabase/admin/permissions/selectors.js:224 -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:355 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:181 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:247 +#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 +#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 +#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 +#: frontend/src/metabase/components/ArchiveModal.jsx:35 #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:61 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 #: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:162 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:189 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:24 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:83 -#: frontend/src/metabase/query_builder/containers/ArchiveQuestionModal.jsx:48 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 +#: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:259 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "" -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:88 -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:121 -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:132 +#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:83 +#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:124 +#: frontend/src/metabase/home/containers/ArchiveApp.jsx:135 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Delete" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase-lib/lib/DimensionOptions.js:114 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:128 -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:74 -#: frontend/src/metabase/admin/permissions/selectors.js:320 -#: frontend/src/metabase/admin/permissions/selectors.js:327 -#: frontend/src/metabase/admin/permissions/selectors.js:423 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:214 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:129 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:170 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:78 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:84 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:182 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:184 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:356 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:47 msgid "Save changes" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:185 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:38 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:38 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:193 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:194 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:206 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:109 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:117 +#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 +#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:95 msgid "Starting…" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:195 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:205 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:207 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:110 +#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:111 +#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:215 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:401 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:221 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:239 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:73 +#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:76 msgid "Add database" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:85 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:36 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:36 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:122 +#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:399 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 #: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 -#: frontend/src/metabase/entities/collections.js:93 -#: frontend/src/metabase/entities/dashboards.js:145 -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:461 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:81 +#: frontend/src/metabase/entities/collections.js:94 +#: frontend/src/metabase/entities/dashboards.js:142 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:86 +#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:89 msgid "Engine" msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:115 +#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:118 msgid "Deleting..." msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:145 +#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:148 msgid "Loading ..." msgstr "" -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:161 +#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:164 msgid "Bring the sample dataset back" msgstr "" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "" -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "" @@ -391,7 +382,7 @@ msgid "Custom mapping" msgstr "" #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:55 -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:155 +#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:161 msgid "Unrecognized mapping type" msgstr "" @@ -400,45 +391,46 @@ msgid "" "Current field isn't a foreign key or FK target table metadata is missing" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:187 +#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:196 msgid "The selected field isn't a foreign key" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:268 +#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:277 msgid "Choose a field" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:289 +#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:298 msgid "Please select a column to use for display." msgstr "" -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:379 +#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:388 msgid "Original value" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:380 +#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:389 msgid "Mapped value" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:423 +#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:432 msgid "Enter value" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:432 +#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:441 msgid "Tip: " msgstr "" -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:433 +#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:442 msgid "" "You might want to update the field name to make sure it still makes sense " "based on your remapping choices." msgstr "" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:278 -#: frontend/src/metabase/parameters/components/ParameterWidget.jsx:177 -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:197 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 +#: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 +#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "" @@ -446,46 +438,48 @@ msgstr "" msgid "Revision History" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:32 msgid "Retire this {0}?" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:38 +#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:37 msgid "" "Saved questions and other things that depend on this {0} will continue to " "work, but this {1} will no longer be selectable from the query builder." msgstr "" -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:39 +#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:38 msgid "" "If you're sure you want to retire this {0}, please write a quick explanation " "of why it's being retired:" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:43 +#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:42 msgid "" "This will show up in the activity feed and in an email that will be sent to " "anyone on your team who created something that uses this {0}." msgstr "" -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:58 +#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:57 msgid "Retire" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:59 +#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:58 msgid "Retiring…" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:60 +#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:59 msgid "Failed" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:61 +#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:60 msgid "Success" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:118 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 +#: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "" @@ -494,67 +488,69 @@ msgid "Re-scan this field" msgstr "" #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:22 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:116 +#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:94 msgid "Discard cached field values" msgstr "" #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:24 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:118 +#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:96 msgid "Failed to discard values" msgstr "" #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:25 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:119 +#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:97 msgid "Discard triggered!" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:99 +#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:90 msgid "No column description yet" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:135 +#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:123 msgid "Select a field visibility" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:210 +#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:193 msgid "No special type" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:211 +#: frontend/src/metabase-lib/lib/DimensionOptions.js:148 +#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:231 +#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:220 msgid "Select a special type" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:258 +#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:246 msgid "Select a currency type" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:277 +#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:265 msgid "Select a target" msgstr "" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:17 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:77 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:89 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:106 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:122 +#: frontend/src/metabase/query_builder/components/notebook/steps/FieldsPicker.jsx:22 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:82 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:94 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:125 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:162 msgid "Columns" msgstr "" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:22 -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:44 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:46 msgid "Column" msgstr "" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:121 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:306 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "" @@ -562,119 +558,116 @@ msgstr "" msgid "Type" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataHeader.jsx:87 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataHeader.jsx:104 msgid "Current database:" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataHeader.jsx:92 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataHeader.jsx:109 msgid "Show original schema" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:45 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:47 msgid "Data Type" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:46 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:48 msgid "Additional Info" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchemaList.jsx:44 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchemaList.jsx:46 msgid "Find a schema" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchemaList.jsx:51 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchemaList.jsx:53 msgid "{0} schema" msgid_plural "{0} schemas" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:82 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:103 msgid "Why Hide?" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:83 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:104 msgid "Technical Data" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:84 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:105 msgid "Irrelevant/Cruft" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:90 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:111 msgid "Queryable" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:112 msgid "Hidden" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:117 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:138 msgid "No table description yet" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:124 -msgid "Metadata Strength" -msgstr "" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:87 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:83 msgid "{0} Queryable Table" msgid_plural "{0} Queryable Tables" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:96 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:92 msgid "{0} Hidden Table" msgid_plural "{0} Hidden Tables" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:113 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:109 msgid "Find a table" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:126 +#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:122 msgid "Schemas" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:24 -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:137 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:189 -#: frontend/src/metabase/reference/metrics/MetricList.jsx:56 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 +#: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:30 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:37 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:37 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:54 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:24 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:930 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 -#: frontend/src/metabase/reference/segments/SegmentList.jsx:56 +#: frontend/src/metabase/reference/segments/SegmentList.jsx:62 #: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:21 msgid "Segments" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:30 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:54 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "" @@ -702,120 +695,116 @@ msgstr "" msgid "made some changes" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:46 -#: frontend/src/metabase/home/components/Activity.jsx:80 -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:332 +#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:49 +#: frontend/src/metabase/home/components/Activity.jsx:82 +#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:333 msgid "You" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/revisions/RevisionHistory.jsx:37 +#: frontend/src/metabase/admin/datamodel/components/revisions/RevisionHistory.jsx:39 msgid "Datamodel" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/revisions/RevisionHistory.jsx:43 +#: frontend/src/metabase/admin/datamodel/components/revisions/RevisionHistory.jsx:42 msgid " History" msgstr "" -#: frontend/src/metabase/admin/datamodel/components/revisions/RevisionHistory.jsx:48 +#: frontend/src/metabase/admin/datamodel/components/revisions/RevisionHistory.jsx:47 msgid "Revision History for" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:217 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:222 -#: frontend/src/metabase/admin/settings/selectors.js:319 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 +#: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:239 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:307 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:318 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "" "When this field is used in a filter, what should people use to enter the " "value they want to filter on?" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:348 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "" "Choose to show the original value from the database, or have this field " "display associated or custom information." msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:364 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:102 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 +#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:365 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "" "Metabase can scan the values for this field to enable checkbox filters in " "dashboards and questions." msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:453 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetadataEditorApp.jsx:105 +#: frontend/src/metabase/admin/datamodel/containers/MetadataEditorApp.jsx:116 msgid "Select any table to see its schema and add or edit metadata." msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:37 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:34 -#: frontend/src/metabase/entities/collections.js:96 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 +#: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:40 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:37 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:44 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:41 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:50 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:110 -msgid "Edit Your Metric" -msgstr "" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:111 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:115 -msgid "Make changes to your metric and leave an explanatory note." +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 +msgid "Edit Your Metric" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:116 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "" "You can create saved metrics to add a named metric option to this table. " "Saved metrics include the aggregation type, the aggregated field, and " @@ -824,135 +813,140 @@ msgid "" "Orders table." msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 +msgid "Make changes to your metric and leave an explanatory note." +msgstr "" + +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:157 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:162 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:166 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:166 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "" "Give your metric a description to help others understand what it's about." msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:171 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "" "This is a good place to be more specific about less obvious metric rules" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:175 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:179 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:177 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:181 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "" "Leave a note to explain what changes you made and why they were required." msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:181 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "" "This will show up in the revision history for this metric to help everyone " "remember why things changed" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:49 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:47 msgid "At least one filter is required" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:116 -msgid "Edit Your Segment" -msgstr "" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:117 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:106 msgid "Create Your Segment" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:121 -msgid "Make changes to your segment and leave an explanatory note." +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:106 +msgid "Edit Your Segment" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:122 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:109 msgid "Select and add filters to create your new segment for the {0} table" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 +msgid "Make changes to your segment and leave an explanatory note." +msgstr "" + +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:162 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:170 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "" "Give your segment a description to help others understand what it's about." msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:175 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "" "This is a good place to be more specific about less obvious segment rules" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:185 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "" "This will show up in the revision history for this segment to help everyone " "remember why things changed" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 -#: frontend/src/metabase/admin/routes.jsx:127 -#: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:266 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:87 -#: frontend/src/metabase/nav/containers/Navbar.jsx:199 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 +#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 +#: frontend/src/metabase/admin/routes.jsx:129 +#: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:103 +#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:81 msgid "" "Metabase can scan the values in this table to enable checkbox filters in " "dashboards and questions." msgstr "" -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:86 msgid "Re-scan this table" msgstr "" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:253 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:278 +#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "" -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:32 +#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:34 msgid "" "All users belong to the {0} group and can't be removed from it. Setting " "permissions for this group is a great way to\n" "make sure you know what new Metabase users will be able to see." msgstr "" -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:41 +#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:43 msgid "" "This is a special group whose members can see everything in the Metabase " "instance, and who can access and make changes to the\n" @@ -960,42 +954,43 @@ msgid "" "to this group with care." msgstr "" -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:45 +#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:47 msgid "" "To make sure you don't get locked out of Metabase, there always has to be at " "least one user in this group." msgstr "" -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:177 +#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:187 #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:218 msgid "Members" msgstr "" -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:177 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:124 -#: frontend/src/metabase/admin/settings/selectors.js:113 +#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:187 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:125 +#: frontend/src/metabase/admin/settings/selectors.js:110 +#: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "" -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:203 +#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:213 msgid "A group is only as good as its members." msgstr "" -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:329 +#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:339 msgid "Add members" msgstr "" #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "" #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:16 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:237 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:290 +#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:245 +#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:303 msgid "and" msgstr "" @@ -1026,13 +1021,13 @@ msgid "" msgstr "" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:71 -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:42 +#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:43 #: frontend/src/metabase/components/ConfirmContent.jsx:17 msgid "Yes" msgstr "" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:74 -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:42 +#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:43 msgid "No" msgstr "" @@ -1049,10 +1044,10 @@ msgid "Group name" msgstr "" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:131 -#: frontend/src/metabase/admin/routes.jsx:88 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:154 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 +#: frontend/src/metabase/admin/routes.jsx:89 +#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "" @@ -1068,15 +1063,15 @@ msgid "" "that can't be removed." msgstr "" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:93 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:204 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:200 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "" @@ -1084,45 +1079,45 @@ msgstr "" msgid "New user" msgstr "" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:101 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:102 msgid "Active" msgstr "" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:102 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:127 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:103 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:128 msgid "Deactivated" msgstr "" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:115 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:116 msgid "Add someone" msgstr "" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:133 msgid "Last Login" msgstr "" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:153 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:158 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:170 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:193 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:209 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "" @@ -1168,7 +1163,7 @@ msgstr "" #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:54 #: frontend/src/metabase/components/ConfirmContent.jsx:13 -#: frontend/src/metabase/dashboard/components/ArchiveDashboardModal.jsx:44 +#: frontend/src/metabase/dashboard/components/ArchiveDashboardModal.jsx:18 msgid "Are you sure you want to do this?" msgstr "" @@ -1190,7 +1185,7 @@ msgstr "" msgid "If you want to be able to send email invites, just go to the {0} page." msgstr "" -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:27 +#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:31 #: src/metabase/automagic_dashboards/core.clj #, fuzzy msgid "{0} table" @@ -1200,31 +1195,33 @@ msgstr[0] "" "#-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-#\n" msgstr[1] "#-#-#-#-# metabase-frontend.pot #-#-#-#-#\n" -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:45 +#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:49 msgid " will be " msgstr "" -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:48 +#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:52 msgid "given access to" msgstr "" -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:53 +#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:57 +#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:26 +#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:36 msgid " and " msgstr "" -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:56 +#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:60 msgid "denied access to" msgstr "" -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:70 +#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:74 msgid " will no longer be able to " msgstr "" -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:71 +#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:75 msgid " will now be able to " msgstr "" -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:79 +#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:83 msgid " native queries for " msgstr "" @@ -1257,23 +1254,23 @@ msgstr "" msgid "Collection permissions" msgstr "" -#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:52 +#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:55 msgid "Permissions for this collection" msgstr "" -#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:56 +#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:59 msgid "See all collection permissions" msgstr "" -#: frontend/src/metabase/admin/permissions/containers/PermissionsApp.jsx:53 +#: frontend/src/metabase/admin/permissions/containers/PermissionsApp.jsx:56 msgid "You have unsaved changes" msgstr "" -#: frontend/src/metabase/admin/permissions/containers/PermissionsApp.jsx:54 +#: frontend/src/metabase/admin/permissions/containers/PermissionsApp.jsx:57 msgid "Do you want to leave this page and discard your changes?" msgstr "" -#: frontend/src/metabase/admin/permissions/containers/TogglePropagateAction.jsx:25 +#: frontend/src/metabase/admin/permissions/containers/TogglePropagateAction.jsx:27 msgid "Also change sub-collections" msgstr "" @@ -1282,7 +1279,7 @@ msgid "Sorry, an error occurred." msgstr "" #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:219 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "" @@ -1304,167 +1301,166 @@ msgid "" "MetaBot is Metabase's Slack bot. You can choose what it has access to here." msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:119 +#: frontend/src/metabase/admin/permissions/selectors.js:122 msgid "" "The \"{0}\" group may have access to a different set of {1} than this group, " "which may give this group additional access to some {2}." msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:124 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "" "The \"{0}\" group has a higher level of access than this, which will " "override this setting. You should limit or revoke the \"{1}\" group's access " "to this item." msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:154 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:154 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:159 -#: frontend/src/metabase/admin/permissions/selectors.js:258 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:159 -#: frontend/src/metabase/admin/permissions/selectors.js:223 -#: frontend/src/metabase/admin/permissions/selectors.js:266 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:168 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:169 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:183 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "" "This will also change this group's data access to Unrestricted for this " "database." msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:184 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:221 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:222 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "" "This will also revoke this group's access to raw queries for this database." msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:251 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:252 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:259 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:267 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:273 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:274 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:281 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:282 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:288 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:289 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:331 -#: frontend/src/metabase/admin/permissions/selectors.js:427 -#: frontend/src/metabase/admin/permissions/selectors.js:524 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:492 -#: frontend/src/metabase/admin/permissions/selectors.js:649 -#: frontend/src/metabase/admin/permissions/selectors.js:654 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:590 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:660 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:737 -#: frontend/src/metabase/components/CollectionLanding.jsx:353 -#: frontend/src/metabase/home/containers/SearchApp.jsx:35 -#: frontend/src/metabase/home/containers/SearchApp.jsx:92 +#: frontend/src/metabase/admin/permissions/selectors.js:734 +#: frontend/src/metabase/components/CollectionLanding.jsx:352 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:749 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:825 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "" "This group has permission to view at least one subcollection of this " "collection." msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:830 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "" "This group has permission to edit at least one subcollection of this " "collection." msgstr "" -#: frontend/src/metabase/admin/permissions/selectors.js:843 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:209 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:224 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "" @@ -1473,7 +1469,7 @@ msgstr "" msgid "Sign in with Google" msgstr "" -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:13 +#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:12 #: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:120 msgid "" "Allows users with existing Metabase accounts to login with a Google account " @@ -1481,19 +1477,19 @@ msgid "" "password." msgstr "" -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:17 -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:29 +#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:16 +#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:27 #: frontend/src/metabase/components/ChannelSetupMessage.jsx:32 msgid "Configure" msgstr "" -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:23 +#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:22 #: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:13 -#: frontend/src/metabase/admin/settings/selectors.js:207 +#: frontend/src/metabase/admin/settings/selectors.js:204 msgid "LDAP" msgstr "" -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:25 +#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:23 msgid "" "Allows users within your LDAP directory to log in to Metabase with their " "LDAP credentials, and allows automatic mapping of LDAP groups to Metabase " @@ -1502,7 +1498,7 @@ msgstr "" #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:17 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:69 -#: frontend/src/metabase/admin/settings/selectors.js:160 +#: frontend/src/metabase/admin/settings/selectors.js:157 msgid "That's not a valid email address" msgstr "" @@ -1540,7 +1536,7 @@ msgstr "" #: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:12 #: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:113 -#: frontend/src/metabase/admin/settings/selectors.js:202 +#: frontend/src/metabase/admin/settings/selectors.js:199 msgid "Authentication" msgstr "" @@ -1612,21 +1608,21 @@ msgid "" "\" channel in Slack. Metabase needs this to upload graphs." msgstr "" -#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:90 +#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:91 msgid "You're running Metabase {0} which is the latest and greatest!" msgstr "" -#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:99 +#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:100 msgid "Metabase {0} is available. You're running {1}" msgstr "" -#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:112 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:96 +#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "" -#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:116 +#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:117 msgid "What's Changed:" msgstr "" @@ -1639,80 +1635,82 @@ msgstr "" msgid "URL" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:199 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:201 msgid "Delete custom map" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:201 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:327 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 +#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 -#: frontend/src/metabase/parameters/components/ParameterWidget.jsx:181 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:226 -#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:187 -#: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:241 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:187 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 +#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 +#: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:241 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:243 msgid "Sample values:" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:279 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:281 msgid "Add a new map" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:279 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:281 msgid "Edit map" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:280 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:282 msgid "What do you want to call this map?" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:285 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:287 msgid "e.g. United Kingdom, Brazil, Mars" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:292 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:294 msgid "URL for the GeoJSON file you want to use" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:298 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:300 msgid "Like https://my-mb-server.com/maps/my-map.json" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:309 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:33 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:311 msgid "Refresh" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:309 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:311 msgid "Load" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:315 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:317 msgid "Which property specifies the region’s identifier?" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:324 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:326 msgid "Which property specifies the region’s display name?" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:345 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:347 msgid "Load a GeoJSON file to see a preview" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:363 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:365 msgid "Save map" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:363 +#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:365 msgid "Add map" msgstr "" @@ -1725,7 +1723,7 @@ msgid "" "By enabling embedding you're agreeing to the embedding license located at" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLegalese.jsx:19 +#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLegalese.jsx:20 msgid "" "In plain English, when you embed charts or dashboards from Metabase in your " "own application, that application isn't subject to the Affero General Public " @@ -1735,7 +1733,7 @@ msgid "" "that you will be agreeing to by enabling this feature." msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLegalese.jsx:32 +#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLegalese.jsx:33 msgid "Enable" msgstr "" @@ -1761,19 +1759,19 @@ msgstr "" msgid "Enter a token" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:134 +#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:150 msgid "Edit Mappings" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:140 +#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:156 msgid "Group Mappings" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:147 +#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:163 msgid "Create a mapping" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:149 +#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:165 msgid "" "Mappings allow Metabase to automatically add and remove users from groups " "based on the membership information provided by the\n" @@ -1782,7 +1780,7 @@ msgid "" "failsafe measure." msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:154 +#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Distinguished Name" msgstr "" @@ -1794,44 +1792,44 @@ msgstr "" msgid "Revoke Link" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:121 +#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:123 msgid "Disable this link?" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:122 +#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:124 msgid "" "They won't work anymore, and can't be restored, but you can create new links." msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:149 +#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:151 msgid "Public Dashboard Listing" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:152 +#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:154 msgid "No dashboards have been publicly shared yet." msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:160 +#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:162 msgid "Public Card Listing" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:163 +#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:165 msgid "No questions have been publicly shared yet." msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:172 +#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:174 msgid "Embedded Dashboard Listing" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:173 +#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:175 msgid "No dashboards have been embedded yet." msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:183 +#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:185 msgid "Embedded Card Listing" msgstr "" -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:184 +#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:186 msgid "No questions have been embedded yet." msgstr "" @@ -1854,18 +1852,17 @@ msgid "Generate Key" msgstr "" #: frontend/src/metabase/admin/settings/components/widgets/SettingToggle.jsx:11 -#: frontend/src/metabase/admin/settings/selectors.js:78 -#: frontend/src/metabase/admin/settings/selectors.js:87 +#: frontend/src/metabase/admin/settings/selectors.js:77 msgid "Enabled" msgstr "" #: frontend/src/metabase/admin/settings/components/widgets/SettingToggle.jsx:11 -#: frontend/src/metabase/admin/settings/selectors.js:83 -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:103 +#: frontend/src/metabase/admin/settings/selectors.js:82 +#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:104 msgid "Disabled" msgstr "" -#: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:116 +#: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:120 msgid "Unknown setting {0}" msgstr "" @@ -1894,231 +1891,234 @@ msgid "Database Default" msgstr "" #: frontend/src/metabase/admin/settings/selectors.js:54 -msgid "Select a timezone" -msgstr "" - -#: frontend/src/metabase/admin/settings/selectors.js:55 msgid "" "Not all databases support timezones, in which case this setting won't take " "effect." msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:60 +#: frontend/src/metabase/admin/settings/selectors.js:59 msgid "Language" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:65 -msgid "Select a language" -msgstr "" - -#: frontend/src/metabase/admin/settings/selectors.js:70 +#: frontend/src/metabase/admin/settings/selectors.js:69 msgid "Anonymous Tracking" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:75 +#: frontend/src/metabase/admin/settings/selectors.js:74 msgid "Friendly Table and Field Names" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:81 +#: frontend/src/metabase/admin/settings/selectors.js:80 msgid "Only replace underscores and dashes with spaces" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:91 +#: frontend/src/metabase/admin/settings/selectors.js:88 msgid "Enable Nested Queries" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:96 +#: frontend/src/metabase/admin/settings/selectors.js:93 msgid "Enable X-ray features" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:102 +#: frontend/src/metabase/admin/settings/selectors.js:99 msgid "Updates" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:107 +#: frontend/src/metabase/admin/settings/selectors.js:104 msgid "Check for updates" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:118 +#: frontend/src/metabase/admin/settings/selectors.js:115 msgid "SMTP Host" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:126 +#: frontend/src/metabase/admin/settings/selectors.js:123 msgid "SMTP Port" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:130 -#: frontend/src/metabase/admin/settings/selectors.js:230 +#: frontend/src/metabase/admin/settings/selectors.js:127 +#: frontend/src/metabase/admin/settings/selectors.js:227 msgid "That's not a valid port number" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:134 +#: frontend/src/metabase/admin/settings/selectors.js:131 msgid "SMTP Security" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:142 +#: frontend/src/metabase/admin/settings/selectors.js:139 msgid "SMTP Username" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:149 +#: frontend/src/metabase/admin/settings/selectors.js:146 msgid "SMTP Password" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:156 +#: frontend/src/metabase/admin/settings/selectors.js:153 msgid "From Address" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:170 +#: frontend/src/metabase/admin/settings/selectors.js:167 msgid "Slack API Token" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:172 +#: frontend/src/metabase/admin/settings/selectors.js:169 msgid "Enter the token you received from Slack" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:189 +#: frontend/src/metabase/admin/settings/selectors.js:186 msgid "Single Sign-On" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:213 +#: frontend/src/metabase/admin/settings/selectors.js:210 msgid "LDAP Authentication" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:219 +#: frontend/src/metabase/admin/settings/selectors.js:216 msgid "LDAP Host" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:227 +#: frontend/src/metabase/admin/settings/selectors.js:224 msgid "LDAP Port" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:234 +#: frontend/src/metabase/admin/settings/selectors.js:231 msgid "LDAP Security" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:242 +#: frontend/src/metabase/admin/settings/selectors.js:239 msgid "Username or DN" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:247 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:188 -#: frontend/src/metabase/user/components/UserSettings.jsx:72 +#: frontend/src/metabase/admin/settings/selectors.js:244 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 +#: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:252 +#: frontend/src/metabase/admin/settings/selectors.js:249 msgid "User search base" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:258 +#: frontend/src/metabase/admin/settings/selectors.js:255 msgid "User filter" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:264 +#: frontend/src/metabase/admin/settings/selectors.js:261 msgid "Check your parentheses" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:270 +#: frontend/src/metabase/admin/settings/selectors.js:267 msgid "Email attribute" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:275 +#: frontend/src/metabase/admin/settings/selectors.js:272 msgid "First name attribute" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:280 +#: frontend/src/metabase/admin/settings/selectors.js:277 msgid "Last name attribute" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:285 +#: frontend/src/metabase/admin/settings/selectors.js:282 msgid "Synchronize group memberships" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:291 +#: frontend/src/metabase/admin/settings/selectors.js:288 msgid "Group search base" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:300 +#: frontend/src/metabase/admin/settings/selectors.js:297 msgid "Maps" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:305 +#: frontend/src/metabase/admin/settings/selectors.js:302 msgid "Map tile server URL" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:306 +#: frontend/src/metabase/admin/settings/selectors.js:303 msgid "Metabase uses OpenStreetMaps by default." msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:311 +#: frontend/src/metabase/admin/settings/selectors.js:308 msgid "Custom Maps" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:312 +#: frontend/src/metabase/admin/settings/selectors.js:309 msgid "" "Add your own GeoJSON files to enable different region map visualizations" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:323 +#: frontend/src/metabase/admin/settings/selectors.js:320 msgid "Formatting Options" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:331 +#: frontend/src/metabase/admin/settings/selectors.js:328 msgid "Public Sharing" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:336 +#: frontend/src/metabase/admin/settings/selectors.js:333 msgid "Enable Public Sharing" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:341 +#: frontend/src/metabase/admin/settings/selectors.js:338 msgid "Shared Dashboards" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:347 +#: frontend/src/metabase/admin/settings/selectors.js:344 msgid "Shared Questions" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:354 +#: frontend/src/metabase/admin/settings/selectors.js:351 msgid "Embedding in other Applications" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:381 +#: frontend/src/metabase/admin/settings/selectors.js:378 msgid "Enable Embedding Metabase in other Applications" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:391 +#: frontend/src/metabase/admin/settings/selectors.js:388 msgid "Embedding secret key" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:397 +#: frontend/src/metabase/admin/settings/selectors.js:394 msgid "Embedded Dashboards" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:403 +#: frontend/src/metabase/admin/settings/selectors.js:400 msgid "Embedded Questions" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:410 +#: frontend/src/metabase/admin/settings/selectors.js:407 msgid "Caching" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:415 +#: frontend/src/metabase/admin/settings/selectors.js:412 msgid "Enable Caching" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:420 +#: frontend/src/metabase/admin/settings/selectors.js:417 msgid "Minimum Query Duration" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:427 +#: frontend/src/metabase/admin/settings/selectors.js:424 msgid "Cache Time-To-Live (TTL) multiplier" msgstr "" -#: frontend/src/metabase/admin/settings/selectors.js:434 +#: frontend/src/metabase/admin/settings/selectors.js:431 msgid "Max Cache Entry Size" msgstr "" +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 +msgid "Help" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "" + #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:29 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:17 msgid "Key" @@ -2131,16 +2131,16 @@ msgstr "" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 #: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 -#: frontend/src/metabase/entities/collections.js:101 -#: frontend/src/metabase/entities/dashboards.js:151 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:156 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:211 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:189 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:207 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:207 -#: frontend/src/metabase/visualizations/lib/settings/visualization.js:24 +#: frontend/src/metabase/entities/collections.js:102 +#: frontend/src/metabase/entities/dashboards.js:148 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 +#: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "" @@ -2152,7 +2152,7 @@ msgstr "" msgid "View triggers" msgstr "" -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:82 +#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:85 msgid "Scheduler Info" msgstr "" @@ -2190,11 +2190,23 @@ msgstr "" msgid "May Fire Again?" msgstr "" -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:75 +#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:27 +msgid "Misfire Instruction" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:83 msgid "Triggers for {0}" msgstr "" -#: frontend/src/metabase/admin/tasks/containers/TaskModal.jsx:19 +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/TaskModal.jsx:22 msgid "Task details" msgstr "" @@ -2229,33 +2241,33 @@ msgid "Duration (ms)" msgstr "" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:170 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:184 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:188 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:187 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:75 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:369 +#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:380 msgid "View" msgstr "" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "" @@ -2271,11 +2283,11 @@ msgstr "" msgid "The alert was successfully deleted." msgstr "" -#: frontend/src/metabase/auth/auth.js:33 +#: frontend/src/metabase/auth/auth.js:32 msgid "Please enter a valid formatted email address." msgstr "" -#: frontend/src/metabase/auth/auth.js:116 +#: frontend/src/metabase/auth/auth.js:110 #: frontend/src/metabase/setup/components/UserStep.jsx:110 #: frontend/src/metabase/user/components/SetUserPassword.jsx:69 msgid "Passwords do not match" @@ -2308,11 +2320,10 @@ msgid "Forgot password" msgstr "" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:158 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:470 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "" @@ -2320,104 +2331,114 @@ msgstr "" msgid "The email you use for your Metabase account" msgstr "" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:128 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "" +"There was an issue signing in with Google. Pleast contact an administrator." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:138 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:157 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:211 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:217 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:230 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:102 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:105 msgid "request a new reset email" msgstr "" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:120 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:123 msgid "Whoops, that's an expired link" msgstr "" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:122 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:125 msgid "" "For security reasons, password reset links expire after a little while. If " "you still need\n" "to reset your password, you can {0}." msgstr "" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:147 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:149 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:152 msgid "To keep your data secure, passwords {0}" msgstr "" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:163 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:166 msgid "Create a new password" msgstr "" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:170 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:141 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:184 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:150 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:191 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:159 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:216 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:222 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:227 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:182 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:184 -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:251 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:183 -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:129 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:225 -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:252 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 +#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" msgstr "" @@ -2425,60 +2446,68 @@ msgstr "" msgid "Ok" msgstr "" -#: frontend/src/metabase/components/ArchiveCollectionModal.jsx:38 +#: frontend/src/metabase/components/ArchiveCollectionModal.jsx:41 msgid "Archive this collection?" msgstr "" -#: frontend/src/metabase/components/ArchiveCollectionModal.jsx:43 +#: frontend/src/metabase/components/ArchiveCollectionModal.jsx:42 msgid "" "The dashboards, collections, and pulses in this collection will also be " "archived." msgstr "" -#: frontend/src/metabase/components/ArchiveCollectionModal.jsx:47 -#: frontend/src/metabase/components/CollectionLanding.jsx:624 +#: frontend/src/metabase/components/ArchiveModal.jsx:31 +msgid "Archive this?" +msgstr "" + +#: frontend/src/metabase/components/ArchiveModal.jsx:38 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:47 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:195 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:200 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 +#: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 -#: frontend/src/metabase/query_builder/containers/ArchiveQuestionModal.jsx:40 -#: frontend/src/metabase/query_builder/containers/ArchiveQuestionModal.jsx:53 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "" -#: frontend/src/metabase/components/ArchivedItem.jsx:43 +#: frontend/src/metabase/components/ArchivedItem.jsx:42 msgid "Unarchive this {0}" msgstr "" -#: frontend/src/metabase/components/ArchivedItem.jsx:52 +#: frontend/src/metabase/components/ArchivedItem.jsx:51 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:80 msgid "Delete this {0}" msgstr "" -#: frontend/src/metabase/components/BrowseApp.jsx:70 -#: frontend/src/metabase/components/BrowseApp.jsx:132 -#: frontend/src/metabase/components/BrowseApp.jsx:225 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:39 +#: frontend/src/metabase/components/BrowseApp.jsx:102 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "" -#: frontend/src/metabase/components/BrowseApp.jsx:95 +#: frontend/src/metabase/components/BrowseApp.jsx:63 msgid "X-ray this schema" msgstr "" -#: frontend/src/metabase/components/BrowseApp.jsx:169 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/components/BrowseApp.jsx:146 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "" -#: frontend/src/metabase/components/BrowseApp.jsx:183 -#: frontend/src/metabase/containers/Overworld.jsx:246 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "" +#: frontend/src/metabase/components/BrowseApp.jsx:242 +msgid "Learn about our data" +msgstr "" + #: frontend/src/metabase/components/Button.info.js:11 #: frontend/src/metabase/components/Button.info.js:12 #: frontend/src/metabase/components/Button.info.js:13 @@ -2493,31 +2522,31 @@ msgstr "" msgid "Saving failed." msgstr "" -#: frontend/src/metabase/components/Calendar.jsx:118 +#: frontend/src/metabase/components/Calendar.jsx:117 msgid "Su" msgstr "" -#: frontend/src/metabase/components/Calendar.jsx:118 +#: frontend/src/metabase/components/Calendar.jsx:117 msgid "Mo" msgstr "" -#: frontend/src/metabase/components/Calendar.jsx:118 +#: frontend/src/metabase/components/Calendar.jsx:117 msgid "Tu" msgstr "" -#: frontend/src/metabase/components/Calendar.jsx:118 +#: frontend/src/metabase/components/Calendar.jsx:117 msgid "We" msgstr "" -#: frontend/src/metabase/components/Calendar.jsx:118 +#: frontend/src/metabase/components/Calendar.jsx:117 msgid "Th" msgstr "" -#: frontend/src/metabase/components/Calendar.jsx:118 +#: frontend/src/metabase/components/Calendar.jsx:117 msgid "Fr" msgstr "" -#: frontend/src/metabase/components/Calendar.jsx:118 +#: frontend/src/metabase/components/Calendar.jsx:117 msgid "Sa" msgstr "" @@ -2570,67 +2599,68 @@ msgstr "" msgid "Edit the permissions for this collection" msgstr "" -#: frontend/src/metabase/components/CollectionLanding.jsx:287 +#: frontend/src/metabase/components/CollectionLanding.jsx:286 msgid "Pins" msgstr "" -#: frontend/src/metabase/components/CollectionLanding.jsx:341 +#: frontend/src/metabase/components/CollectionLanding.jsx:340 msgid "Drag something here to pin it to the top" msgstr "" -#: frontend/src/metabase/components/CollectionLanding.jsx:432 -#: frontend/src/metabase/components/CollectionLanding.jsx:455 +#: frontend/src/metabase/components/CollectionLanding.jsx:431 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "" -#: frontend/src/metabase/components/CollectionLanding.jsx:490 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/components/CollectionLanding.jsx:522 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "" -#: frontend/src/metabase/components/CollectionLanding.jsx:523 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "" -#: frontend/src/metabase/components/CollectionLanding.jsx:631 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "" -#: frontend/src/metabase/components/CollectionLanding.jsx:692 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "" -#: frontend/src/metabase/components/CollectionLanding.jsx:700 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "" -#: frontend/src/metabase/components/CollectionLanding.jsx:715 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "" -#: frontend/src/metabase/components/CollectionLanding.jsx:740 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "" -#: frontend/src/metabase/components/CollectionLanding.jsx:745 -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:76 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 +#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "" -#: frontend/src/metabase/components/CollectionList.jsx:64 -#: frontend/src/metabase/entities/collections.js:155 +#: frontend/src/metabase/components/CollectionList.jsx:67 +#: frontend/src/metabase/entities/collections.js:158 msgid "My personal collection" msgstr "" -#: frontend/src/metabase/components/CollectionList.jsx:106 +#: frontend/src/metabase/components/CollectionList.jsx:107 msgid "New collection" msgstr "" @@ -2662,83 +2692,106 @@ msgid "" "many or most of your queries with this data." msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:271 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 +msgid "Use DNS SRV when connecting" +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "" +"Using this option requires that provided host is a FQDN. If connecting to " +"an Atlas cluster, you might need to enable this option. If you don't know " +"what this means, leave this disabled." +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "" "This is a large database, so let me choose when Metabase syncs and scans" msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:273 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 msgid "" "By default, Metabase does a lightweight hourly sync and an intensive daily " -"scan of field values.\n" -"If you have a large database, we recommend turning this on and reviewing " -"when and how often the field value scans happen." +"scan of field values. If you have a large database, we recommend turning " +"this on and reviewing when and how often the field value scans happen." +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 +msgid "Automatically run queries when doing simple filtering and summarizing" +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 +msgid "" +"When this is on, Metabase will automatically run queries when users do " +"simple explorations with the Summarize and Filter buttons when viewing a " +"table or chart. You can turn this off if querying this database is slow. " +"This setting doesn’t affect drill-throughs or SQL queries." msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:289 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:291 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:353 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:316 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:328 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:348 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "" "To use Metabase with this data you must enable API access in the Google " "Developers Console." msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:351 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:427 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:237 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:188 -#: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:74 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:116 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 +#: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "" -#: frontend/src/metabase/components/EntityItem.jsx:43 +#: frontend/src/metabase/components/EntityItem.jsx:45 msgid "Pin this item" msgstr "" -#: frontend/src/metabase/components/EntityItem.jsx:49 +#: frontend/src/metabase/components/EntityItem.jsx:51 msgid "Move this item" msgstr "" -#: frontend/src/metabase/components/EntityItem.jsx:55 +#: frontend/src/metabase/components/EntityItem.jsx:57 msgid "Duplicate this item" msgstr "" -#: frontend/src/metabase/components/EntityItem.jsx:61 +#: frontend/src/metabase/components/EntityItem.jsx:63 msgid "Archive this item" msgstr "" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "" @@ -2751,6 +2804,7 @@ msgstr "" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "" @@ -2766,8 +2820,7 @@ msgstr "" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:329 -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:342 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "" @@ -2778,7 +2831,7 @@ msgstr "" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "" @@ -2791,13 +2844,12 @@ msgstr "" #: frontend/src/metabase/components/EntityMenu.info.js:67 #: frontend/src/metabase/components/EntityMenu.info.js:113 #: frontend/src/metabase/components/EntityMenu.info.js:115 -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:449 -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:454 msgid "Get alerts about this" msgstr "" #: frontend/src/metabase/components/EntityMenu.info.js:69 #: frontend/src/metabase/components/EntityMenu.info.js:117 +#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:21 msgid "View the SQL" msgstr "" @@ -2817,116 +2869,113 @@ msgstr "" msgid "Hi, Metabot here." msgstr "" -#: frontend/src/metabase/components/ExplorePane.jsx:95 +#: frontend/src/metabase/components/ExplorePane.jsx:94 msgid "Based on the schema" msgstr "" -#: frontend/src/metabase/components/ExplorePane.jsx:174 +#: frontend/src/metabase/components/ExplorePane.jsx:173 msgid "A look at your" msgstr "" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:234 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:238 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr "" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:355 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:363 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "" -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:158 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:213 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:191 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:205 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:209 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:209 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "" -#: frontend/src/metabase/components/Header.jsx:112 -#: frontend/src/metabase/entities/containers/EntityForm.jsx:43 +#: frontend/src/metabase/components/Header.jsx:119 +#: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "" -#: frontend/src/metabase/components/HistoryModal.jsx:13 +#: frontend/src/metabase/components/HistoryModal.jsx:12 msgid "Today, " msgstr "" -#: frontend/src/metabase/components/HistoryModal.jsx:15 +#: frontend/src/metabase/components/HistoryModal.jsx:14 msgid "Yesterday, " msgstr "" -#: frontend/src/metabase/components/HistoryModal.jsx:68 +#: frontend/src/metabase/components/HistoryModal.jsx:29 msgid "First revision." msgstr "" -#: frontend/src/metabase/components/HistoryModal.jsx:70 +#: frontend/src/metabase/components/HistoryModal.jsx:31 msgid "Reverted to an earlier revision and {0}" msgstr "" -#: frontend/src/metabase/components/HistoryModal.jsx:82 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:289 -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:379 +#: frontend/src/metabase/components/HistoryModal.jsx:42 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 #: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "" -#: frontend/src/metabase/components/HistoryModal.jsx:90 +#: frontend/src/metabase/components/HistoryModal.jsx:46 msgid "When" msgstr "" -#: frontend/src/metabase/components/HistoryModal.jsx:91 +#: frontend/src/metabase/components/HistoryModal.jsx:47 msgid "Who" msgstr "" -#: frontend/src/metabase/components/HistoryModal.jsx:92 +#: frontend/src/metabase/components/HistoryModal.jsx:48 msgid "What" msgstr "" -#: frontend/src/metabase/components/HistoryModal.jsx:113 +#: frontend/src/metabase/components/HistoryModal.jsx:67 msgid "Revert" msgstr "" -#: frontend/src/metabase/components/HistoryModal.jsx:114 +#: frontend/src/metabase/components/HistoryModal.jsx:68 msgid "Reverting…" msgstr "" -#: frontend/src/metabase/components/HistoryModal.jsx:115 +#: frontend/src/metabase/components/HistoryModal.jsx:69 msgid "Revert failed" msgstr "" -#: frontend/src/metabase/components/HistoryModal.jsx:116 +#: frontend/src/metabase/components/HistoryModal.jsx:70 msgid "Reverted" msgstr "" @@ -2935,31 +2984,30 @@ msgid "Everything" msgstr "" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:18 -#: frontend/src/metabase/home/containers/SearchApp.jsx:69 msgid "Dashboards" msgstr "" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:23 -#: frontend/src/metabase/home/containers/SearchApp.jsx:115 msgid "Questions" msgstr "" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:321 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "" #: frontend/src/metabase/components/LeftNavPane.jsx:36 -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:103 +#: frontend/src/metabase/query_builder/components/SidebarHeader.jsx:16 msgid "Back" msgstr "" -#: frontend/src/metabase/components/ListSearchField.jsx:18 +#: frontend/src/metabase/components/ListSearchField.jsx:17 msgid "Find..." msgstr "" -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 -msgid "An error occured" +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 +#: frontend/src/metabase/public/components/PublicError.jsx:18 +msgid "An error occurred" msgstr "" #: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:35 @@ -2987,14 +3035,14 @@ msgid "Temporary Password" msgstr "" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "" @@ -3059,14 +3107,10 @@ msgstr "" msgid "Calendar Day" msgstr "" -#: frontend/src/metabase/components/SchedulePicker.jsx:210 +#: frontend/src/metabase/components/SchedulePicker.jsx:212 msgid "your Metabase timezone" msgstr "" -#: frontend/src/metabase/components/SearchHeader.jsx:21 -msgid "Filter this list..." -msgstr "" - #: frontend/src/metabase/components/Select.info.js:8 msgid "Blue" msgstr "" @@ -3088,11 +3132,11 @@ msgid "A component used to make a selection" msgstr "" #: frontend/src/metabase/components/Select.info.js:20 -#: frontend/src/metabase/components/Select.info.js:28 +#: frontend/src/metabase/components/Select.info.js:30 msgid "Selected" msgstr "" -#: frontend/src/metabase/components/Select.jsx:297 +#: frontend/src/metabase/components/Select.jsx:299 msgid "Nothing to select" msgstr "" @@ -3100,12 +3144,12 @@ msgstr "" msgid "Unknown error encountered" msgstr "" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:304 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "" -#: frontend/src/metabase/components/form/StandardForm.jsx:77 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "" @@ -3121,62 +3165,28 @@ msgstr "" msgid "Create a new dashboard" msgstr "" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:331 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:60 -msgid "Table" -msgstr "" - -#: frontend/src/metabase/containers/EntitySearch.jsx:42 -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:306 -msgid "Database" -msgstr "" - -#: frontend/src/metabase/containers/EntitySearch.jsx:49 -msgid "Creator" -msgstr "" - -#: frontend/src/metabase/containers/EntitySearch.jsx:238 -msgid "No results found" -msgstr "" - -#: frontend/src/metabase/containers/EntitySearch.jsx:239 -msgid "Try adjusting your filter to find what you’re looking for." -msgstr "" - -#: frontend/src/metabase/containers/EntitySearch.jsx:258 -msgid "View by" -msgstr "" - -#: frontend/src/metabase/containers/EntitySearch.jsx:494 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:84 -#: frontend/src/metabase/query_builder/components/AggregationWidget.jsx:69 -#: frontend/src/metabase/tutorial/TutorialModal.jsx:34 -msgid "of" -msgstr "" - -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "" "We've run into an error. You can try refreshing the page, or just go back." msgstr "" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "" @@ -3184,51 +3194,85 @@ msgstr "" msgid "Select a {0}" msgstr "" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "" -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:299 +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "" +"These won’t show up on the homepage for any of your users anymore, but you " +"can always get to x-rays by clicking on Browse Data in the main navigation, " +"then clicking on the lightning bolt icon on one of your tables." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "" -#: frontend/src/metabase/containers/Overworld.jsx:294 -#: frontend/src/metabase/entities/collections.js:147 +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "" +"\"Our Data\" won’t show up on the homepage for any of your users anymore, " +"but you can always browse through your databases and tables by clicking " +"Browse Data in the main navigation." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:329 +msgid "Learn about this database" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:379 +#: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "" -#: frontend/src/metabase/containers/Overworld.jsx:310 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "" -#: frontend/src/metabase/containers/Overworld.jsx:311 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:165 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:167 msgid "Replace or save as new?" msgstr "" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:173 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:175 msgid "Replace original question, \"{0}\"" msgstr "" @@ -3249,12 +3293,13 @@ msgid "What is the name of your card?" msgstr "" #: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 -#: frontend/src/metabase/entities/dashboards.js:153 +#: frontend/src/metabase/entities/collections.js:104 +#: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "" #: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 -#: frontend/src/metabase/entities/dashboards.js:157 +#: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "" @@ -3266,7 +3311,7 @@ msgstr "" msgid "item" msgstr "" -#: frontend/src/metabase/containers/UndoListing.jsx:81 +#: frontend/src/metabase/containers/UndoListing.jsx:83 msgid "Undo" msgstr "" @@ -3286,21 +3331,21 @@ msgstr "" msgid "We're not sure if this question is compatible" msgstr "" -#: frontend/src/metabase/dashboard/components/ArchiveDashboardModal.jsx:43 -msgid "Archive Dashboard" +#: frontend/src/metabase/dashboard/components/ArchiveDashboardModal.jsx:17 +msgid "Archive this dashboard?" msgstr "" -#: frontend/src/metabase/dashboard/components/DashCardParameterMapper.jsx:20 +#: frontend/src/metabase/dashboard/components/DashCardParameterMapper.jsx:19 msgid "" "Make sure to make a selection for each series, or the filter won't work on " "this card." msgstr "" -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:300 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "" -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:301 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "" @@ -3320,63 +3365,62 @@ msgstr "" msgid "Enter fullscreen" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:181 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:183 -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:250 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:216 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:219 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:248 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:254 -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:78 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 +#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:275 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:279 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:302 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:306 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:330 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:369 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:374 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardMoveModal.jsx:28 +#: frontend/src/metabase/dashboard/components/DashboardMoveModal.jsx:31 msgid "Move dashboard to..." msgstr "" -#: frontend/src/metabase/dashboard/components/DashboardMoveModal.jsx:52 +#: frontend/src/metabase/dashboard/components/DashboardMoveModal.jsx:55 msgid "Dashboard moved to {0}" msgstr "" @@ -3391,7 +3435,7 @@ msgstr "" #: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:13 #: frontend/src/metabase/visualizations/lib/settings/column.js:231 #: frontend/src/metabase/visualizations/lib/settings/series.js:90 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:179 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:247 msgid "Off" msgstr "" @@ -3419,11 +3463,11 @@ msgstr "" msgid "60 minutes" msgstr "" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "" @@ -3431,83 +3475,87 @@ msgstr "" msgid "Remove this question?" msgstr "" -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:71 +#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:74 msgid "Your dashboard was saved" msgstr "" -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:137 +#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:141 msgid "Save this" msgstr "" -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:170 +#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:173 msgid "Show more about this" msgstr "" -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:221 +#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:223 msgid "Compare" msgstr "" -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:225 +#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:227 #: frontend/src/metabase/modes/components/drill/ZoomDrill.jsx:26 msgid "Zoom in" msgstr "" -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:229 +#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:231 msgid "Zoom out" msgstr "" -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:233 +#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:235 msgid "Related" msgstr "" -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:293 +#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:295 msgid "More X-rays" msgstr "" -#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:140 +#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:143 msgid "" "This card doesn't have any fields or parameters that can be mapped to this " "parameter type." msgstr "" -#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:142 +#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:145 msgid "" "The values in this field don't overlap with the values of any other fields " "you've chosen." msgstr "" -#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:186 +#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:185 #: frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.jsx:37 msgid "No valid fields" msgstr "" -#: frontend/src/metabase/entities/collections.js:21 +#: frontend/src/metabase/entities/collections.js:24 msgid "collection" msgstr "" -#: frontend/src/metabase/entities/collections.js:22 +#: frontend/src/metabase/entities/collections.js:25 msgid "collections" msgstr "" -#: frontend/src/metabase/entities/collections.js:97 +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "" + +#: frontend/src/metabase/entities/collections.js:98 msgid "Name must be 100 characters or less" msgstr "" -#: frontend/src/metabase/entities/collections.js:108 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:176 -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:57 +#: frontend/src/metabase/entities/collections.js:109 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 +#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "" -#: frontend/src/metabase/entities/collections.js:111 +#: frontend/src/metabase/entities/collections.js:112 msgid "Color is required" msgstr "" -#: frontend/src/metabase/entities/collections.js:115 +#: frontend/src/metabase/entities/collections.js:116 msgid "Collection it's saved in" msgstr "" -#: frontend/src/metabase/entities/collections.js:164 +#: frontend/src/metabase/entities/collections.js:167 msgid "All personal collections" msgstr "" @@ -3520,161 +3568,170 @@ msgstr "" msgid "Duplicate" msgstr "" -#: frontend/src/metabase/entities/dashboards.js:29 +#: frontend/src/metabase/entities/dashboards.js:32 msgid "dashboard" msgstr "" -#: frontend/src/metabase/entities/dashboards.js:30 +#: frontend/src/metabase/entities/dashboards.js:33 msgid "dashboards" msgstr "" -#: frontend/src/metabase/entities/dashboards.js:146 +#: frontend/src/metabase/entities/dashboards.js:143 msgid "What is the name of your dashboard?" msgstr "" -#: frontend/src/metabase/entities/users.js:125 +#: frontend/src/metabase/entities/users.js:34 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 +msgid "First name" +msgstr "" + +#: frontend/src/metabase/entities/users.js:37 msgid "First name is required" msgstr "" -#: frontend/src/metabase/entities/users.js:126 -#: frontend/src/metabase/entities/users.js:133 +#: frontend/src/metabase/entities/users.js:38 +#: frontend/src/metabase/entities/users.js:46 msgid "Must be 100 characters or less" msgstr "" -#: frontend/src/metabase/entities/users.js:132 +#: frontend/src/metabase/entities/users.js:42 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 +msgid "Last name" +msgstr "" + +#: frontend/src/metabase/entities/users.js:45 msgid "Last name is required" msgstr "" -#: frontend/src/metabase/entities/users.js:138 +#: frontend/src/metabase/entities/users.js:52 msgid "Email is required" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:92 +#: frontend/src/metabase/home/components/Activity.jsx:94 msgid "did some super awesome stuff that's hard to describe" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:101 -#: frontend/src/metabase/home/components/Activity.jsx:116 +#: frontend/src/metabase/home/components/Activity.jsx:103 +#: frontend/src/metabase/home/components/Activity.jsx:118 msgid "created an alert about - " msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:126 -#: frontend/src/metabase/home/components/Activity.jsx:141 +#: frontend/src/metabase/home/components/Activity.jsx:128 +#: frontend/src/metabase/home/components/Activity.jsx:143 msgid "deleted an alert about - " msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:152 +#: frontend/src/metabase/home/components/Activity.jsx:154 msgid "saved a question about " msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:165 +#: frontend/src/metabase/home/components/Activity.jsx:167 msgid "saved a question" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:169 +#: frontend/src/metabase/home/components/Activity.jsx:171 msgid "deleted a question" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:172 +#: frontend/src/metabase/home/components/Activity.jsx:174 msgid "created a dashboard" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:175 +#: frontend/src/metabase/home/components/Activity.jsx:177 msgid "deleted a dashboard" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:181 -#: frontend/src/metabase/home/components/Activity.jsx:196 +#: frontend/src/metabase/home/components/Activity.jsx:183 +#: frontend/src/metabase/home/components/Activity.jsx:198 msgid "added a question to the dashboard - " msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:206 -#: frontend/src/metabase/home/components/Activity.jsx:221 +#: frontend/src/metabase/home/components/Activity.jsx:208 +#: frontend/src/metabase/home/components/Activity.jsx:223 msgid "removed a question from the dashboard - " msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:231 -#: frontend/src/metabase/home/components/Activity.jsx:238 +#: frontend/src/metabase/home/components/Activity.jsx:233 +#: frontend/src/metabase/home/components/Activity.jsx:240 msgid "received the latest data from" msgstr "" -#: frontend/src/metabase-lib/lib/Dimension.js:621 -#: frontend/src/metabase/home/components/Activity.jsx:244 +#: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:273 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:251 +#: frontend/src/metabase/home/components/Activity.jsx:253 msgid "Hello World!" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:252 +#: frontend/src/metabase/home/components/Activity.jsx:254 msgid "Metabase is up and running." msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:258 -#: frontend/src/metabase/home/components/Activity.jsx:288 +#: frontend/src/metabase/home/components/Activity.jsx:260 +#: frontend/src/metabase/home/components/Activity.jsx:290 msgid "added the metric " msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:272 -#: frontend/src/metabase/home/components/Activity.jsx:362 +#: frontend/src/metabase/home/components/Activity.jsx:274 +#: frontend/src/metabase/home/components/Activity.jsx:364 msgid " to the " msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:282 -#: frontend/src/metabase/home/components/Activity.jsx:322 -#: frontend/src/metabase/home/components/Activity.jsx:372 -#: frontend/src/metabase/home/components/Activity.jsx:413 +#: frontend/src/metabase/home/components/Activity.jsx:284 +#: frontend/src/metabase/home/components/Activity.jsx:324 +#: frontend/src/metabase/home/components/Activity.jsx:374 +#: frontend/src/metabase/home/components/Activity.jsx:415 msgid " table" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:298 -#: frontend/src/metabase/home/components/Activity.jsx:328 +#: frontend/src/metabase/home/components/Activity.jsx:300 +#: frontend/src/metabase/home/components/Activity.jsx:330 msgid "made changes to the metric " msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:312 -#: frontend/src/metabase/home/components/Activity.jsx:403 +#: frontend/src/metabase/home/components/Activity.jsx:314 +#: frontend/src/metabase/home/components/Activity.jsx:405 msgid " in the " msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:335 +#: frontend/src/metabase/home/components/Activity.jsx:337 msgid "removed the metric " msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:338 +#: frontend/src/metabase/home/components/Activity.jsx:340 msgid "created a pulse" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:341 +#: frontend/src/metabase/home/components/Activity.jsx:343 msgid "deleted a pulse" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:347 -#: frontend/src/metabase/home/components/Activity.jsx:378 +#: frontend/src/metabase/home/components/Activity.jsx:349 +#: frontend/src/metabase/home/components/Activity.jsx:380 msgid "added the filter" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:388 -#: frontend/src/metabase/home/components/Activity.jsx:419 +#: frontend/src/metabase/home/components/Activity.jsx:390 +#: frontend/src/metabase/home/components/Activity.jsx:421 msgid "made changes to the filter" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:426 +#: frontend/src/metabase/home/components/Activity.jsx:428 msgid "removed the filter {0}" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:429 +#: frontend/src/metabase/home/components/Activity.jsx:431 msgid "joined!" msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:529 +#: frontend/src/metabase/home/components/Activity.jsx:531 msgid "Hmmm, looks like nothing has happened yet." msgstr "" -#: frontend/src/metabase/home/components/Activity.jsx:532 +#: frontend/src/metabase/home/components/Activity.jsx:534 msgid "Save a question and get this baby going!" msgstr "" @@ -3722,42 +3779,52 @@ msgstr "" msgid "Recently Viewed" msgstr "" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "" -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:90 +#: frontend/src/metabase/home/containers/ArchiveApp.jsx:93 msgid "Items you archive will appear here." msgstr "" -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:99 +#: frontend/src/metabase/home/containers/ArchiveApp.jsx:102 msgid "{0} items selected" msgstr "" -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:121 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:172 +#: frontend/src/metabase/home/containers/ArchiveApp.jsx:124 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:174 msgid "Unarchive" msgstr "" -#: frontend/src/metabase/home/containers/HomepageApp.jsx:74 -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/home/containers/HomepageApp.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "" -#: frontend/src/metabase/home/containers/SearchApp.jsx:28 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "" -#: frontend/src/metabase/home/containers/SearchApp.jsx:46 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: src/metabase/pulse/render/body.clj msgid "No results" msgstr "" -#: frontend/src/metabase/home/containers/SearchApp.jsx:47 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "" -#: frontend/src/metabase/home/containers/SearchApp.jsx:138 -msgid "Pulse" +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 +msgid "Tables" +msgstr "" + +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 +msgid "All results" +msgstr "" + +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 +msgid "Our Analytics" msgstr "" #: frontend/src/metabase/lib/core.js:7 @@ -3816,9 +3883,13 @@ msgstr "" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "" +#: frontend/src/metabase-lib/lib/DimensionOptions.js:134 #: frontend/src/metabase/lib/core.js:30 #: frontend/src/metabase/meta/Dashboard.js:81 #: frontend/src/metabase/modes/components/actions/PivotByCategoryAction.jsx:9 @@ -3859,9 +3930,10 @@ msgstr "" msgid "Longitude" msgstr "" +#: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:149 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "" @@ -3902,121 +3974,147 @@ msgid "Creation date" msgstr "" #: frontend/src/metabase/lib/core.js:145 -msgid "Product" +msgid "Cancelation timestamp" msgstr "" #: frontend/src/metabase/lib/core.js:150 -msgid "User" +msgid "Cancelation time" msgstr "" #: frontend/src/metabase/lib/core.js:155 -msgid "Source" +msgid "Cancelation date" msgstr "" #: frontend/src/metabase/lib/core.js:160 -msgid "Price" +msgid "Deletion timestamp" msgstr "" #: frontend/src/metabase/lib/core.js:165 -msgid "Join timestamp" +msgid "Deletion time" msgstr "" #: frontend/src/metabase/lib/core.js:170 -msgid "Join time" +msgid "Deletion date" msgstr "" #: frontend/src/metabase/lib/core.js:175 -msgid "Join date" +msgid "Product" msgstr "" #: frontend/src/metabase/lib/core.js:180 -msgid "Share" +msgid "User" msgstr "" #: frontend/src/metabase/lib/core.js:185 -msgid "Owner" +msgid "Source" msgstr "" #: frontend/src/metabase/lib/core.js:190 -msgid "Company" +msgid "Price" msgstr "" #: frontend/src/metabase/lib/core.js:195 -msgid "Subscription" +msgid "Join timestamp" msgstr "" #: frontend/src/metabase/lib/core.js:200 -msgid "Score" +msgid "Join time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:205 +msgid "Join date" msgstr "" #: frontend/src/metabase/lib/core.js:210 +msgid "Share" +msgstr "" + +#: frontend/src/metabase/lib/core.js:215 +msgid "Owner" +msgstr "" + +#: frontend/src/metabase/lib/core.js:220 +msgid "Company" +msgstr "" + +#: frontend/src/metabase/lib/core.js:225 +msgid "Subscription" +msgstr "" + +#: frontend/src/metabase/lib/core.js:230 +msgid "Score" +msgstr "" + +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 -#: frontend/src/metabase/visualizations/lib/settings/visualization.js:17 +#: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "" "The default setting. This field will be displayed normally in tables and " "charts." msgstr "" -#: frontend/src/metabase/lib/core.js:254 -msgid "Only in Detail Views" +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" msgstr "" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "" "This field will only be displayed when viewing the details of a single " "record. Use this for information that's lengthy or that isn't useful in a " "table or chart." msgstr "" -#: frontend/src/metabase/lib/core.js:259 -msgid "Do Not Include" +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" msgstr "" -#: frontend/src/metabase/lib/core.js:260 +#: frontend/src/metabase/lib/core.js:290 msgid "" -"Metabase will never retrieve this field. Use this for sensitive or " -"irrelevant information." +"This field won't be visible or selectable in questions created with the GUI " +"interfaces. It will still be accessible in SQL/native queries." msgstr "" #: frontend/src/metabase/lib/expressions/config.js:7 -#: frontend/src/metabase/lib/query.js:614 -#: frontend/src/metabase/visualizations/lib/utils.js:126 +#: frontend/src/metabase/lib/query.js:300 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -4030,8 +4128,9 @@ msgid "CumulativeCount" msgstr "" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:127 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "" @@ -4040,7 +4139,7 @@ msgid "CumulativeSum" msgstr "" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:128 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "" @@ -4049,35 +4148,38 @@ msgid "StandardDeviation" msgstr "" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:125 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "" -#: frontend/src/metabase/lib/expressions/parser.js:384 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "" -#: frontend/src/metabase/lib/formatting.js:707 +#: frontend/src/metabase/lib/formatting.js:787 msgid "{0} second" msgid_plural "{0} seconds" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/lib/formatting.js:710 +#: frontend/src/metabase/lib/formatting.js:790 msgid "{0} minute" msgid_plural "{0} minutes" msgstr[0] "" @@ -4128,53 +4230,54 @@ msgstr "" msgid "MetaBot" msgstr "" -#: frontend/src/metabase/lib/query.js:612 -#: frontend/src/metabase/lib/schema_metadata.js:451 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:246 +#: frontend/src/metabase/lib/query.js:298 +#: frontend/src/metabase/lib/schema_metadata.js:463 +#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "" -#: frontend/src/metabase/lib/query.js:616 +#: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "" -#: frontend/src/metabase/lib/query.js:619 +#: frontend/src/metabase/lib/query.js:305 msgid "Average of " msgstr "" -#: frontend/src/metabase/lib/query.js:624 +#: frontend/src/metabase/lib/query.js:310 msgid "Distinct values of " msgstr "" -#: frontend/src/metabase/lib/query.js:629 +#: frontend/src/metabase/lib/query.js:315 msgid "Standard deviation of " msgstr "" -#: frontend/src/metabase/lib/query.js:634 +#: frontend/src/metabase/lib/query.js:320 msgid "Sum of " msgstr "" -#: frontend/src/metabase/lib/query.js:639 +#: frontend/src/metabase/lib/query.js:325 msgid "Cumulative sum of " msgstr "" -#: frontend/src/metabase/lib/query.js:644 +#: frontend/src/metabase/lib/query.js:330 msgid "Maximum of " msgstr "" -#: frontend/src/metabase/lib/query.js:649 +#: frontend/src/metabase/lib/query.js:335 msgid "Minimum of " msgstr "" -#: frontend/src/metabase/lib/query.js:663 +#: frontend/src/metabase/lib/query.js:349 msgid "Grouped by " msgstr "" -#: frontend/src/metabase/lib/query.js:677 +#: frontend/src/metabase/lib/query.js:363 msgid "Filtered by " msgstr "" -#: frontend/src/metabase/lib/query.js:706 +#: frontend/src/metabase/lib/query.js:392 msgid "Sorted by " msgstr "" @@ -4182,7 +4285,7 @@ msgstr "" #: frontend/src/metabase/lib/query_time.js:123 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:9 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:144 -#: src/metabase/pulse/render.clj +#: src/metabase/pulse/render/datetime.clj msgid "Today" msgstr "" @@ -4193,7 +4296,7 @@ msgstr "" #: frontend/src/metabase/lib/query_time.js:118 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:14 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:148 -#: src/metabase/pulse/render.clj +#: src/metabase/pulse/render/datetime.clj msgid "Yesterday" msgstr "" @@ -4207,6 +4310,7 @@ msgid "Next {0}" msgstr "" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "" @@ -4230,7 +4334,7 @@ msgstr "" msgid "{0} {1} from now" msgstr "" -#: frontend/src/metabase/lib/query_time.js:187 +#: frontend/src/metabase/lib/query_time.js:190 msgid "Default period" msgid_plural "Default periods" msgstr[0] "" @@ -4238,7 +4342,7 @@ msgstr[1] "" #. #-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-# #. note the order of these options corresponds to the order they will be shown to the user in the UI -#: frontend/src/metabase/lib/query_time.js:189 src/metabase/api/table.clj +#: frontend/src/metabase/lib/query_time.js:192 src/metabase/api/table.clj #, fuzzy msgid "Minute" msgid_plural "Minutes" @@ -4247,7 +4351,7 @@ msgstr[0] "" "#-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-#\n" msgstr[1] "#-#-#-#-# metabase-frontend.pot #-#-#-#-#\n" -#: frontend/src/metabase/lib/query_time.js:191 src/metabase/api/table.clj +#: frontend/src/metabase/lib/query_time.js:194 src/metabase/api/table.clj #, fuzzy msgid "Hour" msgid_plural "Hours" @@ -4256,7 +4360,7 @@ msgstr[0] "" "#-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-#\n" msgstr[1] "#-#-#-#-# metabase-frontend.pot #-#-#-#-#\n" -#: frontend/src/metabase/lib/query_time.js:193 src/metabase/api/table.clj +#: frontend/src/metabase/lib/query_time.js:196 src/metabase/api/table.clj #, fuzzy msgid "Day" msgid_plural "Days" @@ -4265,7 +4369,7 @@ msgstr[0] "" "#-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-#\n" msgstr[1] "#-#-#-#-# metabase-frontend.pot #-#-#-#-#\n" -#: frontend/src/metabase/lib/query_time.js:195 +#: frontend/src/metabase/lib/query_time.js:198 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:24 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:29 #: src/metabase/api/table.clj @@ -4277,7 +4381,7 @@ msgstr[0] "" "#-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-#\n" msgstr[1] "#-#-#-#-# metabase-frontend.pot #-#-#-#-#\n" -#: frontend/src/metabase/lib/query_time.js:197 +#: frontend/src/metabase/lib/query_time.js:200 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:25 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:30 #: src/metabase/api/table.clj @@ -4289,7 +4393,7 @@ msgstr[0] "" "#-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-#\n" msgstr[1] "#-#-#-#-# metabase-frontend.pot #-#-#-#-#\n" -#: frontend/src/metabase/lib/query_time.js:199 src/metabase/api/table.clj +#: frontend/src/metabase/lib/query_time.js:202 src/metabase/api/table.clj #, fuzzy msgid "Quarter" msgid_plural "Quarters" @@ -4298,7 +4402,7 @@ msgstr[0] "" "#-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-#\n" msgstr[1] "#-#-#-#-# metabase-frontend.pot #-#-#-#-#\n" -#: frontend/src/metabase/lib/query_time.js:201 +#: frontend/src/metabase/lib/query_time.js:204 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:26 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:31 #: src/metabase/api/table.clj @@ -4310,338 +4414,348 @@ msgstr[0] "" "#-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-#\n" msgstr[1] "#-#-#-#-# metabase-frontend.pot #-#-#-#-#\n" -#: frontend/src/metabase/lib/query_time.js:203 +#: frontend/src/metabase/lib/query_time.js:206 msgid "Minute of hour" msgid_plural "Minutes of hour" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/lib/query_time.js:205 +#: frontend/src/metabase/lib/query_time.js:208 msgid "Hour of day" msgid_plural "Hours of day" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/lib/query_time.js:207 +#: frontend/src/metabase/lib/query_time.js:210 msgid "Day of week" msgid_plural "Days of week" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/lib/query_time.js:209 +#: frontend/src/metabase/lib/query_time.js:212 msgid "Day of month" msgid_plural "Days of month" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/lib/query_time.js:211 +#: frontend/src/metabase/lib/query_time.js:214 msgid "Day of year" msgid_plural "Days of year" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/lib/query_time.js:213 +#: frontend/src/metabase/lib/query_time.js:216 msgid "Week of year" msgid_plural "Weeks of year" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/lib/query_time.js:215 +#: frontend/src/metabase/lib/query_time.js:218 msgid "Month of year" msgid_plural "Months of year" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/lib/query_time.js:217 +#: frontend/src/metabase/lib/query_time.js:220 msgid "Quarter of year" msgid_plural "Quarters of year" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/lib/schema_metadata.js:221 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:221 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:305 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:306 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:307 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:308 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:309 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:345 -#: frontend/src/metabase/lib/schema_metadata.js:365 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:389 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:400 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:346 -#: frontend/src/metabase/lib/schema_metadata.js:366 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:390 -#: frontend/src/metabase/lib/schema_metadata.js:396 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:347 -#: frontend/src/metabase/lib/schema_metadata.js:361 -#: frontend/src/metabase/lib/schema_metadata.js:369 -#: frontend/src/metabase/lib/schema_metadata.js:377 -#: frontend/src/metabase/lib/schema_metadata.js:385 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:401 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:348 -#: frontend/src/metabase/lib/schema_metadata.js:362 -#: frontend/src/metabase/lib/schema_metadata.js:370 -#: frontend/src/metabase/lib/schema_metadata.js:378 -#: frontend/src/metabase/lib/schema_metadata.js:386 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:354 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:355 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:356 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:357 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:358 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:285 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 +#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:367 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:368 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:372 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:264 +#: frontend/src/metabase/lib/schema_metadata.js:395 +#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:271 +#: frontend/src/metabase/lib/schema_metadata.js:396 +#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:397 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:453 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:459 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:461 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:467 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:469 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:475 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:477 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:483 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:485 +#: frontend/src/metabase/lib/schema_metadata.js:499 +#: resources/automagic_dashboards/field/DateTime.yaml +#: resources/automagic_dashboards/field/State.yaml +#: resources/automagic_dashboards/field/Number.yaml +#: resources/automagic_dashboards/field/Country.yaml +#: resources/automagic_dashboards/field/GenericField.yaml +msgid "Distinct values" +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:491 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:493 +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "" "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:499 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:501 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "" "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:507 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:509 +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "" "Number which expresses how much the values of a column vary among all rows " "in the answer." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:515 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:517 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:523 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:525 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:533 -msgid "Break out by dimension" -msgstr "" - -#: frontend/src/metabase/lib/settings.js:93 +#: frontend/src/metabase/lib/settings.js:108 msgid "lower case letter" msgstr "" -#: frontend/src/metabase/lib/settings.js:95 +#: frontend/src/metabase/lib/settings.js:110 msgid "upper case letter" msgstr "" -#: frontend/src/metabase/lib/settings.js:97 +#: frontend/src/metabase/lib/settings.js:112 #: src/metabase/automagic_dashboards/core.clj msgid "number" msgstr "" -#: frontend/src/metabase/lib/settings.js:99 +#: frontend/src/metabase/lib/settings.js:114 msgid "special character" msgstr "" -#: frontend/src/metabase/lib/settings.js:105 -msgid "must be" -msgstr "" - -#: frontend/src/metabase/lib/settings.js:105 -#: frontend/src/metabase/lib/settings.js:106 -msgid "characters long" +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" msgstr "" -#: frontend/src/metabase/lib/settings.js:106 -msgid "Must be" +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" msgstr "" -#: frontend/src/metabase/lib/settings.js:122 +#: frontend/src/metabase/lib/settings.js:137 msgid "and include" msgstr "" -#: frontend/src/metabase/lib/utils.js:92 +#: frontend/src/metabase/lib/utils.js:85 msgid "zero" msgstr "" -#: frontend/src/metabase/lib/utils.js:93 +#: frontend/src/metabase/lib/utils.js:86 msgid "one" msgstr "" -#: frontend/src/metabase/lib/utils.js:94 +#: frontend/src/metabase/lib/utils.js:87 msgid "two" msgstr "" -#: frontend/src/metabase/lib/utils.js:95 +#: frontend/src/metabase/lib/utils.js:88 msgid "three" msgstr "" -#: frontend/src/metabase/lib/utils.js:96 +#: frontend/src/metabase/lib/utils.js:89 msgid "four" msgstr "" -#: frontend/src/metabase/lib/utils.js:97 +#: frontend/src/metabase/lib/utils.js:90 msgid "five" msgstr "" -#: frontend/src/metabase/lib/utils.js:98 +#: frontend/src/metabase/lib/utils.js:91 msgid "six" msgstr "" -#: frontend/src/metabase/lib/utils.js:99 +#: frontend/src/metabase/lib/utils.js:92 msgid "seven" msgstr "" -#: frontend/src/metabase/lib/utils.js:100 +#: frontend/src/metabase/lib/utils.js:93 msgid "eight" msgstr "" -#: frontend/src/metabase/lib/utils.js:101 +#: frontend/src/metabase/lib/utils.js:94 msgid "nine" msgstr "" @@ -4715,6 +4829,7 @@ msgstr "" msgid "Date range, relative date, time of day, etc." msgstr "" +#: frontend/src/metabase-lib/lib/DimensionOptions.js:124 #: frontend/src/metabase/meta/Dashboard.js:101 #: frontend/src/metabase/modes/components/actions/PivotByLocationAction.jsx:8 msgid "Location" @@ -4745,21 +4860,21 @@ msgid "Before {0}" msgstr "" #: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:104 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:295 +#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:294 msgid "Is Empty" msgstr "" #: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:106 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:301 +#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:300 msgid "Not Empty" msgstr "" #: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:109 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:213 +#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:212 msgid "All Time" msgstr "" -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:154 +#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:155 msgid "Apply" msgstr "" @@ -4783,7 +4898,7 @@ msgstr "" msgid "Break out by {0}" msgstr "" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "" @@ -4803,6 +4918,12 @@ msgstr "" msgid "X-ray" msgstr "" +#: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 +msgid "Filter" +msgstr "" + #: frontend/src/metabase/modes/components/drill/CompareToRestDrill.js:34 msgid "Compare to the rest" msgstr "" @@ -4815,7 +4936,7 @@ msgstr "" msgid "View details" msgstr "" -#: frontend/src/metabase/modes/components/drill/QuickFilterDrill.jsx:54 +#: frontend/src/metabase/modes/components/drill/QuickFilterDrill.jsx:57 msgid "View this {0}'s {1}" msgstr "" @@ -4827,159 +4948,145 @@ msgstr "" msgid "Descending" msgstr "" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "" -#: frontend/src/metabase/modes/components/drill/UnderlyingRecordsDrill.jsx:32 +#: frontend/src/metabase/modes/components/drill/UnderlyingRecordsDrill.jsx:34 +msgid "record" +msgid_plural "records" +msgstr[0] "" +msgstr[1] "" + +#: frontend/src/metabase/modes/components/drill/UnderlyingRecordsDrill.jsx:39 msgid "View this {0}" msgid_plural "View these {0}" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 -#: frontend/src/metabase/user/components/UserSettings.jsx:54 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 +#: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:105 -msgid "Help" -msgstr "" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:67 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:73 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:98 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:105 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:124 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:126 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "" -#: frontend/src/metabase/nav/containers/Navbar.jsx:130 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "" -#: frontend/src/metabase/nav/containers/Navbar.jsx:194 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "" -#: frontend/src/metabase/nav/containers/Navbar.jsx:300 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "" -#: frontend/src/metabase/nav/containers/Navbar.jsx:309 -msgid "New dashboard" -msgstr "" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:315 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:127 -msgid "New pulse" -msgstr "" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:323 -msgid "Reference" +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 +msgid "Browse Data" msgstr "" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:83 -msgid "Which metric?" +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +msgid "New dashboard" msgstr "" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:110 -#: frontend/src/metabase/reference/metrics/MetricList.jsx:24 -msgid "" -"Defining common metrics for your team makes it even easier to ask questions" +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 +msgid "New pulse" msgstr "" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:111 -msgid "No metrics" +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 +msgid "Write SQL" msgstr "" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:113 -msgid "How to create metrics" +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 +msgid "Simple question" msgstr "" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:138 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "" -"See data over time, as a map, or pivoted to help you understand trends or " -"changes." -msgstr "" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:149 -msgid "Custom" +"Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:150 -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:517 -msgid "New question" +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 +msgid "Custom question" msgstr "" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:152 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "" -"Use the simple question builder to see trends, lists of things, or to create " -"your own metrics." +"Use the advanced notebook editor to join data, create custom columns, do " +"math, and more." msgstr "" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:161 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:162 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "" "For more complicated questions, you can write your own SQL or native query." msgstr "" -#: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:240 +#: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:245 msgid "Select a default value…" msgstr "" +#: frontend/src/metabase-lib/lib/queries/structured/Filter.js:257 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:62 #: frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget.jsx:58 -#: frontend/src/metabase/query_builder/components/Filter.jsx:79 +#: frontend/src/metabase/query_builder/components/Filter.jsx:82 msgid "{0} selection" msgid_plural "{0} selections" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/parameters/components/widgets/DateAllOptionsWidget.jsx:149 -#: frontend/src/metabase/query_builder/components/filters/FilterPopover.jsx:404 +#: frontend/src/metabase/parameters/components/widgets/DateAllOptionsWidget.jsx:150 +#: frontend/src/metabase/query_builder/components/filters/FilterPopoverFooter.jsx:41 msgid "Update filter" msgstr "" @@ -5040,10 +5147,6 @@ msgstr "" msgid "Enter a default value..." msgstr "" -#: frontend/src/metabase/public/components/PublicError.jsx:18 -msgid "An error occurred" -msgstr "" - #: frontend/src/metabase/public/components/PublicNotFound.jsx:11 msgid "Not found" msgstr "" @@ -5084,24 +5187,24 @@ msgstr "" msgid "Code" msgstr "" -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:70 +#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:72 #: frontend/src/metabase/visualizations/lib/settings/column.js:282 msgid "Style" msgstr "" -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 +#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:82 msgid "Which parameters can users of this embed use?" msgstr "" -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:83 +#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:84 msgid "This {0} doesn't have any parameters to configure yet." msgstr "" -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:104 +#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:105 msgid "Editable" msgstr "" -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:105 +#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:106 msgid "Locked" msgstr "" @@ -5109,22 +5212,22 @@ msgstr "" msgid "Preview Locked Parameters" msgstr "" -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:115 +#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:114 msgid "" "Try passing some values to your locked parameters here. Your server will " "have to provide the actual values in the signed token when using this for " "real." msgstr "" -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:126 +#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:125 msgid "Danger zone" msgstr "" -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:127 +#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:126 msgid "This will disable embedding for this {0}." msgstr "" -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:128 +#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:127 msgid "Unpublish" msgstr "" @@ -5170,72 +5273,72 @@ msgstr "" msgid "Sharing" msgstr "" -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:72 +#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:71 msgid "Enable sharing" msgstr "" -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:76 +#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:75 msgid "Disable this public link?" msgstr "" -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:77 +#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:76 msgid "" "This will cause the existing link to stop working. You can re-enable it, but " "when you do it will be a different link." msgstr "" -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:117 +#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:116 msgid "Public link" msgstr "" -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:118 +#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:117 msgid "" "Share this {0} with people who don't have a Metabase account using the URL " "below:" msgstr "" -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:158 +#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:154 msgid "Public embed" msgstr "" -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:159 +#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:155 msgid "" "Embed this {0} in blog posts or web pages by copying and pasting this " "snippet:" msgstr "" -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:176 +#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:172 msgid "Embed this {0} in an application" msgstr "" -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:177 +#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:173 msgid "" "By integrating with your application server code, you can provide a secure " "stats {0} limited to a specific user, customer, organization, etc." msgstr "" -#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:94 +#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:93 msgid "Remove attachment" msgstr "" -#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:95 +#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:94 msgid "Attach file with results" msgstr "" -#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:127 +#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:126 msgid "This question will be added as a file attachment" msgstr "" -#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:128 +#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:127 msgid "This question won't be included in your Pulse" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:92 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:91 msgid "This pulse will no longer be emailed to {0} {1}" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:94 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:376 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:93 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:375 msgid "{0} address" msgid_plural "{0} addresses" msgstr[0] "" @@ -5245,39 +5348,39 @@ msgstr[1] "" msgid "Slack channel {0} will no longer get this pulse {1}" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:110 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:111 msgid "Channel {0} will no longer receive this pulse {1}" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:127 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "Edit pulse" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:131 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:133 msgid "What's a Pulse?" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:141 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:143 msgid "Got it" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:157 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:159 msgid "Where should this data go?" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:173 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:175 msgid "Unarchiving…" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:174 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:176 msgid "Unarchive failed" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:175 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:177 msgid "Unarchived" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:182 +#: frontend/src/metabase/pulse/components/PulseEdit.jsx:184 msgid "Create pulse" msgstr "" @@ -5287,7 +5390,7 @@ msgstr "" #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:104 #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:111 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:673 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:675 msgid "Heads up" msgstr "" @@ -5313,6 +5416,7 @@ msgid "" msgstr "" #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "" @@ -5328,51 +5432,51 @@ msgstr "" msgid "Slack messages" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:222 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:224 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:241 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:244 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:248 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:287 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:302 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "" @@ -5414,60 +5518,64 @@ msgid "" "your choice." msgstr "" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:64 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:96 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:19 -msgid "Custom Expression" +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 +msgid "of" msgstr "" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:20 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:22 msgid "Common Metrics" msgstr "" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:209 -msgid "Metabasics" +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:23 +msgid "Basic Metrics" +msgstr "" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:24 +msgid "Custom Expression" msgstr "" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 -msgid "Name (optional)" +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 +msgid "Custom…" msgstr "" -#: frontend/src/metabase/query_builder/components/AggregationWidget.jsx:156 -msgid "Choose an aggregation" +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" msgstr "" #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:100 msgid "Set up your own alert" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:140 +#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:143 msgid "Unsubscribing..." msgstr "" -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:145 +#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:148 msgid "Failed to unsubscribe" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:204 +#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:206 msgid "Unsubscribe" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:235 +#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:236 msgid "No channel" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:263 +#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:264 msgid "Okay, you're unsubscribed" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:335 +#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:336 msgid "You're receiving {0}'s alerts" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:336 +#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:337 msgid "{0} set up an alert" msgstr "" @@ -5523,151 +5631,156 @@ msgstr "" msgid "Edit alert" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:374 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:373 msgid "This alert will no longer be emailed to {0}." msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:382 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:381 msgid "Slack channel {0} will no longer get this alert." msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:386 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:385 msgid "Channel {0} will no longer receive this alert." msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:403 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:402 msgid "Delete this alert" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:405 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:404 msgid "Stop delivery and delete this alert. There's no undo, so be careful." msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:413 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:412 msgid "Delete this alert?" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:497 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:499 msgid "Alert me when the line…" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:498 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:500 msgid "Alert me when the progress bar…" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:501 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:503 msgid "Goes above the goal line" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:501 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:503 msgid "Reaches the goal" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:504 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:506 msgid "Goes below the goal line" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:504 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:506 msgid "Goes below the goal" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:512 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:514 msgid "The first time it crosses, or every time?" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:513 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:515 msgid "The first time it reaches the goal, or every time?" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:515 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:517 msgid "The first time" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:516 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:518 msgid "Every time" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:619 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:621 msgid "Where do you want to send these alerts?" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:630 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:632 msgid "Email alerts to:" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:672 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:674 msgid "" "{0} Goal-based alerts aren't yet supported for charts with more than one " "line, so this alert will be sent whenever the chart has {1}." msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:675 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:679 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:681 msgid "" "{0} This kind of alert is most useful when your saved question doesn’t {1} " "return any results, but you want to know when it does." msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:680 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:682 msgid "Tip" msgstr "" -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:682 +#: frontend/src/metabase/query_builder/components/AlertModals.jsx:684 msgid "usually" msgstr "" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:57 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:73 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:88 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:128 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:793 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:830 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:834 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:868 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:946 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:969 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "" -#: frontend/src/metabase/query_builder/components/ExpandableString.jsx:46 +#: frontend/src/metabase/query_builder/components/DimensionList.jsx:147 +msgid "Add grouping" +msgstr "" + +#: frontend/src/metabase/query_builder/components/ExpandableString.jsx:47 msgid "View less" msgstr "" -#: frontend/src/metabase/query_builder/components/ExpandableString.jsx:56 +#: frontend/src/metabase/query_builder/components/ExpandableString.jsx:57 msgid "View more" msgstr "" @@ -5676,80 +5789,101 @@ msgid "Pick a field to sort by" msgstr "" #: frontend/src/metabase/query_builder/components/ExtendedOptions.jsx:125 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:75 msgid "Sort" msgstr "" #: frontend/src/metabase/query_builder/components/ExtendedOptions.jsx:137 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:82 msgid "Row limit" msgstr "" -#: frontend/src/metabase/query_builder/components/FieldName.jsx:69 +#: frontend/src/metabase/query_builder/components/FieldName.jsx:73 msgid "Unknown Field" msgstr "" -#: frontend/src/metabase/query_builder/components/FieldName.jsx:72 +#: frontend/src/metabase/query_builder/components/FieldName.jsx:76 msgid "field" msgstr "" -#: frontend/src/metabase/query_builder/components/Filter.jsx:114 +#: frontend/src/metabase/query_builder/components/Filter.jsx:117 msgid "Matches" msgstr "" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:152 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:160 +#: frontend/src/metabase/query_builder/components/notebook/steps/FilterStep.jsx:18 msgid "Add filters to narrow your answer" msgstr "" -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:284 +#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:297 msgid "Add a grouping" msgstr "" -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:322 -#: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:102 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:113 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:152 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:194 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:59 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:68 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:75 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:225 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:231 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:237 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:70 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:75 +#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 +#: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:89 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:131 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:176 +#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 +#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 +#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" msgstr "" -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:352 +#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:363 msgid "Filtered by" msgstr "" -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:386 +#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:397 msgid "Grouped By" msgstr "" +#: frontend/src/metabase/query_builder/components/LimitPopover.jsx:14 +msgid "Pick a limit" +msgstr "" + +#: frontend/src/metabase/query_builder/components/LimitPopover.jsx:38 +msgid "Show maximum" +msgstr "" + #: frontend/src/metabase/query_builder/components/LimitWidget.jsx:27 msgid "None" msgstr "" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:345 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:353 -msgid "Hide Editor" +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 +msgid "Open Editor" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 +msgid "Show Query" msgstr "" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:354 -msgid "Hide Query" +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" msgstr "" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:359 -msgid "Open Editor" +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" msgstr "" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:360 -msgid "Show Query" +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" msgstr "" #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:25 @@ -5765,135 +5899,50 @@ msgstr "" msgid "Download this data" msgstr "" -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:52 +#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:50 msgid "" "Your answer has a large number of rows so it could take a while to download." msgstr "" -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:53 +#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:51 msgid "The maximum download size is 1 million rows." msgstr "" -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:232 -msgid "Edit question" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:249 -msgid "SAVE CHANGES" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:263 -msgid "CANCEL" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:276 -msgid "Move question" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:283 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "" -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:313 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:110 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:83 -msgid "Variables" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:432 -msgid "Learn about your data" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:460 -msgid "Alerts are on" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:522 -msgid "started from" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:48 -msgid "SQL" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:48 -msgid "native query" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:52 -msgid "Not Supported" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:58 -msgid "View the {0}" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:59 -msgid "Switch to {0}" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:62 -msgid "Switch to Builder" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:87 -msgid "{0} for this question" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:111 -msgid "Convert this question to {0}" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:122 -msgid "This question will take approximately {0} to refresh" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:131 -msgid "Updated {0}" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:141 -msgid "row" -msgid_plural "rows" -msgstr[0] "" -msgstr[1] "" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:148 -msgid "Showing first {0} {1}" -msgstr "" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:151 -msgid "Showing {0} {1}" +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" msgstr "" -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:281 +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:162 msgid "Doing science" msgstr "" -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:294 -msgid "If you give me some data I can show you something cool. Run a Query!" +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 +msgid "Get Preview" msgstr "" -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:299 -msgid "How do I use this thing?" +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 +msgid "Get Answer" msgstr "" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:28 -msgid "Get Answer" +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 +msgid "This question will take approximately {0} to refresh" msgstr "" #: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:12 msgid "It's okay to play around with saved questions" msgstr "" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:14 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 msgid "" "You won't make any permanent changes to a saved question unless you click " -"the edit icon in the top-right." +"Save and choose to replace the original question." msgstr "" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 -#: frontend/src/metabase/tutorial/Tutorial.jsx:253 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "" @@ -5913,76 +5962,88 @@ msgstr "" msgid "Group time by" msgstr "" -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:46 +#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:50 msgid "Your question took too long" msgstr "" -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:47 +#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:51 msgid "" "We didn't get an answer back from your database in time, so we had to stop. " "You can try again in a minute, or if the problem persists, you can email an " "admin to let them know." msgstr "" -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:55 +#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:60 msgid "We're experiencing server issues" msgstr "" -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:56 +#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:61 msgid "" "Try refreshing the page after waiting a minute or two. If the problem " "persists we'd recommend you contact an admin." msgstr "" -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:88 +#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:95 msgid "There was a problem with your question" msgstr "" -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:89 +#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:96 msgid "" "Most of the time this is caused by an invalid selection or bad input value. " "Double check your inputs and retry your query." msgstr "" -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:60 +#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:66 msgid "" "This may be the answer you’re looking for. If not, try removing or changing " "your filters to make them less specific." msgstr "" -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:66 +#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:71 msgid "You can also {0} when there are some results." msgstr "" -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:68 +#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:73 msgid "get an alert" msgstr "" -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:77 -msgid "Back to last run" +#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:82 +msgid "Back to previous results" msgstr "" -#: frontend/src/metabase/query_builder/components/VisualizationSettings.jsx:100 -msgid "Visualization" +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:17 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:19 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:23 +#: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:24 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:23 +msgid "Data Reference" msgstr "" #: frontend/src/metabase/query_builder/components/dataref/DetailPane.jsx:16 msgid "No description" msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:166 +#: frontend/src/metabase/query_builder/components/dataref/DetailPane.jsx:21 +msgid "Sample values" +msgstr "" + +#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:169 msgid "Group by {0}" msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:175 +#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:178 msgid "Sum of all values" msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:183 +#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:186 msgid "See all distinct values" msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:187 +#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:190 #: frontend/src/metabase/reference/databases/FieldDetail.jsx:39 #: frontend/src/metabase/reference/databases/FieldDetail.jsx:51 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:39 @@ -5990,51 +6051,39 @@ msgid "Number of {0} grouped by {1}" msgstr "" #: frontend/src/metabase/query_builder/components/dataref/MainPane.jsx:10 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:17 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:19 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:23 -#: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:24 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:23 -msgid "Data Reference" -msgstr "" - -#: frontend/src/metabase/query_builder/components/dataref/MainPane.jsx:12 msgid "" "Browse the contents of your databases, tables, and columns. Pick a database " -"to get started" +"to get started." msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:58 -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:84 +#: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:65 +#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:91 msgid "Could not find the table metadata prior to creating a new question" msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:80 +#: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:87 msgid "See {0}" msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:94 +#: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:101 msgid "Metric Definition" msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:118 +#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:125 msgid "Filter by {0}" msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:127 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:148 +#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:155 msgid "Segment Definition" msgstr "" @@ -6042,11 +6091,11 @@ msgstr "" msgid "An error occurred loading the table" msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/TablePane.jsx:96 +#: frontend/src/metabase/query_builder/components/dataref/TablePane.jsx:95 msgid "No description set." msgstr "" -#: frontend/src/metabase/query_builder/components/dataref/TablePane.jsx:180 +#: frontend/src/metabase/query_builder/components/dataref/TablePane.jsx:179 msgid "More" msgstr "" @@ -6058,35 +6107,36 @@ msgstr "" msgid "Operators" msgstr "" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:46 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:57 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "" "Think of this as being kind of like writing a formula in a spreadsheet " "program: you can use numbers, fields in this table, mathematical symbols " "like +, and some functions. So you could type something like Subtotal - Cost." msgstr "" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:66 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:72 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "" @@ -6130,19 +6180,8 @@ msgstr "" msgid "this hour" msgstr "" -#: frontend/src/metabase/query_builder/components/filters/FilterPopover.jsx:290 -msgid "not implemented {0}" -msgstr "" - -#: frontend/src/metabase/query_builder/components/filters/FilterPopover.jsx:291 -msgid "true" -msgstr "" - -#: frontend/src/metabase/query_builder/components/filters/FilterPopover.jsx:291 -msgid "false" -msgstr "" - -#: frontend/src/metabase/query_builder/components/filters/FilterPopover.jsx:404 +#: frontend/src/metabase/query_builder/components/filters/FilterPopoverFooter.jsx:41 +#: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 msgid "Add filter" msgstr "" @@ -6150,15 +6189,15 @@ msgstr "" msgid "Item" msgstr "" -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:221 +#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:220 msgid "Previous" msgstr "" -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:252 +#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:251 msgid "Current" msgstr "" -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:278 +#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:277 #: frontend/src/metabase/visualizations/lib/settings/column.js:246 #: frontend/src/metabase/visualizations/lib/settings/series.js:89 msgid "On" @@ -6169,7 +6208,7 @@ msgid "Enter desired number" msgstr "" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:100 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "" @@ -6185,7 +6224,7 @@ msgstr "" msgid "Show calendar" msgstr "" -#: frontend/src/metabase/query_builder/components/filters/pickers/SpecificDatePicker.jsx:147 +#: frontend/src/metabase/query_builder/components/filters/pickers/SpecificDatePicker.jsx:137 msgid "Add a time" msgstr "" @@ -6197,117 +6236,328 @@ msgstr "" msgid "Enter desired text" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:83 -msgid "Try it" +#: frontend/src/metabase/query_builder/components/notebook/Notebook.jsx:40 +msgid "Visualize" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:105 -msgid "What's this for?" +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:34 +msgid "Join data" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:107 -msgid "" -"Variables in native queries let you dynamically replace values in your " -"queries using filter widgets or through the URL." +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:41 +msgid "Custom column" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:112 -msgid "" -"{0} creates a variable in this SQL template called \"variable_name\". " -"Variables can be given types in the side panel, which changes their " -"behavior. All variable types other than \"Field Filter\" will automatically " -"cause a filter widget to be placed on this question; with Field Filters, " -"this is optional. When this filter widget is filled in, that value replaces " -"the variable in the SQL template." +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 +msgid "Summarize" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:121 -msgid "Field Filters" +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:61 +msgid "Aggregate" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:123 -msgid "" -"Giving a variable the \"Field Filter\" type allows you to link SQL cards to " -"dashboard filter widgets or use more types of filter widgets on your SQL " -"question. A Field Filter variable inserts SQL similar to that generated by " -"the GUI query builder when adding filters on existing columns." +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:68 +msgid "Breakout" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:126 -msgid "" -"When adding a Field Filter variable, you'll need to map it to a specific " -"field. You can then choose to display a filter widget on your question, but " -"even if you don't, you can now map your Field Filter variable to a dashboard " -"filter when adding this question to a dashboard. Field Filters should be " -"used inside of a \"WHERE\" clause." +#: frontend/src/metabase/query_builder/components/notebook/steps/AggregateStep.jsx:18 +msgid "Pick the metric you want to see" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:130 -msgid "Optional Clauses" +#: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 +msgid "Pick a column to group by" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:132 -msgid "" -"brackets around a {0} create an optional clause in the template. If " -"\"variable\" is set, then the entire clause is placed into the template. If " -"not, then the entire clause is ignored." +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 +msgid "Pick your starting data" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:142 -msgid "" -"To use multiple optional clauses you can include at least one non-optional " -"WHERE clause followed by optional clauses starting with \"AND\"." +#: frontend/src/metabase/query_builder/components/notebook/steps/FieldsPicker.jsx:43 +msgid "Select None" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:154 +#: frontend/src/metabase/query_builder/components/notebook/steps/FieldsPicker.jsx:43 +msgid "Select All" +msgstr "" + +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:97 +msgid "Change join type" +msgstr "" + +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 +msgid "Pick a table..." +msgstr "" + +#: frontend/src/metabase/query_builder/components/notebook/steps/LimitStep.jsx:23 +msgid "Enter a limit" +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:107 +msgid "Try it" +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:129 +msgid "What's this for?" +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:131 +msgid "" +"Variables in native queries let you dynamically replace values in your " +"queries using filter widgets or through the URL." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:134 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:84 +#: frontend/src/metabase/query_builder/components/view/NativeVariablesButton.jsx:17 +msgid "Variables" +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:136 +msgid "" +"{0} creates a variable in this SQL template called \"variable_name\". " +"Variables can be given types in the side panel, which changes their " +"behavior. All variable types other than \"Field Filter\" will automatically " +"cause a filter widget to be placed on this question; with Field Filters, " +"this is optional. When this filter widget is filled in, that value replaces " +"the variable in the SQL template." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:145 +msgid "Field Filters" +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:147 +msgid "" +"Giving a variable the \"Field Filter\" type allows you to link SQL cards to " +"dashboard filter widgets or use more types of filter widgets on your SQL " +"question. A Field Filter variable inserts SQL similar to that generated by " +"the GUI query builder when adding filters on existing columns." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:150 +msgid "" +"When adding a Field Filter variable, you'll need to map it to a specific " +"field. You can then choose to display a filter widget on your question, but " +"even if you don't, you can now map your Field Filter variable to a dashboard " +"filter when adding this question to a dashboard. Field Filters should be " +"used inside of a \"WHERE\" clause." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:157 +msgid "Optional Clauses" +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:159 +msgid "" +"Brackets around a {0} create an optional clause in the template. If " +"\"variable\" is set, then the entire clause is placed into the template. If " +"not, then the entire clause is ignored." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:169 +msgid "" +"To use multiple optional clauses you can include at least one non-optional " +"WHERE clause followed by optional clauses starting with \"AND\"." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:176 +msgid "" +"When using a Field Filter, the column name should not be included in the " +"SQL. Instead, the variable should be mapped to a field in the side panel." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:187 msgid "Read the full documentation" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:127 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:139 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 +#: frontend/src/metabase-lib/lib/DimensionOptions.js:143 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:150 +#: frontend/src/metabase-lib/lib/DimensionOptions.js:119 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:179 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:201 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:211 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "" -#: frontend/src/metabase/query_builder/containers/ArchiveQuestionModal.jsx:46 +#: frontend/src/metabase/query_builder/components/view/DataReferenceButton.jsx:17 +msgid "Learn about your data" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:9 +msgid "Edit question" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:16 +msgid "View the native query" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:17 +msgid "Native query for this question" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:18 +msgid "Convert this question to a native query" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:22 +msgid "SQL for this question" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:23 +msgid "Convert this question to SQL" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionAlertWidget.jsx:53 +msgid "Get alerts" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:19 +#: src/metabase/automagic_dashboards/core.clj +#, fuzzy +msgid "{0} metric" +msgid_plural "{0} metrics" +msgstr[0] "" +"#-#-#-#-# metabase-frontend.pot #-#-#-#-#\n" +"#-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-#\n" +msgstr[1] "#-#-#-#-# metabase-frontend.pot #-#-#-#-#\n" + +#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:31 +msgid "{0} breakout" +msgid_plural "{0} breakouts" +msgstr[0] "" +msgstr[1] "" + +#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:39 +#: src/metabase/automagic_dashboards/core.clj +msgid "{0} by {1}" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 +msgid "New question" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 +msgid "Hide filters" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 +msgid "Show filters" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionLastUpdated.jsx:13 +msgid "Updated {0}" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 +msgid "Started from" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 +msgid "Hide editor" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 +msgid "Show editor" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:21 +msgid "{0} row" +msgid_plural "{0} rows" +msgstr[0] "" +msgstr[1] "" + +#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:29 +msgid "Show all rows" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:30 +msgid "Show {0}" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:35 +msgid "Showing first {0}" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:36 +msgid "Showing {0}" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:34 +msgid "Summarized" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 +msgid "Visualization" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 +msgid "{0} options" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:44 +msgid "Choose a visualization" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:38 +msgid "Filter by" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar.jsx:57 +msgid "Summarize by" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar.jsx:83 +msgid "Group by" +msgstr "" + +#: frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar.jsx:167 +msgid "Add a metric" +msgstr "" + +#: frontend/src/metabase/query_builder/containers/ArchiveQuestionModal.jsx:19 msgid "Archive this question?" msgstr "" -#: frontend/src/metabase/query_builder/containers/ArchiveQuestionModal.jsx:57 +#: frontend/src/metabase/query_builder/containers/ArchiveQuestionModal.jsx:20 msgid "This question will be removed from any dashboards or pulses using it." msgstr "" -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:136 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "" @@ -6319,44 +6569,40 @@ msgstr "" msgid "You are editing this page" msgstr "" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:120 -msgid "A subset of" -msgstr "" - -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:68 +#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:57 +#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" msgstr "" -#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:22 -msgid "by" +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" msgstr "" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "" -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:72 +#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:71 msgid "Select a Foreign Key" msgstr "" -#: frontend/src/metabase/reference/components/Formula.jsx:53 +#: frontend/src/metabase/reference/components/Formula.jsx:56 msgid "View the {0} formula" msgstr "" @@ -6373,12 +6619,12 @@ msgid "Nothing important yet" msgstr "" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:168 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:233 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:211 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:215 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:219 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:229 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "" @@ -6387,12 +6633,12 @@ msgid "Things to be aware of about this {0}" msgstr "" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:178 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:243 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:221 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:225 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:229 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:239 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "" @@ -6438,7 +6684,7 @@ msgstr "" msgid "Which 2-3 fields do you usually group this metric by?" msgstr "" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "" "This is the perfect place to start if you’re new to your company’s data, or " "if you just want to check in on what’s going on." @@ -6457,25 +6703,20 @@ msgid "" "Leave a note to explain what changes you made and why they were required" msgstr "" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:166 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:176 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "" -#: frontend/src/metabase/reference/databases/DatabaseList.jsx:46 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 -msgid "Databases and tables" -msgstr "" - -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:111 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "" @@ -6484,26 +6725,26 @@ msgstr "" msgid "All distinct values of {0}" msgstr "" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:222 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:200 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:218 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:231 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:227 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:241 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:253 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:249 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "" @@ -6512,17 +6753,17 @@ msgstr "" msgid "Fields in this table will appear here as they're added" msgstr "" -#: frontend/src/metabase/reference/databases/FieldList.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:135 +#: frontend/src/metabase/reference/databases/FieldList.jsx:137 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:138 msgid "Fields in {0}" msgstr "" -#: frontend/src/metabase/reference/databases/FieldList.jsx:149 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:150 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "" @@ -6542,7 +6783,10 @@ msgstr "" msgid "Connect a database" msgstr "" +#. #-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-# +#. cum-count and cum-sum get names for count and sum, respectively (see explanation in `aggregation-name`) #: frontend/src/metabase/reference/databases/TableDetail.jsx:38 +#: src/metabase/query_processor/middleware/annotate.clj msgid "Count of {0}" msgstr "" @@ -6550,11 +6794,11 @@ msgstr "" msgid "See raw data for {0}" msgstr "" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:209 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:219 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "" @@ -6566,16 +6810,16 @@ msgstr "" msgid "Questions about this table will appear here as they're added" msgstr "" -#: frontend/src/metabase/reference/databases/TableQuestions.jsx:71 -#: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:75 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 -#: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:74 +#: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 +#: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 +#: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "" -#: frontend/src/metabase/reference/databases/TableQuestions.jsx:95 -#: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:99 -#: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:98 +#: frontend/src/metabase/reference/databases/TableQuestions.jsx:98 +#: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:102 +#: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:101 msgid "Created {0} by {1}" msgstr "" @@ -6583,218 +6827,219 @@ msgstr "" msgid "Fields in this table" msgstr "" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:157 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:158 msgid "Help your team get started with your data." msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:159 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:160 msgid "" "Show your team what’s most important by choosing your top dashboard, " "metrics, and segments." msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:165 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:166 msgid "Get started" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:173 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:174 msgid "Our most important dashboard" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:188 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:189 msgid "Numbers that we pay attention to" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:213 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:214 msgid "" "Metrics are important numbers your company cares about. They often represent " "a core indicator of how the business is performing." msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:221 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:222 msgid "See all metrics" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:235 -msgid "Segments and tables" -msgstr "" - #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:236 -msgid "Tables" +msgid "Segments and tables" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:262 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:263 msgid "" "Segments and tables are the building blocks of your company's data. Tables " "are collections of the raw information while segments are specific slices " "with specific meanings, like {0}" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:267 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:268 msgid "Tables are the building blocks of your company's data." msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:277 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:278 msgid "See all segments" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:293 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:294 msgid "See all tables" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:301 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:302 msgid "Other things to know about our data" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:302 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:303 msgid "Find out more" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:307 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:308 msgid "" "A good way to get to know your data is by spending a bit of time exploring " "the different tables and other info available to you. It may take a while, " "but you'll start to recognize names and meanings over time." msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:313 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:314 msgid "Explore our data" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:321 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:322 msgid "Have questions?" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:326 +#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:327 msgid "Contact {0}" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:248 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:253 msgid "Help new Metabase users find their way around." msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:251 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:256 msgid "" "The Getting Started guide highlights the dashboard, metrics, segments, and " "tables that matter most, and informs your users of important things they " "should know before digging into the data." msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:258 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:263 msgid "Is there an important dashboard for your team?" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:260 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:265 msgid "Create a dashboard now" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:266 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:271 msgid "What is your most important dashboard?" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:285 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:290 msgid "Do you have any commonly referenced metrics?" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:287 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:292 msgid "Learn how to define a metric" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:300 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:308 msgid "What are your 3-5 most commonly referenced metrics?" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:344 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:352 msgid "Add another metric" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:357 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:365 msgid "Do you have any commonly referenced segments or tables?" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:359 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:367 msgid "Learn how to create a segment" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:372 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:383 msgid "" "What are 3-5 commonly referenced segments or tables that would be useful for " "this audience?" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:418 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:429 msgid "Add another segment or table" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:427 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:438 msgid "" "Is there anything your users should understand or know before they start " "accessing the data?" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:433 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:444 msgid "What should a user of this data know before they start accessing it?" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:437 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:448 msgid "" "E.g., expectations around data privacy and use, common pitfalls or " "misunderstandings, information about data warehouse performance, legal " "notices, etc." msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:448 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:459 msgid "" "Is there someone your users could contact for help if they're confused about " "this guide?" msgstr "" -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:457 +#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:468 msgid "Who should users contact for help if they're confused about this data?" msgstr "" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:213 -msgid "Why this Metric is interesting" +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" msgstr "" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:223 -msgid "Things to be aware of about this Metric" +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" msgstr "" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:233 -msgid "How this Metric is calculated" +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" msgstr "" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:235 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:293 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:294 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "" -#: frontend/src/metabase/reference/metrics/MetricList.jsx:23 +#: frontend/src/metabase/reference/metrics/MetricList.jsx:25 msgid "Metrics are the official numbers that your team cares about" msgstr "" -#: frontend/src/metabase/reference/metrics/MetricList.jsx:25 -msgid "Metrics will appear here once your admins have created some" +#: frontend/src/metabase/reference/metrics/MetricList.jsx:26 +msgid "" +"Defining common metrics for your team makes it even easier to ask questions" msgstr "" #: frontend/src/metabase/reference/metrics/MetricList.jsx:27 +msgid "Metrics will appear here once your admins have created some" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricList.jsx:29 msgid "Learn how to create metrics" msgstr "" @@ -6806,38 +7051,42 @@ msgstr "" msgid "There are no revisions for this metric" msgstr "" -#: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:88 +#: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:88 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:217 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:227 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "" -#: frontend/src/metabase/reference/segments/SegmentList.jsx:23 +#: frontend/src/metabase/reference/segments/SegmentList.jsx:24 msgid "Segments are interesting subsets of tables" msgstr "" -#: frontend/src/metabase/reference/segments/SegmentList.jsx:24 +#: frontend/src/metabase/reference/segments/SegmentList.jsx:25 msgid "" "Defining common segments for your team makes it even easier to ask questions" msgstr "" -#: frontend/src/metabase/reference/segments/SegmentList.jsx:25 +#: frontend/src/metabase/reference/segments/SegmentList.jsx:26 msgid "Segments will appear here once your admins have created some" msgstr "" -#: frontend/src/metabase/reference/segments/SegmentList.jsx:27 +#: frontend/src/metabase/reference/segments/SegmentList.jsx:28 msgid "Learn how to create segments" msgstr "" @@ -6845,143 +7094,142 @@ msgstr "" msgid "Questions about this segment will appear here as they're added" msgstr "" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:141 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:145 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:165 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "" "You’ll need some info about your database, like the username and password. " "If you don’t have that right now, Metabase also comes with a sample dataset " "you can get started with." msgstr "" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:196 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "" -#: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:41 +#: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:46 msgid "Control automatic scans" msgstr "" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:53 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:57 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:76 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "" "In order to help us improve Metabase, we'd like to collect certain data " "about usage through Google Analytics." msgstr "" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:98 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:105 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:106 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:108 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "" -#: frontend/src/metabase/setup/components/Setup.jsx:45 +#: frontend/src/metabase/setup/components/Setup.jsx:44 msgid "If you feel stuck" msgstr "" -#: frontend/src/metabase/setup/components/Setup.jsx:52 +#: frontend/src/metabase/setup/components/Setup.jsx:49 msgid "our getting started guide" msgstr "" -#: frontend/src/metabase/setup/components/Setup.jsx:53 +#: frontend/src/metabase/setup/components/Setup.jsx:50 msgid "is just a click away." msgstr "" -#: frontend/src/metabase/setup/components/Setup.jsx:95 +#: frontend/src/metabase/setup/components/Setup.jsx:92 msgid "Welcome to Metabase" msgstr "" -#: frontend/src/metabase/setup/components/Setup.jsx:96 +#: frontend/src/metabase/setup/components/Setup.jsx:93 msgid "" "Looks like everything is working. Now let’s get to know you, connect to your " "data, and start finding you some answers!" msgstr "" -#: frontend/src/metabase/setup/components/Setup.jsx:100 +#: frontend/src/metabase/setup/components/Setup.jsx:97 msgid "Let's get started" msgstr "" -#: frontend/src/metabase/setup/components/Setup.jsx:145 +#: frontend/src/metabase/setup/components/Setup.jsx:142 msgid "You're all set up!" msgstr "" -#: frontend/src/metabase/setup/components/Setup.jsx:156 +#: frontend/src/metabase/setup/components/Setup.jsx:153 msgid "Take me to Metabase" msgstr "" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "" @@ -6993,38 +7241,28 @@ msgstr "" msgid "Hi, {0}. nice to meet you!" msgstr "" -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 -msgid "First name" -msgstr "" - -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 -msgid "Last name" -msgstr "" - #: frontend/src/metabase/setup/components/UserStep.jsx:243 msgid "Create a password" msgstr "" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 #: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "" -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "" @@ -7084,282 +7322,155 @@ msgstr "" msgid "I'm done exploring for now" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:20 -msgid "Welcome to the Query Builder!" +#: frontend/src/metabase/user/actions.js:34 +msgid "Password updated successfully!" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:22 -msgid "" -"The Query Builder lets you assemble questions (or \"queries\") to ask about " -"your data." +#: frontend/src/metabase/user/actions.js:53 +msgid "Account updated successfully!" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:26 -msgid "Tell me more" +#: frontend/src/metabase/user/components/SetUserPassword.jsx:107 +msgid "Current password" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:43 -msgid "" -"Start by picking the table with the data that you have a question about." +#: frontend/src/metabase/user/components/UserSettings.jsx:57 +msgid "Profile" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:45 -msgid "Go ahead and select the \"Orders\" table from the dropdown menu." +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:23 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:218 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:251 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:280 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:286 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:294 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 +#: frontend/src/metabase/visualizations/lib/settings/nested.js:126 +#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:119 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:125 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:131 +#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:61 +#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:67 +#: frontend/src/metabase/visualizations/visualizations/Text.jsx:72 +#: frontend/src/metabase/visualizations/visualizations/Text.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Text.jsx:98 +msgid "Display" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:78 -msgid "Filter your data to get just what you want." +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 +msgid "Reset to defaults" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:79 -msgid "Click the plus button and select the \"Created At\" field." +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 +msgid "unknown map" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:93 -msgid "Here we can pick how many days we want to see data for, try 10" +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 +msgid "No formatting settings" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:116 -msgid "" -"Here's where you can choose to add or average your data, count the number of " -"rows in the table, or just view the raw data." +#: frontend/src/metabase/visualizations/components/LeafletGridHeatMap.jsx:26 +msgid "Grid map requires binned longitude/latitude." msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:118 -msgid "" -"Try it: click on <strong>Raw Data</strong> to change it to <strong>Count of " -"rows</strong> so we can count how many orders there are in this table." +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 +msgid "more" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:142 -msgid "" -"Add a grouping to break out your results by category, day, month, and more." +#: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:111 +msgid "Which fields do you want to use for the X and Y axes?" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:144 -msgid "" -"Let's do it: click on <strong>Add a grouping</strong>, and choose " -"<strong>Created At: by Week</strong>." +#: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:113 +#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:64 +msgid "Choose fields" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:152 -msgid "Click on \"by day\" to change it to \"Week.\"" +#: frontend/src/metabase/visualizations/components/PinMap.jsx:215 +msgid "Save as default view" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:173 -msgid "Run Your Query." +#: frontend/src/metabase/visualizations/components/PinMap.jsx:237 +msgid "Draw box to filter" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:175 -msgid "" -"You're doing so well! Click <strong>Run query</strong> to get your results!" +#: frontend/src/metabase/visualizations/components/PinMap.jsx:237 +msgid "Cancel filter" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:192 -msgid "You can view your results as a chart instead of a table." +#: frontend/src/metabase/visualizations/components/PinMap.jsx:47 +msgid "Pin Map" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:194 -msgid "" -"Everbody likes charts! Click the <strong>Visualization</strong> dropdown and " -"select <strong>Line</strong>." +#: frontend/src/metabase/visualizations/components/TableSimple.jsx:253 +msgid "Rows {0}-{1} of {2}" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:216 -msgid "Well done!" +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 +msgid "There was a problem displaying this chart." msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:218 -msgid "That's all! If you still have questions, check out our" +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 +msgid "Sorry, you don't have permission to see this card." msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:223 -msgid "User's Guide" +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 +msgid "Data truncated to {0} rows." msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:223 -msgid "Have fun exploring your data!" +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 +msgid "Could not find visualization" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:226 -msgid "Thanks" +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 +msgid "Could not display this chart with this data." msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:235 -msgid "Save Your Questions" +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 +msgid "No results!" msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:237 -msgid "" -"By the way, you can save your questions so you can refer to them later. " -"Saved Questions can also be put into dashboards or Pulses." +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 +msgid "Still Waiting..." msgstr "" -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:241 -msgid "Sounds good" +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 +msgid "This usually takes an average of {0}." msgstr "" -#: frontend/src/metabase/tutorial/Tutorial.jsx:248 -msgid "Whoops!" +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 +msgid "(This is a bit long for a dashboard)" msgstr "" -#: frontend/src/metabase/tutorial/Tutorial.jsx:249 -msgid "" -"Sorry, it looks like something went wrong. Please try restarting the " -"tutorial in a minute." +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 +msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "" -#: frontend/src/metabase/user/actions.js:34 -msgid "Password updated successfully!" +#: frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.jsx:36 +msgid "Select a field" msgstr "" -#: frontend/src/metabase/user/actions.js:53 -msgid "Account updated successfully!" +#: frontend/src/metabase/visualizations/components/settings/ChartSettingFieldsPicker.jsx:45 +msgid "error" msgstr "" -#: frontend/src/metabase/user/components/SetUserPassword.jsx:107 -msgid "Current password" +#: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:81 +msgid "Label for this range (optional)" msgstr "" -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:137 -msgid "Sign in with Google Email address" +#: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:93 +msgid "Add a range" msgstr "" -#: frontend/src/metabase/user/components/UserSettings.jsx:65 -msgid "User Details" +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 +msgid "Click and drag to change their order" msgstr "" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:23 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:234 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:270 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:299 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:305 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:313 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:321 -#: frontend/src/metabase/visualizations/lib/settings/nested.js:126 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:80 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:85 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:91 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:97 -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:50 -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:56 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:72 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:85 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:98 -msgid "Display" -msgstr "" - -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:275 -msgid "Reset to defaults" -msgstr "" - -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:133 -msgid "unknown map" -msgstr "" - -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 -msgid "No formatting settings" -msgstr "" - -#: frontend/src/metabase/visualizations/components/LeafletGridHeatMap.jsx:26 -msgid "Grid map requires binned longitude/latitude." -msgstr "" - -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 -msgid "more" -msgstr "" - -#: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:101 -msgid "Which fields do you want to use for the X and Y axes?" -msgstr "" - -#: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:103 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:60 -msgid "Choose fields" -msgstr "" - -#: frontend/src/metabase/visualizations/components/PinMap.jsx:204 -msgid "Save as default view" -msgstr "" - -#: frontend/src/metabase/visualizations/components/PinMap.jsx:226 -msgid "Draw box to filter" -msgstr "" - -#: frontend/src/metabase/visualizations/components/PinMap.jsx:226 -msgid "Cancel filter" -msgstr "" - -#: frontend/src/metabase/visualizations/components/PinMap.jsx:47 -msgid "Pin Map" -msgstr "" - -#: frontend/src/metabase/visualizations/components/TableSimple.jsx:253 -msgid "Rows {0}-{1} of {2}" -msgstr "" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 -msgid "There was a problem displaying this chart." -msgstr "" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 -msgid "Sorry, you don't have permission to see this card." -msgstr "" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:189 -msgid "Data truncated to {0} rows." -msgstr "" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:364 -msgid "Could not find visualization" -msgstr "" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:371 -msgid "Could not display this chart with this data." -msgstr "" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:469 -msgid "No results!" -msgstr "" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:490 -msgid "Still Waiting..." -msgstr "" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:493 -msgid "This usually takes an average of {0}." -msgstr "" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:499 -msgid "(This is a bit long for a dashboard)" -msgstr "" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:503 -msgid "This is usually pretty fast but seems to be taking a while right now." -msgstr "" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.jsx:36 -msgid "Select a field" -msgstr "" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingFieldsPicker.jsx:45 -msgid "error" -msgstr "" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:81 -msgid "Label for this range (optional)" -msgstr "" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:93 -msgid "Add a range" -msgstr "" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:126 -msgid "Click and drag to change their order" -msgstr "" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:139 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "" @@ -7478,7 +7589,7 @@ msgid "Highlight the whole row" msgstr "" #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:390 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:132 msgid "Colors" msgstr "" @@ -7527,33 +7638,27 @@ msgstr "" msgid "Update rule" msgstr "" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "" -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "" -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "" -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:75 -msgid "" -"\"{0}\" is an unaggregated field: if it has more than one value at a point " -"on the x-axis, the values will be summed." -msgstr "" - -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:91 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "" -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:96 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "" @@ -7599,10 +7704,14 @@ msgstr "" msgid "Edit Settings" msgstr "" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "" +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "" + #: frontend/src/metabase/visualizations/lib/settings/column.js:178 msgid "Date style" msgstr "" @@ -7635,205 +7744,221 @@ msgstr "" msgid "Time style" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/column.js:299 +#: frontend/src/metabase/visualizations/lib/settings/column.js:300 msgid "Unit of currency" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/column.js:319 +#: frontend/src/metabase/visualizations/lib/settings/column.js:320 msgid "Currency label style" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/column.js:337 +#: frontend/src/metabase/visualizations/lib/settings/column.js:338 msgid "Where to display the unit of currency" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/column.js:357 +#: frontend/src/metabase/visualizations/lib/settings/column.js:358 msgid "Separator style" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/column.js:370 +#: frontend/src/metabase/visualizations/lib/settings/column.js:371 msgid "Minimum number of decimal places" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/column.js:374 +#: frontend/src/metabase/visualizations/lib/settings/column.js:375 msgid "Multiply by a number" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/column.js:381 +#: frontend/src/metabase/visualizations/lib/settings/column.js:382 msgid "Add a prefix" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/column.js:385 +#: frontend/src/metabase/visualizations/lib/settings/column.js:386 msgid "Add a suffix" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:114 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:90 #: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:31 msgid "X-axis" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:140 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:119 msgid "Add a series breakout..." msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:153 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:132 #: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:35 msgid "Y-axis" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:178 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:160 msgid "Add another series..." msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:195 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:177 msgid "Bubble size" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:235 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:219 msgid "Stacking" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:239 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:223 msgid "Don't stack" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:240 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:224 msgid "Stack" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:241 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:225 msgid "Stack - 100%" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:271 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:252 msgid "Stacked chart type" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:275 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:17 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:256 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:276 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:16 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:257 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:300 -msgid "Show goal" +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:306 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:287 msgid "Goal value" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:314 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:295 msgid "Goal label" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:316 -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:51 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:297 +#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:62 msgid "Goal" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:322 -msgid "Show trend line" +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:370 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:403 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:416 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 #: frontend/src/metabase/visualizations/lib/settings/graph.js:443 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:457 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:487 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:371 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:391 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:409 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:410 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:398 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:404 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:417 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:424 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:432 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:488 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:494 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:509 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:495 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:501 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:510 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:516 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "" @@ -7842,7 +7967,7 @@ msgid "Line style" msgstr "" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "" @@ -7851,7 +7976,7 @@ msgid "Curve" msgstr "" #: frontend/src/metabase/visualizations/lib/settings/series.js:73 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:69 +#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:104 msgid "Step" msgstr "" @@ -7894,49 +8019,73 @@ msgstr "" msgid "Right" msgstr "" -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:20 +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:25 +msgid "" +"\"{0}\" is an unaggregated field: if it has more than one value at a point " +"on the x-axis, the values will be summed." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "" +"The query for this chart was run in {0} rather than {1} due to database or " +"driver constraints." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "" + +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "" #: frontend/src/metabase/visualizations/visualizations/ComboChart.jsx:16 -msgid "Line + Bar" +msgid "Combo" msgstr "" #: frontend/src/metabase/visualizations/visualizations/ComboChart.jsx:19 msgid "line and bar chart" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:58 +#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:62 msgid "Which fields do you want to use?" msgstr "" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:32 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:87 +#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:122 msgid "Funnel" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:76 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:76 +#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:111 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:110 msgid "Measure" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:82 +#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:117 msgid "Funnel type" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:88 +#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:123 msgid "Bar chart" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Gauge.jsx:72 +#: frontend/src/metabase/visualizations/visualizations/Gauge.jsx:76 msgid "Gauge visualization requires a number." msgstr "" @@ -7944,149 +8093,149 @@ msgstr "" msgid "Gauge" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Gauge.jsx:104 +#: frontend/src/metabase/visualizations/visualizations/Gauge.jsx:115 msgid "Gauge ranges" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:224 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:230 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:236 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:38 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:39 msgid "Map" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:53 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:57 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:149 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:58 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:104 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:109 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:110 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:126 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:142 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:168 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:172 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:192 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:198 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:210 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:175 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:213 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:290 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:47 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:87 msgid "Object Detail" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:50 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:90 msgid "object" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:312 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:61 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:73 msgid "Which columns do you want to use?" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:44 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:49 msgid "Pie" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:71 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:105 msgid "Dimension" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:81 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:115 msgid "Show legend" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:86 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:120 msgid "Show percentages in legend" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:92 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:126 msgid "Minimum slice percentage" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:146 +#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:161 msgid "Goal met" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:148 +#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:163 msgid "Goal exceeded" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:215 +#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:230 msgid "Goal {0}" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:39 +#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:43 msgid "Progress visualization requires a number." msgstr "" @@ -8095,14 +8244,14 @@ msgid "Progress" msgstr "" #: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:13 -msgid "Row Chart" +msgid "Row" msgstr "" #: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:16 msgid "row chart" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:94 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "" @@ -8114,84 +8263,92 @@ msgstr "" msgid "scatter plot" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:121 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:170 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:52 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:66 msgid "Group by a time field to see how this has changed over time" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:39 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:22 +msgid "Trend" +msgstr "" + +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:46 msgid "Switch positive / negative colors?" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:303 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:369 msgid "Unset" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:78 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 +msgid "Table" +msgstr "" + +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:83 msgid "Pivot the table" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:90 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:95 msgid "Pivot column" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:107 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:126 msgid "Cell column" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:123 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:163 msgid "Visible columns" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:143 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:191 msgid "Conditional Formatting" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:165 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:233 msgid "Column title" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:172 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:240 msgid "Show a mini bar chart" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:183 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:251 msgid "Link" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:187 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:255 msgid "Email link" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:191 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:259 msgid "Image" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:195 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:263 msgid "Automatic" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:200 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:268 msgid "View as link or image" msgstr "" -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:210 +#: frontend/src/metabase/visualizations/visualizations/Table.jsx:278 msgid "Link text" msgstr "" #: frontend/src/metabase/visualizations/visualizations/Text.jsx:167 -msgid "Write here, and use Markdown if you''d like" +msgid "Write here, and use Markdown if you'd like" msgstr "" #: frontend/src/metabase/visualizations/visualizations/Text.jsx:73 @@ -8222,20 +8379,53 @@ msgstr "" msgid "Show background" msgstr "" -#: frontend/src/metabase-lib/lib/Dimension.js:517 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "" -#: frontend/src/metabase-lib/lib/Dimension.js:553 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase-lib/lib/Dimension.js:559 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "" +#: frontend/src/metabase-lib/lib/DimensionOptions.js:129 +msgid "Boolean" +msgstr "" + +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 +#: src/metabase/automagic_dashboards/core.clj +msgid "{0} of {1}" +msgstr "" + +#: frontend/src/metabase-lib/lib/queries/structured/Filter.js:59 +msgid "Unknown Segment" +msgstr "" + +#: frontend/src/metabase-lib/lib/queries/structured/Filter.js:68 +msgid "Unknown Filter" +msgstr "" + +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +msgid "Left outer join" +msgstr "" + +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 +msgid "Right outer join" +msgstr "" + +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 +msgid "Inner join" +msgstr "" + +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 +msgid "Full outer join" +msgstr "" + #: src/metabase/api/alert.clj msgid "" "DELETE /api/alert/:id is deprecated. Instead, change its `archived` value " @@ -8280,7 +8470,7 @@ msgstr "" #: src/metabase/api/card.clj msgid "" -"Card results metadata passed in to API is ISSING. Running query to fetch " +"Card results metadata passed in to API is MISSING. Running query to fetch " "correct metadata." msgstr "" @@ -8294,14 +8484,6 @@ msgstr "" msgid "Invalid field: {0}" msgstr "" -#: src/metabase/api/common.clj -msgid "Invalid value ''{0}'' for ''{1}'': {2}" -msgstr "" - -#: src/metabase/api/common.clj -msgid "must be one of: {0}" -msgstr "" - #: src/metabase/api/common.clj msgid "Invalid Request." msgstr "" @@ -8414,6 +8596,10 @@ msgid "" "via PUT /api/metric/:id." msgstr "" +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "" + #. ...but if we *still* couldn't find a match, throw an Exception, because we don't want people #. trying to inject new params #: src/metabase/api/public.clj @@ -8446,8 +8632,7 @@ msgstr "" #: src/metabase/api/session.clj msgid "" -"Problem connecting to LDAP server, will fall back to local authentication: " -"{0}" +"Problem connecting to LDAP server, will fall back to local authentication" msgstr "" #: src/metabase/api/session.clj @@ -8484,6 +8669,10 @@ msgstr "" msgid "Successfully authenticated Google Auth token for: {0} {1}" msgstr "" +#: src/metabase/api/setup.clj +msgid "Cannot create Database: cannot find driver {0}." +msgstr "" + #: src/metabase/api/setup.clj msgid "Add a database" msgstr "" @@ -8651,10 +8840,14 @@ msgid "When including a limit, an offset must also be included." msgstr "" #. returns `true` if successful -- see JavaDoc -#: src/metabase/api/tiles.clj src/metabase/pulse/render.clj +#: src/metabase/api/tiles.clj src/metabase/pulse/render/sparkline.clj msgid "No appropriate image writer found!" msgstr "" +#: src/metabase/api/tiles.clj +msgid "Query failed" +msgstr "" + #: src/metabase/api/user.clj msgid "" "Value of is_superuser must correspond to presence of Admin group ID in " @@ -8689,10 +8882,6 @@ msgstr "" msgid "Unexpected output in async API response" msgstr "" -#: src/metabase/async/api_response.clj -msgid "starting streaming response" -msgstr "" - #: src/metabase/async/api_response.clj msgid "Response not ready, writing one byte & sleeping..." msgstr "" @@ -8713,41 +8902,36 @@ msgstr "" msgid "Input channel unexpectedly closed." msgstr "" -#: src/metabase/async/semaphore_channel.clj -msgid "f finished, permit will be returned" -msgstr "" - -#: src/metabase/async/semaphore_channel.clj -msgid "request canceled, permit will be returned" +#: src/metabase/async/api_response.clj +msgid "starting streaming response" msgstr "" -#: src/metabase/async/semaphore_channel.clj -msgid "Unexpected error attempting to run function after obtaining permit" +#: src/metabase/async/util.clj +msgid "Output channel closed, will skip running {0}." msgstr "" -#: src/metabase/async/semaphore_channel.clj -msgid "Not running pending function call: output channel already closed." +#: src/metabase/async/util.clj +msgid "Running {0} on separate thread..." msgstr "" -#: src/metabase/async/semaphore_channel.clj -msgid "" -"Current thread already has a permit for {0}, will not wait to acquire another" +#: src/metabase/async/util.clj +msgid "Warning: {0} returned `nil`" msgstr "" #: src/metabase/async/util.clj -msgid "Output channel closed, will skip running {0}." +msgid "Unexpected error writing result to output channel: already closed" msgstr "" #: src/metabase/async/util.clj -msgid "Running {0} on separate thread..." +msgid "Caught error running {0}" msgstr "" #: src/metabase/async/util.clj -msgid "Caught error running {0}" +msgid "Unexpected error writing exception to output channel: already closed" msgstr "" #: src/metabase/async/util.clj -msgid "Request canceled, canceling future" +msgid "Request canceled, canceling future." msgstr "" #: src/metabase/automagic_dashboards/comparison.clj @@ -8812,14 +8996,6 @@ msgstr "" msgid "{0} and {1}" msgstr "" -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} of {1}" -msgstr "" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} by {1}" -msgstr "" - #: src/metabase/automagic_dashboards/core.clj msgid "{0} in the {1} segment" msgstr "" @@ -8828,10 +9004,6 @@ msgstr "" msgid "{0} segment" msgstr "" -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} metric" -msgstr "" - #: src/metabase/automagic_dashboards/core.clj msgid "{0} field" msgstr "" @@ -8992,8 +9164,20 @@ msgstr "" msgid "Valid card dimension references" msgstr "" -#: src/metabase/automagic_dashboards/rules.clj -msgid "Error parsing {0}:n{1}" +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Metabase can only transfer data from H2 to Postgres or MySQL/MariaDB." +msgstr "" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" msgstr "" #: src/metabase/cmd/reset_password.clj @@ -9033,7 +9217,7 @@ msgid "Starting Metabase version {0} ..." msgstr "" #: src/metabase/core.clj -msgid "System timezone is ''{0}'' ..." +msgid "System info:n {0}" msgstr "" #. startup database. validates connection & runs any necessary migrations @@ -9079,7 +9263,7 @@ msgstr "" #: src/metabase/db.clj msgid "" -"WARNING: Using Metabase with an H2 application database is not recomended " +"WARNING: Using Metabase with an H2 application database is not recommended " "for production deployments." msgstr "" @@ -9095,10 +9279,8 @@ msgid "" "file regularly." msgstr "" -#: src/metabase/db.clj -msgid "" -"See https://metabase.com/docs/latest/operations-guide/start.html#migrating-" -"from-using-the-h2-database-to-mysql-or-postgres for more information." +#: src/metabase/db.clj src/metabase/util/encryption.clj +msgid "For more information, see" msgstr "" #: src/metabase/db.clj @@ -9163,6 +9345,10 @@ msgstr "" msgid "Database Migrations Current ... " msgstr "" +#: src/metabase/db.clj +msgid "Database setup" +msgstr "" + #: src/metabase/db/migrations.clj msgid "Error adding legacy SQL directive to BigQuery saved Question" msgstr "" @@ -9183,7 +9369,7 @@ msgstr "" #. 4. move everything not in this Collection to a new Collection #: src/metabase/db/migrations.clj msgid "" -"Moving instances of {0} that aren't in a Collection to {1} Collection {2}" +"Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" msgstr "" #: src/metabase/driver.clj @@ -9197,67 +9383,31 @@ msgid "" msgstr "" #: src/metabase/driver.clj -msgid "Loading driver {0} {1}" +msgid "Invalid driver feature: {0}" msgstr "" -#: src/metabase/driver.clj -msgid "Load driver {0}" +#: src/metabase/driver/common.clj +msgid "Hmm, we couldn''t connect to the database." msgstr "" -#: src/metabase/driver.clj -msgid "Driver not registered after loading: {0}" +#: src/metabase/driver/common.clj +msgid "Make sure your host and port settings are correct" msgstr "" -#: src/metabase/driver.clj -msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." +#: src/metabase/driver/common.clj +msgid "We couldn''t connect to the ssh tunnel host." msgstr "" -#: src/metabase/driver.clj -msgid "Registered abstract driver {0}" +#: src/metabase/driver/common.clj +msgid "Check the username, password." msgstr "" -#: src/metabase/driver.clj -msgid "Registered driver {0}" +#: src/metabase/driver/common.clj +msgid "Check the hostname and port." msgstr "" -#: src/metabase/driver.clj -msgid "(parents: {0})" -msgstr "" - -#: src/metabase/driver.clj -msgid "Initializing driver {0}..." -msgstr "" - -#: src/metabase/driver.clj -msgid "Reason:" -msgstr "" - -#: src/metabase/driver.clj -msgid "Invalid driver feature: {0}" -msgstr "" - -#: src/metabase/driver/common.clj -msgid "Hmm, we couldn''t connect to the database." -msgstr "" - -#: src/metabase/driver/common.clj -msgid "Make sure your host and port settings are correct" -msgstr "" - -#: src/metabase/driver/common.clj -msgid "We couldn''t connect to the ssh tunnel host." -msgstr "" - -#: src/metabase/driver/common.clj -msgid "Check the username, password." -msgstr "" - -#: src/metabase/driver/common.clj -msgid "Check the hostname and port." -msgstr "" - -#: src/metabase/driver/common.clj -msgid "Looks like the database name is incorrect." +#: src/metabase/driver/common.clj +msgid "Looks like the database name is incorrect." msgstr "" #: src/metabase/driver/common.clj @@ -9324,13 +9474,36 @@ msgstr "" msgid "Unable to parse date string ''{0}'' for database engine ''{1}''" msgstr "" -#. all-NULL columns in DBs like Mongo w/o explicit types #: src/metabase/driver/common.clj msgid "" "Don''t know how to map class ''{0}'' to a Field base_type, falling back to :" "type/*." msgstr "" +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "" + #: src/metabase/driver/h2.clj msgid "Connection String" msgstr "" @@ -9345,24 +9518,105 @@ msgid "" "user is forbidden." msgstr "" -#: src/metabase/driver/sql/query_processor.clj -msgid "HoneySQL Form:" +#: src/metabase/driver/impl.clj +msgid "Loading driver {0} {1}" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Load driver {0}" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Driver not registered after loading: {0}" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Abstract drivers cannot derive from concrete parent drivers." +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Registered abstract driver {0}" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Registered driver {0}" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "(parents: {0})" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Initializing driver {0}..." +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Reason:" +msgstr "" + +#: src/metabase/driver/mysql.clj +msgid "" +"You may need to add 'trustServerCertificate=true' to the additional " +"connection options to connect with SSL." +msgstr "" + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" msgstr "" #: src/metabase/driver/sql/query_processor.clj msgid "Invalid HoneySQL form:" msgstr "" +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "" + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "" + #: src/metabase/driver/sql_jdbc/connection.clj msgid "Closing old connection pool for database {0} ..." msgstr "" #: src/metabase/driver/sql_jdbc/execute.clj -msgid "Unable to parse date ''{0}''" +msgid "Client closed connection, canceling query" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" msgstr "" #: src/metabase/driver/sql_jdbc/execute.clj -msgid "Client closed connection, cancelling query" +msgid "" +"Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" msgstr "" #: src/metabase/driver/sql_jdbc/execute.clj @@ -9370,7 +9624,11 @@ msgid "Setting timezone with statement: {0}" msgstr "" #: src/metabase/driver/sql_jdbc/execute.clj -msgid "Failed to set timezone:" +msgid "Failed to set timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/util.clj +msgid "Database connection error" msgstr "" #: src/metabase/driver/util.clj @@ -9492,6 +9750,10 @@ msgstr "" msgid "Failed to process sync-database event." msgstr "" +#: src/metabase/integrations/common.clj +msgid "Error adding User {0} to Group {1}" +msgstr "" + #: src/metabase/integrations/ldap.clj msgid "Enable LDAP authentication." msgstr "" @@ -9552,43 +9814,21 @@ msgid "" "''memberOf'' overlay. (Will be searched recursively)" msgstr "" -#. Should be in the form: {"cn=Some Group,dc=...": [1, 2, 3]} where keys are LDAP groups and values are lists of MB groups IDs +#. Should be in the form: {"cn=Some Group,dc=...": [1, 2, 3]} where keys are LDAP group DNs and values are lists of MB groups IDs #: src/metabase/integrations/ldap.clj msgid "JSON containing LDAP to Metabase group mappings." msgstr "" +#: src/metabase/integrations/ldap.clj +msgid "{0} is not a valid DN." +msgstr "" + #. Define a setting which captures our Slack api token #: src/metabase/integrations/slack.clj msgid "" "Slack API bearer token obtained from https://api.slack.com/web#authentication" msgstr "" -#: src/metabase/mbql/normalize.clj -msgid "Illegal filter clause: {0}" -msgstr "" - -#: src/metabase/mbql/normalize.clj -msgid "Invalid clause:" -msgstr "" - -#: src/metabase/mbql/util.clj -msgid "" -"Error: query''s source query has not been resolved. You probably need to " -"`preprocess` the query first." -msgstr "" - -#: src/metabase/mbql/util.clj -msgid "Bad nested-query-level: query does not have a source query" -msgstr "" - -#: src/metabase/mbql/util.clj -msgid "No expression named ''{0}''" -msgstr "" - -#: src/metabase/mbql/util.clj -msgid "No aggregation at index: {0}" -msgstr "" - #: src/metabase/metabot.clj msgid "" "Enable MetaBot, which lets you search for and view your saved questions " @@ -9701,16 +9941,16 @@ msgstr "" msgid "Request canceled before finishing." msgstr "" -#: src/metabase/middleware/json.clj -msgid "Metabase only supports JSON requests." +#: src/metabase/middleware/log.clj +msgid "Error logging API request" msgstr "" -#: src/metabase/middleware/json.clj -msgid "Make sure you set a 'Content-Type: application/json' header." +#: src/metabase/middleware/misc.clj +msgid "Setting Metabase site URL to {0}" msgstr "" #: src/metabase/middleware/misc.clj -msgid "Setting Metabase site URL to {0}" +msgid "Failed to set site-url" msgstr "" #: src/metabase/middleware/security.clj @@ -9730,6 +9970,7 @@ msgid "Cannot save Question: source query has circular references." msgstr "" #: src/metabase/models/card.clj src/metabase/models/query/permissions.clj +#: src/metabase/query_processor/middleware/fetch_source_query.clj #: src/metabase/query_processor/middleware/permissions.clj msgid "Card {0} does not exist." msgstr "" @@ -9822,6 +10063,10 @@ msgstr "" msgid "Error unscheduling tasks for DB." msgstr "" +#: src/metabase/models/database.clj +msgid "Error destroying thread pool for DB." +msgstr "" + #: src/metabase/models/database.clj msgid "{0} Database ''{1}'' sync/analyze schedules have changed!" msgstr "" @@ -9874,6 +10119,21 @@ msgid "" "Demand FieldValues updating." msgstr "" +#: src/metabase/models/humanization.clj +msgid "Updating display name for {0} ''{1}'': ''{2}'' -> ''{3}''" +msgstr "" + +#: src/metabase/models/humanization.clj +msgid "Invalid humanization strategy ''{0}''. Valid strategies are: {1}" +msgstr "" + +#. now rehumanize all the Tables and Fields using the new strategy. +#. TODO: Should we do this in a background thread because it is potentially slow? +#: src/metabase/models/humanization.clj +msgid "" +"Changing Table & Field names humanization strategy from ''{0}'' to ''{1}''" +msgstr "" + #: src/metabase/models/humanization.clj msgid "" "Metabase can attempt to transform your table and field names into more " @@ -9891,6 +10151,10 @@ msgstr "" msgid "Do you want us to take a guess?" msgstr "" +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "" + #: src/metabase/models/interface.clj msgid "Unable to normalize:" msgstr "" @@ -10078,16 +10342,16 @@ msgstr "" msgid "Refreshing Settings cache..." msgstr "" -#: src/metabase/models/user.clj -msgid "Adding User {0} to All Users permissions group..." +#: src/metabase/models/task_history.clj src/metabase/sync/util.clj +msgid "Error saving task history" msgstr "" #: src/metabase/models/user.clj -msgid "Adding User {0} to Admin permissions group..." +msgid "Adding User {0} to All Users permissions group..." msgstr "" #: src/metabase/models/user.clj -msgid "value must be a map with each value either a string or number." +msgid "Adding User {0} to Admin permissions group..." msgstr "" #: src/metabase/plugins.clj @@ -10122,8 +10386,8 @@ msgstr "" #: src/metabase/plugins.clj msgid "" -"spark-deps.jar is no longer needed by Metabase 1.0+. You can delete it from " -"the plugins directory." +"spark-deps.jar is no longer needed by Metabase 0.32.0+. You can delete it " +"from the plugins directory." msgstr "" #: src/metabase/plugins.clj @@ -10139,17 +10403,11 @@ msgid "Using Clojure base loader as shared context classloader: {0}" msgstr "" #: src/metabase/plugins/classloader.clj -msgid "Setting current thread context classloader to shared classloader {0}..." +msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "" -#. it's important that we deref the promise again here instead of using the one we just created because it is -#. possible thru a race condition that somebody else delivered the promise before we did; in that case, -#. Clojure ignores subsequent calls to `deliver`. Dereffing the promise guarantees that we'll get the actual -#. value of it rather than one that ends up getting discarded #: src/metabase/plugins/classloader.clj -msgid "" -"Setting current thread context classloader to NEWLY CREATED classloader " -"{0}..." +msgid "Setting current thread context classloader to shared classloader {0}..." msgstr "" #: src/metabase/plugins/classloader.clj @@ -10186,14 +10444,6 @@ msgstr "" msgid "Plugins with unsatisfied deps: {0}" msgstr "" -#: src/metabase/plugins/files.clj -msgid "Extract file {0} -> {1}" -msgstr "" - -#: src/metabase/plugins/files.clj -msgid "Resource does not exist." -msgstr "" - #: src/metabase/plugins/init_steps.clj msgid "Loading plugin namespace {0}..." msgstr "" @@ -10248,12 +10498,21 @@ msgstr "" msgid "The name used for this instance of Metabase." msgstr "" +#: src/metabase/public_settings.clj +msgid "Invalid site URL: {0}" +msgstr "" + #: src/metabase/public_settings.clj msgid "" "The base URL of this Metabase instance, e.g. \"http://metabase.my-company.com" "\"." msgstr "" +#: src/metabase/public_settings.clj +msgid "" +"site-url is invalid; returning nil for now. Will be reset on next request." +msgstr "" + #: src/metabase/public_settings.clj msgid "The default language for this Metabase instance." msgstr "" @@ -10359,6 +10618,33 @@ msgstr "" msgid "Allow users to explore data using X-rays" msgstr "" +#: src/metabase/public_settings.clj +msgid "" +"Whether or not to display data on the homepage. Admins might turn this off " +"in order to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "" +"Whether or not to display x-ray suggestions on the homepage. They will also " +"be hidden if any dashboards are pinned. Admins might hide this to direct " +"users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "" +"Identify the source of HTTP requests by this header's value, instead of its " +"remote address." +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "" + #. attempt to query the metastore API about the status of this token. If the request doesn't complete in a #. reasonable amount of time throw a timeout exception #: src/metabase/public_settings/metastore.clj @@ -10414,59 +10700,59 @@ msgid "Error running query for Card {0}" msgstr "" #: src/metabase/pulse.clj -msgid "Unable to compare results to goal for alert." +msgid "reached its goal" msgstr "" #: src/metabase/pulse.clj -msgid "Question ID is ''{0}'' with visualization settings ''{1}''" +msgid "gone below its goal" msgstr "" #: src/metabase/pulse.clj -msgid "Unrecognized alert with condition ''{0}''" +msgid "Unable to compare results to goal for alert." msgstr "" #: src/metabase/pulse.clj -msgid "Unrecognized channel type {0}" +msgid "Question ID is ''{0}'' with visualization settings ''{1}''" msgstr "" #: src/metabase/pulse.clj -msgid "Error sending notification!" +msgid "Unrecognized alert with condition ''{0}''" msgstr "" -#: src/metabase/pulse/color.clj -msgid "Can't find JS color selector at ''{0}''" +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" msgstr "" -#: src/metabase/pulse/render.clj -msgid "Last week" +#: src/metabase/pulse.clj +msgid "Pulse: {0}" msgstr "" -#: src/metabase/pulse/render.clj -msgid "This week" +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" msgstr "" -#: src/metabase/pulse/render.clj -msgid "Last month" +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" msgstr "" -#: src/metabase/pulse/render.clj -msgid "This month" +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" msgstr "" -#: src/metabase/pulse/render.clj -msgid "Last quarter" +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" msgstr "" -#: src/metabase/pulse/render.clj -msgid "This quarter" +#: src/metabase/pulse.clj +msgid "Alert: {0}" msgstr "" -#: src/metabase/pulse/render.clj -msgid "Last year" +#: src/metabase/pulse.clj +msgid "Unrecognized channel type {0}" msgstr "" -#: src/metabase/pulse/render.clj -msgid "This year" +#: src/metabase/pulse.clj +msgid "Error sending notification!" msgstr "" #: src/metabase/pulse/render.clj @@ -10477,71 +10763,272 @@ msgstr "" msgid "Pulse card render error" msgstr "" -#: src/metabase/query_processor.clj -msgid "Error preprocessing query" +#: src/metabase/pulse/render/body.clj +msgid "More results have been included as a file attachment" msgstr "" -#: src/metabase/query_processor.clj -msgid "No native form returned." +#: src/metabase/pulse/render/body.clj +msgid "This question has been included as a file attachment" msgstr "" -#: src/metabase/query_processor.clj -msgid "Invalid response from database driver. No :status provided." +#: src/metabase/pulse/render/body.clj +msgid "We were unable to display this Pulse." msgstr "" -#: src/metabase/query_processor.clj -msgid "General error" +#: src/metabase/pulse/render/body.clj +msgid "Please view this card in Metabase." msgstr "" -#: src/metabase/query_processor.clj -msgid "Missing query hash!" +#: src/metabase/pulse/render/body.clj +msgid "An error occurred while displaying this card." msgstr "" -#: src/metabase/query_processor.clj -msgid "Query failure" +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" msgstr "" -#: src/metabase/query_processor/async.clj -msgid "Maximum number of simultaneous queries to allow per connected Database." +#: src/metabase/pulse/render/datetime.clj +msgid "This week" msgstr "" -#: src/metabase/query_processor/async.clj -msgid "Error running query to determine Card result metadata:" +#: src/metabase/pulse/render/datetime.clj +msgid "Last week" msgstr "" -#: src/metabase/query_processor/middleware/add_implicit_clauses.clj -msgid "Table ''{0}'' has no Fields associated with it." +#: src/metabase/pulse/render/datetime.clj +msgid "This month" msgstr "" -#. we should never reach this if our patterns are written right so this is more to catch code mistakes than -#. something the user should expect to see -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Don't know how to get information about Field:" +#: src/metabase/pulse/render/datetime.clj +msgid "Last month" msgstr "" -#: src/metabase/query_processor/middleware/annotate.clj -msgid "*driver* is unbound." +#: src/metabase/pulse/render/datetime.clj +msgid "This quarter" msgstr "" -#: src/metabase/query_processor/middleware/annotate.clj -msgid "" -"Query processor error: mismatched number of columns in query and results." +#: src/metabase/pulse/render/datetime.clj +msgid "Last quarter" msgstr "" -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Expected {0} fields, got {1}" +#: src/metabase/pulse/render/datetime.clj +msgid "This year" msgstr "" -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Expected: {0}" +#: src/metabase/pulse/render/datetime.clj +msgid "Last year" msgstr "" -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Actual: {0}" +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "" +"FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping " +"to format them as such?" msgstr "" -#: src/metabase/query_processor/middleware/binning.clj -msgid "Unable to bin Field without a min/max value" +#: src/metabase/query_processor.clj +msgid "Error preprocessing query" +msgstr "" + +#: src/metabase/query_processor.clj +msgid "Infinite loop detected: recursively preprocessed query {0} times." +msgstr "" + +#: src/metabase/query_processor.clj +msgid "Can only determine expected columns for MBQL queries." +msgstr "" + +#: src/metabase/query_processor.clj +msgid "No native form returned." +msgstr "" + +#: src/metabase/query_processor/async.clj +msgid "Error running query to determine Card result metadata:" +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_clauses.clj +msgid "" +"Warning: cannot determine fields for an explicit `source-query` unless you " +"also include `source-metadata`." +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_clauses.clj +msgid "Table ''{0}'' has no Fields associated with it." +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "" +"Cannot resolve {0}: Field does not exist, or its Table belongs to a " +"different Database." +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "" +"Cannot resolve :field-literal inside :fk-> unless inside join with explicit :" +"alias." +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "Cannot find Table ID for {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "" +"No matching info found for join against Table {0} ''{1}'' on Field {2} " +"''{3}'' via FK {4} ''{5}''" +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "Could not resolve {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "Invalid fk-> clause: nowhere to add corresponding join." +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "{0} driver does not support foreign keys." +msgstr "" + +#: src/metabase/query_processor/middleware/add_source_metadata.clj +msgid "" +"Cannot infer `:source-metadata` for source query with native source query " +"without source metadata." +msgstr "" + +#: src/metabase/query_processor/middleware/add_source_metadata.clj +msgid "Error determining expected columns for query" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "" +"Query processor error: number of columns returned by driver does not match " +"results." +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Expected {0} columns, but first row of resuls has {1} columns." +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "No expression named {0} found. Found: {1}" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "*driver* is unbound." +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Distinct values of {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Average of {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Sum of {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "SD of {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Min of {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Max of {0}" +msgstr "" + +#. until we have a way to generate good names for filters we'll just have to say 'matching condition' for now +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Sum of {0} matching condition" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Share of rows matching condition" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Count of rows matching condition" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "" +"Query processor error: mismatched number of columns in query and results." +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Expected {0} fields, got {1}" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Expected: {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Actual: {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Request already canceled, will not run synchronous QP code." +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Unexpectedly got `nil` Query Processor response." +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Got InterruptedException. Canceling query." +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "" +"Unhandled exception, expected `catch-exceptions` middleware to handle it." +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/async_wait.clj +msgid "Maximum number of simultaneous queries to allow per connected Database." +msgstr "" + +#: src/metabase/query_processor/middleware/async_wait.clj +msgid "Creating new query thread pool for Database {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/async_wait.clj +msgid "Destroying query thread pool for Database {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/async_wait.clj +msgid "Request canceled, canceling pending query" +msgstr "" + +#: src/metabase/query_processor/middleware/binning.clj +msgid "Unable to bin Field without a min/max value" +msgstr "" + +#: src/metabase/query_processor/middleware/binning.clj +msgid "Cannot update binned field: query is missing source-metadata" +msgstr "" + +#: src/metabase/query_processor/middleware/binning.clj +msgid "" +"Cannot update binned field: could not find matching source metadata for " +"Field ''{0}''" +msgstr "" + +#: src/metabase/query_processor/middleware/cache.clj +msgid "Using query processor cache backend: {0}" msgstr "" #: src/metabase/query_processor/middleware/check_features.clj @@ -10552,6 +11039,10 @@ msgstr "" msgid "Segment {0} does not exist, or is invalid." msgstr "" +#: src/metabase/query_processor/middleware/expand_macros.clj +msgid "Invalid metric: {0} reason: {1}" +msgstr "" + #: src/metabase/query_processor/middleware/expand_macros.clj msgid "Metric {0} does not exist, or is invalid." msgstr "" @@ -10568,40 +11059,63 @@ msgstr "" msgid "Fetched source query from Card {0}:" msgstr "" +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "" + #: src/metabase/query_processor/middleware/mbql_to_native.clj msgid "Error transforming MBQL query to native:" msgstr "" -#: src/metabase/query_processor/middleware/parameters/sql.clj -msgid "''{0}'' is a required param." +#: src/metabase/query_processor/middleware/permissions.clj +msgid "You do not have permissions to view Card {0}." +msgstr "" + +#: src/metabase/query_processor/middleware/permissions.clj +msgid "You do not have permissions to run this query." msgstr "" -#: src/metabase/query_processor/middleware/parameters/sql.clj -msgid "Can't find field with ID: {0}" +#: src/metabase/query_processor/middleware/process_userland_query.clj +msgid "Unknown error" msgstr "" -#: src/metabase/query_processor/middleware/parameters/sql.clj -msgid "Found ''{0}'' with no terminating ''{1}'' in query ''{2}''" +#: src/metabase/query_processor/middleware/process_userland_query.clj +msgid "Unexpected nil response from query processor." msgstr "" -#: src/metabase/query_processor/middleware/parameters/sql.clj -msgid "Unable to substitute ''{0}'': param not specified.nFound: {1}" +#: src/metabase/query_processor/middleware/process_userland_query.clj +msgid "Invalid response from database driver. No :status provided." msgstr "" -#: src/metabase/query_processor/middleware/permissions.clj -msgid "You do not have permissions to view Card {0}." +#: src/metabase/query_processor/middleware/process_userland_query.clj +msgid "Query canceled" msgstr "" -#: src/metabase/query_processor/middleware/permissions.clj -msgid "You do not have permissions to run this query." +#: src/metabase/query_processor/middleware/process_userland_query.clj +msgid "Query failure" msgstr "" -#: src/metabase/query_processor/middleware/resolve_database.clj -msgid "Database {0} does not exist." +#: src/metabase/query_processor/middleware/resolve_driver.clj +msgid "Unable to resolve driver for query: missing or invalid `:database` ID." +msgstr "" + +#: src/metabase/query_processor/middleware/resolve_driver.clj +msgid "Unable to resolve driver for query: Database {0} does not exist." +msgstr "" + +#: src/metabase/query_processor/middleware/resolve_joins.clj +msgid "" +"Cannot use :fields :all in join against source query unless it has :source-" +"metadata." +msgstr "" + +#: src/metabase/query_processor/middleware/resolve_joins.clj +msgid "" +"Bad :joined-field clause: join with alias ''{0}'' does not exist. Found: {1}" msgstr "" #: src/metabase/query_processor/middleware/resolve_source_table.clj -msgid "Cannot run query: could not find source table {0}." +msgid "Invalid :source-table ''{0}'': should be resolved to a Table ID by now." msgstr "" #: src/metabase/query_processor/middleware/results_metadata.clj @@ -10612,6 +11126,31 @@ msgstr "" msgid "Error: Query Processor store is not initialized." msgstr "" +#: src/metabase/query_processor/store.clj +msgid "Cannot store Tables or Fields before Database is stored." +msgstr "" + +#: src/metabase/query_processor/store.clj +msgid "" +"Attempting to fetch second Database. Queries can only reference one Database." +msgstr "" + +#: src/metabase/query_processor/store.clj +msgid "Database {0} does not exist." +msgstr "" + +#: src/metabase/query_processor/store.clj +msgid "" +"Failed to fetch Table {0}: Table does not exist, or belongs to a different " +"Database." +msgstr "" + +#: src/metabase/query_processor/store.clj +msgid "" +"Failed to fetch Field {0}: Field does not exist, or belongs to a different " +"Database." +msgstr "" + #: src/metabase/query_processor/store.clj msgid "Error: Database is not present in the Query Processor Store." msgstr "" @@ -10624,6 +11163,28 @@ msgstr "" msgid "Error: Field {0} is not present in the Query Processor Store." msgstr "" +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "" + +#: src/metabase/routes/index.clj +msgid "" +"Failed to load template ''{0}''. Did you remember to build the Metabase " +"frontend?" +msgstr "" + +#: src/metabase/sample_data.clj +msgid "Sample dataset DB file ''{0}'' cannot be found." +msgstr "" + +#: src/metabase/sample_data.clj +msgid "Loading sample dataset..." +msgstr "" + +#: src/metabase/sample_data.clj +msgid "Failed to load sample dataset" +msgstr "" + #: src/metabase/server.clj msgid "Launching Embedded Jetty Webserver with config:" msgstr "" @@ -10645,6 +11206,10 @@ msgstr "" msgid "Total number of tables classified {0}, {1} updated" msgstr "" +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "" + #: src/metabase/sync/analyze/fingerprint/fingerprinters.clj msgid "Error generating fingerprint for {0}" msgstr "" @@ -10711,6 +11276,18 @@ msgstr "" msgid "Comment has been added for {0}." msgstr "" +#: src/metabase/sync/sync_metadata/tables.clj +msgid "Found new tables:" +msgstr "" + +#: src/metabase/sync/sync_metadata/tables.clj +msgid "Marking tables as inactive:" +msgstr "" + +#: src/metabase/sync/sync_metadata/tables.clj +msgid "Updating description for tables:" +msgstr "" + #: src/metabase/sync/util.clj msgid "{0} Database {1} ''{2}''" msgstr "" @@ -10751,14 +11328,6 @@ msgstr "" msgid "Completed step ''{0}''" msgstr "" -#: src/metabase/task.clj -msgid "Stopping Quartz Scheduler {0}" -msgstr "" - -#: src/metabase/task.clj -msgid "Starting Quartz Scheduler {0}" -msgstr "" - #: src/metabase/task.clj msgid "Loading tasks namespace:" msgstr "" @@ -10777,10 +11346,22 @@ msgstr "" msgid "Error initializing task {0}" msgstr "" +#: src/metabase/task.clj +msgid "Rescheduling job {0}" +msgstr "" + +#: src/metabase/task.clj +msgid "Error rescheduling job" +msgstr "" + #: src/metabase/task.clj msgid "Job already exists:" msgstr "" +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "" + #: src/metabase/task/follow_up_emails.clj msgid "Problem sending abandonment email" msgstr "" @@ -10801,12 +11382,20 @@ msgstr "" msgid "Sending scheduled pulses..." msgstr "" +#: src/metabase/task/send_pulses.clj +msgid "Starting Pulse Execution: {0}" +msgstr "" + +#: src/metabase/task/send_pulses.clj +msgid "Finished Pulse Execution: {0}" +msgstr "" + #: src/metabase/task/send_pulses.clj msgid "SendPulses task failed" msgstr "" #: src/metabase/task/sync_databases.clj -msgid "Failed to scheduler tasks for Database {0}" +msgid "Failed to schedule tasks for Database {0}" msgstr "" #: src/metabase/task/task_history_cleanup.clj @@ -10829,6 +11418,10 @@ msgstr "" msgid "Error fetching version info" msgstr "" +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "" + #: src/metabase/util.clj msgid "Loading Metabase..." msgstr "" @@ -10838,23 +11431,23 @@ msgid "Maximum memory available to JVM: {0}" msgstr "" #: src/metabase/util.clj -msgid "Timed out after {0} milliseconds." +msgid "Timed out after {0}" msgstr "" #: src/metabase/util.clj msgid "Not something with an ID: {0}" msgstr "" -#: src/metabase/util/date.clj -msgid "Possible timezone conflict found on database {0}." +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" msgstr "" -#: src/metabase/util/date.clj -msgid "JVM timezone is {0} and detected database timezone is {1}." +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" msgstr "" -#: src/metabase/util/date.clj -msgid "Configure a report timezone to ensure proper date and time conversions." +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" msgstr "" #: src/metabase/util/embed.clj @@ -10882,7 +11475,7 @@ msgid "The embedding secret key has not been set." msgstr "" #: src/metabase/util/embed.clj -msgid "Token is missing value for keypath" +msgid "Token is missing value for keypath {0}" msgstr "" #: src/metabase/util/encryption.clj @@ -10897,16 +11490,24 @@ msgstr "" msgid "Saved credentials encryption is DISABLED for this Metabase instance." msgstr "" -#: src/metabase/util/encryption.clj -msgid "For more information, see" -msgstr "" - #: src/metabase/util/encryption.clj msgid "" "Cannot decrypt encrypted string. Have you changed or forgot to set " "MB_ENCRYPTION_SECRET_KEY?" msgstr "" +#: src/metabase/util/files.clj +msgid "Extract file {0} -> {1}" +msgstr "" + +#: src/metabase/util/files.clj +msgid "Failed to copy file" +msgstr "" + +#: src/metabase/util/files.clj +msgid "Resource does not exist." +msgstr "" + #: src/metabase/util/schema.clj msgid "value must be an integer." msgstr "" @@ -10947,6 +11548,10 @@ msgstr "" msgid "The array cannot be empty." msgstr "" +#: src/metabase/util/schema.clj +msgid "All elements must be distinct." +msgstr "" + #: src/metabase/util/schema.clj msgid "value must be a non-blank string." msgstr "" @@ -11051,8 +11656,16 @@ msgstr "" msgid "value must be a valid embedding params map." msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "New users per state in the last 30 days" +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "" + +#: src/metabase/util/yaml.clj +msgid "Error parsing {0}:n{1}" +msgstr "" + +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "How this metric is distributed across different categories" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml @@ -11060,150 +11673,148 @@ msgid "[[this.short-name]] per country" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateDate]] by month of the year" +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "Total [[this.short-name]]" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Users per source" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Days of the month when [[this.short-name]] joined" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "The top external pages that brought users to your site" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Transactions in the last 30 days" msgstr "" -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "How [[this]] is distributed and more." +#: resources/automagic_dashboards/table/example.yaml +msgid "Total income by month" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "The [[this]] over time" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "[[Singleton]]" msgstr "" -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "User growth" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Events by coordinates" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Whether or not there are any patterns to when they happen." +#: resources/automagic_dashboards/table/example.yaml +msgid "Distribution by coordinates" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Users per state" +#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml +msgid "Transactions per country" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Here's a quick look at your [[this]]" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Average income per transaction" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "Transactions per source" msgstr "" -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "How some of the numbers in [[this]] relate to each other" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Sales per month" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by hour of the day" +msgid "These are the same for all your [[this.short-name]]" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml #: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per country" +msgid "Where these transactions happened" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by month of the year" +#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml +msgid "Sales vs. rating" msgstr "" +#: resources/automagic_dashboards/field/DateTime.yaml +#: resources/automagic_dashboards/field/State.yaml +#: resources/automagic_dashboards/field/Number.yaml +#: resources/automagic_dashboards/field/Country.yaml +#: resources/automagic_dashboards/field/GenericField.yaml #: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by hour of the day" +msgid "How they compare by distribution" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "A look at the [[this]]" +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "New [[this.short-name]] in the last 30 days" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Bottom 5 per category" +#: resources/automagic_dashboards/table/example.yaml +msgid "Sales by source" msgstr "" #: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Number of orders" +msgid "Average discount %" msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Event growth" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Quarters when [[this.short-name]] joined" msgstr "" -#: resources/automagic_dashboards/table/example/indepth.yaml -msgid "Total [[GenericTable]]" +#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml +msgid "Transactions per state" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Income growth" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Join date by month of the year" msgstr "" #: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Top 10 countries by sales in the last 30 days" +msgid "Top 10 countries by sales" msgstr "" -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[this]] by month of the year" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "New users per source in the last 30" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions per day of the week" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "New users per source in the last 30 days" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Where you've acquired your users" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "[[this]] per [[GenericCategorySmall]] over time" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions by device type" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Events in the last 30 days" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Transactions per country" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Total transactions" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by quarter of the year" -msgstr "" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per hour of the day" +msgid "Quarters when [[this.short-name]] were added" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[Singleton]]" +#: resources/automagic_dashboards/comparison/State.yaml +#: resources/automagic_dashboards/comparison/FK.yaml +#: resources/automagic_dashboards/comparison/Country.yaml +#: resources/automagic_dashboards/comparison/GenericField.yaml +msgid "How [[this]] is distributed and more." msgstr "" -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Country.yaml -msgid "Top 5 [[this]]" +#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml +msgid "Income per country" msgstr "" -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Country.yaml -msgid "Bottom 5 [[this]]" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Where most of your sessions originate from" msgstr "" #: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by day of the month" +msgid "A look at your events over time and by several categories." msgstr "" -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per [[GenericCategoryLarge]]" +#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml +msgid "Average quantity per country" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How it's distributed across time and other categories." +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "Per [[GenericCategoryMedium]]" msgstr "" #: resources/automagic_dashboards/field/DateTime.yaml @@ -11211,559 +11822,575 @@ msgstr "" #: resources/automagic_dashboards/field/Number.yaml #: resources/automagic_dashboards/field/Country.yaml #: resources/automagic_dashboards/field/GenericField.yaml -msgid "Null values" +msgid "How the [[this]] is distributed" msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Total events" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Total income" msgstr "" -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "" -"A look at [[GenericTable]] across your [[this]], and how it changes over " -"time." +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "Per [[Source]]" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategoryMedium]]" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "[[CreateDate]] by quarter of the year" msgstr "" -#: resources/automagic_dashboards/field/Number.yaml -msgid "How the [[this]] changes with time" +#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml +msgid "Transactions over time" msgstr "" #: resources/automagic_dashboards/field/DateTime.yaml -msgid "How they compare by seasonality" +#: resources/automagic_dashboards/field/GenericField.yaml +msgid "[[GenericNumber]] by [[this]]" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average income per transaction" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "The top external pages that brought users to your site" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per country" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "The pages with the most pageviews" msgstr "" #: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Income per state" -msgstr "" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per [[GenericCategoryMedium]]" +msgid "Which US states are bringing you the most business." msgstr "" -#: resources/automagic_dashboards/question/GenericQuestion.yaml -msgid "A closer look at your [[this]]" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Total income per month" msgstr "" #: resources/automagic_dashboards/table/UserTable.yaml -msgid "How [[GenericNumber]] is distributed" -msgstr "" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[Timestamp]] by quarter of year" -msgstr "" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per country" +msgid "Per state" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Weekdays when [[this.short-name]] were added" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "Over time" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Months when [[this.short-name]] were added" +msgid "Join date by hour of the day" msgstr "" +#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml #: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare across different categories" +msgid "[[this]] per country" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "New users per source in the last 30" +#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml +msgid "If you're into correlations, this is the x-ray for you." msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per quarter of the year" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Top acquisition channels" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategoryLarge]], top 5" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Overview of your [[this]] data from Google Analytics" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Days when [[this.short-name]] were added" +#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "[[this]] per state" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Here's a closer look at your [[this]] per source" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Sessions by Country" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Total orders per source" +#: resources/automagic_dashboards/table/example/indepth.yaml +msgid "Total [[GenericTable]]" msgstr "" #: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[this]] by quarter of the year" -msgstr "" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per [[GenericCategoryMedium]]" +#: resources/automagic_dashboards/field/State.yaml +#: resources/automagic_dashboards/field/Number.yaml +#: resources/automagic_dashboards/field/Country.yaml +#: resources/automagic_dashboards/field/GenericField.yaml +msgid "Null values" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Here's a quick look at the [[this]]" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "Number of users per source" msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per state" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "How these transactions are distributed" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Top landing pages" +#: resources/automagic_dashboards/question/GenericQuestion.yaml +msgid "" +"A closer look at the metrics and dimensions used in this saved question." msgstr "" #: resources/automagic_dashboards/field/Number.yaml -msgid "Sum of [[this]] by [[Country]]" +msgid "How the [[this]] is distributed across categories" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "States that are performing best" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "[[this.short-name]] that have joined over time" msgstr "" -#: resources/automagic_dashboards/field/Number.yaml -msgid "Sum of [[this]] by [[State]]" +#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml +msgid "[[Timestamp]] by quarter of year" msgstr "" -#: resources/automagic_dashboards/field/State.yaml -msgid "Sum of [[GenericNumber]] per [[this]]" +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "By coordinates" msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events by coordinates" +#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml +msgid "[[this]] over time" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Top referral pages" +#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml +msgid "New users per country in the last 30 days" msgstr "" -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "An exploration of your users to get you started." +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Months when [[this.short-name]] were added" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Average income per state" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Events per country" msgstr "" -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "[[this]] by [[GenericCategoryMedium]]" +#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml +msgid "[[this]] per product" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Total transactions" +#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml +msgid "Transactions per month of the year" +msgstr "" + +#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml +msgid "States that are performing best" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] that have joined over time" +msgid "[[CreateTimestamp]] by hour of the day" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "The [[this]] by location" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Most-viewed pages" msgstr "" #: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per month of the year" +msgid "Events per day of the week" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] by [[GenericNumber]]" +#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml +msgid "Top 10 states by sales in the last 30 days" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Quarters when [[this.short-name]] were added" +#: resources/automagic_dashboards/comparison/State.yaml +#: resources/automagic_dashboards/comparison/FK.yaml +#: resources/automagic_dashboards/comparison/Country.yaml +#: resources/automagic_dashboards/comparison/GenericField.yaml +msgid "How [[this]] is distributed" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "How these [[this.short-name]] are distributed" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Some metrics we found about your transactions." msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] by [[GenericNumber]]" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Events per quarter of the year" msgstr "" -#: resources/automagic_dashboards/table/example/indepth.yaml -msgid "In-depth example" +#: resources/automagic_dashboards/field/DateTime.yaml +msgid "[[this]] by month of the year" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Where users are coming from" +#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml +msgid "Here's a closer look at your [[this]] by products" msgstr "" -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "[[this]] comparisons and correlations" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Sales for each product category" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Total income" +#: resources/automagic_dashboards/field/State.yaml +#: resources/automagic_dashboards/field/Country.yaml +msgid "Top 5 [[this]]" msgstr "" #: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Total income per month" +msgid "Average quantity" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Number of users per source" +#: resources/automagic_dashboards/field/Number.yaml +#: resources/automagic_dashboards/table/GenericTable.yaml +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "How they compare across time" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Transactions per state" +#: resources/automagic_dashboards/field/DateTime.yaml +msgid "Count of [[GenericCategoryMedium]] by [[this]]" msgstr "" -#: resources/automagic_dashboards/field/Number.yaml -msgid "[[this]] by [[Timestamp]]" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Events by different categories" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "New users per source in the last 30 days" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Income growth" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by day of the month" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "A look at your [[this]] table" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by day of the month" +#: resources/automagic_dashboards/field/DateTime.yaml +#: resources/automagic_dashboards/question/GenericQuestion.yaml +msgid "Here's a closer look at your [[this]]" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average discount %" +#: resources/automagic_dashboards/field/Number.yaml +msgid "" +"A breakdown of your [[this]] over time, and its min, max, average and more." msgstr "" #: resources/automagic_dashboards/table/example.yaml -msgid "Autogenerated metrics about [[GenericTable]]." +msgid "Sales by product [[ProductCategory]]" msgstr "" +#: resources/automagic_dashboards/field/Number.yaml +#: resources/automagic_dashboards/table/GenericTable.yaml #: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per day of the month" +msgid "How they compare across location" +msgstr "" + +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Events per [[GenericCategoryMedium]]" msgstr "" +#: resources/automagic_dashboards/table/GenericTable.yaml #: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Total sessions in each country" +msgid "Summary" +msgstr "" + +#: resources/automagic_dashboards/field/Number.yaml +msgid "Sum of [[this]] by [[Country]]" msgstr "" #: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions per month of the year" +msgid "Transactions per day of the week" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per product" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "[[CreateTimestamp]] by day of the week" msgstr "" #: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Users in each country" +msgid "Top performers" msgstr "" -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[this]] by hour of the day" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Average quantity per month" msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events in the last 30 days" +#: resources/automagic_dashboards/field/State.yaml +msgid "" +"How many [[GenericTable]] there are per state, and how each state is " +"represented across other categories." msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Transactions per source" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "These [[this.short-name]] across time" msgstr "" -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Here's an overview of the people in your [[this]]" +#: resources/automagic_dashboards/field/DateTime.yaml +msgid "[[this]] by hour of the day" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by quarter of the year" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "[[Timestamp]] by month of the year" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "[[this]] per product" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Where these events are happening" +msgstr "" + +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Join date by quarter of the year" msgstr "" #: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per month of the year" +msgid "How they compare across different categories" msgstr "" -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per country" +#: resources/automagic_dashboards/field/DateTime.yaml +msgid "How they compare by seasonality" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "A deeper look at how different countries are performing for you." +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Join date by day of the week" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per state" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "[[this]] per source" msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events by [[GenericNumber]]" +#: resources/automagic_dashboards/field/State.yaml +msgid "Sum of [[GenericNumber]] per [[this]]" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Sales per product [[ProductCategoryMedium]]" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Sessions and unique users per day" msgstr "" -#: resources/automagic_dashboards/field/Number.yaml #: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare across location" +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "How these [[this.short-name]] are distributed" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "User acquisition by country" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "New [[this.short-name]] over time" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "[[this]] per source" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Where your [[this.short-name]] are" msgstr "" -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[this]] by day of the week" +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "Here's an overview of the people in your [[this]]" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Days of the month when [[this.short-name]] joined" +#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml +msgid "Users in each country" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Here's a closer look at your [[this]] by products" +#: resources/automagic_dashboards/field/Number.yaml +msgid "Summary statistics" msgstr "" -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "" -"How [[GenericTable]] are distributed across this time field, and if it has " -"any seasonal patterns." +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "User growth" msgstr "" -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml #: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/table/TransactionTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Overview" +msgid "Sum of [[GenericNumber]] by [[this]]" +msgstr "" + +#: resources/automagic_dashboards/table/example.yaml +msgid "Sales by month" msgstr "" #: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How this metric is distributed across different categories" +msgid "[[this]] per month of the year" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] per state" +msgid "Here's a quick look at your [[this]]" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Weekdays when [[this.short-name]] joined" +msgid "[[CreateDate]] by day of the month" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Hours when [[this.short-name]] joined" +#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml +msgid "How your different products are performing." msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by month of the year" +msgid "[[CreateTimestamp]] by day of the month" msgstr "" -#: resources/automagic_dashboards/table/example.yaml -msgid "Total income by month" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Some interesting metrics about your GA stats to get you started." msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "" -"An overview of your [[this]] and how it's distributed across time, place, " -"and categories." +#: resources/automagic_dashboards/field/DateTime.yaml +msgid "[[GenericTable]] by [[this]]" msgstr "" -#: resources/automagic_dashboards/field/Number.yaml -msgid "" -"A breakdown of your [[this]] over time, and its min, max, average and more." +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "How [[GenericNumber]] is distributed" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Average quantity per state" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Sales by coordinates" msgstr "" #: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare by across different numbers" +msgid "A look at the [[this]]" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "New users per country in the last 30 days" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Total sessions by desktop, mobile, or tablet" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions over time" +#: resources/automagic_dashboards/field/DateTime.yaml +#: resources/automagic_dashboards/field/State.yaml +#: resources/automagic_dashboards/field/Number.yaml +#: resources/automagic_dashboards/field/Country.yaml +#: resources/automagic_dashboards/field/GenericField.yaml +#: resources/automagic_dashboards/table/TransactionTable.yaml +#: resources/automagic_dashboards/table/EventTable.yaml +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "Overview" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategorySmall]]" +#: resources/automagic_dashboards/field/Number.yaml +msgid "Sum of [[this]] by [[State]]" msgstr "" -#: resources/automagic_dashboards/table/example.yaml -msgid "Some breakdown" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "[[CreateDate]] by month of the year" msgstr "" -#: resources/automagic_dashboards/field/Number.yaml -msgid "Average of [[this]] by [[State]]" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "[[this]] per quarter of the year" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions per quarter of the year" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "Average quantity per source" msgstr "" -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "By coordinates" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Months when [[this.short-name]] joined" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per quarter of the year" +#: resources/automagic_dashboards/field/Number.yaml +msgid "[[this]] by [[Timestamp]]" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Quarters when [[this.short-name]] joined" +#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml +msgid "Top 10 states by sales" msgstr "" -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "New [[this.short-name]] in the last 30 days" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "[[this]] per [[GenericCategoryLarge]], top 5" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Total sessions by desktop, mobile, or tablet" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "[[this]] per [[GenericCategoryMedium]]" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Average income per source" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Events per hour of the day" +msgstr "" + +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Hours when [[this.short-name]] were added" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[Timestamp]] by day of week" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "[[Timestamp]] by day of the month" msgstr "" -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/question/GenericQuestion.yaml -msgid "Here's a closer look at your [[this]]" +#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml +msgid "New users per state in the last 30 days" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Summary" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "[[Timestamp]] by hour of the day" msgstr "" -#: resources/automagic_dashboards/field/Number.yaml -msgid "How the [[this]] is distributed geographically" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "[[GenericNumber]] by join date" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "The pages with the most pageviews" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "[[this.short-name]] by [[Timestamp]]" msgstr "" -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "How [[Number1]] is correlated with [[Number2]]" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "[[CreateTime]] by hour of the day" msgstr "" #: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Top 10 states by sales in the last 30 days" +msgid "Income per state" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Top 10 states by sales" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "How this metric is distributed across different numbers" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[Timestamp]]" +#: resources/automagic_dashboards/field/State.yaml +#: resources/automagic_dashboards/field/GenericField.yaml +#: resources/automagic_dashboards/comparison/State.yaml +#: resources/automagic_dashboards/comparison/FK.yaml +#: resources/automagic_dashboards/comparison/Country.yaml +#: resources/automagic_dashboards/comparison/GenericField.yaml +msgid "Here's an overview of your [[this]]" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by day of the week" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Event growth" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Where these transactions happened" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Distinct [[FK]]" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Top 10 countries by sales" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Events per month of the year" msgstr "" -#: resources/automagic_dashboards/table/example.yaml -msgid "Sales by state" +#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml +msgid "Transactions per hour of the day" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Where most of your sessions originate from" +#: resources/automagic_dashboards/field/Number.yaml +msgid "Average of [[this]] by [[State]]" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Top acquisition channels" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Events per state" msgstr "" #: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Here's an overview of your [[this]] data from Google Analytics" +msgid "Sessions" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "These [[this.short-name]] across time" +msgid "[[this.short-name]] added in the last 30 days" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average quantity" +#: resources/automagic_dashboards/field/Number.yaml +msgid "How the [[this]] is distributed geographically" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per source" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "Here's a closer look at your [[this]] per source" msgstr "" -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "Here's an overview of your [[this]]" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "[[this.short-name]] by [[GenericNumber]]" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Average income per country" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "The [[this]] by location" msgstr "" -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "How [[this]] is distributed" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "A summary of the events in your [[this]] table" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Distinct [[FK]]" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "Orders and income per source" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "How these transactions are distributed" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "How they compare by across different numbers" msgstr "" -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per state" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "Where users are coming from" msgstr "" -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "Count of [[GenericCategoryMedium]] by [[this]]" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Hours when [[this.short-name]] joined" +msgstr "" + +#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml +msgid "How [[Number1]] is correlated with [[Number2]]" msgstr "" #: resources/automagic_dashboards/field/DateTime.yaml @@ -11781,432 +12408,394 @@ msgstr "" msgid "A look at your [[this]]" msgstr "" -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "[[GenericNumber]] by [[this]]" +#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml +msgid "Average income per state" msgstr "" -#: resources/automagic_dashboards/field/Country.yaml -msgid "Sum of [[GenericNumber]] by [[this]]" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "Where most of your traffic is coming from." msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "A look at your [[this]] table" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Sessions by device type" msgstr "" -#: resources/automagic_dashboards/field/State.yaml +#: resources/automagic_dashboards/field/Country.yaml msgid "" -"How many [[GenericTable]] there are per state, and how each state is " -"represented across other categories." +"The number of [[GenericTable]] per country, and how each country is " +"represented in different categories." msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Most-viewed pages" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "[[this.short-name]] per [[GenericCategoryMedium]]" msgstr "" #: resources/automagic_dashboards/field/Country.yaml msgid "Here's a closer look at your [[this]] field" msgstr "" -#: resources/automagic_dashboards/table/example.yaml -msgid "Example exploration" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Sales per product" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Sales vs. rating" +#: resources/automagic_dashboards/field/GenericField.yaml +msgid "" +"A look at [[GenericTable]] across your [[this]], and how it changes over " +"time." msgstr "" #: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per hour of the day" -msgstr "" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Where your [[this.short-name]] are" +msgid "[[this]] per [[GenericCategorySmall]]" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "These are the same for all your [[this.short-name]]" +#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml +msgid "[[this]] comparisons and correlations" msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events by different categories" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "How it's distributed across time and other categories." msgstr "" -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Where these [[this.short-name]] are" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "Total income per source" msgstr "" #: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml msgid "Here's a closer look at your [[this]] per country" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Over time" -msgstr "" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "A summary of the events in your [[this]] table" -msgstr "" - #: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Transactions per source over time" -msgstr "" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "How the [[this]] is distributed" +msgid "Average income per source" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Total income per source" +#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml +msgid "Top 10 countries by sales in the last 30 days" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml #: resources/automagic_dashboards/table/UserTable.yaml -msgid "Total [[this.short-name]]" -msgstr "" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Some metrics we found about your transactions." -msgstr "" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "How your different products are performing." +msgid "An exploration of your users to get you started." msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Where these events are happening" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Top referral pages" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Which US states are bringing you the most business." +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "Per country" msgstr "" -#: resources/automagic_dashboards/field/Number.yaml #: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare across time" -msgstr "" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average transaction income per month" +msgid "[[this.short-name]] by coordinates" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average quantity per month" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Join date by day of the month" msgstr "" -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "Seasonal patterns in the [[this]]" +#: resources/automagic_dashboards/table/example.yaml +msgid "Some breakdown" msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events over time" +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "Where these [[this.short-name]] are" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Orders and income per source" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Total sessions in each country" msgstr "" #: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions per hour of the day" -msgstr "" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Where most of your traffic is coming from." +msgid "Whether or not there are any patterns to when they happen." msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average discount per month" +#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml +msgid "User acquisition by country" msgstr "" -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "If you're into correlations, this is the x-ray for you." +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "[[this]] per day of the month" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by month of the year" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Sales per source" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateDate]] by day of the week" +#: resources/automagic_dashboards/table/UserTable.yaml +msgid "New [[this.short-name]] per month" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategorySmall]] over time" +#: resources/automagic_dashboards/field/Number.yaml +msgid "We crunched the numbers for your [[this]]" msgstr "" -#: resources/automagic_dashboards/table/example.yaml -msgid "Distribution by coordinates" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Top landing pages" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "It looks like your [[this]] has transactions, so here's a look at them" +#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml +msgid "Here's a closer look at your [[this]] over time" msgstr "" -#: resources/automagic_dashboards/table/example.yaml -msgid "Sales by source" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "[[this]] by [[GenericNumber]]" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales for each product category" +#: resources/automagic_dashboards/field/DateTime.yaml +msgid "[[this]] by quarter of the year" msgstr "" -#: resources/automagic_dashboards/question/GenericQuestion.yaml -msgid "" -"A closer look at the metrics and dimensions used in this saved question." +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "How many total sessions vs. how many individual users you had each day." msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] per [[GenericCategoryMedium]]" +msgid "[[CreateTimestamp]] by quarter of the year" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Sales per product [[ProductCategoryLarge]]" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "Transactions per source over time" msgstr "" #: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Average quantity per country" +msgid "Average income per country" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] per [[GenericCategoryLarge]]" +#: resources/automagic_dashboards/field/State.yaml +#: resources/automagic_dashboards/field/Country.yaml +msgid "Bottom 5 [[this]]" msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per day of the month" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "[[CreateDate]] by day of the week" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions by Country" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Average item quantity per month" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Some interesting metrics about your GA stats to get you started." +#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml +msgid "[[Timestamp]] by day of week" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml #: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per state" +msgid "[[this]] per day of the week" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by quarter of the year" +#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml +msgid "[[Timestamp]] by hour of day" msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "A look at your events over time and by several categories." +#: resources/automagic_dashboards/table/example/indepth.yaml +msgid "In-depth example" msgstr "" -#: resources/automagic_dashboards/field/State.yaml -msgid "[[GenericTable]] per [[this]]" +#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml +msgid "Here's a closer look at your [[this]] per state" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Average quantity per source" +#: resources/automagic_dashboards/table/GenericTable.yaml +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "[[Timestamp]] by quarter of the year" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Top 5 per category" +#: resources/automagic_dashboards/field/Number.yaml +msgid "How the [[this]] changes with time" msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per day of the week" +#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml +msgid "[[Timestamp]] by month of year" msgstr "" -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "New [[this.short-name]] per month" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Weekdays when [[this.short-name]] were added" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Top performers" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Events over time" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Transactions in the last 30 days" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "[[this]] per [[GenericCategoryLarge]], bottom 5" msgstr "" -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[GenericTable]] by [[this]]" +#: resources/automagic_dashboards/table/example.yaml +msgid "Autogenerated metrics about [[GenericTable]]." msgstr "" #: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Overview of your [[this]] data from Google Analytics" +msgid "Here's an overview of your [[this]] data from Google Analytics" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Here's a closer look at your [[this]] per state" +#: resources/automagic_dashboards/table/example.yaml +msgid "Example exploration" msgstr "" -#: resources/automagic_dashboards/table/example.yaml -msgid "Sales by month" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "Bottom 5 per category" msgstr "" -#: resources/automagic_dashboards/field/Number.yaml -msgid "How the [[this]] is distributed across categories" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Events per day of the month" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[Timestamp]] by month of year" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Events by [[GenericNumber]]" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "How many total sessions vs. how many individual users you had each day." +#: resources/automagic_dashboards/table/example.yaml +msgid "Sales by state" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How this metric is distributed across different numbers" +#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml +msgid "Average quantity per state" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions by page where the session began" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "Users per source" msgstr "" -#: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml #: resources/automagic_dashboards/field/Country.yaml #: resources/automagic_dashboards/field/GenericField.yaml -msgid "Distinct values" +msgid "[[this]] by [[GenericCategoryMedium]]" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateDate]] by day of the month" +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "Total events" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Hours when [[this.short-name]] were added" +msgid "[[Timestamp]]" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by day of the week" +#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml +msgid "Transactions per quarter of the year" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[GenericNumber]] over time" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "[[this]] per hour of the day" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] by coordinates" +#: resources/automagic_dashboards/field/DateTime.yaml +msgid "Seasonal patterns in the [[this]]" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTime]] by hour of the day" +#: resources/automagic_dashboards/field/DateTime.yaml +msgid "" +"How [[GenericTable]] are distributed across this time field, and if it has " +"any seasonal patterns." msgstr "" +#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml #: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales by coordinates" +msgid "Sales per country" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "New [[this.short-name]] over time" +msgid "Weekdays when [[this.short-name]] joined" +msgstr "" + +#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml +msgid "Sales per product [[ProductCategoryMedium]]" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by hour of the day" +msgid "" +"An overview of your [[this]] and how it's distributed across time, place, " +"and categories." msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Here's a closer look at your [[this]] over time" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Average transaction income per month" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[Timestamp]] by hour of day" +#: resources/automagic_dashboards/table/GenericTable.yaml +msgid "Days when [[this.short-name]] were added" msgstr "" -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions and unique users per day" +#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Sales per state" msgstr "" -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per [[GenericCategoryLarge]]" +#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml +msgid "How some of the numbers in [[this]] relate to each other" msgstr "" -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "How they compare by distribution" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "It looks like your [[this]] has transactions, so here's a look at them" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Income per country" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "Here's a quick look at the [[this]]" msgstr "" -#: resources/automagic_dashboards/table/example.yaml -msgid "Sales by product [[ProductCategory]]" +#: resources/automagic_dashboards/question/GenericQuestion.yaml +msgid "A closer look at your [[this]]" msgstr "" -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategoryLarge]], bottom 5" +#: resources/automagic_dashboards/field/DateTime.yaml +msgid "[[this]] by day of the week" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] added in the last 30 days" +msgid "[[this.short-name]] per state" msgstr "" -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per [[Source]]" +#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml +msgid "Users per state" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average item quantity per month" +#: resources/automagic_dashboards/field/Number.yaml +msgid "Average of [[this]] by [[Country]]" msgstr "" -#: resources/automagic_dashboards/field/Country.yaml -msgid "" -"The number of [[GenericTable]] per country, and how each country is " -"represented in different categories." +#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml +msgid "A deeper look at how different countries are performing for you." msgstr "" #: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per day of the week" +msgid "Top 5 per category" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] by [[Timestamp]]" +#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml +msgid "Sessions by page where the session began" msgstr "" -#: resources/automagic_dashboards/field/Number.yaml -msgid "Summary statistics" +#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml +msgid "Total orders per source" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per month" +#: resources/automagic_dashboards/metric/GenericMetric.yaml +msgid "The [[this]] over time" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[GenericNumber]] by join date" +msgid "[[CreateTimestamp]] by month of the year" msgstr "" #: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateDate]] by quarter of the year" +msgid "[[GenericNumber]] over time" msgstr "" -#: resources/automagic_dashboards/field/Number.yaml -msgid "Average of [[this]] by [[Country]]" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Number of orders" msgstr "" -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[this]] over time" +#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml +msgid "Where you've acquired your users" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by day of the week" +#: resources/automagic_dashboards/table/TransactionTable.yaml +msgid "Average discount per month" msgstr "" -#: resources/automagic_dashboards/field/Number.yaml -msgid "We crunched the numbers for your [[this]]" +#: resources/automagic_dashboards/table/GenericTable.yaml +#: resources/automagic_dashboards/table/EventTable.yaml +msgid "[[Timestamp]] by day of the week" msgstr "" -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Months when [[this.short-name]] joined" +#: resources/automagic_dashboards/field/State.yaml +msgid "[[GenericTable]] per [[this]]" msgstr "" diff --git a/locales/nb.po b/locales/nb.po deleted file mode 100644 index c3664aaebd6dd4542143be444d984e90db0d0d6c..0000000000000000000000000000000000000000 --- a/locales/nb.po +++ /dev/null @@ -1,13171 +0,0 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" -"Project-Id-Version: Metabase\n" -"Language: nb\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:24 -msgid "Your database has been added!" -msgstr "Databasen din har blitt lagt til!" - -#: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:28 -msgid "We took a look at your data, and we have some automated explorations that we can show you!" -msgstr "Vi har analysert dine data, og vi har noen automatiske utforskninger vi vil vise deg!" - -#: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:35 -msgid "I'm good thanks" -msgstr "Jeg har det fint, takk" - -#: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:42 -msgid "Explore this data" -msgstr "Utforsk disse dataene" - -#: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:42 -msgid "Select a database type" -msgstr "Velg en databasetype" - -#: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 -#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 -#: frontend/src/metabase/components/ActionButton.jsx:51 -#: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 -#: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 -#: frontend/src/metabase/reference/components/EditHeader.jsx:54 -#: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 -msgid "Save" -msgstr "Lagre" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:122 -msgid "To do some of its magic, Metabase needs to scan your database. We will also rescan it periodically to keep the metadata up-to-date. You can control when the periodic rescans happen below." -msgstr "For at Metabase skal klare Ã¥ gjøre magi, trenger den Ã¥ skanne databasen din. Vi kommer til Ã¥ skanne denne periodisk for og holde metadata oppdatert.\n" -"Du kan kontrollere nÃ¥r dette skal forekomme." - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:127 -msgid "Database syncing" -msgstr "Synkroniserer database" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:128 -msgid "This is a lightweight process that checks for\n" -"updates to this database’s schema. In most cases, you should be fine leaving this\n" -"set to sync hourly." -msgstr "Dette er en lett prosess som sjekker for oppdatering i database skjemaet. I de fleste tilfeller holder det med synkronisering hver time." - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:147 -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:183 -msgid "Scan" -msgstr "Skann" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:152 -msgid "Scanning for Filter Values" -msgstr "Skanner etter filtreringsverdier" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:153 -msgid "Metabase can scan the values present in each\n" -"field in this database to enable checkbox filters in dashboards and questions. This\n" -"can be a somewhat resource-intensive process, particularly if you have a very large\n" -"database." -msgstr "Metabase kan skanne verdiene i hvert felt i denne databasen for og aktivere sjekkboks filtere i infotavler og spørsmÃ¥l. Dette er en ressurs krevende prosess, spesielt for veldig store databaser" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:158 -msgid "When should Metabase automatically scan and cache field values?" -msgstr "NÃ¥r skal Metabase automatisk skanne og mellomlagre feltverdier?" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:163 -msgid "Regularly, on a schedule" -msgstr "Regelmessig, etter en tidsplan" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:194 -msgid "Only when adding a new filter widget" -msgstr "Bare nÃ¥r du legger til en ny filter-widget" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:198 -msgid "When a user adds a new filter to a dashboard or a SQL question, Metabase will\n" -"scan the field(s) mapped to that filter in order to show the list of selectable values." -msgstr "NÃ¥r en bruker legger til nye filter pÃ¥ en infotavle eller et SQL spørsmÃ¥l, vil Metabase skanne feltene som er tilknyttet til det filteret for Ã¥ vise liste over mulige filterverdier." - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:209 -msgid "Never, I'll do this manually if I need to" -msgstr "Aldri, jeg vil gjøre det manuelt hvis jeg trenger" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:221 -#: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:27 -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 -#: frontend/src/metabase/components/ActionButton.jsx:52 -#: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 -msgid "Saving..." -msgstr "Lagrer..." - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:38 -#: frontend/src/metabase/components/form/FormMessage.jsx:4 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:146 -msgid "Server error encountered" -msgstr "En tjenerfeil har oppstÃ¥tt" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:56 -msgid "Delete this database?" -msgstr "Slett denne databasen?" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:61 -msgid "All saved questions, metrics, and segments that rely on this database will be lost." -msgstr "Alle dine lagrede spørsmÃ¥l, beregninger og segmenter" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:62 -msgid "This cannot be undone." -msgstr "Dette kan ikke angres" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:65 -msgid "If you're sure, please type" -msgstr "Hvis du er sikker, vennligst skriv" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:52 -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:65 -msgid "DELETE" -msgstr "SLETT" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:66 -msgid "in this box:" -msgstr "i denne boksen:" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 -#: frontend/src/metabase/admin/people/components/AddRow.jsx:27 -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 -#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 -#: frontend/src/metabase/components/ArchiveModal.jsx:35 -#: frontend/src/metabase/components/ConfirmContent.jsx:18 -#: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 -#: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 -#: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 -#: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 -#: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 -#: frontend/src/metabase/reference/components/EditHeader.jsx:34 -#: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 -msgid "Cancel" -msgstr "Avbryt" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:83 -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:124 -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:135 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 -msgid "Delete" -msgstr "Slett" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 -msgid "Databases" -msgstr "Databaser" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 -msgid "Add Database" -msgstr "Legg til database" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 -msgid "Connection" -msgstr "Tilkobling" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 -msgid "Scheduling" -msgstr "Planlegging" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 -#: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:184 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:356 -#: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:47 -msgid "Save changes" -msgstr "Lagre endringer" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 -msgid "Actions" -msgstr "Handlinger" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 -msgid "Sync database schema now" -msgstr "Synkroniser database skjemaer nÃ¥" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:95 -msgid "Starting…" -msgstr "Starter..." - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 -msgid "Failed to sync" -msgstr "Feilet ved synkronsering" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 -msgid "Sync triggered!" -msgstr "Synkronisering utløst!" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 -msgid "Re-scan field values now" -msgstr "Skanne felter verdier pÃ¥ nytt" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 -msgid "Failed to start scan" -msgstr "Skanning feilet ved start" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 -msgid "Scan triggered!" -msgstr "Skanning pÃ¥begynt!" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 -msgid "Danger Zone" -msgstr "Faresone" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 -msgid "Discard saved field values" -msgstr "Forkast lagrede feltverdier" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 -msgid "Remove this database" -msgstr "Fjern denne databasen" - -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:76 -msgid "Add database" -msgstr "Legg til database" - -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 -#: frontend/src/metabase/entities/collections.js:94 -#: frontend/src/metabase/entities/dashboards.js:142 -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 -msgid "Name" -msgstr "Navn" - -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:89 -msgid "Engine" -msgstr "Motor" - -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:118 -msgid "Deleting..." -msgstr "Sletter..." - -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:148 -msgid "Loading ..." -msgstr "Laster..." - -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:164 -msgid "Bring the sample dataset back" -msgstr "Hent eksempel-datasettet tilbake" - -#: frontend/src/metabase/admin/databases/database.js:175 -msgid "Couldn't connect to the database. Please check the connection details." -msgstr "Kunne ikke koble til databasen. Vennligst sjekk tilkoblingen." - -#: frontend/src/metabase/admin/databases/database.js:383 -msgid "Successfully created!" -msgstr "Opprettelse vellykket!" - -#: frontend/src/metabase/admin/databases/database.js:393 -msgid "Successfully saved!" -msgstr "Lagring vellykket!" - -#: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 -#: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 -msgid "Edit" -msgstr "Rediger" - -#: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:59 -msgid "Revision History" -msgstr "Revisjonshistorikk" - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:32 -msgid "Retire this {0}?" -msgstr "Arkiver denne {0}?" - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:37 -msgid "Saved questions and other things that depend on this {0} will continue to work, but this {1} will no longer be selectable from the query builder." -msgstr "Lagrede spørsmÃ¥l og andre ting som avhenger av denne {0} vil fortsette Ã¥ virke, men denne {1} vil ikke lenger være mulig Ã¥ velge fra spørrings-byggeren." - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:38 -msgid "If you're sure you want to retire this {0}, please write a quick explanation of why it's being retired:" -msgstr "Hvis du er usikker pÃ¥ om du vil arkivere denne {0}, vennligst skriv en kort forklaring pÃ¥ hvorfor den blir arkivert:" - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:42 -msgid "This will show up in the activity feed and in an email that will be sent to anyone on your team who created something that uses this {0}." -msgstr "Dette vil vises i aktivitetsstrømmen og i en e-post som vil bli sendt til alle pÃ¥ ditt lag som lager noe som bruker denne {0}." - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:57 -msgid "Retire" -msgstr "Arkiver" - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:58 -msgid "Retiring…" -msgstr "Kaster..." - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:59 -msgid "Failed" -msgstr "Feilet" - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:60 -msgid "Success" -msgstr "Suksess" - -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 -#: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 -msgid "Preview" -msgstr "ForhÃ¥ndsvisning" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:90 -msgid "No column description yet" -msgstr "Ingen kolonnebeskrivelse enda" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:123 -msgid "Select a field visibility" -msgstr "Velg en feltsynlighet" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:193 -msgid "No special type" -msgstr "Ingen spesiell type" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:148 -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 -msgid "Other" -msgstr "Andre" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:220 -msgid "Select a special type" -msgstr "Velg en spesiell type" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:265 -msgid "Select a target" -msgstr "Velg ett mÃ¥l" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:17 -#: frontend/src/metabase/query_builder/components/notebook/steps/FieldsPicker.jsx:22 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:82 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:94 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:125 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:162 -msgid "Columns" -msgstr "Kolonner" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:22 -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:46 -msgid "Column" -msgstr "Kolonne" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 -msgid "Visibility" -msgstr "Synlighet" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:25 -msgid "Type" -msgstr "Type" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataHeader.jsx:104 -msgid "Current database:" -msgstr "NÃ¥værende database:" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataHeader.jsx:109 -msgid "Show original schema" -msgstr "Vis opprinnelige skjema" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:47 -msgid "Data Type" -msgstr "Datatype" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:48 -msgid "Additional Info" -msgstr "Tillegsinfo" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchemaList.jsx:46 -msgid "Find a schema" -msgstr "Fins ett skjema" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchemaList.jsx:53 -msgid "{0} schema" -msgid_plural "{0} schemas" -msgstr[0] "{0} skjema" -msgstr[1] "{0} skjemaer" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:103 -msgid "Why Hide?" -msgstr "Hvorfor skjule?" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:104 -msgid "Technical Data" -msgstr "Teknisk data" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:105 -msgid "Irrelevant/Cruft" -msgstr "Irrelevant" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:111 -msgid "Queryable" -msgstr "Spørbar" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:112 -msgid "Hidden" -msgstr "Skjul" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:138 -msgid "No table description yet" -msgstr "Ingen tabell beskrivelse enda" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:124 -msgid "Metadata Strength" -msgstr "Metadata styrke" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:83 -msgid "{0} Queryable Table" -msgid_plural "{0} Queryable Tables" -msgstr[0] "[0} Spørbar Tabell" -msgstr[1] "[0} Spørbare Tabeller" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:92 -msgid "{0} Hidden Table" -msgid_plural "{0} Hidden Tables" -msgstr[0] "{0} skjult tabell" -msgstr[1] "{0} skjulte tabeller" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:109 -msgid "Find a table" -msgstr "Find en tabell" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:122 -msgid "Schemas" -msgstr "Skjemaer" - -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 -#: frontend/src/metabase/reference/metrics/MetricList.jsx:63 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 -msgid "Metrics" -msgstr "Indikatorer" - -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 -msgid "Add a Metric" -msgstr "Legg til en indikator" - -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 -#: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 -msgid "Definition" -msgstr "Definisjon" - -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 -msgid "Create metrics to add them to the View dropdown in the query builder" -msgstr "Lag indikatorer som vises i nedtrekksmenyen i spørsmÃ¥lsbyggeren" - -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 -#: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 -#: frontend/src/metabase/reference/segments/SegmentList.jsx:62 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:21 -msgid "Segments" -msgstr "Segmenter" - -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 -msgid "Add a Segment" -msgstr "Legg til segment" - -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 -msgid "Create segments to add them to the Filter dropdown in the query builder" -msgstr "Lag segmenter som vises i nedfelsmenyen i spørsmÃ¥l byggeren" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:24 -msgid "created" -msgstr "laget" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:27 -msgid "reverted to a previous version" -msgstr "vendte tilbake til en tidligere versjon" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:33 -msgid "edited the title" -msgstr "endret tittelen" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:35 -msgid "edited the description" -msgstr "endret beskrivelsen" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:37 -msgid "edited the " -msgstr "edited the " - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:40 -msgid "made some changes" -msgstr "gjorde noen endringer" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:49 -#: frontend/src/metabase/home/components/Activity.jsx:82 -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:333 -msgid "You" -msgstr "Du" - -#: frontend/src/metabase/admin/datamodel/components/revisions/RevisionHistory.jsx:39 -msgid "Datamodel" -msgstr "Datamodell" - -#: frontend/src/metabase/admin/datamodel/components/revisions/RevisionHistory.jsx:42 -msgid " History" -msgstr " Historie" - -#: frontend/src/metabase/admin/datamodel/components/revisions/RevisionHistory.jsx:47 -msgid "Revision History for" -msgstr "Revisjons historie for" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 -msgid "{0} – Field Settings" -msgstr "{0} - felt instillinger" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 -msgid "Where this field will appear throughout Metabase" -msgstr "Hvor dette feltet vil dukke opp i Metabase" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 -msgid "Filtering on this field" -msgstr "Filtrering pÃ¥ dette feltet" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 -msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" -msgstr "NÃ¥r dette feltet brukes i ett filter, hvilken metode skal brukes for Ã¥ legge inn filtreringsverdi?" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 -msgid "No description for this field yet" -msgstr "Ingen beskrivelse for dette feltet enda" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:388 -msgid "Original value" -msgstr "Opprinnelig verdi" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:389 -msgid "Mapped value" -msgstr "Kartlagt verdi" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:432 -msgid "Enter value" -msgstr "Legg inn verdi" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:25 -msgid "Use original value" -msgstr "Bruk opprinnelig verdi" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:26 -msgid "Use foreign key" -msgstr "Bruk fremmed nøkkel" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:27 -msgid "Custom mapping" -msgstr "Tilpasset kartlegging" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:55 -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:161 -msgid "Unrecognized mapping type" -msgstr "Ukjent kartleggingstype" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:89 -msgid "Current field isn't a foreign key or FK target table metadata is missing" -msgstr "Det gjeldende feltet er ikke en fremmednøkkel eller mÃ¥ltabellen mangler FK-metadata." - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:196 -msgid "The selected field isn't a foreign key" -msgstr "Valgt felt er ikke en fremmed nøkkel" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 -msgid "Display values" -msgstr "Vis verdier" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 -msgid "Choose to show the original value from the database, or have this field display associated or custom information." -msgstr "Velg Ã¥ vise originalverdien fra databasen, eller Ã¥ vise tilhørende eller egendefinert informasjon." - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:277 -msgid "Choose a field" -msgstr "Velg ett felt" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:298 -msgid "Please select a column to use for display." -msgstr "Vennligst velg en kolonne til visning" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:771 -msgid "Tip:" -msgstr "Tips:" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:442 -msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." -msgstr "Du vil kanskje oppdatere feltnavnet sÃ¥nn at det fortsatt gir mening dersom du har valgt Ã¥ bruke verdien fra et annet felt." - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 -msgid "Cached field values" -msgstr "Mellomlagret felt verdier" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 -msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." -msgstr "Metabase kan skanne verdiene for dette feltet for Ã¥ aktivere avhukingsfilter i infotavler og spørsmÃ¥l." - -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:14 -msgid "Re-scan this field" -msgstr "Skan feltet pÃ¥ nytt" - -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:22 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:94 -msgid "Discard cached field values" -msgstr "Kast mellomlagrede feltverdier" - -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:24 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:96 -msgid "Failed to discard values" -msgstr "Mislyktes Ã¥ kaste verdier" - -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:25 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:97 -msgid "Discard triggered!" -msgstr "Kasting utløst!" - -#: frontend/src/metabase/admin/datamodel/containers/MetadataEditorApp.jsx:116 -msgid "Select any table to see its schema and add or edit metadata." -msgstr "Velg en hvilken som helst tabell for Ã¥ se tabellens skjema og for Ã¥ legge til eller endre metadata." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 -#: frontend/src/metabase/entities/collections.js:97 -msgid "Name is required" -msgstr "Navn er pÃ¥krevd" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 -msgid "Description is required" -msgstr "Beskrivelse er pÃ¥krevd" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 -msgid "Revision message is required" -msgstr "Revisjonsmelding er pÃ¥krevd" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 -msgid "Aggregation is required" -msgstr "Aggregering er pÃ¥krevd" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 -msgid "Edit Your Metric" -msgstr "Rediger din indikator" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 -msgid "Create Your Metric" -msgstr "Opprett din indikator" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 -msgid "Make changes to your metric and leave an explanatory note." -msgstr "Gjør endringer i din indikator og legg igjen en forklaring." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 -msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." -msgstr "Du kan lage lagrede indikatorer for Ã¥ legge til en navngitt indikator i denne tabellen. Lagrede indikatorer inkluderer den aggregerte typen, det aggregerte feltet, og alternativt alle filtre du velger Ã¥ legge til. Som et eksempel; du vil kanskje bruke dette for Ã¥ lage noe sÃ¥nt som den offisielle mÃ¥ten Ã¥ beregne \"gjennomsnittlig pris\" for en ordre-tabell." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 -msgid "Result: " -msgstr "Resultat: " - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 -msgid "Name Your Metric" -msgstr "Gi navn til din indikator" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 -msgid "Give your metric a name to help others find it." -msgstr "Gi indikatoren din et navn for Ã¥ hjelpe andre med Ã¥ finne den." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 -msgid "Something descriptive but not too long" -msgstr "Noe beskrivende men ikke for langt" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 -msgid "Describe Your Metric" -msgstr "Beskriv din indikator" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 -msgid "Give your metric a description to help others understand what it's about." -msgstr "Gi din indikator en beskrivelse for Ã¥ hjelpe andre med Ã¥ forsÃ¥ hva den handler om." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 -msgid "This is a good place to be more specific about less obvious metric rules" -msgstr "Dette er et bra sted Ã¥ være mer spesifikk om mindre Ã¥penbare indikator-regler." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 -msgid "Reason For Changes" -msgstr "Grunn Til Endringer" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 -msgid "Leave a note to explain what changes you made and why they were required." -msgstr "Legg igjen en beskjed for Ã¥ forklare hva slags endringer du gjorde og hvorfor de mÃ¥tte gjøres." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 -msgid "This will show up in the revision history for this metric to help everyone remember why things changed" -msgstr "Dette vil vises i revisjonshistorikken for denne indikatoren for Ã¥ hjelpe alle med Ã¥ huske hvorfor ting ble forandret." - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:47 -msgid "At least one filter is required" -msgstr "Minst ett filter er pÃ¥krevd" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:106 -msgid "Edit Your Segment" -msgstr "Rediger ditt segment" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:106 -msgid "Create Your Segment" -msgstr "Opprett ditt segment" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 -msgid "Make changes to your segment and leave an explanatory note." -msgstr "Gjør endringer i ditt segment og legg igjen en forklaring." - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:109 -msgid "Select and add filters to create your new segment for the {0} table" -msgstr "Velg og legg til filtere for Ã¥ lage ditt nye segment for {0}-tabellen" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 -msgid "Name Your Segment" -msgstr "Navngi ditt segment" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 -msgid "Give your segment a name to help others find it." -msgstr "Gi segmentet ditt et navn for Ã¥ gjøre det enklere for andre Ã¥ finne det" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 -msgid "Describe Your Segment" -msgstr "Beskriv ditt segment" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 -msgid "Give your segment a description to help others understand what it's about." -msgstr "Gi ditt segment en beskrivelse for Ã¥ hjelpe andre med Ã¥ forstÃ¥ hva det dreier seg om." - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 -msgid "This is a good place to be more specific about less obvious segment rules" -msgstr "Dette er et bra sted Ã¥ være mer spesifikk om mindre Ã¥penbare segmenteringsregler" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 -msgid "This will show up in the revision history for this segment to help everyone remember why things changed" -msgstr "Dette vil vises i revisjonshistorikken for dette segmentet for Ã¥ hjelpe alle Ã¥ huske hvorfor ting ble endret" - -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 -#: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 -msgid "Settings" -msgstr "Innstillinger" - -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:81 -msgid "Metabase can scan the values in this table to enable checkbox filters in dashboards and questions." -msgstr "Metabase kan skanne verdiene i denne tabellen for Ã¥ lage avkrysningsboks-filtere pÃ¥ infotavlene og i spørsmÃ¥lene." - -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:86 -msgid "Re-scan this table" -msgstr "Skan denne tabellen pÃ¥ nytt" - -#: frontend/src/metabase/admin/people/components/AddRow.jsx:34 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 -msgid "Add" -msgstr "Legg til" - -#: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 -msgid "Not a valid formatted email address" -msgstr "Ikke ett gyldig format pÃ¥ e-post adresse" - -#: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 -msgid "First name" -msgstr "Fornavn" - -#: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 -msgid "Last name" -msgstr "Etternavn" - -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 -#: frontend/src/metabase/components/NewsletterForm.jsx:94 -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 -msgid "Email address" -msgstr "E-post adresse" - -#: frontend/src/metabase/admin/people/components/EditUserForm.jsx:202 -msgid "Permission Groups" -msgstr "Tillatelsesgrupper" - -#: frontend/src/metabase/components/form/widgets/FormGroupsWidget.jsx:75 -msgid "Make this user an admin" -msgstr "Gjør denne bruker til administrator" - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:34 -msgid "All users belong to the {0} group and can't be removed from it. Setting permissions for this group is a great way to\n" -"make sure you know what new Metabase users will be able to see." -msgstr "Alle brukere tilhører {0}-gruppen og kan ikke fjernes fra den. Innstilling av rettigheter for denne gruppen er en bra mÃ¥te Ã¥ være sikker pÃ¥ at du vet hva nye Metabase-brukere i denne gruppen har lov til Ã¥ se." - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:43 -msgid "This is a special group whose members can see everything in the Metabase instance, and who can access and make changes to the\n" -"settings in the Admin Panel, including changing permissions! So, add people to this group with care." -msgstr "Dette er en spesiell gruppe, og dens medlemmer kan se alt i denne Metabase-instansen. Medlemmer av denne gruppen kan ogsÃ¥ gjøre endringer i administrasjonspanelet, inkludert endring av tillatelser! SÃ¥, vær forsiktig nÃ¥r du legger til brukere i denne gruppen." - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:47 -msgid "To make sure you don't get locked out of Metabase, there always has to be at least one user in this group." -msgstr "For Ã¥ sikre at du ikke blir lÃ¥st ute av Metabase, mÃ¥ det alltid være igjen en bruker i denne gruppen." - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:187 -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:218 -msgid "Members" -msgstr "Medlemmer" - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:187 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:125 -#: frontend/src/metabase/admin/settings/selectors.js:110 -#: frontend/src/metabase/entities/users.js:50 -#: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 -msgid "Email" -msgstr "E-post" - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:213 -msgid "A group is only as good as its members." -msgstr "En gruppe er kun like bra som sine medlemmer." - -#: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 -msgid "Admin" -msgstr "Administrator" - -#: frontend/src/metabase/admin/people/components/GroupSummary.jsx:16 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:245 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:303 -msgid "and" -msgstr "og" - -#: frontend/src/metabase/admin/people/components/GroupSummary.jsx:19 -#: frontend/src/metabase/admin/people/components/GroupSummary.jsx:31 -msgid "{0} other group" -msgid_plural "{0} other groups" -msgstr[0] "{0} annen gruppe" -msgstr[1] "{0} andre grupper" - -#: frontend/src/metabase/admin/people/components/GroupSummary.jsx:37 -msgid "Default" -msgstr "Standard" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:39 -msgid "Something like \"Marketing\"" -msgstr "Noe sÃ¥nt som \"markedsføring\"" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:58 -msgid "Remove this group?" -msgstr "Fjern denne gruppen?" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:60 -msgid "Are you sure? All members of this group will lose any permissions settings they have based on this group.\n" -"This can't be undone." -msgstr "Er du sikker? Alle medlemmer av denne gruppen vil miste tilganger fra denne gruppen.\n" -"Denne kan ikke bli gjennopprettet." - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:71 -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:43 -#: frontend/src/metabase/components/ConfirmContent.jsx:17 -msgid "Yes" -msgstr "Ja" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:74 -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:43 -msgid "No" -msgstr "Nei" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:92 -msgid "Edit Name" -msgstr "Rediger navn" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:95 -msgid "Remove Group" -msgstr "Fjern gruppe" - -#: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:46 -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:138 -#: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:42 -#: frontend/src/metabase/admin/people/containers/UserSuccessModal.jsx:41 -#: frontend/src/metabase/components/HeaderModal.jsx:43 -#: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 -#: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 -#: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 -msgid "Done" -msgstr "Ferdig" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:218 -msgid "Group name" -msgstr "Gruppenavn" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 -msgid "Groups" -msgstr "Grupper" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:364 -msgid "Create a group" -msgstr "Opprett en gruppe" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:370 -msgid "You can use groups to control your users' access to your data. Put users in groups and then go to the Permissions section to control each group's access. The Administrators and All Users groups are special default groups that can't be removed." -msgstr "Du kan bruke grupper for og kontrollere din brukers tilgang til dataene. Putt brukere i grupper og endre hver gruppes tilgang under tilgangseksjonen. Gruppene \"Administratorer\" og \"Alle brukere\" er spesielle grupper som ikke kan slettes." - -#: frontend/src/metabase/admin/people/components/UserActionsSelect.jsx:79 -msgid "Edit Details" -msgstr "Rediger detaljer" - -#: frontend/src/metabase/admin/people/components/UserActionsSelect.jsx:85 -msgid "Re-send Invite" -msgstr "Send invitasjon pÃ¥ nytt" - -#: frontend/src/metabase/admin/people/components/UserActionsSelect.jsx:90 -msgid "Reset Password" -msgstr "Tilbakestill passord" - -#: frontend/src/metabase/admin/people/containers/UserActivationModal.jsx:40 -msgid "Deactivate" -msgstr "Deaktiver" - -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 -msgid "People" -msgstr "Folk" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:192 -msgid "Who do you want to add?" -msgstr "Hvem vil du legge til?" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:207 -msgid "Edit {0}'s details" -msgstr "Rediger {0}s detaljer" - -#: frontend/src/metabase/admin/people/containers/UserSuccessModal.jsx:40 -msgid "{0} has been added" -msgstr "{0} har blitt lagt til" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:224 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:262 -msgid "Add another person" -msgstr "Legg til enda en person" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:231 -msgid "We couldn’t send them an email invitation,\n" -"so make sure to tell them to log in using {0}\n" -"and this password we’ve generated for them:" -msgstr "Vi klarte ikke Ã¥ sende dem en e-post invitasjon, vennligst sørg for at du forklarer at de logger inn med {0} og dette passordet vi har generert for dem:" - -#: frontend/src/metabase/admin/people/containers/UserSuccessModal.jsx:73 -msgid "If you want to be able to send email invites, just go to the {0} page." -msgstr "Hvis du vil ha muligheten til Ã¥ sende e-post invitasjoner, gÃ¥ til denne siden {0}." - -#: frontend/src/metabase/admin/people/containers/UserSuccessModal.jsx:55 -msgid "We’ve sent an invite to {0} with instructions to set their password." -msgstr "Vi har sendt ut en invitasjon til {0} med instruksjoner om Ã¥ sette passordet sitt." - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:283 -msgid "We've re-sent {0}'s invite" -msgstr "Vi har sendt ut invitasjon pÃ¥ nytt til {0}" - -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 -msgid "Okay" -msgstr "Okei" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:289 -msgid "Any previous email invites they have will no longer work." -msgstr "Tidligere sendte invitasjoner vil ikke fungere lenger." - -#: frontend/src/metabase/admin/people/containers/UserActivationModal.jsx:31 -msgid "Deactivate {0}?" -msgstr "Deaktiver {0}?" - -#: frontend/src/metabase/admin/people/containers/UserActivationModal.jsx:34 -msgid "{0} won't be able to log in anymore." -msgstr "{0} vil ikke kunne logge inn lenger." - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:320 -msgid "Reactivate {0}'s account?" -msgstr "Reaktiver {0} sin konto?" - -#: frontend/src/metabase/admin/people/containers/UserActivationModal.jsx:58 -msgid "Reactivate" -msgstr "Reaktiver" - -#: frontend/src/metabase/admin/people/containers/UserActivationModal.jsx:51 -msgid "They'll be able to log in again, and they'll be placed back into the groups they were in before their account was deactivated." -msgstr "De vil kunne logge inn igjen, de vil da bli plassert tilbake i gruppene de var i før de ble deaktiverte." - -#: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:51 -msgid "Reset {0}'s password?" -msgstr "Tilbakestill {0} sitt passord?" - -#: frontend/src/metabase/components/form/StandardForm.jsx:78 -msgid "Reset" -msgstr "Tilbakestill" - -#: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:54 -#: frontend/src/metabase/components/ConfirmContent.jsx:13 -#: frontend/src/metabase/dashboard/components/ArchiveDashboardModal.jsx:18 -msgid "Are you sure you want to do this?" -msgstr "Er du sikker du vil gjøre dette?" - -#: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:41 -msgid "{0}'s password has been reset" -msgstr "{0} sitt passord har blitt nullstilt" - -#: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:45 -msgid "Here’s a temporary password they can use to log in and then change their password." -msgstr "Her er ett midlertidig passord de kan bruke for Ã¥ logge inn og bytte passordet." - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:388 -msgid "We've sent them an email with instructions for creating a new password." -msgstr "Vi har sendt dem en e-post med instruksjoner for Ã¥ lage ett nytt passord." - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:102 -msgid "Active" -msgstr "Aktiv" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:103 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:128 -msgid "Deactivated" -msgstr "Deaktivert" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:116 -msgid "Add someone" -msgstr "Legg til noen" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:133 -msgid "Last Login" -msgstr "Siste innlogging" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 -msgid "Signed up via Google" -msgstr "Meldt inn via Google" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 -msgid "Signed up via LDAP" -msgstr "Meldt inn via LDAP" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 -msgid "Reactivate this account" -msgstr "Reaktiver denne kontoen" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 -msgid "Never" -msgstr "Aldri" - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:31 -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} table" -msgid_plural "{0} tables" -msgstr[0] "{0} tabell" -msgstr[1] "{0} tabeller" - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:49 -msgid " will be " -msgstr " vil bli " - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:52 -msgid "given access to" -msgstr "gitt tilgang til" - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:57 -#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:26 -#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:36 -msgid " and " -msgstr " og " - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:60 -msgid "denied access to" -msgstr "nektet tilgang til" - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:74 -msgid " will no longer be able to " -msgstr " vil ikke lenger kunne " - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:75 -msgid " will now be able to " -msgstr "vil nÃ¥ kunne " - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:83 -msgid " native queries for " -msgstr " lokal spørring for " - -#: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 -msgid "Permissions" -msgstr "Tillatelser" - -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:32 -msgid "Save permissions?" -msgstr "Lagre tillatelser?" - -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:38 -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:161 -msgid "Save Changes" -msgstr "Lagre endringer" - -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:44 -msgid "Discard changes?" -msgstr "Forkast endringer?" - -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:46 -msgid "No changes to permissions will be made." -msgstr "Ingen endringer i tillatelser vil bli gjort." - -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:65 -msgid "You've made changes to permissions." -msgstr "Du har gjort endringer med tilganger" - -#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:55 -msgid "Permissions for this collection" -msgstr "Tilganger for denne samlingen" - -#: frontend/src/metabase/admin/permissions/containers/PermissionsApp.jsx:56 -msgid "You have unsaved changes" -msgstr "Du har ulagrede endringer" - -#: frontend/src/metabase/admin/permissions/containers/PermissionsApp.jsx:57 -msgid "Do you want to leave this page and discard your changes?" -msgstr "Vil du gÃ¥ bort fra siden uten Ã¥ lagre endringene?" - -#: frontend/src/metabase/admin/permissions/permissions.js:126 -msgid "Sorry, an error occurred." -msgstr "Beklager, en feil oppstod." - -#: frontend/src/metabase/admin/permissions/selectors.js:65 -msgid "Administrators always have the highest level of access to everything in Metabase." -msgstr "Administratorer har alltid høyeste tilgangsnivÃ¥ til alt i Metabase." - -#: frontend/src/metabase/admin/permissions/selectors.js:67 -msgid "Every Metabase user belongs to the All Users group. If you want to limit or restrict a group's access to something, make sure the All Users group has an equal or lower level of access." -msgstr "Hver Metabase bruker tilhører i \"alle brukere\" gruppen. Hvis du vil begrense gruppe tilgang til noe, valider om \"alle brukere\" gruppen har samme eller mindre nivÃ¥ med tilganger." - -#: frontend/src/metabase/admin/permissions/selectors.js:69 -msgid "MetaBot is Metabase's Slack bot. You can choose what it has access to here." -msgstr "MetaBot er Metabase sin Slack-bot. Du kan velge hva den skal ha tilgang til her." - -#: frontend/src/metabase/admin/permissions/selectors.js:122 -msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." -msgstr "Gruppen {0} kan ha tilgang til et annet sett av {1} enn denne gruppen, som kan gi gruppen tilgang til noe av {2}" - -#: frontend/src/metabase/admin/permissions/selectors.js:127 -msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." -msgstr "\"{0}\"-gruppen har et høyere nivÃ¥ av adgang enn dette, det vil overstyre denne innstillingen. Du bør begrense eller fjerne \"{1}\"-gruppens tilgang til denne ressursen." - -#: frontend/src/metabase/admin/permissions/selectors.js:157 -msgid "Limit" -msgstr "Grense" - -#: frontend/src/metabase/admin/permissions/selectors.js:157 -msgid "Revoke" -msgstr "Fjern" - -#: frontend/src/metabase/admin/permissions/selectors.js:159 -msgid "access even though \"{0}\" has greater access?" -msgstr "tilgang selv om \"{0}\" har høyere tilgangsnivÃ¥?" - -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 -msgid "Limit access" -msgstr "Tilgangsgrense" - -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 -msgid "Revoke access" -msgstr "Fjern tilgang" - -#: frontend/src/metabase/admin/permissions/selectors.js:171 -msgid "Change access to this database to limited?" -msgstr "Bytt tilgang til denne databasen til begrenset?" - -#: frontend/src/metabase/admin/permissions/selectors.js:172 -msgid "Change" -msgstr "Bytt" - -#: frontend/src/metabase/admin/permissions/selectors.js:185 -msgid "Allow Raw Query Writing?" -msgstr "Tillatt direkte spørringer?" - -#: frontend/src/metabase/admin/permissions/selectors.js:186 -msgid "This will also change this group's data access to Unrestricted for this database." -msgstr "Dette vil ogsÃ¥ endre denne gruppens data tilgang til ubegrenset for denne databasen." - -#: frontend/src/metabase/admin/permissions/selectors.js:187 -msgid "Allow" -msgstr "Tillatt" - -#: frontend/src/metabase/admin/permissions/selectors.js:224 -msgid "Revoke access to all tables?" -msgstr "Fjern tilgang til alle tabeller?" - -#: frontend/src/metabase/admin/permissions/selectors.js:225 -msgid "This will also revoke this group's access to raw queries for this database." -msgstr "Dette vil ogsÃ¥ fjerne denne gruppens tilgang til rÃ¥ spørringer for denne databasen." - -#: frontend/src/metabase/admin/permissions/selectors.js:254 -msgid "Grant unrestricted access" -msgstr "Gi ubegrenset tilgang" - -#: frontend/src/metabase/admin/permissions/selectors.js:255 -msgid "Unrestricted access" -msgstr "Ubegrenset tilgang" - -#: frontend/src/metabase/admin/permissions/selectors.js:262 -msgid "Limited access" -msgstr "Begrenset tilgang" - -#: frontend/src/metabase/admin/permissions/selectors.js:270 -msgid "No access" -msgstr "Ingen tilgang" - -#: frontend/src/metabase/admin/permissions/selectors.js:276 -msgid "Write raw queries" -msgstr "Skriv rÃ¥ spørringer" - -#: frontend/src/metabase/admin/permissions/selectors.js:277 -msgid "Can write raw queries" -msgstr "Kan skrive direkte spørringer" - -#: frontend/src/metabase/admin/permissions/selectors.js:284 -msgid "Curate collection" -msgstr "Organiser samlingen" - -#: frontend/src/metabase/admin/permissions/selectors.js:291 -msgid "View collection" -msgstr "Vis samling" - -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 -msgid "Data Access" -msgstr "Tilgang til data" - -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 -msgid "View tables" -msgstr "Vis tabeller" - -#: frontend/src/metabase/admin/permissions/selectors.js:593 -msgid "SQL Queries" -msgstr "SQL spørsmÃ¥l" - -#: frontend/src/metabase/admin/permissions/selectors.js:663 -msgid "View schemas" -msgstr "Vis skjemaer" - -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 -msgid "Data Model" -msgstr "Datamodell" - -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:11 -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:118 -msgid "Sign in with Google" -msgstr "Loginn med Google" - -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:12 -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:120 -msgid "Allows users with existing Metabase accounts to login with a Google account that matches their email address in addition to their Metabase username and password." -msgstr "Tillat brukere med eksisterende Metabase konto Ã¥ logge inn med en Google konto som tilsvarer deres e-postadresse i tillegg til Metabase brukernavn og passord." - -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:16 -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:27 -#: frontend/src/metabase/components/ChannelSetupMessage.jsx:32 -msgid "Configure" -msgstr "Konfigurer" - -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:22 -#: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:13 -#: frontend/src/metabase/admin/settings/selectors.js:204 -msgid "LDAP" -msgstr "LDAP" - -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:23 -#, fuzzy -msgid "Allows users within your LDAP directory to log in to Metabase with their LDAP credentials, and allows automatic mapping of LDAP groups to Metabase groups." -msgstr "Tillat brukere innenfor din LDAP katalog til Ã¥ logge inn pÃ¥ Metabase med deres LDAP konto, i tillegg til at Metabase kan tildele Metabase grupper som tilsvarer LDAP grupper." - -#: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:17 -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:69 -#: frontend/src/metabase/admin/settings/selectors.js:157 -msgid "That's not a valid email address" -msgstr "Det er ikke en gyldig e-postadresse" - -#: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:21 -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:73 -msgid "That's not a valid integer" -msgstr "Det er ikke ett heltall" - -#: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:28 -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:161 -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:223 -msgid "Changes saved!" -msgstr "Endringer lagret!" - -#: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:157 -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:132 -msgid "Looks like we ran into some problems" -msgstr "Ser ut som det har oppstÃ¥tt noen problemer" - -#: frontend/src/metabase/admin/settings/components/SettingsEmailForm.jsx:12 -msgid "Send test email" -msgstr "Send test e-post" - -#: frontend/src/metabase/admin/settings/components/SettingsEmailForm.jsx:13 -msgid "Sending..." -msgstr "Sender..." - -#: frontend/src/metabase/admin/settings/components/SettingsEmailForm.jsx:14 -msgid "Sent!" -msgstr "Sendt!" - -#: frontend/src/metabase/admin/settings/components/SettingsEmailForm.jsx:82 -msgid "Clear" -msgstr "Rens" - -#: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:12 -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:113 -#: frontend/src/metabase/admin/settings/selectors.js:199 -msgid "Authentication" -msgstr "Autentisering" - -#: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:18 -msgid "Server Settings" -msgstr "Tjenerinstillinger" - -#: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:29 -msgid "User Schema" -msgstr "Bruker skjema" - -#: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:33 -msgid "Attributes" -msgstr "Attributter" - -#: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:42 -msgid "Group Schema" -msgstr "Gruppe skjema" - -#: frontend/src/metabase/admin/settings/components/SettingsSetting.jsx:28 -msgid "Using " -msgstr "Bruker " - -#: frontend/src/metabase/admin/settings/components/SettingsSetupList.jsx:105 -msgid "Getting set up" -msgstr "Blir satt opp" - -#: frontend/src/metabase/admin/settings/components/SettingsSetupList.jsx:106 -msgid "A few things you can do to get the most out of Metabase." -msgstr "Ett par ting du kan gjøre for Ã¥ fÃ¥ mest mulig ut av Metabase." - -#: frontend/src/metabase/admin/settings/components/SettingsSetupList.jsx:115 -msgid "Recommended next step" -msgstr "Anbefalt neste steg" - -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:114 -msgid "Google Sign-In" -msgstr "Google innlogging" - -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:123 -msgid "To allow users to sign in with Google you'll need to give Metabase a Google Developers console application client ID. It only takes a few steps and instructions on how to create a key can be found {0}" -msgstr "For Ã¥ tillate at brukere logger pÃ¥ via Google mÃ¥ du gi Metabase en Google Developers console application client ID. Det tar kun noen fÃ¥ steg og instruksjoner for Ã¥ lage en nøkkel kan finnes {0}" - -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:137 -msgid "Your Google client ID" -msgstr "Din Google klient ID" - -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:142 -msgid "Allow users to sign up on their own if their Google account email address is from:" -msgstr "Tillatt brukere Ã¥ registrere seg hvis Google-kontoen kommer fra:" - -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:242 -msgid "Answers sent right to your Slack #channels" -msgstr "Svar er sendt direkte til din Slack #kanaler" - -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:251 -msgid "Create a Slack Bot User for MetaBot" -msgstr "Lag en Slack Bot bruker for MetaBot" - -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:261 -msgid "Once you're there, give it a name and click {0}. Then copy and paste the Bot API Token into the field below. Once you are done, create a \"metabase_files\" channel in Slack. Metabase needs this to upload graphs." -msgstr "NÃ¥r du er der, gi den ett navn og klikk pÃ¥ {0}.\n" -"Kopier og lim inn Bot API nøkkel i understÃ¥ende felt. NÃ¥r du er ferdig, lag en \"metabase_files\" kanal i Slack. Metabase trenger denne til Ã¥ laste opp grafer." - -#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:91 -msgid "You're running Metabase {0} which is the latest and greatest!" -msgstr "Du bruker Metabase {0} som er den siste og beste!" - -#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:100 -msgid "Metabase {0} is available. You're running {1}" -msgstr "Metabase {0} er tilgjengelig. Du bruker {1}" - -#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -msgid "Update" -msgstr "Oppdater" - -#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:117 -msgid "What's Changed:" -msgstr "Hva som blir endret:" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:131 -msgid "Add a map" -msgstr "Legg til kart" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:184 -#: frontend/src/metabase/lib/core.js:105 -msgid "URL" -msgstr "Nettlink" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:201 -msgid "Delete custom map" -msgstr "Slett tilpasset kart" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 -#: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 -#: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 -msgid "Remove" -msgstr "Slett" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 -#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 -#: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 -msgid "Select…" -msgstr "Velg..." - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:243 -msgid "Sample values:" -msgstr "Prøve verdier:" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:281 -msgid "Add a new map" -msgstr "Legg til nytt kart" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:281 -msgid "Edit map" -msgstr "Endre kart" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:282 -msgid "What do you want to call this map?" -msgstr "Hva vil du kalle dette kartet?" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:287 -msgid "e.g. United Kingdom, Brazil, Mars" -msgstr "Eksempel Norge, Europa, MÃ¥nen" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:294 -msgid "URL for the GeoJSON file you want to use" -msgstr "Nettlink for GeoJSON fil du vil bruke" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:300 -msgid "Like https://my-mb-server.com/maps/my-map.json" -msgstr "Eksempel https://min-mb-tjener.no/kart/mitt-kart.json" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:311 -msgid "Refresh" -msgstr "Oppdater" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:311 -msgid "Load" -msgstr "Last inn" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:317 -msgid "Which property specifies the region’s identifier?" -msgstr "Hvilken verdi spesifiserer regionale identifikatorer?" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:326 -msgid "Which property specifies the region’s display name?" -msgstr "Hvilken verdi spesifiserer regionens visningsnavn?" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:347 -msgid "Load a GeoJSON file to see a preview" -msgstr "Last inn en GeoJSON-fil for Ã¥ se en forhÃ¥ndsvisning" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:365 -msgid "Save map" -msgstr "Lagre kart" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:365 -msgid "Add map" -msgstr "Legg til kart" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLegalese.jsx:7 -msgid "Using embedding" -msgstr "Bruk innebygging" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLegalese.jsx:9 -msgid "By enabling embedding you're agreeing to the embedding license located at" -msgstr "Ved Ã¥ aktivere innebygging er du enig med innebygging lisensen som fins her" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLegalese.jsx:20 -msgid "In plain English, when you embed charts or dashboards from Metabase in your own application, that application isn't subject to the Affero General Public License that covers the rest of Metabase, provided you keep the Metabase logo and the \"Powered by Metabase\" visible on those embeds. You should, however, read the license text linked above as that is the actual license that you will be agreeing to by enabling this feature." -msgstr "Kort oppsummert, nÃ¥r du bygger inn grafer eller infotavler fra Metabase i din egen applikasjon, sÃ¥ blir ikke den applikasjonen underlagt \"Affero General Publicus Lovende\" som dekker resten av Metabase, sÃ¥ lenge Metabase-logoen og teksten \"Powered by Metabase\" er synlig pÃ¥ alle innbygginger. Du burde uansett lese selve lisensen lenket til ovenfor ettersom det er den faktiske lisensen som du godtar ved Ã¥ aktivere denne funksjonen." - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLegalese.jsx:33 -msgid "Enable" -msgstr "Aktiver" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLevel.jsx:24 -msgid "Premium embedding enabled" -msgstr "Premium innebygging aktivert" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLevel.jsx:26 -msgid "Enter the token you bought from the Metabase Store" -msgstr "Legg inn nøkkelen du kjøpte fra Metabase butikken" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLevel.jsx:53 -msgid "Premium embedding lets you disable \"Powered by Metabase\" on your embedded dashboards and questions." -msgstr "Premium innebygging lar deg inaktiveres \"Powered by Metabase\" pÃ¥ innebygde infotavler og spørsmÃ¥l." - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLevel.jsx:60 -msgid "Buy a token" -msgstr "Kjøp en nøkkel" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLevel.jsx:63 -msgid "Enter a token" -msgstr "Legg inn en nøkkel" - -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:150 -msgid "Edit Mappings" -msgstr "Rediger tilordninger" - -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:156 -msgid "Group Mappings" -msgstr "Grupper tilordninger" - -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:163 -msgid "Create a mapping" -msgstr "Lag en tilordning" - -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:165 -msgid "Mappings allow Metabase to automatically add and remove users from groups based on the membership information provided by the\n" -"directory server. Membership to the Admin group can be granted through mappings, but will not be automatically removed as a\n" -"failsafe measure." -msgstr "Tilordninger tillater Metabase Ã¥ automatisk legge til og fjerne brukere fra grupper basert pÃ¥ medlemsinformasjonen i LDAP-tjeneren. Medlemskap i Admin-gruppen kan gies gjennom tilordningene, men vil ikke automatisk fjernes som sikring mot Ã¥ bli lÃ¥st ute." - -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 -msgid "Distinguished Name" -msgstr "Unikt navn" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:92 -msgid "Public Link" -msgstr "Offentlig link" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:93 -msgid "Revoke Link" -msgstr "Tilbakekall linken" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:123 -msgid "Disable this link?" -msgstr "Deaktiver nettlinken?" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:124 -msgid "They won't work anymore, and can't be restored, but you can create new links." -msgstr "De vil ikke fungere lenger, og de kan ikke tilbakekalles, men du kan lage nye nettlinker." - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:151 -#, fuzzy -msgid "Public Dashboard Listing" -msgstr "Offentlig oppføring av infotavle" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:154 -msgid "No dashboards have been publicly shared yet." -msgstr "Ingen infotavler har blitt offentlig publisert enda." - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:162 -msgid "Public Card Listing" -msgstr "Offentlig kortvisning" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:165 -msgid "No questions have been publicly shared yet." -msgstr "Ingen spørsmÃ¥l har blitt offentlig publisert enda " - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:174 -msgid "Embedded Dashboard Listing" -msgstr "Innebygd visning av infotavle" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:175 -msgid "No dashboards have been embedded yet." -msgstr "Ingen infotavler har blitt bygget inn som en del av en annen side enda." - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:185 -msgid "Embedded Card Listing" -msgstr "Innebygd kortvisning" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:186 -msgid "No questions have been embedded yet." -msgstr "Ingen spørsmÃ¥l har blitt innebygd enda." - -#: frontend/src/metabase/admin/settings/components/widgets/SecretKeyWidget.jsx:35 -msgid "Regenerate embedding key?" -msgstr "Lag ny innebyggingsnøkkel?" - -#: frontend/src/metabase/admin/settings/components/widgets/SecretKeyWidget.jsx:36 -msgid "This will cause existing embeds to stop working until they are updated with the new key." -msgstr "Dette vil fÃ¥ eksisterende innebygginger til Ã¥ stoppe Ã¥ virke til de er oppdatert med ny nøkkel." - -#: frontend/src/metabase/admin/settings/components/widgets/SecretKeyWidget.jsx:39 -msgid "Regenerate key" -msgstr "Lag nøkkel pÃ¥ nytt" - -#: frontend/src/metabase/admin/settings/components/widgets/SecretKeyWidget.jsx:47 -msgid "Generate Key" -msgstr "Lag nøkkel" - -#: frontend/src/metabase/admin/settings/components/widgets/SettingToggle.jsx:11 -#: frontend/src/metabase/admin/settings/selectors.js:77 -msgid "Enabled" -msgstr "Aktivert" - -#: frontend/src/metabase/admin/settings/components/widgets/SettingToggle.jsx:11 -#: frontend/src/metabase/admin/settings/selectors.js:82 -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:104 -msgid "Disabled" -msgstr "Deaktivert" - -#: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:120 -msgid "Unknown setting {0}" -msgstr "Ukjent innstilling {0}" - -#: frontend/src/metabase/admin/settings/selectors.js:23 -msgid "Setup" -msgstr "Oppsett" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 -#: frontend/src/metabase/admin/settings/selectors.js:28 -msgid "General" -msgstr "Generelt" - -#: frontend/src/metabase/admin/settings/selectors.js:33 -msgid "Site Name" -msgstr "Sidenavn" - -#: frontend/src/metabase/admin/settings/selectors.js:38 -msgid "Site URL" -msgstr "Side nettlink" - -#: frontend/src/metabase/admin/settings/selectors.js:43 -msgid "Email Address for Help Requests" -msgstr "E-postadresse for hjelp" - -#: frontend/src/metabase/admin/settings/selectors.js:48 -msgid "Report Timezone" -msgstr "Rapportering tidssone" - -#: frontend/src/metabase/admin/settings/selectors.js:51 -msgid "Database Default" -msgstr "Database standard" - -#: frontend/src/metabase/admin/settings/selectors.js:54 -msgid "Select a timezone" -msgstr "Velg en tidssone" - -#: frontend/src/metabase/admin/settings/selectors.js:54 -msgid "Not all databases support timezones, in which case this setting won't take effect." -msgstr "Ikke alle databaser støtter tidssoner, hvilket gjør at denne innstillingen ikke vil ta effekt." - -#: frontend/src/metabase/admin/settings/selectors.js:59 -msgid "Language" -msgstr "SprÃ¥k" - -#: frontend/src/metabase/admin/settings/selectors.js:65 -msgid "Select a language" -msgstr "Velg ett sprÃ¥k" - -#: frontend/src/metabase/admin/settings/selectors.js:69 -msgid "Anonymous Tracking" -msgstr "Anonym sporing" - -#: frontend/src/metabase/admin/settings/selectors.js:74 -msgid "Friendly Table and Field Names" -msgstr "Vennlig tabell og feltnavn" - -#: frontend/src/metabase/admin/settings/selectors.js:80 -msgid "Only replace underscores and dashes with spaces" -msgstr "Erstatt understrek og bindestreker med mellomrom" - -#: frontend/src/metabase/admin/settings/selectors.js:88 -msgid "Enable Nested Queries" -msgstr "Aktiver nøstede spørringer" - -#: frontend/src/metabase/admin/settings/selectors.js:99 -msgid "Updates" -msgstr "Oppdateringer" - -#: frontend/src/metabase/admin/settings/selectors.js:104 -msgid "Check for updates" -msgstr "Sjekk etter oppdateringer" - -#: frontend/src/metabase/admin/settings/selectors.js:115 -msgid "SMTP Host" -msgstr "SMTP vert" - -#: frontend/src/metabase/admin/settings/selectors.js:123 -msgid "SMTP Port" -msgstr "SMTP port" - -#: frontend/src/metabase/admin/settings/selectors.js:127 -#: frontend/src/metabase/admin/settings/selectors.js:227 -msgid "That's not a valid port number" -msgstr "Det er ikke ett gyldig port nummer" - -#: frontend/src/metabase/admin/settings/selectors.js:131 -msgid "SMTP Security" -msgstr "SMTP sikkerhet" - -#: frontend/src/metabase/admin/settings/selectors.js:139 -msgid "SMTP Username" -msgstr "SMTP brukernavn" - -#: frontend/src/metabase/admin/settings/selectors.js:146 -msgid "SMTP Password" -msgstr "SMTP passord" - -#: frontend/src/metabase/admin/settings/selectors.js:153 -msgid "From Address" -msgstr "Fra e-postadresse" - -#: frontend/src/metabase/admin/settings/selectors.js:167 -msgid "Slack API Token" -msgstr "Slack API nøkkel" - -#: frontend/src/metabase/admin/settings/selectors.js:169 -msgid "Enter the token you received from Slack" -msgstr "Legg inn nøkkelen du fikk fra Slack" - -#: frontend/src/metabase/admin/settings/selectors.js:186 -msgid "Single Sign-On" -msgstr "Singel innlogging" - -#: frontend/src/metabase/admin/settings/selectors.js:210 -msgid "LDAP Authentication" -msgstr "LDAP autorisering" - -#: frontend/src/metabase/admin/settings/selectors.js:216 -msgid "LDAP Host" -msgstr "LDAP vert" - -#: frontend/src/metabase/admin/settings/selectors.js:224 -msgid "LDAP Port" -msgstr "LDAP port" - -#: frontend/src/metabase/admin/settings/selectors.js:231 -msgid "LDAP Security" -msgstr "LDAP sikkerhet" - -#: frontend/src/metabase/admin/settings/selectors.js:239 -msgid "Username or DN" -msgstr "Brukernavn eller DN" - -#: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 -#: frontend/src/metabase/user/components/UserSettings.jsx:59 -msgid "Password" -msgstr "Passord" - -#: frontend/src/metabase/admin/settings/selectors.js:249 -#, fuzzy -msgid "User search base" -msgstr "Bruker søkebase" - -#: frontend/src/metabase/admin/settings/selectors.js:255 -msgid "User filter" -msgstr "Brukerfilter" - -#: frontend/src/metabase/admin/settings/selectors.js:261 -msgid "Check your parentheses" -msgstr "Sjekk dine parenteser" - -#: frontend/src/metabase/admin/settings/selectors.js:267 -msgid "Email attribute" -msgstr "E-post attributter" - -#: frontend/src/metabase/admin/settings/selectors.js:272 -msgid "First name attribute" -msgstr "Fornavn attributter" - -#: frontend/src/metabase/admin/settings/selectors.js:277 -msgid "Last name attribute" -msgstr "Etternavn attributter" - -#: frontend/src/metabase/admin/settings/selectors.js:282 -msgid "Synchronize group memberships" -msgstr "Synkroniser gruppe medlemskap" - -#: frontend/src/metabase/admin/settings/selectors.js:288 -msgid "Group search base" -msgstr "Gruppesøkebase" - -#: frontend/src/metabase/admin/settings/selectors.js:297 -msgid "Maps" -msgstr "Kart" - -#: frontend/src/metabase/admin/settings/selectors.js:302 -msgid "Map tile server URL" -msgstr "URL til tjener for kartfliser" - -#: frontend/src/metabase/admin/settings/selectors.js:303 -msgid "Metabase uses OpenStreetMaps by default." -msgstr "Metabase bruker OpenStreetMaps som standard" - -#: frontend/src/metabase/admin/settings/selectors.js:308 -msgid "Custom Maps" -msgstr "Egendefinerte kart" - -#: frontend/src/metabase/admin/settings/selectors.js:309 -msgid "Add your own GeoJSON files to enable different region map visualizations" -msgstr "Legg til din egen GeoJSON fil for Ã¥ aktivere forskjellige regionale kartvisualiseringer" - -#: frontend/src/metabase/admin/settings/selectors.js:328 -msgid "Public Sharing" -msgstr "Offentlig deling" - -#: frontend/src/metabase/admin/settings/selectors.js:333 -msgid "Enable Public Sharing" -msgstr "Aktiver offentlig deling" - -#: frontend/src/metabase/admin/settings/selectors.js:338 -msgid "Shared Dashboards" -msgstr "Delte infotavler" - -#: frontend/src/metabase/admin/settings/selectors.js:344 -msgid "Shared Questions" -msgstr "Delte spørsmÃ¥l" - -#: frontend/src/metabase/admin/settings/selectors.js:351 -msgid "Embedding in other Applications" -msgstr "Innebygd i andre applikasjoner" - -#: frontend/src/metabase/admin/settings/selectors.js:378 -msgid "Enable Embedding Metabase in other Applications" -msgstr "Aktiver innebygging av Metabase i andre applikasjoner" - -#: frontend/src/metabase/admin/settings/selectors.js:388 -msgid "Embedding secret key" -msgstr "Hemmelig innebyggingsnøkkel" - -#: frontend/src/metabase/admin/settings/selectors.js:394 -msgid "Embedded Dashboards" -msgstr "Innebygde infotavler" - -#: frontend/src/metabase/admin/settings/selectors.js:400 -msgid "Embedded Questions" -msgstr "Innebygde spørsmÃ¥l" - -#: frontend/src/metabase/admin/settings/selectors.js:407 -msgid "Caching" -msgstr "Mellomlagring" - -#: frontend/src/metabase/admin/settings/selectors.js:412 -msgid "Enable Caching" -msgstr "Aktiver mellomlagring" - -#: frontend/src/metabase/admin/settings/selectors.js:417 -msgid "Minimum Query Duration" -msgstr "Minimum spørringstid" - -#: frontend/src/metabase/admin/settings/selectors.js:424 -#, fuzzy -msgid "Cache Time-To-Live (TTL) multiplier" -msgstr "Mellomlagre Time-To-Live (TTL) multiplikator" - -#: frontend/src/metabase/admin/settings/selectors.js:431 -msgid "Max Cache Entry Size" -msgstr "Maks mellomlagrings oppføringsstørrelse" - -#: frontend/src/metabase/alert/alert.js:60 -msgid "Your alert is all set up." -msgstr "Dine varsel er satt opp." - -#: frontend/src/metabase/alert/alert.js:101 -msgid "Your alert was updated." -msgstr "Dine varsler er oppdatert." - -#: frontend/src/metabase/alert/alert.js:149 -msgid "The alert was successfully deleted." -msgstr "Varselen ble vellykket slettet." - -#: frontend/src/metabase/auth/auth.js:32 -msgid "Please enter a valid formatted email address." -msgstr "Vennligst skriv inn en gyldig e-postadresse." - -#: frontend/src/metabase/auth/auth.js:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:110 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:69 -msgid "Passwords do not match" -msgstr "Passordene er ikke like" - -#: frontend/src/metabase/auth/components/BackToLogin.jsx:6 -msgid "Back to login" -msgstr "Tilbake til innlogging" - -#: frontend/src/metabase/auth/components/GoogleNoAccount.jsx:15 -msgid "No Metabase account exists for this Google account." -msgstr "Ingen Metabase konto eksisterer for denne Google kontoen." - -#: frontend/src/metabase/auth/components/GoogleNoAccount.jsx:17 -msgid "You'll need an administrator to create a Metabase account before you can use Google to log in." -msgstr "Du mÃ¥ ha en administrator for og lage en Metabase konto før du kan logge inn med Google kontoen." - -#: frontend/src/metabase/auth/components/SSOLoginButton.jsx:18 -msgid "Sign in with {0}" -msgstr "Logg inn med {0}" - -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:56 -msgid "Please contact an administrator to have them reset your password" -msgstr "Vennligst kontakt en administrator som kan tilbakestille passordet ditt" - -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:69 -msgid "Forgot password" -msgstr "Glemt passord" - -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:84 -msgid "The email you use for your Metabase account" -msgstr "E-postadresse du bruker til din Metabase konto" - -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 -msgid "Send password reset email" -msgstr "Send e-post for tilbskestilling av passord" - -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 -msgid "Check your email for instructions on how to reset your password." -msgstr "Sjekk din e-post konto for instruksjoner pÃ¥ hvordan du skal tilbakestille passordet." - -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 -msgid "Sign in to Metabase" -msgstr "Logg inn pÃ¥ Metabase" - -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 -msgid "OR" -msgstr "ELLER" - -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 -msgid "Username or email address" -msgstr "Brukernavn eller e-postadresse" - -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 -msgid "Sign in" -msgstr "Logg inn" - -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 -msgid "I seem to have forgotten my password" -msgstr "Jeg har dessverre glemt passordet mitt" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:105 -msgid "request a new reset email" -msgstr "Be om en ny tilbakestillingsepost" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:123 -msgid "Whoops, that's an expired link" -msgstr "Oops, nettlinken har utløpt" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:125 -msgid "For security reasons, password reset links expire after a little while. If you still need\n" -"to reset your password, you can {0}." -msgstr "PÃ¥ grunn av sikkerhetsmessige grunner, passord tilbakestillingslinker utgÃ¥r etter en liten stund. Hvis du fortsatt trenger Ã¥ tilbakestille passordet, kan du {0}." - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 -msgid "New password" -msgstr "Nytt passord" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:152 -msgid "To keep your data secure, passwords {0}" -msgstr "For Ã¥ holde dataen trygg er passordet {0}" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:166 -msgid "Create a new password" -msgstr "Lag ett nytt passord" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 -msgid "Make sure its secure like the instructions above" -msgstr "Forsikre deg om at det er sikkert som instruksjonene over" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 -msgid "Confirm new password" -msgstr "Bekreft nytt passord" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 -msgid "Make sure it matches the one you just entered" -msgstr "Forsikre deg om at det er likt som det du akkurat skrev inn" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 -msgid "Your password has been reset." -msgstr "Passordet ditt har blitt tilbakestilt." - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 -msgid "Sign in with your new password" -msgstr "Logg inn med ditt nye passord" - -#: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 -msgid "Save failed" -msgstr "Lagring feilet" - -#: frontend/src/metabase/components/ActionButton.jsx:54 -#: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 -msgid "Saved" -msgstr "Lagret" - -#: frontend/src/metabase/components/Alert.jsx:12 -msgid "Ok" -msgstr "Ok" - -#: frontend/src/metabase/components/ArchiveCollectionModal.jsx:41 -msgid "Archive this collection?" -msgstr "Arkiver denne samlingen?" - -#: frontend/src/metabase/components/ArchiveCollectionModal.jsx:42 -msgid "The dashboards, collections, and pulses in this collection will also be archived." -msgstr "Infotavlene, samlingene og pulsene i denne samlingen vil ogsÃ¥ bli arkivert." - -#: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 -#: frontend/src/metabase/components/EntityMenu.info.js:31 -#: frontend/src/metabase/components/EntityMenu.info.js:87 -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 -msgid "Archive" -msgstr "Arkiv" - -#: frontend/src/metabase/containers/ErrorPages.jsx:63 -msgid "This {0} has been archived" -msgstr "{0} har blitt arkiverr" - -#: frontend/src/metabase/components/CollectionLanding.jsx:714 -msgid "View the archive" -msgstr "Se arkivet" - -#: frontend/src/metabase/components/ArchivedItem.jsx:42 -msgid "Unarchive this {0}" -msgstr "Dearkiver {0}" - -#: frontend/src/metabase/components/BrowseApp.jsx:39 -#: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 -msgid "Our data" -msgstr "VÃ¥r data" - -#: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 -msgid "X-ray this table" -msgstr "Kjør X-ray pÃ¥ denne tabellen" - -#: frontend/src/metabase/components/BrowseApp.jsx:163 -msgid "Learn about this table" -msgstr "Lær mer om denne tabellen" - -#: frontend/src/metabase/components/Button.info.js:11 -#: frontend/src/metabase/components/Button.info.js:12 -#: frontend/src/metabase/components/Button.info.js:13 -msgid "Clickity click" -msgstr "Klikkende klikk" - -#: frontend/src/metabase/components/ButtonWithStatus.jsx:9 -msgid "Saved!" -msgstr "Lagret!" - -#: frontend/src/metabase/components/ButtonWithStatus.jsx:10 -msgid "Saving failed." -msgstr "Lagring feilet." - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "Su" -msgstr "Sø" - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "Mo" -msgstr "Ma" - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "Tu" -msgstr "Ti" - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "We" -msgstr "On" - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "Th" -msgstr "To" - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "Fr" -msgstr "Fr" - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "Sa" -msgstr "Lø" - -#: frontend/src/metabase/components/ChannelSetupMessage.jsx:41 -msgid "Your admin's email address" -msgstr "Din administrator e-postadresse" - -#: frontend/src/metabase/components/ChannelSetupModal.jsx:37 -msgid "To send {0}, you'll need to set up {1} integration." -msgstr "For og sende {0} mÃ¥ du sette opp {1} integrasjonen." - -#: frontend/src/metabase/components/ChannelSetupModal.jsx:38 -#: frontend/src/metabase/components/ChannelSetupModal.jsx:41 -msgid " or " -msgstr " eller " - -#: frontend/src/metabase/components/ChannelSetupModal.jsx:40 -msgid "To send {0}, an admin needs to set up {1} integration." -msgstr "For og sende {0} mÃ¥ en administrator sette opp {1} integrasjonen." - -#: frontend/src/metabase/components/CollectionEmptyState.jsx:15 -msgid "This collection is empty, like a blank canvas" -msgstr "Denne samlingen er tom, som ett tomt lerret" - -#: frontend/src/metabase/components/CollectionEmptyState.jsx:16 -msgid "You can use collections to organize and group dashboards, questions and pulses for your team or yourself" -msgstr "Du kan bruke samlinger for Ã¥ organisere og gruppere infotavler, spørsmÃ¥l og pulser for ditt lag eller deg selv." - -#: frontend/src/metabase/components/CollectionEmptyState.jsx:28 -msgid "Create another collection" -msgstr "Lag en ny samling" - -#: frontend/src/metabase/components/CollectionLanding.jsx:68 -msgid "Dashboards let you collect and share data in one place." -msgstr "Infotavler lar deg samle og dele data fra ett sted." - -#: frontend/src/metabase/components/CollectionLanding.jsx:77 -msgid "Pulses let you send out the latest data to your team on a schedule via email or slack." -msgstr "Pulser lar deg sende ut de siste dataene til ditt lag regelmessig via e-post eller Slack." - -#: frontend/src/metabase/components/CollectionLanding.jsx:86 -#, fuzzy -msgid "Questions are a saved look at your data." -msgstr "SpørsmÃ¥l er en lagret visning av dataene dine." - -#: frontend/src/metabase/components/CollectionLanding.jsx:286 -#, fuzzy -msgid "Pins" -msgstr "Festet" - -#: frontend/src/metabase/components/CollectionLanding.jsx:340 -msgid "Drag something here to pin it to the top" -msgstr "Dra noe hit for og feste det til toppen" - -#: frontend/src/metabase/admin/permissions/selectors.js:740 -#: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 -msgid "Collections" -msgstr "Samlinger" - -#: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 -msgid "Drag here to un-pin" -msgstr "Dra hit for og fjerne festet" - -#: frontend/src/metabase/components/CollectionLanding.jsx:489 -msgid "{0} item selected" -msgid_plural "{0} items selected" -msgstr[0] "{0} element valgt" -msgstr[1] "{0} elementer valgt" - -#: frontend/src/metabase/components/CollectionLanding.jsx:519 -msgid "Move {0} items?" -msgstr "Flytt {0} elementer" - -#: frontend/src/metabase/components/CollectionLanding.jsx:520 -msgid "Move \"{0}\"?" -msgstr "Flytt \"{0}\"?" - -#: frontend/src/metabase/components/CollectionLanding.jsx:627 -#: frontend/src/metabase/components/EntityMenu.info.js:29 -#: frontend/src/metabase/components/EntityMenu.info.js:85 -#: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 -msgid "Move" -msgstr "Flytt" - -#: frontend/src/metabase/components/CollectionLanding.jsx:691 -msgid "Edit this collection" -msgstr "Rediger denne samlingen" - -#: frontend/src/metabase/components/CollectionLanding.jsx:699 -msgid "Archive this collection" -msgstr "Arkiver denne samlingen" - -#: frontend/src/metabase/components/CollectionList.jsx:67 -#: frontend/src/metabase/entities/collections.js:158 -msgid "My personal collection" -msgstr "Min personlige samling" - -#: frontend/src/metabase/components/CollectionList.jsx:107 -msgid "New collection" -msgstr "Ny samling" - -#: frontend/src/metabase/components/CopyButton.jsx:35 -msgid "Copied!" -msgstr "Kopiert!" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 -msgid "Use an SSH-tunnel for database connections" -msgstr "Bruk en SSH-tunnel for database tilkoblinger" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 -msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" -"This option also provides an extra layer of security when a VPN is not available.\n" -"Enabling this is usually slower than a direct connection." -msgstr "Noen databaseinstallasjoner kan kun kobles til gjennom en SSH bastion-vert.\n" -"Dette alternativet gir ogsÃ¥ et ekstra lag med sikkerhet nÃ¥r VPN ikke er tilgjengelig.\n" -"Det er vanligvis treigere enn en direkte tilkobling." - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 -msgid "This is a large database, so let me choose when Metabase syncs and scans" -msgstr "Dette er en stor database, sÃ¥ la meg velge nÃ¥r Metabase synkroniserer og skanner." - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:296 -msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values.\n" -"If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." -msgstr "Som standard kjører Metabase en lettvekts-synkronisering hver time og en intensiv daglig skann av feltverdier.\n" -"Hvis du har en stor database anbefaler vi at du slÃ¥r pÃ¥ dette og følger med pÃ¥ nÃ¥r og hvor ofte feltverdi-skanningen skjer." - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 -msgid "{0} to generate a Client ID and Client Secret for your project." -msgstr "{0} for Ã¥ generere en Klient ID og en Klient Hemmelighet for ditt prosjekt." - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 -msgid "Click here" -msgstr "Klikk her" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 -msgid "Choose \"Other\" as the application type. Name it whatever you'd like." -msgstr "Velg \"Annet\" som applikasjonstype. Gi den det navnet du vil." - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 -msgid "{0} to get an auth code" -msgstr "{0} for Ã¥ fÃ¥ en autentiseringskode" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 -msgid "with Google Drive permissions" -msgstr "Med Google Drive tillatelse" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 -msgid "To use Metabase with this data you must enable API access in the Google Developers Console." -msgstr "For Ã¥ bruke Metabase med disse dataene mÃ¥ du aktivere API tilgang i Google Developers Console. " - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 -msgid "{0} to go to the console if you haven't already done so." -msgstr "{0} for Ã¥ gÃ¥ til konsollen hvis du ikke allerede har gjort det." - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 -msgid "How would you like to refer to this database?" -msgstr "Hvordan vil du referere til denne databasen?" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 -#: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 -msgid "Next" -msgstr "Neste" - -#: frontend/src/metabase/components/ArchivedItem.jsx:51 -#: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:80 -msgid "Delete this {0}" -msgstr "Slett denne {0}" - -#: frontend/src/metabase/components/EntityItem.jsx:45 -msgid "Pin this item" -msgstr "Fest dette elementet" - -#: frontend/src/metabase/components/EntityItem.jsx:51 -msgid "Move this item" -msgstr "Flytt dette elementet" - -#: frontend/src/metabase/components/EntityMenu.info.js:24 -#: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 -msgid "Edit this question" -msgstr "Rediger dette spørsmÃ¥let" - -#: frontend/src/metabase/components/EntityMenu.info.js:26 -#: frontend/src/metabase/components/EntityMenu.info.js:47 -#: frontend/src/metabase/components/EntityMenu.info.js:82 -#: frontend/src/metabase/components/EntityMenu.info.js:99 -msgid "Action type" -msgstr "Handlingstype" - -#: frontend/src/metabase/components/EntityMenu.info.js:28 -#: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 -msgid "View revision history" -msgstr "Vis revisjonshistorikk" - -#: frontend/src/metabase/components/EntityMenu.info.js:29 -#: frontend/src/metabase/components/EntityMenu.info.js:85 -msgid "Move action" -msgstr "Flytt handling" - -#: frontend/src/metabase/components/EntityMenu.info.js:33 -#: frontend/src/metabase/components/EntityMenu.info.js:89 -msgid "Archive action" -msgstr "Arkiver handling" - -#: frontend/src/metabase/components/EntityMenu.info.js:45 -#: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 -msgid "Add to dashboard" -msgstr "Legg til infotavle" - -#: frontend/src/metabase/components/EntityMenu.info.js:49 -#: frontend/src/metabase/components/EntityMenu.info.js:101 -msgid "Download results" -msgstr "Last ned resultater" - -#: frontend/src/metabase/components/EntityMenu.info.js:51 -#: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 -msgid "Sharing and embedding" -msgstr "Deling og innebygging" - -#: frontend/src/metabase/components/EntityMenu.info.js:53 -#: frontend/src/metabase/components/EntityMenu.info.js:105 -msgid "Another action type" -msgstr "Andre handlingstyper" - -#: frontend/src/metabase/components/EntityMenu.info.js:65 -#: frontend/src/metabase/components/EntityMenu.info.js:67 -#: frontend/src/metabase/components/EntityMenu.info.js:113 -#: frontend/src/metabase/components/EntityMenu.info.js:115 -msgid "Get alerts about this" -msgstr "FÃ¥ varsler om dette" - -#: frontend/src/metabase/components/EntityMenu.info.js:69 -#: frontend/src/metabase/components/EntityMenu.info.js:117 -#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:21 -msgid "View the SQL" -msgstr "Vis SQL'en" - -#: frontend/src/metabase/components/EntitySegments.jsx:18 -msgid "Segments for this" -msgstr "Segmenter for dette" - -#: frontend/src/metabase/components/ErrorDetails.jsx:20 -msgid "Show error details" -msgstr "Vis feil detaljer" - -#: frontend/src/metabase/components/ErrorDetails.jsx:26 -msgid "Here's the full error message" -msgstr "Her er hele feilmeldingen" - -#: frontend/src/metabase/components/ExplorePane.jsx:19 -msgid "Hi, Metabot here." -msgstr "Hei, MetaBot her." - -#: frontend/src/metabase/components/ExplorePane.jsx:94 -msgid "Based on the schema" -msgstr "Basert pÃ¥ skjemaet" - -#: frontend/src/metabase/components/ExplorePane.jsx:173 -#, fuzzy -msgid "A look at your" -msgstr "En kikk pÃ¥ din" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 -msgid "Search the list" -msgstr "Søk i listen" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 -msgid "Search by {0}" -msgstr "Søk med {0}" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 -msgid " or enter an ID" -msgstr " eller skriv inn en ID" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 -msgid "Enter an ID" -msgstr "Skriv inn en ID" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 -msgid "Enter a number" -msgstr "Skriv inn et tall" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 -msgid "Enter some text" -msgstr "Skriv inn tekst" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 -msgid "No matching {0} found." -msgstr "Ingen funn pÃ¥ {0}." - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 -msgid "Including every option in your filter probably won’t do much…" -msgstr "Inkluderer hver mulighet i filteret ditt vil mest sannsynlig ikke gjøre mye." - -#: frontend/src/metabase/containers/ErrorPages.jsx:24 -msgid "Something's gone wrong" -msgstr "Noe gikk galt" - -#: frontend/src/metabase/containers/ErrorPages.jsx:25 -msgid "We've run into an error. You can try refreshing the page, or just go back." -msgstr "Vi har støtt pÃ¥ en feil. Du kan prøve Ã¥ oppdatere siden, eller bare gÃ¥ tilbake." - -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 -msgid "No description yet" -msgstr "Ingen beskrivelse enda" - -#: frontend/src/metabase/components/Header.jsx:112 -#: frontend/src/metabase/entities/containers/EntityForm.jsx:60 -msgid "New {0}" -msgstr "Ny {0}" - -#: frontend/src/metabase/components/Header.jsx:123 -msgid "Asked by {0}" -msgstr "Spurt av {0}" - -#: frontend/src/metabase/components/HistoryModal.jsx:12 -msgid "Today, " -msgstr "Idag, " - -#: frontend/src/metabase/components/HistoryModal.jsx:14 -msgid "Yesterday, " -msgstr "IgÃ¥r, " - -#: frontend/src/metabase/components/HistoryModal.jsx:29 -msgid "First revision." -msgstr "Første revisjon" - -#: frontend/src/metabase/components/HistoryModal.jsx:31 -msgid "Reverted to an earlier revision and {0}" -msgstr "Reversert til en tidligere revisjon og {0}" - -#: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 -msgid "Revision history" -msgstr "Revisjonshistorikk" - -#: frontend/src/metabase/components/HistoryModal.jsx:46 -msgid "When" -msgstr "NÃ¥r" - -#: frontend/src/metabase/components/HistoryModal.jsx:47 -msgid "Who" -msgstr "Hvem" - -#: frontend/src/metabase/components/HistoryModal.jsx:48 -msgid "What" -msgstr "Hva" - -#: frontend/src/metabase/components/HistoryModal.jsx:67 -msgid "Revert" -msgstr "Tilbakestilt" - -#: frontend/src/metabase/components/HistoryModal.jsx:68 -msgid "Reverting…" -msgstr "Reverserer..." - -#: frontend/src/metabase/components/HistoryModal.jsx:69 -msgid "Revert failed" -msgstr "Reversering feilet" - -#: frontend/src/metabase/components/HistoryModal.jsx:70 -msgid "Reverted" -msgstr "Reversert" - -#: frontend/src/metabase/components/ItemTypeFilterBar.jsx:13 -msgid "Everything" -msgstr "Alt" - -#: frontend/src/metabase/components/ItemTypeFilterBar.jsx:18 -msgid "Dashboards" -msgstr "Infotavler" - -#: frontend/src/metabase/components/ItemTypeFilterBar.jsx:23 -msgid "Questions" -msgstr "SpørsmÃ¥l" - -#: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 -msgid "Pulses" -msgstr "Pulser" - -#: frontend/src/metabase/components/LeftNavPane.jsx:36 -#: frontend/src/metabase/query_builder/components/SidebarHeader.jsx:16 -msgid "Back" -msgstr "Tilbake" - -#: frontend/src/metabase/components/ListSearchField.jsx:17 -msgid "Find..." -msgstr "Finn..." - -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 -msgid "An error occured" -msgstr "En feil oppstod" - -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:35 -msgid "Loading..." -msgstr "Laster inn..." - -#: frontend/src/metabase/components/NewsletterForm.jsx:71 -msgid "Metabase Newsletter" -msgstr "Metabase nyhetsbrev" - -#: frontend/src/metabase/components/NewsletterForm.jsx:81 -msgid "Get infrequent emails about new releases and feature updates." -msgstr "Motta epost om nye utgaver og oppdaterte funksjoner." - -#: frontend/src/metabase/components/NewsletterForm.jsx:99 -msgid "Subscribe" -msgstr "Abonnere" - -#: frontend/src/metabase/components/NewsletterForm.jsx:106 -msgid "You're subscribed. Thanks for using Metabase!" -msgstr "Du har abonnert. Takk for at du bruker Metabase!" - -#: frontend/src/metabase/containers/ErrorPages.jsx:44 -msgid "We're a little lost..." -msgstr "Vi er litt fortapt..." - -#: frontend/src/metabase/components/PasswordReveal.jsx:27 -msgid "Temporary Password" -msgstr "Midlertidig passord" - -#: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 -msgid "Hide" -msgstr "Skjul" - -#: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 -msgid "Show" -msgstr "Vis" - -#: frontend/src/metabase/components/QuestionSavedModal.jsx:17 -msgid "Saved! Add this to a dashboard?" -msgstr "Lagret! Vil du legge den til en infotavle?" - -#: frontend/src/metabase/components/QuestionSavedModal.jsx:25 -msgid "Yes please!" -msgstr "Ja takk!" - -#: frontend/src/metabase/components/QuestionSavedModal.jsx:29 -msgid "Not now" -msgstr "Ikke nÃ¥" - -#: frontend/src/metabase/components/SaveStatus.jsx:53 -msgid "Error:" -msgstr "Feil:" - -#: frontend/src/metabase/components/SchedulePicker.jsx:23 -msgid "Sunday" -msgstr "Søndag" - -#: frontend/src/metabase/components/SchedulePicker.jsx:24 -msgid "Monday" -msgstr "Mandag" - -#: frontend/src/metabase/components/SchedulePicker.jsx:25 -msgid "Tuesday" -msgstr "Tirsdag" - -#: frontend/src/metabase/components/SchedulePicker.jsx:26 -msgid "Wednesday" -msgstr "Onsdag" - -#: frontend/src/metabase/components/SchedulePicker.jsx:27 -msgid "Thursday" -msgstr "Torsdag" - -#: frontend/src/metabase/components/SchedulePicker.jsx:28 -msgid "Friday" -msgstr "Fredag" - -#: frontend/src/metabase/components/SchedulePicker.jsx:29 -msgid "Saturday" -msgstr "Lørdag" - -#: frontend/src/metabase/components/SchedulePicker.jsx:33 -msgid "First" -msgstr "Først" - -#: frontend/src/metabase/components/SchedulePicker.jsx:34 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:23 -msgid "Last" -msgstr "Sist" - -#: frontend/src/metabase/components/SchedulePicker.jsx:35 -msgid "15th (Midpoint)" -msgstr "Femtende (midten)" - -#: frontend/src/metabase/components/SchedulePicker.jsx:125 -msgid "Calendar Day" -msgstr "Kalenderdag" - -#: frontend/src/metabase/components/SchedulePicker.jsx:212 -msgid "your Metabase timezone" -msgstr "din Metabase tidssone" - -#: frontend/src/metabase/components/SearchHeader.jsx:21 -msgid "Filter this list..." -msgstr "Filtrer denne listen..." - -#: frontend/src/metabase/components/Select.info.js:8 -msgid "Blue" -msgstr "BlÃ¥" - -#: frontend/src/metabase/components/Select.info.js:9 -msgid "Green" -msgstr "Grønn" - -#: frontend/src/metabase/components/Select.info.js:10 -msgid "Red" -msgstr "Rød" - -#: frontend/src/metabase/components/Select.info.js:11 -msgid "Yellow" -msgstr "Gul" - -#: frontend/src/metabase/components/Select.info.js:14 -msgid "A component used to make a selection" -msgstr "En komponent bruker dette valget" - -#: frontend/src/metabase/components/Select.info.js:20 -#: frontend/src/metabase/components/Select.info.js:30 -msgid "Selected" -msgstr "Valgt" - -#: frontend/src/metabase/components/Select.jsx:299 -msgid "Nothing to select" -msgstr "Ingenting Ã¥ velge" - -#: frontend/src/metabase/containers/ErrorPages.jsx:54 -msgid "Sorry, you don’t have permission to see that." -msgstr "Beklager, du har ikke tilgang til Ã¥ se dette." - -#: frontend/src/metabase/components/form/FormMessage.jsx:5 -msgid "Unknown error encountered" -msgstr "Ukjent feil oppstod" - -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 -msgid "Create" -msgstr "Lag" - -#: frontend/src/metabase/containers/DashboardForm.jsx:9 -msgid "Create dashboard" -msgstr "Lag infotavle" - -#: frontend/src/metabase/containers/EntitySearch.jsx:35 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 -msgid "Table" -msgstr "Tabell" - -#: frontend/src/metabase/containers/EntitySearch.jsx:42 -msgid "Database" -msgstr "Database" - -#: frontend/src/metabase/containers/EntitySearch.jsx:49 -msgid "Creator" -msgstr "Skaper" - -#: frontend/src/metabase/containers/EntitySearch.jsx:239 -msgid "No results found" -msgstr "Ingen resultater funnet" - -#: frontend/src/metabase/containers/EntitySearch.jsx:240 -msgid "Try adjusting your filter to find what you’re looking for." -msgstr "Prøv Ã¥ justere dine filter for Ã¥ finne hva du leter etter." - -#: frontend/src/metabase/containers/EntitySearch.jsx:259 -msgid "View by" -msgstr "Vis med" - -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 -msgid "of" -msgstr "av" - -#: frontend/src/metabase/containers/Overworld.jsx:75 -msgid "Don't tell anyone, but you're my favorite." -msgstr "Ikke si det til noen, men du er min favoritt." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:85 -msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." -msgstr "NÃ¥r du kobler til dine data, kan jeg gjøre en automatisk utforsking kalt X-ray. Her er noen eksempler med test-data." - -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 -#: frontend/src/metabase/reference/components/GuideHeader.jsx:12 -msgid "Start here" -msgstr "Start her" - -#: frontend/src/metabase/containers/Overworld.jsx:296 -#: frontend/src/metabase/entities/collections.js:150 -#: src/metabase/models/collection.clj -msgid "Our analytics" -msgstr "VÃ¥r analyse" - -#: frontend/src/metabase/containers/Overworld.jsx:203 -msgid "Browse all items" -msgstr "Bla gjennom alle elementer" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:167 -msgid "Replace or save as new?" -msgstr "Erstatt eller lagre som ny?" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:175 -msgid "Replace original question, \"{0}\"" -msgstr "Erstatt det opprinnelige spørsmÃ¥let, \"{0}\"" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 -msgid "Save as new question" -msgstr "Lagre som nytt spørsmÃ¥l" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 -msgid "First, save your question" -msgstr "Først, lagre spørsmÃ¥let ditt" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 -msgid "Save question" -msgstr "Lagre spørsmÃ¥let" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 -msgid "What is the name of your card?" -msgstr "Hva er navnet pÃ¥ kortet ditt?" - -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 -#: frontend/src/metabase/entities/collections.js:102 -#: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 -#: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 -msgid "Description" -msgstr "Beskrivelse" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 -#: frontend/src/metabase/entities/dashboards.js:150 -msgid "It's optional but oh, so helpful" -msgstr "Det er valgfritt, men veldig hjelpsomt" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 -#: frontend/src/metabase/entities/dashboards.js:154 -msgid "Which collection should this go in?" -msgstr "Hvilken samling skal denne være i?" - -#: frontend/src/metabase/containers/UndoListing.jsx:34 -msgid "modified" -msgstr "modifiert" - -#: frontend/src/metabase/containers/UndoListing.jsx:34 -msgid "item" -msgstr "element" - -#: frontend/src/metabase/containers/UndoListing.jsx:83 -msgid "Undo" -msgstr "Angre" - -#: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:270 -msgid "Applying Question" -msgstr "Bruk spørsmÃ¥l" - -#: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:274 -msgid "That question isn't compatible" -msgstr "Det spørsmÃ¥let er ikke kompatibelt" - -#: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:310 -msgid "Search for a question" -msgstr "Søk etter et spørsmÃ¥l" - -#: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:339 -msgid "We're not sure if this question is compatible" -msgstr "Vi er ikke sikker pÃ¥ om dette spørsmÃ¥let kompatibelt" - -#: frontend/src/metabase/dashboard/components/ArchiveDashboardModal.jsx:43 -msgid "Archive Dashboard" -msgstr "Arkiver infotavle" - -#: frontend/src/metabase/dashboard/components/DashCardParameterMapper.jsx:19 -msgid "Make sure to make a selection for each series, or the filter won't work on this card." -msgstr "Forsikre deg om at noe i hver serie er valgt, ellers vil ikke filteret virke pÃ¥ dette kortet." - -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 -msgid "This dashboard is looking empty." -msgstr "Denne infotavlen ser ut til Ã¥ være tom." - -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 -msgid "Add a question to start making it useful!" -msgstr "Legg til ett spørsmÃ¥l for og gjøre det nyttig!" - -#: frontend/src/metabase/dashboard/components/DashboardActions.jsx:38 -msgid "Daytime mode" -msgstr "Dagmodus" - -#: frontend/src/metabase/dashboard/components/DashboardActions.jsx:38 -msgid "Nighttime mode" -msgstr "Nattmodus" - -#: frontend/src/metabase/dashboard/components/DashboardActions.jsx:56 -msgid "Exit fullscreen" -msgstr "Lukk fullskjerm" - -#: frontend/src/metabase/dashboard/components/DashboardActions.jsx:56 -msgid "Enter fullscreen" -msgstr "Ã…pne fullskjerm" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 -msgid "Saving…" -msgstr "Lagrer..." - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 -msgid "Add a question" -msgstr "Legg til spørsmÃ¥l" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 -msgid "Add a question to this dashboard" -msgstr "Legg et spørsmÃ¥l til denne infotavlen" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 -msgid "Add a filter" -msgstr "Legg til filter" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 -msgid "Parameters" -msgstr "Parametere" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 -msgid "Add a text box" -msgstr "Legg til en tekst boks" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 -msgid "Move dashboard" -msgstr "Flytt infotavlen" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 -msgid "Edit dashboard" -msgstr "Rediger infotavle" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 -msgid "Edit Dashboard Layout" -msgstr "Rediger visning av infotavle" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 -msgid "You are editing a dashboard" -msgstr "Du redigerer en infotavle" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 -msgid "Select the field that should be filtered for each card" -msgstr "Velg feltet som skal være filtrert for hvert kort" - -#: frontend/src/metabase/dashboard/components/DashboardMoveModal.jsx:31 -msgid "Move dashboard to..." -msgstr "Flytt infotavle til..." - -#: frontend/src/metabase/dashboard/components/DashboardMoveModal.jsx:55 -msgid "Dashboard moved to {0}" -msgstr "Infotavlen ble flyttet til {0}" - -#: frontend/src/metabase/dashboard/components/ParametersPopover.jsx:82 -msgid "What do you want to filter?" -msgstr "Hva vil du filtrere?" - -#: frontend/src/metabase/dashboard/components/ParametersPopover.jsx:115 -msgid "What kind of filter?" -msgstr "Hva slags filter?" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:13 -#: frontend/src/metabase/visualizations/lib/settings/column.js:231 -#: frontend/src/metabase/visualizations/lib/settings/series.js:90 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:247 -msgid "Off" -msgstr "Av" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:14 -msgid "1 minute" -msgstr "1 minutt" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:15 -msgid "5 minutes" -msgstr "5 minutter" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:16 -msgid "10 minutes" -msgstr "10 minutter" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:17 -msgid "15 minutes" -msgstr "15 minutter" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:18 -msgid "30 minutes" -msgstr "30 minutter" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:19 -msgid "60 minutes" -msgstr "60 minutter" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 -msgid "Auto-refresh" -msgstr "Auto-forny" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 -msgid "Refreshing in" -msgstr "Fornyes om" - -#: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:36 -msgid "Remove this question?" -msgstr "Fjern dette spørsmÃ¥let?" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:74 -msgid "Your dashboard was saved" -msgstr "Infotavlen ble lagret" - -#: frontend/src/metabase/components/CollectionLanding.jsx:744 -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 -msgid "See it" -msgstr "Se det" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:141 -msgid "Save this" -msgstr "Lagre dette" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:173 -msgid "Show more about this" -msgstr "Vis mer om dette" - -#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:143 -msgid "This card doesn't have any fields or parameters that can be mapped to this parameter type." -msgstr "Dette kortet har ingen felter eller parametere som kan tilordnes denne parametertypen." - -#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:145 -msgid "The values in this field don't overlap with the values of any other fields you've chosen." -msgstr "Verdiene i dette feltet overlapper ikke med verdiene i noen andre felt du har valgt." - -#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:185 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.jsx:37 -msgid "No valid fields" -msgstr "Ingen gyldige felt" - -#: frontend/src/metabase/entities/collections.js:98 -msgid "Name must be 100 characters or less" -msgstr "Navn mÃ¥ være 100 tegn eller mindre" - -#: frontend/src/metabase/entities/collections.js:112 -msgid "Color is required" -msgstr "Farge er pÃ¥krevd" - -#: frontend/src/metabase/entities/dashboards.js:143 -msgid "What is the name of your dashboard?" -msgstr "Hva er navnet pÃ¥ infotavlen din?" - -#: frontend/src/metabase/home/components/Activity.jsx:94 -msgid "did some super awesome stuff that's hard to describe" -msgstr "gjorde noen superstilige ting som er vanskelig Ã¥ beskrive" - -#: frontend/src/metabase/home/components/Activity.jsx:103 -#: frontend/src/metabase/home/components/Activity.jsx:118 -msgid "created an alert about - " -msgstr "laget en varsel om - " - -#: frontend/src/metabase/home/components/Activity.jsx:128 -#: frontend/src/metabase/home/components/Activity.jsx:143 -msgid "deleted an alert about - " -msgstr "slettet en varsel om - " - -#: frontend/src/metabase/home/components/Activity.jsx:154 -msgid "saved a question about " -msgstr "lagret et spørsmÃ¥l om " - -#: frontend/src/metabase/home/components/Activity.jsx:167 -msgid "saved a question" -msgstr "lagret et spørsmÃ¥l" - -#: frontend/src/metabase/home/components/Activity.jsx:171 -msgid "deleted a question" -msgstr "slettet et spørsmÃ¥l" - -#: frontend/src/metabase/home/components/Activity.jsx:174 -msgid "created a dashboard" -msgstr "laget en infotavle" - -#: frontend/src/metabase/home/components/Activity.jsx:177 -msgid "deleted a dashboard" -msgstr "slettet en infotavle" - -#: frontend/src/metabase/home/components/Activity.jsx:183 -#: frontend/src/metabase/home/components/Activity.jsx:198 -msgid "added a question to the dashboard - " -msgstr "la til et spørsmÃ¥l til infotavlen - " - -#: frontend/src/metabase/home/components/Activity.jsx:208 -#: frontend/src/metabase/home/components/Activity.jsx:223 -msgid "removed a question from the dashboard - " -msgstr "fjernet et spørsmÃ¥l fra infotavlen - " - -#: frontend/src/metabase/home/components/Activity.jsx:233 -#: frontend/src/metabase/home/components/Activity.jsx:240 -msgid "received the latest data from" -msgstr "mottok de siste dataene fra" - -#: frontend/src/metabase-lib/lib/Dimension.js:814 -#: frontend/src/metabase/home/components/Activity.jsx:246 -#: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 -msgid "Unknown" -msgstr "Ukjent" - -#: frontend/src/metabase/home/components/Activity.jsx:253 -msgid "Hello World!" -msgstr "Hallo verden!" - -#: frontend/src/metabase/home/components/Activity.jsx:254 -msgid "Metabase is up and running." -msgstr "Metabase er oppe og kjører." - -#: frontend/src/metabase/home/components/Activity.jsx:260 -#: frontend/src/metabase/home/components/Activity.jsx:290 -msgid "added the metric " -msgstr "la til indikatoren" - -#: frontend/src/metabase/home/components/Activity.jsx:274 -#: frontend/src/metabase/home/components/Activity.jsx:364 -msgid " to the " -msgstr " til " - -#: frontend/src/metabase/home/components/Activity.jsx:284 -#: frontend/src/metabase/home/components/Activity.jsx:324 -#: frontend/src/metabase/home/components/Activity.jsx:374 -#: frontend/src/metabase/home/components/Activity.jsx:415 -msgid " table" -msgstr " tabell" - -#: frontend/src/metabase/home/components/Activity.jsx:300 -#: frontend/src/metabase/home/components/Activity.jsx:330 -msgid "made changes to the metric " -msgstr "gjorde endringer i indikatoren" - -#: frontend/src/metabase/home/components/Activity.jsx:314 -#: frontend/src/metabase/home/components/Activity.jsx:405 -msgid " in the " -msgstr " i " - -#: frontend/src/metabase/home/components/Activity.jsx:337 -msgid "removed the metric " -msgstr "fjernet indikatoren" - -#: frontend/src/metabase/home/components/Activity.jsx:340 -msgid "created a pulse" -msgstr "laget en puls" - -#: frontend/src/metabase/home/components/Activity.jsx:343 -msgid "deleted a pulse" -msgstr "slettet en puls" - -#: frontend/src/metabase/home/components/Activity.jsx:349 -#: frontend/src/metabase/home/components/Activity.jsx:380 -msgid "added the filter" -msgstr "la til filteret" - -#: frontend/src/metabase/home/components/Activity.jsx:390 -#: frontend/src/metabase/home/components/Activity.jsx:421 -msgid "made changes to the filter" -msgstr "gjorde endringer til filteret" - -#: frontend/src/metabase/home/components/Activity.jsx:428 -msgid "removed the filter {0}" -msgstr "fjernet filteret {0}" - -#: frontend/src/metabase/home/components/Activity.jsx:431 -msgid "joined!" -msgstr "ble med!" - -#: frontend/src/metabase/home/components/Activity.jsx:531 -msgid "Hmmm, looks like nothing has happened yet." -msgstr "Hmm, det ser ikke ut til at noe har skjedd enda." - -#: frontend/src/metabase/home/components/Activity.jsx:534 -#, fuzzy -msgid "Save a question and get this baby going!" -msgstr "Lagre ett spørsmÃ¥l sÃ¥ du fÃ¥r fart pÃ¥ denne skuta!" - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:19 -msgid "Ask questions and explore" -msgstr "Spør ett spørsmÃ¥l og utforsk" - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:20 -msgid "Click on charts or tables to explore, or ask a new question using the easy interface or the powerful SQL editor." -msgstr "Trykk pÃ¥ diagrammer eller tabeller for Ã¥ utforske, eller still et spørsmÃ¥l med det enkle grensesnittet eller det kraftige SQL-redigeringsverktøyet." - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:30 -msgid "Make your own charts" -msgstr "Lag dine egne grafer" - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:31 -msgid "Create line charts, scatter plots, maps, and more." -msgstr "Lag linjediagrammer, spredningsplott, kart og mer." - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:41 -msgid "Share what you find" -msgstr "Del hva du finner" - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:42 -msgid "Create powerful and flexible dashboards, and send regular updates via email or Slack." -msgstr "Lag kraftige og fleksible infotavler, og send regelmessige oppdateringer via e-post eller Slack." - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 -msgid "Let's go" -msgstr "La oss gÃ¥ videre" - -#: frontend/src/metabase/home/components/NextStep.jsx:34 -msgid "Setup Tip" -msgstr "Tips til oppsett" - -#: frontend/src/metabase/home/components/NextStep.jsx:40 -msgid "View all" -msgstr "Vis alle" - -#: frontend/src/metabase/home/components/RecentViews.jsx:40 -msgid "Recently Viewed" -msgstr "Nylig vist" - -#: frontend/src/metabase/home/components/RecentViews.jsx:75 -msgid "You haven't looked at any dashboards or questions recently" -msgstr "Du har ikke sett pÃ¥ noen infotavler eller spørsmÃ¥l nylig" - -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:102 -msgid "{0} items selected" -msgstr "{0} elementer valgt" - -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:124 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:174 -msgid "Unarchive" -msgstr "Dearkiver" - -#: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 -msgid "Activity" -msgstr "Aktivitet" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 -msgid "Results for \"{0}\"" -msgstr "Resultater for \"{0}\"" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:138 -msgid "Pulse" -msgstr "Puls" - -#: frontend/src/metabase/lib/core.js:7 -msgid "Entity Key" -msgstr "Entitetsnøkkel" - -#: frontend/src/metabase/lib/core.js:8 frontend/src/metabase/lib/core.js:14 -#: frontend/src/metabase/lib/core.js:20 -msgid "Overall Row" -msgstr "Totalrad" - -#: frontend/src/metabase/lib/core.js:9 -msgid "The primary key for this table." -msgstr "Primærnøkkelen for denne tabellen." - -#: frontend/src/metabase/lib/core.js:13 -msgid "Entity Name" -msgstr "Entitetsnavn" - -#: frontend/src/metabase/lib/core.js:15 -msgid "The \"name\" of each record. Usually a column called \"name\", \"title\", etc." -msgstr "\"Navnet\" for hver oppføring. Vanligvis en kolonne kalt \"navn\", \"tittel\", osv." - -#: frontend/src/metabase/lib/core.js:19 -msgid "Foreign Key" -msgstr "Fremmednøkkel" - -#: frontend/src/metabase/lib/core.js:21 -msgid "Points to another table to make a connection." -msgstr "Peker pÃ¥ en annen tabell for Ã¥ lage en kobling." - -#: frontend/src/metabase/lib/core.js:25 -msgid "Avatar Image URL" -msgstr "Avatar bilde-URL" - -#: frontend/src/metabase/lib/core.js:26 frontend/src/metabase/lib/core.js:31 -#: frontend/src/metabase/lib/core.js:36 frontend/src/metabase/lib/core.js:41 -#: frontend/src/metabase/lib/core.js:46 frontend/src/metabase/lib/core.js:51 -#: frontend/src/metabase/lib/core.js:56 frontend/src/metabase/lib/core.js:61 -#: frontend/src/metabase/lib/core.js:66 frontend/src/metabase/lib/core.js:71 -#: frontend/src/metabase/lib/core.js:76 frontend/src/metabase/lib/core.js:81 -#: frontend/src/metabase/lib/core.js:86 frontend/src/metabase/lib/core.js:91 -#: frontend/src/metabase/lib/core.js:96 frontend/src/metabase/lib/core.js:101 -#: frontend/src/metabase/lib/core.js:106 frontend/src/metabase/lib/core.js:111 -#: frontend/src/metabase/lib/core.js:116 frontend/src/metabase/lib/core.js:121 -#: frontend/src/metabase/lib/core.js:126 frontend/src/metabase/lib/core.js:131 -#: frontend/src/metabase/lib/core.js:136 frontend/src/metabase/lib/core.js:141 -#: frontend/src/metabase/lib/core.js:146 frontend/src/metabase/lib/core.js:151 -#: frontend/src/metabase/lib/core.js:156 frontend/src/metabase/lib/core.js:161 -#: frontend/src/metabase/lib/core.js:166 frontend/src/metabase/lib/core.js:171 -#: frontend/src/metabase/lib/core.js:176 frontend/src/metabase/lib/core.js:181 -#: frontend/src/metabase/lib/core.js:186 frontend/src/metabase/lib/core.js:191 -#: frontend/src/metabase/lib/core.js:196 frontend/src/metabase/lib/core.js:201 -#: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 -#: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 -#: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 -msgid "Common" -msgstr "Vanlig" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:134 -#: frontend/src/metabase/lib/core.js:30 -#: frontend/src/metabase/meta/Dashboard.js:81 -#: frontend/src/metabase/modes/components/actions/PivotByCategoryAction.jsx:9 -msgid "Category" -msgstr "Kategori" - -#: frontend/src/metabase/lib/core.js:35 -#: frontend/src/metabase/meta/Dashboard.js:61 -msgid "City" -msgstr "By" - -#: frontend/src/metabase/lib/core.js:40 -#: frontend/src/metabase/meta/Dashboard.js:73 -msgid "Country" -msgstr "Land" - -#: frontend/src/metabase/lib/core.js:60 -msgid "Enum" -msgstr "Enum" - -#: frontend/src/metabase/lib/core.js:65 -msgid "Image URL" -msgstr "Bilde nettlink" - -#: frontend/src/metabase/lib/core.js:70 -msgid "Field containing JSON" -msgstr "Felt inneholder JSON" - -#: frontend/src/metabase/lib/core.js:75 -msgid "Latitude" -msgstr "Breddegrad" - -#: frontend/src/metabase/lib/core.js:80 -msgid "Longitude" -msgstr "Lengdegrad" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:138 -#: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 -msgid "Number" -msgstr "Nummer" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:19 -#: frontend/src/metabase/lib/core.js:90 -#: frontend/src/metabase/meta/Dashboard.js:65 -msgid "State" -msgstr "Stat" - -#: frontend/src/metabase/lib/core.js:95 -msgid "UNIX Timestamp (Seconds)" -msgstr "UNIX tidsstempel (sekunder)" - -#: frontend/src/metabase/lib/core.js:100 -msgid "UNIX Timestamp (Milliseconds)" -msgstr "UNIX tidsstempel (millisekunder)" - -#: frontend/src/metabase/lib/core.js:110 -msgid "Zip Code" -msgstr "Postnummer" - -#: frontend/src/metabase/lib/core.js:115 -msgid "Quantity" -msgstr "Kvantum" - -#: frontend/src/metabase/lib/core.js:120 -msgid "Income" -msgstr "Inntekt" - -#: frontend/src/metabase/lib/core.js:125 -msgid "Discount" -msgstr "Avslag" - -#: frontend/src/metabase/lib/core.js:130 -msgid "Creation timestamp" -msgstr "Tidsstempel for opprettelse" - -#: frontend/src/metabase/lib/core.js:135 -msgid "Creation time" -msgstr "Tid for opprettelse" - -#: frontend/src/metabase/lib/core.js:140 -msgid "Creation date" -msgstr "Dato for opprettelse" - -#: frontend/src/metabase/lib/core.js:145 -msgid "Product" -msgstr "Produkt" - -#: frontend/src/metabase/lib/core.js:150 -msgid "User" -msgstr "Bruker" - -#: frontend/src/metabase/lib/core.js:155 -msgid "Source" -msgstr "Kilde" - -#: frontend/src/metabase/lib/core.js:160 -msgid "Price" -msgstr "Pris" - -#: frontend/src/metabase/lib/core.js:165 -msgid "Join timestamp" -msgstr "Tidsstempel nÃ¥r ble med" - -#: frontend/src/metabase/lib/core.js:170 -msgid "Join time" -msgstr "Registreringstid" - -#: frontend/src/metabase/lib/core.js:175 -msgid "Join date" -msgstr "Registreringsdato" - -#: frontend/src/metabase/lib/core.js:180 -msgid "Share" -msgstr "Del" - -#: frontend/src/metabase/lib/core.js:185 -msgid "Owner" -msgstr "Eier" - -#: frontend/src/metabase/lib/core.js:190 -msgid "Company" -msgstr "Firma" - -#: frontend/src/metabase/lib/core.js:195 -msgid "Subscription" -msgstr "Abonnement" - -#: frontend/src/metabase/lib/core.js:200 -msgid "Score" -msgstr "Poengsum" - -#: frontend/src/metabase/lib/core.js:210 -#: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 -#: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 -msgid "Title" -msgstr "Tittel" - -#: frontend/src/metabase/lib/core.js:215 -msgid "Comment" -msgstr "Kommentar" - -#: frontend/src/metabase/lib/core.js:220 -msgid "Cost" -msgstr "Kostnad" - -#: frontend/src/metabase/lib/core.js:225 -msgid "Gross margin" -msgstr "Bruttomargin" - -#: frontend/src/metabase/lib/core.js:230 -msgid "Birthday" -msgstr "Bursdag" - -#: frontend/src/metabase/lib/core.js:241 -msgid "Search box" -msgstr "Søkeboks" - -#: frontend/src/metabase/lib/core.js:242 -msgid "A list of all values" -msgstr "En liste med alle verdier" - -#: frontend/src/metabase/lib/core.js:243 -msgid "Plain input box" -msgstr "Enkel informasjonsboks" - -#: frontend/src/metabase/lib/core.js:249 -msgid "Everywhere" -msgstr "Overalt" - -#: frontend/src/metabase/lib/core.js:250 -msgid "The default setting. This field will be displayed normally in tables and charts." -msgstr "Standardinnstillingen. Dette feltet vil normalt vises. i tabeller og diagrammer" - -#: frontend/src/metabase/lib/core.js:254 -msgid "Only in Detail Views" -msgstr "Bare i standard visning" - -#: frontend/src/metabase/lib/core.js:255 -msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." -msgstr "Dette feltet vil bare vises nÃ¥r du ser pÃ¥ detaljene for en enkeltoppføring. Bruk denne for informasjon som er lang eller som ikke er nyttig i en tabell eller et diagram." - -#: frontend/src/metabase/lib/core.js:259 -msgid "Do Not Include" -msgstr "Ikke inkluder" - -#: frontend/src/metabase/lib/core.js:260 -msgid "Metabase will never retrieve this field. Use this for sensitive or irrelevant information." -msgstr "Metabase vil aldri hente dette feltet. Bruk dette for sensitiv eller irrelevant informasjon." - -#: frontend/src/metabase/lib/expressions/config.js:7 -#: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 -#: src/metabase/query_processor/middleware/annotate.clj -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "Count" -msgstr "Antall" - -#: frontend/src/metabase/lib/expressions/config.js:8 -msgid "CumulativeCount" -msgstr "KumulativTelling" - -#: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 -msgid "Sum" -msgstr "Sum" - -#: frontend/src/metabase/lib/expressions/config.js:10 -msgid "CumulativeSum" -msgstr "KumulativSum" - -#: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 -msgid "Distinct" -msgstr "Distrikt" - -#: frontend/src/metabase/lib/expressions/config.js:12 -msgid "StandardDeviation" -msgstr "StandardAvvik" - -#: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 -msgid "Average" -msgstr "Gjennomsnitt" - -#: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 -msgid "Min" -msgstr "Min" - -#: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 -msgid "Max" -msgstr "Maks" - -#: frontend/src/metabase/lib/expressions/parser.js:386 -msgid "sad sad panda, lexing errors detected" -msgstr "trist trist panda, leksikalske feil ble funnet" - -#: frontend/src/metabase/lib/formatting.js:787 -msgid "{0} second" -msgid_plural "{0} seconds" -msgstr[0] "{0} sekund" -msgstr[1] "{0} sekunder" - -#: frontend/src/metabase/lib/formatting.js:790 -msgid "{0} minute" -msgid_plural "{0} minutes" -msgstr[0] "{0} minutt" -msgstr[1] "{0} minutter" - -#: frontend/src/metabase/lib/greeting.js:4 -msgid "Hey there" -msgstr "Hei du" - -#: frontend/src/metabase/lib/greeting.js:5 -#: frontend/src/metabase/lib/greeting.js:29 -msgid "How's it going" -msgstr "Hvordan gÃ¥r det" - -#: frontend/src/metabase/lib/greeting.js:6 -msgid "Howdy" -msgstr "Halla" - -#: frontend/src/metabase/lib/greeting.js:7 -msgid "Greetings" -msgstr "Velkommen" - -#: frontend/src/metabase/lib/greeting.js:8 -msgid "Good to see you" -msgstr "Godt Ã¥ se deg" - -#: frontend/src/metabase/lib/greeting.js:12 -msgid "What do you want to know?" -msgstr "Hva vil du vite?" - -#: frontend/src/metabase/lib/greeting.js:13 -msgid "What's on your mind?" -msgstr "Hva tenker du pÃ¥?" - -#: frontend/src/metabase/lib/greeting.js:14 -msgid "What do you want to find out?" -msgstr "Hva lurer du pÃ¥?" - -#: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 -msgid "Raw data" -msgstr "RÃ¥data" - -#: frontend/src/metabase/lib/query.js:302 -msgid "Cumulative count" -msgstr "Kumulativ telling" - -#: frontend/src/metabase/lib/query.js:305 -msgid "Average of " -msgstr "Gjennomsnittet av " - -#: frontend/src/metabase/lib/query.js:310 -msgid "Distinct values of " -msgstr "Unike verdier av " - -#: frontend/src/metabase/lib/query.js:315 -msgid "Standard deviation of " -msgstr "Standardavviket av " - -#: frontend/src/metabase/lib/query.js:320 -msgid "Sum of " -msgstr "Summen av " - -#: frontend/src/metabase/lib/query.js:325 -msgid "Cumulative sum of " -msgstr "Kumulativ sum av " - -#: frontend/src/metabase/lib/query.js:330 -msgid "Maximum of " -msgstr "Største av " - -#: frontend/src/metabase/lib/query.js:335 -msgid "Minimum of " -msgstr "Minste av " - -#: frontend/src/metabase/lib/query.js:349 -msgid "Grouped by " -msgstr "Gruppert etter " - -#: frontend/src/metabase/lib/query.js:363 -msgid "Filtered by " -msgstr "Filtrert pÃ¥ " - -#: frontend/src/metabase/lib/query.js:392 -msgid "Sorted by " -msgstr "Sortert etter " - -#: frontend/src/metabase/lib/schema_metadata.js:227 -msgid "True" -msgstr "Sant" - -#: frontend/src/metabase/lib/schema_metadata.js:227 -msgid "False" -msgstr "Usant" - -#: frontend/src/metabase/lib/schema_metadata.js:311 -msgid "Select longitude field" -msgstr "Velg felt for lengdegrad" - -#: frontend/src/metabase/lib/schema_metadata.js:312 -msgid "Enter upper latitude" -msgstr "Skriv inn øvre breddegrad" - -#: frontend/src/metabase/lib/schema_metadata.js:313 -msgid "Enter left longitude" -msgstr "Skriv inn venstre lengdegrad" - -#: frontend/src/metabase/lib/schema_metadata.js:314 -msgid "Enter lower latitude" -msgstr "Skriv inn nedre breddegrad" - -#: frontend/src/metabase/lib/schema_metadata.js:315 -msgid "Enter right longitude" -msgstr "Skriv inn høyre lengdegrad" - -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 -msgid "Is" -msgstr "Er" - -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 -msgid "Is not" -msgstr "Er ikke" - -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 -msgid "Is empty" -msgstr "Er tom" - -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 -msgid "Not empty" -msgstr "Ikke tom" - -#: frontend/src/metabase/lib/schema_metadata.js:360 -msgid "Equal to" -msgstr "Er lik" - -#: frontend/src/metabase/lib/schema_metadata.js:361 -msgid "Not equal to" -msgstr "Ikke lik" - -#: frontend/src/metabase/lib/schema_metadata.js:362 -msgid "Greater than" -msgstr "Større enn" - -#: frontend/src/metabase/lib/schema_metadata.js:363 -msgid "Less than" -msgstr "Mindre enn" - -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 -#: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 -msgid "Between" -msgstr "Mellom" - -#: frontend/src/metabase/lib/schema_metadata.js:365 -msgid "Greater than or equal to" -msgstr "Større eller lik" - -#: frontend/src/metabase/lib/schema_metadata.js:366 -msgid "Less than or equal to" -msgstr "Mindre eller lik" - -#: frontend/src/metabase/lib/schema_metadata.js:373 -msgid "Contains" -msgstr "Inneholder" - -#: frontend/src/metabase/lib/schema_metadata.js:374 -msgid "Does not contain" -msgstr "Inneholder ikke" - -#: frontend/src/metabase/lib/schema_metadata.js:377 -msgid "Starts with" -msgstr "Starter med" - -#: frontend/src/metabase/lib/schema_metadata.js:378 -msgid "Ends with" -msgstr "Slutter med" - -#: frontend/src/metabase/lib/schema_metadata.js:388 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 -#: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 -msgid "Before" -msgstr "Før" - -#: frontend/src/metabase/lib/schema_metadata.js:389 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 -#: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 -msgid "After" -msgstr "Etter" - -#: frontend/src/metabase/lib/schema_metadata.js:403 -msgid "Inside" -msgstr "Inni" - -#: frontend/src/metabase/lib/schema_metadata.js:460 -msgid "Just a table with the rows in the answer, no additional operations." -msgstr "Bare en tabell med rader i svaret, ingen flere operasjoner." - -#: frontend/src/metabase/lib/schema_metadata.js:466 -msgid "Count of rows" -msgstr "Antall rader" - -#: frontend/src/metabase/lib/schema_metadata.js:468 -msgid "Total number of rows in the answer." -msgstr "Totalt antall rader i svaret" - -#: frontend/src/metabase/lib/schema_metadata.js:474 -msgid "Sum of ..." -msgstr "Summen av ..." - -#: frontend/src/metabase/lib/schema_metadata.js:476 -msgid "Sum of all the values of a column." -msgstr "Summen av alle verdiene i en kolonne." - -#: frontend/src/metabase/lib/schema_metadata.js:482 -msgid "Average of ..." -msgstr "Gjennomsnittet av ..." - -#: frontend/src/metabase/lib/schema_metadata.js:484 -msgid "Average of all the values of a column" -msgstr "Gjennomsnittet av alle verdiene i en kolonne" - -#: frontend/src/metabase/lib/schema_metadata.js:490 -msgid "Number of distinct values of ..." -msgstr "Antall unike verdier av ..." - -#: frontend/src/metabase/lib/schema_metadata.js:492 -msgid "Number of unique values of a column among all the rows in the answer." -msgstr "Antall unike verdier i en kolonne blant alle radene i svaret." - -#: frontend/src/metabase/lib/schema_metadata.js:498 -msgid "Cumulative sum of ..." -msgstr "Kumulativ sum av ..." - -#: frontend/src/metabase/lib/schema_metadata.js:493 -msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." -msgstr "Additiv sum av alle verdiene i en kolonne.\\\\nf.eks. total omsetning over tid." - -#: frontend/src/metabase/lib/schema_metadata.js:506 -msgid "Cumulative count of rows" -msgstr "Kumulativ telling av rader" - -#: frontend/src/metabase/lib/schema_metadata.js:501 -msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." -msgstr "Additiv telling av antall rader.\\\\nf.eks. antall salg over tid." - -#: frontend/src/metabase/lib/schema_metadata.js:514 -msgid "Standard deviation of ..." -msgstr "Standardavvik for ..." - -#: frontend/src/metabase/lib/schema_metadata.js:516 -msgid "Number which expresses how much the values of a column vary among all rows in the answer." -msgstr "Tall som uttrykker hvor mye verdiene i en kolonne varierer blant alle radene i svaret." - -#: frontend/src/metabase/lib/schema_metadata.js:522 -msgid "Minimum of ..." -msgstr "Minste av ..." - -#: frontend/src/metabase/lib/schema_metadata.js:524 -msgid "Minimum value of a column" -msgstr "Minste verdi i kolonnen" - -#: frontend/src/metabase/lib/schema_metadata.js:530 -msgid "Maximum of ..." -msgstr "Største av ..." - -#: frontend/src/metabase/lib/schema_metadata.js:532 -msgid "Maximum value of a column" -msgstr "Største verdi i kolonnen" - -#: frontend/src/metabase/lib/schema_metadata.js:540 -msgid "Break out by dimension" -msgstr "Bryt ut etter dimensjon" - -#: frontend/src/metabase/lib/settings.js:108 -msgid "lower case letter" -msgstr "liten bokstav" - -#: frontend/src/metabase/lib/settings.js:110 -msgid "upper case letter" -msgstr "stor bokstav" - -#: frontend/src/metabase/lib/settings.js:112 -#: src/metabase/automagic_dashboards/core.clj -msgid "number" -msgstr "tall" - -#: frontend/src/metabase/lib/settings.js:114 -msgid "special character" -msgstr "spesialtegn" - -#: frontend/src/metabase/lib/settings.js:120 -msgid "must be" -msgstr "mÃ¥ være" - -#: frontend/src/metabase/lib/settings.js:120 -#: frontend/src/metabase/lib/settings.js:121 -msgid "characters long" -msgstr "tegn lang" - -#: frontend/src/metabase/lib/settings.js:121 -msgid "Must be" -msgstr "MÃ¥ være" - -#: frontend/src/metabase/lib/settings.js:137 -msgid "and include" -msgstr "og inkludere" - -#: frontend/src/metabase/lib/utils.js:85 -msgid "zero" -msgstr "null" - -#: frontend/src/metabase/lib/utils.js:86 -msgid "one" -msgstr "en" - -#: frontend/src/metabase/lib/utils.js:87 -msgid "two" -msgstr "to" - -#: frontend/src/metabase/lib/utils.js:88 -msgid "three" -msgstr "tre" - -#: frontend/src/metabase/lib/utils.js:89 -msgid "four" -msgstr "fire" - -#: frontend/src/metabase/lib/utils.js:90 -msgid "five" -msgstr "fem" - -#: frontend/src/metabase/lib/utils.js:91 -msgid "six" -msgstr "seks" - -#: frontend/src/metabase/lib/utils.js:92 -msgid "seven" -msgstr "syv" - -#: frontend/src/metabase/lib/utils.js:93 -msgid "eight" -msgstr "Ã¥tte" - -#: frontend/src/metabase/lib/utils.js:94 -msgid "nine" -msgstr "ni" - -#: frontend/src/metabase/meta/Dashboard.js:30 -msgid "Month and Year" -msgstr "MÃ¥ned og Dag" - -#: frontend/src/metabase/meta/Dashboard.js:31 -msgid "Like January, 2016" -msgstr "Som Januar, 2016" - -#: frontend/src/metabase/meta/Dashboard.js:35 -msgid "Quarter and Year" -msgstr "Kvartal og Ã…r" - -#: frontend/src/metabase/meta/Dashboard.js:36 -msgid "Like Q1, 2016" -msgstr "Som Q1, 2016" - -#: frontend/src/metabase/meta/Dashboard.js:40 -msgid "Single Date" -msgstr "Enkelt Dato" - -#: frontend/src/metabase/meta/Dashboard.js:41 -msgid "Like January 31, 2016" -msgstr "Som 31 Januar, 2016" - -#: frontend/src/metabase/meta/Dashboard.js:45 -msgid "Date Range" -msgstr "Datointervall" - -#: frontend/src/metabase/meta/Dashboard.js:46 -msgid "Like December 25, 2015 - February 14, 2016" -msgstr "Som 25 Desember, 2015 - 14 Februar, 2016" - -#: frontend/src/metabase/meta/Dashboard.js:50 -msgid "Relative Date" -msgstr "Relativ Dato" - -#: frontend/src/metabase/meta/Dashboard.js:51 -msgid "Like \"the last 7 days\" or \"this month\"" -msgstr "Som \"de siste 7 dagene\" eller \"denne mÃ¥neden\"" - -#: frontend/src/metabase/meta/Dashboard.js:55 -msgid "Date Filter" -msgstr "Datofilter" - -#: frontend/src/metabase/meta/Dashboard.js:56 -msgid "All Options" -msgstr "Alle alternativer" - -#: frontend/src/metabase/meta/Dashboard.js:57 -msgid "Contains all of the above" -msgstr "Inneholder alt ovenfor" - -#: frontend/src/metabase/meta/Dashboard.js:69 -msgid "ZIP or Postal Code" -msgstr "Postnummer" - -#: frontend/src/metabase/meta/Dashboard.js:77 -#: frontend/src/metabase/meta/Dashboard.js:107 -msgid "ID" -msgstr "ID" - -#: frontend/src/metabase/meta/Dashboard.js:95 -#: frontend/src/metabase/modes/components/actions/PivotByTimeAction.jsx:8 -msgid "Time" -msgstr "Tid" - -#: frontend/src/metabase/meta/Dashboard.js:96 -msgid "Date range, relative date, time of day, etc." -msgstr "Datointervall, relativ dato, tid pÃ¥ dagen, osv." - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:124 -#: frontend/src/metabase/meta/Dashboard.js:101 -#: frontend/src/metabase/modes/components/actions/PivotByLocationAction.jsx:8 -msgid "Location" -msgstr "Sted" - -#: frontend/src/metabase/meta/Dashboard.js:102 -msgid "City, State, Country, ZIP code." -msgstr "By, Stat, Land, Postnummer." - -#: frontend/src/metabase/meta/Dashboard.js:108 -msgid "User ID, product ID, event ID, etc." -msgstr "Bruker ID, produkt ID, hendelses ID, osv." - -#: frontend/src/metabase/meta/Dashboard.js:113 -msgid "Other Categories" -msgstr "Andre kategorier" - -#: frontend/src/metabase/meta/Dashboard.js:114 -msgid "Category, Type, Model, Rating, etc." -msgstr "Kategori, Type, Modell, Vurdering, osv." - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 -#: frontend/src/metabase/user/components/UserSettings.jsx:50 -msgid "Account settings" -msgstr "Kontoinnstillinger" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 -msgid "Exit admin" -msgstr "Lukk admin" - -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 -msgid "Logs" -msgstr "Logger" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 -msgid "Help" -msgstr "Hjelp" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 -msgid "About Metabase" -msgstr "Om Metabase" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 -msgid "Sign out" -msgstr "Logg ut" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 -msgid "Thanks for using" -msgstr "Takk for at du bruker" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 -msgid "You're on version" -msgstr "Du bruker versjon" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 -msgid "Built on" -msgstr "Bygget den" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 -msgid "is a Trademark of" -msgstr "er et varemerke for" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 -msgid "and is built with care in San Francisco, CA" -msgstr "og er bygget med omhu i San Francisco, California" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 -msgid "Metabase Admin" -msgstr "Metabase Admin" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 -#: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 -#: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 -#: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 -msgid "Ask a question" -msgstr "Still et spørsmÃ¥l" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 -msgid "New dashboard" -msgstr "Ny infotavle" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 -msgid "New pulse" -msgstr "Ny puls" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:323 -msgid "Reference" -msgstr "Referanse" - -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:87 -msgid "Which metric?" -msgstr "Hvilken indikator?" - -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 -#: frontend/src/metabase/reference/metrics/MetricList.jsx:26 -msgid "Defining common metrics for your team makes it even easier to ask questions" -msgstr "Ã… definere vanlige indikatorer for ditt lag gjør det enklere Ã¥ spørre spørsmÃ¥l" - -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:117 -msgid "How to create metrics" -msgstr "Hvordan lage indikatorer" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:138 -msgid "See data over time, as a map, or pivoted to help you understand trends or changes." -msgstr "Se data over tid, som et kart, eller pivotert for Ã¥ gjøre det enklere Ã¥ forstÃ¥ trender eller endringer." - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:149 -msgid "Custom" -msgstr "Egendefinert" - -#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 -msgid "New question" -msgstr "Nytt spørsmÃ¥l" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:152 -msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." -msgstr "Bruke den enkle spørsmÃ¥ls-byggeren for Ã¥ se trender, liser over ting, eller for Ã¥ lage dine egne indikatorer." - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 -#: src/metabase/automagic_dashboards/core.clj -#: resources/automagic_dashboards/table/example.yaml -msgid "Native query" -msgstr "Lokal spørring" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 -msgid "For more complicated questions, you can write your own SQL or native query." -msgstr "For mer kompliserte spørsmÃ¥l, kan du skrive din egen SQL eller lokal spørring." - -#: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:245 -msgid "Select a default value…" -msgstr "Velg en standardverdi..." - -#: frontend/src/metabase/parameters/components/widgets/DateAllOptionsWidget.jsx:150 -#: frontend/src/metabase/query_builder/components/filters/FilterPopoverFooter.jsx:41 -msgid "Update filter" -msgstr "Oppdater filter" - -#: frontend/src/metabase/lib/query_time.js:112 -#: frontend/src/metabase/lib/query_time.js:123 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:9 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:144 -#: src/metabase/pulse/render/datetime.clj -msgid "Today" -msgstr "I dag" - -#: frontend/src/metabase/lib/query_time.js:118 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:14 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:148 -#: src/metabase/pulse/render/datetime.clj -msgid "Yesterday" -msgstr "I gÃ¥r" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:18 -msgid "Past 7 days" -msgstr "Siste 7 dager" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:19 -msgid "Past 30 days" -msgstr "Siste 30 dager" - -#: frontend/src/metabase/lib/query_time.js:198 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:24 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:29 -#: src/metabase/api/table.clj -msgid "Week" -msgid_plural "Weeks" -msgstr[0] "Uke" -msgstr[1] "Uker" - -#: frontend/src/metabase/lib/query_time.js:200 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:25 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:30 -#: src/metabase/api/table.clj -msgid "Month" -msgid_plural "Months" -msgstr[0] "MÃ¥ned" -msgstr[1] "MÃ¥neder" - -#: frontend/src/metabase/lib/query_time.js:204 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:26 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:31 -#: src/metabase/api/table.clj -msgid "Year" -msgid_plural "Years" -msgstr[0] "Ã…r" -msgstr[1] "Ã…r" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:152 -msgid "Past 7 Days" -msgstr "Siste 7 Dager" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:156 -msgid "Past 30 Days" -msgstr "Siste 30 Dager" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:160 -msgid "Last Week" -msgstr "Siste Uke" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:164 -msgid "Last Month" -msgstr "Siste MÃ¥ned" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:168 -msgid "Last Year" -msgstr "Siste Ã…r" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:172 -msgid "This Week" -msgstr "Denne Uken" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:176 -msgid "This Month" -msgstr "Denne MÃ¥neden" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:180 -msgid "This Year" -msgstr "Dette Ã…ret" - -#: frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget.jsx:89 -#: frontend/src/metabase/parameters/components/widgets/TextWidget.jsx:54 -msgid "Enter a value..." -msgstr "Skriv en verdi..." - -#: frontend/src/metabase/parameters/components/widgets/TextWidget.jsx:90 -msgid "Enter a default value..." -msgstr "Skriv en standardverdi..." - -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 -#: frontend/src/metabase/public/components/PublicError.jsx:18 -msgid "An error occurred" -msgstr "En feil oppstod" - -#: frontend/src/metabase/public/components/PublicNotFound.jsx:11 -msgid "Not found" -msgstr "Ikke funnet" - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:82 -msgid "You’ve made changes that need to be published before they will be reflected in your application embed." -msgstr "Du har gjort endringer som mÃ¥ publiseres før de vil bli reflektert i din applikasjonsinnbygging." - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:83 -msgid "You will need to publish this {0} before you can embed it in another application." -msgstr "Du mÃ¥ publisere denne {0} før du kan bygge den inn i en annen applikasjon." - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:92 -msgid "Discard Changes" -msgstr "Forkast Endringer." - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:99 -msgid "Updating..." -msgstr "Oppdaterer..." - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:100 -msgid "Updated" -msgstr "Oppdatert" - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:101 -msgid "Failed!" -msgstr "Feilet!" - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:102 -msgid "Publish" -msgstr "Publiser" - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:111 -msgid "Code" -msgstr "Kode" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:72 -#: frontend/src/metabase/visualizations/lib/settings/column.js:282 -msgid "Style" -msgstr "Stil" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:82 -msgid "Which parameters can users of this embed use?" -msgstr "Hvilke parametere kan brukere av denne innbyggingen bruke?" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:84 -msgid "This {0} doesn't have any parameters to configure yet." -msgstr "Denne {0} har ikke noen parametere Ã¥ konfigurere enda." - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:105 -msgid "Editable" -msgstr "Redigerbar" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:106 -msgid "Locked" -msgstr "LÃ¥st" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:113 -msgid "Preview Locked Parameters" -msgstr "ForhÃ¥ndsvis LÃ¥ste Parametere" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:114 -msgid "Try passing some values to your locked parameters here. Your server will have to provide the actual values in the signed token when using this for real." -msgstr "Prøv Ã¥ sende noen verdier til dine lÃ¥ste parametere her. Tjeneren din mÃ¥ tilby de faktiske verdiene i den signerte tokenen nÃ¥r du bruker dette pÃ¥ ordentlig." - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:125 -msgid "Danger zone" -msgstr "Faresone" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:126 -msgid "This will disable embedding for this {0}." -msgstr "Dette vil deaktivere innbygging av denne {0}." - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:127 -msgid "Unpublish" -msgstr "Avpubliser" - -#: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:17 -msgid "Light" -msgstr "Lys" - -#: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:18 -msgid "Dark" -msgstr "Mørk" - -#: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:37 -msgid "Border" -msgstr "Ramme" - -#: frontend/src/metabase/public/components/widgets/EmbedCodePane.jsx:62 -msgid "To embed this {0} in your application:" -msgstr "For Ã¥ bygge inn denne {0} i din applikasjon:" - -#: frontend/src/metabase/public/components/widgets/EmbedCodePane.jsx:64 -msgid "Insert this code snippet in your server code to generate the signed embedding URL " -msgstr "Sett inn denne kodesnutten i koden pÃ¥ tjeneren din for Ã¥ generere den signerte innbyggings-URLen " - -#: frontend/src/metabase/public/components/widgets/EmbedCodePane.jsx:87 -msgid "Then insert this code snippet in your HTML template or single page app." -msgstr "Deretter, sett inn denne kodesnutten i din HTML-mal eller en enkeltsidig applikasjon." - -#: frontend/src/metabase/public/components/widgets/EmbedCodePane.jsx:94 -msgid "Embed code snippet for your HTML or Frontend Application" -msgstr "Kodesnutt for innbygging for din HTML eller frontend-applikasjon" - -#: frontend/src/metabase/public/components/widgets/EmbedCodePane.jsx:101 -msgid "More {0}" -msgstr "Mer {0}" - -#: frontend/src/metabase/public/components/widgets/EmbedCodePane.jsx:103 -msgid "examples on GitHub" -msgstr "eksempler pÃ¥ GitHub" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:71 -msgid "Enable sharing" -msgstr "Aktiver deling" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:75 -msgid "Disable this public link?" -msgstr "Deaktiver denne offentlige lenken?" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:76 -msgid "This will cause the existing link to stop working. You can re-enable it, but when you do it will be a different link." -msgstr "Dette vil gjøre sÃ¥nn at den gjeldende lenken slutter Ã¥ fungere. Du kan re-aktivere den, men du vil da fÃ¥ en annen lenke." - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:116 -msgid "Public link" -msgstr "Offentlig lenke" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:117 -msgid "Share this {0} with people who don't have a Metabase account using the URL below:" -msgstr "Del denne {0} med folk som ikke har en Metabase-konto ved Ã¥ bruke nettadressen under:" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:154 -msgid "Public embed" -msgstr "Offentlig innbygging" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:155 -msgid "Embed this {0} in blog posts or web pages by copying and pasting this snippet:" -msgstr "Bygg inn denne {0} i blogginnlegg eller nettside ved Ã¥ kopiere og lime inn denne snutten:" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:172 -msgid "Embed this {0} in an application" -msgstr "Bygg inn denne {0} i en applikasjon" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:173 -msgid "By integrating with your application server code, you can provide a secure stats {0} limited to a specific user, customer, organization, etc." -msgstr "Ved Ã¥ integrere med koden til din applikasjonstjener, sÃ¥ kan du tilby sikker statistikk {0} begrenset til en spesifikk bruker, kunde, organisasjon, osv." - -#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:93 -msgid "Remove attachment" -msgstr "Fjern vedlegg" - -#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:94 -msgid "Attach file with results" -msgstr "Legg ved fil med resultatene" - -#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:126 -msgid "This question will be added as a file attachment" -msgstr "Dette spørsmÃ¥let vil bli lagt til som vedlegg" - -#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:127 -msgid "This question won't be included in your Pulse" -msgstr "Dette spørsmÃ¥let vil ikke bli inkludert i din Puls" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:91 -msgid "This pulse will no longer be emailed to {0} {1}" -msgstr "Denne pulsen vil ikke lenger bli sendt til {0} {1}" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:93 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:375 -msgid "{0} address" -msgid_plural "{0} addresses" -msgstr[0] "{0} adresse" -msgstr[1] "{0} adresser" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:102 -msgid "Slack channel {0} will no longer get this pulse {1}" -msgstr "Slack-kanalen {0} vil ikke lenger motta denne pulsen {1}" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:111 -msgid "Channel {0} will no longer receive this pulse {1}" -msgstr "Kanalen {0} vil ikke lenger motta denne pulsen {1}" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 -msgid "Edit pulse" -msgstr "Rediger puls" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:133 -msgid "What's a Pulse?" -msgstr "Hva er en Puls?" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:143 -msgid "Got it" -msgstr "Skjønner" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:159 -msgid "Where should this data go?" -msgstr "Hvor skal disse dataene sendes?" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:175 -msgid "Unarchiving…" -msgstr "Pakker ut..." - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:176 -msgid "Unarchive failed" -msgstr "Utpakking feilet" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:177 -msgid "Unarchived" -msgstr "Pakket ut" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:184 -msgid "Create pulse" -msgstr "Laget puls" - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:90 -msgid "Attachment" -msgstr "Vedlegg" - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:104 -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:111 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:675 -msgid "Heads up" -msgstr "Varsko" - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:105 -msgid "We'll show the first 10 columns and 20 rows of this table in your Pulse. If you email this, we'll add a file attachment with all columns and up to 2,000 rows." -msgstr "Vi vil vise deg de første 10 kolonnene og 20 radene fra denne tabellen i din Puls. Hvis du sender dette som e-post, sÃ¥ legger vi ved et vedlegg med alle kolonner og opptil 2.000 rader." - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:112 -msgid "Raw data questions can only be included as email attachments" -msgstr "RÃ¥data-spørsmÃ¥l kan bare inkluderes som e-postvedlegg" - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:119 -msgid "Looks like this pulse is getting big" -msgstr "Det ser ut til at denne pulsen begynner Ã¥ bli stor." - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:120 -msgid "We recommend keeping pulses small and focused to help keep them digestible and useful to the whole team." -msgstr "Vi anbefaler Ã¥ holde pulsene smÃ¥ og fokuserte for Ã¥ gjøre de enklere Ã¥ fordøye og mer anvendelige for hele laget." - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 -msgid "Pick your data" -msgstr "Velg dataene dine" - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:162 -msgid "Choose questions you'd like to send in this pulse" -msgstr "Velg spørsmÃ¥l du vil sende med denne pulsen" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:27 -msgid "Emails" -msgstr "E-poster" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:28 -msgid "Slack messages" -msgstr "Slack-meldinger" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 -msgid "Sent" -msgstr "Sendt" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 -msgid "{0} will be sent at" -msgstr "{0} vil bli sendt" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 -msgid "Messages" -msgstr "Meldinger" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 -msgid "Send email now" -msgstr "Send e-post nÃ¥" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 -msgid "Send to {0} now" -msgstr "Send til {0} nÃ¥" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 -msgid "Sending…" -msgstr "Sender..." - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 -msgid "Sending failed" -msgstr "Sending feilet" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 -msgid "Didn’t send because the pulse has no results." -msgstr "Sendte ikke, fordi pulsen ikke har noen resultater." - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 -msgid "Pulse sent" -msgstr "Puls sendt" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 -msgid "{0} needs to be set up by an administrator." -msgstr "{0} mÃ¥ settes opp av en administrator" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 -msgid "Slack" -msgstr "Slack" - -#: frontend/src/metabase/pulse/components/PulseEditCollection.jsx:12 -msgid "Which collection should this pulse live in?" -msgstr "Hvilken samling skal denne pulsen bo i?" - -#: frontend/src/metabase/pulse/components/PulseEditName.jsx:35 -msgid "Name your pulse" -msgstr "Gi et navn til pulsen din" - -#: frontend/src/metabase/pulse/components/PulseEditName.jsx:37 -msgid "Give your pulse a name to help others understand what it's about" -msgstr "Gi et navn til pulsen for Ã¥ gjøre det enklere for andre Ã¥ forstÃ¥ hva den handler om" - -#: frontend/src/metabase/pulse/components/PulseEditName.jsx:49 -msgid "Important metrics" -msgstr "Viktige indikatorer" - -#: frontend/src/metabase/pulse/components/PulseEditSkip.jsx:22 -msgid "Skip if no results" -msgstr "Hopp over hvis det ikke er noen resultater" - -#: frontend/src/metabase/pulse/components/PulseEditSkip.jsx:24 -msgid "Skip a scheduled Pulse if none of its questions have any results" -msgstr "Hopp over en planlagt Puls hvis ingen av spørsmÃ¥lene har noen resultater" - -#: frontend/src/metabase/pulse/components/RecipientPicker.jsx:65 -msgid "Enter email addresses you'd like this data to go to" -msgstr "Skriv e-postadresser du vil sende disse dataene til" - -#: frontend/src/metabase/pulse/components/WhatsAPulse.jsx:16 -msgid "Help everyone on your team stay in sync with your data." -msgstr "Hjelp alle pÃ¥ ditt lag med Ã¥ holde seg i synk med dine data." - -#: frontend/src/metabase/pulse/components/WhatsAPulse.jsx:30 -msgid "Pulses let you send data from Metabase to email or Slack on the schedule of your choice." -msgstr "Pulser lar deg sende data fra Metabase som e-post eller Slack-meldinger enten regelmessig eller etter behov." - -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:100 -msgid "After {0}" -msgstr "Etter {0}" - -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:102 -msgid "Before {0}" -msgstr "Før {0}" - -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:104 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:294 -msgid "Is Empty" -msgstr "Er tom" - -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:106 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:300 -msgid "Not Empty" -msgstr "Ikke tom" - -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:109 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:212 -msgid "All Time" -msgstr "Hele tiden" - -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:155 -msgid "Apply" -msgstr "Bruk" - -#: frontend/src/metabase/modes/components/actions/CommonMetricsAction.jsx:21 -msgid "View {0}" -msgstr "Vis {0}" - -#: frontend/src/metabase/modes/components/actions/CompareWithTable.jsx:29 -msgid "Compare this with all rows in the table" -msgstr "Sammenlign dette med alle rader i tabellen" - -#: frontend/src/metabase/modes/components/actions/CompoundQueryAction.jsx:14 -msgid "Analyze the results of this Query" -msgstr "Analyser resultatene av denne Spørringen" - -#: frontend/src/metabase/modes/components/actions/CountByTimeAction.jsx:29 -msgid "Count of rows by time" -msgstr "Antall rader over tid" - -#: frontend/src/metabase/modes/components/actions/PivotByAction.jsx:52 -msgid "Break out by {0}" -msgstr "Bryt ut ved {0}" - -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 -msgid "Summarize this segment" -msgstr "Oppsummer dette segmentet" - -#: frontend/src/metabase/modes/components/actions/UnderlyingDataAction.jsx:14 -msgid "View this as a table" -msgstr "Vis dette som en tabell" - -#: frontend/src/metabase/modes/components/actions/UnderlyingRecordsAction.jsx:22 -msgid "View the underlying {0} records" -msgstr "Vis de underliggende {0} oppføringene" - -#: frontend/src/metabase/modes/components/actions/XRayCard.jsx:20 -msgid "X-Ray this question" -msgstr "Utfør X-ray pÃ¥ dette spørsmÃ¥let" - -#: frontend/src/metabase/qb/components/drill/AutomaticDashboardDrill.jsx:32 -msgid "X-ray {0} {1}" -msgstr "X-ray {0} {1}" - -#: frontend/src/metabase/qb/components/drill/AutomaticDashboardDrill.jsx:32 -#: frontend/src/metabase/qb/components/drill/CompareToRestDrill.js:32 -msgid "these" -msgstr "disse" - -#: frontend/src/metabase/qb/components/drill/AutomaticDashboardDrill.jsx:32 -#: frontend/src/metabase/qb/components/drill/CompareToRestDrill.js:32 -msgid "this" -msgstr "denne" - -#: frontend/src/metabase/qb/components/drill/CompareToRestDrill.js:32 -msgid "Compare {0} {1} to the rest" -msgstr "Sammenlign {0} {1} med resten" - -#: frontend/src/metabase/modes/components/drill/DistributionDrill.jsx:35 -msgid "Distribution" -msgstr "Distribusjon" - -#: frontend/src/metabase/modes/components/drill/ObjectDetailDrill.jsx:38 -msgid "View details" -msgstr "Vis detaljer" - -#: frontend/src/metabase/modes/components/drill/QuickFilterDrill.jsx:57 -msgid "View this {0}'s {1}" -msgstr "Vis denne {0}s {1}" - -#: frontend/src/metabase/modes/components/drill/SortAction.jsx:42 -msgid "Ascending" -msgstr "Stigende" - -#: frontend/src/metabase/modes/components/drill/SortAction.jsx:50 -msgid "Descending" -msgstr "Synkende" - -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 -msgid "over time" -msgstr "over tid" - -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 -msgid "Avg" -msgstr "Gjennomsnitt" - -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 -msgid "Distincts" -msgstr "Unike" - -#: frontend/src/metabase/modes/components/drill/UnderlyingRecordsDrill.jsx:39 -msgid "View this {0}" -msgid_plural "View these {0}" -msgstr[0] "Vis denne {0}" -msgstr[1] "Vis disse {0}" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:227 -#: frontend/src/metabase/modes/components/drill/ZoomDrill.jsx:26 -msgid "Zoom in" -msgstr "Forstørr" - -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:24 -msgid "Custom Expression" -msgstr "Egendefinert uttrykk" - -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:22 -msgid "Common Metrics" -msgstr "Vanlige indikatorer" - -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:209 -msgid "Metabasics" -msgstr "Metabasics" - -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:387 -msgid "Name (optional)" -msgstr "Navn (valgfritt)" - -#: frontend/src/metabase/query_builder/components/AggregationWidget.jsx:156 -msgid "Choose an aggregation" -msgstr "Velg en aggregering" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:100 -msgid "Set up your own alert" -msgstr "Sett opp ditt eget varsel" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:143 -msgid "Unsubscribing..." -msgstr "Stopper abonnement..." - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:148 -msgid "Failed to unsubscribe" -msgstr "Klarte ikke Ã¥ stoppe abonnement" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:206 -msgid "Unsubscribe" -msgstr "Stopp abonnement" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:236 -msgid "No channel" -msgstr "Ingen kanal" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:264 -msgid "Okay, you're unsubscribed" -msgstr "Okei, du har meldt deg av" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:336 -msgid "You're receiving {0}'s alerts" -msgstr "Du mottar {0}s varsler" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:337 -msgid "{0} set up an alert" -msgstr "{0} satte opp en varsel" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:160 -msgid "alerts" -msgstr "varsler" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:183 -msgid "Let's set up your alert" -msgstr "La oss sette opp varselet ditt" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:214 -msgid "The wide world of alerts" -msgstr "En verden av varsler" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:215 -msgid "There are a few different kinds of alerts you can get" -msgstr "Det er noen forskjellige typer varsler du kan fÃ¥" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:229 -msgid "When a raw data question {0}" -msgstr "NÃ¥r et rÃ¥data-spørsmÃ¥l {0}" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:230 -msgid "returns any results" -msgstr "returnerer alle resultater" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:241 -msgid "When a line or bar {0}" -msgstr "NÃ¥r en linje eller stolpe {0}" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:242 -msgid "crosses a goal line" -msgstr "krysser en mÃ¥llinje" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:253 -msgid "When a progress bar {0}" -msgstr "NÃ¥r en fremdriftsindikator {0}" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:254 -msgid "reaches its goal" -msgstr "nÃ¥r sitt mÃ¥l" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:262 -msgid "Set up an alert" -msgstr "Sett opp et varsel" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:331 -msgid "Edit your alert" -msgstr "Rediger varselet ditt" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:331 -msgid "Edit alert" -msgstr "Rediger varsel" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:373 -msgid "This alert will no longer be emailed to {0}." -msgstr "Dette varselet vil ikke lenger bli sendt til {0}" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:381 -msgid "Slack channel {0} will no longer get this alert." -msgstr "Slack-kanalen {0} vil ikke lenger motta dette varselet." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:385 -msgid "Channel {0} will no longer receive this alert." -msgstr "Kanalen {0} vil ikke lenger motta dette varselet." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:402 -msgid "Delete this alert" -msgstr "Slett dette varselet." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:404 -msgid "Stop delivery and delete this alert. There's no undo, so be careful." -msgstr "Stopp levering og slett dette varselet. Det er ingen mÃ¥te Ã¥ angre dette, sÃ¥ vær forsiktig." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:412 -msgid "Delete this alert?" -msgstr "Slett dette varselet?" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:499 -msgid "Alert me when the line…" -msgstr "Varsle meg nÃ¥r linjen..." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:500 -msgid "Alert me when the progress bar…" -msgstr "Varsle meg nÃ¥r fremdriftsindikatoren..." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:503 -msgid "Goes above the goal line" -msgstr "GÃ¥r over mÃ¥llinjen" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:503 -msgid "Reaches the goal" -msgstr "NÃ¥r mÃ¥let" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:506 -msgid "Goes below the goal line" -msgstr "GÃ¥r under mÃ¥llinjen" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:506 -msgid "Goes below the goal" -msgstr "GÃ¥r under mÃ¥let" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:514 -msgid "The first time it crosses, or every time?" -msgstr "Første gangen den krysser, eller hver gang?" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:515 -msgid "The first time it reaches the goal, or every time?" -msgstr "Første gangen den nÃ¥r mÃ¥let, eller hver gang?" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:517 -msgid "The first time" -msgstr "Første gangen" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:518 -msgid "Every time" -msgstr "Hver gang" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:621 -msgid "Where do you want to send these alerts?" -msgstr "Hvor vil du ha disse varslene sendt?" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:632 -msgid "Email alerts to:" -msgstr "Send e-postvarsel til:" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:674 -msgid "{0} Goal-based alerts aren't yet supported for charts with more than one line, so this alert will be sent whenever the chart has {1}." -msgstr "{0} MÃ¥ldrevne varseler støttes ikke enda for diagrammer med mer enn én linje, sÃ¥ dette varselet vil bli sendt nÃ¥r enn diagrammet har {1}." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 -msgid "results" -msgstr "resultater" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:681 -msgid "{0} This kind of alert is most useful when your saved question doesn’t {1} return any results, but you want to know when it does." -msgstr "{0} Denne typen varsel er mest nyttig nÃ¥r dine lagrede spørsmÃ¥l ikke {1} returnerer noen resultater, men du vil vite nÃ¥r de gjør det." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:682 -msgid "Tip" -msgstr "Tips" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:684 -msgid "usually" -msgstr "vanligvis" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 -msgid "Pick a segment or table" -msgstr "Velg et segment eller en tabell" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 -msgid "Select a database" -msgstr "Velg en database" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 -#: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 -msgid "Select..." -msgstr "Velg..." - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 -msgid "Select a table" -msgstr "Velg en tabell" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 -msgid "No tables found in this database." -msgstr "Ingen tabeller funnet for denne databasen" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 -msgid "Is a question missing?" -msgstr "Mangler det et spørsmÃ¥l?" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 -msgid "Learn more about nested queries" -msgstr "Lær mer om nøstede spørringer" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 -msgid "Fields" -msgstr "Felter" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 -msgid "No segments were found." -msgstr "Ingen segmenter ble funnet." - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 -msgid "Find a segment" -msgstr "Finn et segment" - -#: frontend/src/metabase/query_builder/components/ExpandableString.jsx:47 -msgid "View less" -msgstr "Vis mindre" - -#: frontend/src/metabase/query_builder/components/ExpandableString.jsx:57 -msgid "View more" -msgstr "Vis mer" - -#: frontend/src/metabase/query_builder/components/ExtendedOptions.jsx:112 -msgid "Pick a field to sort by" -msgstr "Velg et felt det skal sorteres etter" - -#: frontend/src/metabase/query_builder/components/ExtendedOptions.jsx:125 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:75 -msgid "Sort" -msgstr "Sorter" - -#: frontend/src/metabase/query_builder/components/ExtendedOptions.jsx:137 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:82 -msgid "Row limit" -msgstr "Radgrense" - -#: frontend/src/metabase/query_builder/components/FieldName.jsx:73 -msgid "Unknown Field" -msgstr "Ukjent felt" - -#: frontend/src/metabase/query_builder/components/FieldName.jsx:76 -msgid "field" -msgstr "felt" - -#: frontend/src/metabase/query_builder/components/Filter.jsx:117 -msgid "Matches" -msgstr "Matcher" - -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:152 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:160 -#: frontend/src/metabase/query_builder/components/notebook/steps/FilterStep.jsx:18 -msgid "Add filters to narrow your answer" -msgstr "Legg til filter for Ã¥ snevre inn svaret ditt" - -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:297 -msgid "Add a grouping" -msgstr "Legg til en gruppering" - -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 -#: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:89 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:131 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:176 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 -msgid "Data" -msgstr "Data" - -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:363 -msgid "Filtered by" -msgstr "Filtrert etter" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:75 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:380 -msgid "View" -msgstr "Vis" - -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:397 -msgid "Grouped By" -msgstr "Gruppert Etter" - -#: frontend/src/metabase/query_builder/components/LimitWidget.jsx:27 -msgid "None" -msgstr "Ingen" - -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 -msgid "This question is written in {0}." -msgstr "Dette spørsmÃ¥let er skrevet i {0}." - -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:384 -msgid "Hide Editor" -msgstr "Skjul Redigeringsverktøy" - -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:385 -msgid "Hide Query" -msgstr "Skjul Spørring" - -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 -msgid "Open Editor" -msgstr "Ã…pne Redigeringsverktøy" - -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 -msgid "Show Query" -msgstr "Vis Spørring" - -#: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:25 -msgid "This metric has been retired. It's no longer available for use." -msgstr "Denne indikatoren har blitt forkastet. Den er ikke lenger tilgjengelig for bruk." - -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:34 -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:46 -msgid "Download full results" -msgstr "Last ned fullt resultat" - -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:35 -msgid "Download this data" -msgstr "Last ned disse dataene" - -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:46 -msgid "Warning" -msgstr "Advarsel" - -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:50 -msgid "Your answer has a large number of rows so it could take a while to download." -msgstr "Ditt svar har veldig mange rader, sÃ¥ det kan ta en stund Ã¥ laste ned." - -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:51 -msgid "The maximum download size is 1 million rows." -msgstr "Maks antall rader ved nedlasting er 1 million." - -#: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:9 -msgid "Edit question" -msgstr "Rediger spørsmÃ¥l" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:249 -msgid "SAVE CHANGES" -msgstr "LAGRE ENDRINGER" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:263 -msgid "CANCEL" -msgstr "AVBRYT" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:276 -msgid "Move question" -msgstr "Flytt spørsmÃ¥l" - -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 -msgid "Which collection should this be in?" -msgstr "Hvilken samling skal denne være i?" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:134 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:84 -#: frontend/src/metabase/query_builder/components/view/NativeVariablesButton.jsx:17 -msgid "Variables" -msgstr "Variabler" - -#: frontend/src/metabase/query_builder/components/view/DataReferenceButton.jsx:17 -msgid "Learn about your data" -msgstr "Lær mer om dataene dine" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:460 -msgid "Alerts are on" -msgstr "Advarsler er pÃ¥" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:522 -msgid "started from" -msgstr "startet fra" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:48 -msgid "SQL" -msgstr "SQL" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:48 -msgid "native query" -msgstr "lokal spørring" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:52 -msgid "Not Supported" -msgstr "Ikke støttet" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:58 -msgid "View the {0}" -msgstr "Se pÃ¥ {0}" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:59 -msgid "Switch to {0}" -msgstr "Bytt til {0}" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:62 -msgid "Switch to Builder" -msgstr "Bytt til bygger" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:87 -msgid "{0} for this question" -msgstr "{0} for dette spørsmÃ¥let" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:111 -msgid "Convert this question to {0}" -msgstr "Konverter dette spørsmÃ¥let til {0}" - -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 -msgid "This question will take approximately {0} to refresh" -msgstr "Dette spørsmÃ¥let vil ta cirka {0} Ã¥ fornye" - -#: frontend/src/metabase/query_builder/components/view/QuestionLastUpdated.jsx:13 -msgid "Updated {0}" -msgstr "Oppdatert {0}" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:141 -msgid "row" -msgid_plural "rows" -msgstr[0] "rad" -msgstr[1] "rader" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:148 -msgid "Showing first {0} {1}" -msgstr "Viser først {0} {1}" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:151 -msgid "Showing {0} {1}" -msgstr "Viser {0} {1}" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:162 -msgid "Doing science" -msgstr "Vitenskap utføres" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 -msgid "If you give me some data I can show you something cool. Run a Query!" -msgstr "Hvis du gir meg noe data, sÃ¥ kan jeg vise deg noe kult. Kjør en spørring!" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:299 -msgid "How do I use this thing?" -msgstr "Hvordan bruker jeg denne?" - -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 -msgid "Get Answer" -msgstr "FÃ¥ svar" - -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:12 -msgid "It's okay to play around with saved questions" -msgstr "Det er ok Ã¥ leke med lagrede spørsmÃ¥l" - -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:14 -msgid "You won't make any permanent changes to a saved question unless you click the edit icon in the top-right." -msgstr "Endringer blir ikke lagret til lagrede spørsmÃ¥l, hvis du ikke klikker endre ikonet oppe i høyre hjørnet." - -#: frontend/src/metabase/query_builder/components/SearchBar.jsx:28 -msgid "Search for" -msgstr "Søk etter" - -#: frontend/src/metabase/query_builder/components/SelectionModule.jsx:158 -msgid "Advanced..." -msgstr "Avansert..." - -#: frontend/src/metabase/query_builder/components/SelectionModule.jsx:167 -msgid "Sorry. Something went wrong." -msgstr "Beklager. Noe gikk galt." - -#: frontend/src/metabase/query_builder/components/TimeGroupingPopover.jsx:40 -msgid "Group time by" -msgstr "Grupper tid ved" - -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:50 -msgid "Your question took too long" -msgstr "SpørsmÃ¥let ditt tok for lang tid Ã¥ svare pÃ¥" - -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:51 -msgid "We didn't get an answer back from your database in time, so we had to stop. You can try again in a minute, or if the problem persists, you can email an admin to let them know." -msgstr "Vi fikk ikke ett svar fra din database i tid, sÃ¥ vi mÃ¥tte stoppe. Du kan prøve igjen om ett minutt, hvis problemet fortsetter, kan du sende en e-post til administrator for Ã¥ rapportere." - -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:60 -msgid "We're experiencing server issues" -msgstr "Vi har for øyeblikket tjenerproblemer" - -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:61 -msgid "Try refreshing the page after waiting a minute or two. If the problem persists we'd recommend you contact an admin." -msgstr "Prøv oppdatere siden etter Ã¥ ha ventet ett minutt eller to. Hvis problemet fortsetter, ta kontakt med administrator." - -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:95 -msgid "There was a problem with your question" -msgstr "Det var et problem med spørsmÃ¥let ditt" - -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:96 -msgid "Most of the time this is caused by an invalid selection or bad input value. Double check your inputs and retry your query." -msgstr "For det meste skyldes dette et ugyldig valg eller feil inntastet verdi. Sjekk input en gang til og prøv spørringen din igjen." - -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:66 -msgid "This may be the answer you’re looking for. If not, try removing or changing your filters to make them less specific." -msgstr "Dette kan være svaret du leter etter. Hvis ikke, prøv Ã¥ fjern eller endre filterne for Ã¥ gjøre det mindre spesifisert." - -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:71 -msgid "You can also {0} when there are some results." -msgstr "Du kan ogsÃ¥ {0} nÃ¥r det er noen resultater." - -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:73 -msgid "get an alert" -msgstr "fÃ¥ en varsel" - -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:77 -msgid "Back to last run" -msgstr "Tilbake til siste kjøring" - -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 -msgid "Visualization" -msgstr "Visualisering" - -#: frontend/src/metabase/query_builder/components/dataref/TablePane.jsx:95 -msgid "No description set." -msgstr "Ingen beskrivelse satt." - -#: frontend/src/metabase/query_builder/components/dataref/DetailPane.jsx:21 -msgid "Use for current question" -msgstr "Bruk til dette spørsmÃ¥let" - -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 -msgid "Potentially useful questions" -msgstr "Potensielt nyttige spørsmÃ¥l" - -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:169 -msgid "Group by {0}" -msgstr "Grupper med {0}" - -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:165 -msgid "Sum of all values of {0}" -msgstr "Sum av alle verdier med {0}" - -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:63 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:51 -msgid "All distinct values of {0}" -msgstr "Alle distinkte verdier av {0}" - -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:190 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:39 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:39 -msgid "Number of {0} grouped by {1}" -msgstr "Nummer av {0} gruppert med {0}" - -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:17 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:19 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:23 -#: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:24 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:23 -msgid "Data Reference" -msgstr "Datareferanse" - -#: frontend/src/metabase/query_builder/components/dataref/MainPane.jsx:13 -msgid "Learn more about your data structure to ask more useful questions" -msgstr "Lær mer om din datastruktur for Ã¥ spørre nyttigere spørsmÃ¥l" - -#: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:65 -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:91 -msgid "Could not find the table metadata prior to creating a new question" -msgstr "Kunne ikke Ã¥ finne tabellmetadata i før opprettelsen av nytt spørsmÃ¥l" - -#: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:87 -msgid "See {0}" -msgstr "Se {0}" - -#: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:101 -msgid "Metric Definition" -msgstr "Indikatordefinisjon" - -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:125 -msgid "Filter by {0}" -msgstr "Filtrer med {0}" - -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 -msgid "Number of {0}" -msgstr "Tall av {0}" - -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 -msgid "See all {0}" -msgstr "Se alle {0}" - -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:155 -msgid "Segment Definition" -msgstr "Segmentdefinisjoner" - -#: frontend/src/metabase/query_builder/components/dataref/TablePane.jsx:50 -msgid "An error occurred loading the table" -msgstr "En feil oppstod ved innlasting av tabell" - -#: frontend/src/metabase/query_builder/components/dataref/TablePane.jsx:74 -msgid "See the raw data for {0}" -msgstr "Se rÃ¥data for {0}" - -#: frontend/src/metabase/query_builder/components/dataref/TablePane.jsx:179 -msgid "More" -msgstr "Mer" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 -msgid "Invalid expression" -msgstr "Ugyldig uttrykk" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 -msgid "unknown error" -msgstr "ukjent feil" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 -msgid "Field formula" -msgstr "Felt formel" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 -msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." -msgstr "Tenk pÃ¥ dette litt som Ã¥ skrive en formel i et regneark: Du kan bruke tall, felter i denne tabellen, matematiske symboler som +, og noen funksjoner. SÃ¥ du kan skrive noe sÃ¥nt som Subtotal - Kostnad." - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 -#: frontend/src/metabase/reference/components/GuideDetail.jsx:126 -msgid "Learn more" -msgstr "Lær mer" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 -msgid "Give it a name" -msgstr "Gi den ett navn" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 -msgid "Something nice and descriptive" -msgstr "Noe fint og informativt" - -#: frontend/src/metabase/query_builder/components/expressions/Expressions.jsx:60 -msgid "Add a custom field" -msgstr "Legg til tilpasset felt" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:17 -msgid "Include {0}" -msgstr "Inkluder {0}" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:19 -msgid "Case sensitive" -msgstr "Shiftsensitiv" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:23 -msgid "today" -msgstr "idag" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:24 -msgid "this week" -msgstr "denne uken" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:25 -msgid "this month" -msgstr "denne mÃ¥neden" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:26 -msgid "this year" -msgstr "dette Ã¥ret" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:27 -msgid "this minute" -msgstr "dette minuttet" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:28 -msgid "this hour" -msgstr "denne timen" - -#: frontend/src/metabase/query_builder/components/filters/FilterPopover.jsx:290 -msgid "not implemented {0}" -msgstr "ikke implementert {0}" - -#: frontend/src/metabase/query_builder/components/filters/FilterPopover.jsx:291 -msgid "true" -msgstr "riktig" - -#: frontend/src/metabase/query_builder/components/filters/FilterPopover.jsx:291 -msgid "false" -msgstr "feil" - -#: frontend/src/metabase/query_builder/components/filters/FilterPopoverFooter.jsx:41 -#: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 -msgid "Add filter" -msgstr "Legg til filter" - -#: frontend/src/metabase/query_builder/components/filters/FilterWidgetList.jsx:64 -msgid "Item" -msgstr "Element" - -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:220 -msgid "Previous" -msgstr "Tidligere" - -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:251 -msgid "Current" -msgstr "NÃ¥værende" - -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:277 -#: frontend/src/metabase/visualizations/lib/settings/column.js:246 -#: frontend/src/metabase/visualizations/lib/settings/series.js:89 -msgid "On" -msgstr "PÃ¥" - -#: frontend/src/metabase/query_builder/components/filters/pickers/NumberPicker.jsx:47 -msgid "Enter desired number" -msgstr "Skriv inn ønsket tall" - -#: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 -msgid "Empty" -msgstr "Tom" - -#: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:116 -msgid "Find a value" -msgstr "Finn en verdi" - -#: frontend/src/metabase/query_builder/components/filters/pickers/SpecificDatePicker.jsx:113 -msgid "Hide calendar" -msgstr "Skjul kalender" - -#: frontend/src/metabase/query_builder/components/filters/pickers/SpecificDatePicker.jsx:113 -msgid "Show calendar" -msgstr "Vis kalender" - -#: frontend/src/metabase/query_builder/components/filters/pickers/TextPicker.jsx:97 -msgid "You can enter multiple values separated by commas" -msgstr "Du kan skrive inn flere verdier separert med komma" - -#: frontend/src/metabase/query_builder/components/filters/pickers/TextPicker.jsx:38 -msgid "Enter desired text" -msgstr "Skriv inn ønsket tekst" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:107 -msgid "Try it" -msgstr "Prøv den" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:129 -msgid "What's this for?" -msgstr "Hva er dette til?" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:131 -msgid "Variables in native queries let you dynamically replace values in your queries using filter widgets or through the URL." -msgstr "Variabler i lokale spørringer lar deg dynamisk erstatte verdier i spørringen ved bruk av filter eller gjennom nettlinken." - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:136 -msgid "{0} creates a variable in this SQL template called \"variable_name\". Variables can be given types in the side panel, which changes their behavior. All variable types other than \"Field Filter\" will automatically cause a filter widget to be placed on this question; with Field Filters, this is optional. When this filter widget is filled in, that value replaces the variable in the SQL template." -msgstr "{0} oppretter en variabel i denne SQL-malen kalt \"variable_name\". Variabler kan gies typer i sidepanelet, som endrer deres oppførsel. Alle variabeltyper annet enn \"feltfilter\" vil automatisk gjøre at en filterwidget blir plassert pÃ¥ dette spørsmÃ¥let; med feltfiltere, sÃ¥ er dette valgfritt. NÃ¥r denne filterwidgeten er fylt inn, sÃ¥ vil dens verdi erstatte variabelen i SQL-malen." - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:145 -msgid "Field Filters" -msgstr "Felt filtere" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:147 -msgid "Giving a variable the \"Field Filter\" type allows you to link SQL cards to dashboard filter widgets or use more types of filter widgets on your SQL question. A Field Filter variable inserts SQL similar to that generated by the GUI query builder when adding filters on existing columns." -msgstr "Ved Ã¥ gi en variabel \"Felt Filter\"-typen sÃ¥ kan du lenke SQL-spørsmÃ¥lskort til filter-widgetsene pÃ¥ infotavler, eller bruke flere typer filter-widgets pÃ¥ ditt SQL-spørsmÃ¥l. En \"Felt Filter\"-variabel setter inn SQL tilsvarende det som den grafiske spørsmÃ¥lsbyggeren gjør nÃ¥r det legges til filtere pÃ¥ eksisterende kolonner." - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:150 -msgid "When adding a Field Filter variable, you'll need to map it to a specific field. You can then choose to display a filter widget on your question, but even if you don't, you can now map your Field Filter variable to a dashboard filter when adding this question to a dashboard. Field Filters should be used inside of a \"WHERE\" clause." -msgstr "NÃ¥r du legger til en \"Felt Filter\"-variabel, sÃ¥ mÃ¥ du tilordne den til et spesifikt felt. Du kan deretter velge Ã¥ vise en filter-widget pÃ¥ spørsmÃ¥let ditt, men selv om du ikke gjør det, sÃ¥ kan du nÃ¥ tilordne \"Felt Filter\"-variabelen din til et infotavle-filter nÃ¥r du legger dette spørsmÃ¥let til en infotavle. Felt Filtere bør brukes inni en \"WHERE\"-klausul." - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:157 -msgid "Optional Clauses" -msgstr "Valgfrie klausuler" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:132 -msgid "brackets around a {0} create an optional clause in the template. If \"variable\" is set, then the entire clause is placed into the template. If not, then the entire clause is ignored." -msgstr "firkant-parenteser rundt en {0} lager en valgfri klausul i malen. Hvis \"variabel\" er satt, da blir hele klausulen satt inn i malen. Ellers sÃ¥ blir hele klausulen ignorert." - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:169 -msgid "To use multiple optional clauses you can include at least one non-optional WHERE clause followed by optional clauses starting with \"AND\"." -msgstr "For Ã¥ bruke flere valgfrie klausuler kan du inkludere minst én ikke-valgfri WHERE-klausul etterfulgt av valgfrie klausuler som starter med \"AND\"." - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:187 -msgid "Read the full documentation" -msgstr "Les hele dokumentasjonen" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 -msgid "Filter label" -msgstr "Filter etikett" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 -msgid "Variable type" -msgstr "Variabel type" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 -msgid "Text" -msgstr "Tekst" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 -msgid "Date" -msgstr "Dato" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 -msgid "Field Filter" -msgstr "Felt filter" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 -msgid "Field to map to" -msgstr "Felt Ã¥ koble til" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 -msgid "Filter widget type" -msgstr "Filter type" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 -msgid "Required?" -msgstr "PÃ¥krevd?" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 -msgid "Default filter widget value" -msgstr "Standard filter verdi" - -#: frontend/src/metabase/query_builder/containers/ArchiveQuestionModal.jsx:19 -msgid "Archive this question?" -msgstr "Arkiver spørsmÃ¥let?" - -#: frontend/src/metabase/query_builder/containers/ArchiveQuestionModal.jsx:20 -msgid "This question will be removed from any dashboards or pulses using it." -msgstr "Dette spørsmÃ¥let vil bli slettet fra alle infotavler eller pulser den er i." - -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 -msgid "Question" -msgstr "SpørsmÃ¥l" - -#: frontend/src/metabase/questions/containers/AddToDashboard.jsx:11 -msgid "Pick a question to add" -msgstr "Plukk ett spørsmÃ¥l Ã¥ legge til" - -#: frontend/src/metabase/reference/components/EditHeader.jsx:19 -msgid "You are editing this page" -msgstr "Du kan redigere denne siden" - -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 -msgid "See this {0}" -msgstr "Se dette {0}" - -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:117 -msgid "A subset of" -msgstr "En underdel av" - -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 -msgid "Select a field type" -msgstr "Velg en felt type" - -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 -msgid "No field type" -msgstr "Ingen felt type" - -#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:22 -msgid "by" -msgstr "av" - -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 -msgid "Field type" -msgstr "Felt type" - -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:71 -msgid "Select a Foreign Key" -msgstr "Velg en ukjent nøkkel" - -#: frontend/src/metabase/reference/components/Formula.jsx:56 -msgid "View the {0} formula" -msgstr "Vis {0} formelen" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:80 -msgid "Why this {0} is important" -msgstr "Hvorfor {0} er viktig" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:81 -msgid "Why this {0} is interesting" -msgstr "Hvorfor {0} er interessant" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:87 -msgid "Nothing important yet" -msgstr "Ingenting viktig enda" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 -msgid "Nothing interesting yet" -msgstr "Ingenting interessant enda" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:93 -msgid "Things to be aware of about this {0}" -msgstr "Ting Ã¥ være klar over om denne {0}" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 -msgid "Nothing to be aware of yet" -msgstr "Ingenting Ã¥ være klar over enda" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:103 -msgid "Explore this metric" -msgstr "Utforsk denne indikatoren" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:105 -msgid "View this metric" -msgstr "Vis denne indikatoren" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:112 -msgid "By {0}" -msgstr "Med {0}" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:146 -msgid "Remove item" -msgstr "Slett element" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:155 -msgid "Why is this dashboard the most important?" -msgstr "Hvorfor er denne infotavlen den viktigste?" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:156 -msgid "What is useful or interesting about this {0}?" -msgstr "Hva er nyttig eller interessant for denne {0}" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:160 -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:174 -msgid "Write something helpful here" -msgstr "Skriv noe hjelpsomt her" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:169 -msgid "Is there anything users of this dashboard should be aware of?" -msgstr "Er det noe brukere av denne infotavlen bør vite om?" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:170 -msgid "Anything users should be aware of about this {0}?" -msgstr "Er det noe brukerne skal være klar over angÃ¥ende disse {0}" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:182 -#: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:26 -msgid "Which 2-3 fields do you usually group this metric by?" -msgstr "Hvilke 2-3 felter grupperer du vanligvis denne indikatoren etter?" - -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 -msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." -msgstr "Dette er et perfekt sted Ã¥ starte hvis bedriftens data er nye for deg, eller du ønsker Ã¥ se hva som foregÃ¥r" - -#: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:65 -msgid "Most useful fields to group this metric by" -msgstr "Nyttigste feltene Ã¥ gruppere denne indikatoren etter" - -#: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:32 -msgid "Reason for changes" -msgstr "Grunn til endring" - -#: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:36 -msgid "Leave a note to explain what changes you made and why they were required" -msgstr "Legg igjen et notat for Ã¥ forklare endringene du gjorde og hvorfor de var nødvendige" - -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 -msgid "Why this database is interesting" -msgstr "Hvorfor denne databasen er interessant" - -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 -msgid "Things to be aware of about this database" -msgstr "Ting Ã¥ være klar over om denne databasen" - -#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 -msgid "Databases and tables" -msgstr "Databaser og tabeller" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:173 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 -#: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 -msgid "Details" -msgstr "Detaljer" - -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 -msgid "Tables in {0}" -msgstr "Tabeller i {0}" - -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 -msgid "Actual name in database" -msgstr "Reelt navn i database" - -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 -msgid "Why this field is interesting" -msgstr "Hvorfor er dette feltet interessant" - -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 -msgid "Things to be aware of about this field" -msgstr "Ting Ã¥ være klar over om dette feltet" - -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 -msgid "Data type" -msgstr "Datatype" - -#: frontend/src/metabase/reference/databases/FieldList.jsx:39 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:39 -msgid "Fields in this table will appear here as they're added" -msgstr "Felter i denne tabellen vil vises her nÃ¥r de blir lagt til" - -#: frontend/src/metabase/reference/databases/FieldList.jsx:137 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:138 -msgid "Fields in {0}" -msgstr "Felter i {0}" - -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 -msgid "Field name" -msgstr "Feltnavn" - -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 -msgid "X-ray this field" -msgstr "X-ray dette feltet" - -#: frontend/src/metabase/reference/databases/NoDatabasesEmptyState.jsx:8 -msgid "Metabase is no fun without any data" -msgstr "Metabase er ikke morsomt uten data" - -#: frontend/src/metabase/reference/databases/NoDatabasesEmptyState.jsx:9 -msgid "Your databases will appear here once you connect one" -msgstr "Dine databaser vil vises her nÃ¥r du har koblet til" - -#: frontend/src/metabase/reference/databases/NoDatabasesEmptyState.jsx:10 -msgid "Databases will appear here once your admins have added some" -msgstr "Databasene vil vises her nÃ¥r en av administratorene har lagt til" - -#: frontend/src/metabase/reference/databases/NoDatabasesEmptyState.jsx:12 -msgid "Connect a database" -msgstr "Koble til en database" - -#. #-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-# -#. cum-count and cum-sum get names for count and sum, respectively (see explanation in `aggregation-name`) -#: frontend/src/metabase/reference/databases/TableDetail.jsx:38 -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Count of {0}" -msgstr "Telling av {0}" - -#: frontend/src/metabase/reference/databases/TableDetail.jsx:47 -msgid "See raw data for {0}" -msgstr "Se rÃ¥data for {0}" - -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 -msgid "Why this table is interesting" -msgstr "Hvorfor er denne tabellen interessant" - -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 -msgid "Things to be aware of about this table" -msgstr "Ting Ã¥ være klar over om denne tabellen" - -#: frontend/src/metabase/reference/databases/TableList.jsx:30 -msgid "Tables in this database will appear here as they're added" -msgstr "Tabellen i denne databasen vises her etter hvert som de blir lagt til" - -#: frontend/src/metabase/reference/databases/TableQuestions.jsx:34 -msgid "Questions about this table will appear here as they're added" -msgstr "SpørsmÃ¥l om denne tabellen vises her etter hvert som de blir lagt til" - -#: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 -#: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 -#: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 -msgid "Questions about {0}" -msgstr "SpørsmÃ¥l om {0}" - -#: frontend/src/metabase/reference/databases/TableQuestions.jsx:98 -#: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:102 -#: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:101 -msgid "Created {0} by {1}" -msgstr "Laget {0} av {1}" - -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:40 -msgid "Fields in this table" -msgstr "Felter i denne tabellen" - -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 -msgid "Questions about this table" -msgstr "SpørsmÃ¥l om denne tabellen" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:158 -msgid "Help your team get started with your data." -msgstr "Hjelp ditt lag i gang med dataene dine." - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:160 -msgid "Show your team what’s most important by choosing your top dashboard, metrics, and segments." -msgstr "Vis ditt lag hva som er viktigst ved Ã¥ velge din viktigste infotavle, indikatorer og segmenter." - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:166 -msgid "Get started" -msgstr "GÃ¥ igang" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:174 -msgid "Our most important dashboard" -msgstr "VÃ¥r viktigste infotavle" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:189 -msgid "Numbers that we pay attention to" -msgstr "Tall vi følger med pÃ¥" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:214 -msgid "Metrics are important numbers your company cares about. They often represent a core indicator of how the business is performing." -msgstr "Indikatorer er viktige tall som din bedrift bryr seg om. De er ofte et mÃ¥l pÃ¥ hvordan det gÃ¥r med bedriften." - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:222 -msgid "See all metrics" -msgstr "Se alle indikatorer" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:236 -msgid "Segments and tables" -msgstr "Segmenter og tabeller" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 -msgid "Tables" -msgstr "Tabeller" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:263 -msgid "Segments and tables are the building blocks of your company's data. Tables are collections of the raw information while segments are specific slices with specific meanings, like {0}" -msgstr "Segmenter og tabeller er byggeklossene i din organisasjons data. Tabeller er samlinger av rÃ¥ informasjon mens segmenter er spesifikke stykker med spesiell betydning, som for eksempel {0}" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:268 -msgid "Tables are the building blocks of your company's data." -msgstr "Tabeller er byggeblokkene i bedriftens data." - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:278 -msgid "See all segments" -msgstr "Se alle segmenter" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:294 -msgid "See all tables" -msgstr "Se alle tabeller" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:302 -msgid "Other things to know about our data" -msgstr "Andre ting Ã¥ vite om dataene dine" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:303 -msgid "Find out more" -msgstr "Finn ut mer" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:308 -msgid "A good way to get to know your data is by spending a bit of time exploring the different tables and other info available to you. It may take a while, but you'll start to recognize names and meanings over time." -msgstr "En fin mÃ¥te Ã¥ bli kjent med dataene fine er Ã¥ bruke litt tid pÃ¥ Ã¥ utforske de forskjellige tabellene og annen informasjon som er tilgjengelig. Det kan ta litt tid, men etter hvert vil du begynne Ã¥ kjenne igjen navn og hva ting betyr." - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:314 -msgid "Explore our data" -msgstr "Utforsk dataene vÃ¥re" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:322 -msgid "Have questions?" -msgstr "Har du spørsmÃ¥l?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:327 -msgid "Contact {0}" -msgstr "Kontakt {0}" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:253 -msgid "Help new Metabase users find their way around." -msgstr "Hjelp nye Metabase brukere finne veien igjennom." - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:256 -msgid "The Getting Started guide highlights the dashboard, metrics, segments, and tables that matter most, and informs your users of important things they should know before digging into the data." -msgstr "\"Kom igang\"-veilederen fremhever infotavlen, beregninger, segmenter, og de mest viktige tabellene, og informerer brukerne dine om ting de bør vite før de begynner Ã¥ grave i dataene." - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:263 -msgid "Is there an important dashboard for your team?" -msgstr "Er det en viktig infotavle for ditt lag?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:265 -msgid "Create a dashboard now" -msgstr "Lag en infotavle nÃ¥" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:271 -msgid "What is your most important dashboard?" -msgstr "Hva er din viktigste infotavle?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:290 -msgid "Do you have any commonly referenced metrics?" -msgstr "Har du noen ofte brukte indikatorer?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:292 -msgid "Learn how to define a metric" -msgstr "Lær hvordan man definerer en indikator" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:308 -msgid "What are your 3-5 most commonly referenced metrics?" -msgstr "Hva er de 3-5 mest brukte indikatorene?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:352 -msgid "Add another metric" -msgstr "Legg til enda en indikator" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:365 -msgid "Do you have any commonly referenced segments or tables?" -msgstr "Har du noen segmenter eller tabeller som det ofte refereres til?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:367 -msgid "Learn how to create a segment" -msgstr "Lær hvordan man lager ett segment" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:383 -msgid "What are 3-5 commonly referenced segments or tables that would be useful for this audience?" -msgstr "Hva er 3-5 segmenter eller tabeller som det ofte henvises til og som vil være nyttige for dette publikumet?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:429 -msgid "Add another segment or table" -msgstr "Legg til nytt segment eller tabell" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:438 -msgid "Is there anything your users should understand or know before they start accessing the data?" -msgstr "Er det noe brukerne dine burde forstÃ¥ eller vite om før de begynner Ã¥ se pÃ¥ dataene?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:444 -msgid "What should a user of this data know before they start accessing it?" -msgstr "Hva burde en bruker vite før de begynner Ã¥ se pÃ¥ datene? " - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:448 -msgid "E.g., expectations around data privacy and use, common pitfalls or misunderstandings, information about data warehouse performance, legal notices, etc." -msgstr "F.eks., forventninger rundt personvern og bruk av data, vanlige fallgruver eller misforstÃ¥elser, informasjon om ytelsen til datavarehuset, juridiske merknader, osv." - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:459 -msgid "Is there someone your users could contact for help if they're confused about this guide?" -msgstr "Er det noen som brukere kan kontakte for Ã¥ fÃ¥ hjelp dersom de har noen spørsmÃ¥l angÃ¥ende denne veilederen?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:468 -msgid "Who should users contact for help if they're confused about this data?" -msgstr "Hvem skal brukere kontakte for Ã¥ fÃ¥ hjelp dersom de har noen spørsmÃ¥l om disse dataene?" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 -msgid "Please enter a revision message" -msgstr "Vennligst oppgi en revisjonsmelding" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:216 -msgid "Why this Metric is interesting" -msgstr "Hvorfor denne indikatoren er interessant" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:226 -msgid "Things to be aware of about this Metric" -msgstr "Ting Ã¥ være klar over med denne indikatoren" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:236 -msgid "How this Metric is calculated" -msgstr "Hvordan denne indikatoren er beregnet" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 -msgid "Nothing on how it's calculated yet" -msgstr "Ingenting om hvordan det er beregnet enda" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 -msgid "Other fields you can group this metric by" -msgstr "Andre felter du kan gruppere denne indikatoren etter" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 -msgid "Fields you can group this metric by" -msgstr "Felter du kan gruppere denne indikatoren etter" - -#: frontend/src/metabase/reference/metrics/MetricList.jsx:25 -msgid "Metrics are the official numbers that your team cares about" -msgstr "Indikatorer er de offisielle tallene som ditt lag bryr seg om" - -#: frontend/src/metabase/reference/metrics/MetricList.jsx:27 -msgid "Metrics will appear here once your admins have created some" -msgstr "Indikatorer vil dukke opp her nÃ¥r administratorene har laget noen" - -#: frontend/src/metabase/reference/metrics/MetricList.jsx:29 -msgid "Learn how to create metrics" -msgstr "Lær mer om hvordan man lager indikatorer" - -#: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:35 -msgid "Questions about this metric will appear here as they're added" -msgstr "SpørsmÃ¥l om denne indikatoren vil dukke opp her ettersom de blir lagt til" - -#: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:29 -msgid "There are no revisions for this metric" -msgstr "Det er ingen revisjoner for denne indikatoren" - -#: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 -msgid "Revision history for {0}" -msgstr "Revisjonshistorikk for {0}" - -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 -#, fuzzy -msgid "X-ray this metric" -msgstr "Gjør en X-ray pÃ¥ denne indikatoren" - -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 -msgid "Why this Segment is interesting" -msgstr "Hvorfor dette Segmentet er interessant" - -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 -msgid "Things to be aware of about this Segment" -msgstr "Ting Ã¥ være klar over nÃ¥r det gjelder dette Segmentet" - -#: frontend/src/metabase/reference/segments/SegmentList.jsx:24 -msgid "Segments are interesting subsets of tables" -msgstr "Segmenter er interessante subsett av tabeller" - -#: frontend/src/metabase/reference/segments/SegmentList.jsx:25 -msgid "Defining common segments for your team makes it even easier to ask questions" -msgstr "Ã… definere vanlige segmenter for ditt lag gjør det enda enklere Ã¥ stille spørsmÃ¥l" - -#: frontend/src/metabase/reference/segments/SegmentList.jsx:26 -msgid "Segments will appear here once your admins have created some" -msgstr "Segmenter vil vises her nÃ¥r en administrator har laget noen" - -#: frontend/src/metabase/reference/segments/SegmentList.jsx:28 -msgid "Learn how to create segments" -msgstr "Lær hvordan man lager segmenter" - -#: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:35 -msgid "Questions about this segment will appear here as they're added" -msgstr "SpørsmÃ¥l om dette segmentet vil vises her nÃ¥r de blir lagt til" - -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 -msgid "There are no revisions for this segment" -msgstr "Det er ingen revisjoner for dette segmentet" - -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 -msgid "Fields in this segment" -msgstr "Felter i dette segmentet" - -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 -msgid "Questions about this segment" -msgstr "SpørsmÃ¥l om dette segmentet" - -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 -msgid "X-ray this segment" -msgstr "Gjør en X-ray av dette segmentet" - -#: frontend/src/metabase/routes.jsx:182 -msgid "Login" -msgstr "Logg inn" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 -msgid "Search" -msgstr "Søk" - -#: frontend/src/metabase/routes.jsx:217 -msgid "Dashboard" -msgstr "Infotavle" - -#: frontend/src/metabase/routes.jsx:228 -msgid "New Question" -msgstr "Nytt spørsmÃ¥l" - -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 -msgid "Select the type of Database you use" -msgstr "Velg hvilken database type du bruker" - -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 -msgid "Add your data" -msgstr "Legg til dataene din" - -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 -msgid "I'll add my own data later" -msgstr "Jeg vil legge til data senere" - -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 -msgid "Connecting to {0}" -msgstr "Kobler til {0}" - -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 -msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." -msgstr "Du trenger noe informasjon om databasen din, som for eksempel brukernavn og passord. Hvis du ikke har det akkurat nÃ¥, sÃ¥ kommer Metabase med et eksempel-datasett som du kan begynne med." - -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 -msgid "I'll add my data later" -msgstr "Jeg vil legge til data senere" - -#: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:46 -msgid "Control automatic scans" -msgstr "Kontroller automatisk skanninger" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 -msgid "Usage data preferences" -msgstr "Innstillinger for bruk av data" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 -msgid "Thanks for helping us improve" -msgstr "Takk for hjelpen" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 -msgid "We won't collect any usage events" -msgstr "Vi vil ikke samle inn noen brukshendelser" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 -msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." -msgstr "For Ã¥ kunne hjelpe oss med Ã¥ forbedre Metabase, sÃ¥ vil vi gjerne samle inn enkelte data for bruk gjennom Google Analytics" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 -msgid "Here's a full list of everything we track and why." -msgstr "Her er en liste over det vi sporer og hvorfor." - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 -msgid "Allow Metabase to anonymously collect usage events" -msgstr "Tillat Metabase Ã¥ samle inn bruksdata anonymt" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 -msgid "Metabase {0} collects anything about your data or question results." -msgstr "Metabase {0} samler alt om dine data eller resultat pÃ¥ spørsmÃ¥l." - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 -msgid "never" -msgstr "aldri" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 -msgid "All collection is completely anonymous." -msgstr "All innsamling av data er anonymt." - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 -msgid "Collection can be turned off at any point in your admin settings." -msgstr "Samling kan skrus av nÃ¥r som helst i admin-innstillingene" - -#: frontend/src/metabase/setup/components/Setup.jsx:44 -msgid "If you feel stuck" -msgstr "Hvis du føler at du sitter fast" - -#: frontend/src/metabase/setup/components/Setup.jsx:49 -msgid "our getting started guide" -msgstr "vÃ¥r oppstartsguide" - -#: frontend/src/metabase/setup/components/Setup.jsx:50 -msgid "is just a click away." -msgstr "er bare ett klikk unna" - -#: frontend/src/metabase/setup/components/Setup.jsx:92 -msgid "Welcome to Metabase" -msgstr "Velkommen til Metabase" - -#: frontend/src/metabase/setup/components/Setup.jsx:93 -msgid "Looks like everything is working. Now let’s get to know you, connect to your data, and start finding you some answers!" -msgstr "Ser ut som alt virker. La oss bli kjent, koble til dataene din og start med Ã¥ finne noen svar!" - -#: frontend/src/metabase/setup/components/Setup.jsx:97 -msgid "Let's get started" -msgstr "LÃ¥ oss starte" - -#: frontend/src/metabase/setup/components/Setup.jsx:142 -msgid "You're all set up!" -msgstr "Alt er klart og satt opp!" - -#: frontend/src/metabase/setup/components/Setup.jsx:153 -msgid "Take me to Metabase" -msgstr "Ta meg med til Metabase" - -#: frontend/src/metabase/setup/components/UserStep.jsx:155 -msgid "What should we call you?" -msgstr "Hva skal vi kalle deg?" - -#: frontend/src/metabase/setup/components/UserStep.jsx:156 -msgid "Hi, {0}. nice to meet you!" -msgstr "Hei, {0}. Hyggelig Ã¥ møte deg!" - -#: frontend/src/metabase/setup/components/UserStep.jsx:243 -msgid "Create a password" -msgstr "Lag ett nytt passord" - -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 -msgid "Shhh..." -msgstr "Hyyysj..." - -#: frontend/src/metabase/setup/components/UserStep.jsx:269 -msgid "Confirm password" -msgstr "Gjenta passord" - -#: frontend/src/metabase/setup/components/UserStep.jsx:278 -msgid "Shhh... but one more time so we get it right" -msgstr "Hyyysj... Men en gang til Ã¥ vi kan fÃ¥ det riktig" - -#: frontend/src/metabase/setup/components/UserStep.jsx:287 -msgid "Your company or team name" -msgstr "Navn pÃ¥ din bedrift eller ditt lag" - -#: frontend/src/metabase/setup/components/UserStep.jsx:296 -msgid "Department of awesome" -msgstr "Avdeling rÃ¥kul" - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:26 -msgid "Metabot is admiring your integers…" -msgstr "MetaBot beundrer dine heltall..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:27 -msgid "Metabot is performing billions of differential equations…" -msgstr "MetaBot gÃ¥r igjennom flere milliarder av forskjellige ligninger..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:28 -msgid "Metabot is doing science…" -msgstr "MetaBot gjør noen vitenskaplige kalkulasjoner..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:29 -msgid "Metabot is checking out your metrics…" -msgstr "Metabot sjekker indikatoren din..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:30 -msgid "Metabot is looking for trends and outliers…" -msgstr "MwtaBot ser etter trender og uthevelser..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:31 -#, fuzzy -msgid "Metabot is consulting the quantum abacus…" -msgstr "MetaBot konsulterer med moder jord..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:32 -msgid "Metabot is feeling pretty good about all this…" -msgstr "MetaBot føler seg bra med dette..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:52 -msgid "We’ll show you some interesting explorations of your data in\n" -"just a few minutes." -msgstr "Vi vil vise deg noen interessante mÃ¥ter Ã¥ se pÃ¥ dine data om noen øyeblikk." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:72 -msgid "This seems to be taking a while. In the meantime, you can check out one of these example explorations to see what Metabase can do for you." -msgstr "Dette ser ut til Ã¥ ta en stund. I mellomtiden kan du se pÃ¥ en av disse eksemplene for Ã¥ se hva Metabase kan gjøre for deg." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:86 -msgid "I took a look at the data you just connected, and I have some explorations of interesting things I found. Hope you like them!" -msgstr "Jeg har akkurat kikke litt pÃ¥ dataene du koblet pÃ¥, og har noen interessante ting jeg fant. HÃ¥per du liker det!" - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:98 -msgid "I'm done exploring for now" -msgstr "Jeg er ferdig med Ã¥ utforske nÃ¥" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:20 -msgid "Welcome to the Query Builder!" -msgstr "Velkommen til spørringsbyggeren!" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:22 -msgid "The Query Builder lets you assemble questions (or \"queries\") to ask about your data." -msgstr "Spørringsbyggeren lar deg sette sammen spørsmÃ¥l (eller \"spørringer\") for Ã¥ se pÃ¥ din data." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:26 -msgid "Tell me more" -msgstr "Fortell meg mer" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:43 -msgid "Start by picking the table with the data that you have a question about." -msgstr "Start med Ã¥ velge den tabellen med data du har spørsmÃ¥l om." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:45 -msgid "Go ahead and select the \"Orders\" table from the dropdown menu." -msgstr "Velg \"Orders\"-tabellen fra nedtrekksmenyen." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:78 -msgid "Filter your data to get just what you want." -msgstr "Filtrer dataene fine for Ã¥ fÃ¥ akkurat det du vil ha." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:79 -msgid "Click the plus button and select the \"Created At\" field." -msgstr "Trykk pÃ¥ pluss-knappen og velg \"Created At\"-feltet." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:93 -msgid "Here we can pick how many days we want to see data for, try 10" -msgstr "Her kan vi velge hvor mange dager vi ønsker Ã¥ se data for. Prøv 10." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:116 -msgid "Here's where you can choose to add or average your data, count the number of rows in the table, or just view the raw data." -msgstr "Her kan du velge Ã¥ summere eller ta et gjennomsnitt av dine data, telle antall rader i tabellen, eller bare Ã¥ vise rÃ¥dataene." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:118 -msgid "Try it: click on <strong>Raw Data</strong> to change it to <strong>Count of rows</strong> so we can count how many orders there are in this table." -msgstr "Prøv i vei: trykk pÃ¥ <strong>RÃ¥data</strong> for Ã¥ endre det til <strong>Antall rader</strong> sÃ¥nn at vi kan telle hvor mange ordre det er i denne tabellen." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:142 -msgid "Add a grouping to break out your results by category, day, month, and more." -msgstr "Legg til en gruppering for Ã¥ bryte resultatene dine opp i kategori, dag, mÃ¥ned, og mere." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:144 -msgid "Let's do it: click on <strong>Add a grouping</strong>, and choose <strong>Created At: by Week</strong>." -msgstr "La oss gjøre det: trykk pÃ¥ <strong>Legg til en gruppering</strong>, og velg <strong>Created At: etter Uke</strong>." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:152 -msgid "Click on \"by day\" to change it to \"Week.\"" -msgstr "Trykk pÃ¥ \"etter dag\" og bytt til \"Uke.\"" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:173 -msgid "Run Your Query." -msgstr "Kjør spørringen din." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:175 -msgid "You're doing so well! Click <strong>Run query</strong> to get your results!" -msgstr "Du gjør det bra! Trykk <strong>Kjør spørring</strong> for Ã¥ fÃ¥ resultatet ditt" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:192 -msgid "You can view your results as a chart instead of a table." -msgstr "Du kan se resultatene som en graf i stedet for en tabell" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:194 -msgid "Everbody likes charts! Click the <strong>Visualization</strong> dropdown and select <strong>Line</strong>." -msgstr "Alle liker diagrammer! Trykk pÃ¥ <strong>Visualisering</strong>-nedtrekksmenyen og velg <strong>Linje</strong>." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:216 -msgid "Well done!" -msgstr "Bra gjort!" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:218 -msgid "That's all! If you still have questions, check out our" -msgstr "Det var alt! Hvis du fortsatt har noen spørsmÃ¥l, sjekk ut vÃ¥r" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:223 -msgid "User's Guide" -msgstr "Brukerveiledning" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:223 -msgid "Have fun exploring your data!" -msgstr "Kos deg med Ã¥ utforske dataene dine!" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:226 -msgid "Thanks" -msgstr "Takk" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:235 -msgid "Save Your Questions" -msgstr "Lagre dine spørsmÃ¥l" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:237 -msgid "By the way, you can save your questions so you can refer to them later. Saved Questions can also be put into dashboards or Pulses." -msgstr "Forresten, du kan lagre spørsmÃ¥lene dine sÃ¥nn at du kan referere til dem senere. Lagrede spørsmÃ¥l kan ogsÃ¥ legges pÃ¥ infotavler eller pulser." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:241 -msgid "Sounds good" -msgstr "Høres bra ut" - -#: frontend/src/metabase/tutorial/Tutorial.jsx:248 -msgid "Whoops!" -msgstr "Oops!" - -#: frontend/src/metabase/tutorial/Tutorial.jsx:249 -msgid "Sorry, it looks like something went wrong. Please try restarting the tutorial in a minute." -msgstr "Beklager, det ser ut til at noe gikk galt. Vær sÃ¥ snill og start opplæringsveilederen om et øyeblikk." - -#: frontend/src/metabase/user/actions.js:34 -msgid "Password updated successfully!" -msgstr "Passord vellykket oppdatert!" - -#: frontend/src/metabase/user/actions.js:53 -msgid "Account updated successfully!" -msgstr "Konto vellykket oppdatert!" - -#: frontend/src/metabase/user/components/SetUserPassword.jsx:107 -msgid "Current password" -msgstr "NÃ¥værende passord" - -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:137 -msgid "Sign in with Google Email address" -msgstr "Logg inn med Google E-postadresse" - -#: frontend/src/metabase/user/components/UserSettings.jsx:65 -msgid "User Details" -msgstr "Brukerdetaljer" - -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 -msgid "Reset to defaults" -msgstr "Tilbakestill til standard" - -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 -msgid "unknown map" -msgstr "ukjent kart" - -#: frontend/src/metabase/visualizations/components/LeafletGridHeatMap.jsx:26 -msgid "Grid map requires binned longitude/latitude." -msgstr "Rutekartet krever grupperte lengdegrader/breddegrader." - -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 -msgid "more" -msgstr "mer" - -#: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:111 -msgid "Which fields do you want to use for the X and Y axes?" -msgstr "Hvilke felter vil du bruke for X- og Y-aksene?" - -#: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:113 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:64 -msgid "Choose fields" -msgstr "Velg felt" - -#: frontend/src/metabase/visualizations/components/PinMap.jsx:215 -msgid "Save as default view" -msgstr "Lagre som standardvisning" - -#: frontend/src/metabase/visualizations/components/PinMap.jsx:237 -msgid "Draw box to filter" -msgstr "Tegn en boks for Ã¥ filtrere" - -#: frontend/src/metabase/visualizations/components/PinMap.jsx:237 -msgid "Cancel filter" -msgstr "Avbryt filter" - -#: frontend/src/metabase/visualizations/components/PinMap.jsx:47 -msgid "Pin Map" -msgstr "KartnÃ¥l-kart" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:369 -msgid "Unset" -msgstr "Ikke satt" - -#: frontend/src/metabase/visualizations/components/TableSimple.jsx:253 -msgid "Rows {0}-{1} of {2}" -msgstr "Rader {0}-{1} av {2}" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 -msgid "Data truncated to {0} rows." -msgstr "Data redusert til {0} rader." - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 -msgid "Could not find visualization" -msgstr "Kunne ikke finne visualisering" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 -msgid "Could not display this chart with this data." -msgstr "Kunne ikke vise grafen med denne dataen." - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 -msgid "No results!" -msgstr "Ingen resultater!" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 -msgid "Still Waiting..." -msgstr "Venter fortsatt..." - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 -msgid "This usually takes an average of {0}." -msgstr "Dette tar vanligvis gjennomsnittlig {0}." - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 -msgid "(This is a bit long for a dashboard)" -msgstr "(dette er litt for langt for en infotavle)" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:503 -msgid "This is usually pretty fast but seems to be taking awhile right now." -msgstr "Dette er vanligvis ganske kjapt men det ser ut som det tar lang tid nÃ¥." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.jsx:36 -msgid "Select a field" -msgstr "Velg ett felt" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingFieldsPicker.jsx:45 -msgid "error" -msgstr "feil" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 -msgid "Click and drag to change their order" -msgstr "Klikk og dra for Ã¥ endre rekkefølgen" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 -msgid "Add fields from the list below" -msgstr "Legg til felter fra listen under" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:24 -msgid "less than" -msgstr "mindre enn" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:25 -msgid "greater than" -msgstr "mer enn" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:26 -msgid "less than or equal to" -msgstr "mindre enn eller lik som" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:27 -msgid "greater than or equal to" -msgstr "større enn eller lik som" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:28 -msgid "equal to" -msgstr "lik som" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:29 -msgid "not equal to" -msgstr "ikke lik som" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:191 -msgid "Conditional formatting" -msgstr "Betinget formatering" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:193 -msgid "You can add rules to make the cells in this table change color if\n" -"they meet certain conditions." -msgstr "Du kan legge til regler for Ã¥ lage celler i denne tabellen bytte farger avhengig av verdiene." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:203 -msgid "Add a rule" -msgstr "Legg til regel" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:208 -msgid "Rules will be applied in this order" -msgstr "Regler vil bli lagt til i denne sorteringen" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:209 -msgid "Click and drag to reorder." -msgstr "Klikk og dra for Ã¥ endre rekkefølge." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:242 -msgid "No columns selected" -msgstr "Ingen kolonner valgt" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:290 -msgid "Cells in this column will be tinted based on their values." -msgstr "Celler i denne kolonnen vil bli toner basert pÃ¥ deres verdier." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:279 -msgid "When a cell in these columns is {0} it will be tinted this color." -msgstr "NÃ¥r en celle i disse kolonnene er {0}, vil det bli toner i denne fargen." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:313 -msgid "Which columns should be affected?" -msgstr "Hvilke kolonner skal pÃ¥virkes?" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:335 -msgid "Formatting style" -msgstr "Formatteringstil" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:339 -msgid "Single color" -msgstr "Enkel farge" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:340 -msgid "Color range" -msgstr "Fargeskala" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:312 -msgid "When a cell in this column is…" -msgstr "NÃ¥r en celle i denne kolonnen er..." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:376 -msgid "…turn its background this color:" -msgstr "...endre bakgrunnsfargen til denne fargen:" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:382 -msgid "Highlight the whole row" -msgstr "Framhev hele raden" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:390 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:132 -msgid "Colors" -msgstr "Farger" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:404 -msgid "Start the range at" -msgstr "Start omfanget med" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:409 -msgid "Smallest value in this column" -msgstr "Minste verdi i denne kolonnen" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:411 -msgid "Smallest value in each column" -msgstr "Minste verdi i hver kolonne" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:413 -msgid "Smallest value in all of these columns" -msgstr "Minste verdi i alle disse kolonnene" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:417 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:441 -msgid "Custom value" -msgstr "Egen verdi" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:428 -msgid "End the range at" -msgstr "Avslutt omrÃ¥det ved" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:433 -msgid "Largest value in this column" -msgstr "Største verdi i denne kolonnen" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:435 -msgid "Largest value in each column" -msgstr "Største verdi i hver kolonne" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:437 -msgid "Largest value in all of these columns" -msgstr "Største verdi i alle disse kolonnene" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:471 -msgid "Add rule" -msgstr "Legg til regel" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:471 -msgid "Update rule" -msgstr "Oppdater regel" - -#: frontend/src/metabase/visualizations/index.js:33 -msgid "Visualization is null" -msgstr "Visualisering er null" - -#: frontend/src/metabase/visualizations/index.js:38 -msgid "Visualization must define an 'identifier' static variable: " -msgstr "Visualiseringen mÃ¥ definere en 'identifier' statisk variabel: " - -#: frontend/src/metabase/visualizations/index.js:44 -msgid "Visualization with that identifier is already registered: " -msgstr "Visualiseringen med den indentifikatoren er allerede registrert: " - -#: frontend/src/metabase/visualizations/index.js:72 -msgid "No visualization for {0}" -msgstr "Ingen visualisering for {0}" - -#: frontend/src/metabase/visualizations/lib/warnings.js:25 -msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." -msgstr "\"{0}\" er et ikke-aggregert felt: Hvis det har mer enn én verdi for et punkt pÃ¥ x-aksen, sÃ¥ vil verdiene bli summert." - -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 -msgid "This chart type requires at least 2 columns." -msgstr "Denne grafetypen krever minst 2 kolonner." - -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 -msgid "This chart type doesn't support more than {0} series of data." -msgstr "Denne grafetypen støtter ikke mer enn {0} serier med data." - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:297 -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:62 -msgid "Goal" -msgstr "MÃ¥l" - -#: frontend/src/metabase/visualizations/lib/errors.js:11 -msgid "Doh! The data from your query doesn't fit the chosen display choice. This visualization requires at least {0} {1} of data." -msgstr "Ã… nei! Dataene fra spørringen din passer ikke med den valgte visningen. Denne visualiseringen trenger minst {0} {1} med data." - -#: frontend/src/metabase/visualizations/lib/errors.js:11 -msgid "column" -msgid_plural "columns" -msgstr[0] "kolonne" -msgstr[1] "kolonner" - -#: frontend/src/metabase/visualizations/lib/errors.js:23 -msgid "No dice. We have {0} data {1} to show and that's not enough for this visualization." -msgstr "Sjanseløst. Vi har {0} data {1} Ã¥ vise og det er ikke nok for denne visualiseringen." - -#: frontend/src/metabase/visualizations/lib/errors.js:23 -msgid "point" -msgid_plural "points" -msgstr[0] "poeng" -msgstr[1] "poenger" - -#: frontend/src/metabase/visualizations/lib/errors.js:35 -msgid "Bummer. We can't actually do a pin map for this data because we require both a latitude and longitude column." -msgstr "Kjipern. Vi kan ikke lage et kart med kartnÃ¥ler av disse dataene fordi vi trenger kolonner bÃ¥de for lengdegrad og breddegrad." - -#: frontend/src/metabase/visualizations/lib/errors.js:55 -msgid "Please configure this chart in the chart settings" -msgstr "Vennligst konfigurer denne grafen i grafinstillingene" - -#: frontend/src/metabase/visualizations/lib/errors.js:57 -msgid "Edit Settings" -msgstr "Rediger innstillinger" - -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 -msgid "xValues missing!" -msgstr "xVerdier mangler!" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:90 -#: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:31 -msgid "X-axis" -msgstr "X-akse" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:119 -msgid "Add a series breakout..." -msgstr "Bryt ut serien..." - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:132 -#: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:35 -msgid "Y-axis" -msgstr "Y-akse" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:160 -msgid "Add another series..." -msgstr "Legg til en ny serie..." - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:177 -msgid "Bubble size" -msgstr "Bobblestørrelse" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 -msgid "Line" -msgstr "Linje" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:72 -msgid "Curve" -msgstr "Kurve" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:73 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:104 -msgid "Step" -msgstr "Steg" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:170 -msgid "Show point markers on lines" -msgstr "Vis punktmarkeringer pÃ¥ linjer" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:219 -msgid "Stacking" -msgstr "Stabling" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:223 -msgid "Don't stack" -msgstr "Ikke stable" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:224 -msgid "Stack" -msgstr "Stable" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:225 -msgid "Stack - 100%" -msgstr "Stable - 100%" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 -msgid "Show goal" -msgstr "Vis mÃ¥l" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:287 -msgid "Goal value" -msgstr "MÃ¥lverdi" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:103 -msgid "Replace missing values with" -msgstr "Erstatt manglende verdier med" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:107 -msgid "Zero" -msgstr "Null" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:108 -msgid "Nothing" -msgstr "Ingenting" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:109 -msgid "Linear Interpolated" -msgstr "Linjært Interpolert" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 -msgid "X-axis scale" -msgstr "Skalering av X-akse" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 -msgid "Timeseries" -msgstr "Tidsserie" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 -msgid "Linear" -msgstr "Lineær" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 -msgid "Power" -msgstr "Kraft" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 -msgid "Log" -msgstr "Logg" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 -msgid "Histogram" -msgstr "Histogram" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 -msgid "Ordinal" -msgstr "Ordens" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 -msgid "Y-axis scale" -msgstr "Y-akse skala" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 -msgid "Show x-axis line and marks" -msgstr "Vis linje og merker for x-akse" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 -msgid "Compact" -msgstr "Kompakt" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 -msgid "Rotate 45°" -msgstr "Roter 45°" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 -msgid "Rotate 90°" -msgstr "Roter 90°" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 -msgid "Show y-axis line and marks" -msgstr "Vis linje og merker for y-akse" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 -msgid "Auto y-axis range" -msgstr "Automatisk omrÃ¥de for y-aksen" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 -msgid "Use a split y-axis when necessary" -msgstr "Bruk en delt y-akse hvis det er nødvendig" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 -msgid "Show label on x-axis" -msgstr "Vis etikett pÃ¥ x-akse" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 -msgid "X-axis label" -msgstr "X-akse etikett" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 -msgid "Show label on y-axis" -msgstr "Vis etikett pÃ¥ y-akse" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 -msgid "Y-axis label" -msgstr "Y-akse etikett" - -#: frontend/src/metabase/visualizations/lib/utils.js:133 -msgid "Standard Deviation" -msgstr "Standardavvik" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 -msgid "Area" -msgstr "OmrÃ¥de" - -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 -msgid "area chart" -msgstr "omrÃ¥dediagram" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 -msgid "Bar" -msgstr "Søyle" - -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 -msgid "bar chart" -msgstr "søylediagram" - -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:62 -msgid "Which fields do you want to use?" -msgstr "Hvilke felter ønsker du Ã¥ bruke?" - -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:32 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:122 -msgid "Funnel" -msgstr "Trakt" - -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:111 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:110 -msgid "Measure" -msgstr "MÃ¥le" - -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:117 -msgid "Funnel type" -msgstr "Trakttype" - -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:123 -msgid "Bar chart" -msgstr "Søylediagram" - -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 -msgid "line chart" -msgstr "linjediagram" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 -msgid "Please select longitude and latitude columns in the chart settings." -msgstr "Vennligst velg kolonner for lengdegrad og breddegrad i diagraminnstillingene." - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 -msgid "Please select a region map." -msgstr "Vennligst velg ett regionalkart." - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 -#, fuzzy -msgid "Please select region and metric columns in the chart settings." -msgstr "Vennligst velg region- og indikator-kolonner i diagraminnstillingene." - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:39 -msgid "Map" -msgstr "Kart" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 -msgid "Map type" -msgstr "Kart type" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 -msgid "Region map" -msgstr "Regionalkart" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 -msgid "Pin map" -msgstr "KartnÃ¥l-kart" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 -msgid "Pin type" -msgstr "Type kartnÃ¥l" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 -msgid "Tiles" -msgstr "Fliser" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 -msgid "Markers" -msgstr "Markører" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 -msgid "Latitude field" -msgstr "Felt for breddegrad" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 -msgid "Longitude field" -msgstr "Felt for lengdegrad" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 -msgid "Metric field" -msgstr "Indikatorfelt" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 -msgid "Region field" -msgstr "Felt for region" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 -msgid "Radius" -msgstr "Radius" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 -msgid "Blur" -msgstr "Uskarphet" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 -msgid "Min Opacity" -msgstr "Min gjennomsiktighet" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 -msgid "Max Zoom" -msgstr "Maks zoom" - -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 -msgid "No relationships found." -msgstr "Ingen forhold funnet" - -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 -msgid "via {0}" -msgstr "via {0}" - -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 -msgid "This {0} is connected to:" -msgstr "{0} er koblet til:" - -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:87 -msgid "Object Detail" -msgstr "Objekt detaljer" - -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:90 -msgid "object" -msgstr "objekt" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 -msgid "Total" -msgstr "Total" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:73 -msgid "Which columns do you want to use?" -msgstr "Hvilke kolonner vil du bruke?" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:49 -msgid "Pie" -msgstr "Pai" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:105 -msgid "Dimension" -msgstr "Dimensjon" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:115 -#, fuzzy -msgid "Show legend" -msgstr "Vis forklaring" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:120 -#, fuzzy -msgid "Show percentages in legend" -msgstr "Vis prosenter i forklaring" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:126 -msgid "Minimum slice percentage" -msgstr "Minste oppstykkings-prosent" - -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:161 -msgid "Goal met" -msgstr "MÃ¥l møtt" - -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:163 -msgid "Goal exceeded" -msgstr "MÃ¥l overskredet" - -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:230 -msgid "Goal {0}" -msgstr "MÃ¥l {0}" - -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:43 -msgid "Progress visualization requires a number." -msgstr "Fremdriftsvisualisering krever et tall." - -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:27 -msgid "Progress" -msgstr "Fremdrift" - -#: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 -msgid "Color" -msgstr "Farge" - -#: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:13 -msgid "Row Chart" -msgstr "Raddiagram" - -#: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:16 -msgid "row chart" -msgstr "raddiagram" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:358 -msgid "Separator style" -msgstr "Separatorstil" - -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:88 -msgid "Number of decimal places" -msgstr "Nummer med desimal punkter" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:382 -msgid "Add a prefix" -msgstr "Legg til prefiks" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:386 -msgid "Add a suffix" -msgstr "Legg til suffiks" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:375 -msgid "Multiply by a number" -msgstr "Multipliser med ett tall" - -#: frontend/src/metabase/visualizations/visualizations/ScatterPlot.jsx:16 -msgid "Scatter" -msgstr "Spredning" - -#: frontend/src/metabase/visualizations/visualizations/ScatterPlot.jsx:19 -msgid "scatter plot" -msgstr "spredningsdiagram" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:83 -msgid "Pivot the table" -msgstr "Pivoter tabellen" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:73 -msgid "Visible fields" -msgstr "Synlige felter" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:167 -#, fuzzy -msgid "Write here, and use Markdown if you'd like" -msgstr "Skriv her, og bruk gjerne Markdown hvis du vil" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:73 -msgid "Vertical Alignment" -msgstr "Loddrett justering" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:77 -msgid "Top" -msgstr "Topp" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:78 -msgid "Middle" -msgstr "Midten" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:79 -msgid "Bottom" -msgstr "Bunn" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:86 -msgid "Horizontal Alignment" -msgstr "Vannrett justering" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:126 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:90 -msgid "Left" -msgstr "Venstre" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:91 -msgid "Center" -msgstr "Senter" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:127 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:92 -msgid "Right" -msgstr "Høyre" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:99 -msgid "Show background" -msgstr "Vis bakgrunn" - -#: frontend/src/metabase-lib/lib/Dimension.js:725 -msgid "{0} bin" -msgid_plural "{0} bins" -msgstr[0] "{0} samling" -msgstr[1] "{0} samlinger" - -#: frontend/src/metabase-lib/lib/Dimension.js:731 -msgid "Auto binned" -msgstr "Auto samling" - -#: src/metabase/api/alert.clj -msgid "DELETE /api/alert/:id is deprecated. Instead, change its `archived` value via PUT /api/alert/:id." -msgstr "DELETE /api/alert/:id er foreldet. Bruk heller dens`archived`-verdi via PUT /api/alert/:id." - -#: src/metabase/api/automagic_dashboards.clj -msgid "invalid show value" -msgstr "ukjent vis verdi" - -#: src/metabase/api/automagic_dashboards.clj -msgid "invalid value for prefix" -msgstr "ukjent verdi for prefiks" - -#: src/metabase/api/automagic_dashboards.clj -msgid "invalid value for rule name" -msgstr "ukjent verdi for regelnavn" - -#: src/metabase/api/automagic_dashboards.clj -msgid "value couldn''t be parsed as base64 encoded JSON" -msgstr "verdi kunne ikke leses som base64 kodet JSON" - -#: src/metabase/api/automagic_dashboards.clj -msgid "Invalid entity type" -msgstr "Ukjent enhetstype" - -#: src/metabase/api/automagic_dashboards.clj -msgid "Invalid comparison entity type. Can only be one of \"table\", \"segment\", or \"adhoc\"" -msgstr "Ugyldig entitetstype for sammenligning. Kan kun være en av \"tabell\", \"segment\", eller \"adhoc\"" - -#: src/metabase/query_processor/async.clj -msgid "Error running query to determine Card result metadata:" -msgstr "Feil ved kjøring av spørring for Ã¥ bestemme metadata for kort-resultat:" - -#: src/metabase/api/card.clj -msgid "DELETE /api/card/:id is deprecated. Instead, change its `archived` value via PUT /api/card/:id." -msgstr "DELETE /api/card/:id er utgÃ¥ende. Arkiver istedenfor ved bruk av `archived` verdi via PUT /api/card/:id." - -#: src/metabase/api/common.clj src/metabase/api/common/internal.clj -msgid "Invalid field: {0}" -msgstr "Ukjent felt: {0}" - -#: src/metabase/api/common.clj -msgid "Invalid value ''{0}'' for ''{1}'': {2}" -msgstr "Ukjent verdi \"{0}\" for \"{1}\": {2}" - -#: src/metabase/api/common.clj -msgid "must be one of: {0}" -msgstr "MÃ¥ være en av: {0}" - -#: src/metabase/api/common.clj -#, fuzzy -msgid "Invalid Request." -msgstr "Ukjent forespørsel." - -#: src/metabase/api/common.clj -msgid "Not found." -msgstr "Ikke funnet." - -#: src/metabase/api/common.clj -msgid "You don''t have permissions to do that." -msgstr "Du har ikke tilganger til Ã¥ gjøre dette." - -#: src/metabase/api/common.clj -msgid "Internal server error." -msgstr "Intern tjenerfeil." - -#: src/metabase/api/common.clj -msgid "Warning: endpoint {0}/{1} does not have a docstring." -msgstr "Advarsel: endepunktet {0}/{1} har ikke en docstring." - -#: src/metabase/api/common.clj -msgid "starting streaming request" -msgstr "starter strømningsforespørsel" - -#: src/metabase/async/api_response.clj -msgid "connection closed, canceling request" -msgstr "Kobling lukket, avbryter forespørsel" - -#. a newline padding character as it's harmless and will allow us to check if the client is connected. If -#. sending this character fails because the connection is closed, the chan will then close. Newlines are -#. no-ops when reading JSON which this depends upon. -#: src/metabase/async/api_response.clj -msgid "Response not ready, writing one byte & sleeping..." -msgstr "Respons ikke tilgjengelig, skriver en byte & sover..." - -#: src/metabase/api/common.clj -msgid "Public sharing is not enabled." -msgstr "Offentlig deling er ikke aktivert." - -#: src/metabase/api/common.clj -msgid "Embedding is not enabled." -msgstr "Innebygging er ikke aktivert." - -#: src/metabase/api/common.clj -msgid "The object has been archived." -msgstr "Objektet har blitt arkivert." - -#: src/metabase/api/common/internal.clj -msgid "Attempted to return a boolean as an API response. This is not allowed!" -msgstr "Forsøkte Ã¥ returnere en boolsk verdi som et API-svar. Dette er ikke tillatt!" - -#: src/metabase/api/dataset.clj -msgid "Source query for this query is Card {0}" -msgstr "Kilde-spørring for denne spørringen er kort {0}" - -#: src/metabase/api/dataset.clj -msgid "Invalid export format: {0}" -msgstr "Ukjent eksport format: {0}" - -#: src/metabase/api/geojson.clj -msgid "Invalid JSON URL or resource: {0}" -msgstr "Ukjent JSON nettlink eller resurs: {0}" - -#: src/metabase/api/geojson.clj -msgid "JSON containing information about custom GeoJSON files for use in map visualizations instead of the default US State or World GeoJSON." -msgstr "JSON som inneholder informasjon om egendefinert GeoJSON-filer for bruk i kart-visualiseringer istedenfor det innebygde kartet over stater i USA eller verdenskartet." - -#: src/metabase/api/geojson.clj -msgid "Invalid custom GeoJSON key: {0}" -msgstr "Ukjent tilpasset GeoJSON nøkkel: {0}" - -#. ...but if we *still* couldn't find a match, throw an Exception, because we don't want people -#. trying to inject new params -#: src/metabase/api/public.clj -msgid "Invalid param: {0}" -msgstr "Ukjent parameter: {0}" - -#: src/metabase/api/pulse.clj -msgid "DELETE /api/pulse/:id is deprecated. Instead, change its `archived` value via PUT /api/pulse/:id." -msgstr "DELETE /api/pulse/:id er avleggs. Istedenfor bruk arkiverings API via PUT /api/pulsen/:id." - -#: src/metabase/api/routes.clj -msgid "API endpoint does not exist." -msgstr "API punkt fins ikke." - -#: src/metabase/api/session.clj -msgid "Password did not match stored password." -msgstr "Passord er ikke likt lagret passord." - -#: src/metabase/api/session.clj -msgid "did not match stored password" -msgstr "er ikke likt lagret passord" - -#: src/metabase/api/session.clj -msgid "Problem connecting to LDAP server, will fallback to local authentication {0}" -msgstr "Problem tilkobling til LDAP-tjener, vil falle tilbake til lokal autorisering {0}" - -#: src/metabase/api/session.clj -msgid "Invalid reset token" -msgstr "Ugyldig tilbakestillingsnøkkel" - -#: src/metabase/api/session.clj -msgid "Client ID for Google Auth SSO. If this is set, Google Auth is considered to be enabled." -msgstr "Klient-ID for Google Auth SSO. Hvis denne er satt, sÃ¥ er Google Auth ansett for Ã¥ være aktivert." - -#: src/metabase/api/session.clj -msgid "When set, allow users to sign up on their own if their Google account email address is from this domain." -msgstr "NÃ¥r denne er satt, sÃ¥ kan brukere registrere seg med sin egen Google-konto dersom e-postadressen er fra dette domenet." - -#: src/metabase/api/session.clj -msgid "Invalid Google Auth token." -msgstr "Ugyldig Google Auth nøkkel." - -#: src/metabase/api/session.clj -msgid "Email is not verified." -msgstr "E-postadresse ikke verifisert." - -#: src/metabase/api/session.clj -msgid "You''ll need an administrator to create a Metabase account before you can use Google to log in." -msgstr "En administrator mÃ¥ lage en Metabase-konto før du kan bruke Google til Ã¥ logge inn." - -#: src/metabase/api/session.clj -msgid "Successfully authenticated Google Auth token for: {0} {1}" -msgstr "Autentisering med Google Auth token var vellykket for: {0} {1}" - -#: src/metabase/api/setup.clj -msgid "Add a database" -msgstr "Legg til database" - -#: src/metabase/api/setup.clj -msgid "Get connected" -msgstr "Koble til" - -#: src/metabase/api/setup.clj -msgid "Connect to your data so your whole team can start to explore." -msgstr "Koble til dine data sÃ¥nn at hele laget ditt kan starte Ã¥ utforske." - -#: src/metabase/api/setup.clj -msgid "Set up email" -msgstr "Sett opp e-post" - -#: src/metabase/api/setup.clj -#, fuzzy -msgid "Add email credentials so you can more easily invite team members and get updates via Pulses." -msgstr "Legg til legitimasjon for e-post sÃ¥nn at du enklere kan invitere lagmedlemmer og motta oppdateringer via pulser." - -#: src/metabase/api/setup.clj -msgid "Set Slack credentials" -msgstr "Sett Slack innlogging" - -#: src/metabase/api/setup.clj -msgid "Does your team use Slack? If so, you can send automated updates via pulses and ask questions with MetaBot." -msgstr "Bruker laget ditt Slack? I sÃ¥ fall kan du sende automatiske oppdateringer via pulser og stille spørsmÃ¥l med MetaBot." - -#: src/metabase/api/setup.clj -msgid "Invite team members" -msgstr "Inviter lagmedlemmer" - -#: src/metabase/api/setup.clj -msgid "Share answers and data with the rest of your team." -msgstr "Del svar og data med resten av ditt lag." - -#: src/metabase/api/setup.clj -msgid "Hide irrelevant tables" -msgstr "Skjul irrelevante tabeller" - -#: src/metabase/api/setup.clj -msgid "Curate your data" -msgstr "Organiser dataene dine" - -#: src/metabase/api/setup.clj -msgid "If your data contains technical or irrelevant info you can hide it." -msgstr "Hvis dataene inneholder teknisk eller irrelevant informasjon sÃ¥ kan du skjule det." - -#: src/metabase/api/setup.clj -msgid "Organize questions" -msgstr "Organiser spørsmÃ¥l" - -#: src/metabase/api/setup.clj -msgid "Have a lot of saved questions in {0}? Create collections to help manage them and add context." -msgstr "Har du mange lagrede spørsmÃ¥l i {0}? Lag samlinger for Ã¥ hÃ¥ndtere dem og sette dem i kontekst." - -#. This is the very first log message that will get printed. -#. It's here because this is one of the very first namespaces that gets loaded, and the first that has access to the logger -#. It shows up a solid 10-15 seconds before the "Starting Metabase in STANDALONE mode" message because so many other namespaces need to get loaded -#: src/metabase/api/setup.clj -msgid "Metabase" -msgstr "Metabase" - -#: src/metabase/api/setup.clj -msgid "Create metrics" -msgstr "Lag indikator" - -#: src/metabase/api/setup.clj -msgid "Define canonical metrics to make it easier for the rest of your team to get the right answers." -msgstr "Definer standardindikatorer for Ã¥ gjøre det enklere for resten av ditt lag Ã¥ finne de riktige svarene." - -#: src/metabase/api/setup.clj -msgid "Create segments" -msgstr "Lag segmenter" - -#: src/metabase/api/setup.clj -msgid "Keep everyone on the same page by creating canonical sets of filters anyone can use while asking questions." -msgstr "Hjelp alle med Ã¥ forstÃ¥ hverandre ved Ã¥ lage standard-sett med filtere som alle kan bruke nÃ¥r de stiller spørsmÃ¥l." - -#: src/metabase/api/table.clj -msgid "Table ''{0}'' is now visible. Resyncing." -msgstr "Tabell \"{0}\" er synlig. Synkroniserer pÃ¥ nytt." - -#: src/metabase/api/table.clj -msgid "Auto bin" -msgstr "Auto samle" - -#: src/metabase/api/table.clj -msgid "Don''t bin" -msgstr "Ikke samle" - -#: frontend/src/metabase/lib/query_time.js:196 src/metabase/api/table.clj -msgid "Day" -msgid_plural "Days" -msgstr[0] "Dag" -msgstr[1] "Dager" - -#. note the order of these options corresponds to the order they will be shown to the user in the UI -#: frontend/src/metabase/lib/query_time.js:192 src/metabase/api/table.clj -msgid "Minute" -msgid_plural "Minutes" -msgstr[0] "Minutt" -msgstr[1] "Minutter" - -#: frontend/src/metabase/lib/query_time.js:194 src/metabase/api/table.clj -msgid "Hour" -msgid_plural "Hours" -msgstr[0] "Time" -msgstr[1] "Timer" - -#: frontend/src/metabase/lib/query_time.js:202 src/metabase/api/table.clj -msgid "Quarter" -msgid_plural "Quarters" -msgstr[0] "Kvartal" -msgstr[1] "Kvartaler" - -#: src/metabase/api/table.clj -msgid "Minute of Hour" -msgstr "Minutt i time" - -#: src/metabase/api/table.clj -msgid "Hour of Day" -msgstr "Time pÃ¥ dagen" - -#: src/metabase/api/table.clj -msgid "Day of Week" -msgstr "Dag i uke" - -#: src/metabase/api/table.clj -msgid "Day of Month" -msgstr "Dag i mÃ¥ned" - -#: src/metabase/api/table.clj -msgid "Day of Year" -msgstr "Dag i Ã¥r" - -#: src/metabase/api/table.clj -msgid "Week of Year" -msgstr "Uke i Ã¥r" - -#: src/metabase/api/table.clj -msgid "Month of Year" -msgstr "MÃ¥ned i Ã¥r" - -#: src/metabase/api/table.clj -msgid "Quarter of Year" -msgstr "Kvartal i Ã¥r" - -#: src/metabase/api/table.clj -msgid "10 bins" -msgstr "10 samlinger" - -#: src/metabase/api/table.clj -msgid "50 bins" -msgstr "50 samlinger" - -#: src/metabase/api/table.clj -msgid "100 bins" -msgstr "100 samlinger" - -#: src/metabase/api/table.clj -msgid "Bin every 0.1 degrees" -msgstr "Samle hver 0,1 grader" - -#: src/metabase/api/table.clj -msgid "Bin every 1 degree" -msgstr "Samle hver grad" - -#: src/metabase/api/table.clj -msgid "Bin every 10 degrees" -msgstr "Samle hver 10ende grad" - -#: src/metabase/api/table.clj -msgid "Bin every 20 degrees" -msgstr "Samle hver 20ende grad" - -#. returns `true` if successful -- see JavaDoc -#: src/metabase/api/tiles.clj src/metabase/pulse/render/sparkline.clj -msgid "No appropriate image writer found!" -msgstr "Ingen passende bildeforfatter funnet!" - -#: src/metabase/api/user.clj -msgid "Email address already in use." -msgstr "E-postadresse allerede brukt." - -#: src/metabase/api/user.clj -msgid "Email address already associated to another user." -msgstr "E-postadresse allerede assosiert med annen bruker." - -#: src/metabase/api/user.clj -msgid "Not able to reactivate an active user" -msgstr "Kan ikke aktivere en aktiv bruker" - -#: src/metabase/api/user.clj -msgid "Invalid password" -msgstr "Ugyldig passord" - -#: src/metabase/automagic_dashboards/comparison.clj -msgid "All {0}" -msgstr "Alle {0}" - -#: src/metabase/automagic_dashboards/comparison.clj -msgid "{0}, all {1}" -msgstr "{0}, alle {1}" - -#: src/metabase/automagic_dashboards/comparison.clj -msgid "Comparison of {0} and {1}" -msgstr "Sammenligning av {0} og {1}" - -#: src/metabase/automagic_dashboards/comparison.clj -msgid "Automatically generated comparison dashboard comparing {0} and {1}" -msgstr "Automatisk generert sammenligningsinfotavle som sammenligner {0} og {1}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "sum" -msgstr "sum" - -#: src/metabase/automagic_dashboards/core.clj -msgid "average" -msgstr "gjennomsnitt" - -#: src/metabase/automagic_dashboards/core.clj -msgid "minumum" -msgstr "minimum" - -#: src/metabase/automagic_dashboards/core.clj -msgid "maximum" -msgstr "maksimum" - -#: src/metabase/automagic_dashboards/core.clj -#, fuzzy -msgid "distinct count" -msgstr "distinkt telling" - -#: src/metabase/automagic_dashboards/core.clj -msgid "standard deviation" -msgstr "standardavvik" - -#: src/metabase/automagic_dashboards/core.clj -msgid "cumulative count" -msgstr "kumulativt antall" - -#: src/metabase/automagic_dashboards/core.clj -msgid "cumulative sum" -msgstr "kumulativ sum" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} and {1}" -msgstr "{0} og {1}" - -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} of {1}" -msgstr "{0} av {1}" - -#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:39 -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} by {1}" -msgstr "{0} med {1}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} in the {1} segment" -msgstr "{0} i {1} segmentet" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} segment" -msgstr "{0} segment" - -#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:19 -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} metric" -msgid_plural "{0} metrics" -msgstr[0] "{0} indikator" -msgstr[1] "{0} indikatorer" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} field" -msgstr "{0} felt" - -#: src/metabase/automagic_dashboards/core.clj -msgid "\"{0}\" question" -msgstr "\"{0}\" spørsmÃ¥l" - -#: src/metabase/automagic_dashboards/comparison.clj -#: src/metabase/automagic_dashboards/core.clj -msgid "Compare with {0}" -msgstr "Sammenlign med {0}" - -#: src/metabase/automagic_dashboards/comparison.clj -#: src/metabase/automagic_dashboards/core.clj -msgid "Compare with entire dataset" -msgstr "Sammenlign med hele datasettet" - -#: src/metabase/automagic_dashboards/core.clj -msgid "Applying heuristic %s to %s." -msgstr "Bruk heuristikk %s til %s" - -#: src/metabase/automagic_dashboards/core.clj -msgid "Dimensions bindings:n%s" -msgstr "Dimensjoner bindinger:n%s" - -#: src/metabase/automagic_dashboards/core.clj -msgid "Using definitions:nMetrics:n%snFilters:n%s" -msgstr "Bruker definisjoner:nBeregninger:n%snFiltere:n%s" - -#: src/metabase/automagic_dashboards/core.clj -msgid "Can''t create dashboard for {0}" -msgstr "Kan ikke lage infotavle for {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0}st" -msgstr "{0}ste" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0}nd" -msgstr "{0}dre" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0}rd" -msgstr "{0}dje" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0}th" -msgstr "{0}de" - -#: src/metabase/automagic_dashboards/core.clj -msgid "at {0}" -msgstr "pÃ¥ {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "on {0}" -msgstr "pÃ¥ {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "in {0} week - {1}" -msgstr "om {0} uke - {1}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "in {0}" -msgstr "om {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "in Q{0} - {1}" -msgstr "i K{0} - {1}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "Q{0}" -msgstr "K{0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} is {1}" -msgstr "{0} er {1}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} is between {1} and {2}" -msgstr "{0} er mellom {1} og {2}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} is between {1} and {2}; and {3} is between {4} and {5}" -msgstr "{0} er mellom {1} og {2}, og {3} er mellom {4} og {5}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "where {0}" -msgstr "hvor {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "A closer look at {0}" -msgstr "En grundigere titt pÃ¥ {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "A closer look at the {0}" -msgstr "En grundigere titt pÃ¥ {0}" - -#: src/metabase/automagic_dashboards/populate.clj -msgid "Adding %s cards to dashboard %s:n%s" -msgstr "Legger til %s kort til infotavlen %s:n%s" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "0 <= score <= {0}" -msgstr "0 <= poengsum <= {0}" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "1 <= width <= {0}" -msgstr "1 <= bredde <= {0}" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid metrics references" -msgstr "Gyldige indikatorreferanser" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid filters references" -msgstr "Gyldig filter referanse" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid group references" -msgstr "Gyldig gruppe referanser" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid order_by references" -msgstr "Gyldig order_by referanser" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid dashboard filters references" -msgstr "Gyldige referanser for infotavlefilter" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid dimension references" -msgstr "Gyldig dimensjonelle referanser" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid card dimension references" -msgstr "Gyldig kort dimensjon referanser" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Error parsing %s:n%s" -msgstr "Feil under tolking av %s:n%s" - -#: src/metabase/cmd/reset_password.clj -msgid "No user found with email address ''{0}''. " -msgstr "Fant ingen bruker med epostadressen \"{0}\"" - -#: src/metabase/cmd/reset_password.clj -msgid "Please check the spelling and try again." -msgstr "Kontroller skrivemÃ¥ten og prøv igjen" - -#: src/metabase/cmd/reset_password.clj -msgid "Resetting password for {0}..." -msgstr "Tilbakestiller passord for {0}..." - -#: src/metabase/cmd/reset_password.clj -msgid "OK [[[{0}]]]" -msgstr "Ok [[[{0}]]]" - -#: src/metabase/cmd/reset_password.clj -msgid "FAIL [[[{0}]]]" -msgstr "FEIL [[[{0}]]]" - -#: src/metabase/core.clj -msgid "Please use the following URL to setup your Metabase installation:" -msgstr "Vennligst bruk følgende URL for Ã¥ sette opp Metabase-installasjonen din:" - -#: src/metabase/core.clj -msgid "Metabase Shutting Down ..." -msgstr "Metabase avslutter..." - -#: src/metabase/core.clj -msgid "Metabase Shutdown COMPLETE" -msgstr "Avslutning av Metabase FERDIG" - -#: src/metabase/core.clj -msgid "Starting Metabase version {0} ..." -msgstr "Starter Metabase versjon {0} ..." - -#: src/metabase/core.clj -msgid "System timezone is ''{0}'' ..." -msgstr "System tidssone er \"{0}\" ..." - -#. startup database. validates connection & runs any necessary migrations -#: src/metabase/core.clj -msgid "Setting up and migrating Metabase DB. Please sit tight, this may take a minute..." -msgstr "Setter opp og migrerer Metabase DB. Vennligst vent litt, dette kan ta noen øyeblikk..." - -#: src/metabase/core.clj -msgid "Looks like this is a new installation ... preparing setup wizard" -msgstr "Det ser ut som at dette er en ny installasjon ... forbereder installasjonsveilederen" - -#: src/metabase/core.clj -msgid "Metabase Initialization COMPLETE" -msgstr "Metabase oppstart ferdig" - -#: src/metabase/server.clj -msgid "Launching Embedded Jetty Webserver with config:" -msgstr "Starter Embedded Jetty Webserver med konfigurasjon:" - -#: src/metabase/server.clj -msgid "Shutting Down Embedded Jetty Webserver" -msgstr "Stopper Embedded Jetty Webserver" - -#: src/metabase/core.clj -msgid "Starting Metabase in STANDALONE mode" -msgstr "Starter Metabase i STANDALONE-modus" - -#: src/metabase/core.clj -msgid "Metabase Initialization FAILED" -msgstr "Metabase oppstart feilet" - -#: src/metabase/db.clj -msgid "Database has migration lock; cannot run migrations." -msgstr "Database har migreringer, kan ikke kjøre migreringer." - -#: src/metabase/db.clj -msgid "You can force-release these locks by running `java -jar metabase.jar migrate release-locks`." -msgstr "Du kan løse opp lÃ¥sningene ved Ã¥ kjøre `java -jar metabase.jar migrate release-locks`." - -#: src/metabase/db.clj -msgid "Checking if Database has unrun migrations..." -msgstr "Sjekker om databasen har ukjørte migreringer..." - -#: src/metabase/db.clj -msgid "Database has unrun migrations. Waiting for migration lock to be cleared..." -msgstr "Database her ukjørte migreringer. Vent mens migreringslÃ¥sen blir løst..." - -#: src/metabase/db.clj -msgid "Migration lock is cleared. Running migrations..." -msgstr "MigreringslÃ¥s er løst. Kjører migreringer..." - -#: src/metabase/db.clj -msgid "Migration lock cleared, but nothing to do here! Migrations were finished by another instance." -msgstr "MigreringslÃ¥s er løst, men ingenting Ã¥ gjøre her! Migreringer ble ferdige i en annen instanse." - -#. Set up liquibase and let it do its thing -#: src/metabase/db.clj -msgid "Setting up Liquibase..." -msgstr "Setter opp Liquibase..." - -#: src/metabase/db.clj -msgid "Liquibase is ready." -msgstr "Liquibase er ferdig." - -#: src/metabase/db.clj -msgid "Verifying {0} Database Connection ..." -msgstr "Verifiserer {0} sin database tilkobling..." - -#: src/metabase/db.clj -msgid "Verify Database Connection ... " -msgstr "Verifiserer database tilkobling... " - -#: src/metabase/db.clj -msgid "Running Database Migrations..." -msgstr "Kjører Database migreringer..." - -#: src/metabase/db.clj -msgid "Database Migrations Current ... " -msgstr "Database nÃ¥værende migrering... " - -#: src/metabase/driver/common.clj -msgid "Hmm, we couldn''t connect to the database." -msgstr "Hmm, vi klarte ikke koble til databasen." - -#: src/metabase/driver/common.clj -msgid "Make sure your host and port settings are correct" -msgstr "Sjekk at vert og port innstillingene er riktige" - -#: src/metabase/driver/common.clj -msgid "We couldn''t connect to the ssh tunnel host." -msgstr "Vi klarte ikke koble til SSH tunnelverten." - -#: src/metabase/driver/common.clj -msgid "Check the username, password." -msgstr "Sjekk brukernavn og passord." - -#: src/metabase/driver/common.clj -msgid "Check the hostname and port." -msgstr "Sjekk vertsnavn og port." - -#: src/metabase/driver/common.clj -msgid "Looks like the database name is incorrect." -msgstr "Ser ut som databasenavnet er feil." - -#: src/metabase/driver/common.clj -msgid "It looks like your host is invalid." -msgstr "Det ser ut som vertsnavnet er feil." - -#: src/metabase/driver/common.clj -msgid "Please double-check it and try again." -msgstr "Vennligst dobbeltsjekk og prøv igjen." - -#: src/metabase/driver/common.clj -msgid "Looks like your password is incorrect." -msgstr "Ser ut som passordet er feil." - -#: src/metabase/driver/common.clj -msgid "Looks like you forgot to enter your password." -msgstr "Ser ut som du har glemt Ã¥ legge inn passordet ditt." - -#: src/metabase/driver/common.clj -msgid "Looks like your username is incorrect." -msgstr "Ser ut som brukernavn er feil." - -#: src/metabase/driver/common.clj -msgid "Looks like the username or password is incorrect." -msgstr "Ser ut som brukernavn eller passord er feil." - -#. ## CONFIG -#: src/metabase/driver.clj -msgid "Connection timezone to use when executing queries. Defaults to system timezone." -msgstr "Tilkoblingstidssone som skal brukes ved kjøring av spørringer. Standard er systemets tidssone" - -#: src/metabase/driver.clj -msgid "Registered driver {0} {1}" -msgstr "Registrert driver {0} {1}" - -#: src/metabase/driver.clj -msgid "No -init-driver function found for ''{0}''" -msgstr "Ingen -init-driver funksjon funnet for \"{0}\"" - -#: src/metabase/driver/common.clj -msgid "Unable to parse date string ''{0}'' for database engine ''{1}''" -msgstr "Klarer ikke Ã¥ tolke dato-teksten \"{0}\" for databasemotoren \"{1}\"" - -#. all-NULL columns in DBs like Mongo w/o explicit types -#: src/metabase/driver/common.clj -msgid "Don''t know how to map class ''{0}'' to a Field base_type, falling back to :type/*." -msgstr "Vet ikke hvordan klassen \"{0}\" skal tilordnes en Field base_type, faller tilbake pÃ¥ :type/*." - -#: src/metabase/driver/util.clj -msgid "Failed to connect to database: {0}" -msgstr "Feilet ved tilkobling til database: {0}" - -#: src/metabase/driver/bigquery.clj -msgid "Invalid BigQuery identifier: ''{0}''" -msgstr "Ugyldig BigQuery-identifikator: \"{0}\"" - -#: src/metabase/driver/bigquery.clj -msgid "BigQuery statements can't be parameterized!" -msgstr "BigQuery-uttrykk kan ikke parametriseres!" - -#: src/metabase/driver/sql_jdbc/execute.clj -msgid "Failed to set timezone:" -msgstr "Feilet ved oppsett av tidssone:" - -#: src/metabase/driver/googleanalytics.clj -msgid "You must enable the Google Analytics API. Use this link to go to the Google Developers Console: {0}" -msgstr "Du mÃ¥ aktivere Google Analytics APIet. Bruk denne lenken for Ã¥ gÃ¥ til Google Developers Console: {0}" - -#: src/metabase/driver/h2.clj -msgid "Running SQL queries against H2 databases using the default (admin) database user is forbidden." -msgstr "Ã… kjøre SQL-spørringer mot H2-databaser med standard (admin) database-bruker er forbudt." - -#: src/metabase/driver/sparksql.clj -msgid "Error: metabase.driver.FixedHiveDriver is registered, but JDBC does not seem to be using it." -msgstr "Feil: metabase.driver.FixedHiveDriver er registrert, men JDBC ser ikke ut til Ã¥ bruke den." - -#: src/metabase/driver/sparksql.clj -msgid "Found metabase.driver.FixedHiveDriver." -msgstr "Fant metabase.driver.FixedHiveDriver." - -#: src/metabase/driver/sparksql.clj -msgid "Successfully registered metabase.driver.FixedHiveDriver with JDBC." -msgstr "Registrering av metabase.driver.FixedHiveDriver til JDBC vellykket." - -#. CONFIG -#. TODO - smtp-port should be switched to type :integer -#: src/metabase/email.clj -msgid "Email address you want to use as the sender of Metabase." -msgstr "E-postadresse du vil skal være av sender fra Metabase." - -#: src/metabase/email.clj -msgid "The address of the SMTP server that handles your emails." -msgstr "E-postadresse for SMTP-tjeneren som hÃ¥ndterer dine e-poster." - -#: src/metabase/email.clj -msgid "SMTP username." -msgstr "SMTP brukernavn:" - -#: src/metabase/email.clj -msgid "SMTP password." -msgstr "SMTP passord." - -#: src/metabase/email.clj -msgid "The port your SMTP server uses for outgoing emails." -msgstr "Porten SMTP-tjeneren bruker for utgÃ¥ende e-poster." - -#: src/metabase/email.clj -msgid "SMTP secure connection protocol. (tls, ssl, starttls, or none)" -msgstr "SMTP sikker koblingsprotokoll. (TLS, SSL, STARTTLS eller ingen)" - -#: src/metabase/email.clj -msgid "none" -msgstr "ingen" - -#: src/metabase/email.clj -msgid "SMTP host is not set." -msgstr "SMTP vert er ikke satt." - -#: src/metabase/email.clj -msgid "Failed to send email" -msgstr "Feilet ved sending av e-post." - -#: src/metabase/email.clj -msgid "Error testing SMTP connection" -msgstr "Feil ved testing av SMTP kobling" - -#: src/metabase/integrations/ldap.clj -msgid "Enable LDAP authentication." -msgstr "Aktiver LDAP autorisering." - -#: src/metabase/integrations/ldap.clj -msgid "Server hostname." -msgstr "Vertsnavn til tjener." - -#: src/metabase/integrations/ldap.clj -msgid "Server port, usually 389 or 636 if SSL is used." -msgstr "Port til tjener, vanligvis 389 eller 636 hvis SSL er i bruk." - -#: src/metabase/integrations/ldap.clj -msgid "Use SSL, TLS or plain text." -msgstr "Bruk SSL, TLS eller ren tekst." - -#: src/metabase/integrations/ldap.clj -msgid "The Distinguished Name to bind as (if any), this user will be used to lookup information about other users." -msgstr "Det Fremtredende Navnet Ã¥ binde som (om noe), denne brukeren vil bli brukt til Ã¥ hente informasjon om andre brukere." - -#: src/metabase/integrations/ldap.clj -msgid "The password to bind with for the lookup user." -msgstr "Passordet til Ã¥ binde med for Ã¥ søke etter bruker." - -#: src/metabase/integrations/ldap.clj -msgid "Search base for users. (Will be searched recursively)" -msgstr "Søk base for brukere. (Vil gjøre gjentagende søk)" - -#: src/metabase/integrations/ldap.clj -msgid "User lookup filter, the placeholder '{login}' will be replaced by the user supplied login." -msgstr "Oppslagsfilter for bruker, plassholderteksten '{login}' vil bli erstattet med den brukerdefinerte innloggingen." - -#: src/metabase/integrations/ldap.clj -msgid "Attribute to use for the user's email. (usually ''mail'', ''email'' or ''userPrincipalName'')" -msgstr "Attributt som brukes for brukerens e-post. (vanligvis \"mail\", \"email\", eller \"userPrincipalName\")" - -#: src/metabase/integrations/ldap.clj -msgid "Attribute to use for the user''s first name. (usually ''givenName'')" -msgstr "Attributt Ã¥ bruke for brukerens fornavn (vanligvis \"givenName\")" - -#: src/metabase/integrations/ldap.clj -msgid "Attribute to use for the user''s last name. (usually ''sn'')" -msgstr "Attributt Ã¥ bruke for brukerens etternavn (vanligvis \"sn\")" - -#: src/metabase/integrations/ldap.clj -msgid "Enable group membership synchronization with LDAP." -msgstr "Aktiver synkronisering av gruppemedlemsskap med LDAP." - -#: src/metabase/integrations/ldap.clj -msgid "Search base for groups, not required if your LDAP directory provides a ''memberOf'' overlay. (Will be searched recursively)" -msgstr "Base for søk i grupper, ikke pÃ¥krevd hvis din LDAP-katalog tilbyr et \"memberOf\" overlegg. (Vil bli søkt rekursivt)" - -#. Should be in the form: {"cn=Some Group,dc=...": [1, 2, 3]} where keys are LDAP groups and values are lists of MB groups IDs -#: src/metabase/integrations/ldap.clj -msgid "JSON containing LDAP to Metabase group mappings." -msgstr "JSON som knytter sammen LDAP- og Metabase-grupper." - -#. Define a setting which captures our Slack api token -#: src/metabase/integrations/slack.clj -msgid "Slack API bearer token obtained from https://api.slack.com/web#authentication" -msgstr "Slack API bearer token som fÃ¥es fra https://api.slack.com/web#authentication" - -#: src/metabase/metabot.clj -msgid "Enable MetaBot, which lets you search for and view your saved questions directly via Slack." -msgstr "Aktiver MetaBot, som lar deg søke etter og vise spørsmÃ¥lene dine direkte via Slack." - -#: src/metabase/metabot/instance.clj -msgid "Last MetaBot checkin was {0} ago." -msgstr "Sist MetaBot sjekket inn var {0} siden." - -#: src/metabase/metabot/instance.clj -msgid "This instance will now handle MetaBot duties." -msgstr "Denne instansen vil nÃ¥ ta hÃ¥nd om MetaBase forespørsler." - -#: src/metabase/metabot.clj -msgid "Here''s what I can {0}:" -msgstr "Her er hva jeg kan {0}:" - -#: src/metabase/metabot.clj -msgid "I don''t know how to {0} `{1}`.n{2}" -msgstr "Jeg vet ikke hvordan man {0} `{1}`.n{2}" - -#: src/metabase/metabot/slack.clj -msgid "Uh oh! :cry:n> {0}" -msgstr "Oi sann! :cry:n> {0}" - -#: src/metabase/metabot/command.clj -msgid "Here''s your {0} most recent cards:n{1}" -msgstr "Her er dine {0} siste kort:n{1}" - -#: src/metabase/metabot/command.clj -msgid "Could you be a little more specific? I found these cards with names that matched:n{0}" -msgstr "Kan du være litt mer spesifikk? Jeg fant disse kortene med navn som stemmer overens:n{0}" - -#: src/metabase/metabot/command.clj -msgid "I don''t know what Card `{0}` is. Give me a Card ID or name." -msgstr "Jeg vet ikke hvilket kort `{0}` er. Gi meg et kort-ID eller navn." - -#: src/metabase/metabot/command.clj -msgid "Show which card? Give me a part of a card name or its ID and I can show it to you. If you don''t know which card you want, try `metabot list`." -msgstr "Vise hvilket kort? Gi meg en del av navnet pÃ¥ kortet eller dets ID sÃ¥ kan jeg vise deg det. Hvis du ikke vet hvilket kort du vil ha, prøv `metabot list`." - -#: src/metabase/metabot/command.clj -msgid "Ok, just a second..." -msgstr "Ok, vent ett lite sekund..." - -#: src/metabase/metabot/command.clj -msgid "Not Found" -msgstr "Ikke funnet" - -#: src/metabase/metabot/command.clj -msgid "Loading Kanye quotes..." -msgstr "Laster Kanye sitater..." - -#: src/metabase/metabot/events.clj -msgid "Evaluating Metabot command:" -msgstr "Evaluerer MetaBot kommando:" - -#: src/metabase/metabot.clj -msgid "Go home websocket, you're drunk." -msgstr "GÃ¥ hjem nettplugg, du er full." - -#: src/metabase/metabot/websocket.clj -msgid "Error launching metabot:" -msgstr "Feil innlasting av MetaBot:" - -#: src/metabase/metabot/websocket.clj -msgid "MetaBot WebSocket is closed. Reconnecting now." -msgstr "MetaBot WebSocket er lukket. Kobler opp pÃ¥ nytt nÃ¥." - -#: src/metabase/metabot/websocket.clj -msgid "Error connecting websocket:" -msgstr "Feil ved kobling til websocket:" - -#: src/metabase/metabot/instance.clj -msgid "This instance is performing MetaBot duties." -msgstr "Denne instansen utfører MetaBot-plikter." - -#: src/metabase/metabot/instance.clj -msgid "Another instance is already handling MetaBot duties." -msgstr "En annen instans utfører allerede MetaBot-plikter." - -#: src/metabase/metabot.clj -msgid "Starting MetaBot threads..." -msgstr "Starter MetaBase trÃ¥der..." - -#: src/metabase/metabot.clj -msgid "Stopping MetaBot... 🤖" -msgstr "Stopper MetaBot... 🤖" - -#: src/metabase/metabot.clj -msgid "MetaBot already running. Killing the previous WebSocket listener first." -msgstr "MetaBot kjører allerede. Avslutter den forrige websocket kjøringen først." - -#: src/metabase/middleware/security.clj -msgid "Base-64 encoded public key for this site's SSL certificate." -msgstr "Base-64 kodet offentlig nøkkel for denne siden sin SSL sertifikat." - -#: src/metabase/middleware/security.clj -msgid "Specify this to enable HTTP Public Key Pinning." -msgstr "Spesifiser dette for Ã¥ aktivere HTTP Public Key Pinning." - -#: src/metabase/middleware/security.clj -msgid "See {0} for more information." -msgstr "Se {0} for mer informasjon." - -#: src/metabase/models/card.clj -msgid "Cannot save Question: source query has circular references." -msgstr "Kan ikke lagre spørsmÃ¥l: hovedspørring har sirkulære referanser." - -#: src/metabase/models/card.clj src/metabase/models/query/permissions.clj -#: src/metabase/query_processor/middleware/fetch_source_query.clj -#: src/metabase/query_processor/middleware/permissions.clj -msgid "Card {0} does not exist." -msgstr "Kort {0} fins ikke." - -#: src/metabase/models/card.clj -msgid "You do not have permissions to run ad-hoc native queries against Database {0}." -msgstr "Du har ikke tilganger til Ã¥ kjøre lokal spørring i nÃ¥tid mot database {0}." - -#: src/metabase/models/collection.clj -msgid "Invalid color" -msgstr "Ugyldig farge" - -#: src/metabase/models/collection.clj -msgid "must be a valid 6-character hex color code" -msgstr "mÃ¥ være en gyldig 6-tegn hex fargekode" - -#: src/metabase/models/collection.clj -msgid "Collection name cannot be blank!" -msgstr "Navn pÃ¥ samling kan ikke være tomt!" - -#: src/metabase/models/collection.clj -msgid "cannot be blank" -msgstr "kan ikke være blank" - -#: src/metabase/models/collection.clj -msgid "Invalid Collection location: path is invalid." -msgstr "Ugyldig samlingsplassering: sti er ugyldig." - -#: src/metabase/models/collection.clj -msgid "You cannot move a Personal Collection." -msgstr "Du kan ikke flytte en personlig samling." - -#: src/metabase/models/collection.clj -msgid "Invalid Collection location: some or all ancestors do not exist." -msgstr "Ugyldig plassering av samling: noen eller alle toppsamlinger finnes ikke." - -#: src/metabase/models/collection.clj -msgid "You cannot archive the Root Collection." -msgstr "Du kan ikke arkivere hovedsamlingen." - -#: src/metabase/models/collection.clj -msgid "You cannot archive a Personal Collection." -msgstr "Du kan ikke arkivere en personlig samling." - -#: src/metabase/models/collection.clj -msgid "You cannot move the Root Collection." -msgstr "Du kan ikke flytte hovedsamlingen." - -#: src/metabase/models/collection.clj -msgid "You cannot move a Collection into itself or into one of its descendants." -msgstr "Du kan ikke flytte en samling til seg selv eller til en av undersamlingene." - -#. first move this Collection -#: src/metabase/models/collection.clj -msgid "Moving Collection {0} and its descendants from {1} to {2}" -msgstr "Flytter samlingen {0} og dens etterkommere fra {1} til {2}" - -#: src/metabase/models/collection.clj -msgid "You're not allowed to change the owner of a Personal Collection." -msgstr "Du har ikke lov til Ã¥ endre eieren av en personlig samling." - -#: src/metabase/models/collection.clj -msgid "You're not allowed to move a Personal Collection." -msgstr "Du har ikke lov til Ã¥ flytte en personlig samling." - -#: src/metabase/models/collection.clj -msgid "You cannot move a Collection and archive it at the same time." -msgstr "Du kan ikke flytte en samling og arkivere den samtidig." - -#: src/metabase/models/collection.clj -msgid "You cannot delete a Personal Collection!" -msgstr "Du kan ikke slette en Personling samling" - -#: src/metabase/models/collection.clj -msgid "{0} {1}''s Personal Collection" -msgstr "{0} {1}s personlige samling" - -#: src/metabase/models/collection_revision.clj -msgid "You cannot update a CollectionRevision!" -msgstr "Du kan ikke oppdatere en CollectionRevision!" - -#: src/metabase/models/field_values.clj -msgid "Field {0} was previously automatically set to show a list widget, but now has {1} values." -msgstr "Feltet {0} var tidligere automatisk satt til Ã¥ vise en liste-widget, men har nÃ¥ {1} verdier." - -#: src/metabase/models/field_values.clj -msgid "Switching Field to use a search widget instead." -msgstr "Endrer feltet til Ã¥ vise en søke-widget istedenfor." - -#: src/metabase/models/field_values.clj -msgid "Storing updated FieldValues for Field {0}..." -msgstr "Lagrer oppdaterte feltverdier for feltet {0}..." - -#: src/metabase/models/field_values.clj -msgid "Storing FieldValues for Field {0}..." -msgstr "Lagrer feltverdier for feltet {0}..." - -#: src/metabase/models/humanization.clj -msgid "Metabase can attempt to transform your table and field names into more sensible, human-readable versions, e.g. \"somehorriblename\" becomes \"Some Horrible Name\"." -msgstr "Metabase kan forsøke Ã¥ transformere tabellen og feltnavnene til mer fornuftige, menneske-lesbare versjoner, f.eks. \"somehorriblename\" blir til \"Some Horrible Name\"." - -#: src/metabase/models/humanization.clj -msgid "This doesn’t work all that well if the names are in a language other than English, however." -msgstr "Men, dette virker ikke sÃ¥ bra for feltnavn som ikke er pÃ¥ engelsk." - -#: src/metabase/models/humanization.clj -msgid "Do you want us to take a guess?" -msgstr "Vil du at vi skal gjette?" - -#: src/metabase/models/permissions.clj -msgid "You cannot create or revoke permissions for the 'Admin' group." -msgstr "Du kan ikke gi eller frata rettigheter for 'Admin'-gruppen." - -#: src/metabase/models/permissions.clj -msgid "Invalid permissions object path: ''{0}''." -msgstr "Ugyldig sti for rettighetsobjekt: \"{0}\"." - -#: src/metabase/models/permissions.clj -msgid "You cannot update a permissions entry!" -msgstr "Du kan ikke oppdatere en tilgangsoppføring!" - -#: src/metabase/models/permissions.clj -msgid "Delete it and create a new one." -msgstr "Slett den og lag en ny en." - -#: src/metabase/models/permissions.clj -msgid "You cannot edit permissions for a Personal Collection or its descendants." -msgstr "Du kan ikke redigere tilganger for en personlig samling eller dens undersamlinger." - -#: src/metabase/models/permissions.clj -msgid "Looks like someone else edited the permissions and your data is out of date." -msgstr "Det ser ut som om noen andre endret rettighetene og dine data er utdatert." - -#: src/metabase/models/permissions.clj -msgid "Please fetch new data and try again." -msgstr "Vennligst last inn ny data og prøv igjen." - -#: src/metabase/models/permissions_group.clj -msgid "Created magic permissions group ''{0}'' (ID = {1})" -msgstr "Opprettet magisk tilgangsgruppe \"{0}\" (ID = {1})" - -#: src/metabase/models/permissions_group.clj -msgid "A group with that name already exists." -msgstr "En gruppe med det navnet eksisterer allerede." - -#: src/metabase/models/permissions_group.clj -msgid "You cannot edit or delete the ''{0}'' permissions group!" -msgstr "Du kan ikke redigere eller slette \"{0}\" tilgangsgruppen!" - -#: src/metabase/models/permissions_group_membership.clj -msgid "You cannot add or remove users to/from the 'MetaBot' group." -msgstr "Du kan ikke legge til eller slette brukere til/fra 'MetaBot' gruppen." - -#: src/metabase/models/permissions_group_membership.clj -msgid "You cannot add or remove users to/from the 'All Users' group." -msgstr "Du kan ikke legge til eller slette brukere til/fra 'alle brukere' gruppen." - -#: src/metabase/models/permissions_group_membership.clj -msgid "You cannot remove the last member of the 'Admin' group!" -msgstr "Du kan ikke slette siste medlem av 'Administrator' gruppen!" - -#: src/metabase/models/permissions_revision.clj -msgid "You cannot update a PermissionsRevision!" -msgstr "Du kan ikke oppdatere en tilgangsrevisjon!" - -#. if there's still not a Card, throw an Exception! -#: src/metabase/models/pulse.clj -msgid "Invalid Alert: Alert does not have a Card assoicated with it" -msgstr "Ugyldig varsel: Varselet er ikke tilknyttet et kort" - -#: src/metabase/models/pulse.clj -msgid "value must be a map with the keys `{0}`, `{1}`, and `{2}`." -msgstr "verdien mÃ¥ være et oppslagsverk med nøklene `{0}`, `{1}` og `{2}`." - -#: src/metabase/models/pulse.clj -msgid "value must be a map with the following keys `({0})`" -msgstr "verdien mÃ¥ være et oppslagsverk med disse nøklene `({0})`" - -#: src/metabase/models/query/permissions.clj -msgid "Error calculating permissions for query: {0}" -msgstr "En feil oppstod ved utregning av tillatelser for spørringen: {0}" - -#: src/metabase/models/query/permissions.clj -msgid "Invalid query type: {0}" -msgstr "Ugyldig spørringstype: {0}" - -#: src/metabase/models/query_execution.clj -msgid "You cannot update a QueryExecution!" -msgstr "Du kan ikke oppdatere en QueryExecution!" - -#: src/metabase/models/revision.clj -msgid "You cannot update a Revision!" -msgstr "Du kan ikke oppdatere en Revision!" - -#: src/metabase/models/setting.clj -msgid "Setting {0} does not exist.nFound: {1}" -msgstr "Innstillingen {0} finnes ikke.nFant: {1}" - -#: src/metabase/models/setting/cache.clj -msgid "Updating value of settings-last-updated in DB..." -msgstr "Oppdaterer verdien for settings-last-updated i DB..." - -#: src/metabase/models/setting/cache.clj -msgid "Checking whether settings cache is out of date (requires DB call)..." -msgstr "Sjekker om mellomlageret for innstillinger er utdatert (krever kall til DB)..." - -#: src/metabase/models/setting/cache.clj -msgid "Settings have been changed on another instance, and will be reloaded here." -msgstr "Innstillingene har endret seg pÃ¥ en annen instans, og vil bli lastet inn pÃ¥ nytt her." - -#: src/metabase/models/setting/cache.clj -msgid "Refreshing Settings cache..." -msgstr "Oppdaterer mellomlageret for innstillinger..." - -#: src/metabase/models/setting.clj -msgid "Invalid value for string: must be either \"true\" or \"false\" (case-insensitive)." -msgstr "Ugyldig verdi for tekststreng: mÃ¥ være enten \"true\" eller \"false\" (store/smÃ¥ bokstaver har ingen betydning)." - -#: src/metabase/models/setting.clj -msgid "You cannot update `settings-last-updated` yourself! This is done automatically." -msgstr "Du kan ikke oppdatere `settings-last-updated` selv! Dette gjøres automatisk." - -#. go ahead and log the Exception anyway on the off chance that it *wasn't* just a race condition issue -#: src/metabase/models/setting.clj -msgid "Error inserting a new Setting:" -msgstr "En feil oppstod ved innsetting av en ny innstilling:" - -#: src/metabase/models/setting.clj -msgid "Assuming Setting already exists in DB and updating existing value." -msgstr "Antar at innstillingen allerede finnes i DB og oppdaterer eksisterende verdi." - -#: src/metabase/models/user.clj -msgid "value must be a map with each value either a string or number." -msgstr "verdi mÃ¥ være et oppslagsverk hvor hver verdi er enten en tekststreng eller et tall." - -#: src/metabase/plugins.clj -msgid "Loading plugins in directory {0}..." -msgstr "Laster programtillegget fra mappen {0}..." - -#: src/metabase/plugins.clj -msgid "Loading plugin {0}... " -msgstr "Laster inn plugin {0}... " - -#: src/metabase/plugins.clj -#, fuzzy -msgid "It looks like you have some external dependencies in your Metabase plugins directory." -msgstr "Det ser ut som du har eksterne avhengigheter i din Metabase plugins-mappe." - -#: src/metabase/plugins.clj -msgid "With Java 9 or higher, Metabase cannot automatically add them to your classpath." -msgstr "Med Java 9 eller høyere, Metabase kan ikke automatisk legge de til i klassemappen" - -#: src/metabase/plugins.clj -msgid "Instead, you should include them at launch with the -cp option. For example:" -msgstr "Dermed mÃ¥ du inkludere disse ved oppstart med -cp konfigureringen. For eksempel:" - -#: src/metabase/plugins.clj -msgid "See https://metabase.com/docs/latest/operations-guide/start.html#java-versions for more details." -msgstr "Se https://metabase.com/docs/latest/operations-guide/start.html#java-versions for mer deltaljer." - -#: src/metabase/plugins.clj -msgid "(If you're already running Metabase this way, you can ignore this message.)" -msgstr "(Hvis du allerede kjører Metabase med denne mÃ¥ten, kan du ignorere denne meldingen)" - -#: src/metabase/public_settings.clj -msgid "Identify when new versions of Metabase are available." -msgstr "Identifiser nÃ¥r det kommer nye Metabase versjoner." - -#: src/metabase/public_settings.clj -msgid "Information about available versions of Metabase." -msgstr "Informasjon om tilgjengelige versjoner av Metabase." - -#: src/metabase/public_settings.clj -msgid "The name used for this instance of Metabase." -msgstr "Navnet brukt for instansen av Metabase." - -#: src/metabase/public_settings.clj -msgid "The base URL of this Metabase instance, e.g. \"http://metabase.my-company.com\"." -msgstr "Base nettadresse for Metabase instansen, f.eks \"http://metabase.my-company.com\"." - -#: src/metabase/public_settings.clj -msgid "The default language for this Metabase instance." -msgstr "Standard sprÃ¥k for denne Metabase instansen." - -#: src/metabase/public_settings.clj -msgid "This only applies to emails, Pulses, etc. Users'' browsers will specify the language used in the user interface." -msgstr "Dette gjelder kun for e-poster, pulser, osv. Brukeres nettlesere def" - -#: src/metabase/public_settings.clj -msgid "The email address users should be referred to if they encounter a problem." -msgstr "E-postadressen brukere skal referere til hvis det oppstÃ¥r ett problem." - -#: src/metabase/public_settings.clj -msgid "Enable the collection of anonymous usage data in order to help Metabase improve." -msgstr "Aktiver logging av anonym brukerdata for Ã¥ hjelpe Metabase med Ã¥ bli bedre." - -#: src/metabase/public_settings.clj -msgid "The map tile server URL template used in map visualizations, for example from OpenStreetMaps or MapBox." -msgstr "URL-malen for kartflis-tjeneren som brukes i kart-visualiseringer, for eksempel fra OpenStreetMaps eller MapBox." - -#: src/metabase/public_settings.clj -msgid "Enable admins to create publicly viewable links (and embeddable iframes) for Questions and Dashboards?" -msgstr "Gjør det mulig for administratorer Ã¥ lage offentlig tilgjengelige lenker (og innbyggbare iframes) for spørsmÃ¥l og infotavler?" - -#: src/metabase/public_settings.clj -msgid "Allow admins to securely embed questions and dashboards within other applications?" -msgstr "Gjør det mulig for administratorer Ã¥ bygge inn spørsmÃ¥l og infotavler pÃ¥ en sikker mÃ¥te inni andre applikasjoner?" - -#: src/metabase/public_settings.clj -msgid "Allow using a saved question as the source for other queries?" -msgstr "Godkjenn bruk av lagrede spørsmÃ¥l som grunnen til andre spørringer." - -#: src/metabase/public_settings.clj -msgid "Enabling caching will save the results of queries that take a long time to run." -msgstr "Aktivering av mellomlagring vil lagre resultater av spørringer som tar lang til Ã¥ kjøre." - -#: src/metabase/public_settings.clj -msgid "The maximum size of the cache, per saved question, in kilobytes:" -msgstr "Maks-størrelsen til mellomlageret, per lagrede spørsmÃ¥l, i kilobytes:" - -#: src/metabase/public_settings.clj -msgid "The absolute maximum time to keep any cached query results, in seconds." -msgstr "Den absolutt lengste tiden som mellomlagrede spørringsresultater skal beholdes, i sekunder." - -#: src/metabase/public_settings.clj -msgid "Metabase will cache all saved questions with an average query execution time longer than this many seconds:" -msgstr "Metabase vil mellomlagre alle lagrede spørsmÃ¥l med en gjennomsnittlig utførelse tid som er lenger enn dette i sekunder:" - -#: src/metabase/public_settings.clj -msgid "To determine how long each saved question''s cached result should stick around, we take the query''s average execution time and multiply that by whatever you input here." -msgstr "For Ã¥ avgjøre hvor lenge hvert lagrede spørsmÃ¥ls mellomlagrede resultat skal bli værende, sÃ¥ tar vi spørringens gjennomsnittlige kjøretid og ganger det med hva enn du skriver inn her." - -#: src/metabase/public_settings.clj -msgid "So if a query takes on average 2 minutes to run, and you input 10 for your multiplier, its cache entry will persist for 20 minutes." -msgstr "SÃ¥ hvis en spørring tar gjennomsnittlig 2 minutter Ã¥ kjøre, og du skriver inn 10 for din multipliserer, sÃ¥ vil mellomlagringen være tilgjengelig i 20 minutter." - -#: src/metabase/public_settings.clj -msgid "When using the default binning strategy and a number of bins is not provided, this number will be used as the default." -msgstr "NÃ¥r den vanlige inndelings-strategien brukes og et antall inndelinger ikke er gitt, vil dette antallet bli brukt som standard." - -#: src/metabase/public_settings.clj -msgid "When using the default binning strategy for a field of type Coordinate (such as Latitude and Longitude), this number will be used as the default bin width (in degrees)." -msgstr "NÃ¥r den vanlige inndelings-strategien brukes for et koordinat-felt (sÃ¥nn som lengdegrad og breddegrad), sÃ¥ vil dette tallet bli brukt som standardstørrelse pÃ¥ inndelingen (i grader)." - -#: src/metabase/public_settings/metastore.clj -msgid "Unable to validate token." -msgstr "Klarte ikke Ã¥ validere token." - -#: src/metabase/public_settings/metastore.clj -msgid "Error fetching token status:" -msgstr "En feil oppstod ved henting av status for token:" - -#: src/metabase/public_settings/metastore.clj -msgid "There was an error checking whether this token was valid." -msgstr "Det oppstod en feil ved validering av tokenen." - -#: src/metabase/public_settings/metastore.clj -msgid "Token validation timed out." -msgstr "Tidsavbrudd for token-validering." - -#: src/metabase/public_settings/metastore.clj -msgid "Invalid token: token isn't in the right format." -msgstr "Invalid token: token er ikke pÃ¥ riktig format." - -#. attempt to query the metastore API about the status of this token. If the request doesn't complete in a -#. reasonable amount of time throw a timeout exception -#: src/metabase/public_settings/metastore.clj -msgid "Checking with the MetaStore to see whether {0} is valid..." -msgstr "Sjekker med MetaStore for Ã¥ se om {0} er valid..." - -#: src/metabase/public_settings/metastore.clj -msgid "Token for premium embedding. Go to the MetaStore to get yours!" -msgstr "Token for premium-innebygging. GÃ¥ til MetaStore for Ã¥ fÃ¥ din egen!" - -#: src/metabase/public_settings/metastore.clj -msgid "Token is valid." -msgstr "Nøkkel er gyldig." - -#: src/metabase/public_settings/metastore.clj -msgid "Error setting premium embedding token" -msgstr "En feil oppstod ved setting av premium innebyggingstoken." - -#: src/metabase/pulse.clj -msgid "Unable to compare results to goal for alert." -msgstr "Klarte ikke Ã¥ sammenligne resultatene med mÃ¥let for varselet." - -#: src/metabase/pulse.clj -msgid "Question ID is ''{0}'' with visualization settings ''{1}''" -msgstr "SpørsmÃ¥l-ID er \"{0}\" med visualiseringsinnstilingene \"{1}\"" - -#: src/metabase/pulse.clj -msgid "Unrecognized alert with condition ''{0}''" -msgstr "Ikke gjenkjent varsel med betingelsen \"{0}\"" - -#: src/metabase/pulse.clj -msgid "Unrecognized channel type {0}" -msgstr "Ikke gjenkjent kanal-type {0}" - -#: src/metabase/pulse.clj -msgid "Error sending notification!" -msgstr "Feil ved sending av varsel!" - -#: src/metabase/pulse/render/color.clj -msgid "Can't find JS color selector at ''{0}''" -msgstr "Kan ikke finne JS farge velger her \"{0}\"" - -#: src/metabase/pulse/render.clj -msgid "Card has errors: {0}" -msgstr "Kort har feil: {0}" - -#: src/metabase/pulse/render.clj -msgid "Pulse card render error" -msgstr "Feil ved visning av pulskort" - -#: src/metabase/query_processor/middleware/fetch_source_query.clj -msgid "Trimming trailing comment from card with id {0}" -msgstr "Beskjærer etterfølgende kommentar fra kortet med id {0}" - -#: src/metabase/query_processor/middleware/parameters/sql.clj -msgid "Can't find field with ID: {0}" -msgstr "Kan ikke finne felt med ID: {0}" - -#: src/metabase/query_processor/middleware/parameters/sql.clj -msgid "''{0}'' is a required param." -msgstr "\"{0}\" er ett pÃ¥krevd parameter." - -#: src/metabase/query_processor/middleware/parameters/sql.clj -msgid "Found ''{0}'' with no terminating ''{1}'' in query ''{2}''" -msgstr "Fant \"{0}\" uten avsluttende \"{1}\" i spørringen \"{2}\"" - -#: src/metabase/query_processor/middleware/parameters/sql.clj -msgid "Unable to substitute ''{0}'': param not specified.nFound: {1}" -msgstr "Klarte ikke Ã¥ erstatte \"{0}\": param ikke spesifisert.nFant: {1}" - -#: src/metabase/query_processor/middleware/permissions.clj -msgid "You do not have permissions to view Card {0}." -msgstr "Du har ikke tilgang til Ã¥ vise kort {0}." - -#: src/metabase/query_processor/middleware/permissions.clj -msgid "You do not have permissions to run this query." -msgstr "Du har ikke tilgang til Ã¥ kjøre denne spørringen." - -#: src/metabase/sync/analyze.clj -msgid "Fingerprint updates attempted {0}, updated {1}, no data found {2}, failed {3}" -msgstr "Fingeravtrykk-oppdateringer prøvde {0}, oppdaterte {1}, ingen data funnet {2}, feilet {3}" - -#: src/metabase/sync/analyze.clj -msgid "Total number of fields classified {0}, {1} failed" -msgstr "Totalt antall felt klassifisert {0}, {1} feilet" - -#: src/metabase/sync/analyze.clj -msgid "Total number of tables classified {0}, {1} updated" -msgstr "Total antall tabeller klassifisert {0}, {1} oppdatert" - -#: src/metabase/sync/analyze/fingerprint/fingerprinters.clj -msgid "Error generating fingerprint for {0}" -msgstr "Feil ved generering av fingeravtrykk for {0}" - -#: src/metabase/sync/field_values.clj -msgid "Updated {0} field value sets, created {1}, deleted {2} with {3} errors" -msgstr "Oppdatert {0} felt verdisett, opprettet {1}, slettet {2} med {3} feil" - -#: src/metabase/sync/sync_metadata.clj -msgid "Total number of fields sync''d {0}, number of fields updated {1}" -msgstr "Total antall felt synkronisert {0}, antall felt oppdatert {1}" - -#: src/metabase/sync/sync_metadata.clj -msgid "Total number of tables sync''d {0}, number of tables updated {1}" -msgstr "Total antall tabeller synkronisert {0}, antall tabeller oppdatert {1}" - -#: src/metabase/sync/sync_metadata.clj -msgid "Found timezone id {0}" -msgstr "Fant tidssone id {0}" - -#: src/metabase/sync/sync_metadata.clj -msgid "Total number of foreign keys sync''d {0}, {1} updated and {2} tables failed to update" -msgstr "Total antall fremmednøkler synkronisert {0}, {1} oppdatert og {2} tabeller mislyktes Ã¥ oppdatere" - -#: src/metabase/sync/util.clj -msgid "{0} Database {1} ''{2}''" -msgstr "{0} Database {1} \"{2}\"" - -#: src/metabase/sync/util.clj -msgid "Table {0} ''{1}''" -msgstr "Tabell {0} \"{1}\"" - -#: src/metabase/sync/util.clj -msgid "Field {0} ''{1}''" -msgstr "Felt {0} \"{1}\"" - -#: src/metabase/sync/util.clj -msgid "Field ''{0}''" -msgstr "Felt \"{0}\"" - -#: src/metabase/sync/util.clj -msgid "step ''{0}'' for {1}" -msgstr "steg \"{0}\" for {1}" - -#: src/metabase/sync/util.clj -msgid "Completed {0} on {1}" -msgstr "Ferdigstilt {0} pÃ¥ {1}" - -#: src/metabase/sync/util.clj -msgid "Start: {0}" -msgstr "Start: {0}" - -#: src/metabase/sync/util.clj -msgid "End: {0}" -msgstr "Slutt: {0}" - -#: src/metabase/sync/util.clj -msgid "Duration: {0}" -msgstr "Tid brukt: {0}" - -#: src/metabase/sync/util.clj -msgid "Completed step ''{0}''" -msgstr "Ferdigstilt steg \"{0}\"" - -#: src/metabase/task.clj -#, fuzzy -msgid "Loading tasks namespace:" -msgstr "Laster inn navnerom for oppgaver:" - -#: src/metabase/task.clj -msgid "Starting Quartz Scheduler" -msgstr "Starter Quartz Scheduler" - -#: src/metabase/task.clj -msgid "Stopping Quartz Scheduler" -msgstr "Stopper Quartz Scheduler" - -#: src/metabase/task.clj -msgid "Job already exists:" -msgstr "Jobben eksisterer allerede:" - -#. This is the very first log message that will get printed. It's here because this is one of the very first -#. namespaces that gets loaded, and the first that has access to the logger It shows up a solid 10-15 seconds before -#. the "Starting Metabase in STANDALONE mode" message because so many other namespaces need to get loaded -#: src/metabase/util.clj -msgid "Loading Metabase..." -msgstr "Laster inn Metabase..." - -#: src/metabase/util/date.clj -msgid "Possible timezone conflict found on database {0}." -msgstr "Mulig tidssone konflikt funnet i database {0}" - -#: src/metabase/util/date.clj -msgid "JVM timezone is {0} and detected database timezone is {1}." -msgstr "JVM tidssone er {0}, oppdaget database tidssone er {1}" - -#: src/metabase/util/date.clj -msgid "Configure a report timezone to ensure proper date and time conversions." -msgstr "Konfigurer en rapport tidssone for Ã¥ sikre dato- og tidskonvertering" - -#: src/metabase/util/embed.clj -msgid "Secret key used to sign JSON Web Tokens for requests to `/api/embed` endpoints." -msgstr "Hemmelig nøkkel for Ã¥ signere JSON Web Tokens for tilkobling til `/api/embed`." - -#: src/metabase/util/encryption.clj -msgid "MB_ENCRYPTION_SECRET_KEY must be at least 16 characters." -msgstr "MB_ENCRYPTION_SECRET_KEY mÃ¥ være minst 16 tegn." - -#: src/metabase/util/encryption.clj -msgid "Saved credentials encryption is ENABLED for this Metabase instance." -msgstr "Lagret legitimasjonskryptering er ENABLED for denne Metabase-instansen." - -#: src/metabase/util/encryption.clj -msgid "Saved credentials encryption is DISABLED for this Metabase instance." -msgstr "Lagret legitimasjonskryptering er DISABLED for denne Metabase-instansen." - -#: src/metabase/util/encryption.clj -msgid "nFor more information, see" -msgstr "For mer informasjon, se" - -#: src/metabase/util/schema.clj -msgid "value must be an integer." -msgstr "verdi mÃ¥ være ett heltall." - -#: src/metabase/util/schema.clj -msgid "value must be a string." -msgstr "verdi mÃ¥ være en streng." - -#: src/metabase/util/schema.clj -#, fuzzy -msgid "value must be a boolean." -msgstr "verdien mÃ¥ være boolsk." - -#: src/metabase/util/schema.clj -#, fuzzy -msgid "value must be a string that matches the regex `{0}`." -msgstr "verdi mÃ¥ være en streng som tilfredsstiller kravene til regex `{0}`." - -#: src/metabase/util/schema.clj -msgid "value must satisfy one of the following requirements: " -msgstr "verdi mÃ¥ tilfredsstille en av følgende krav: " - -#: src/metabase/util/schema.clj -msgid "value may be nil, or if non-nil, {0}" -msgstr "verdi mÃ¥ være null, eller hvis ikke null, {0}" - -#: src/metabase/util/schema.clj -msgid "value must be one of: {0}." -msgstr "verdi mÃ¥ være en av disse: {0}." - -#: src/metabase/util/schema.clj -msgid "value must be an array." -msgstr "verdi mÃ¥ være en matrise." - -#: src/metabase/util/schema.clj -msgid "Each {0}" -msgstr "Hver {0}" - -#: src/metabase/util/schema.clj -msgid "The array cannot be empty." -msgstr "Matrisen kan ikke være tom." - -#: src/metabase/util/schema.clj -msgid "value must be a non-blank string." -msgstr "verdi kan ikke være blank streng." - -#: src/metabase/util/schema.clj -msgid "Integer greater than zero" -msgstr "Heltall mer enn 0" - -#: src/metabase/util/schema.clj -msgid "value must be an integer greater than zero." -msgstr "verdi mÃ¥ være ett heltall over 0." - -#: src/metabase/util/schema.clj -msgid "Number greater than zero" -msgstr "Tall over 0" - -#: src/metabase/util/schema.clj -msgid "value must be a number greater than zero." -msgstr "verdi mÃ¥ være ett tall over null" - -#: src/metabase/util/schema.clj -msgid "Keyword or string" -msgstr "Søkeord eller streng" - -#: src/metabase/util/schema.clj -msgid "Valid field type" -msgstr "Gyldig felt type" - -#: src/metabase/util/schema.clj -msgid "value must be a valid field type." -msgstr "verdi mÃ¥ være en gyldig felt type." - -#: src/metabase/util/schema.clj -msgid "Valid field type (keyword or string)" -msgstr "Gyldig felt type (søkeord eller streng)" - -#: src/metabase/util/schema.clj -msgid "value must be a valid field type (keyword or string)." -msgstr "verdi mÃ¥ være en gyldig felt type (søkeord eller streng)" - -#: src/metabase/util/schema.clj -msgid "Valid entity type (keyword or string)" -msgstr "Gyldig enhetstype (søkeord eller streng)" - -#: src/metabase/util/schema.clj -msgid "value must be a valid entity type (keyword or string)." -msgstr "verdi mÃ¥ være en gyldig enhetstype (søkeord eller streng)" - -#: src/metabase/util/schema.clj -msgid "Valid map" -msgstr "Gyldig kart" - -#: src/metabase/util/schema.clj -msgid "value must be a map." -msgstr "verdi mÃ¥ være ett kart." - -#: src/metabase/util/schema.clj -msgid "Valid email address" -msgstr "Gyldig e-postadresse" - -#: src/metabase/util/schema.clj -msgid "value must be a valid email address." -msgstr "verdi mÃ¥ være en gyldig e-postadresse" - -#: src/metabase/util/schema.clj -msgid "Insufficient password strength" -msgstr "Ugyldig passord styrke" - -#: src/metabase/util/schema.clj -msgid "value must be a valid integer." -msgstr "verdi mÃ¥ være ett gyldig heltall" - -#: src/metabase/util/schema.clj -msgid "value must be a valid integer greater than zero." -msgstr "verdi mÃ¥ være ett gyldig heltall større enn null." - -#: src/metabase/util/schema.clj -msgid "value must be a valid boolean string (''true'' or ''false'')." -msgstr "verdi mÃ¥ være en gyldig boolean streng (\"true\" eller \"false\")" - -#: src/metabase/util/schema.clj -msgid "value must be a valid JSON string." -msgstr "verdi mÃ¥ være en gyldig JSON streng." - -#: src/metabase/util/schema.clj -#, fuzzy -msgid "value must be a valid embedding params map." -msgstr "verdi mÃ¥ være en gyldig embedding params kart." - -#: frontend/src/metabase/admin/permissions/components/PermissionsTabs.jsx:12 -msgid "Data permissions" -msgstr "Tilgang til data" - -#: frontend/src/metabase/admin/permissions/components/PermissionsTabs.jsx:13 -msgid "Collection permissions" -msgstr "Tilgang til samlinger" - -#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:59 -msgid "See all collection permissions" -msgstr "Se alle tilganger til samlinger" - -#: frontend/src/metabase/admin/permissions/containers/TogglePropagateAction.jsx:27 -msgid "Also change sub-collections" -msgstr "Endre ogsÃ¥ undersamlinger" - -#: frontend/src/metabase/admin/permissions/selectors.js:285 -msgid "Can edit this collection and its contents" -msgstr "Kan endre denne samlingen og inneholdet" - -#: frontend/src/metabase/admin/permissions/selectors.js:292 -msgid "Can view items in this collection" -msgstr "Kan se elementer i denne samlingen" - -#: frontend/src/metabase/admin/permissions/selectors.js:752 -msgid "Collection Access" -msgstr "Tilgang til samlinger" - -#: frontend/src/metabase/admin/permissions/selectors.js:828 -msgid "This group has permission to view at least one subcollection of this collection." -msgstr "Denne gruppen har tilgang til Ã¥ vise minst en undersamling av denne samlingen." - -#: frontend/src/metabase/admin/permissions/selectors.js:833 -msgid "This group has permission to edit at least one subcollection of this collection." -msgstr "Denne gruppen har tilganger til Ã¥ endre minst en av undersamlingene til denne samlingen." - -#: frontend/src/metabase/admin/permissions/selectors.js:846 -msgid "View sub-collections" -msgstr "Vis undersamlingen" - -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 -msgid "Remember Me" -msgstr "Husk meg" - -#: frontend/src/metabase/components/BrowseApp.jsx:63 -msgid "X-ray this schema" -msgstr "Kjør X-ray pÃ¥ dette skjema" - -#: frontend/src/metabase/components/CollectionLanding.jsx:258 -msgid "Edit the permissions for this collection" -msgstr "Endre tilgangenene for denne samlingen" - -#: frontend/src/metabase/containers/AddToDashSelectDashModal.jsx:55 -msgid "Add this question to a dashboard" -msgstr "Legg dette spørsmÃ¥let til en infotavle" - -#: frontend/src/metabase/containers/AddToDashSelectDashModal.jsx:65 -msgid "Create a new dashboard" -msgstr "Legg til ny infotavle" - -#: frontend/src/metabase/containers/ErrorPages.jsx:45 -msgid "The page you asked for couldn't be found." -msgstr "Siden du spurte etter fins ikke." - -#: frontend/src/metabase/containers/ItemSelect.jsx:30 -msgid "Select a {0}" -msgstr "Velg en {0}" - -#: frontend/src/metabase/containers/Overworld.jsx:185 -msgid "Save dashboards, questions, and collections in \"{0}\"" -msgstr "Lagre infotavle, spørsmÃ¥l og samlinger i \"{0}\"" - -#: frontend/src/metabase/containers/Overworld.jsx:188 -msgid "Access dashboards, questions, and collections in \"{0}\"" -msgstr "Adgang til infotavler, spørsmÃ¥l og samlinger i \"{0}\"" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:223 -msgid "Compare" -msgstr "Sammenlign" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:231 -msgid "Zoom out" -msgstr "Zoom ut" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:235 -msgid "Related" -msgstr "Relatert" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:295 -msgid "More X-rays" -msgstr "Flere X-ray spørringer" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 -#: src/metabase/pulse/render/body.clj -msgid "No results" -msgstr "Ingen resultater" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 -msgid "Metabase couldn't find any results for your search." -msgstr "Metabase kan ikke finne noen resultater for ditt søk." - -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:115 -msgid "No metrics" -msgstr "Ingen indikatorer" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:31 -#, fuzzy -msgid "Aggregations" -msgstr "Aggregeringer" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:32 -msgid "Operators" -msgstr "Operatører" - -#: frontend/src/metabase/query_builder/components/expressions/Expressions.jsx:30 -msgid "Custom fields" -msgstr "Egendefinerte felter" - -#. 2. Create the new collections. -#: src/metabase/db/migrations.clj -msgid "Migrated Dashboards" -msgstr "Migrerte infotavler" - -#: src/metabase/db/migrations.clj -msgid "Migrated Pulses" -msgstr "Migrerte pulser" - -#: src/metabase/db/migrations.clj -msgid "Migrated Questions" -msgstr "Migrerte spørsmÃ¥l" - -#. 4. move everything not in this Collection to a new Collection -#: src/metabase/db/migrations.clj -msgid "Moving instances of {0} that aren't in a Collection to {1} Collection {2}" -msgstr "Flytter instanser av {0} som ikke er i en samling til {1} samling {2}" - -#: src/metabase/models/permissions.clj -msgid "Failed to grant permissions: {0}" -msgstr "Klarte ikke Ã¥ gi tillatelser: {0}" - -#: src/metabase/util/encryption.clj -msgid "Cannot decrypt encrypted string. Have you changed or forgot to set MB_ENCRYPTION_SECRET_KEY?" -msgstr "Kan ikke dekryptere kryptert tekststreng. Har du endret eller glemt Ã¥ sette MB_ENCRYPTION_SECRET_KEY?" - -#: frontend/src/metabase/entities/collections.js:167 -msgid "All personal collections" -msgstr "Alle personlige samlinger" - -#: src/metabase/driver/common.clj -msgid "Host" -msgstr "Vert" - -#: src/metabase/driver/common.clj -msgid "Port" -msgstr "Port" - -#: src/metabase/driver/common.clj -msgid "Database username" -msgstr "Database brukernavn" - -#: src/metabase/driver/common.clj -msgid "What username do you use to login to the database?" -msgstr "Hvilket brukernavn vil du bruke ved tilkobling til databasen?" - -#: src/metabase/driver/common.clj -msgid "Database password" -msgstr "Database passord" - -#: src/metabase/driver/common.clj -msgid "Database name" -msgstr "Database navn" - -#: src/metabase/driver/common.clj -msgid "birds_of_the_world" -msgstr "birds_of_the_world" - -#: src/metabase/driver/common.clj -msgid "Use a secure connection (SSL)?" -msgstr "Bruk sikker kobling (SSL)?" - -#: src/metabase/driver/common.clj -msgid "Additional JDBC connection string options" -msgstr "Ekstra JDBC koblingsstreng alternativer" - -#: src/metabase/driver/bigquery.clj -msgid "Project ID" -msgstr "Prosjekt ID" - -#: src/metabase/driver/bigquery.clj -msgid "praxis-beacon-120871" -msgstr "praxis-beacon-120871" - -#: src/metabase/driver/bigquery.clj -msgid "Dataset ID" -msgstr "Datasett ID" - -#: src/metabase/driver/bigquery.clj -msgid "toucanSightings" -msgstr "toucanSightings" - -#: src/metabase/driver/bigquery.clj src/metabase/driver/googleanalytics.clj -msgid "Client ID" -msgstr "Klient ID" - -#: src/metabase/driver/bigquery.clj src/metabase/driver/googleanalytics.clj -msgid "Client Secret" -msgstr "Klient hemmelighet" - -#: src/metabase/driver/bigquery.clj src/metabase/driver/googleanalytics.clj -msgid "Auth Code" -msgstr "Autoriseringskode" - -#: src/metabase/driver/crate.clj -msgid "Hosts" -msgstr "Verter" - -#: src/metabase/driver/druid.clj -#, fuzzy -msgid "Broker node port" -msgstr "Knuteport for megler" - -#: src/metabase/driver/googleanalytics.clj -msgid "Google Analytics Account ID" -msgstr "Google Analytics konto ID" - -#: src/metabase/driver/h2.clj -msgid "Connection String" -msgstr "Koblingsstring" - -#: src/metabase/driver/h2.clj -#, fuzzy -msgid "Users/camsaul/bird_sightings/toucans" -msgstr "Brukere/camsaul/bird_sightings/toucans" - -#: src/metabase/driver/mongo.clj -msgid "carrierPigeonDeliveries" -msgstr "carrierPigeonDeliveries" - -#: src/metabase/driver/mongo.clj -msgid "Authentication Database" -msgstr "Autorisering Database" - -#: src/metabase/driver/mongo.clj -msgid "Optional database to use when authenticating" -msgstr "Alternative database Ã¥ bruke ved autorisering" - -#: src/metabase/driver/mongo.clj -msgid "Additional Mongo connection string options" -msgstr "Ekstra Mongo koblingsstreng alternativer" - -#: src/metabase/driver/oracle.clj -msgid "Oracle system ID (SID)" -msgstr "Oracle system ID (SID)" - -#: src/metabase/driver/oracle.clj -msgid "Usually something like ORCL or XE." -msgstr "Bruker vanligvis være lignende ORCL eller XE" - -#: src/metabase/driver/oracle.clj -msgid "Optional if using service name" -msgstr "Alternativt hvis bruk av servicenavn" - -#: src/metabase/driver/oracle.clj -msgid "Oracle service name" -msgstr "Oracle service navn" - -#: src/metabase/driver/oracle.clj -msgid "Optional TNS alias" -msgstr "Valgfritt TNS alias" - -#: src/metabase/driver/presto.clj -msgid "hive" -msgstr "kube" - -#: src/metabase/driver/redshift.clj -msgid "my-cluster-name.abcd1234.us-east-1.redshift.amazonaws.com" -msgstr "mitt-kluster-navn.abcd1234.no-1.redshift.amazonaws.com" - -#: src/metabase/driver/redshift.clj -msgid "toucan_sightings" -msgstr "toucan_sightings" - -#: src/metabase/driver/sparksql.clj -msgid "default" -msgstr "standard" - -#: src/metabase/driver/sqlite.clj -msgid "Filename" -msgstr "Filnavn" - -#: src/metabase/driver/sqlite.clj -msgid "/home/camsaul/toucan_sightings.sqlite 😋" -msgstr "/home/camsaul/toucan_sightings.sqlite 😋" - -#: src/metabase/driver/sqlserver.clj -msgid "BirdsOfTheWorld" -msgstr "FugleneIVerden" - -#: src/metabase/driver/sqlserver.clj -msgid "Database instance name" -msgstr "Database instanse navn" - -#: src/metabase/driver/sqlserver.clj -msgid "N/A" -msgstr "I/T" - -#: src/metabase/driver/sqlserver.clj -msgid "Windows domain" -msgstr "Windows domene" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 -msgid "Labels" -msgstr "Etiketter" - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:339 -msgid "Add members" -msgstr "Legg til medlemmer" - -#: frontend/src/metabase/entities/collections.js:116 -msgid "Collection it's saved in" -msgstr "Samling den er lagret i" - -#: frontend/src/metabase/lib/groups.js:4 -msgid "All Users" -msgstr "Alle brukere" - -#: frontend/src/metabase/lib/groups.js:5 -msgid "Administrators" -msgstr "Administratorer" - -#: frontend/src/metabase/lib/groups.js:6 -msgid "MetaBot" -msgstr "MetaBot" - -#: frontend/src/metabase/public/components/widgets/EmbedModalContent.jsx:290 -msgid "Sharing" -msgstr "Deling" - -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:23 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:218 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:251 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:280 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:286 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:294 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:302 -#: frontend/src/metabase/visualizations/lib/settings/nested.js:126 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:119 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:125 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:131 -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:61 -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:67 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:72 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:85 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:98 -msgid "Display" -msgstr "Visning" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 -msgid "Axes" -msgstr "Akser" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 -#: frontend/src/metabase/admin/settings/selectors.js:316 -#: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 -#: frontend/src/metabase/visualizations/lib/settings/column.js:63 -msgid "Formatting" -msgstr "Formatering" - -#: frontend/src/metabase/containers/Overworld.jsx:102 -msgid "Try these x-rays based on your data." -msgstr "Prøv disse X-ray spørsmÃ¥lene basert pÃ¥ din data." - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 -msgid "There was a problem displaying this chart." -msgstr "Det er ett problem med visning av denne grafen." - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 -msgid "Sorry, you don't have permission to see this card." -msgstr "Beklager, du har ikke tilgang til Ã¥ se dette kortet." - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:55 -msgid "Just a heads up:" -msgstr "Bare en liten ting:" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:63 -msgid "{0} without the Sample Dataset, the Query Builder tutorial won't work. You can always restore the Sample Dataset, but any questions you've saved using this data will be lost." -msgstr "{0} uten eksempel-datasettet, sÃ¥ vil ikke spørrings-veilederen virke. Du kan alltids gjenopprette eksempel-datasettet, men spørsmÃ¥l du har lagret med disse dataene vil gÃ¥ tapt." - -#: frontend/src/metabase/modes/components/drill/AutomaticDashboardDrill.jsx:33 -msgid "X-ray" -msgstr "X-ray" - -#: frontend/src/metabase/modes/components/drill/CompareToRestDrill.js:34 -msgid "Compare to the rest" -msgstr "Sammenlignet med resten" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 -msgid "Use the Java Virtual Machine (JVM) timezone" -msgstr "Bruk JVM-tidssone" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 -msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" -"many or most of your queries with this data." -msgstr "Vi anbefaler Ã¥ la denne være slÃ¥tt av, med mindre du endrer tidssone manuelt i mange eller alle dine spørringer mote disse dataene." - -#: frontend/src/metabase/containers/Overworld.jsx:312 -msgid "Your team's most important dashboards go here" -msgstr "Ditt lags viktigste infoskjermer finnes her" - -#: frontend/src/metabase/containers/Overworld.jsx:313 -msgid "Pin dashboards in {0} to have them appear in this space for everyone" -msgstr "Fest infotavler til {0} for at de skal vises pÃ¥ denne plassen for alle sammen" - -#: src/metabase/db.clj -msgid "Unable to release the Liquibase lock after a migration failure" -msgstr "Ikke mulig Ã¥ Ã¥pne Liquibase-lÃ¥sen etter en migreringsfeil" - -#: src/metabase/driver/bigquery.clj -msgid "Use JVM Time Zone" -msgstr "Bruk JVM-tidssone" - -#: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:29 -msgid "We're currently analyzing the tables and fields to help you explore your data." -msgstr "Vi analyserer nÃ¥ tabellene og feltene for Ã¥ hjelpe deg med Ã¥ utforske dataene dine." - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:441 -msgid "Tip: " -msgstr "Tips: " - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:246 -msgid "Select a currency type" -msgstr "Velg valutatype" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 -msgid "Field Type" -msgstr "Felt type" - -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 -msgid "Troubleshooting" -msgstr "Feilsøking" - -#: frontend/src/metabase/admin/settings/selectors.js:93 -msgid "Enable X-ray features" -msgstr "Aktiver X-ray-funksjonalitet" - -#: frontend/src/metabase/admin/settings/selectors.js:320 -msgid "Formatting Options" -msgstr "Formateringsinnstillinger" - -#: frontend/src/metabase/admin/tasks/containers/TaskModal.jsx:22 -msgid "Task details" -msgstr "Oppgavedetaljer" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:29 -msgid "Troubleshooting logs" -msgstr "Feilsøkingslogger" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:31 -msgid "Trying to get to the bottom of something? This section shows logs of Metabase's background tasks, which can help shed light on what's going on." -msgstr "Prøver du Ã¥ komme til bunns i noe? Denne delen viser logger fra Metabases bakgrunnsoppgaver, som kan si litt mer om hva som skjer." - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:56 -msgid "Task" -msgstr "Oppgave" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:57 -msgid "DB ID" -msgstr "Database id" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:58 -msgid "Started at" -msgstr "Startet" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:59 -msgid "Ended at" -msgstr "Avsluttet" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:60 -msgid "Duration (ms)" -msgstr "Varighet (ms)" - -#: frontend/src/metabase/lib/core.js:45 -msgid "Currency" -msgstr "Valuta" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 -msgid "Pick a user or channel..." -msgstr "Velg en bruker eller kanal..." - -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 -msgid "No formatting settings" -msgstr "Ingen formateringsinnstillinger" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:81 -msgid "Label for this range (optional)" -msgstr "Etikett for dette omrÃ¥det (valgfritt)" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:93 -msgid "Add a range" -msgstr "Legg til et omrÃ¥de" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:26 -msgid "is less than" -msgstr "er mindre enn" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:27 -msgid "is greater than" -msgstr "er større enn" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:28 -msgid "is less than or equal to" -msgstr "er mindre eller lik" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:29 -msgid "is greater than or equal to" -msgstr "er større eller lik" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:30 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:37 -msgid "is equal to" -msgstr "er lik" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:31 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:38 -msgid "is not equal to" -msgstr "er ikke lik" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:32 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:39 -msgid "is null" -msgstr "er null" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:33 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:40 -msgid "is not null" -msgstr "er ikke null" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:41 -msgid "contains" -msgstr "inneholder" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:42 -msgid "does not contain" -msgstr "inneholder ikke" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:43 -msgid "starts with" -msgstr "starter med" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:44 -msgid "ends with" -msgstr "slutter med" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:292 -msgid "When a cell in these columns {0} it will be tinted this color." -msgstr "NÃ¥r en celle i disse kolonnene {0} sÃ¥ vil den bli farget med denne fargen." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:351 -msgid "When a cell in this column…" -msgstr "NÃ¥r en celle i denne kolonnen..." - -#: frontend/src/metabase/visualizations/lib/errors.js:42 -msgid "This visualization requires you to group by a field." -msgstr "Denne visualiseringen krever at du grupperer pÃ¥ et felt." - -#: frontend/src/metabase/visualizations/lib/settings/column.js:178 -msgid "Date style" -msgstr "Datostil" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:196 -msgid "Date separators" -msgstr "Datoskilletegn" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:215 -msgid "Abbreviate names of days and months" -msgstr "Forkort navn pÃ¥ dag og mÃ¥neder" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:225 -msgid "Show the time" -msgstr "Vis tiden" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:232 -msgid "HH:MM" -msgstr "HH:MM" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:240 -msgid "HH:MM:SS" -msgstr "HH:MM:SS" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:243 -msgid "HH:MM:SS.MS" -msgstr "HH:MM:SS.MS" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:254 -msgid "Time style" -msgstr "Tidsstil" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:300 -msgid "Unit of currency" -msgstr "Valutaenhet" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:320 -msgid "Currency label style" -msgstr "Valutaetikettstil" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:338 -msgid "Where to display the unit of currency" -msgstr "Hvor valutaenheten skal vises" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:371 -msgid "Minimum number of decimal places" -msgstr "Minste antall desimaler" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:252 -msgid "Stacked chart type" -msgstr "Stablet diagramtype" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:295 -msgid "Goal label" -msgstr "MÃ¥letikett" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 -msgid "Show trend line" -msgstr "Vis trendlinje" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:67 -msgid "Line style" -msgstr "Linjestil" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:84 -msgid "Show dots on lines" -msgstr "Vis prikker pÃ¥ linjer" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:88 -#: frontend/src/metabase/visualizations/lib/settings/series.js:125 -msgid "Auto" -msgstr "Auto" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:120 -msgid "Which axis?" -msgstr "Hvilken akse?" - -#: frontend/src/metabase/visualizations/visualizations/ComboChart.jsx:16 -msgid "Line + Bar" -msgstr "Linje + Stolpe" - -#: frontend/src/metabase/visualizations/visualizations/ComboChart.jsx:19 -msgid "line and bar chart" -msgstr "linje- og stolpediagram" - -#: frontend/src/metabase/visualizations/visualizations/Gauge.jsx:76 -msgid "Gauge visualization requires a number." -msgstr "MÃ¥lervisualisering trenger et nummer." - -#: frontend/src/metabase/visualizations/visualizations/Gauge.jsx:60 -msgid "Gauge" -msgstr "MÃ¥ler" - -#: frontend/src/metabase/visualizations/visualizations/Gauge.jsx:115 -msgid "Gauge ranges" -msgstr "MÃ¥leromrÃ¥de" - -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 -msgid "Field to show" -msgstr "Felt Ã¥ vise" - -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 -msgid "last {0}" -msgstr "siste {0}" - -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 -msgid "{0} was {1} {2}" -msgstr "{0} var {1} {2}" - -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:66 -msgid "Group by a time field to see how this has changed over time" -msgstr "Grupper etter et tidsfelt for Ã¥ se hvordan dette har endret seg over tid" - -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:46 -msgid "Switch positive / negative colors?" -msgstr "Bytt positive / negative farger?" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:95 -msgid "Pivot column" -msgstr "Pivoter kolonnen" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:126 -msgid "Cell column" -msgstr "Cellekolonne" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:163 -msgid "Visible columns" -msgstr "Synlige kolonner" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:191 -msgid "Conditional Formatting" -msgstr "Betinget Formatering" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:233 -msgid "Column title" -msgstr "Kolonnetittel" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:240 -msgid "Show a mini bar chart" -msgstr "Vis et ministolpediagram" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:251 -msgid "Link" -msgstr "Lenke" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:255 -msgid "Email link" -msgstr "E-post-lenke" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:259 -msgid "Image" -msgstr "Bilde" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:263 -msgid "Automatic" -msgstr "Automatisk" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:268 -msgid "View as link or image" -msgstr "Vis som lenke eller bilde" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:278 -msgid "Link text" -msgstr "Lenketekst" - -#: src/metabase/api/common/internal.clj -msgid "Not a valid integer: ''{0}''" -msgstr "Ikke et gyldig heltall: \"{0}\"" - -#: src/metabase/api/embed.clj -msgid "Embedding is not enabled for this object." -msgstr "Innebygging er ikke aktivert for dette objektet." - -#: src/metabase/api/session.clj -msgid "Problem connecting to LDAP server, will fallback to local authentication: {0}" -msgstr "Problem med tilkobling til LDAP-tjener; faller tilbake til lokal autorisering: {0}" - -#: src/metabase/api/task.clj -msgid "When including an offset, a limit must also be included." -msgstr "NÃ¥r det brukes en forskyvning, sÃ¥ mÃ¥ det ogsÃ¥ brukes en grense." - -#: src/metabase/api/task.clj -msgid "When including a limit, an offset must also be included." -msgstr "NÃ¥r det brukes en grense, sÃ¥ mÃ¥ det ogsÃ¥ brukes en forskyvning." - -#: src/metabase/automagic_dashboards/core.clj -msgid "Applying heuristic {0} to {1}." -msgstr "Anvender heuristikk {0} for {1}." - -#: src/metabase/automagic_dashboards/core.clj -msgid "Dimensions bindings:n{0}" -msgstr "Dimensjoner bindinger:n{0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "Using definitions:nMetrics:n{0}nFilters:n{1}" -msgstr "Bruker definisjoner:nIndikatorer:n{0}nFiltere:n{1}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "minute" -msgstr "minutt" - -#: src/metabase/automagic_dashboards/core.clj -msgid "hour" -msgstr "time" - -#: src/metabase/automagic_dashboards/core.clj -msgid "day of week" -msgstr "ukedag" - -#: src/metabase/automagic_dashboards/core.clj -msgid "day of month" -msgstr "dag i mÃ¥ned" - -#: src/metabase/automagic_dashboards/core.clj -msgid "day of year" -msgstr "dag i Ã¥ret" - -#: src/metabase/automagic_dashboards/core.clj -msgid "week" -msgstr "uke" - -#: src/metabase/automagic_dashboards/core.clj -msgid "month" -msgstr "mÃ¥ned" - -#: src/metabase/automagic_dashboards/core.clj -msgid "quarter" -msgstr "kvartal" - -#: src/metabase/automagic_dashboards/populate.clj -msgid "Adding {0} cards to dashboard {1}:n{2}" -msgstr "Legger {0} kortene til infotavlen {1}:n{2}" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Error parsing {0}:n{1}" -msgstr "Feil ved tolking av {0}:n{1}" - -#: src/metabase/driver/druid/query_processor.clj -msgid "WARNING: Filtering only works on dimensions! ''{0}'' is a metric. Ignoring filter." -msgstr "ADVARSEL: Filtrering virker bare pÃ¥ dimensjoner! \"{0}\" er en indikator. Ignorerer filter." - -#: src/metabase/driver/druid/query_processor.clj -msgid "WARNING: A date can't belong to multiple discrete intervals, so ANDing them together doesn't make sense." -msgstr "ADVARSEL: En dato kan ikke tilhøre flere diskrete intervaller, sÃ¥ Ã¥ OGe dem sammen gir ikke mening." - -#: src/metabase/driver/druid/query_processor.clj -msgid "Ignoring these intervals: {0}" -msgstr "Ignorerer disse intervallene: {0}" - -#. We should never get to this point since the all non-string negations should get automatically rewritten -#. by the query expander. -#: src/metabase/driver/druid/query_processor.clj -msgid "WARNING: Don't know how to negate: {0}" -msgstr "ADVARSEL: Vet ikke hvordan man omvender: {0}" - -#: src/metabase/driver/druid/query_processor.clj -msgid "Sorting with Druid is only allowed in queries that have one or more breakout columns. Ignoring :order-by clause." -msgstr "Sortering med Druid er kun tillatt i spørringer som har en eller flere utbrytingskolonner. Ignorerer :order-by-klausul." - -#. TODO - this is not really true, is it -#: src/metabase/driver/druid/query_processor.clj -msgid "WARNING: It only makes sense to specify :fields for a query with no aggregation. Ignoring the clause." -msgstr "ADVARSEL: Det gir kun mening Ã¥ spesifisere :fields for en spørring uten aggregering. Ignorerer klausulen." - -#: src/metabase/driver/druid/query_processor.clj -msgid "WARNING: Druid doenst allow limitSpec in timeseries queries. Ignoring the LIMIT clause." -msgstr "ADVARSEL: Druid tillater ikke limitSpec i tidsseriespørringer. Ignorerer LIMIT-klausulen." - -#: src/metabase/driver/sql/query_processor.clj -msgid "HoneySQL Form:" -msgstr "HoneySQL Skjema:" - -#: src/metabase/driver/sql_jdbc/execute.clj -msgid "Unable to parse date ''{0}''" -msgstr "Kan ikke tolke dato \"{0}\"" - -#: src/metabase/driver/sql_jdbc/execute.clj -msgid "Client closed connection, cancelling query" -msgstr "Klienten lukket tilkoblingen, avbryter spørring" - -#: src/metabase/driver/sql_jdbc/execute.clj -msgid "Setting timezone with statement: {0}" -msgstr "Setter tidssone med uttrykket: {0}" - -#: src/metabase/driver/googleanalytics/query_processor.clj -msgid "Multiple date filters are not supported" -msgstr "Flere datofiltere er ikke tillatt" - -#: src/metabase/driver/googleanalytics/query_processor.clj -msgid ":not is not yet implemented" -msgstr ":not er ikke implementert enda" - -#: src/metabase/driver/googleanalytics/query_processor.clj -msgid "Only one Google Analytics segment allowed at a time." -msgstr "Kun ett Google Analytics-segment er tillatt om gangen." - -#: src/metabase/driver/mongo/query_processor.clj -msgid "MONGO AGGREGATION PIPELINE:" -msgstr "MONGO AGGREGATION PIPELINE:" - -#: src/metabase/driver/mongo/query_processor.clj -msgid "Error: mismatched columns in results! Expected: {0} Got: {1}" -msgstr "Feil: kolonnene passer ikke i resultater! Forventet: {0} Fikk: {1}" - -#: src/metabase/email/messages.clj -msgid "Unable to create temp file in `{0}` for email attachments " -msgstr "Kan ikke lage midlertidig fil i `{0}` for e-postvedlegg " - -#: src/metabase/events/activity_feed.clj -msgid "Error preprocessing query:" -msgstr "Feil ved preprosessering av spørring:" - -#: src/metabase/mbql/normalize.clj -msgid "Illegal filter clause: {0}" -msgstr "Ulovlig filterklausul: {0}" - -#: src/metabase/mbql/normalize.clj -msgid "Invalid clause:" -msgstr "Ugyldig klausul:" - -#: src/metabase/mbql/util.clj -msgid "Error: query's source query has not been resolved. You probably need to `preprocess` the query first." -msgstr "Feil: spørringens kildespørring har ikke blitt løst. Du trenger sannsynligvis Ã¥ `preprosessere` spørringen først." - -#: src/metabase/mbql/util.clj -msgid "No expression named ''{0}''" -msgstr "Ingen uttrykk heter \"{0}\"" - -#: src/metabase/mbql/util.clj -msgid "No aggregation at index: {0}" -msgstr "Ingen samling pÃ¥ indeksen: {0}" - -#: src/metabase/models/field_values.clj -msgid "Field values total length is {0} (max {1})." -msgstr "Feltverdienes totale lengde er {0} (maks {1})." - -#: src/metabase/models/field_values.clj -msgid "FieldValues are allowed for this Field." -msgstr "FeltVerdier er ikke tillatt for dette Feltet." - -#: src/metabase/models/field_values.clj -msgid "FieldValues are NOT allowed for this Field." -msgstr "FeltVerdier er IKKE tillatt for dette Feltet." - -#: src/metabase/models/field_values.clj -msgid "Field {0} ''{1}'' should have FieldValues and belongs to a Database with On-Demand FieldValues updating." -msgstr "Feltet {0} \"{1}\" bør ha FeltVerdier og tilhører en Database med PÃ¥-Forespørsel FeltVerdier-oppdatering." - -#: src/metabase/models/permissions.clj -msgid "You cannot create or revoke permissions for the ''Admin'' group." -msgstr "Du kan ikke lage eller tilbakekalle tillatelser for \"Admin\"-gruppen." - -#: src/metabase/models/permissions_group_membership.clj -msgid "You cannot add or remove users to/from the ''MetaBot'' group." -msgstr "Du kan ikke legge til eller fjerne brukere i \"MetaBot\"-gruppen." - -#: src/metabase/models/permissions_group_membership.clj -msgid "You cannot add or remove users to/from the ''All Users'' group." -msgstr "Du kan ikke legge til eller fjerne brukere i \"Alle Brukere\"-gruppen." - -#: src/metabase/models/permissions_group_membership.clj -msgid "You cannot remove the last member of the ''Admin'' group!" -msgstr "Du kan ikke fjerne det siste medlemmet av \"Admin\"-gruppen!" - -#. go ahead and log the Exception anyway on the off chance that it *wasn't* just a race condition issue -#: src/metabase/models/setting/cache.clj -msgid "Error inserting a new Setting: {0}" -msgstr "Feil ved tillegg av ny innstilling: {0}" - -#: src/metabase/models/setting.clj -msgid "defsetting descriptions strings must be `:internal?` or internationalized, found: `{0}`" -msgstr "Beskrivelse for defsetting-tekststrenger mÃ¥ være `:internal?` eller internasjonalisert, fant: `{0}`" - -#: src/metabase/plugins.clj -msgid "Loading plugin {0}... {1}" -msgstr "Laster plugin {0}... {1}" - -#: src/metabase/public_settings.clj -msgid "Object keyed by type, containing formatting settings" -msgstr "Objekt kodet etter type, inneholder formateringsinnstillinger" - -#: src/metabase/public_settings.clj -msgid "Allow users to explore data using X-rays" -msgstr "Tillat brukere Ã¥ utforske data ved hjelp av X-rays" - -#: src/metabase/public_settings/metastore.clj -msgid "Using this URL to check token: {0}" -msgstr "Bruker følgende URL for Ã¥ sjekke token: {0}" - -#: src/metabase/public_settings/metastore.clj -msgid "Unable to validate token: 404 not found." -msgstr "Validering av token feilet: 404 ikke funnet." - -#: src/metabase/public_settings/metastore.clj -msgid "There was an error checking whether this token was valid:" -msgstr "Det oppstod en feil ved sjekk av hvorvidt denne tokenen var valid:" - -#. +----------------------------------------------------------------------------------------------------------------+ -#. | SETTING & RELATED FNS | -#. +----------------------------------------------------------------------------------------------------------------+ -#. TODO - rename this to premium-features-token? -#: src/metabase/public_settings/metastore.clj -msgid "Token for premium features. Go to the MetaStore to get yours!" -msgstr "Token for premium-egenskaper. GÃ¥ til MetaStore for Ã¥ fÃ¥ din egen!" - -#: src/metabase/public_settings/metastore.clj -msgid "Token format is invalid. Token should be 64 hexadecimal characters." -msgstr "Token-format er ugyldig. Token skal være 64 heksadesimale siffer." - -#: src/metabase/public_settings/metastore.clj -msgid "Error setting premium features token" -msgstr "Feil ved setting av token for premium-egenskaper" - -#: src/metabase/public_settings/metastore.clj -msgid "Error validating token:" -msgstr "Feil ved validering av token:" - -#: src/metabase/query_processor.clj -msgid "Error preprocessing query" -msgstr "Feil ved preprosesseringsspørring" - -#: src/metabase/query_processor.clj -msgid "No native form returned." -msgstr "Ingen lokale skjema returnert." - -#: src/metabase/query_processor/middleware/process_userland_query.clj -msgid "Invalid response from database driver. No :status provided." -msgstr "Ugyldig svar fra databasedriveren. Ingen status oppgitt." - -#: src/metabase/query_processor.clj -msgid "General error" -msgstr "Generell feil" - -#: src/metabase/query_processor.clj -msgid "Missing query hash!" -msgstr "Mangler spørringshash!" - -#: src/metabase/query_processor/middleware/add_implicit_clauses.clj -msgid "Table ''{0}'' has no Fields associated with it." -msgstr "Tabellen \"{0}\" har ingen felter assosiert med seg." - -#: src/metabase/query_processor/middleware/add_query_throttle.clj -msgid "Max concurrent query limit reached" -msgstr "Grense for maksimalt antall parallelle spørringer nÃ¥dd" - -#. we should never reach this if our patterns are written right so this is more to catch code mistakes than -#. something the user should expect to see -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Don't know how to get information about Field:" -msgstr "Jeg vet ikke hvordan jeg kan hente informasjon om feltet:" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "metabase.query-processor.interface/*driver* is unbound." -msgstr "metabase.query-processor.interface/*driver* er løs." - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Query processor error: mismatched number of columns in query and results." -msgstr "Feil i spørringsprosessor: ulikt antall kolonner i spørringen og resultatene." - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Expected {0} fields, got {1}" -msgstr "Forventet {0} felter, fant {1}" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Expected: {0}" -msgstr "Forventet: {0}" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Actual: {0}" -msgstr "Faktisk: {0}" - -#: src/metabase/query_processor/middleware/binning.clj -msgid "Unable to bin Field without a min/max value" -msgstr "Felt kan ikke grupperes uten en min/maks-verdi" - -#: src/metabase/query_processor/middleware/check_features.clj -msgid "{0} is not supported by this driver." -msgstr "{0} er ikke støttet av denne driveren." - -#: src/metabase/query_processor/middleware/expand_macros.clj -msgid "Segment {0} does not exist, or is invalid." -msgstr "Segmentet {0} eksisterer ikke, eller er invalid." - -#: src/metabase/query_processor/middleware/expand_macros.clj -msgid "Metric {0} does not exist, or is invalid." -msgstr "Indikatoren {0} eksisterer ikke eller er ikke valid." - -#: src/metabase/query_processor/middleware/fetch_source_query.clj -msgid "Missing source query in Card {0}" -msgstr "Mangler kildespørring i kort {0}" - -#: src/metabase/query_processor/middleware/fetch_source_query.clj -msgid "Fetched source query from Card {0}:" -msgstr "Hentet kildespørring fra kort {0}" - -#: src/metabase/query_processor/middleware/mbql_to_native.clj -msgid "Error transforming MBQL query to native:" -msgstr "Feil ved transformasjon av MBQL-spørring til lokal spørring:" - -#: src/metabase/query_processor/middleware/resolve_source_table.clj -msgid "Cannot run query: could not find source table {0}." -msgstr "Kan ikke utføre spørring: finner ikke kildetabellen {0}." - -#: src/metabase/query_processor/middleware/results_metadata.clj -msgid "Error recording results metadata for query:" -msgstr "Feil ved lagring av spørringsmetadataene." - -#: src/metabase/query_processor/store.clj -msgid "Error: Query Processor store is not initialized." -msgstr "Feil: Spørringsprosessoren er ikke initialisert." - -#: src/metabase/query_processor/store.clj -msgid "Error: Table {0} is not present in the Query Processor Store." -msgstr "Feil: Tabellen {0} er ikke tilgjengelig i spørringsprosessorsettet." - -#: src/metabase/query_processor/store.clj -msgid "Error: Field {0} is not present in the Query Processor Store." -msgstr "Feil. Felt {0} er ikke tilgjengelig i spørringsprosessorsettet." - -#: src/metabase/task/task_history_cleanup.clj -msgid "Task history cleanup successful, rows were {0}deleted" -msgstr "Opprydding av oppgavehistorikk vellykket - {0} rader fjernet" - -#: src/metabase/task/task_history_cleanup.clj -msgid "not" -msgstr "ikke" - -#: src/metabase/util/encryption.clj -msgid "For more information, see" -msgstr "For mer informasjon, se" - -#: src/metabase/util/schema.clj -msgid "Integer greater than or equal to zero" -msgstr "Heltall større enn eller lik null" - -#: src/metabase/util/schema.clj -msgid "value must be an integer greater than or equal to zero." -msgstr "verdi mÃ¥ være et heltall større enn eller lik null." - -#: src/metabase/util/schema.clj -msgid "value must be an integer zero or greater." -msgstr "verdi mÃ¥ være et heltall større enn eller lik null." - -#: src/metabase/util/schema.clj -msgid "value must be a valid integer greater than or equal to zero." -msgstr "verdi mÃ¥ være et heltall større enn eller lik null." - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "New users per state in the last 30 days" -msgstr "Nye brukere per status i løpet av de siste 30 dagene " - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Created At by day of the week" -msgstr "Opprettet Dato etter ukedag" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Created At by quarter of the year" -msgstr "Opprettet Dato etter kvartal i Ã¥ret" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] per country" -msgstr "[[this.short-name]] per land" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Users per source" -msgstr "Brukere per kilde" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "The top external pages that brought users to your site" -msgstr "De eksterne sidene som brakte flest brukere til din side" - -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "How [[this]] is distributed and more." -msgstr "Hvordan [[this]] er distribuert og mer." - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "The [[this]] over time" -msgstr "[[this]] over tid" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "User growth" -msgstr "Brukervekst" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Whether or not there are any patterns to when they happen." -msgstr "Hvorvidt det er noen mønstere for nÃ¥r det skjer." - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Users per state" -msgstr "Brukere per status" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions" -msgstr "Sesjoner" - -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "How some of the numbers in [[this]] relate to each other" -msgstr "Hvor noen av tallene i [[this]] relaterer seg til hverandre" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per country" -msgstr "Omsetning per land" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by month of the year" -msgstr "Innmeldingsdato etter mÃ¥ned i Ã¥ret" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by hour of the day" -msgstr "[[Timestamp]] etter time i døgnet" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "A look at the [[this]]" -msgstr "Et blikk pÃ¥ [[this]]" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Bottom 5 per category" -msgstr "Siste 4 i hver kategori" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Number of orders" -msgstr "Antall ordre" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Event growth" -msgstr "Hendelsesvekst" - -#: resources/automagic_dashboards/table/example/indepth.yaml -msgid "Total [[GenericTable]]" -msgstr "Totalt [[GenericTable]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Income growth" -msgstr "Inntekstvekst" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Top 10 countries by sales in the last 30 days" -msgstr "Topp 10 land etter omsetning i løpet av de siste 30 dagene" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[this]] by month of the year" -msgstr "[[this]] etter mÃ¥ned i Ã¥ret" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions per day of the week" -msgstr "Transaksjoner per ukedag" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions by device type" -msgstr "Sesjoner etter type enhet" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Transactions per country" -msgstr "Transaksjoner per land" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by quarter of the year" -msgstr "Innmeldingsdato etter kvartal i Ã¥ret" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per hour of the day" -msgstr "Hendelser per time i døgnet" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[Singleton]]" -msgstr "[[Singleton]]" - -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Country.yaml -msgid "Top 5 [[this]]" -msgstr "Topp 5 [[this]]" - -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Country.yaml -msgid "Bottom 5 [[this]]" -msgstr "Siste 5 [[this]]" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by day of the month" -msgstr "[[Timestamp]] etter dag i mÃ¥neden" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per [[GenericCategoryLarge]]" -msgstr "Per [[GenericCategoryLarge]]" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "Null values" -msgstr "Nullverdi" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Total events" -msgstr "Totalt antall hendelser" - -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "A look at [[GenericTable]] across your [[this]], and how it changes over time." -msgstr "Et blikk pÃ¥ [[GenericTable]] pÃ¥ tvers av dine [[this]], og hvordan det endrer seg over tid." - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategoryMedium]]" -msgstr "[[this]] per [[GenericCategoryMedium]]" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "How the [[this]] changes with time" -msgstr "Hvordan [[this]] endrer seg over tid" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "How they compare by seasonality" -msgstr "Sesongvariasjoner" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average income per transaction" -msgstr "Gjennomsnittlig inntekt per transaksjon" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per country" -msgstr "[[this]] per land" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Income per state" -msgstr "Inntekt per stat" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per [[GenericCategoryMedium]]" -msgstr "Per [[GenericCategoryMedium]]" - -#: resources/automagic_dashboards/question/GenericQuestion.yaml -msgid "A closer look at your [[this]]" -msgstr "En nærmere kikk pÃ¥ din [[this]]" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "How [[GenericNumber]] is distributed" -msgstr "Hvordan [[GenericNumber]] er fordelt" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[Timestamp]] by quarter of year" -msgstr "[[Timestamp]] etter kvartal i Ã¥ret" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per country" -msgstr "Hendelser per land" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Weekdays when [[this.short-name]] were added" -msgstr "Ukedager nÃ¥r [[this.short-name]] ble lagt til" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Months when [[this.short-name]] were added" -msgstr "MÃ¥neder nÃ¥r [[this.short-name]] ble lagt til" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare across different categories" -msgstr "Hvordan de varierer pÃ¥ tvers av forskjellige kategorier" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "New users per source in the last 30" -msgstr "Nye brukere per kilde i løpet av de siste 30" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per quarter of the year" -msgstr "Hendelser per kvartal i Ã¥ret" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Heres a quick look at your [[this]]" -msgstr "Her er en rask titt pÃ¥ din [[this]]" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategoryLarge]], top 5" -msgstr "[[this]] per [[GenericCategoryLarge]], topp 5" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Days when [[this.short-name]] were added" -msgstr "Dager nÃ¥r [[this.short-name]] ble lagt til" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Total orders per source" -msgstr "Totalt antall ordre per kilde" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[this]] by quarter of the year" -msgstr "[[this]] etter kvartal i Ã¥ret" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per [[GenericCategoryMedium]]" -msgstr "Hendelser per [[GenericCategoryMedium]]" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per state" -msgstr "Hendelser per status" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Top landing pages" -msgstr "Hovedsider" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Heres a closer look at your [[this]] over time" -msgstr "Her er en nærmere kikk pÃ¥ din [[this]] over tid" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "Sum of [[this]] by [[Country]]" -msgstr "Summen av [[this]] for [[Country]]" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "States that are performing best" -msgstr "Stater som yter best" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Created At by month of the year" -msgstr "Opprettet Dato etter mÃ¥ned i Ã¥ret" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "Sum of [[this]] by [[State]]" -msgstr "Sum av [[this]] for [[State]]" - -#: resources/automagic_dashboards/field/State.yaml -msgid "Sum of [[GenericNumber]] per [[this]]" -msgstr "Sum av [[GenericNumber]] per [[this]]" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events by coordinates" -msgstr "Hendelser etter koordinater" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Top referral pages" -msgstr "Topp sidehenvisninger" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "An exploration of your users to get you started." -msgstr "En utforskning av dine brukere for Ã¥ fÃ¥ deg i gang." - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "An overview of your [[this]] and how its distributed across time, place, and categories." -msgstr "En oversikt av din [[this]] og hvordan det fordeler seg over tid, sted og kategorier." - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Average income per state" -msgstr "Gjennomsnittlig inntekt per stat" - -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "[[this]] by [[GenericCategoryMedium]]" -msgstr "[[this]] etter [[FenericCategoryMedium]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Total transactions" -msgstr "Totalt antall transaksjoner" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] that have joined over time" -msgstr "[[this.short-name]] som har blitt innmeldt over tid" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "The [[this]] by location" -msgstr "[[this]] etter plassering" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per month of the year" -msgstr "Hendelser per mÃ¥ned i Ã¥ret" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] by [[GenericNumber]]" -msgstr "[[this]] etter [[GenericNumber]]" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Quarters when [[this.short-name]] were added" -msgstr "Kvartal nÃ¥r [[this.short-name]] ble lagt til" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "How these [[this.short-name]] are distributed" -msgstr "Hvordan disse [[this.short-name]] er fordelt" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] by [[GenericNumber]]" -msgstr "[[this.short-name]] for [[GenericNumber]]" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Where users are coming from" -msgstr "Hvor brukerne dine kommer fra" - -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "[[this]] comparisons and correlations" -msgstr "[[this]] sammenligninger og korrelasjoner" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Total income" -msgstr "Total inntekt" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Total income per month" -msgstr "Total inntekt per mÃ¥ned" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Number of users per source" -msgstr "Antall brukere per kilde" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Transactions per state" -msgstr "Transaksjoner per status" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "[[this]] by [[Timestamp]]" -msgstr "[[this]] for [[Timestamp]]" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "New users per source in the last 30 days" -msgstr "Nye brukere per kilde i løpet av de siste 30 dagene" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by day of the month" -msgstr "Innmeldingsdato etter dato i mÃ¥neden" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average discount %" -msgstr "Gjennomsnittlig rabatt i %" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Autogenerated metrics about [[GenericTable]]." -msgstr "Automatisk genererte indikatorer for [[GenericTable]]." - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per day of the month" -msgstr "[[this]] etter dag i mÃ¥neden" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Total sessions in each country" -msgstr "Totalt antall sesjoner i hvert land" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions per month of the year" -msgstr "Transaksjoner per mÃ¥ned i Ã¥ret" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per product" -msgstr "Omsetning per produkt" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Users in each country" -msgstr "Brukere i hvert land" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[this]] by hour of the day" -msgstr "[[this]] etter time i døgnet" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events in the last 30 days" -msgstr "Hendelser i løpet av de siste 30 dager" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Transactions per source" -msgstr "Transaksjoner per kilde" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Where youve acquired your users" -msgstr "Hvor du har skaffet brukerne dine fra" - -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare acrosss location" -msgstr "Hvordan de fordeler seg over plasseringer" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "[[this]] per product" -msgstr "[[this]] etter produkt" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per month of the year" -msgstr "[[this]] for hver mÃ¥ned i Ã¥ret" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per country" -msgstr "Etter land" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "A deeper look at how different countries are performing for you." -msgstr "Et dypdykk i hvordan forskjellige land yter for deg." - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per state" -msgstr "Omsetning per stat" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events by [[GenericNumber]]" -msgstr "Hendelser etter [[GenericNumber]]" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Sales per product [[ProductCategoryMedium]]" -msgstr "Omsetning per produkt [[ProductCategoryMedium]]" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "User acquisition by country" -msgstr "Brukertilegnelse etter land" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "[[this]] per source" -msgstr "[[this]] etter kilde" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[this]] by day of the week" -msgstr "[[this]] etter ukedag" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Days of the month when [[this.short-name]] joined" -msgstr "Dager i mÃ¥neden nÃ¥r [[this.short-name]] ble innmeldt" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Heres an overview of the people in your [[this]]" -msgstr "Her er en oversikt over folk i din [[this]]" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "How [[GenericTable]] are distributed across this time field, and if it has any seasonal patterns." -msgstr "Hvordan [[GenericTable]] er fordelt over dette tidsfeltet, og om det er noen sesongvariasjoner." - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/table/TransactionTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Overview" -msgstr "Overblikk" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How this metric is distributed across different categories" -msgstr "Hvordan denne indikatoren er fordelt pÃ¥ tvers av forskjellige kategorier" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] per state" -msgstr "[[this.short-name]] etter status" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Weekdays when [[this.short-name]] joined" -msgstr "Ukedager nÃ¥r [[this.short-name]] ble innmeldt" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Hours when [[this.short-name]] joined" -msgstr "Timer nÃ¥r [[this.short-name]] ble innmeldt" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Total income by month" -msgstr "Total inntekt per mÃ¥ned" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "A breakdown of your [[this]] over time, and its min, max, average and more." -msgstr "En oversikt over dine [[this]] over tid, og dets minsteverdi, maksverdi, gjennomsnittsverdi og mer." - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Average quantity per state" -msgstr "Gjennomsnittlig antall per status" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare by across different numbers" -msgstr "Hvordan de varierer pÃ¥ tvers av forskjellige tall" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "New users per country in the last 30 days" -msgstr "Nye brukere per land i løpet av de siste 30 dagene" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions over time" -msgstr "Transaksjoner over tid" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategorySmall]]" -msgstr "[[this]] per [[GenericCategorySmall]]" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Some breakdown" -msgstr "Noen oversikt" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "Average of [[this]] by [[State]]" -msgstr "Gjennomsnittet av [[this]] for [[State]]" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions per quarter of the year" -msgstr "Transaksjoner per kvartal i Ã¥ret" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "By coordinates" -msgstr "Etter koordinater" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Heres a closer look at your [[this]] by products" -msgstr "Her er en nærmere kikk pÃ¥ dine [[this]] etter produkter" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per quarter of the year" -msgstr "[[this]] per kvartal i Ã¥ret" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Heres an overview of your [[this]] data from Google Analytics" -msgstr "Her er en oversikt over dine [[this]]-data fra Google Analytics" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Quarters when [[this.short-name]] joined" -msgstr "Kvartaler nÃ¥r [[this.short-name]] ble innmeldt" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "New [[this.short-name]] in the last 30 days" -msgstr "Nye [[this.short-name]] i løpet av de siste 30 dager" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Total sessions by desktop, mobile, or tablet" -msgstr "Totalt antall sesjoner etter skrivebord, mobil, eller nettbrett" - -#: resources/automagic_dashboards/table/example/indepth.yaml -msgid "Indepth example" -msgstr "Detaljert eksempel" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Average income per source" -msgstr "Gjennomsnittlig inntekt per kilde" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[Timestamp]] by day of week" -msgstr "[[Timestamp]] etter ukedag" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/question/GenericQuestion.yaml -msgid "Heres a closer look at your [[this]]" -msgstr "Her er en nærmere kikk pÃ¥ dine [[this]]" - -#: resources/automagic_dashboards/field/Country.yaml -msgid "Heres a closer look at your [[this]] field" -msgstr "Her er en nærmere kikk pÃ¥ dine [[this]]-felt" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Summary" -msgstr "Oppsummering" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "How the [[this]] is distributed geographically" -msgstr "Hvordan [[this]] er fordelt geografisk" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "The pages with the most pageviews" -msgstr "Sidene med flest sidevisninger" - -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "How [[Number1]] is correlated with [[Number2]]" -msgstr "Hvordan [[Number1]] er korrelert med [[Number2]]" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Top 10 states by sales in the last 30 days" -msgstr "Topp 10 stater etter omsetning i løpet av de siste 30 dager" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Top 10 states by sales" -msgstr "Topp 10 stater etter omsetning" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[Timestamp]]" -msgstr "[[Timestamp]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Where these transactions happened" -msgstr "Hvor disse transaksjonene skjedde" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Top 10 countries by sales" -msgstr "Topp 10 land etter omsetning" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Sales by state" -msgstr "Omsetning etter stat" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Where most of your sessions originate from" -msgstr "Hvor de fleste av dine sesjoner kom fra" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Top acquisition channels" -msgstr "De viktigste tilegnelseskanaler" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "These [[this.short-name]] across time" -msgstr "Disse [[this.short-name]] over tid" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average quantity" -msgstr "Gjennomsnittlig antall" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per source" -msgstr "Omsetning per kilde" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Average income per country" -msgstr "Gjennomsnittlig inntekt per land" - -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "How [[this]] is distributed" -msgstr "Hvordan [[this]] er distribuert" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Distinct [[FK]]" -msgstr "Unike [[FK]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "How these transactions are distributed" -msgstr "Hvordan disse transaksjonene er fordelt" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per state" -msgstr "Per stat" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "Count of [[GenericCategoryMedium]] by [[this]]" -msgstr "Antall [[GenericCategoryMedium]] for [[this]]" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/TransactionTable.yaml -#: resources/automagic_dashboards/table/UserTable.yaml -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "A look at your [[this]]" -msgstr "Et blikk pÃ¥ dine [[this]]" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "[[GenericNumber]] by [[this]]" -msgstr "[[GenericNumber]] etter [[this]]" - -#: resources/automagic_dashboards/field/Country.yaml -msgid "Sum of [[GenericNumber]] by [[this]]" -msgstr "Summen av [[GenericNumber]] etter [[this]]" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "A look at your [[this]] table" -msgstr "Et blikk pÃ¥ din [[this]]-tabell" - -#: resources/automagic_dashboards/field/State.yaml -msgid "How many [[GenericTable]] there are per state, and how each state is represented across other categories." -msgstr "Hvor mange [[GenericTable]] det er per status, og hvordan hver status er representert pÃ¥ tvers av kategorier." - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Most-viewed pages" -msgstr "Mest viste sider" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Example exploration" -msgstr "Eksempelutforskning" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Sales vs. rating" -msgstr "Omsetning vs. Vurdering" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per hour of the day" -msgstr "[[this]] per time i døgnet" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Where your [[this.short-name]] are" -msgstr "Hvor dine [[this.short-name]] er" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "These are the same for all your [[this.short-name]]" -msgstr "Disse er det samme for alle dine [[this.short-name]]" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events by different categories" -msgstr "Hendelser for forskjellige kategorier" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Where these [[this.short-name]] are" -msgstr "Hvor disse [[this.short-name]] er" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Over time" -msgstr "Over tid" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "A summary of the events in your [[this]] table" -msgstr "En oppsummering av hendelsene i din [[this]]-tabell" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Transactions per source over time" -msgstr "Transaksjoner per kilde over tid" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "How the [[this]] is distributed" -msgstr "Hvordan [[this]] er fordelt" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Total income per source" -msgstr "Total inntekt per kilde" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Total [[this.short-name]]" -msgstr "Total [[this.short-name]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Some metrics we found about your transactions." -msgstr "Noen indikatorer vi fant som gjelder dine transaksjoner." - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "How your different products are performing." -msgstr "Hvordan dine forskjellige produkter yter." - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Where these events are happening" -msgstr "Hvor disse hendelsene skjer" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Which US states are bringing you the most business." -msgstr "Hvilken stat i USA fører til mest virksomhet." - -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare across time" -msgstr "Hvordan de varierer over tid." - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average transaction income per month" -msgstr "Gjennomsnittlig inntekt for transaksjoner per mÃ¥ned" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average quantity per month" -msgstr "Gjennomsnittlig antall per mÃ¥ned" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "Seasonal patterns in the [[this]]" -msgstr "Sesongvariasjoner i [[this]]" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events over time" -msgstr "Hendelser over tid" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Orders and income per source" -msgstr "Bestillinger og inntekt per kilde" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions per hour of the day" -msgstr "Transaksjoner per time i døgnet" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Where most of your traffic is coming from." -msgstr "Hvor den meste av trafikken kommer fra." - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Heres a quick look at the [[this]]" -msgstr "Her er en rask kikk pÃ¥ [[this]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "It looks like your [[this]] has transactions, so heres a look at them" -msgstr "Det ser ut som at [[this]] inneholder transaksjoner, sÃ¥ her er en rask titt pÃ¥ dem" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average discount per month" -msgstr "Gjennomsnittlig rabatt per mÃ¥ned" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by month of the year" -msgstr "[[Timestamp]] for mÃ¥ned i Ã¥ret" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategorySmall]] over time" -msgstr "[[this]] per [[GenericCategorySmall]] over tid" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Distribution by coordinates" -msgstr "Fordeling over koordinater" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Sales by source" -msgstr "Omsetning etter kilde" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales for each product category" -msgstr "Omsetning for hver produktkategori" - -#: resources/automagic_dashboards/question/GenericQuestion.yaml -msgid "A closer look at the metrics and dimensions used in this saved question." -msgstr "En nærmere titt pÃ¥ indikatorene og dimensjonene som er brukt i dette lagrede spørsmÃ¥let." - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] per [[GenericCategoryMedium]]" -msgstr "[[this.short-name]] per [[GenericCategoryMedium]]" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Sales per product [[ProductCategoryLarge]]" -msgstr "Omsetning per produkt [[ProductCategoryLarge]]" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Average quantity per country" -msgstr "Gjennomsnittlig antall per land" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] per [[GenericCategoryLarge]]" -msgstr "[[this.short-name]] per [[GenericCategoryLarge]]" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Heres a closer look at your [[this]] per source" -msgstr "Her er en nærmere kikk pÃ¥ dine [[this]] per kilde" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per day of the month" -msgstr "Hendelser per dag i mÃ¥neden" - -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "If youre into correlations, this is the x-ray for you." -msgstr "Hvis du liker korrelasjoner, sÃ¥ er dette X-Rayen for deg." - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions by Country" -msgstr "Sesjoner etter Land" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Some interesting metrics about your GA stats to get you started." -msgstr "Noen interessante indikatorer om din GA-statistikk for Ã¥ la deg komme i gang." - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per state" -msgstr "[[this]] per stat" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by quarter of the year" -msgstr "[[Timestamp]] etter kvartal i Ã¥ret" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How its distributed across time and other categories." -msgstr "Hvordan det er fordelt over tid og over andre kategorier" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "A look at your events over time and by several categories." -msgstr "En titt pÃ¥ dine hendelser over tid og over andre kategorier" - -#: resources/automagic_dashboards/field/State.yaml -msgid "[[GenericTable]] per [[this]]" -msgstr "[[GenericTable]] per [[this]]" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Average quantity per source" -msgstr "Gjennomsnittlig antall per kilde" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Top 5 per category" -msgstr "Topp 5 per kategori" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per day of the week" -msgstr "Hendelser per ukedag" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "New [[this.short-name]] per month" -msgstr "Nye [[this.short-name]] per mÃ¥ned" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Top performers" -msgstr "Toppytere" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Transactions in the last 30 days" -msgstr "Transaksjoner i løpet av de siste 30 dagene" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[GenericTable]] by [[this]]" -msgstr "[[GenericTable]] for [[this]]" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Overview of your [[this]] data from Google Analytics" -msgstr "Oversikt over dine [[this]]-data fra Google Analytics" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Created At by hour of the day" -msgstr "Opprettet Dato etter time pÃ¥ døgnet" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Sales by month" -msgstr "Omsetning per mÃ¥ned" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "How the [[this]] is distributed across categories" -msgstr "Hvordan [[this]] er fordelt pÃ¥ tvers av kategorier" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[Timestamp]] by month of year" -msgstr "[[Timestamp]] etter mÃ¥ned i Ã¥ret" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "How many total sessions vs. how many individual users you had each day." -msgstr "Hvor mange sesjoner totalt vs. hvor mange individuelle brukere du hadde hver dag." - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How this metric is distributed across different numbers" -msgstr "Hvordan denne indikatoren er fordelt pÃ¥ tvers av forskjellige nummer" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions by page where the session began" -msgstr "Sesjoner etter side hvor sesjonen startet" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "Distinct values" -msgstr "Unike verdier" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Hours when [[this.short-name]] were added" -msgstr "Timer nÃ¥r [[this.short-name]] ble lagt til" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by day of the week" -msgstr "[[Timestamp]] etter ukedag" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[GenericNumber]] over time" -msgstr "[[GenericNumber]] over tid" - -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "Heres an overview of your [[this]]" -msgstr "Her er en oversikt over dine [[this]]" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] by coordinates" -msgstr "[[this.short-name]] etter koordinater" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Heres a closer look at your [[this]] per state" -msgstr "Her er en nærmere titt pÃ¥ dine [[this]] per stat" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Created At by day of the month" -msgstr "Opprettet Dato etter dag i mÃ¥neden" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales by coordinates" -msgstr "Omsetning etter koordinater" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "New [[this.short-name]] over time" -msgstr "Nye [[this.short-name]] over tid" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by hour of the day" -msgstr "Innmeldingsdato etter time i døgnet" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[Timestamp]] by hour of day" -msgstr "[[Timestamp]] etter time i døgnet" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions and unique users per day" -msgstr "Sesjoner og unike brukere per dag" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per [[GenericCategoryLarge]]" -msgstr "Hendelser per [[GenericCategoryLarge]]" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "How they compare by distribution" -msgstr "Hvordan de varierer etter distribusjon" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Income per country" -msgstr "Inntekt per land" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Heres a closer look at your [[this]] per country" -msgstr "Her er en nærmere titt pÃ¥ dine [[this]] per land" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Sales by product [[ProductCategory]]" -msgstr "Salg etter produkt [[ProductCategory]]" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategoryLarge]], bottom 5" -msgstr "[[this]] per [[GenericCategoryLarge]], siste 5" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] added in the last 30 days" -msgstr "[[this.short-name]] lagt til i løpet av de siste 30 dagene" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per [[Source]]" -msgstr "Per [[Source]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average item quantity per month" -msgstr "Gjennomsnittlig antall ting per mÃ¥ned" - -#: resources/automagic_dashboards/field/Country.yaml -msgid "The number of [[GenericTable]] per country, and how each country is represented in different categories." -msgstr "Antall [[GenericTable]] per land, og hvordan hvert land er representert i forskjellige kategorier." - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per day of the week" -msgstr "[[this]] per ukedag" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Average qunatity per source" -msgstr "Gjennomsnittlig antall per kilde" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] by [[Timestamp]]" -msgstr "[[this.short-name]] for [[Timestamp]]" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "Summary statistics" -msgstr "Sammenfattet statistikk" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per month" -msgstr "Omsetning per mÃ¥ned" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[GenericNumber]] by join date" -msgstr "[[GenericNumber]] etter innmeldingsdato" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "Average of [[this]] by [[Country]]" -msgstr "Gjennomsnittet av [[this]] for [[Country]]" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[this]] over time" -msgstr "[[this]] over tid" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by day of the week" -msgstr "Innmeldingsdato etter ukedag" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "We crunched the numbers for your [[this]]" -msgstr "Vi knuste tall for din [[this]]" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Months when [[this.short-name]] joined" -msgstr "MÃ¥neder nÃ¥r [[this.short-name]] ble innmeldt" - -#: src/metabase/api/geojson.clj -msgid "Unable to parse resource `{0}` as JSON" -msgstr "Ressursen `{0}` kan ikke tolkes som JSON" - -#: src/metabase/api/geojson.clj -msgid "Unable to find JSON via relative path `{0}`" -msgstr "Finner ikke JSON via den relative stien `{0}`" - -#: src/metabase/api/geojson.clj -msgid "Connection to host timed out for URL `{0}`" -msgstr "Tidsavbrudd for tilkobling til vert pÃ¥ URL `{0}`" - -#: src/metabase/api/geojson.clj -msgid "Unable to connect to unknown host at URL `{0}`" -msgstr "Klarte ikke Ã¥ koble til ukjent vert pÃ¥ URL `{0}`" - -#: src/metabase/api/geojson.clj -msgid "Unable to connect to host at URL `{0}`" -msgstr "Klarte ikke Ã¥ koble til vert pÃ¥ URL `{0}`" - -#: src/metabase/api/geojson.clj -msgid "Connection refused by host at for URL `{0}`" -msgstr "Tilkobling nektet av vert for URL `{0}`" - -#: src/metabase/api/geojson.clj -msgid "Unable to retrieve resource at URL `{0}`" -msgstr "Klarte ikke Ã¥ motta ressurs pÃ¥ URL `{0}`" - -#: src/metabase/api/geojson.clj -msgid "Unable to parse resource at URL `{0}` as JSON" -msgstr "Klarte ikke Ã¥ tolke ressursen pÃ¥ URL `{0}` som JSON" - -#: src/metabase/api/session.clj -msgid "Problem connecting to LDAP server, will fall back to local authentication: {0}" -msgstr "Problem med tilkobling til LDAP-server, faller tilbake pÃ¥ lokal autentisering: {0}" - -#: src/metabase/driver/bigquery.clj -msgid "BigQuery statements can''t be parameterized!" -msgstr "BigQuery-uttrykk kan ikke parametriseres!" - -#: src/metabase/driver/druid/query_processor.clj -msgid "WARNING: Druid does not allow limitSpec in time series queries. Ignoring the LIMIT clause." -msgstr "ADVARSEL: Druid tillater ikke limitSpec i tidsseriespørringer. Ignorerer LIMIT-klausulen." - -#: src/metabase/driver/snowflake.clj -msgid "Invalid Snowflake connection details: missing DB name." -msgstr "Ugyldig Snowflake-tilkoblingsdetaljer: manglende DB-navn." - -#: src/metabase/email/messages.clj -msgid "We’d love your feedback." -msgstr "Vi vil sette pris pÃ¥ din tilbakemelding." - -#: src/metabase/email/messages.clj -msgid "It looks like Metabase wasn’t quite a match for you." -msgstr "Det ser ut som Metabase ikke fungerte tilfredsstillende for deg." - -#: src/metabase/email/messages.clj -msgid "Would you mind taking a fast 5 question survey to help the Metabase team understand why and make things better in the future?" -msgstr "Har du lyst til Ã¥ svare pÃ¥ 5 raske spørsmÃ¥l for Ã¥ hjelpe Metabase-teamet med Ã¥ forstÃ¥ hvorfor, og gjøre ting bedre i fremtiden?" - -#: src/metabase/email/messages.clj -msgid "We hope you''ve been enjoying Metabase." -msgstr "Vi hÃ¥per du likte Metabase." - -#: src/metabase/email/messages.clj -msgid "Would you mind taking a fast 6 question survey to tell us how it’s going?" -msgstr "Kunne du tenke deg Ã¥ svare pÃ¥ en kort undersøkelse med 6 spørsmÃ¥l for Ã¥ fortelle oss hvordan det gÃ¥r?" - -#: src/metabase/email/messages.clj -msgid "{0} created a Metabase account" -msgstr "{0} opprettet en konto til Metabase" - -#: src/metabase/email/messages.clj -msgid "{0} accepted their Metabase invite" -msgstr "{0} aksepterte sin invitasjon til Metabase" - -#: src/metabase/email/messages.clj -msgid "[Metabase] Password Reset Request" -msgstr "[Metabase] Forespørsel om tilbakestilling av passord" - -#: src/metabase/email/messages.clj -msgid "[Metabase] Notification" -msgstr "[Metabase] Varsel" - -#: src/metabase/email/messages.clj -msgid "[Metabase] Help make Metabase better." -msgstr "[Metabase] Hjelp Metabase Ã¥ bli bedre." - -#: src/metabase/email/messages.clj -msgid "[Metabase] Tell us how things are going." -msgstr "[Metabase] Fortell oss hvordan ting gÃ¥r." - -#: src/metabase/mbql/util.clj -msgid "Error: query''s source query has not been resolved. You probably need to `preprocess` the query first." -msgstr "Feil: spørringens kildespørring har ikke blitt løst. Du trenger sannsynligvis Ã¥ `preprosessere` spørringen først." - -#: src/metabase/models/params.clj -msgid "Don't know what to do with:" -msgstr "Jeg vet ikke hva jeg skal gjøre med:" - -#: src/metabase/models/params.clj -msgid "Don't know how to wrap:" -msgstr "Jeg vet ikke hvordan man kan pakke inn:" - -#: src/metabase/public_settings.clj -msgid "Failed setting `query-caching-max-kb` to {0}." -msgstr "Klarte ikke Ã¥ sette `query-caching-max-kb` til {0}" - -#: src/metabase/public_settings.clj -msgid "Values greater than {1} are not allowed." -msgstr "Verdier større enn {1} er ikke tillatt." - -#: src/metabase/query_processor/store.clj -msgid "Database {0} does not exist." -msgstr "Databasen {0} finnes ikke." - -#: src/metabase/query_processor/store.clj -msgid "Error: Database is not present in the Query Processor Store." -msgstr "Feil: Databasen finnes ikke i Query Processor Store." - -#: src/metabase/util/embed.clj -msgid "Invalid embedding-secret-key! Secret key must be a hexadecimal-encoded 256-bit key (i.e., a 64-character string)." -msgstr "Ugyldig embedding-secret-key! Den hemmelige nøkkelen mÃ¥ være en heksadesimalkodet 256-bit-nøkkel (dvs. en streng pÃ¥ 64 tegn)." - -#: src/metabase/util/embed.clj -msgid "JWT is missing `alg`." -msgstr "JWT mangler `alg`." - -#: src/metabase/util/embed.clj -msgid "JWT `alg` cannot be `none`." -msgstr "JWT `alg` kan ikke være `none`." - -#: src/metabase/util/embed.clj -msgid "The embedding secret key has not been set." -msgstr "Den hemmelige innebyggingsnøkkelen har ikke blitt satt." - -#: src/metabase/util/embed.clj -msgid "Token is missing value for keypath" -msgstr "Token mangler verdi for keypath" - -#: resources/automagic_dashboards/table/example/indepth.yaml -msgid "In-depth example" -msgstr "Detaljert eksempel" - -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:29 -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:17 -msgid "Key" -msgstr "Nøkkel" - -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:30 -msgid "Class" -msgstr "Klasse" - -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:32 -msgid "Triggers" -msgstr "Triggere" - -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:48 -msgid "View triggers" -msgstr "Vis triggere" - -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:85 -msgid "Scheduler Info" -msgstr "Planleggingsinfo" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:20 -msgid "Priority" -msgstr "Prioritet" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:21 -msgid "Last Fired" -msgstr "Sist kjørt" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:22 -msgid "Next Fire Time" -msgstr "Neste kjøringstid" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:23 -msgid "Start Time" -msgstr "Start tid" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:24 -msgid "End Time" -msgstr "Slutt tid" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:25 -msgid "Final Fire Time" -msgstr "Siste kjøringstid" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:26 -msgid "May Fire Again?" -msgstr "Kan kjøres igjen?" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:83 -msgid "Triggers for {0}" -msgstr "Triggere for {0}" - -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 -msgid "Tasks" -msgstr "Oppgaver" - -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 -msgid "Jobs" -msgstr "Jobber" - -#: frontend/src/metabase/components/CollectionLanding.jsx:739 -msgid "Duplicated {0}" -msgstr "Duplisert {0}" - -#: frontend/src/metabase/components/EntityItem.jsx:57 -msgid "Duplicate this item" -msgstr "Dupliser denne" - -#: frontend/src/metabase/components/EntityItem.jsx:63 -msgid "Archive this item" -msgstr "Arkiver denne" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 -msgid "Duplicate dashboard" -msgstr "Dupliser tavle" - -#: frontend/src/metabase/entities/containers/EntityCopyModal.jsx:16 -msgid "Duplicate \"{0}\"" -msgstr "Dupliser \"{0}\"" - -#: frontend/src/metabase/entities/containers/EntityCopyModal.jsx:21 -#: frontend/src/metabase/entities/containers/EntityCopyModal.jsx:26 -msgid "Duplicate" -msgstr "Dupliser" - -#: frontend/src/metabase/lib/query_time.js:115 -msgid "Tomorrow" -msgstr "Imorgen" - -#: frontend/src/metabase/lib/query_time.js:129 -#: frontend/src/metabase/lib/query_time.js:143 -msgid "This {0}" -msgstr "Dette {0}" - -#: frontend/src/metabase/lib/query_time.js:132 -msgid "Next {0}" -msgstr "Neste {0}" - -#: frontend/src/metabase/lib/query_time.js:135 -msgid "Previous {0}" -msgstr "Sist {0}" - -#: frontend/src/metabase/lib/query_time.js:139 -msgid "Previous {0} {1}" -msgstr "Sist {0} {1}" - -#: frontend/src/metabase/lib/query_time.js:141 -msgid "Next {0} {1}" -msgstr "Neste {0} {1}" - -#: frontend/src/metabase/lib/query_time.js:171 -msgid "Now" -msgstr "NÃ¥" - -#: frontend/src/metabase/lib/query_time.js:174 -msgid "{0} {1} ago" -msgstr "{0} {1} siden" - -#: frontend/src/metabase/lib/query_time.js:175 -msgid "{0} {1} from now" -msgstr "{0} {1} fra nÃ¥" - -#: frontend/src/metabase/lib/query_time.js:190 -msgid "Default period" -msgid_plural "Default periods" -msgstr[0] "Standard periode" -msgstr[1] "Standard perioder" - -#: frontend/src/metabase/lib/query_time.js:206 -msgid "Minute of hour" -msgid_plural "Minutes of hour" -msgstr[0] "Minutt i time" -msgstr[1] "Minutter av time" - -#: frontend/src/metabase/lib/query_time.js:208 -msgid "Hour of day" -msgid_plural "Hours of day" -msgstr[0] "Time pÃ¥ dagen" -msgstr[1] "Timer i dagen" - -#: frontend/src/metabase/lib/query_time.js:210 -msgid "Day of week" -msgid_plural "Days of week" -msgstr[0] "Dag i uke" -msgstr[1] "Dager i uke" - -#: frontend/src/metabase/lib/query_time.js:212 -msgid "Day of month" -msgid_plural "Days of month" -msgstr[0] "Dag i mÃ¥ned" -msgstr[1] "Dager i mÃ¥ned" - -#: frontend/src/metabase/lib/query_time.js:214 -msgid "Day of year" -msgid_plural "Days of year" -msgstr[0] "Dag i Ã¥r" -msgstr[1] "Dager i Ã¥r" - -#: frontend/src/metabase/lib/query_time.js:216 -msgid "Week of year" -msgid_plural "Weeks of year" -msgstr[0] "Uke i Ã¥r" -msgstr[1] "Uker i Ã¥r" - -#: frontend/src/metabase/lib/query_time.js:218 -msgid "Month of year" -msgid_plural "Months of year" -msgstr[0] "MÃ¥ned i Ã¥r" -msgstr[1] "MÃ¥neder i Ã¥r" - -#: frontend/src/metabase/lib/query_time.js:220 -msgid "Quarter of year" -msgid_plural "Quarters of year" -msgstr[0] "Kvartal i Ã¥r" -msgstr[1] "Kvartaler i Ã¥r" - -#: frontend/src/metabase-lib/lib/queries/structured/Filter.js:257 -#: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:62 -#: frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget.jsx:58 -#: frontend/src/metabase/query_builder/components/Filter.jsx:82 -msgid "{0} selection" -msgid_plural "{0} selections" -msgstr[0] "{0} valgt" -msgstr[1] "{0} valgte" - -#: frontend/src/metabase/parameters/components/widgets/DateQuarterYearWidget.jsx:11 -msgid "[Q]Q" -msgstr "[Q]Q" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:28 -msgid "This" -msgstr "Dette" - -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 -msgid "Invalid" -msgstr "Ukorrekt" - -#: frontend/src/metabase/query_builder/components/filters/pickers/SpecificDatePicker.jsx:137 -msgid "Add a time" -msgstr "Legg til tid" - -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 -msgid "Nothing to compare for the previous {0}." -msgstr "Ingenting Ã¥ sammenligne siden {0}." - -#: frontend/src/metabase-lib/lib/Dimension.js:678 -msgid "by {0}" -msgstr "etter {0}" - -#: src/metabase/api/database.clj -msgid "value must be a valid database engine." -msgstr "verdi mÃ¥ være en gyldig database motor." - -#: src/metabase/api/geojson.clj -msgid "Connection refused by host for URL `{0}`" -msgstr "Tilkobling nektet av vert for nettlink `{0}`" - -#: src/metabase/db.clj -msgid "Warning: Postgres connection string with `ssl=true` detected." -msgstr "Advarsel: Postgres koblingsstreng med `ssl=true` funnet." - -#: src/metabase/db.clj -msgid "You may need to add `?sslmode=require` to your application DB connection string." -msgstr "Det kan hende du mÃ¥ legge inn `?sslmode=require` i koblingsstreng til databasen." - -#: src/metabase/db.clj -msgid "If Metabase fails to launch, please add it and try again." -msgstr "Hvis Metabase feiler ved oppstart, vennligst legg det inn og prøv igjen." - -#: src/metabase/db.clj -msgid "See https://github.com/metabase/metabase/issues/8908 for more details." -msgstr "Se http://github.com/metabase/metabase/issues/8908 for detaljer." - -#: src/metabase/db.clj -msgid "WARNING: Using Metabase with an H2 application database is not recomended for production deployments." -msgstr "ADVARSEL: Bruk av H2 applikasjonsdatabase med Metabase er ikke anbefalt for produksjon." - -#: src/metabase/db.clj -msgid "For production deployments, we highly recommend using Postgres, MySQL, or MariaDB instead." -msgstr "For produksjon, anbefaler vi bruk av Postgres, MySQL eller MariaDB istedenfor." - -#: src/metabase/db.clj -msgid "If you decide to continue to use H2, please be sure to back up the database file regularly." -msgstr "Hvis du avgjør Ã¥ bruke H2 for produksjon, vennligst bekreft at backup databasefilen jevnlig." - -#: src/metabase/db.clj -msgid "See https://metabase.com/docs/latest/operations-guide/start.html#migrating-from-using-the-h2-database-to-mysql-or-postgres for more information." -msgstr "Se https://metabase.com/docs/latest/operations-guide/start.html#migrating-from-using-the-h2-database-to-mysql-or-postgres for mer informasjon" - -#: src/metabase/db.clj -msgid "Unable to connect to Metabase {0} DB." -msgstr "Kan ikke koble til Metabase {0} DB." - -#: src/metabase/db/migrations.clj -msgid "Error adding legacy SQL directive to BigQuery saved Question" -msgstr "" - -#: src/metabase/driver.clj -msgid "Failed to notify {0} Database {1} updated" -msgstr "" - -#: src/metabase/driver.clj -msgid "Loading driver {0} {1}" -msgstr "Laster inn driver {0} {1}" - -#: src/metabase/driver.clj -msgid "Load driver {0}" -msgstr "Last inn driver {0}" - -#: src/metabase/driver.clj -msgid "Driver not registered after loading: {0}" -msgstr "Driver ikke registrert etter innlasting: {0}" - -#: src/metabase/driver.clj -msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." -msgstr "Feil: prøver Ã¥ endre {0} egenskapen `:abstract?`fra {1} til {2}" - -#: src/metabase/driver.clj -msgid "Registered abstract driver {0}" -msgstr "Registrerte abstrakt driver {0}" - -#: src/metabase/driver.clj -msgid "Registered driver {0}" -msgstr "Registrerer driver {0}" - -#: src/metabase/driver.clj -msgid "(parents: {0})" -msgstr "(foreldre: {0})" - -#: src/metabase/driver.clj -msgid "Initializing driver {0}..." -msgstr "Laster driver {0}..." - -#: src/metabase/driver.clj -msgid "Reason:" -msgstr "Ã…rsak:" - -#: src/metabase/driver.clj -msgid "Invalid driver feature: {0}" -msgstr "Ugyldig driver funksjon: {0}" - -#: src/metabase/driver/sql/query_processor.clj -msgid "Invalid HoneySQL form:" -msgstr "Ugyldig HoneySQL form:" - -#: src/metabase/driver/sql_jdbc/connection.clj -msgid "Closing connection pool for database {0} ..." -msgstr "Avslutter koblingsbasseng for database {0} ..." - -#: src/metabase/driver/util.clj -msgid "Error loading namespace" -msgstr "Lastingsfeil av navnplass" - -#: src/metabase/events.clj -msgid "Starting events listener:" -msgstr "Starter hendelseslytter" - -#: src/metabase/events.clj -msgid "Unexpected error listening on events" -msgstr "Ukjent feil ved lytting etter hendelser" - -#: src/metabase/events/sync_database.clj -msgid "Error syncing Database {0}" -msgstr "Feil ved synkronisering av database {0}" - -#: src/metabase/events/sync_database.clj -msgid "Failed to process sync-database event." -msgstr "Kunne ikke kjøre sync-database" - -#: src/metabase/mbql/util.clj -msgid "Bad nested-query-level: query does not have a source query" -msgstr "" - -#: src/metabase/metabot/command.clj -msgid "I don''t know how to `{0}`." -msgstr "Jeg vet ikke hvordan jeg skal gjøre dette `{0}`" - -#: src/metabase/metabot/command.clj -msgid "Here''s what I can do: " -msgstr "Her er det jeg kan gjøre: " - -#: src/metabase/metabot/slack.clj -msgid "Error in Metabot command" -msgstr "Feil i Metabot kommando" - -#: src/metabase/metabot/websocket.clj -msgid "Websocket associated with this Slack event is different from the websocket we're currently using." -msgstr "" - -#: src/metabase/models/field_values.clj -msgid "FieldValues for Field {0} remain unchanged. Skipping..." -msgstr "" - -#: src/metabase/models/interface.clj -msgid "Unable to normalize:" -msgstr "Ikke mulig Ã¥ normalisere" - -#: src/metabase/models/params.clj -msgid "Could not find matching Field ID for target:" -msgstr "" - -#: src/metabase/plugins.clj -msgid "Metabase does not have permissions to write to plugins directory {0}" -msgstr "Metabase har ikke tilgang til Ã¥ skrive til mappen med plugins {0}" - -#: src/metabase/plugins.clj -msgid "Metabase cannot use the plugins directory {0}" -msgstr "Metabase kan ikke bruke mappen med plugins {0}" - -#: src/metabase/plugins.clj -msgid "Please make sure the directory exists and that Metabase has permission to write to it." -msgstr "Kontroller at mappen eksisterer og at Metabase har tilgang til Ã¥ skrive" - -#: src/metabase/plugins.clj -msgid "You can change the directory Metabase uses for modules by setting the environment variable MB_PLUGINS_DIR." -msgstr "Du kan endre mappen Metabase bruker for moduler ved Ã¥ sette miljøvariabelen MB_PLUGINS_DIR." - -#: src/metabase/plugins.clj -msgid "Falling back to a temporary directory for now." -msgstr "Faller tilbake til en midlertidig mappe" - -#: src/metabase/plugins.clj -msgid "Metabase cannot write to temporary directory. Please set MB_PLUGINS_DIR to a writable directory and restart Metabase." -msgstr "Metbase kan ikke skrive til den midlertidige mappen. Sett MB-PLUGINS_DIR til en mappe det kan skrives til og start Metabase pÃ¥ nytt" - -#: src/metabase/plugins.clj -msgid "spark-deps.jar is no longer needed by Metabase 1.0+. You can delete it from the plugins directory." -msgstr "spark-deps.jar er ikke lenger pÃ¥krevd av Metabase 1.0+. Du kan slette den fra plugin-mappen." - -#: src/metabase/plugins.clj -msgid "Failied to initialize plugin {0}" -msgstr "Kunne ikke initialisere plugin {0}" - -#: src/metabase/plugins.clj -msgid "Loading plugins in {0}..." -msgstr "Laster inn plugins fra {0}..." - -#: src/metabase/plugins/classloader.clj -msgid "Using Clojure base loader as shared context classloader: {0}" -msgstr "" - -#: src/metabase/plugins/classloader.clj -msgid "Setting current thread context classloader to shared classloader {0}..." -msgstr "" - -#. it's important that we deref the promise again here instead of using the one we just created because it is -#. possible thru a race condition that somebody else delivered the promise before we did; in that case, -#. Clojure ignores subsequent calls to `deliver`. Dereffing the promise guarantees that we'll get the actual -#. value of it rather than one that ends up getting discarded -#: src/metabase/plugins/classloader.clj -msgid "Setting current thread context classloader to NEWLY CREATED classloader {0}..." -msgstr "" - -#: src/metabase/plugins/classloader.clj -msgid "Added URL {0} to classpath" -msgstr "Legg inn nettlink {0} til klassebane" - -#: src/metabase/plugins/dependencies.clj -msgid "Plugin {0} declares a dependency that Metabase does not understand: {1}" -msgstr "" - -#: src/metabase/plugins/dependencies.clj -msgid "Refer to the plugin manifest reference for a complete list of valid plugin dependencies:" -msgstr "" - -#: src/metabase/plugins/dependencies.clj -msgid "Metabase cannot initialize plugin {0} due to required dependencies." -msgstr "" - -#: src/metabase/plugins/dependencies.clj -msgid "Class not found: {0}" -msgstr "Klasse ikke funnet: {0}" - -#: src/metabase/plugins/dependencies.clj -msgid "Plugin ''{0}'' depends on plugin ''{1}''" -msgstr "Plugin \"{0}\" har krav i plugin \"{1}\"" - -#: src/metabase/plugins/dependencies.clj -msgid "{0} dependency {1} satisfied? {2}" -msgstr "" - -#: src/metabase/plugins/dependencies.clj -msgid "Plugins with unsatisfied deps: {0}" -msgstr "" - -#: src/metabase/plugins/files.clj -msgid "Extract file {0} -> {1}" -msgstr "Pakk ut filen {0} -> {1}" - -#: src/metabase/plugins/files.clj -msgid "Resource does not exist." -msgstr "Ressursen eksisterer ikke." - -#: src/metabase/plugins/init_steps.clj -msgid "Loading plugin namespace {0}..." -msgstr "Laster inn plugin navneklasse {0}..." - -#: src/metabase/plugins/initialize.clj -msgid "Dependencies satisfied; these plugins will now be loaded: {0}" -msgstr "Avhengigheter godkjent; disse plugin vil bli lastet inn: {0}" - -#: src/metabase/plugins/jdbc_proxy.clj -msgid "Registering JDBC proxy driver for {0}..." -msgstr "Registrerer JDBC proxy driver for {0}..." - -#: src/metabase/plugins/jdbc_proxy.clj -msgid "Deregistering original JDBC driver {0}..." -msgstr "Avregistrerer original JDBC driver {0}" - -#: src/metabase/plugins/lazy_loaded_driver.clj -msgid "Default connection property {0} does not exist." -msgstr "" - -#: src/metabase/plugins/lazy_loaded_driver.clj -msgid "Invalid connection property {0}: not a string or map." -msgstr "" - -#. ok, do the init steps listed in the plugin mainfest -#: src/metabase/plugins/lazy_loaded_driver.clj -msgid "Load lazy loading driver {0}" -msgstr "" - -#: src/metabase/plugins/lazy_loaded_driver.clj -msgid "Cannot initialize plugin: missing required property `driver-name`" -msgstr "Kan ikke initialisere plugin: mangler nødvendig egenskap `driver-name`" - -#: src/metabase/plugins/lazy_loaded_driver.clj -msgid "Warning: plugin manifest for {0} does not include connection properties" -msgstr "" - -#. finally, register the Metabase driver -#: src/metabase/plugins/lazy_loaded_driver.clj -msgid "Registering lazy loading driver {0}..." -msgstr "" - -#: src/metabase/pulse.clj -msgid "Error running query for Card {0}" -msgstr "Feil ved kjøring av spørring for Card {0}" - -#: src/metabase/pulse/render/datetime.clj -msgid "Last week" -msgstr "Forrige uke" - -#: src/metabase/pulse/render/datetime.clj -msgid "This week" -msgstr "Denne uken" - -#: src/metabase/pulse/render/datetime.clj -msgid "Last month" -msgstr "Forrige mÃ¥ned" - -#: src/metabase/pulse/render/datetime.clj -msgid "This month" -msgstr "Denne mÃ¥neden" - -#: src/metabase/pulse/render/datetime.clj -msgid "Last quarter" -msgstr "Forrige kvartal" - -#: src/metabase/pulse/render/datetime.clj -msgid "This quarter" -msgstr "Dette kvartaler" - -#: src/metabase/pulse/render/datetime.clj -msgid "Last year" -msgstr "I fjor" - -#: src/metabase/pulse/render/datetime.clj -msgid "This year" -msgstr "Dette Ã¥ret" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "*driver* is unbound." -msgstr "*driver* er ikke tilknyttet" - -#: src/metabase/sync/sync_metadata/fields.clj -msgid "Error syncing Fields for Table ''{0}''" -msgstr "" - -#: src/metabase/sync/sync_metadata/fields.clj -msgid "Hash of {0} matches stored hash, skipping Fields sync" -msgstr "" - -#: src/metabase/sync/sync_metadata/fields/common.clj -msgid "Field" -msgstr "Felt" - -#: src/metabase/sync/sync_metadata/fields/sync_instances.clj -msgid "Error checking if Fields {0} need to be created or reactivated" -msgstr "" - -#: src/metabase/sync/sync_metadata/fields/sync_instances.clj -msgid "Marking Field ''{0}'' as inactive." -msgstr "" - -#: src/metabase/sync/sync_metadata/fields/sync_instances.clj -msgid "Error retiring {0}" -msgstr "Feil ved arkivering av {0}" - -#: src/metabase/sync/sync_metadata/fields/sync_metadata.clj -msgid "Database type of {0} has changed from ''{1}'' to ''{2}''." -msgstr "" - -#: src/metabase/sync/sync_metadata/fields/sync_metadata.clj -msgid "Base type of {0} has changed from ''{1}'' to ''{2}''." -msgstr "" - -#: src/metabase/sync/sync_metadata/fields/sync_metadata.clj -msgid "Special type of {0} has changed from ''{1}'' to ''{2}''." -msgstr "" - -#: src/metabase/sync/sync_metadata/fields/sync_metadata.clj -msgid "Comment has been added for {0}." -msgstr "Kommentar ble lagt til for {0}" - -#: src/metabase/task.clj -msgid "Stopping Quartz Scheduler {0}" -msgstr "Stopper Quartz Scheduler {0}" - -#: src/metabase/task.clj -msgid "Starting Quartz Scheduler {0}" -msgstr "Starter Quartz Scheduler {0}" - -#: src/metabase/task.clj -msgid "Error loading tasks namespace {0}" -msgstr "" - -#. don't bother logging namespace for now, maybe in the future if there's tasks of the same name in multiple -#. namespaces we can log it -#: src/metabase/task.clj -msgid "Initializing task {0}" -msgstr "" - -#: src/metabase/task.clj -msgid "Error initializing task {0}" -msgstr "" - -#: src/metabase/task/follow_up_emails.clj -msgid "Problem sending abandonment email" -msgstr "" - -#: src/metabase/task/send_anonymous_stats.clj -msgid "Sending anonymous usage stats." -msgstr "Sender anonym brukerstatistikk" - -#: src/metabase/task/send_anonymous_stats.clj -msgid "Error sending anonymous usage stats" -msgstr "Feil med Ã¥ sende anonymt bruker statistikk" - -#: src/metabase/task/send_pulses.clj -msgid "Error sending Pulse {0}" -msgstr "Feil ved sending av Pulse {0}" - -#: src/metabase/task/send_pulses.clj -msgid "Sending scheduled pulses..." -msgstr "" - -#: src/metabase/task/send_pulses.clj -msgid "SendPulses task failed" -msgstr "" - -#: src/metabase/task/sync_databases.clj -msgid "Failed to scheduler tasks for Database {0}" -msgstr "" - -#: src/metabase/task/task_history_cleanup.clj -msgid "Cleaning up task history" -msgstr "" - -#: src/metabase/task/task_history_cleanup.clj -msgid "Task history cleanup successful, rows were deleted" -msgstr "" - -#: src/metabase/task/task_history_cleanup.clj -msgid "Task history cleanup successful, no rows were deleted" -msgstr "" - -#: src/metabase/task/upgrade_checks.clj -msgid "Checking for new Metabase version info." -msgstr "Ser etter ny Metase versjonsinformasjon" - -#: src/metabase/task/upgrade_checks.clj -msgid "Error fetching version info" -msgstr "Feil ved henting av versjonsinformasjon" - -#: src/metabase/util.clj -msgid "Maximum memory available to JVM: {0}" -msgstr "Maksimalt minne tilgjengelig for JVM: {0}" - -#: src/metabase/util.clj -msgid "Not something with an ID: {0}" -msgstr "" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateDate]] by month of the year" -msgstr "" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Here's a quick look at your [[this]]" -msgstr "Her er en rask titt pÃ¥ din [[this]]" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by hour of the day" -msgstr "" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Where you've acquired your users" -msgstr "" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How it's distributed across time and other categories." -msgstr "" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Here's a closer look at your [[this]] per source" -msgstr "" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Here's a quick look at the [[this]]" -msgstr "" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by day of the month" -msgstr "" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Here's an overview of the people in your [[this]]" -msgstr "" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by quarter of the year" -msgstr "" - -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare across location" -msgstr "" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Here's a closer look at your [[this]] by products" -msgstr "" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by month of the year" -msgstr "" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "An overview of your [[this]] and how it's distributed across time, place, and categories." -msgstr "" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/question/GenericQuestion.yaml -msgid "Here's a closer look at your [[this]]" -msgstr "Her er en nærmere titt pÃ¥ din [[this]] " - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by day of the week" -msgstr "" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Here's an overview of your [[this]] data from Google Analytics" -msgstr "" - -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "Here's an overview of your [[this]]" -msgstr "" - -#: resources/automagic_dashboards/field/Country.yaml -msgid "Here's a closer look at your [[this]] field" -msgstr "" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Here's a closer look at your [[this]] per country" -msgstr "" - -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "If you're into correlations, this is the x-ray for you." -msgstr "" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateDate]] by day of the week" -msgstr "" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "It looks like your [[this]] has transactions, so here's a look at them" -msgstr "" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Here's a closer look at your [[this]] per state" -msgstr "" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateDate]] by day of the month" -msgstr "" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTime]] by hour of the day" -msgstr "" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Here's a closer look at your [[this]] over time" -msgstr "" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateDate]] by quarter of the year" -msgstr "" - -#: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 -msgid "Edit user" -msgstr "Rediger bruker" - -#: frontend/src/metabase/admin/people/containers/NewUserModal.jsx:13 -msgid "New user" -msgstr "Ny bruker" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 -#: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 -msgid "Reset password" -msgstr "Nullstill passord" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 -msgid "Deactivate user" -msgstr "Deaktiver bruker" - -#: frontend/src/metabase/admin/people/containers/UserActivationModal.jsx:47 -msgid "Reactivate {0}?" -msgstr "Aktiver {0}?" - -#: frontend/src/metabase/admin/people/containers/UserSuccessModal.jsx:63 -msgid "We couldn’t send them an email invitation, so make sure to tell them to log in using {0} and this password we’ve generated for them:" -msgstr "" - -#: frontend/src/metabase/entities/collections.js:24 -msgid "collection" -msgstr "kolleksjon" - -#: frontend/src/metabase/entities/collections.js:25 -msgid "collections" -msgstr "kolleksjoner" - -#: frontend/src/metabase/entities/dashboards.js:32 -msgid "dashboard" -msgstr "tavle" - -#: frontend/src/metabase/entities/dashboards.js:33 -msgid "dashboards" -msgstr "tavler" - -#: frontend/src/metabase/entities/users.js:37 -msgid "First name is required" -msgstr "Fornavn er pÃ¥krevd" - -#: frontend/src/metabase/entities/users.js:38 -#: frontend/src/metabase/entities/users.js:46 -msgid "Must be 100 characters or less" -msgstr "MÃ¥ være mindre enn 100 tegn" - -#: frontend/src/metabase/entities/users.js:45 -msgid "Last name is required" -msgstr "Etternavn er pÃ¥krevd" - -#: frontend/src/metabase/entities/users.js:52 -msgid "Email is required" -msgstr "Epost er pÃ¥krevd" - -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:93 -msgid "Items you archive will appear here." -msgstr "Ting du arkiverer vil være her" - -#: frontend/src/metabase/query_builder/components/dataref/DetailPane.jsx:16 -msgid "No description" -msgstr "Ingen beskrivelse" - -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:178 -msgid "Sum of all values" -msgstr "Sum av alle verdier" - -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:186 -msgid "See all distinct values" -msgstr "See alle distinkte verdier" - -#: frontend/src/metabase/query_builder/components/dataref/MainPane.jsx:12 -msgid "Browse the contents of your databases, tables, and columns. Pick a database to get started" -msgstr "" - -#: src/metabase/api/card.clj -msgid "Card results metadata passed in to API is VALID. Thanks!" -msgstr "" - -#: src/metabase/api/card.clj -msgid "Card results metadata passed in to API is INVALID. Running query to fetch correct metadata." -msgstr "" - -#: src/metabase/api/card.clj -msgid "Card results metadata passed in to API is ISSING. Running query to fetch correct metadata." -msgstr "" - -#: src/metabase/api/email.clj -msgid "{0} was autocorrected to {1}" -msgstr "" - -#: src/metabase/api/metric.clj -msgid "DELETE /api/metric/:id is deprecated. Instead, change its `archived` value via PUT /api/metric/:id." -msgstr "" - -#: src/metabase/api/segment.clj -msgid "DELETE /api/segment/:id is deprecated. Instead, change its `archived` value via PUT /api/segment/:id." -msgstr "" - -#: src/metabase/api/user.clj -msgid "Value of is_superuser must correspond to presence of Admin group ID in group_ids." -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "Unexpected error writing keepalive characters" -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "Unexpected output in async API response" -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "starting streaming response" -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "Output chan closed, canceling keepalive request." -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "Async response finished, closing channels." -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "No response after waiting {0}. Canceling request." -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "Input channel unexpectedly closed." -msgstr "" - -#: src/metabase/async/semaphore_channel.clj -msgid "f finished, permit will be returned" -msgstr "" - -#: src/metabase/async/semaphore_channel.clj -msgid "request canceled, permit will be returned" -msgstr "" - -#: src/metabase/async/semaphore_channel.clj -msgid "Unexpected error attempting to run function after obtaining permit" -msgstr "" - -#: src/metabase/async/semaphore_channel.clj -msgid "Not running pending function call: output channel already closed." -msgstr "" - -#: src/metabase/async/semaphore_channel.clj -msgid "Current thread already has a permit for {0}, will not wait to acquire another" -msgstr "" - -#: src/metabase/async/util.clj -msgid "Output channel closed, will skip running {0}." -msgstr "" - -#: src/metabase/async/util.clj -msgid "Running {0} on separate thread..." -msgstr "" - -#: src/metabase/async/util.clj -msgid "Caught error running {0}" -msgstr "" - -#: src/metabase/async/util.clj -msgid "Request canceled, canceling future" -msgstr "" - -#: src/metabase/driver/sql_jdbc/connection.clj -msgid "Closing old connection pool for database {0} ..." -msgstr "" - -#: src/metabase/metabot/command.clj -msgid "Here''s your {0} most recent cards:" -msgstr "" - -#: src/metabase/metabot/command.clj -msgid "Could you be a little more specific, or use the ID? I found these cards with names that matched:" -msgstr "" - -#: src/metabase/metabot/command.clj -msgid "Card {0} not found." -msgstr "" - -#: src/metabase/middleware/exceptions.clj -msgid "Exception in API call" -msgstr "" - -#: src/metabase/middleware/exceptions.clj -msgid "Request canceled before finishing." -msgstr "" - -#: src/metabase/middleware/json.clj -msgid "Metabase only supports JSON requests." -msgstr "" - -#: src/metabase/middleware/json.clj -msgid "Make sure you set a 'Content-Type: application/json' header." -msgstr "Dobbeltsjekk at det er satt opp 'Content-Type: application/json' pÃ¥ spørringshodet." - -#: src/metabase/middleware/misc.clj -msgid "Setting Metabase site URL to {0}" -msgstr "" - -#: src/metabase/models/database.clj -msgid "Error scheduling tasks for DB" -msgstr "" - -#: src/metabase/models/database.clj -msgid "Error unscheduling tasks for DB." -msgstr "" - -#: src/metabase/models/database.clj -msgid "{0} Database ''{1}'' sync/analyze schedules have changed!" -msgstr "" - -#: src/metabase/models/database.clj -msgid "Sync metadata was: ''{0}'' is now: ''{1}''" -msgstr "" - -#: src/metabase/models/database.clj -msgid "Cache FieldValues was: ''{0}'', is now: ''{1}''" -msgstr "" - -#: src/metabase/models/metric.clj -msgid "You cannot update the creator_id of a Metric." -msgstr "" - -#: src/metabase/models/permissions.clj -msgid "MetaBot can only have Collection permissions." -msgstr "" - -#: src/metabase/models/permissions.clj -msgid "Failed to grant permissions" -msgstr "" - -#: src/metabase/models/permissions.clj -msgid "Changing permissions" -msgstr "" - -#: src/metabase/models/permissions.clj -msgid "FROM:" -msgstr "Fra:" - -#: src/metabase/models/permissions.clj -msgid "TO:" -msgstr "Til:" - -#: src/metabase/models/segment.clj -msgid "You cannot update the creator_id of a Segment." -msgstr "" - -#: src/metabase/models/setting.clj -msgid "Attempted to set Setting {0} to obfuscated value. Ignoring change." -msgstr "" - -#: src/metabase/models/setting.clj -msgid "Using value of env var {0}" -msgstr "" - -#: src/metabase/models/user.clj -msgid "Adding User {0} to All Users permissions group..." -msgstr "" - -#: src/metabase/models/user.clj -msgid "Adding User {0} to Admin permissions group..." -msgstr "" - -#: src/metabase/query_processor/middleware/process_userland_query.clj -msgid "Query failure" -msgstr "" - -#: src/metabase/query_processor/middleware/async_wait.clj -msgid "Maximum number of simultaneous queries to allow per connected Database." -msgstr "" - -#: src/metabase/util.clj -msgid "Timed out after {0} milliseconds." -msgstr "" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:27 -msgid "Misfire Instruction" -msgstr "" - -#: frontend/src/metabase/components/ArchiveModal.jsx:31 -msgid "Archive this?" -msgstr "" - -#: frontend/src/metabase/components/BrowseApp.jsx:244 -msgid "Learn about our data" -msgstr "" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 -msgid "Use DNS SRV when connecting" -msgstr "" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:269 -msgid "Using this option requires that provided host is a FQDN. If connecting to \n" -"an Atlas cluster, you might need to enable this option. If you don't know what this means,\n" -"leave this disabled." -msgstr "" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 -msgid "Automatically run queries when doing simple filtering and summarizing" -msgstr "" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 -msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." -msgstr "" - -#: frontend/src/metabase/containers/Overworld.jsx:247 -msgid "Learn about this database" -msgstr "" - -#: frontend/src/metabase/dashboard/components/ArchiveDashboardModal.jsx:17 -msgid "Archive this dashboard?" -msgstr "" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 -msgid "All results" -msgstr "" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 -msgid "Our Analytics" -msgstr "" - -#: frontend/src/metabase/lib/schema_metadata.js:500 -msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." -msgstr "" - -#: frontend/src/metabase/lib/schema_metadata.js:508 -msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." -msgstr "" - -#: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 -msgid "Filter" -msgstr "" - -#: frontend/src/metabase/modes/components/drill/UnderlyingRecordsDrill.jsx:34 -msgid "record" -msgid_plural "records" -msgstr[0] "" -msgstr[1] "" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 -msgid "Browse Data" -msgstr "" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 -msgid "Write SQL" -msgstr "" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 -msgid "Simple question" -msgstr "" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 -msgid "Pick some data, view it, and easily filter, summarize, and visualize it." -msgstr "" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 -msgid "Custom question" -msgstr "" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 -msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." -msgstr "" - -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:23 -msgid "Basic Metrics" -msgstr "" - -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 -msgid "Custom…" -msgstr "" - -#: frontend/src/metabase/query_builder/components/DimensionList.jsx:147 -msgid "Add grouping" -msgstr "" - -#: frontend/src/metabase/query_builder/components/LimitPopover.jsx:14 -msgid "Pick a limit" -msgstr "" - -#: frontend/src/metabase/query_builder/components/LimitPopover.jsx:38 -msgid "Show maximum" -msgstr "" - -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 -msgid "Get Preview" -msgstr "" - -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:82 -msgid "Back to previous results" -msgstr "" - -#: frontend/src/metabase/query_builder/components/dataref/DetailPane.jsx:21 -msgid "Sample values" -msgstr "" - -#: frontend/src/metabase/query_builder/components/dataref/MainPane.jsx:10 -msgid "Browse the contents of your databases, tables, and columns. Pick a database to get started." -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/Notebook.jsx:40 -msgid "Visualize" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:34 -msgid "Join data" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:41 -msgid "Custom column" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 -msgid "Summarize" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:61 -msgid "Aggregate" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:68 -msgid "Breakout" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/AggregateStep.jsx:18 -msgid "Pick the metric you want to see" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 -msgid "Pick a column to group by" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 -msgid "Pick your starting data" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/FieldsPicker.jsx:43 -msgid "Select None" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/FieldsPicker.jsx:43 -msgid "Select All" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 -msgid "Pick a table..." -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/LimitStep.jsx:23 -msgid "Enter a limit" -msgstr "" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:159 -msgid "Brackets around a {0} create an optional clause in the template. If \"variable\" is set, then the entire clause is placed into the template. If not, then the entire clause is ignored." -msgstr "" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:176 -msgid "When using a Field Filter, the column name should not be included in the SQL. Instead, the variable should be mapped to a field in the side panel." -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:16 -msgid "View the native query" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:17 -msgid "Native query for this question" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:18 -msgid "Convert this question to a native query" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:22 -msgid "SQL for this question" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:23 -msgid "Convert this question to SQL" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionAlertWidget.jsx:53 -msgid "Get alerts" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:31 -msgid "{0} breakout" -msgid_plural "{0} breakouts" -msgstr[0] "" -msgstr[1] "" - -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 -msgid "Hide filters" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 -msgid "Show filters" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 -msgid "Started from" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:21 -msgid "{0} row" -msgid_plural "{0} rows" -msgstr[0] "" -msgstr[1] "" - -#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:29 -msgid "Show all rows" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:30 -msgid "Show {0}" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:35 -msgid "Showing first {0}" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:36 -msgid "Showing {0}" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:34 -msgid "Summarized" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 -msgid "Hide editor" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 -msgid "Show editor" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/AggregationSidebar.jsx:14 -msgid "Pick the metric you'd like to see" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 -msgid "{0} options" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:44 -msgid "Choose a visualization" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:38 -msgid "Filter by" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar.jsx:57 -msgid "Summarize by" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar.jsx:83 -msgid "Group by" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar.jsx:167 -msgid "Add a metric" -msgstr "" - -#: frontend/src/metabase/user/components/UserSettings.jsx:57 -msgid "Profile" -msgstr "" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 -msgid "This is usually pretty fast but seems to be taking a while right now." -msgstr "" - -#: frontend/src/metabase/visualizations/visualizations/ComboChart.jsx:16 -msgid "Combo" -msgstr "" - -#: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:13 -msgid "Row" -msgstr "" - -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:22 -msgid "Trend" -msgstr "" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:129 -msgid "Boolean" -msgstr "" - -#: frontend/src/metabase-lib/lib/queries/structured/Filter.js:59 -msgid "Unknown Segment" -msgstr "" - -#: frontend/src/metabase-lib/lib/queries/structured/Filter.js:68 -msgid "Unknown Filter" -msgstr "" - -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 -msgid "Left outer join" -msgstr "" - -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 -msgid "Right outer join" -msgstr "" - -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 -msgid "Inner join" -msgstr "" - -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 -msgid "Full outer join" -msgstr "" - -#: src/metabase/api/card.clj -msgid "Card results metadata passed in to API is MISSING. Running query to fetch correct metadata." -msgstr "" - -#: src/metabase/api/session.clj -msgid "Problem connecting to LDAP server, will fall back to local authentication" -msgstr "" - -#: src/metabase/api/setup.clj -msgid "Cannot create Database: cannot find driver {0}." -msgstr "" - -#: src/metabase/api/tiles.clj -msgid "Query failed" -msgstr "" - -#: src/metabase/async/util.clj -msgid "Warning: {0} returned `nil`" -msgstr "" - -#: src/metabase/async/util.clj -msgid "Unexpected error writing result to output channel: already closed" -msgstr "" - -#: src/metabase/async/util.clj -msgid "Unexpected error writing exception to output channel: already closed" -msgstr "" - -#: src/metabase/async/util.clj -msgid "Request canceled, canceling future." -msgstr "" - -#: src/metabase/cmd/load_from_h2.clj -msgid "Metabase can only transfer data from H2 to Postgres or MySQL/MariaDB." -msgstr "" - -#: src/metabase/db.clj -msgid "WARNING: Using Metabase with an H2 application database is not recommended for production deployments." -msgstr "" - -#: src/metabase/db.clj -msgid "Application database setup" -msgstr "" - -#: src/metabase/driver.clj -msgid "Could not find {0} driver." -msgstr "" - -#: src/metabase/driver.clj -msgid "Abstract drivers cannot derive from concrete parent drivers." -msgstr "" - -#: src/metabase/driver/mysql.clj -msgid "You may need to add 'trustServerCertificate=true' to the additional connection options to connect with SSL." -msgstr "" - -#: src/metabase/driver/sql/util.clj -msgid "Don't know how to alias {0}, expected an Identifer." -msgstr "" - -#: src/metabase/driver/sql_jdbc/execute.clj -msgid "Client closed connection, canceling query" -msgstr "" - -#: src/metabase/integrations/ldap.clj -msgid "{0} is not a valid DN." -msgstr "" - -#: src/metabase/middleware/log.clj -msgid "Error logging API request" -msgstr "" - -#: src/metabase/middleware/misc.clj -msgid "Failed to set site-url" -msgstr "" - -#: src/metabase/models/database.clj -msgid "Error destroying thread pool for DB." -msgstr "" - -#: src/metabase/models/humanization.clj -msgid "Updating display name for {0} ''{1}'': ''{2}'' -> ''{3}''" -msgstr "" - -#: src/metabase/models/humanization.clj -msgid "Invalid humanization strategy ''{0}''. Valid strategies are: {1}" -msgstr "" - -#. now rehumanize all the Tables and Fields using the new strategy. -#. TODO: Should we do this in a background thread because it is potentially slow? -#: src/metabase/models/humanization.clj -msgid "Chaning Table & Field names humanization strategy from ''{0}'' to ''{1}''" -msgstr "" - -#: src/metabase/models/task_history.clj src/metabase/sync/util.clj -msgid "Error saving task history" -msgstr "" - -#: src/metabase/plugins.clj -msgid "spark-deps.jar is no longer needed by Metabase 0.32.0+. You can delete it from the plugins directory." -msgstr "" - -#: src/metabase/plugins/classloader.clj -msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" -msgstr "" - -#: src/metabase/plugins/files.clj -msgid "Failed to copy file" -msgstr "" - -#: src/metabase/public_settings.clj -msgid "Invalid site URL: {0}" -msgstr "" - -#: src/metabase/public_settings.clj -msgid "site-url is invalid; returning nil for now. Will be reset on next request." -msgstr "" - -#: src/metabase/pulse/render/body.clj -msgid "More results have been included as a file attachment" -msgstr "" - -#: src/metabase/pulse/render/body.clj -msgid "This question has been included as a file attachment" -msgstr "" - -#: src/metabase/pulse/render/body.clj -msgid "We were unable to display this Pulse." -msgstr "" - -#: src/metabase/pulse/render/body.clj -msgid "Please view this card in Metabase." -msgstr "" - -#: src/metabase/pulse/render/body.clj -msgid "An error occurred while displaying this card." -msgstr "" - -#: src/metabase/query_processor.clj -msgid "Can only determine expected columns for MBQL queries." -msgstr "" - -#: src/metabase/query_processor.clj -msgid "No columns returned." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_clauses.clj -msgid "Warining: cannot determine fields for an explicit `source-query` unless you also include `source-metadata`." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "Cannot resolve {0}: Field does not exist, or its Table belongs to a different Database." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "Cannot resolve :field-literal inside :fk-> unless inside join with explicit :alias." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "Cannot find Table ID for {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "No matching info found." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "Could not resolve {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "Invalid fk-> clause: nowhere to add corresponding join." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "{0} driver does not support foreign keys." -msgstr "" - -#: src/metabase/query_processor/middleware/add_source_metadata.clj -msgid "Cannot infer `:source-metadata` for source query with native source query without source metadata." -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Query processor error: number of columns returned by driver does not match results." -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Expected {0} columns, but first row of resuls has {1} columns." -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "No expression named {0} found. Found: {1}" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Distinct values of {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Average of {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Sum of {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "SD of {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Min of {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Max of {0}" -msgstr "" - -#. until we have a way to generate good names for filters we'll just have to say 'matching condition' for now -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Sum of {0} matching condition" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Share of rows matching condition" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Count of rows matching condition" -msgstr "" - -#: src/metabase/query_processor/middleware/async.clj -msgid "Request already canceled, will not run synchronous QP code." -msgstr "" - -#: src/metabase/query_processor/middleware/async.clj -msgid "Unexpectedly got `nil` Query Processor response." -msgstr "" - -#: src/metabase/query_processor/middleware/async.clj -msgid "Got InterruptedException. Canceling query." -msgstr "" - -#: src/metabase/query_processor/middleware/async.clj -msgid "Unhandled exception, exepected `catch-exceptions` middleware to handle it." -msgstr "" - -#: src/metabase/query_processor/middleware/async.clj -msgid "Query timed out after %s" -msgstr "" - -#: src/metabase/query_processor/middleware/async_wait.clj -msgid "Creating new query thread pool for Database {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/async_wait.clj -msgid "Destroying query thread pool for Database {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/async_wait.clj -msgid "Request canceled, canceling pending query" -msgstr "" - -#: src/metabase/query_processor/middleware/binning.clj -msgid "Cannot update binned field: query is missing source-metadata" -msgstr "" - -#: src/metabase/query_processor/middleware/binning.clj -msgid "Cannot update binned field: could not find matching source metadata for Field ''{0}''" -msgstr "" - -#: src/metabase/query_processor/middleware/cache.clj -msgid "Using query processor cache backend: {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/expand_macros.clj -msgid "Invalid metric: {0} reason: {1}" -msgstr "" - -#: src/metabase/query_processor/middleware/process_userland_query.clj -msgid "Unknown error" -msgstr "" - -#: src/metabase/query_processor/middleware/process_userland_query.clj -msgid "Unexpected nil response from query processor." -msgstr "" - -#: src/metabase/query_processor/middleware/process_userland_query.clj -msgid "Query canceled" -msgstr "" - -#: src/metabase/query_processor/middleware/resolve_driver.clj -msgid "Unable to resolve driver for query: missing or invalid `:database` ID." -msgstr "" - -#: src/metabase/query_processor/middleware/resolve_driver.clj -msgid "Unable to resolve driver for query: Database {0} does not exist." -msgstr "" - -#: src/metabase/query_processor/middleware/resolve_joins.clj -msgid "Cannot use :fields :all in join against source query unless it has :source-metadata." -msgstr "" - -#: src/metabase/query_processor/middleware/resolve_joins.clj -msgid "Bad :joined-field clause: join with alias ''{0}'' does not exist. Found: {1}" -msgstr "" - -#: src/metabase/query_processor/middleware/resolve_source_table.clj -msgid "Invalid :source-table ''{0}'': should be resolved to a Table ID by now." -msgstr "" - -#: src/metabase/query_processor/store.clj -msgid "Cannot store Tables or Fields before Database is stored." -msgstr "" - -#: src/metabase/query_processor/store.clj -msgid "Attempting to fetch second Database. Queries can only reference one Database." -msgstr "" - -#: src/metabase/query_processor/store.clj -msgid "Failed to fetch Table {0}: Table does not exist, or belongs to a different Database." -msgstr "" - -#: src/metabase/query_processor/store.clj -msgid "Failed to fetch Field {0}: Field does not exist, or belongs to a different Database." -msgstr "" - -#: src/metabase/routes/index.clj -msgid "Failed to load template ''{0}''. Did you remember to build the Metabase frontend?" -msgstr "" - -#: src/metabase/sample_data.clj -msgid "Sample dataset DB file ''{0}'' cannot be found." -msgstr "" - -#: src/metabase/sample_data.clj -msgid "Loading sample dataset..." -msgstr "" - -#: src/metabase/sample_data.clj -msgid "Failed to load sample dataset" -msgstr "" - -#: src/metabase/sync/sync_metadata/tables.clj -msgid "Found new tables:" -msgstr "" - -#: src/metabase/sync/sync_metadata/tables.clj -msgid "Marking tables as inactive:" -msgstr "" - -#: src/metabase/sync/sync_metadata/tables.clj -msgid "Updating description for tables:" -msgstr "" - -#: src/metabase/task.clj -msgid "Rescheduling job {0}" -msgstr "" - -#: src/metabase/task.clj -msgid "Error rescheduling job" -msgstr "" - -#: src/metabase/task/send_pulses.clj -msgid "Starting Pulse Execution: {0}" -msgstr "" - -#: src/metabase/task/send_pulses.clj -msgid "Finished Pulse Execution: {0}" -msgstr "" - -#: src/metabase/task/sync_databases.clj -msgid "Failed to schedule tasks for Database {0}" -msgstr "" - -#: src/metabase/util/schema.clj -msgid "All elements must be distinct." -msgstr "" - -#: -msgctxt "Modal for selecting columns in source data or when doing a join." -msgid "Pick the columns you want to include" -msgstr "" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 -msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:97 -msgid "Change join type" -msgstr "" - -#: src/metabase/driver/sql/util.clj -msgid "Don't know how to alias {0}, expected an Identifier." -msgstr "" - -#: src/metabase/integrations/common.clj -msgid "Error adding User {0} to Group {1}" -msgstr "" - -#. now rehumanize all the Tables and Fields using the new strategy. -#. TODO: Should we do this in a background thread because it is potentially slow? -#: src/metabase/models/humanization.clj -msgid "Changing Table & Field names humanization strategy from ''{0}'' to ''{1}''" -msgstr "" - -#: src/metabase/query_processor.clj -msgid "Infinite loop detected: recursively preprocessed query {0} times." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_clauses.clj -msgid "Warning: cannot determine fields for an explicit `source-query` unless you also include `source-metadata`." -msgstr "" - -#: src/metabase/query_processor/middleware/add_source_metadata.clj -msgid "Error determining expected columns for query" -msgstr "" - -#: src/metabase/query_processor/middleware/async.clj -msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." -msgstr "" - diff --git a/locales/nl.po b/locales/nl.po index 084c2025f88ed9583baf224523c0b01f66e470e0..096e7115c3d8f93fa616bd7a9e00ed3860f6b82f 100644 --- a/locales/nl.po +++ b/locales/nl.po @@ -18,7 +18,7 @@ msgstr "We hebben naar uw data gekeken en we hebben enkele geautomatiseerde verk #: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:35 msgid "I'm good thanks" -msgstr "Bedankt, ik red me" +msgstr "Bedankt, ik red me wel" #: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:42 msgid "Explore this data" @@ -31,19 +31,18 @@ msgstr "Selecteer een type database" #. Imperative: Sla op #. Verb: Opslaan #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "Opslaan" @@ -59,7 +58,7 @@ msgstr "Database synchroniseren" msgid "This is a lightweight process that checks for\n" "updates to this database’s schema. In most cases, you should be fine leaving this\n" "set to sync hourly." -msgstr "Dit is een licht proces dat nagaat of het database schema gewijzigd is. Meestal kun je dit zonder problemen elk uur te laten draaien." +msgstr "Dit is een licht proces dat nagaat of het database schema gewijzigd is. Meestal kun je dit zonder problemen elk uur laten draaien." #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:147 #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:183 @@ -104,7 +103,7 @@ msgstr "Nooit, ik doe het handmatig wanneer nodig" #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "Bezig met opslaan..." @@ -141,16 +140,16 @@ msgstr "in dit kader:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -158,20 +157,20 @@ msgstr "in dit kader:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "Annuleren" @@ -183,33 +182,33 @@ msgstr "Annuleren" msgid "Delete" msgstr "Verwijder" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "Databases" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "Voeg database toe" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "Verbinding" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "Planning" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -219,18 +218,18 @@ msgstr "Planning" msgid "Save changes" msgstr "Sla wijzigingen op" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "Acties" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "Synchroniseer het databaseschema nu" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -238,41 +237,41 @@ msgstr "Synchroniseer het databaseschema nu" msgid "Starting…" msgstr "Bezig met starten..." -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "Synchronisatie mislukt" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "Synchronisatie gestart!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "Scan veldwaardes opnieuw" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "Scannen mislukt" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "Scan gestart!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "Gevarenzone" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "Verwijder bewaarde veldwaardes" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "Verwijder deze database" @@ -281,18 +280,17 @@ msgid "Add database" msgstr "Database toevoegen" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "Naam" @@ -312,23 +310,24 @@ msgstr "Bezig met laden..." msgid "Bring the sample dataset back" msgstr "Breng de voorbeeld dataset terug" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "Kon niet verbinden met de database. Controleer de verbindingdetails" -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "Succesvol aangemaakt!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "Succesvol opgeslagen!" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "Bewerken" @@ -368,9 +367,9 @@ msgstr "Mislukt" msgid "Success" msgstr "Succes" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "Voorbeeld" @@ -390,7 +389,7 @@ msgstr "Geen speciaal type" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "Anders" @@ -419,7 +418,7 @@ msgstr "Kolom" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "Zichtbaarheid" @@ -502,35 +501,34 @@ msgstr "Zoek een tabel" msgid "Schemas" msgstr "Schema's" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "Metrieken" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "Voeg een metriek toe" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "Definitie" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "Maak metrieken aan om deze to te voegen aan de View dropdown in de vraagbouwer" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -538,11 +536,11 @@ msgstr "Maak metrieken aan om deze to te voegen aan de View dropdown in de vraag msgid "Segments" msgstr "Segmenten" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "Voeg een segment toe" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "Maak segmenten om ze toe te voegen aan het de filter selectie in de query bouwer" @@ -588,23 +586,23 @@ msgstr " geschiedenis" msgid "Revision History for" msgstr "Revisiegeschiedenis voor" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} - Veldinstellingen" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "Waar dit veld zichtbaar wordt via Metabase" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Filteren op dit veld" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "Als dit veld wordt gebruikt in een filter, wat moet men gebruiken om te filteren op de waarde die ze hebben ingevoerd?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "Nog geen beschrijving voor dit veld" @@ -648,11 +646,11 @@ msgstr "Het huidige veld is geen verwijzende sleutel of of de metadata van de do msgid "The selected field isn't a foreign key" msgstr "Het geselecteerde veld is geen verwijzende sleutel" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "Toon waarden" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "Kies om de originele waarde vanuit de database te zien of toon het veld met verwante of custom informatie." @@ -672,12 +670,12 @@ msgstr "Tip:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "Je kunt ervoor kiezen om de veldnaam aan te passen, om er zeker van te zijn dat deze nog duidelijk is, baserend op je hermapping keuzes." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "Opgeslagen veldwaarden" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabase kan de waarden voor dit veld scannen om checkbox filters in dashboards en vragen in te schakelen." @@ -705,82 +703,82 @@ msgstr "Weggooien geactiveerd!" msgid "Select any table to see its schema and add or edit metadata." msgstr "Selecteer een tabel om het schema te zien en om metadata toe te voegen of te wijzigen." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "Naam is verplicht" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "Omschrijving is verplicht" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "Herzieningsbericht is verplicht" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "Aggregatie is benodigd" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "Bewerk uw metriek" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "Maak uw metriek" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "Pas de meetwaarde aan en laat een verklaring achter" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "Je kunt opgeslagen metrieken aanmaken om een metriek optie toe tevoegen aan deze tabel. Opgeslagen metrieken omvatten het aggregatietype, het geaggregeerde veld en elk filter dat u toevoegt. Bijvoorbeeld: je kunt deze optie gebruiken voor een standaard manier voor het berekenen van een \"gemiddelde prijs\" for een bestellingen tabel." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "Resultaat: " -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "Geef uw metriek een naam" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "Geef uw metriek een naam om het vindbaar te maken voor anderen." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "Iets verduidelijkends maar niet te lang" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "Beschrijf uw metriek" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "Beschrijf uw metriek om het uit te leggen aan anderen." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "Hier kun je preciezer zijn over metriken die minder duidelijk zijn" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "Reden voor wijzigingen" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "Laat een notitie achter, om de veranderingen uit te leggen en waarom ze nodig waren." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "Dit wordt weergegeven in de revisiegeschiedenis voor deze metriek zodat de reden voor iedereen duidelijk is" @@ -796,7 +794,7 @@ msgstr "Bewerk uw segment" msgid "Create Your Segment" msgstr "Maak uw segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "Verander je segment en laat een uitleg achter." @@ -804,38 +802,38 @@ msgstr "Verander je segment en laat een uitleg achter." msgid "Select and add filters to create your new segment for the {0} table" msgstr "Selecteer en voeg filters toe om een nieuw segment voor de {0} tabel te maken." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "Benoem uw segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "Geef uw segment een naam om het vindbaar te maken voor anderen." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "Beschrijf uw segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 #, fuzzy msgid "Give your segment a description to help others understand what it's about." msgstr "Benoem je segment, zodat anderen begrijpen wat het doet." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "Dit is een goede plek om specifieker te zijn over minder voor de hand liggende segment regels." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "Dit wordt getoond in de revisiegeschiedenis, zodat iedereen weet waarom dit segment werd aangepast." #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "Instellingen" @@ -849,33 +847,29 @@ msgstr "Herscan deze tabel" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "Toevoegen" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "Geen valide e-mailadres" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "Voornaam" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "Achternaam" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "E-mailadres" @@ -911,7 +905,7 @@ msgstr "Gebruikers" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "E-mail" @@ -920,8 +914,8 @@ msgid "A group is only as good as its members." msgstr "Een groep is slechts zo goed als zijn leden." #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "Beheerder" @@ -982,11 +976,11 @@ msgstr "Verwijder groep" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "Klaar" @@ -995,9 +989,9 @@ msgid "Group name" msgstr "Groepsnaam" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "Groeperen" @@ -1026,10 +1020,10 @@ msgstr "Stel wachtwoord opnieuw in" msgid "Deactivate" msgstr "Deactiveer" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "Mensen" @@ -1068,7 +1062,7 @@ msgstr "Wij hebben {0} een uitnodiging verstuurd om hun wachtwoord te wijzigen." msgid "We've re-sent {0}'s invite" msgstr "Wij hebben {0}'s uitnodiging opnieuw verzonden" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "Ok" @@ -1100,7 +1094,7 @@ msgstr "Ze kunnen weer inloggen en worden teruggeplaatst in de groepen waar ze z msgid "Reset {0}'s password?" msgstr "Stel {0}'s wachtwoord opnieuw in?" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "Reset" @@ -1139,19 +1133,19 @@ msgstr "Voeg iemand toe" msgid "Last Login" msgstr "Laatste inlog" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Aangemeld via Google" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "Aangemeld via LDAP" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "Heractiveer dit account" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "Nooit" @@ -1193,7 +1187,7 @@ msgid " native queries for " msgstr " standaard queries voor " #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "Rechten" @@ -1250,115 +1244,115 @@ msgstr "MetaBot is de Slack bot van Metabase. Je kan kiezen waar het hier recht msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "De \"{0}\" groep heeft mogelijk toegang tot een andere set van {1} dan deze groep, waardoor deze groep mogelijk extra toegang heeft tot een aantal {2}." -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "De groep \"{0}\" heeft een hoger toegangsniveau dan deze, waardoor deze instelling wordt opgeheven. Je moet de toegang van de groep \"{1}\" tot dit item beperken of intrekken." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "Limiet" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "Intrekken" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "Betreden terwijl \"{0}\" meer rechten heeft?" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "Limiteer toegang" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "Trek toegang in" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "Wijzig de toegang tot deze database in gelimiteerd?" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "Wijziging" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "Toestaan om \"Raw queries\" te schrijven?" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "Hiermee wordt ook de gegevenstoegang van deze groep gewijzigd in Onbeperkt voor deze database." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "Toestaan" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "Rechten intrekken voor alle tabellen?" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "Hiermee wordt ook de toegang van deze groep tot \"raw queries\" voor deze database ingetrokken." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "Ken onbeperkte toegang toe" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "Onbeperkte toegang" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "Gelimiteerde toegang" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "Geen toegang" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "Schrijf \"raw queries\"" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Kan \"raw queries\" schrijven" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "Beheer collectie" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "Toon verzamelingen" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "Datatoegang" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "Toon tabellen" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "SQL Queries" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "Toon schema's" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "Datamodel" @@ -1501,8 +1495,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "Metabase {0} is beschikbaar. U draait nu {1}" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "Update" @@ -1525,18 +1519,20 @@ msgstr "Verwijder aangepaste kaart" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "Verwijderen" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "Selecteer..." @@ -1738,7 +1734,7 @@ msgstr "Onbekende instelling {0}" msgid "Setup" msgstr "Setup" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "Algemeen" @@ -1865,7 +1861,7 @@ msgid "Username or DN" msgstr "Gebruikersnaam of DN" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "Wachtwoord" @@ -2028,31 +2024,31 @@ msgstr "Wachtwoord vergeten" msgid "The email you use for your Metabase account" msgstr "Het e-mailadres welke je gebruikt voor je Metabase account" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "Verstuur e-mail voor wachtwoord reset" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "Controleer de instructies in e-mail inbox om je wachtwoord te wijzigen." -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "Log in in Metabase" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "OF" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "Gebruikersnaam of e-mailadres" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "Inloggen" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "Het lijkt er op dat ik mijn wachtwoord vergeten ben" @@ -2071,7 +2067,7 @@ msgstr "Vanwege veiligheidsredenen verlopen de links voor het herstellen van een "Wanneer je nog steeds je wachtwoord wilt wijzigen kun je {0}." #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "Nieuw wachtwoord" @@ -2084,38 +2080,38 @@ msgid "Create a new password" msgstr "Maak een nieuw wachtwoord" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "Zorg ervoor dat het net zo veilig is als de bovenstaande instructies" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "Bevestiging nieuw wachtwoord" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "Zorg ervoor dat het overeenkomt met degene die je net hebt ingevuld" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "Uw wachtwoord is opnieuw ingesteld." -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "Log in met uw nieuwe wachtwoord" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "Opslaan mislukt" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2134,22 +2130,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "De dashboards, collecties en pulsen in deze collectie zullen ook gearchiveerd worden." #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "Archief" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "{0} is gearchiveerd" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "Toon het archief" @@ -2159,17 +2156,19 @@ msgstr "Dearchiveer dit {0}" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "Onze data" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "X-ray deze tabel" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "Leer over deze tabel" @@ -2264,44 +2263,44 @@ msgstr "Pins" msgid "Drag something here to pin it to the top" msgstr "Sleep iets hier om het bovenaan vast te zetten" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "Verzamelingen" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "Verplaats hier om los te maken" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} item geselecteerd" msgstr[1] "{0} items geselecteerd" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "Verplaats {0} items?" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "Verplaats \"{0}\"?" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "Verplaats" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "Bewerk deze verzameling" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "Archiveer deze verzameling" @@ -2318,17 +2317,17 @@ msgstr "Nieuwe verzameling" msgid "Copied!" msgstr "Gekopiëerd!" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "Gebruik een SSH-tunnel voor databaseverbindingen" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." msgstr "Sommige database-installaties kunnen alleen benaderd worden met een SSH verbinding. Deze optie zorgt ook voor een extra beveiliging wanneer een VPN niet beschikbaar is. Het inschakelen van deze optie is vaak langzamer dan een directe verbinding." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "Dit is een grote database, laat mij kiezen wat Metabase moet synchroniseren en scannen." @@ -2337,47 +2336,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail "If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." msgstr "Metabase voert standaard een lichte synchronisatie uit en dagelijks een volledige scan van de velden. Wanneer je een grote database hebt adviseren we deze optie aan te zetten zodat je zelf kan bepalen wat en hoe de velden gescand moeten worden." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0} om een Client ID en Client Secret te genereren voor je project." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "Klik hier" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "Kies \"Anders\" als applicatie type. Noem het zoals je wilt." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0} om een auth code te verkrijgen" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "met Google Drive rechten" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "Om Metabase te gebruiken met deze data moet je de API toegang inschakelen in de Google Developers Console." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "{0} om naar het console te gaan, wanneer je dit nog niet gedaan hebt." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "Hoe wil je naar deze database verwijzen?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "Volgende" @@ -2396,7 +2395,7 @@ msgstr "Verplaats dit item" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "Pas deze vraag aan" @@ -2409,7 +2408,7 @@ msgstr "Actie type" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "Bekijk revisie historie" @@ -2425,7 +2424,7 @@ msgstr "Archiveer actie" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "Voeg toe aan dashboard" @@ -2436,7 +2435,7 @@ msgstr "Download resultaten" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "Delen en embedden" @@ -2482,65 +2481,63 @@ msgstr "Gebaseerd op het schema" msgid "A look at your" msgstr "Bekijk uw" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "Doorzoek te lijst" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "Zoeken op {0}" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr " of voer een ID in" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "Voer een ID in" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "Voer een nummer in" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "Voer tekst in" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "Geen overeenkomende {0} gevonden." -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "Het opnemen van elke optie in deze filter zal waarschijnlijk niet veel doen ..." -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "Er is iets misgegaan" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "Er is een fout opgetreden. Je kunt proberen de pagina te vernieuwen of gewoon teruggaan." -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "Nog geen omschrijving" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "Nieuwe {0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "Gevraagd door {0}" @@ -2561,8 +2558,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "Teruggezet naar een eerdere revisie en {0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "Revisiegeschiedenis" @@ -2607,7 +2604,7 @@ msgid "Questions" msgstr "Vragen" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "Pulsen" @@ -2644,7 +2641,7 @@ msgstr "Aanmelden" msgid "You're subscribed. Thanks for using Metabase!" msgstr "U hebt zich aangemeld. Bedankt voor het gebruik van Metabase!" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "Wij zijn een beetje verdwaald..." @@ -2653,14 +2650,14 @@ msgid "Temporary Password" msgstr "Tijdelijk wachtwoord" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "Verbergen" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "Toon" @@ -2762,7 +2759,7 @@ msgstr "Geselecteerd" msgid "Nothing to select" msgstr "Niks te selecteren" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "Sorry, u hebt geen rechten om dat te zien." @@ -2770,8 +2767,8 @@ msgstr "Sorry, u hebt geen rechten om dat te zien." msgid "Unknown error encountered" msgstr "Onbekende fout" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "Aanmaken" @@ -2779,7 +2776,6 @@ msgstr "Aanmaken" msgid "Create dashboard" msgstr "Maak dashboard aan" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "Tabel" @@ -2804,12 +2800,11 @@ msgstr "Pas het filter aan om te vinden waar je naar zoekt." msgid "View by" msgstr "Bekijk als" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "van" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "Niet verder vertellen, maar u bent mijn favoriet." @@ -2817,19 +2812,19 @@ msgstr "Niet verder vertellen, maar u bent mijn favoriet." msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "Nadat u uw eigen gegevens hebt verbonden, kan ik enkele automatische verkenningen laten zien die z-rays worden genoemd. Hier zijn enkele voorbeelden met voorbeeldgegevens." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "Begin hier" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "Onze analyse" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "Bekijk alle items" @@ -2841,44 +2836,45 @@ msgstr "Vervang of opslaan als nieuwe vraag?" msgid "Replace original question, \"{0}\"" msgstr "Vervang de originele vraag, \"{0}\"" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "Sla op als nieuwe vraag" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "Sla eerst uw vraag op" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "Sla vraag op" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "Wat is de naam van uw kaart" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "Omschrijving" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "Het optioneel, maar oh zo handig" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "In welke collectie moet dit komen?" @@ -2919,11 +2915,11 @@ msgstr "Archiveer dashboard" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "Zorg ervoor dat je voor elke serie een selectie maakt, anders werkt het filter niet op deze kaart." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "Het dashboard ziet er leeg uit." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "Voeg een vraag toe om het nuttig te maken!" @@ -2943,50 +2939,50 @@ msgstr "Sluit volledig scherm" msgid "Enter fullscreen" msgstr "Open volledig scherm" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "Aan het opslaan..." -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "Voeg een vraag toe" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "Voeg een vraag toe aan dit dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "Voeg een filter toe" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "Parameters" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "Voeg een tekstveld toe" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "Verplaats dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "Bewerk dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "Pas dashboard layout aan" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "U bent een dashboard aan het bewerken" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Selecteer het veld dat voor elke kaart moet worden gefilterd" @@ -3037,11 +3033,11 @@ msgstr "30 minuten" msgid "60 minutes" msgstr "60 minuten" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "Auto-verversen" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "Verversen in" @@ -3053,7 +3049,7 @@ msgstr "Verwijder deze vraag?" msgid "Your dashboard was saved" msgstr "Je dashboard is opgeslagen" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "Bekijk het" @@ -3140,10 +3136,9 @@ msgstr "heeft een vraag verwijderd uit het dashboard - " msgid "received the latest data from" msgstr "heeft de laatste data ontvangen van" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "Onbekend" @@ -3260,7 +3255,7 @@ msgstr "Toon alle" msgid "Recently Viewed" msgstr "Recent getoond" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "Je hebt recent geen dashboards of vragen bekeken" @@ -3274,11 +3269,11 @@ msgid "Unarchive" msgstr "Dearchiveer" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "Activiteit" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "Resultaten voor \"{0}\"" @@ -3340,6 +3335,9 @@ msgstr "Avatar afbeeldings-URL" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "Algemeen" @@ -3382,8 +3380,8 @@ msgstr "Lengtegraad" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "Nummer" @@ -3429,93 +3427,93 @@ msgstr "Creatietijd" msgid "Creation date" msgstr "Creatiedatum" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "Product" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "Gebruiker" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "Bron" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "Prijs" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "Lid sinds" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "Lid sinds (tijd)" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "Lid sinds (datum)" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "Delen" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "Eigenaar" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "Bedrijf" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "Abonnement" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "Score" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "Titel" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "Commentaar" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "Kosten" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Brutomarge" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "Geboortedatum" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "Zoekveld" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "Een lijst van alle waarden" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "Gewoon invoervak" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "Overal" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "De standaard instelling. Dit veld wordt weergegeven in tabellen en grafieken." @@ -3523,7 +3521,7 @@ msgstr "De standaard instelling. Dit veld wordt weergegeven in tabellen en grafi msgid "Only in Detail Views" msgstr "Alleen in detailweergaven" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "Dit veld wordt alleen weergegeven als je de details van één record bekijkt. Gebruik dit voor informatie die lang is of die niet nuttig is in een tabel of grafiek." @@ -3537,7 +3535,8 @@ msgstr "Metabase haalt dit veld nooit op. Gebruik dit voor gevoelige of irreleva #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3552,8 +3551,9 @@ msgid "CumulativeCount" msgstr "CumulatiefAantal" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "Som" @@ -3562,7 +3562,7 @@ msgid "CumulativeSum" msgstr "CumulatiefSom" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "Uniek" @@ -3571,25 +3571,28 @@ msgid "StandardDeviation" msgstr "StandaardDeviatie" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "Gemiddelde" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "Min" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "Max" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "Triest! lexing fout ontdekt." @@ -3639,12 +3642,13 @@ msgid "What do you want to find out?" msgstr "Waar ben je naar op zoek?" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "Rauwe data" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "Cumulatief aantal" @@ -3688,174 +3692,174 @@ msgstr "Filteren bij " msgid "Sorted by " msgstr "Sorteren bij " -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "Waar" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "Niet waar" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Selecteer longitude" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "Vul hoogste latitude in" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "Vul longitude (links) in" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "Vul laagste latitude in" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "Vul longitude (rechts) in" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "Is" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "Is niet" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "Is leeg" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "Is niet leeg" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "Gelijk aan" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "Niet gelijk aan" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "Groter dan" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "Kleiner dan" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "Tussen" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "Groter dan of gelijk aan" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "Kleiner dan of gelijk aan" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "Bevat" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "Bevat geen" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "Begint met" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "Eindigt met" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "Voor" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "Na" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "Binnen" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "Gewoon een tabel met de rijen in het antwoord, geen extra bewerkingen." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "Aantal rijen" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "Totaal aantal rijen in het antwoord." -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "Som van ..." -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "Som van alle waarden van een kolom." -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "Gemiddelde van ..." -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "Gemiddelde van alle waarden van een kolom" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "Aantal verschillende waarden van ..." -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "Aantal unieke waarden van een kolom tussen alle rijen in het antwoord." -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "Cumulatieve som van ..." @@ -3863,7 +3867,7 @@ msgstr "Cumulatieve som van ..." msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "Additieve som van alle waarden van een kolom. \\\\ Voorbeeld: totale omzet in de loop van de tijd." -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "Cumulatief aantal rijen" @@ -3871,27 +3875,27 @@ msgstr "Cumulatief aantal rijen" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "Optelling van het aantal rijen. \\\\ Voorbeeld: totaal aantal verkopen in de loop van de tijd." -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "Standaardafwijking van ..." -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "Getal dat aangeeft hoeveel de waarden van een kolom variëren tussen alle rijen in het antwoord." -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "Minimum van ..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Minimale waarde van een kolom" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "Maximum van ..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "Maximale waarde van een kolom" @@ -3910,7 +3914,7 @@ msgstr "hoofdletter" #: frontend/src/metabase/lib/settings.js:112 #: src/metabase/automagic_dashboards/core.clj msgid "number" -msgstr "nummer" +msgstr "aantal" #: frontend/src/metabase/lib/settings.js:114 msgid "special character" @@ -4065,68 +4069,70 @@ msgstr "Andere categorieën" msgid "Category, Type, Model, Rating, etc." msgstr "Categorie, Type, Model, Beoordeling, etc." -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "Account instellingen" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "Admin afsluiten" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "Logs" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Help" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "Over Metabase" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "Uitloggen" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "Bedankt voor het gebruik" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "Je gebruikt versie" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "Gebouwd op" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "is een handelsmerk van" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "en is met zorg gebouwd in San Francisco, CA" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Metabase administrator" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "Een vraag stellen" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "Nieuw dashboard" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "Nieuwe puls" @@ -4139,7 +4145,6 @@ msgstr "Referentie" msgid "Which metric?" msgstr "Welke metriek?" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "Door gemeenschappelijke statistieken voor je team te definiëren, kun je nog eenvoudiger vragen stellen" @@ -4157,7 +4162,7 @@ msgid "Custom" msgstr "Aangepast" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "Nieuwe vraag" @@ -4165,13 +4170,13 @@ msgstr "Nieuwe vraag" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "Gebruik de eenvoudige vragenmaker om trends, lijsten met dingen te bekijken of om je eigen statistieken te maken." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "Native query" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "Voor meer gecompliceerde vragen kunt u uw eigen SQL- of native query schrijven." @@ -4275,10 +4280,10 @@ msgstr "Voer een waarde in..." msgid "Enter a default value..." msgstr "Voer een standaard waarde in..." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" -msgstr "Een error is opgetreden" +msgstr "Een fout is opgetreden" #: frontend/src/metabase/public/components/PublicNotFound.jsx:11 msgid "Not found" @@ -4523,7 +4528,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "We raden aan om pulsen klein en geconcentreerd te houden om ze relevant en nuttig te houden voor het hele team." #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "Kies je gegevens" @@ -4539,47 +4544,47 @@ msgstr "E-mails" msgid "Slack messages" msgstr "Slack berichten" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "Verstuurd" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} wordt verzonden om" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "Berichten" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "Verstuur e-mail nu" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "Verstuur nu naar {0}" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "Versturen..." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "Versturen mislukt" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "Niet verzonden omdat de puls geen resultaten heeft." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "Pulse verstuurd" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} moet worden ingesteld door een beheerder." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4666,7 +4671,7 @@ msgstr "Aantal rijen over de tijd" msgid "Break out by {0}" msgstr "Uitbreken met {0}" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "Vat dit segment samen" @@ -4720,15 +4725,15 @@ msgstr "Oplopend" msgid "Descending" msgstr "Aflopend" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "Over een periode" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "Gemiddeld" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "Uniek" @@ -4793,7 +4798,7 @@ msgstr "U ontvangt {0} meldingen" #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:337 msgid "{0} set up an alert" -msgstr "{0} stel een waarschuwing in" +msgstr "Alert door {0}" #: frontend/src/metabase/query_builder/components/AlertModals.jsx:160 msgid "alerts" @@ -4924,6 +4929,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} Op doel gebaseerde waarschuwingen worden nog niet ondersteund voor grafieken met meer dan één regel, dus deze waarschuwing wordt verzonden wanneer de grafiek {1} heeft." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "resultaten" @@ -4939,47 +4945,47 @@ msgstr "Tip" msgid "usually" msgstr "doorgaans" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "Kies een segment of tabel" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "Selecteer een database" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "Selecteer..." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "Selecteer een tabel" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "Geen tabellen gevonden in deze database" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "Mist er een vraag?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "Meer informatie over geneste zoekopdrachten" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "Velden" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "Er zijn geen segmenten gevonden." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "Zoek een segment" @@ -5029,7 +5035,7 @@ msgstr "Groepering toevoegen" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5037,9 +5043,9 @@ msgstr "Groepering toevoegen" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5062,7 +5068,7 @@ msgstr "Gegroepeerd op" msgid "None" msgstr "Geen" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "Deze vraag is geschreven in {0}." @@ -5074,11 +5080,11 @@ msgstr "Verberg editor" msgid "Hide Query" msgstr "Query verbergen" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "Editor openen" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "Query weergeven" @@ -5123,7 +5129,7 @@ msgstr "ANNULEREN" msgid "Move question" msgstr "Vraag verplaatsen" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "In welke collectie moet deze komen?" @@ -5177,7 +5183,7 @@ msgstr "{0} voor deze vraag" msgid "Convert this question to {0}" msgstr "Converteer deze vraag om naar {0}" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "Het vernieuwen van deze vraag zou ongeveer {0} duren" @@ -5211,7 +5217,7 @@ msgstr "Als je me wat gegevens geeft kan ik je iets cools laten zien. Voer een z msgid "How do I use this thing?" msgstr "Hoe gebruik ik dit ding?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "Antwoord krijgen" @@ -5279,7 +5285,7 @@ msgstr "een melding ontvangen" msgid "Back to last run" msgstr "Terug naar laatste run" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "Visualisatie" @@ -5291,7 +5297,7 @@ msgstr "Geen beschrijving gezet." msgid "Use for current question" msgstr "Gebruik voor huidige vraag" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "Mogelijk bruikbare vragen" @@ -5313,9 +5319,9 @@ msgstr "Alle unieke waardes van {0}" #: frontend/src/metabase/reference/databases/FieldDetail.jsx:51 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:39 msgid "Number of {0} grouped by {1}" -msgstr "Nummer van {0} gegroepeerd bij {1}" +msgstr "Aantal van {0} per {1}" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5349,12 +5355,12 @@ msgid "Filter by {0}" msgstr "Filteren bij {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "Aantal {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "Bekijk alle {0}" @@ -5374,32 +5380,33 @@ msgstr "Bekijk de onbewerkte resultaten voor {0}" msgid "More" msgstr "Meer" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "Ongeldige expressie" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "Onbekende foutmelding" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Veld formule" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "Zie dit als het schrijven van een formule in een spreadsheetprogramma: je kunt getallen, velden in deze tabel, wiskundige symbolen zoals + en sommige functies gebruiken. Dus je zou iets kunnen typen als Subtotaal - Kosten." -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "Lees meer" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "Geef het een naam" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "Iets moois en omschrijvend" @@ -5479,7 +5486,7 @@ msgid "Enter desired number" msgstr "Voer het gewenste getal in" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "Leeg" @@ -5547,41 +5554,41 @@ msgstr "Als u meerdere optionele clausules wilt gebruiken, kun je ten minste é msgid "Read the full documentation" msgstr "Lees de volledige documentatie" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "Filter label" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "Variabel type" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "Tekst" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "Datum" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Veld filter" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "Veld om te koppelen" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "Filter widget type" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "Verplicht?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "Standaard filter widget waarde" @@ -5593,7 +5600,7 @@ msgstr "Deze vraag archiveren?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "Deze vraag zal verwijderd worden van elk dashboard of puls waar deze gebruikt wordt." -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "Vraag" @@ -5605,8 +5612,8 @@ msgstr "Kies een vraag om toe te voegen" msgid "You are editing this page" msgstr "Je ben bezig met het bewerken van deze pagina" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "Bekijk dit {0}" @@ -5614,15 +5621,15 @@ msgstr "Bekijk dit {0}" msgid "A subset of" msgstr "een deelverzameling van" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "Selecteer een veld type" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5633,8 +5640,8 @@ msgid "by" msgstr "bij" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "Veld type" @@ -5659,12 +5666,12 @@ msgid "Nothing important yet" msgstr "Nog niets belangrijks" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "Nog niets interessants" @@ -5673,12 +5680,12 @@ msgid "Things to be aware of about this {0}" msgstr "Dingen om op te letten over {0}" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "Nog niks om op te letten." @@ -5724,7 +5731,7 @@ msgstr "Iets waar gebruikers van dit {0} op moeten letten?" msgid "Which 2-3 fields do you usually group this metric by?" msgstr "Welke 2-3 velden gebruik je normaal gesproken om deze metriek te groeperen?" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "Dit is de perfecte plek om te starten wanneer je nog niet bekend bent met de data van de organisatie of wanneer je gewoon wilt controleren wat er aan de hand is." @@ -5740,11 +5747,11 @@ msgstr "Reden voor veranderingen" msgid "Leave a note to explain what changes you made and why they were required" msgstr "Laat een bericht achter om uit te leggen wat je hebt aangepast en waarom dit nodig was." -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "Waarom is deze database interessant" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "Dingen waarop je moet letten bij deze database" @@ -5754,44 +5761,44 @@ msgid "Databases and tables" msgstr "Database en tabellen" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "Details" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "Tabellen in {0}" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "Daadwerkelijke naam in database" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "Waarom is dit veld interessant?" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "Dingen om op te letten bij dit veld" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "Data type" @@ -5805,12 +5812,12 @@ msgstr "Velden in deze tabel worden weergegeven zoals ze zijn toegevoegd" msgid "Fields in {0}" msgstr "Velden in {0}" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "Veldnaam" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "X-ray dit veld" @@ -5841,11 +5848,11 @@ msgstr "Aantal {0}" msgid "See raw data for {0}" msgstr "Zie onbewerkte data van {0}" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "Waarom is deze tabel interessant" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "Dingen waar je op moet letten bij deze tabel" @@ -5859,7 +5866,7 @@ msgstr "Vragen m.b.t deze tabel worden hier weergegeven zodra deze zijn toegevoe #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "Vragen met betrekking tot {0}" @@ -5874,7 +5881,7 @@ msgstr "Toegevoegd {0} door {1}" msgid "Fields in this table" msgstr "Velden in deze tabel" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "Vragen met betrekking tot deze tabel" @@ -5910,7 +5917,7 @@ msgstr "Bekijk alle metrieken" msgid "Segments and tables" msgstr "Segmenten en tabellen" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "Tabellen" @@ -6027,8 +6034,8 @@ msgstr "Is er iemand waar gebruikers contact mee kunnen opnemen voor hulp of wan msgid "Who should users contact for help if they're confused about this data?" msgstr "Met wie zouden gebruikers contact op moeten nemen wanneer ze niet uit de data komen?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "Voeg een omschrijving toe aan deze revisie" @@ -6044,15 +6051,15 @@ msgstr "Zaken om op te letten over deze metriek" msgid "How this Metric is calculated" msgstr "Hoe wordt deze metriek berekend" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "Nog niks over hoe dit berekend wordt." -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "Andere velden die gegroepeerd kunnen worden bij deze metriek" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "Velden waarop je dit metriek kunt groeperen" @@ -6077,20 +6084,20 @@ msgid "There are no revisions for this metric" msgstr "Er zijn geen revisies voor deze metriek" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "Revisie historie voor {0}" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "X-ray deze metriek" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "Waarom is dit segment interessant" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "Dingen waarop je moet letten bij dit segment" @@ -6114,60 +6121,60 @@ msgstr "Leer meer over het aanmaken van segmenten" msgid "Questions about this segment will appear here as they're added" msgstr "Vragen over dit segment worden hier getoond zodra deze zijn toegevoegd" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "Er zijn geen revisies voor dit segment" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "Velden in dit segment" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "Vragen over dit segment" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "X-ray dit segment" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "Inloggen" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "Zoeken" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "Dashboard" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "Nieuwe vraag" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "Selecteer het type database dat je wilt" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "Voeg je data toe" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "Ik voeg mijn eigen data later toe" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "Verbinding maken met {0}" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "Je hebt wat informatie nodig van van je database, zoals de gebruikersnaam en wachtwoord. Metabase komt met een voorbeeld dataset, dus wanneer je deze gegevens nu nog niet hebt kun je al wel starten." -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "Ik voeg mijn data later toe" @@ -6175,43 +6182,43 @@ msgstr "Ik voeg mijn data later toe" msgid "Control automatic scans" msgstr "Automatische scans beheren" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "Gebruiksdatavoorkeuren" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "Bedankt dat je ons helpt te verbeteren" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "We verzamelen geen gebruiker interacties" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Om ons te helpen Metabase te verbeteren, willen we bepaalde gegevens over het gebruik verzamelen via Google Analytics." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "Hier is een volledige lijst van alles wat we bijhouden en waarom." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "Laat Metabase anoniem gebruiksgebeurtenissen verzamelen" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase verzamelt {0} je gegevens of vraagresultaten." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "nooit" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "Alle collecties zijn volledig anoniem" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "Verzameling kan op elk moment in je beheerdersinstellingen worden uitgeschakeld." @@ -6259,24 +6266,24 @@ msgstr "Hi {0}. leuk om je te ontmoeten!" msgid "Create a password" msgstr "Maak een wachtwoord" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "Sssssst..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "Bevestig wachtwoord" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "Sssssst... maar nog een keer zodat we het zeker weten" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "Je bedrijfsnaam of team naam" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "Geweldige afdeling" @@ -6453,11 +6460,11 @@ msgstr "Log in met je Google E-mailadres" msgid "User Details" msgstr "Gebruikersdetails" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "Terugzetten naar standaard waardes" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "Onbekende kaart" @@ -6465,7 +6472,7 @@ msgstr "Onbekende kaart" msgid "Grid map requires binned longitude/latitude." msgstr "Voor een rasterkaart is lengte- / breedtegraad vereist." -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "Meer" @@ -6502,31 +6509,31 @@ msgstr "Leegmaken" msgid "Rows {0}-{1} of {2}" msgstr "Rijen {0}-{1} van {2}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "Gegevens afgekapt tot {0} rijen." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "Kan visualisatie niet vinden" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "Kan deze grafiek niet met deze gegevens weergeven." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "Geen resultaten" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "Nog steeds bezig met wachten..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "Dit duurt meestal gemiddeld {0}." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(Dit is een beetje lang voor een dashboard)" @@ -6542,11 +6549,11 @@ msgstr "Selecteer een veld" msgid "error" msgstr "fout" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "Klik en versleep om de volgorde te veranderen" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "Voeg velden toe van de lijst hieronder" @@ -6685,19 +6692,19 @@ msgstr "Regel toevoegen" msgid "Update rule" msgstr "Regel bewerken" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "Visualisatie is leeg" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "Visualisatie moet een statische variabele 'identifier' definiëren:" -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "Visualisatie met deze identificatie is al geregistreerd:" -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "Geen visualisatie voor {0}" @@ -6705,11 +6712,11 @@ msgstr "Geen visualisatie voor {0}" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "\"{0}\" is een niet-geaggregeerd veld: als het op een punt op de x-as meer dan één waarde heeft, worden de waarden opgeteld." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "Voor dit grafiektype zijn minimaal 2 kolommen vereist." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "Dit grafiektype ondersteunt niet meer dan {0} gegevensreeksen." @@ -6750,7 +6757,7 @@ msgstr "Configureer deze grafiek in de grafiekinstellingen" msgid "Edit Settings" msgstr "Instellingen wijzigen" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "xWaardes missen!" @@ -6777,7 +6784,7 @@ msgid "Bubble size" msgstr "Bubble grootte" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "Lijn" @@ -6834,104 +6841,104 @@ msgstr "Niks" msgid "Linear Interpolated" msgstr "Lineaire geïnterpoleerd" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "X-as schaal" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "Tijdreeksen" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "Lineair" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "machtsverheffen" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "logaritmisch" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "Histogram" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "Rangschikkend" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "Y-as schaal" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "X-aslijn en markeringen weergeven" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Compact" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "Roteer 45°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "Roteer 90°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "Y-aslijn en markeringen weergeven" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Automatisch Y-as bereik" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "Gebruik indien nodig een gesplitste Y-as" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "Labels weergeven op X-as" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "X-as label" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "Label weergeven op Y-as" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Y-as label" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "Standaardafwijking" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "Vlak" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "vlakdiagram" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "Staaf" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "staaf diagram" @@ -6957,19 +6964,19 @@ msgstr "Trechter type" msgid "Bar chart" msgstr "Staaf diagram" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "Lijn diagram" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "Selecteer lengte- en breedtegraadkolommen in de grafiekinstellingen." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "Selecteer een regio" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "Selecteer een regio en kolommen in de grafiek instellingen" @@ -6977,73 +6984,73 @@ msgstr "Selecteer een regio en kolommen in de grafiek instellingen" msgid "Map" msgstr "Kaart" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "Kaart type" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "Regio kaart" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "Marker kaart" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "Marker type" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "Tegels" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "Markers" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "Latitude veld" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "Longitude veld" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "Metriek veld" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "Regio veld" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "Redius" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "Blur" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "Minimale doorzichtigheid" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "Maximale zoom" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "Geen relaties gevonden" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "via {0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "Deze {0} is verbonden aan" @@ -7055,7 +7062,7 @@ msgstr "Object detail" msgid "object" msgstr "object" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "Totaal" @@ -7104,7 +7111,7 @@ msgid "Progress" msgstr "Vooruitgang" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "Kleur" @@ -7195,13 +7202,13 @@ msgstr "Rechts" msgid "Show background" msgstr "Achtergrond weergeven" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "bak" msgstr[1] "bakken" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "Automatisch toegevoegd aan bak" @@ -7627,7 +7634,7 @@ msgstr "cumulatieve som" msgid "{0} and {1}" msgstr "{0} en {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} of {1}" @@ -8306,9 +8313,10 @@ msgstr "Je kunt een verzameling niet verplaatsen en tegelijkertijd archiveren." msgid "You cannot delete a Personal Collection!" msgstr "U kunt een persoonlijke verzameling niet verwijderen!" +#. "Persoonlijke verzameling van {0} {1}" van maken? De "'s" past niet altijd (bijv. bij achternaam eindigend op een "s"). #: src/metabase/models/collection.clj msgid "{0} {1}''s Personal Collection" -msgstr "{0} {1}'s persoonlijke verzameling" +msgstr "Persoonlijke verzameling van {0} {1}" #: src/metabase/models/collection_revision.clj msgid "You cannot update a CollectionRevision!" @@ -8950,31 +8958,31 @@ msgstr "Toon alle verzamelingsrechten" msgid "Also change sub-collections" msgstr "Wijzig ook subcollecties" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Kan deze verzameling en de inhoud ervan bewerken" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Kan items in deze collectie bekijken" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "Verzamelingstoegang" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "Deze groep heeft toestemming om ten minste één deelcollectie van deze verzameling te bekijken." -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "Deze groep heeft toestemming om ten minste één subcollectie van deze verzameling te bewerken." -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "Toon subverzamelingen" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "Onthoud mij" @@ -8994,7 +9002,7 @@ msgstr "Voeg deze vraag toe aan een dashboard" msgid "Create a new dashboard" msgstr "Maak een nieuw dashboard" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "De pagina die u heeft opgevraagd bestaat niet." @@ -9002,11 +9010,11 @@ msgstr "De pagina die u heeft opgevraagd bestaat niet." msgid "Select a {0}" msgstr "Selecteer een {0}" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "Dashboards, vragen en collecties opslaan in \"{0}\"" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "Toegang tot dashboards, vragen en collecties in \"{0}\"" @@ -9026,12 +9034,12 @@ msgstr "Gerelateerd" msgid "More X-rays" msgstr "Meer x-rays" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "Geen resultaten" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabase kon geen resultaten vinden voor uw zoekopdracht." @@ -9242,10 +9250,10 @@ msgstr "N/B" msgid "Windows domain" msgstr "Windows domein" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "Labels" @@ -9281,6 +9289,8 @@ msgstr "Delen" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9295,33 +9305,33 @@ msgstr "Delen" msgid "Display" msgstr "Weergave" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "Assen" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "Opmaak" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." -msgstr "Probeer deze x-rays op basis van je data." +msgstr "Probeer deze x-rays op basis van je data" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "Er was een probleem bij het weergeven van deze grafiek." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "Sorry, u heeft geen toestemming om deze kaart te zien." @@ -9341,21 +9351,21 @@ msgstr "X-ray" msgid "Compare to the rest" msgstr "Vergelijk met de rest" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "Gebruik de Java Virtual Machine (JVM) tijdzone" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "We raden je aan om dit uit te schakelen tenzij er handmatig tijdzone casting wordt uitgevoerd voor de meeste van de vragen met deze gegevens." -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 #, fuzzy msgid "Your team's most important dashboards go here" msgstr "Uw team's belangrijkste dashboards komen hier" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "Zet dashboards vast in {0} zodat ze voor iedereen in deze ruimte verschijnen" @@ -9379,12 +9389,12 @@ msgstr "Tip:" msgid "Select a currency type" msgstr "Selecteer een valutatype" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "Ved type" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "Probleemoplossen" @@ -9432,11 +9442,11 @@ msgstr "Duur (ms)" msgid "Currency" msgstr "Valuta" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "Kies een gebruiker of kanaal ..." -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "Geen opmaak instellingen" @@ -9609,15 +9619,15 @@ msgstr "Meter" msgid "Gauge ranges" msgstr "Meter bereik" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "Veld om weer te geven" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "Laatste {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} was {1} {2}" @@ -9745,7 +9755,7 @@ msgstr "kwartaal" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "{0} kaarten toevoegen aan dashboard {1}: n {2}" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "Fout bij parsen {0}: n {1}" @@ -10039,7 +10049,7 @@ msgstr "Taakgeschiedenis succesvol opgeruimd, {0} rijen zijn verwijderd" msgid "not" msgstr "niet" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "Voor meer informatie, zie" @@ -11040,6 +11050,7 @@ msgstr "Hoe deze metriek verdeeld is over verschillende nummers" msgid "Sessions by page where the session began" msgstr "Sessies per pagina wanneer de sessie begon" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11310,6 +11321,7 @@ msgstr "Database {0} bestaat niet" #: src/metabase/query_processor/store.clj msgid "Error: Database is not present in the Query Processor Store." msgstr "Error: Database is not present in the Query Processor Store." +"Error: Database is not present in the Query Processor Store." #: src/metabase/util/embed.clj msgid "Invalid embedding-secret-key! Secret key must be a hexadecimal-encoded 256-bit key (i.e., a 64-character string)." @@ -11388,15 +11400,15 @@ msgstr "Nogmaals uitvoeren?" msgid "Triggers for {0}" msgstr "Triggers voor {0}" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "Taken" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "Jobs" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "{0} gedupliceerd" @@ -11408,7 +11420,7 @@ msgstr "Dit item dupliceren" msgid "Archive this item" msgstr "Dit item archiveren" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "Dashboard dupliceren" @@ -11435,6 +11447,7 @@ msgid "Next {0}" msgstr "Volgende {0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "Vorige {0}" @@ -11529,8 +11542,8 @@ msgstr "[Q]Q" msgid "This" msgstr "Deze" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "Ongeldig" @@ -11538,11 +11551,11 @@ msgstr "Ongeldig" msgid "Add a time" msgstr "Voeg een tijd toe" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "Niets om te vergelijken voor de vorige {0}." -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "bij {0}" @@ -11598,39 +11611,39 @@ msgstr "Fout bij het toevoegen van oude SQL-instructie aan opgeslagen vraag van msgid "Failed to notify {0} Database {1} updated" msgstr "Kan {0} database {1} niet bijwerken" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "Driver aan het laden {0} {1}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "Driver laden {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "Driver niet geregistreerd na het laden: {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "Fout: poging om {0} eigenschap `:abstract?` te wijzigen van {1} naar {2}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "Abstracte driver geregistreerd {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "Registreer driver {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(bovenliggend: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "Driver initialiseren {0}..." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "Reden:" @@ -11737,6 +11750,7 @@ msgstr "Plug-ins laden in {0} ..." #: src/metabase/plugins/classloader.clj msgid "Using Clojure base loader as shared context classloader: {0}" msgstr "Using Clojure base loader as shared context classloader: {0}" +"Using Clojure base loader as shared context classloader: {0}" #: src/metabase/plugins/classloader.clj msgid "Setting current thread context classloader to shared classloader {0}..." @@ -11782,11 +11796,11 @@ msgstr "{0} dependency {1} satisfied? {2}" msgid "Plugins with unsatisfied deps: {0}" msgstr "Plugins with unsatisfied deps: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "Extract file {0} -> {1}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "Resource does not exist." @@ -12111,7 +12125,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreateDate]] per kwartaal van het jaar" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "Gebruiker wijzigen" @@ -12119,12 +12133,12 @@ msgstr "Gebruiker wijzigen" msgid "New user" msgstr "Gebruiker toevoegen" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "Wachtwoord opnieuw instellen" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "Gebruiker deactiveren" @@ -12401,11 +12415,11 @@ msgstr "Misfire instructie" msgid "Archive this?" msgstr "Dit archiveren?" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "Leer meer over je data" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "Gebruik DNS SRV bij het verbinden" @@ -12417,7 +12431,7 @@ msgstr "Als je deze optie gebruikt, moet de geleverde host een FQDN zijn. Als u "een Atlas-cluster, moet u deze optie mogelijk inschakelen. Als je niet weet wat dit betekent,\n" "laat dit uitgeschakeld." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "Voer automatisch query's uit wanneer u eenvoudig filtert en samenvat" @@ -12425,7 +12439,7 @@ msgstr "Voer automatisch query's uit wanneer u eenvoudig filtert en samenvat" msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Wanneer dit is ingeschakeld, voert Metabase automatisch zoekopdrachten uit wanneer gebruikers eenvoudige verkenningen doen met de knoppen Samenvatting en Filter bij het bekijken van een tabel of grafiek. U kunt dit uitschakelen als het opvragen van deze database langzaam is. Deze instelling heeft geen invloed op drill-throughs of SQL-query's." -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "Meer informatie over deze database" @@ -12433,25 +12447,25 @@ msgstr "Meer informatie over deze database" msgid "Archive this dashboard?" msgstr "Dit dashboard archiveren?" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "Alle resultaten" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "Onze analyse" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "Additieve som van alle waarden van een kolom. \\ Bijvoorbeeld totale omzet in de loop van de tijd." -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "Optelling van het aantal rijen. \\ Bijvoorbeeld totaal aantal verkopen in de loop van de tijd." #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Filter" @@ -12461,27 +12475,27 @@ msgid_plural "records" msgstr[0] "resultaat" msgstr[1] "resultaten" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "Browsen door data" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "SQL schrijven" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "Simpele vraag" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "Kies een aantal gegevens, bekijk deze en filter, vat samen en visualiseer deze eenvoudig." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "Aangepaste vraag" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "Gebruik de geavanceerde notebookeditor om gegevens samen te voegen, aangepaste kolommen te maken, wiskunde uit te voeren en meer." @@ -12489,7 +12503,7 @@ msgstr "Gebruik de geavanceerde notebookeditor om gegevens samen te voegen, aang msgid "Basic Metrics" msgstr "Basisstatistieken" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "Aangepast.." @@ -12505,7 +12519,7 @@ msgstr "Een limiet kiezen" msgid "Show maximum" msgstr "Maximum weergeven" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "Voorbeeld verkrijgen" @@ -12534,7 +12548,7 @@ msgid "Custom column" msgstr "Aangepaste kolom" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "Samenvatten" @@ -12551,11 +12565,10 @@ msgid "Pick the metric you want to see" msgstr "Kies de metriek die je wilt zien" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "Kies een kolom om op te groeperen" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "Kies je startgegevens" @@ -12567,7 +12580,7 @@ msgstr "Niets selecteren" msgid "Select All" msgstr "Alles selecteren" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "Kies een tabel..." @@ -12613,15 +12626,15 @@ msgid_plural "{0} breakouts" msgstr[0] "{0} breakout" msgstr[1] "{0} breakouts" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "Filters verbergen" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "Filters weergeven" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "Gestart van" @@ -12651,11 +12664,11 @@ msgstr "Weergave {0}" msgid "Summarized" msgstr "Samenvattend" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "Editor verbergen" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "Editor weergeven" @@ -12663,7 +12676,7 @@ msgstr "Editor weergeven" msgid "Pick the metric you'd like to see" msgstr "Kies de metriek die je wilt zien" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "{0} opties" @@ -12691,7 +12704,7 @@ msgstr "Voeg een metriek toe" msgid "Profile" msgstr "Profiel" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "Dit is meestal vrij snel, maar lijkt nu even te duren." @@ -12719,19 +12732,19 @@ msgstr "Onbekende segment" msgid "Unknown Filter" msgstr "Onbekende filter" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "Left outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "Right outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "Inner join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "Full outer join" @@ -12783,7 +12796,7 @@ msgstr "Applicatie database instellen" msgid "Could not find {0} driver." msgstr "Kon driver {0} niet vinden." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "Abstract drivers cannot derive from concrete parent drivers." @@ -12841,7 +12854,7 @@ msgstr "spark-deps.jar is no longer needed by Metabase 0.32.0+. You can delete i msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "Using NEWLY CREATED classloader as shared context classloader: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "Fout bij het kopiëren van bestand" @@ -12896,6 +12909,7 @@ msgstr "Cannot resolve :field-literal inside :fk-> unless inside join with expli #: src/metabase/query_processor/middleware/add_implicit_joins.clj msgid "Cannot find Table ID for {0}" msgstr "Cannot find Table ID for {0}" +"Cannot find Table ID for {0}" #: src/metabase/query_processor/middleware/add_implicit_joins.clj msgid "No matching info found." @@ -12996,7 +13010,7 @@ msgstr "Destroying query thread pool for Database {0}" #: src/metabase/query_processor/middleware/async_wait.clj msgid "Request canceled, canceling pending query" -msgstr "Request canceled, canceling pending query" +msgstr "Aanvraag geannuleerd, queries in wacht worden geannuleerd" #: src/metabase/query_processor/middleware/binning.clj msgid "Cannot update binned field: query is missing source-metadata" @@ -13020,7 +13034,7 @@ msgstr "Onbekende fout" #: src/metabase/query_processor/middleware/process_userland_query.clj msgid "Unexpected nil response from query processor." -msgstr "Unexpected nil response from query processor." +msgstr "Onverwachte nil antwoord van de query processor." #: src/metabase/query_processor/middleware/process_userland_query.clj msgid "Query canceled" @@ -13037,6 +13051,7 @@ msgstr "Unable to resolve driver for query: Database {0} does not exist." #: src/metabase/query_processor/middleware/resolve_joins.clj msgid "Cannot use :fields :all in join against source query unless it has :source-metadata." msgstr "Cannot use :fields :all in join against source query unless it has :source-metadata." +"Cannot use :fields :all in join against source query unless it has :source-metadata." #: src/metabase/query_processor/middleware/resolve_joins.clj msgid "Bad :joined-field clause: join with alias ''{0}'' does not exist. Found: {1}" @@ -13119,7 +13134,7 @@ msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "Kies de kolommen die je mee wilt nemen" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Wanneer dit is ingeschakeld, voert Metabase automatisch query's uit wanneer gebruikers eenvoudige verkenningen doen met de knoppen Samenvatting en Filter bij het bekijken van een tabel of diagram. Je kunt dit uitschakelen als het opvragen van deze database lang duurt. Deze instelling heeft geen invloed op drill-throughs of SQL-query's." @@ -13156,3 +13171,441 @@ msgstr "Fout bij het bepalen van verwachte kolommen voor query" #: src/metabase/query_processor/middleware/async.clj msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "Onbehandelde exceptie, `catch-exceptions` middleware werd verwacht om dit af te handelen." + +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "Diagnostische informatie" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "Selecteer Metabase proces:" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "Alle Metabase processen" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "Het scherm is gesloten voordat de Google Authenticatie voltooid is." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "Er is iets fout gegaan met het inloggen met Google. Neem contact op met de beheerder." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "Log in via e-mail" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "Deze optie stelt verplicht dat de ingestelde host een FQDN is. Wanneer je verbinding probeert te maken met een Atlas kluster wil je deze optie misschien inschakelen. Wanneer je niet precies weet wat dit betekend kun je deze optie beter uitgeschakeld laten." + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "Standaard voert Metabase een lichte uurlijke synchronisatie uit en een dagelijkse uitgebreide scan voor veldwaardes. Wanneer je een grote database heeft bevelen we aan om deze optie aan te zetten en te bekijken wanneer en hoe vaak de veldwaarde scans uitgevoerd worden." + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "Verwijder deze suggesties" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "Verwijder deze suggesties?" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "Dit wordt niet meer weergegeven op de homepagina van gebruikers, maar je kunt altijd bij de X-rays komen door te klikken op 'Browsen door data' in de hoofdnavigatiebalk gevolgd door de bliksemschicht op één van je tabellen." + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "Verberg deze sectie" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "Verberg deze sectie?" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "\"Onze data\" wordt niet meer getoond op de homepagina van gebruikers, maar je kunt altijd door je databases en tabellen browsen door te klikken op 'Browsen door data' in de hoofdnavigatiebalk." + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "Mijn nieuwe fanatische collectie" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "Timestamp van annuleren" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "Tijdstip van annuleren" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "Datum van annuleren" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "Timestamp van verwijderen" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "Tijdstip van verwijderen" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "Datum van verwijderen" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "Alleen in detail overzicht" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "Voeg niet toe" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "Dit veld is niet zichtbaar of selecteerbaar in vragen die met de GUI-interfaces zijn gemaakt. Het blijft toegankelijk voor SQL / native query's." + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "Cumulatieve som" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "Standaardafwijking" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "moet minimaal {0} tekens lang zijn" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "Moet ten minste {0} tekens lang zijn" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "Naam (verplicht)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "Voer geselecteerde tekst uit" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "Voer query uit" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "(⌘ + enter)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "(Ctrl + enter)" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "Hier worden de resultaten weergegeven" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "Je zal geen permanente wijzigingen aanbrengen in een opgeslagen vraag tenzij je op Opslaan klikt en ervoor kiest om de oorspronkelijke vraag te vervangen." + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "Er zijn nog geen filterwidgets voor dit type veld." + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "Zoek dit veld op" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "Waarom deze statistiek interessant is" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "Dingen die je moet weten over deze statistiek" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "Hoe deze statistiek wordt berekend" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "Gebaseerde tabel" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "(leeg)" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "Doel lijn" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "Trend lijn" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "Toon waarden op gegevenspunten" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "Waardes om te tonen" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "Zo veel als passen" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "Alles" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "Gegevens bevatten ontbrekende dimensiewaarden." + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "We zijn een ongeldige datum tegengekomen: \"{0}\"" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "De query voor deze grafiek is uitgevoerd in {0} in plaats van {1} vanwege database- of stuurprogrammabeperkingen." + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "Deze grafiek bevat zoekopdrachten die in meerdere tijdzones worden uitgevoerd: {0}" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "Er was een fout bij het uitvoeren van de query." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "Output H2-database bestaat al: %s, bezig met verwijderen." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "Er hoeft niets gemigreerd te worden, gebruik gewoon het bestaande H2-bestand" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "Doel-DB is al ingevuld!" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "System info:n {0}" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "Database setup" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "Instanties van {0} die zich niet in een verzameling bevinden, verplaatsen naar {1} verzameling {2}" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "Ongeldige clausule '{{...}}': verwacht een param-naam" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "'{{...}}' clausules mogen niet leeg zijn." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "'[[...]]' clausules moeten ten minste één '{{...}}' clausule bevatten." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "Ongeldige zoekopdracht: '[[' of '{{' zonder overeenkomst ']]' of '}} gevonden" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "Je moet een waarde kiezen voor '' {0} '' voordat deze query kan worden uitgevoerd." + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "Kan veld met ID niet vinden: {0}" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "Fout bij het laden van de namespace van het stuurprogramma" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "Kan stuurprogramma {0} niet laden." + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "Kan zoekopdracht niet uitvoeren: vereiste parameters ontbreken: {0}" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "Weet niet hoe {0} {1} geparsed moeten worden" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "Weet niet hoe alias {0} moet worden gebruiken, verwacht een ID." + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "Weet niet hoe de waarden van klasse {0} moeten worden voorbereid" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "Nieuwe verbindingspool maken voor {0} database {1} ..." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "Ongeldige tijdzone '{0}'" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "Kan tijdzone niet instellen: ongeldige of ontbrekende tekenreeks in SQL-indeling voor stuurprogramma {0}." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "Heb je set-timezone-sql geïmplementeerd?" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "Kan tijdzone '{0}' niet instellen" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "Fout met databaseverbinding" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "Fout bij parsen van JSON" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "Al dan niet tonen van data op de homepagina. Beheerders kunnen dit uitschakelen om zo gebruikers meer richting goede data te sturen in plaats van ruwe data." + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "Al dan niet tonen van x-ray suggesties op de homepagina. Deze suggesties worden niet getoond indien er vastgepinde dashboards zijn. Beheerders kunnen dit verbergen om zo gebruikers meer richting goede data te sturen in plaats van ruwe data." + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "Identificeer de bron van HTTP-aanvragen aan de hand van de waarde van deze kop in plaats van het externe adres." + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "Kan instelling {0}/{1} niet oplossen" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "Ongeldige instelling: {0}/{1}" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "heeft zijn doel bereikt" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "is onder het doel gegaan" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "Puls ({0}: {1}) verzenden via e-mail" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "Puls: {0}" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "Puls verzenden ({0}: {1}) via Slack" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "Waarschuwing versturen ({0}: {1}) via e-mail" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "Metabase-melding: {0} heeft {1}" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "Waarschuwing versturen ({0}: {1}) via Slack" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "Waarschuwing: {0}" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "Kan JS-kleurselector niet vinden op '{0}'" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "FIXME: Dit zijn geen geldige tijdelijke literals: {0} {1}. Waarom proberen we ze als zodanig te formatteren?" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "Geen overeenkomende info gevonden voor deelname aan tabel {0} '{1}' op veld {2} '{3}' via FK {4} '{5}'" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "Geen idee hoe informatie over vel {0} kan worden verkregen" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "Er is een query time-out opgetreden na {0}" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "Rijen opmaken met resultaten tijdzone-ID {0}" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "Ongeldige tijdzone-ID '{0}'" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "Vingerafdruk opslaan voor {0}" + +#. Typo in original translation: +#. Sending abandoment email! -> Sending abandonment email! +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "Verlaten e-mail verzenden!" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "De resulterende transformaties voldoen niet aan de verwachtingen.nVerwacht: {0}" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "Time-out na {0}" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "Geen tijdelijke aanpassing met de naam {0}" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "Ongeldige eenheid: {0}" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "Weet niet hoe {0} moet worden geparsed met indeling {1}" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "Waarde van token ontbreekt voor keypath {0}." + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "Gebruiksstatistieken verzenden MISLUKT" diff --git a/locales/pl.po b/locales/pl.po index 78c3eb5c998a43180107aef9d2e49f83dd1f1efa..5f30d128a96b38319bd369cc83430df6b53217ab 100644 --- a/locales/pl.po +++ b/locales/pl.po @@ -29,19 +29,18 @@ msgid "Select a database type" msgstr "Wybierz typ bazy danych" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "Zapisz" @@ -105,7 +104,7 @@ msgstr "Nigdy, ZrobiÄ™ to rÄ™cznie jeżeli bÄ™dzie potrzeba" #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "Zapisywanie..." @@ -142,16 +141,16 @@ msgstr "w tym polu:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -159,20 +158,20 @@ msgstr "w tym polu:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "Anuluj" @@ -184,33 +183,33 @@ msgstr "Anuluj" msgid "Delete" msgstr "UusÅ„" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "Bazy danych" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "Dodaj bazÄ™ danych" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "PoÅ‚Ä…czenie" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "Planowanie" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -220,18 +219,18 @@ msgstr "Planowanie" msgid "Save changes" msgstr "Zapisz zmiany" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "Akcje" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "Synchronizuj teraz schemat bazy danych" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -239,41 +238,41 @@ msgstr "Synchronizuj teraz schemat bazy danych" msgid "Starting…" msgstr "Uruchamianie..." -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "Nie można zsynchronizować" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "Synchronizacja wyzwolona!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "Ponowne skanowanie wartoÅ›ci pól teraz" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "Nie można uruchomić skanowania" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "RozpoczÄ™to skanowanie!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "Niebezpieczna strefa" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "Odrzuć zapisane wartoÅ›ci pola" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "UsuÅ„ tÄ… bazÄ™ danych" @@ -282,18 +281,17 @@ msgid "Add database" msgstr "Dodaj bazÄ™ danych" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "Nazwa" @@ -313,23 +311,24 @@ msgstr "Åadowanie..." msgid "Bring the sample dataset back" msgstr "Przywróć przykÅ‚adowy zestaw danych" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "Nie można poÅ‚Ä…czyć siÄ™ z bazÄ… danych. ProszÄ™ sprawdzić szczegóły poÅ‚Ä…czenia." -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "PomyÅ›lnie utworzone!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "PomyÅ›lnie zapisane!" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "Edycja" @@ -369,9 +368,9 @@ msgstr "Niepowodzenie" msgid "Success" msgstr "Sukces" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "PodglÄ…d" @@ -391,7 +390,7 @@ msgstr "Brak specjalnego typu" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "Inne" @@ -420,7 +419,7 @@ msgstr "Kolumn" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "Widoczność" @@ -508,35 +507,34 @@ msgstr "Szukaj tabeli" msgid "Schemas" msgstr "Schematy" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "Metryki" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "Dodaj metrykÄ™" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "Definicja" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "Stwórz metryki, aby dodać je do listy rozwijanej widoku w konstruktorze zapytaÅ„" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -544,11 +542,11 @@ msgstr "Stwórz metryki, aby dodać je do listy rozwijanej widoku w konstruktorz msgid "Segments" msgstr "Segmenty" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "Dodaj segment" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "Stwórz segmenty w celu dodania ich do Filtru w konstruktorze zapytaÅ„" @@ -594,23 +592,23 @@ msgstr "Historia" msgid "Revision History for" msgstr "Historia wersji dla" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} — ustawienia pól" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "Gdzie to pole pojawi siÄ™ w Metabase" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Filtrowanie w tym polu" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "Kiedy to pole jest używane w filtrze, jakie osoby powinny używać do wprowadzania wartoÅ›ci, którÄ… chce filtrować?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "Brak opisu dla pola" @@ -651,11 +649,11 @@ msgstr "Bieżące pole nie jest kluczem obcym lub brak jest tabeli docelowej" msgid "The selected field isn't a foreign key" msgstr "Wybrane pole nie jest kluczem obcym" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "WyÅ›wietl wartoÅ›ci" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "Wybierz aby pokazać oryginalnÄ… wartość z bazy danych lub wyÅ›wietlić pole skojarzone lub niestandardowe informacje." @@ -675,12 +673,12 @@ msgstr "Porada:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "Możesz zaktualizować nazwÄ™ pola, aby upewnić siÄ™, że nadal ma sens na podstawie opcji ponownego mapowania." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "Buforowane wartoÅ›ci pola" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabase może skanować wartoÅ›ci tego pola, aby wÅ‚Ä…czyć filtry pól wyboru w pulpitach nawigacyjnych i zapytaniach." @@ -707,82 +705,82 @@ msgstr "Odrzuć wywoÅ‚ane!" msgid "Select any table to see its schema and add or edit metadata." msgstr "Wybierz dowolnÄ… tabelÄ™, aby zobaczyć jej schemat i dodać lub edytować metadane." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "Nazwa jest wymagana" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "Opis jest wymagany" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "Wymagany jest komunikat poprawki" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "Agregacja jest wymagana" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "Edytuj metryki" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "Utwórz metryki" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "Wprowadź zmiany w metrykÄ™ i pozostaw notatkÄ™ wyjaÅ›niajÄ…cÄ…." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "Można utworzyć zapisane metryki, aby dodać do tej tabeli opcjÄ™ o nazwie metryki. Zapisane metryki obejmujÄ… typ agregacji, pole zagregowane i opcjonalnie dowolny dodany filtr. Na przykÅ‚ad, można użyć tego, aby utworzyć coÅ› jak oficjalny sposób obliczania \"Åšrednia cena\" dla tabeli zamówienia." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "Wynik:" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "Nazwij swoje metryki" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "Nadaj metrykom nazwÄ™ aby uÅ‚atwić innym znalezienie jej" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "CoÅ› opisowego, ale nie za dÅ‚ugie" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "Opisz swoje metryki" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "Opisz swoje metryki aby uÅ‚atwić ich zrozumienie dla innych" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "Jest to dobre miejsce, aby być bardziej szczegółowe o mniej oczywiste reguÅ‚y metryczne" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "Powód do zmian" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "Zostaw notatkÄ™, aby wyjaÅ›nić, jakie zmiany zostaÅ‚y wprowadzone i dlaczego byÅ‚y wymagane." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "To pojawi siÄ™ w historii zmian dla tej metryki, aby pomóc wszystkim pamiÄ™tać, dlaczego rzeczy zmieniÅ‚" @@ -798,7 +796,7 @@ msgstr "Edytuj segment" msgid "Create Your Segment" msgstr "Utwórz swój segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "Wprowadź zmiany w segmencie i pozostaw notatkÄ™ wyjaÅ›niajÄ…cÄ…." @@ -806,37 +804,37 @@ msgstr "Wprowadź zmiany w segmencie i pozostaw notatkÄ™ wyjaÅ›niajÄ…cÄ…." msgid "Select and add filters to create your new segment for the {0} table" msgstr "Wybieranie i Dodawanie filtrów w celu utworzenia nowego segmentu dla tabeli {0}" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "Nadaj nazwÄ™ segmentowi" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "Nadaj swojemu segmentowi nazwÄ™, aby pomóc innym w jego znalezieniu." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "Opisanie segmentu" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "Nadaj segmentowi opis, aby pomóc innym w zrozumieniu jego informacji." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "Jest to dobre miejsce, aby być bardziej szczegółowe o mniej oczywiste reguÅ‚y segmentu" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "BÄ™dzie to widoczne w historii zmian dla tego segmentu, aby pomóc wszystkim pamiÄ™tać, dlaczego rzeczy zmieniÅ‚" #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "Ustawienia" @@ -850,33 +848,29 @@ msgstr "Skanuj ponownie tabele" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "Dodaj" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "Niepoprawny adres email" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "ImiÄ™" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "Nazwisko" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "Adres email" @@ -913,7 +907,7 @@ msgstr "CzÅ‚onkowie" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "Email" @@ -922,8 +916,8 @@ msgid "A group is only as good as its members." msgstr "Grupa jest tak dobra jak jej czÅ‚onkowie" #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "Admin" @@ -986,11 +980,11 @@ msgstr "UsuÅ„ grupÄ™" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "Gotowe" @@ -999,9 +993,9 @@ msgid "Group name" msgstr "Nazwa grupy" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "Grupy" @@ -1030,10 +1024,10 @@ msgstr "Resetuj hasÅ‚o" msgid "Deactivate" msgstr "Deaktywuj" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "Ludzie" @@ -1072,7 +1066,7 @@ msgstr "WysÅ‚aliÅ›my zaproszenie do {0} z instrukcjami, aby ustawić hasÅ‚o." msgid "We've re-sent {0}'s invite" msgstr "Zaproszenie do {0} zostaÅ‚o ponownie wysÅ‚ane" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "Ok" @@ -1104,7 +1098,7 @@ msgstr "BÄ™dÄ… mogli ponownie siÄ™ zalogować, a zostanÄ… one umieszczone z powr msgid "Reset {0}'s password?" msgstr "Zresetować hasÅ‚o {0}?" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "Resetuj" @@ -1143,19 +1137,19 @@ msgstr "Dodaj użytkownika" msgid "Last Login" msgstr "Ostatnie logowanie" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Zapisz siÄ™ za pomocÄ… Googla" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "Zapisz siÄ™ za pomocÄ… LDAP" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "Ponowne uaktywnianie tego konta" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "Nigdy" @@ -1199,7 +1193,7 @@ msgid " native queries for " msgstr " natywne zapytania dla " #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "Uprawnienia" @@ -1256,115 +1250,115 @@ msgstr "MetaBot jest botem Metabase Slack. Możesz wybrać to, jaki ma tutaj dos msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "Grupa \"{0}\" może mieć dostÄ™p do innego zestawu {1} niż ta grupa, co może dać tej grupie dodatkowy dostÄ™p do niektórych {2}." -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "Grupa \"{0}\" ma wyższy poziom dostÄ™pu niż ten, który zastÄ…pi to ustawienie. Należy ograniczyć lub cofnąć dostÄ™p grupy \"{1}\" do tego elementu." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "Limit" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "Unieważnij" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "dostÄ™p mimo że \"{0}\" ma wiÄ™kszy dostÄ™p?" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "Ogranicz dostÄ™p" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "Odbierz dostÄ™p" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "Ograniczyć dostÄ™p do tej bazy danych?" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "ZmieÅ„" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "Czy zezwolić na Pisanie ZapytaÅ„?" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "Spowoduje to również zmianÄ™ dostÄ™pu do danych tej grupy do dla tej niezarejestrowanej bazy danych." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "Pozwól" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "Odbrać dostÄ™p do wszystkich tabel?" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "Spowoduje to również cofniÄ™cie dostÄ™pu tej grupie do zapytaÅ„ dla tej bazy danych." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "Udziel nieograniczonego dostÄ™pu" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "Nieograniczony dostÄ™p" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "Ogranicz dostÄ™p" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "Brak dostÄ™pu" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "Pisanie zapytaÅ„" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Można pisać zapytania " -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "Kolekcja kuratorów" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "Zobacz kolekcjÄ™" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "DostÄ™p do danych" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "WyÅ›wietl tabele" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "Zapytania SQL" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "WyÅ›wietl schematy" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "Model danych" @@ -1507,8 +1501,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "DostÄ™pny jest Metabase {0}. Używasz {1}" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "Aktualizuj" @@ -1531,18 +1525,20 @@ msgstr "UsuÅ„ niestandardowÄ… mapÄ™" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "UsuÅ„" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "Pobierz..." @@ -1743,7 +1739,7 @@ msgstr "Nieznane ustawienie {0}" msgid "Setup" msgstr "Ustawienia" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "Ogólny" @@ -1870,7 +1866,7 @@ msgid "Username or DN" msgstr "Użytkownik lub DN" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "HasÅ‚o" @@ -2033,31 +2029,31 @@ msgstr "ZapomniaÅ‚em hasÅ‚a" msgid "The email you use for your Metabase account" msgstr "Adres e-mail używany do korzystania z konta Metabase" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "WyÅ›lij e-mail resetowania hasÅ‚a" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "Sprawdz email w poszukiwaniu instrukcji do resetu hasÅ‚a" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "Zaloguj do Metabase" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "LUB" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "Nazwa użytkownika lub adres email" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "Zaloguj" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "Chyba zapomniaÅ‚em hasÅ‚a" @@ -2075,7 +2071,7 @@ msgid "For security reasons, password reset links expire after a little while. I msgstr "Ze wzglÄ™dów bezpieczeÅ„stwa, linki resetowania hasÅ‚a wygasajÄ… po chwili. JeÅ›li nadal musisz zresetować hasÅ‚o, możesz {0}." #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "Nowe hasÅ‚o" @@ -2088,38 +2084,38 @@ msgid "Create a new password" msgstr "Stwórz nowe hasÅ‚o" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "Upewnij siÄ™, że jego bezpieczne jak instrukcje powyżej" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "Potwierdź nowe hasÅ‚o" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "Upewnij siÄ™ że pasuje do wpisanego wczeÅ›niej" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "Twoje hasÅ‚o zostaÅ‚o zresetowane" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "Zaloguj siÄ™ nowym hasÅ‚em" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "Zapis siÄ™ nie powiódÅ‚" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2138,22 +2134,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "Pulpity nawigacyjne, kolekcje i pulsy w tej kolekcji również zostanÄ… zarchiwizowane." #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "Archiwum" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "{0} zostaÅ‚o zarchiwizowane" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "WyÅ›wietl archiwum" @@ -2163,17 +2160,19 @@ msgstr "Przywróć to {0}" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "Nasze dane" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "PrzeÅ›wietl X-ray ta tabelÄ™" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "Dowiedz siÄ™ wiÄ™cej" @@ -2268,18 +2267,18 @@ msgstr "PrzypiÄ™cia" msgid "Drag something here to pin it to the top" msgstr "PrzeciÄ…gnij coÅ› tutaj, aby przypiąć go do góry" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "Kolekcje" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "PrzeciÄ…gnij tutaj, aby odpiąć" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} wybrany element" @@ -2287,27 +2286,27 @@ msgstr[1] "{0} wybrane elementy" msgstr[2] "{0} wybrane elementy" msgstr[3] "{0} wybrane elementy" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "Przenieść {0} elementy?" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "Przenieść \"{0}\"?" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "PrzesuÅ„" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "Edytuj tÄ… kolekcjÄ™" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "Zarchiwizuj tÄ… kolekcjÄ™" @@ -2324,11 +2323,11 @@ msgstr "Nowa kolekcja" msgid "Copied!" msgstr "Skopiiowane!" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "Użyj tunelu SSH dla tego poÅ‚Ä…czenia z bazÄ… danych" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." @@ -2336,7 +2335,7 @@ msgstr "Do niektórych instalacji baz danych można uzyskać dostÄ™p tylko poprz "Ta opcja zapewnia również dodatkowÄ… warstwÄ™ zabezpieczeÅ„, gdy sieć VPN nie jest dostÄ™pna.\n" "WÅ‚Ä…czenie tego jest zwykle wolniejsze niż bezpoÅ›rednie poÅ‚Ä…czenie." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "Jest to duża baza danych, wiÄ™c pozwól mi wybrać, kiedy Metabase synchronizuje i skanuje" @@ -2346,47 +2345,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail msgstr "DomyÅ›lnie Metabase wykonuje lekkÄ… synchronizacjÄ™ godzinowÄ… i intensywnie codziennie skanuje wartoÅ›ci pól.\n" "W przypadku dużej bazy danych zaleca siÄ™ wÅ‚Ä…czenie tej funkcji i sprawdzenie, kiedy i jak czÄ™sto ma miejsce skanowanie wartoÅ›ci pola." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0}, aby wygenerować identyfikator klienta i klucz tajny klienta dla projektu." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "Kliknij tutaj" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "Wybierz \"Other\" jako typ aplikacji. Nazwij to, co chcesz." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0} w celu uzyskania kodu autoryzacji" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "z uprawnieniami dysku Google" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "Aby użyć Metabase z tymi danymi, należy wÅ‚Ä…czyć dostÄ™p do interfejsu API w konsoli programisty Google." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "{0}, aby przejść do konsoli, jeÅ›li jeszcze tego nie zrobiono." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "Jak chcesz referować do tej bazy?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "NastÄ™pny" @@ -2405,7 +2404,7 @@ msgstr "PrzesuÅ„ ten element" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "Edytuj to zapytanie" @@ -2418,7 +2417,7 @@ msgstr "Rodzaj zmiany" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "WyÅ›wietl historiÄ™ zmian" @@ -2434,7 +2433,7 @@ msgstr "Archiwizuj akcjÄ™" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "Dodaj do panelu" @@ -2445,7 +2444,7 @@ msgstr "Pobierz wyniki" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "UdostÄ™pnianie i osadzanie" @@ -2491,65 +2490,63 @@ msgstr "Na podstawie schematu" msgid "A look at your" msgstr "PrzeglÄ…d twojej" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "Wyszukiwanie na liÅ›cie" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "Szukaj wedÅ‚ug {0}" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr " lub wprowadź ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "Wipsz IP" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "Wpisz numer" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "Wpisz jakiÅ› tekst" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "Nie znaleziono pasujÄ…cego elementu {0}." -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "WÅ‚Ä…czenie wszystkich opcji w Twoim filtrze nie wyglÄ…da na najlepszy pomysł…" -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "CoÅ› poszÅ‚o nie tak" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "Ups… znaleźliÅ›my bÅ‚Ä…d. Możesz spróbować odÅ›wieżyć tÄ™ stronÄ™ lub wrócić do poprzedniej." -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "Brak opisu" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "Nowy {0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "ZapytaÅ‚ {0}" @@ -2570,8 +2567,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "Przywrócono wczeÅ›niejszÄ… wersjÄ™ i {0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "Historia zmian" @@ -2616,7 +2613,7 @@ msgid "Questions" msgstr "Pytanie" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "Pulsy" @@ -2653,7 +2650,7 @@ msgstr "Subskrybuj" msgid "You're subscribed. Thanks for using Metabase!" msgstr "Zasubskrybowane. DziÄ™ki że korzystasz z Metabase!" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "Chyba siÄ™ zgubiliÅ›my..." @@ -2662,14 +2659,14 @@ msgid "Temporary Password" msgstr "HasÅ‚o tymczasowe" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "Ukryj" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "Pokaż" @@ -2771,7 +2768,7 @@ msgstr "Wybrany" msgid "Nothing to select" msgstr "Nic do wybrania" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "Przepraszamy, nie masz uprawnieÅ„ do wyÅ›wietlania" @@ -2779,8 +2776,8 @@ msgstr "Przepraszamy, nie masz uprawnieÅ„ do wyÅ›wietlania" msgid "Unknown error encountered" msgstr "Napotkano nieznany bÅ‚Ä…d" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "Utwórz" @@ -2788,7 +2785,6 @@ msgstr "Utwórz" msgid "Create dashboard" msgstr "Utwórz panel" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "Tabela" @@ -2813,12 +2809,11 @@ msgstr "Spróbuj dostosować filtr, tak aby znaleźć to, czego szukasz." msgid "View by" msgstr "WyÅ›wietlone przez" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "z" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "Nie mów nikomu, ale jesteÅ› moim ulubieÅ„cem" @@ -2826,19 +2821,19 @@ msgstr "Nie mów nikomu, ale jesteÅ› moim ulubieÅ„cem" msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "Po podÅ‚Ä…czeniu wÅ‚asnych danych, mogÄ™ pokazać kilka automatycznych poszukiwaÅ„ o nazwie X-ray. Oto kilka przykÅ‚adów z przykÅ‚adowych danych." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "Zacznij tu" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "Nasze analizy" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "PrzeglÄ…daj elementy" @@ -2850,44 +2845,45 @@ msgstr "Zamienić lub zapisz jako nowe?" msgid "Replace original question, \"{0}\"" msgstr "ZastÄ…p oryginalne zapytanie \"{0}\"" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "Zapisz jako nowe pytanie" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "Najpierw zapisz swoje zapytanie" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "Zapisz pytanie" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "Jaka jest nazwa Twojej zakÅ‚adki?" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "Opis" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "Jest to opcjonalne, ale jakże pomocne" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "Której kolekcja powinna to trafić?" @@ -2928,11 +2924,11 @@ msgstr "Zarchiwizuj panel" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "Upewnij siÄ™, że dokonano wyboru dla każdej serii bo filtr nie bÄ™dzie dziaÅ‚ać na tej zakÅ‚adce." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "Ten panel jest pusty" -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "Dodaj zapytanie, aby zaczęło być przydatne!" @@ -2952,50 +2948,50 @@ msgstr "WyÅ‚Ä…cz tryb peÅ‚noekranowy" msgid "Enter fullscreen" msgstr "WÅ‚Ä…cz tryb peÅ‚noekranowy" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "Zapisywanie..." -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "Dodaj pytanie" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "Dodaj zapytanie do tego pulpitu" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "Dodaj filtr" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "Parametry" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "Dodaj pole tekstowe" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "PrzenieÅ› pulpit" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "Edytuj pulpit" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "ZmieÅ„ ukÅ‚ad pulpitu" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "Modyfikujesz pulpit" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Wybierz pole, które ma być filtrowane dla każdej zakÅ‚adki" @@ -3046,11 +3042,11 @@ msgstr "30 minut" msgid "60 minutes" msgstr "60 minut" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "Auto odÅ›wieżanie" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "OdÅ›wieżenie za" @@ -3062,7 +3058,7 @@ msgstr "Usunąć to pytanie?" msgid "Your dashboard was saved" msgstr "Twój panel zostaÅ‚ zapisany" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "Widzisz to" @@ -3149,10 +3145,9 @@ msgstr "usuniÄ™to pytanie z panelu" msgid "received the latest data from" msgstr "odebrano najnowsze dane z" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "Nieznany" @@ -3269,7 +3264,7 @@ msgstr "WyÅ›wietl wszystkie" msgid "Recently Viewed" msgstr "Ostatnio wyÅ›wietlane" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "Ostatnio nie przeglÄ…daÅ‚eÅ›(aÅ›) żadnych pulpitów lub zapytaÅ„" @@ -3283,11 +3278,11 @@ msgid "Unarchive" msgstr "Przywróć" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "Aktywność" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "Wyniki dla \"{0}\"" @@ -3349,6 +3344,9 @@ msgstr "Adres URL obrazu awatara" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "Wspólne" @@ -3391,8 +3389,8 @@ msgstr "Szerokość" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "Numer" @@ -3438,93 +3436,93 @@ msgstr "Czas utworzenia" msgid "Creation date" msgstr "Data utworzenia" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "Produkt" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "Użytkownik" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "ŹródÅ‚o" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "Cena" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "Sygnatura czasowa poÅ‚Ä…czenia" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "Czas poÅ‚Ä…czenia" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "Data poÅ‚Ä…czenia" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "UdostÄ™pnij" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "WÅ‚aÅ›ciciel" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "Firma" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "Subskrypcja" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "Wynik" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "TytuÅ‚" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "Komentarz" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "Cena" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Margines brutto" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "Urodziny" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "Panel wyszukiwania" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "Lista wszystkich wartoÅ›ci" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "ZwykÅ‚e pole tekstowe" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "WszÄ™dzie" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "Ustawienie domyÅ›lne. To pole bÄ™dzie wyÅ›wietlane normalnie w tabelach i na wykresach." @@ -3532,7 +3530,7 @@ msgstr "Ustawienie domyÅ›lne. To pole bÄ™dzie wyÅ›wietlane normalnie w tabelach msgid "Only in Detail Views" msgstr "Tylko w widokach szczegółowych" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "To pole bÄ™dzie wyÅ›wietlane tylko podczas przeglÄ…dania szczegółów pojedynczego rekordu. Użyj tej funkcji by uzyskać informacje, które sÄ… dÅ‚ugie lub nie sÄ… przydatne w tabeli lub na wykresie." @@ -3546,7 +3544,8 @@ msgstr "Metabase nigdy nie bÄ™dzie pobierać tego pola. Użyj tego dla informacj #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3561,8 +3560,9 @@ msgid "CumulativeCount" msgstr "LicznikÅÄ…czny" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "Sum" @@ -3571,7 +3571,7 @@ msgid "CumulativeSum" msgstr "SumaÅÄ…czna" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "Distinct" @@ -3580,25 +3580,28 @@ msgid "StandardDeviation" msgstr "OdchyleniaStandardowe" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "Average" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "Min" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "Max" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "smutna, smutna panda, wykryÅ‚a bÅ‚Ä™dy skÅ‚adniowe" @@ -3652,12 +3655,13 @@ msgid "What do you want to find out?" msgstr "Co byÅ› siÄ™ chciaÅ‚ dowiedzieć?" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "Dane" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "Skumulowany licznik" @@ -3701,174 +3705,174 @@ msgstr "Filtrowane po " msgid "Sorted by " msgstr "UporzÄ…dkowane po " -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "Prawda" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "FaÅ‚sz" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Wybierz pole dÅ‚ugoÅ›ci geograficznej" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "Podaj górnÄ… granicÄ™ szerokoÅ›ci geograficznej" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "Podaj lewÄ… granicÄ™ dÅ‚ugoÅ›ci geograficznej" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "Podaj dolnÄ… granicÄ™ szerokoÅ›ci geograficznej" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "Podaj prawÄ… granicÄ™ dÅ‚ugoÅ›ci geograficznej" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "Jest" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "Nie jest" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "Jest puste" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "Nie jest puste" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "Równa siÄ™" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "Nie równa siÄ™" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "WiÄ™ksze od" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "Mniejsze od" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "PomiÄ™dzy" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "WiÄ™ksze lub równe" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "Mniejsze lub równe" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "Zawiera" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "Nie zawiera" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "Zaczyna siÄ™ od" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "KoÅ„czy siÄ™" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "Przed" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "Po" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "W" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "Tylko tabela z wierszami, bez dodatkowych operacji." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "Ilość wierszy" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "CaÅ‚kowita liczba wierszy." -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "Suma z " -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "Suma wszystkich wartoÅ›ci kolumny." -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "Åšrednia z…" -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "Åšrednia wszystkich wartoÅ›ci kolumny" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "Liczba różnych wartoÅ›ci..." -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "Liczba unikatowych wartoÅ›ci w kolumnie ze wszystkich wierszy odpowiedzi." -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "Skumulowana suma..." @@ -3876,7 +3880,7 @@ msgstr "Skumulowana suma..." msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "Addytywna suma wszystkich wartoÅ›ci kolumny. \\\\nnp. caÅ‚kowity przychód w czasie." -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "Skumulowana liczba wierszy" @@ -3884,27 +3888,27 @@ msgstr "Skumulowana liczba wierszy" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "Addytywna liczba wierszy.\\\\nnp. Å‚Ä…czna ilość transakcji w czasie." -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "Odchylenie standardowe…" -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "Numer, który pokazuje jak bardzo wartoÅ›ci danej kolumny różniÄ… siÄ™ miÄ™dzy sobÄ…." -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "Minimum..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Minimalna wartość dla kolumny" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "Maksimum..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "Maksymalna wartość dla kolumny" @@ -4078,68 +4082,70 @@ msgstr "Inne kategorie" msgid "Category, Type, Model, Rating, etc." msgstr "Kategoria, Typ, Model, Ocena itd." -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "Ustawienia konta" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "Zamknij panel administracyjny" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "Logi" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Pomoc" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "O Metabase" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "Wyloguj siÄ™" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "DziÄ™ki za korzystanie" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "Pracujesz z wersjÄ…" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "Zbudowany na" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "jest znakiem towarowym" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "i jest tworzony w San Francisco, CA" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Metabase Admin" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "Zadaj pytanie" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "Nowy panel" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "Nowy puls" @@ -4152,7 +4158,6 @@ msgstr "Referencje" msgid "Which metric?" msgstr "Które metryki?" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "Definiowanie wspólnych metryk, upraszcza zadawanie pytaÅ„ Tobie i Twojemu zespoÅ‚owi" @@ -4170,7 +4175,7 @@ msgid "Custom" msgstr "WÅ‚asny" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "Nowe pytanie" @@ -4178,13 +4183,13 @@ msgstr "Nowe pytanie" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "Użyj tego prostego konstruktora zapytaÅ„ by zobaczyć trendy, listy lub utworzyć wÅ‚asnÄ… metrykÄ™wÅ‚asnych metryk." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "Zapytanie natywne" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "W przypadku bardziej skomplikowanych zapytaÅ„ można użyć wÅ‚asnej kwerendÄ™ w SQL lub natywnych zapytaniach." @@ -4294,7 +4299,7 @@ msgstr "Wpisz wartość..." msgid "Enter a default value..." msgstr "Wpisz wartość domyÅ›lnÄ….." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "WystÄ…piÅ‚ bÅ‚Ä…d" @@ -4545,7 +4550,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "Zalecamy utrzymanie maÅ‚ych pulsów i skoncentrowanie siÄ™ na tym, aby zapewnić ich strawność i użyteczność dla caÅ‚ego zespoÅ‚u." #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "Wybierz swoje dane" @@ -4561,47 +4566,47 @@ msgstr "Emaile" msgid "Slack messages" msgstr "WidomoÅ›ci Slack" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "WysÅ‚ane" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} zostanie wysÅ‚ane w" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "WiadomoÅ›ci" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "WyÅ›ij teraz wiadomość" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "WyÅ›lij teraz do {0}" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "WysyÅ‚anie..." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "WysyÅ‚anie siÄ™ niepowiodÅ‚o" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "Nie wysÅ‚ano, ponieważ puls nie ma wyników." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "Puls wysÅ‚any" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} musi zostać skonfigurowany przez administratora." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4688,7 +4693,7 @@ msgstr "Liczba wierszy wedÅ‚ug czasu" msgid "Break out by {0}" msgstr "PodziaÅ‚ przez {0}" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "Podsumuj ten segment" @@ -4742,15 +4747,15 @@ msgstr "RosnÄ…co" msgid "Descending" msgstr "MalejÄ…co" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "z biegiem czasu" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "Åšr" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "Różne" @@ -4948,6 +4953,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} alerty oparte na celu nie sÄ… jeszcze obsÅ‚ugiwane dla wykresów z wiÄ™cej niż jednym wierszem, wiÄ™c ten alert zostanie wysÅ‚any w każdym przypadku, gdy wykres ma {1}." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "wyniki" @@ -4963,47 +4969,47 @@ msgstr "Rada" msgid "usually" msgstr "zazwyczaj" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "Wybierz segment lub tabelÄ™" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "Wybierz bazÄ™ danych" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "Wybieranie.." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "Wybierz tabele" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "Brak tabel w tej bazie danych" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "Brakuje zapytania?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "Dowiedz siÄ™ wiÄ™cej o kwerendach zagnieżdżonych" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "Pola" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "Nie znaleziono segmentów." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "Znajdź segment" @@ -5053,7 +5059,7 @@ msgstr "Dodaj grupowanie" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5061,9 +5067,9 @@ msgstr "Dodaj grupowanie" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5086,7 +5092,7 @@ msgstr "Pogrupowane po" msgid "None" msgstr "Å»adne" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "To zapytanie jest napisane w {0}." @@ -5098,11 +5104,11 @@ msgstr "Ukryj Edytor" msgid "Hide Query" msgstr "Ukryj kwerendÄ™" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "Otwórz Edytor" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "Pokaż kwerendÄ™" @@ -5147,7 +5153,7 @@ msgstr "Anuluj" msgid "Move question" msgstr "PrzenieÅ› zapytanie" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "Która Kolekcja powinna to być?" @@ -5201,7 +5207,7 @@ msgstr "{0} na to zapytanie" msgid "Convert this question to {0}" msgstr "Przekonwertuj to zapytanie na {0}" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "To zapytanie zajmie okoÅ‚o {0}, aby odÅ›wieżyć" @@ -5237,7 +5243,7 @@ msgstr "JeÅ›li dasz mi jakieÅ› dane to mogÄ™ wam pokazać coÅ› fajnego. Uruchom msgid "How do I use this thing?" msgstr "Jak korzystać z tej rzeczy?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "Pobierz odpowiedz" @@ -5305,7 +5311,7 @@ msgstr "otrzymaÅ‚(a) alert" msgid "Back to last run" msgstr "Powrót do ostatniego uruchomienia" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "Wizualizacja" @@ -5317,7 +5323,7 @@ msgstr "Brak zestawu opis." msgid "Use for current question" msgstr "Użyj dla aktualnego zapytania" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "Potencjalnie przydatne zapytania" @@ -5341,7 +5347,7 @@ msgstr "Wszystkie różne wartoÅ›ci z {0}" msgid "Number of {0} grouped by {1}" msgstr "Liczba elementów {0} zgrupowanych wedÅ‚ug {1}" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5375,12 +5381,12 @@ msgid "Filter by {0}" msgstr "Filtruj wedÅ‚ug {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "Liczba {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "Zobacz wszystkie {0}" @@ -5400,32 +5406,33 @@ msgstr "Zobacz dane dla {0}" msgid "More" msgstr "WiÄ™cej" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "NieprawidÅ‚owe wyrażenie" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "nieznany bÅ‚Ä…d" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Pole formuÅ‚y" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "PomyÅ›l o tym jako o rodzaju jak pisanie formuÅ‚y w programie arkusza kalkulacyjnego: można użyć liczby, pola w tabeli, symbole matematyczne jak +, i niektóre funkcje. WiÄ™c można wpisać coÅ› w stylu podsumy kosztów." -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "Dowiedz siÄ™ wiÄ™cej" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "Nadaj mu nazwÄ™" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "CoÅ› miÅ‚ego i opisowego" @@ -5505,7 +5512,7 @@ msgid "Enter desired number" msgstr "Wprowadź żądanÄ… liczbÄ™" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "PustÄ™" @@ -5573,41 +5580,41 @@ msgstr "Aby użyć wielu klauzule opcjonalne można doÅ‚Ä…czyć co najmniej jede msgid "Read the full documentation" msgstr "Przeczytaj peÅ‚nÄ… dokumentacjÄ™" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "Etykieta filtra" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "Typ zmiennej" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "Tekst" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "Data" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Filtr pola" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "Pole do mapowania na" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "Typ widżetu Filtruj" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "Wymagane?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "DomyÅ›lna wartość widżetu filtr" @@ -5619,7 +5626,7 @@ msgstr "Archiwizować to zapytanie?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "To zapytanie zostanie usuniÄ™te z wszelkich pulpitów nawigacyjnych lub pulsów, używajÄ…c go." -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "Pytanie" @@ -5631,8 +5638,8 @@ msgstr "Wybierz pytanie do dodania" msgid "You are editing this page" msgstr "Edytujesz tÄ… stronÄ™" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "Zobacz {0}" @@ -5640,15 +5647,15 @@ msgstr "Zobacz {0}" msgid "A subset of" msgstr "Podzbiór z" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "Wybierz typ pola" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5659,8 +5666,8 @@ msgid "by" msgstr "przez" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "Typ pola" @@ -5685,12 +5692,12 @@ msgid "Nothing important yet" msgstr "Nic ważnego " #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "Nic interesujÄ…cego" @@ -5699,12 +5706,12 @@ msgid "Things to be aware of about this {0}" msgstr "Co należy wiedzieć o tym {0}" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "Nic strasznego" @@ -5750,7 +5757,7 @@ msgstr "Czy użytkownicy powinni zwrócić uwag na to {0}?" msgid "Which 2-3 fields do you usually group this metric by?" msgstr "Które pola 2-3 zazwyczaj grupujÄ… tÄ™ metrykÄ™?" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "Jest to idealne miejsce na rozpoczÄ™cie, jeÅ›li jesteÅ› nowy w danych firmy, lub jeÅ›li chcesz tylko sprawdzić, co siÄ™ dzieje." @@ -5766,11 +5773,11 @@ msgstr "Powody zmiany" msgid "Leave a note to explain what changes you made and why they were required" msgstr "Zostaw notatkÄ™, aby wyjaÅ›nić, jakie zmiany zostaÅ‚y wprowadzone i dlaczego byÅ‚y wymagane" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "Dlaczego ta baza danych jest interesujÄ…ca" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "Co należy wiedzieć o tej bazy danych" @@ -5780,44 +5787,44 @@ msgid "Databases and tables" msgstr "Bazy danych i tabele" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "Szczegóły" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "Tabele w {0}" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "Aktualna nazwa w bazie danych" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "Dlaczego to pole jest interesujÄ…ce" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "Co należy wiedzieć o tym polu" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "Typ danych" @@ -5831,12 +5838,12 @@ msgstr "Pola w tej tabeli pojawiÄ… siÄ™ w tym miejscu, gdy sÄ… dodawane" msgid "Fields in {0}" msgstr "Pola w {0}" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "Nazwa pola" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "PreÅ›wietl X-ray to pole" @@ -5867,11 +5874,11 @@ msgstr "Liczba {0}" msgid "See raw data for {0}" msgstr "Zobacz dane dla {0}" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "Dlaczego ta tabela jest interesujÄ…ca" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "Co należy wiedzieć o tej tabeli" @@ -5885,7 +5892,7 @@ msgstr "Zaytania dotyczÄ…ce tej tabeli pojawiÄ… siÄ™ tutaj, jak sÄ… dodawane" #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "Pytania o {0}" @@ -5900,7 +5907,7 @@ msgstr "Utworzone {0} przez {1}" msgid "Fields in this table" msgstr "Pola w tabeli" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "Zapytania dotyczÄ…ce tej tabeli" @@ -5936,7 +5943,7 @@ msgstr "Zobacz wszystkie metryki" msgid "Segments and tables" msgstr "Segmenty i tabele" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "Tabele" @@ -6053,8 +6060,8 @@ msgstr "Czy jest ktoÅ› Twój użytkownik kulisy nawiÄ…zywać kontakt pod kÄ…tem msgid "Who should users contact for help if they're confused about this data?" msgstr "Kto powinien skontaktować siÄ™ z dziaÅ‚em pomocy, jeÅ›li nie zna tych danych?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "ProszÄ™ wprowadzić komunikat poprawki" @@ -6070,15 +6077,15 @@ msgstr "Co należy wiedzieć o tej Metryce" msgid "How this Metric is calculated" msgstr "Jak obliczana jest ta Metryka" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "Nic o tym, jak jest jeszcze obliczone" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "Inne pola, po których możesz grupować tÄ™ metrykÄ™" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "Pola, po których możesz grupować tÄ™ metrykÄ™" @@ -6103,20 +6110,20 @@ msgid "There are no revisions for this metric" msgstr "Nie ma żadnych wersji dla tej metryki" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "Historia zmian dla {0}" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "PrzeÅ›wietl X-ray tÄ… MetrykÄ™" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "Dlaczego ten segment jest interesujÄ…cy" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "Co należy wiedzieć o tym segmencie" @@ -6140,60 +6147,60 @@ msgstr "Dowiedz siÄ™, jak tworzyć segmenty" msgid "Questions about this segment will appear here as they're added" msgstr "Zapytania dotyczÄ…ce tego segmentu pojawiÄ… siÄ™ w miarÄ™ ich dodawania" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "Nie ma żadnych poprawek dla tego segmentu" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "Pola w tym segmencie" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "Zapytania dotyczÄ…ce tego segmentu" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "PrzeÅ›wietl X-ray ten segment" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "Zaloguj siÄ™" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "Szukaj" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "Kokpit" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "Nowe zapytanie" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "Wybierz typ używanej bazy danych" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "Dodaj swoje dane" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "Dodam wÅ‚asne dane później" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "ÅÄ…czenie do {0}" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "Potrzebujesz informacji o bazie danych, takiej jak nazwa użytkownika i hasÅ‚o. JeÅ›li nie masz tego już teraz, Metabase jest również dostarczana z przykÅ‚adowym zestawem danych, który można rozpocząć." -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "Dodam moje dane później" @@ -6201,43 +6208,43 @@ msgstr "Dodam moje dane później" msgid "Control automatic scans" msgstr "Sterowanie automatycznym skanowaniem" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "Preferencje danych użycia" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "DziÄ™ki za pomoc w usprawnianiu nas" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "Nie bÄ™dziemy zbierać żadnych zdarzeÅ„ użycia" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Aby pomóc w ulepszaniu Metabase, chcielibyÅ›my zebrać pewne dane dotyczÄ…ce użycia w Google Analytics." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "Oto peÅ‚na lista wszystkiego, co Å›ledzimy i dlaczego." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "Zezwalaj na anonimowe zbieranie zdarzeÅ„ użycia Metabase" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase {0} gromadzi wszelkie informacje na temat wyników danych lub pytaÅ„." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "nigdy" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "CaÅ‚a kolekcja jest caÅ‚kowicie anonimowa." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "Kolekcja może być wyÅ‚Ä…czona w dowolnym momencie w ustawieniach administratora." @@ -6285,24 +6292,24 @@ msgstr "Cześć, {0} miÅ‚o CiÄ™ poznać!" msgid "Create a password" msgstr "Stwórz hasÅ‚o" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "Szzz..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "Potwierdz hasÅ‚o" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "Shhh... wiÄ™c jeszcze raz aby to prawidÅ‚owo zadziaÅ‚aÅ‚o" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "Nazwa firmy lub nazwa zespoÅ‚u" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "Departament niesamowistych" @@ -6479,11 +6486,11 @@ msgstr "Zaloguj siÄ™ za pomocÄ… e-mail Google" msgid "User Details" msgstr "Szczegóły użytkownika" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "Powróć do ustawieÅ„ fabrycznych" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "nieznana Mapa" @@ -6491,7 +6498,7 @@ msgstr "nieznana Mapa" msgid "Grid map requires binned longitude/latitude." msgstr "Mapa siatki wymaga dÅ‚ugoÅ›ci/szerokoÅ›ci geograficznej." -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "wiÄ™cej" @@ -6528,31 +6535,31 @@ msgstr "Nie ustawiono" msgid "Rows {0}-{1} of {2}" msgstr "Wiersze {0}-{1} z {2}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "Dane obciÄ™te do {0} wierszy." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "Nie można odnaleźć wizualizacji" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "Nie można wyÅ›wietlić tego wykresu z tymi danymi." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "Brak wyników!" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "Wciąż czekam..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "Zazwyczaj trwa to Å›rednio {0}." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(jest to trochÄ™ za dużo dla pulpitu)" @@ -6568,11 +6575,11 @@ msgstr "Wybierz pole" msgid "error" msgstr "bÅ‚ad" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "Kliknij i przeciÄ…gnij, aby zmienić ich kolejność" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "Dodaj pola z poniższej listy" @@ -6711,19 +6718,19 @@ msgstr "Dodaj reguÅ‚Ä™" msgid "Update rule" msgstr "Aktualizuj reguÅ‚Ä™" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "Wizualizacja jest pusta" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "Wizualizacja musi definiować statycznÄ… zmiennÄ… ‘identifier’: " -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "Wizualizacja z tym identyfikatorem jest już zarejestrowana: " -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "Brak wizualizacji dla {0}" @@ -6731,11 +6738,11 @@ msgstr "Brak wizualizacji dla {0}" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "\"{0}\" jest polem niezagregowanym: JeÅ›li w punkcie na osi x znajduje siÄ™ wiÄ™cej niż jedna wartość, wartoÅ›ci zostanÄ… zsumowane." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "Ten typ wykresu wymaga co najmniej 2 kolumny." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "Ten typ wykresu nie obsÅ‚uguje wiÄ™cej niż {0} serii danych." @@ -6780,7 +6787,7 @@ msgstr "ProszÄ™ skonfigurować ten wykres w ustawieniach wykresu" msgid "Edit Settings" msgstr "Edytuj ustawienia" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "brakuje wartoÅ›ci X!" @@ -6807,7 +6814,7 @@ msgid "Bubble size" msgstr "Rozmiar bÄ…belka" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "Linia" @@ -6864,104 +6871,104 @@ msgstr "Nic" msgid "Linear Interpolated" msgstr "Interpolacja liniowa" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "Skala osi X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "Seria czasu" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "Liniowa" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "Moc silnika" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "Log" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "Histogram" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "PorzÄ…dkowa" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "Skala osi Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "Pokaż oÅ› x linii i znaczników" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Kompaktowy" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "Obróć o 45 stopni" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "Obróć o 90 stopni" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "Pokaż liniÄ™ i znaczniki osi y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Automatyczny zakres osi y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "W razie potrzeby użyj podzielonej osi y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "Pokaż etykietÄ™ na osi x" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "Etykieta osi X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "Pokaż etykietÄ™ na osi y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Etykieta osi Y" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "Odchylenie standardowe" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "Obszar" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "wykres warstwowy" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "SÅ‚upek" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "wykres sÅ‚upkowy" @@ -6987,19 +6994,19 @@ msgstr "Typ lejka" msgid "Bar chart" msgstr "Wykres sÅ‚upkowy" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "wykres liniowy" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "ProszÄ™ wybrać kolumny dÅ‚ugoÅ›ci i szerokoÅ›ci geograficznej w ustawieniach wykresu." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "ProszÄ™ wybrać mapÄ™ regionu." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "Wybierz kolumny region i metryczne w ustawieniach wykresu." @@ -7007,73 +7014,73 @@ msgstr "Wybierz kolumny region i metryczne w ustawieniach wykresu." msgid "Map" msgstr "Mapa" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "Rodzaj mapy" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "Mapa regionu" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "Przypinanie mapy" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "Typ przypiÄ™cia" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "Kafelki" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "Oznaczenia" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "Pole szerokoÅ›ci geograficznej" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "Pole dÅ‚ugoÅ›ci geograficznej" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "Pole metryczne" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "Pole region" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "PromieÅ„" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "Rozmycie" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "Min. krycie" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "Max powiÄ™kszenie" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "Nie znaleziono relacji." -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "przez {0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "Obiekt {0} jest poÅ‚Ä…czony z:" @@ -7085,7 +7092,7 @@ msgstr "Szczegóły obiektu" msgid "object" msgstr "element" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "Razem" @@ -7134,7 +7141,7 @@ msgid "Progress" msgstr "PostÄ™p" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "Kolor" @@ -7226,7 +7233,7 @@ msgstr "Prawa" msgid "Show background" msgstr "Pokaż tÅ‚o" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "{0} kosz" @@ -7234,7 +7241,7 @@ msgstr[1] "{0} kosze" msgstr[2] "{0} koszy" msgstr[3] "{0} koszy" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "Automatycznie sortowane" @@ -7668,7 +7675,7 @@ msgstr "skumulowana suma" msgid "{0} and {1}" msgstr "{0} i {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} z {1}" @@ -8991,31 +8998,31 @@ msgstr "Zobacz wszystkie uprawnienia do kolekcji" msgid "Also change sub-collections" msgstr "Również zmienić kolekcje podrzÄ™dne" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Można edytować tej kolekcji i jej zawartość" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Można przeglÄ…dać elementy w tej kolekcji" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "DostÄ™p do kolekcji" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "Ta grupa ma uprawnienia do wyÅ›wietlania co najmniej jeden podzbiór tej kolekcji." -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "Ta grupa ma uprawnienia do edytowania co najmniej jeden podzbiór tej kolekcji." -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "WyÅ›wietl kolekcje podrzÄ™dne" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "ZapamiÄ™taj mnie" @@ -9035,7 +9042,7 @@ msgstr "Dodaj to pytanie do panelu" msgid "Create a new dashboard" msgstr "Utwórz nowy panel" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "Żądana strona nie mogÅ‚a zostać znaleziona." @@ -9043,11 +9050,11 @@ msgstr "Żądana strona nie mogÅ‚a zostać znaleziona." msgid "Select a {0}" msgstr "Wybierz {0}" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "Zapisz pulpity, zapytania i kolekcje w \"{0}\"" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "DostÄ™p do pulpitów, zapytaÅ„ i kolekcji w \"{0}\"" @@ -9067,12 +9074,12 @@ msgstr "PoÅ‚Ä…czone" msgid "More X-rays" msgstr "WiÄ™cej X-rays" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "Brak wyników" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabase nie może znaleźć żadnych wyników wyszukiwania." @@ -9283,10 +9290,10 @@ msgstr "N/A" msgid "Windows domain" msgstr "Domena systemu Windows" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "Etykiety" @@ -9321,6 +9328,8 @@ msgstr "UdostÄ™pnianie" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9335,33 +9344,33 @@ msgstr "UdostÄ™pnianie" msgid "Display" msgstr "WyÅ›wietl" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "Osie" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "Formatowanie" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "Wypróbuj te analizy bazujÄ…ce na Twoich danych." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "WystÄ…piÅ‚ problem podczas wyÅ›wietlania tego wykresu." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "Niestety, nie masz uprawnieÅ„, aby zobaczyć tÄ™ kartÄ™." @@ -9381,21 +9390,21 @@ msgstr "RTG" msgid "Compare to the rest" msgstr "Porównaj z resztÄ…" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "Korzystanie z timezone wirtualnej maszyny Java (JVM)" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "Sugerujemy zostawić to, chyba że robisz rÄ™czne mapowanie stref czasowych \n" "w wielu lub wiÄ™kszoÅ›ci zapytaÅ„ z tych danych." -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "Tutaj trafiajÄ… najważniejsze pulpity Twojego zespoÅ‚u" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "Przypnij pulpit w {0} aby byÅ‚ dostÄ™pny z tego miejsca dla każdego" @@ -9419,12 +9428,12 @@ msgstr "Wskazówka:â£" msgid "Select a currency type" msgstr "Wybierz typ waluty" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "Typ Pola" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "KÅ‚opoty" @@ -9472,11 +9481,11 @@ msgstr "Czas trwania (ms)" msgid "Currency" msgstr "waluta" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "Wybierze użytkownika lub kanaÅ‚..." -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "Brak ustawieÅ„ formatowania" @@ -9649,15 +9658,15 @@ msgstr "Wskaźnik" msgid "Gauge ranges" msgstr "Zakres wskaźnika" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "Pola do pokazania" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "ostatni {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} byÅ‚o {1} {2}" @@ -9785,7 +9794,7 @@ msgstr "kwartaÅ‚" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "Dodawanie kart {0} do pulpitu {1}:n{2}" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "BÅ‚Ä…d parsowania {0}:n{1}" @@ -10080,7 +10089,7 @@ msgstr "Czyszczenie historii zadaÅ„ zakoÅ„czyÅ‚o siÄ™ pomyÅ›lnie, wiersze zosta msgid "not" msgstr "nie" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "Aby uzyskać wiÄ™cej informacji, zobacz" @@ -11081,6 +11090,7 @@ msgstr "W jaki sposób dane sÄ… rozÅ‚ożone na różne liczby" msgid "Sessions by page where the session began" msgstr "Sesje wedÅ‚ug strony, na której rozpoczęła siÄ™ sesja" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11429,15 +11439,15 @@ msgstr "Uruchomić ponownie?" msgid "Triggers for {0}" msgstr "Wyzwalacze dla {0}" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "CzynnoÅ›ci" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "Zadania" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "Powielone {0}" @@ -11449,7 +11459,7 @@ msgstr "Powiel ten element" msgid "Archive this item" msgstr "Zarchiwizuj ten element" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "Powiel pulpit" @@ -11476,6 +11486,7 @@ msgid "Next {0}" msgstr "NastÄ™pny {0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "Poprzedni {0}" @@ -11590,8 +11601,8 @@ msgstr "[Q]Q" msgid "This" msgstr "To" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "Niepoprawne" @@ -11599,11 +11610,11 @@ msgstr "Niepoprawne" msgid "Add a time" msgstr "Dodaj czas" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "Nic do porównania dla poprzedniego {0}." -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "przez {0}" @@ -11659,39 +11670,39 @@ msgstr "BÅ‚Ä…d podczas dodawania starszej dyrektywy SQL do zapisanego zapytania msgid "Failed to notify {0} Database {1} updated" msgstr "Nie udaÅ‚o siÄ™ powiadomić {0} baza danych {1} zaktualizowana" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "Åadowanie sterownika {0} {1}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "ZaÅ‚aduj sterownik {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "Sterownik nie zostaÅ‚ zarejestrowany po zaÅ‚adowaniu: {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "BÅ‚Ä…d: próba zmiany wÅ‚aÅ›ciwoÅ›ci {0} `: abstract?` z {1} na {2}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "Zarejestrowany abstrakcyjny sterownik {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "Registered driver {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(rodzice: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "inicjowanie sterownika {0} ..." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "Przyczyna:" @@ -11838,16 +11849,17 @@ msgstr "Wtyczka \"{0}\" zależy od wtyczki \"{1}\"" #: src/metabase/plugins/dependencies.clj msgid "{0} dependency {1} satisfied? {2}" msgstr "{0} zależnoÅ›ci {1} zadowolony? {2}" +"" #: src/metabase/plugins/dependencies.clj msgid "Plugins with unsatisfied deps: {0}" msgstr "Wtyczki z niezadowalajÄ…cymi zależnoÅ›ciami: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "WyodrÄ™bnij plik {0} -> {1}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "Zasób nie istnieje." @@ -12172,7 +12184,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreateDate]] wedÅ‚ug kwartaÅ‚u roku" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "Edytuj użytkownika" @@ -12180,12 +12192,12 @@ msgstr "Edytuj użytkownika" msgid "New user" msgstr "Nowy użytkownik" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "Zresetuj hasÅ‚o" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "Dezaktywuj użytkownika" @@ -12463,11 +12475,11 @@ msgstr "Instrukcja niewypaÅ‚u" msgid "Archive this?" msgstr "Zarchiwizować to?" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "Dowiedz siÄ™ o naszych danych" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "Użyj przy poÅ‚Ä…czeniu DNS SRV" @@ -12478,7 +12490,7 @@ msgid "Using this option requires that provided host is a FQDN. If connecting t msgstr "Korzystanie z tej opcji wymaga, aby podany host byÅ‚ nazwÄ… FQDN. JeÅ›li Å‚Ä…czysz siÄ™ z Atlas Cluster, może być konieczne wÅ‚Ä…czenie tej opcji. JeÅ›li nie wiesz co to znaczy,\n" "pozostaw to wyÅ‚Ä…czone." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "Automatycznie uruchamiaj zapytania podczas prostego filtrowania i podsumowywania" @@ -12486,7 +12498,7 @@ msgstr "Automatycznie uruchamiaj zapytania podczas prostego filtrowania i podsum msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Po wÅ‚Ä…czeniu tej opcji Metabasa automatycznie uruchamia zapytania, gdy użytkownicy wykonujÄ… proste eksploracje za pomocÄ… przycisków Podsumuj i Filtruj podczas przeglÄ…dania tabeli lub wykresu. Możesz to wyÅ‚Ä…czyć, jeÅ›li odpytywanie tej bazy danych jest powolne. To ustawienie nie wpÅ‚ywa na drążenie wszerz lub zapytania SQL." -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "Dowiedz siÄ™ o tej bazie danych" @@ -12494,25 +12506,25 @@ msgstr "Dowiedz siÄ™ o tej bazie danych" msgid "Archive this dashboard?" msgstr "Zarchiwizować ten pulpit?" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "Wszystkie wyniki" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "Nasze Analizy" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "CaÅ‚kowita suma wszystkich wartoÅ›ci kolumny. \\ne.x. przychody ogółem w czasie." -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "CaÅ‚kowita liczba wierszy. \\ne.x. Å‚Ä…czna liczba sprzedaży w czasie." #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Filtr" @@ -12524,27 +12536,27 @@ msgstr[1] "rekordy" msgstr[2] "rekordy" msgstr[3] "rekordy" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "PrzeglÄ…daj Dane" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "Napisz SQL" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "Proste pytanie" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "Wybierz niektóre dane, wyÅ›wietl je i Å‚atwo filtruj, podsumowuj i wizualizuj." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "Niestandardowe zapytanie" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "Korzystaj z zaawansowanego edytora notatników, aby Å‚Ä…czyć dane, tworzyć niestandardowe kolumny, wykonywać matematykÄ™ i wykonywać inne czynnoÅ›ci." @@ -12552,7 +12564,7 @@ msgstr "Korzystaj z zaawansowanego edytora notatników, aby Å‚Ä…czyć dane, twor msgid "Basic Metrics" msgstr "Podstawowe Metryki" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "WÅ‚asne..." @@ -12568,7 +12580,7 @@ msgstr "Wybierz limit" msgid "Show maximum" msgstr "Pokaż maksimum" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "Pokaż PodglÄ…d" @@ -12597,7 +12609,7 @@ msgid "Custom column" msgstr "WÅ‚asna kolumna" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "Podsumuj" @@ -12614,11 +12626,10 @@ msgid "Pick the metric you want to see" msgstr "Wybierz dane, które chcesz zobaczyć" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "Wybierz kolumnę grupowania" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "Wybierz poczÄ…tkowe dane" @@ -12630,7 +12641,7 @@ msgstr "Wybierz Brak" msgid "Select All" msgstr "Zaznacz wszystko" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "Wybierz tabelÄ™..." @@ -12678,15 +12689,15 @@ msgstr[1] "{0} breakouts" msgstr[2] "{0} breakouts" msgstr[3] "{0} breakouts" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "Ukryj filtry" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "Pokaż filtry" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "Zacznij od" @@ -12718,11 +12729,11 @@ msgstr "Pokazuje {0}" msgid "Summarized" msgstr "Streszczony" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "Ukryj edytor" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "Pokaż edytor" @@ -12730,7 +12741,7 @@ msgstr "Pokaż edytor" msgid "Pick the metric you'd like to see" msgstr "Wybierz dane, które chcesz zobaczyć" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "{0} opcji" @@ -12758,7 +12769,7 @@ msgstr "Dodaj metrykÄ™" msgid "Profile" msgstr "Profil" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "Zazwyczaj jest to dość szybkie, ale wydaje siÄ™, że zajmuje to teraz trochÄ™ czasu." @@ -12786,19 +12797,19 @@ msgstr "Nieznany Segment" msgid "Unknown Filter" msgstr "Nieznany Filtr" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "Left outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr " Right outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "Inner join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "Full outer join" @@ -12850,7 +12861,7 @@ msgstr "Konfiguracja bazy danych aplikacji" msgid "Could not find {0} driver." msgstr "Nie można znaleźć sterownika {0}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "Sterowniki abstrakcyjne nie mogÄ… pochodzić od konkretnych sterowników nadrzÄ™dnych." @@ -12885,6 +12896,7 @@ msgstr "BÅ‚Ä…d podczas niszczenia puli wÄ…tków dla bazy danych." #: src/metabase/models/humanization.clj msgid "Updating display name for {0} ''{1}'': ''{2}'' -> ''{3}''" msgstr "Aktualizowanie nazwy wyÅ›wietlanej dla {0} ''{1}'': ''{2}'' -> ''{3}''" +"" #: src/metabase/models/humanization.clj msgid "Invalid humanization strategy ''{0}''. Valid strategies are: {1}" @@ -12908,7 +12920,7 @@ msgstr "Spark-deps.jar nie jest już wymagany przez Metabase 0.32.0+. Możesz us msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "Używanie NOWO TWORZONEGO moduÅ‚u Å‚adujÄ…cego klasy jako moduÅ‚u współdzielonego kontekstowego moduÅ‚u Å‚adujÄ…cego: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "Nie udaÅ‚o siÄ™ skopiować pliku" @@ -13186,7 +13198,7 @@ msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "Wybierz kolumny, które chcesz uwzglÄ™dnić" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Gdy ta opcja jest wÅ‚Ä…czona, Metabase automatycznie uruchamia zapytania, gdy użytkownicy wykonujÄ… proste eksploracje za pomocÄ… przycisków Podsumuj i Filtruj podczas przeglÄ…dania tabeli lub wykresu. Możesz to wyÅ‚Ä…czyć, jeÅ›li odpytywanie tej bazy danych jest powolne. To ustawienie nie wpÅ‚ywa na drążenie wszerz lub zapytania SQL." @@ -13223,3 +13235,440 @@ msgstr "BÅ‚Ä…d podczas okreÅ›lania oczekiwanych kolumn dla zapytania" #: src/metabase/query_processor/middleware/async.clj msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "NieobsÅ‚ugiwany wyjÄ…tek, oczekiwane oprogramowanie poÅ›redniczÄ…ce `catch-exceptions` do obsÅ‚ugi." + +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "Informacje diagnostyczne" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "Wybierz proces Metabase:" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "Wszystkie procesy Metabase" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "Okno zostaÅ‚o zamkniÄ™te przed zakoÅ„czeniem uwierzytelnienia Google." + +#. there is an error in original version - Pleast instead Please +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "Podczas logowania w Google wystÄ…piÅ‚ problem. Skontaktuj siÄ™ z administratorem." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "Zaloguj siÄ™ przez e-mail" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "Korzystanie z tej opcji wymaga, aby podany host byÅ‚ nazwÄ… FQDN. W przypadku Å‚Ä…czenia siÄ™ z klastrem Atlas może być konieczne wÅ‚Ä…czenie tej opcji. JeÅ›li nie wiesz, co to oznacza, pozostaw to wyÅ‚Ä…czone." + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "DomyÅ›lnie Metabase wykonuje lekkÄ… synchronizacjÄ™ godzinowÄ… i intensywny codzienny skan wartoÅ›ci pól. JeÅ›li masz dużą bazÄ™ danych, zalecamy wÅ‚Ä…czenie tej opcji i sprawdzenie, kiedy i jak czÄ™sto skanowane sÄ… wartoÅ›ci pola." + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "UsuÅ„ te sugestie" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "Usuąć te sugestie?" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "Nie bÄ™dÄ… one już wyÅ›wietlane na stronie głównej żadnego z użytkowników, ale zawsze możesz przejść do x-rays , klikajÄ…c PrzeglÄ…daj dane w głównej nawigacji, a nastÄ™pnie ikonÄ™ bÅ‚yskawicy na jednym ze swoich stolików." + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "Ukryj tÄ™ sekcjÄ™" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "Usunąć tÄ™ sekcjÄ™?" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "„Nasze dane†nie bÄ™dÄ… siÄ™ już wyÅ›wietlać na stronie głównej żadnego z użytkowników, ale zawsze możesz przeglÄ…dać bazy danych i tabele, klikajÄ…c PrzeglÄ…daj dane w głównej nawigacji." + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "Moja nowa fantastyczna kolekcja" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "Znacznik czasu anulowania" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "Czas anulowania" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "Data anulowania" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "Znacznik czasu usuniÄ™cia" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "Czas usuwania" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "Data usuniÄ™cia" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "Tylko szczegółowe widoki" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "Nie zawiera" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "To pole nie bÄ™dzie widoczne ani możliwe do wyboru w pytaniach utworzonych za pomocÄ… interfejsów użytkownika GUI. BÄ™dzie nadal dostÄ™pny w zapytaniach SQL." + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "Skumulowana suma" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "Odchylenie standardowe" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "musi mieć co najmniej {0} znaków" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "Musi mieć co najmniej {0} znaków" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "Nazwa (wymagane)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "Uruchom zaznaczony tekst" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "Uruchom zapytanie" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "(⌘ + enter)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "(Ctrl + enter)" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "Oto, gdzie pojawiÄ… siÄ™ Twoje wyniki" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "Nie wprowadzisz żadnych trwaÅ‚ych zmian w zapisanym pytaniu, chyba że klikniesz Zapisz i zdecydujesz siÄ™ zastÄ…pić oryginalne pytanie." + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "Nie ma jeszcze widżetów filtrów dla tego typu pól." + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "Wyszukaj to pole" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "Dlaczego ta metryka jest interesujÄ…ca" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "Rzeczy, o których należy pamiÄ™tać w zwiÄ…zku z tym wskaźnikiem" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "Jak obliczany jest ten wskaźnik" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "Tabela, na której jest oparty" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "(pusty)" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "Linia docelowa" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "Linia trendu" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "Pokaż wartoÅ›ci w punktach danych" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "WartoÅ›ci do pokazania" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "Tyle, ile można Å‚adnie zmieÅ›cić" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "Wszystko" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "Dane obejmujÄ… brakujÄ…ce wartoÅ›ci wymiarów." + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "NapotkaliÅ›my niepoprawnÄ… datÄ™: \"{0}\"" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "Kwerenda dla tego wykresu zostaÅ‚a uruchomiona w {0} zamiast {1} z powodu ograniczeÅ„ bazy danych lub sterowników." + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "Ten wykres zawiera zapytania uruchamiane w wielu strefach czasowych: {0}" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "WystÄ…piÅ‚ bÅ‚Ä…d podczas uruchamiania zapytania." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "WyjÅ›ciowa baza danych H2 już istnieje: % s, usuwanie." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "Nie musisz migrować, po prostu użyj istniejÄ…cego pliku H2" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "Docelowa baza danych jest już wypeÅ‚niona!" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "Informacje o systemie: n {0}" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "Konfiguracja bazy danych" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "Przenoszenie instancji {0}, których nie ma w kolekcji do {1} kolekcji {2}" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "Niepoprawna klauzula \"{{...}}\": oczekiwaÅ‚a nazwy parametru" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "Klauzule \"{{...}}\" nie mogÄ… być puste." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "Klauzule \"[[...]]\" muszÄ… zawierać co najmniej jednÄ… klauzulÄ™ \"{{...}}\"." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "NieprawidÅ‚owe zapytanie: znaleziono \"[[\" lub \"{{\" bez pasujÄ…cego „]]†lub \"}}\"" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "Musisz wybrać wartość \"{0}\", zanim bÄ™dzie można uruchomić to zapytanie." + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "Nie można znaleźć pola o identyfikatorze: {0}" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "BÅ‚Ä…d podczas Å‚adowania przestrzeni nazw sterownika" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "Nie można zaÅ‚adować sterownika {0}." + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "Nie można uruchomić zapytania: brak wymaganych parametrów: {0}" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "Nie wiem, jak analizować {0} {1}" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "Nie wiem jak do aliasu {0}, oczekiwano identyfikatora." + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "Nie wiem, jak przygotować wartoÅ›ci klasy {0}" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "Tworzenie nowej puli poÅ‚Ä…czeÅ„ dla bazy danych {0} {1} ..." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "NieprawidÅ‚owa strefa czasowa \"{0}\"" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "Nie można ustawić strefy czasowej: niepoprawny lub brakujÄ…cy ciÄ…g formatu SQL dla sterownika {0}." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "Czy zaimplementowaÅ‚eÅ› set-timezone-sql?" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "Nie udaÅ‚o siÄ™ ustawić strefy czasowej \"{0}\"" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "BÅ‚Ä…d poÅ‚Ä…czenia z bazÄ… danych" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "BÅ‚Ä…d podczas analizowania JSON" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "OkreÅ›la, czy wyÅ›wietlać dane na stronie głównej. Administratorzy mogÄ… to wyÅ‚Ä…czyć, aby skierować użytkowników do lepszych treÅ›ci niż surowe dane" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "OkreÅ›la, czy wyÅ›wietlać sugestie X-RAY na stronie głównej. BÄ™dÄ… również ukryte, jeÅ›li przypiÄ™te zostanÄ… jakiekolwiek pulpity nawigacyjne. Administratorzy mogÄ… ukryć to, aby kierować użytkowników do lepszych treÅ›ci niż surowe dane" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "Zidentyfikuj źródÅ‚o żądaÅ„ HTTP wedÅ‚ug wartoÅ›ci tego nagłówka, zamiast jego zdalnego adresu." + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "Nie można rozwiÄ…zać ustawienia {0} / {1}" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "NieprawidÅ‚owe ustawienie: {0} / {1}" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "osiÄ…gnÄ…Å‚ swój cel" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "spadÅ‚ poniżej celu" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "WysyÅ‚anie impulsu ({0}: {1}) pocztÄ… elektronicznÄ…" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "Puls: {0}" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "WysyÅ‚anie Pulsu ({0}: {1}) przez Slack" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "WysyÅ‚anie alertu ({0}: {1}) pocztÄ… elektronicznÄ…" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "Alert Metabase: {0} ma {1}" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "WysyÅ‚anie alertu ({0}: {1}) przez Slack" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr " Alert: {0} " + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "Nie można znaleźć selektora kolorów JS w \"{0}\"" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "FIXME: To nie sÄ… poprawne literaÅ‚y czasowe: {0} {1}. Dlaczego próbujemy sformatować je jako takie?" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "Nie znaleziono pasujÄ…cych informacji dla zÅ‚Ä…czenia z tabelÄ… {0} \"{1}\" na polu {2} \"{3}\" przez FK {4} \"{5}\"" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "Nie wiem, jak uzyskać informacje o polu: {0}" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "UpÅ‚ynÄ…Å‚ limit czasu zapytania po {0}" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "Formatowanie wierszy z identyfikatorem strefy czasowej wyników {0}" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "NieprawidÅ‚owy identyfikator strefy czasowej \"{0}\"" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "Zapisywanie odcisku palca dla {0}" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "WysyÅ‚anie wiadomoÅ›ci e-mail o rezygnacji!" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "Wynikowe przeksztaÅ‚cenia nie sÄ… zgodne z oczekiwaniami. nExpected: {0}" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "Przekroczono limit czasu po {0}" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "Brak korektora czasowego o nazwie {0}" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "NieprawidÅ‚owa jednostka: {0}" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "Nie wiem, jak parsować {0} przy użyciu formatu {1}" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "W tokenie brakuje wartoÅ›ci dla keypath {0}" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "WysyÅ‚anie statystyk użytkowania NIE powiodÅ‚o siÄ™" diff --git a/locales/pt.po b/locales/pt.po index f0f0324bd8cb86897e3baa7d1e6b19f676ea63e8..2c50159bac45911781a77f2ad7280ba3116bad6a 100644 --- a/locales/pt.po +++ b/locales/pt.po @@ -29,19 +29,18 @@ msgid "Select a database type" msgstr "Selecione um tipo de banco de dados" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "Salvar" @@ -102,7 +101,7 @@ msgstr "Nunca, eu farei isto manualmente se precisar" #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "Salvando..." @@ -140,16 +139,16 @@ msgstr "nesta caixa:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -157,20 +156,20 @@ msgstr "nesta caixa:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "Cancelar" @@ -183,33 +182,33 @@ msgid "Delete" msgstr "Excluir" #. Existem alguns campos traduzidos como Bancos de dados e outros como base de dados. Para seguir o padrão, ajustei para Banco de dados -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "Bancos de Dados" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "Adicionar banco de dados" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "Conexão" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "Agendamento" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -219,18 +218,18 @@ msgstr "Agendamento" msgid "Save changes" msgstr "Salvar alterações" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "Ações" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "Sincronize o esquema do banco de dados agora" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -238,41 +237,41 @@ msgstr "Sincronize o esquema do banco de dados agora" msgid "Starting…" msgstr "Iniciando..." -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "Não foi possÃvel sincronizar" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "Sincronização iniciada!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "Verificar novamente os valores do campo agora" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "A verificação não pôde ser iniciada" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "Verificação começou!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "Zona Perigosa" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "Descartar valores de campo salvos" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "Remover este banco de dados" @@ -281,18 +280,17 @@ msgid "Add database" msgstr "Adicionar banco de dados" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "Nome" @@ -312,23 +310,24 @@ msgstr "Carregando..." msgid "Bring the sample dataset back" msgstr "Recuperar o conjunto de dados de exemplo" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "Não foi possÃvel conectar-se ao banco de dados. Por favor, verifique o detalhes da conexão." -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "Criado com sucesso!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "Salvo com sucesso!" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "Editar" @@ -369,9 +368,9 @@ msgstr "Falhou" msgid "Success" msgstr "Sucesso" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "Pré-visualizar" @@ -391,7 +390,7 @@ msgstr "Sem tipo especial" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "Outro" @@ -420,7 +419,7 @@ msgstr "Coluna" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "Visibilidade" @@ -502,35 +501,34 @@ msgstr "Encontre uma tabela" msgid "Schemas" msgstr "Esquemas" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "Métricas" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "Adicione uma métrica" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "Definição" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "Crie métricas para adicionar ao menu Visualizar no editor de consultas" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -538,11 +536,11 @@ msgstr "Crie métricas para adicionar ao menu Visualizar no editor de consultas" msgid "Segments" msgstr "Segmentos" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "Adicionar um segmento" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "Criar segmentos para adicionar ao menu Filtro no editor de consultas" @@ -588,23 +586,23 @@ msgstr " História" msgid "Revision History for" msgstr "Histórico de revisão para" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} - configuração" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "Onde este campo aparecerá no Metabase" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Filtrando neste campo" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "Quando esse campo é usado em um filtro, quais valores ele deve aceitar?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "Ainda não há descrição para este campo" @@ -645,11 +643,11 @@ msgstr "O campo atual não é uma chave estrangeira ou os metadados principais e msgid "The selected field isn't a foreign key" msgstr "O campo selecionado não é uma chave estrangeira" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "Valores exibidos" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "Escolha se você deseja mostrar o valor original do banco de dados ou mostrar informações associadas ou personalizadas." @@ -669,12 +667,12 @@ msgstr "Conselho:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "Você pode querer atualizar o nome do campo para ter certeza de que ainda tem significado dependendo das opções de alocação." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "Valores de campo no cache" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "o Metabase pode digitalizar os valores nesse campo para habilitar Filtros da caixa de seleção em painéis e perguntas." @@ -701,82 +699,82 @@ msgstr "Limpeza iniciada!" msgid "Select any table to see its schema and add or edit metadata." msgstr "Selecione qualquer tabela para ver seu esquema e adicionar ou editar metadados." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "Nome é obrigatório" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "Descrição é obrigatória" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "Mensagem da revisão é obrigatória" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "A agregação é obrigatória" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "Edite sua métrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "Crie sua métrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "Faça alterações na sua métrica e deixe uma nota explicativa." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "Você pode criar métricas e salvá-las como um campo calculado nessa tabela. As métricas salvas incluem o tipo de agregação, o campo agregado e opcionalmente, qualquer filtro que você adicionar. Por exemplo, você pode usar esse para definir a forma oficial de calcular o \"Preço Médio\" para una Tabela Pedidos." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "Resultado: " -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "Nomeie sua métrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "Dê um nome à sua métrica para ajudar outras pessoas a encontrarem." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "Algo descritivo, mas não muito longo" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "Descreva sua métrica" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "Dê uma descrição à sua métrica para ajudar os outros a entender o que é tente" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "Este é um bom lugar para ser mais especÃfico sobre as regras de métrica menos óbvio" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "Razão para alterações" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "Deixe uma nota para explicar que alterações você fez e por que elas foram necessário." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "Isso aparecerá no histórico de revisão dessa métrica para ajudar todos para lembrar por que a mudança foi feita" @@ -792,7 +790,7 @@ msgstr "Edite seu segmento" msgid "Create Your Segment" msgstr "Crie seu segmento" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "Faça alterações no seu segmento e deixe uma nota explicativa." @@ -800,37 +798,37 @@ msgstr "Faça alterações no seu segmento e deixe uma nota explicativa." msgid "Select and add filters to create your new segment for the {0} table" msgstr "Selecione e adicione filtros para criar um novo segmento para a tabela {0}" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "Nomeie seu segmento" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "Dê um nome ao seu segmento para ajudar outras pessoas a encontrá-lo." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "Descreva seu segmento" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "Dê ao seu segmento uma descrição para ajudar os outros a entender o que é tente" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "Este é um bom lugar para ser mais especÃfico sobre as regras de segmentação menos óbvia" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "Isso aparecerá no histórico de revisão deste segmento para ajudar todos para lembrar por que a mudança foi feita" #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "Configuração" @@ -844,33 +842,29 @@ msgstr "Releia esta tabela" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "Adicionar" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "Formato do e-mail incorreto" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "Nome" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "Sobrenome" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "Endereço de e-mail" @@ -906,7 +900,7 @@ msgstr "Membros" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "E-mail" @@ -915,8 +909,8 @@ msgid "A group is only as good as its members." msgstr "Um grupo vale apenas o que seus membros valem." #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "Administrador" @@ -977,11 +971,11 @@ msgstr "Excluir grupo" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "Feito" @@ -990,9 +984,9 @@ msgid "Group name" msgstr "Nome do Grupo" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "Grupos" @@ -1021,10 +1015,10 @@ msgstr "Redefinir senha" msgid "Deactivate" msgstr "Desativar" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "Pessoas" @@ -1063,7 +1057,7 @@ msgstr "Enviamos um convite para {0} com instruções para configurar a senha de msgid "We've re-sent {0}'s invite" msgstr "Enviamos novamente um convite para: {0}" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "Okay" @@ -1095,7 +1089,7 @@ msgstr "Eles poderão logar novamente, e serão colocados de volta nos grupos qu msgid "Reset {0}'s password?" msgstr "Redefinir a senha de {0}?" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "Redefinir" @@ -1134,19 +1128,19 @@ msgstr "Adicione alguém" msgid "Last Login" msgstr "Último acesso" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Acesso via Google" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "Acesso via LDAP" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "Reativar esta conta" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "Nunca" @@ -1188,7 +1182,7 @@ msgid " native queries for " msgstr " consultas nativas para " #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "Permissões" @@ -1245,116 +1239,116 @@ msgstr "O Metabot é o bot Slack do Metabase. Você pode escolher o que ele tem msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "O grupo \"{0}\" pode ter acesso a um conjunto diferente de {1} que este grupo, o que pode dar a este grupo acesso adicional a alguns {2}." -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "O grupo \"{0}\" tem um nÃvel de acesso maior que este, o que anulará esta configuração. Você deveria limitar ou revogar o acceso do grupo '{1}' a este elemento." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "Limite" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "Revogar" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "acesso apesar que o grupo \"{0}\" tem maior acceso?" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "Limite de acesso" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "Revogar acesso" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "Alterar o acesso a este banco de dados para limitado?" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "Alterar" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "Permitir a gravação de consultas diretas" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "Isso também alterará o acesso a dados desse grupo para sem restrições neste banco de dados." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "Permitir" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "Revoga o acesso a todas as tabelas?" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "Isso também revogará o acesso desse grupo a consultas não formatadas para este banco de dados." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "Conceder acesso sem restrições" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "Acesso sem restrições" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "Acesso limitado" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "Sem acesso" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "Escrever consultas diretas" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Você pode escrever consultas diretas" #. Isso foi tradução automática? Sugestão: "Cuide da coleção" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "Curar a coleção" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "Ver coleção" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "Acesso aos dados" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "Veja as tabelas" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "Consultas SQL" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "Veja esquemas" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "Modelo de dados" @@ -1497,8 +1491,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "Metabase {0} está disponivel. Você está executando {1}" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "Atualizar" @@ -1521,18 +1515,20 @@ msgstr "Remover mapa personalizado" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "Excluir" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "Selecione..." @@ -1733,7 +1729,7 @@ msgstr "A diretiva de configuração {0} é desconhecida" msgid "Setup" msgstr "Configurar" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "Geral" @@ -1860,7 +1856,7 @@ msgid "Username or DN" msgstr "Nome de usuário ou DN" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "Senha" @@ -2023,31 +2019,31 @@ msgstr "Esqueci minha senha" msgid "The email you use for your Metabase account" msgstr "O e-mail que você usa para sua conta no Metabase" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "Enviar e-mail de redefinição de senha" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "Consulte o seu e-mail para obter instruções sobre como redefinir sua senha" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "Entre no Metabase" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "OU" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "Nome de usuário ou endereço de e-mail" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "Entrar" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "Parece que esqueci minha senha" @@ -2066,7 +2062,7 @@ msgstr "Por razões de segurança, links de redefinição de senha expiram depoi "Se você ainda precisar redefinir sua senha, você pode {0}." #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "Nova senha" @@ -2079,38 +2075,38 @@ msgid "Create a new password" msgstr "Crie uma nova senha" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "Você deve cumprir as instruções acima" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "Confirme a nova senha" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "Tem que combinar com o que você acabou de colocar" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "Sua senha foi redefinida." -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "Entre com sua nova senha" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "Falhou" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2129,22 +2125,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "Os painéis, coleções e notificações nesta coleção também serão arquivados." #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "Arquivo" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "Este {0} foi arquivado" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "Veja o arquivo" @@ -2154,17 +2151,19 @@ msgstr "Desarquivar este {0}" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "Nossos dados" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "Aplique raio-X nesta tabela" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "Aprenda mais sobre essa tabela" @@ -2259,44 +2258,44 @@ msgstr "Fixados" msgid "Drag something here to pin it to the top" msgstr "Arraste algo aqui para fixar no topo da página." -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "Coleções" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "Arraste aqui para desafixar" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} item selecionado" msgstr[1] "{0} itens selecionados" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "Mover {0} itens?" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "Mover \"{0}\"?" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "Mover" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "Editar coleção" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "Arquivar esta coleção?" @@ -2313,11 +2312,11 @@ msgstr "Coleção nova" msgid "Copied!" msgstr "Copiado!" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "Usa um túnel SSH para conexões com o banco de dados" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." @@ -2325,7 +2324,7 @@ msgstr "Algumas instalações de banco de dados só podem ser acessadas conectan "Esta opção também fornece uma camada adicional de segurança quando não você tem uma VPN. \n" "Isso geralmente é mais lento que uma conexão direta." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "Este é um grande banco de dados, então deixe-me escolher quando o Metabase sincronizar e digitalizar" @@ -2335,47 +2334,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail msgstr "Por padrão, o Metabase executa uma sincronização leve de hora em hora, e uma análise diária intensiva dos valores do campo.\n" "Se você tem um banco de dados grande, recomendamos ativá-lo e verificar quando e com que frequência as varreduras de valores de campo ocorrem." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0} para gerar um ID e uma chave secreta do cliente para seu projeto." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "Clique aqui" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "Escolhe \"Outro\" como tipo de aplicação. Nomeie-o como quiser" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0} para obter um código de autenticação" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "com permissões do Google Drive" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "Para usar o Metabase com esses dados, você deve ativar o acesso à API em Google Developers Console." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "{0} para ir ao console, se você ainda não fez isso." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "Como você gostaria de chamar esse banco de dados?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "Próximo" @@ -2394,7 +2393,7 @@ msgstr "Mover este item" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "Editar esta questão" @@ -2407,7 +2406,7 @@ msgstr "Tipo de ação" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "Veja o histórico de revisões" @@ -2423,7 +2422,7 @@ msgstr "Ação de arquivamento" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "Adicionar ao Painel" @@ -2434,7 +2433,7 @@ msgstr "Baixe os resultados" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "Compartilhando e Incorporando" @@ -2482,65 +2481,63 @@ msgstr "Baseado no schema" msgid "A look at your" msgstr "Uma olhada em" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "Pesquise na lista" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "Pesquise por {0}" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr "ou insira um ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "Insira um ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "Digite um número" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "Digite um texto" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "Nenhuma correspondência {0} foi encontrada." -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "Incluindo cada opção no seu filtro provavelmente não vai fazer muito..." -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "Algo deu errado." -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "Encontramos um erro. Você pode tentar atualizar a página, ou voltar." -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "Ainda sem descrição" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "Novo {0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "Perguntado por {0}" @@ -2561,8 +2558,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "Revertido para uma revisão anterior e {0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "Histórico de revisão" @@ -2607,7 +2604,7 @@ msgid "Questions" msgstr "Perguntas" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "Notificações" @@ -2644,7 +2641,7 @@ msgstr "Subscrever" msgid "You're subscribed. Thanks for using Metabase!" msgstr "Você está inscrito. Obrigado por usar o Metabase!" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "Estamos um pouco perdidos..." @@ -2653,14 +2650,14 @@ msgid "Temporary Password" msgstr "Senha Temporária" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "Esconder" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "Mostrar" @@ -2762,7 +2759,7 @@ msgstr "Selecionado" msgid "Nothing to select" msgstr "Nada para selecionar" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "Desculpe, você não tem permissão para ver isso." @@ -2770,8 +2767,8 @@ msgstr "Desculpe, você não tem permissão para ver isso." msgid "Unknown error encountered" msgstr "Erro desconhecido encontrado" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "Criar" @@ -2779,7 +2776,6 @@ msgstr "Criar" msgid "Create dashboard" msgstr "Criar um painel" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "Tabela" @@ -2804,12 +2800,11 @@ msgstr "Tente ajustar seu filtro para encontrar o que você está procurando." msgid "View by" msgstr "Veja por" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "de" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "Não conte a ninguém, mas você é o meu favorito" @@ -2817,19 +2812,19 @@ msgstr "Não conte a ninguém, mas você é o meu favorito" msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "Assim que você conectar seus próprios dados, eu posso mostrar algumas explorações automáticas, chamadas raios-X. Aqui estão alguns exemplos com dados de exemplo." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "Comece aqui" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "Nossas análises" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "Exibir todos os itens" @@ -2841,44 +2836,45 @@ msgstr "Substituir ou salvar como novo?" msgid "Replace original question, \"{0}\"" msgstr "Substituir a pergunta original, \"{0}\"" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "Salvar como uma nova pergunta" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "Primeiro, salve sua pergunta" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "Salvar a pergunta" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "Qual é o nome do seu cartão?" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "Descrição" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "É opcional, mas tão útil" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "Em que coleção isso deveria ir?" @@ -2919,11 +2915,11 @@ msgstr "Arquivar Painel" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "Certifique-se de fazer uma seleção para cada série ou o filtro não funcionará neste cartão." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "Este painel parece estar vazio." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "Adicione uma pergunta para torná-lo útil!" @@ -2943,50 +2939,50 @@ msgstr "Desativar tela cheia" msgid "Enter fullscreen" msgstr "Ativar tela cheia" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "Salvando..." -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "Adicione uma pergunta" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "Adicione uma pergunta a este painel" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "Adicionar filtro" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "Parâmetros" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "Adicionar uma caixa de texto" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "Mover painel" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "Editar painel" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "Editar layout do Painel" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "Você está editando um painel" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Selecione o campo que deve ser filtrado para cada cartão" @@ -3037,11 +3033,11 @@ msgstr "30 minutos" msgid "60 minutes" msgstr "60 minutos" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "Atualizar automaticamente" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "Atualizando em" @@ -3053,7 +3049,7 @@ msgstr "Remover esta pergunta?" msgid "Your dashboard was saved" msgstr "Seu painel foi salvo." -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "Veja" @@ -3140,10 +3136,9 @@ msgstr "removeu uma pergunta do painel - " msgid "received the latest data from" msgstr "recebeu os dados mais recentes de" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "Desconhecido" @@ -3260,7 +3255,7 @@ msgstr "Ver todos" msgid "Recently Viewed" msgstr "Visualizado recentemente" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "Você não olhou nenhum painel ou pergunta recentemente" @@ -3274,11 +3269,11 @@ msgid "Unarchive" msgstr "Desarquivar" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "Atividade" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "Resultados para \"{0}\"" @@ -3340,6 +3335,9 @@ msgstr "URL do avatar" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "Comum" @@ -3382,8 +3380,8 @@ msgstr "Longitude" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "Número" @@ -3429,94 +3427,94 @@ msgstr "Hora de criação" msgid "Creation date" msgstr "Data de criação" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "Produto" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "Usuário" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "Fonte" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "Preço" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "Data e hora do registro" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "Hora do registro" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "Data do registro" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "Compartilhar\n" "Fração" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "Proprietário" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "Negócio" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "Assinatura" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "Pontuação" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "TÃtulo" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "Comentário" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "Custo" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Margem bruta" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "Aniversário" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "Caixa de pesquisa" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "Uma lista com todos os valores" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "Caixa de texto" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "Em todas as partes" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "A configuração padrão. Este campo será exibido normalmente em tabelas e gráficos." @@ -3524,7 +3522,7 @@ msgstr "A configuração padrão. Este campo será exibido normalmente em tabel msgid "Only in Detail Views" msgstr "Apenas em vistas detalhadas" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "Este campo só será exibido quando você ver os detalhes de um único registro. Use-o para obter informações longas ou que não sejam úteis em uma tabela ou graphic" @@ -3538,7 +3536,8 @@ msgstr "O Metabase nunca recuperará este campo. Use-o para informações confi #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3553,8 +3552,9 @@ msgid "CumulativeCount" msgstr "Contagem cumulativa" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "Soma" @@ -3563,7 +3563,7 @@ msgid "CumulativeSum" msgstr "Soma cumulativa" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "Diferente" @@ -3572,25 +3572,28 @@ msgid "StandardDeviation" msgstr "Desvio padrão" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "Média" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "MÃnimo" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "Máximo" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "Panda triste triste, erros lexicais detectados" @@ -3641,12 +3644,13 @@ msgid "What do you want to find out?" msgstr "O que você quer saber?" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "Dados brutos" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "Contagem cumulativa" @@ -3690,176 +3694,176 @@ msgstr "Filtrado por " msgid "Sorted by " msgstr "Ordenado por " -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "Verdadeiro" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "Falso" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Selecione o campo longitude" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "Latitude Superior" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "Longitude Esquerdo" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "Latitude Inferior" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "Longitude certo" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "É" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "Não é" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "Vazio" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "Não vazio" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "Igual à " -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "Diferente" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "Maior do que" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "Menos que" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "Entre" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "Maior que ou igual a" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "Menor ou igual a" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "Contém" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "Não contém" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "Comece com" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "Termina em" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "Antes" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "Depois" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "Dentro" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "Apenas uma tabela com as linhas na resposta, sem operações adicionais." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "Número de linhas" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "Número total de linhas na resposta." -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "Soma de ..." -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "Soma de todos os valores de uma coluna." #. Acho que a agregação de "Medium of.... " está ficando errada, pois traduz em #. "Média de... de" mas vou deixar a tradução assim por enquanto -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "Média de ..." -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "Média de todos os valores em uma coluna" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "Número de valores diferentes de ..." -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "Número de valores exclusivos de uma coluna entre todas as linhas na resposta" -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "Soma acumulada de ..." @@ -3868,7 +3872,7 @@ msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over t msgstr "Soma aditiva de todos os valores em uma coluna. \n" " por exemplo, receita total ao longo do tempo" -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "Contagem cumulativa de linhas" @@ -3877,27 +3881,27 @@ msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over msgstr "Contagem aditiva do número de linhas. \n" " por exemplo, número total de vendas ao longo do tempo" -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "Desvio padrão de ..." -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "Número que expressa o quanto os valores de uma coluna variam entre todos os linhas na resposta." -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "MÃnimo de ..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Valor MÃnimo de uma Coluna" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "Máximo de ..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "Valor máximo de uma coluna" @@ -4071,68 +4075,70 @@ msgstr "Outras categorias" msgid "Category, Type, Model, Rating, etc." msgstr "Categoria, Tipo, Modelo, Classificação, etc." -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "Configuração da conta" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "Sair do admin" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "Logs" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Ajuda" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "Sobre o Metabase" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "Sair" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "Obrigado por usar" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "Você está na versão" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "ConstruÃdo em" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "é uma marca registrada da" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "e é construÃdo com amor em São Francisco, CA" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Administrador do Metabase" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "Fazer uma pergunta" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "Novo painel" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "Nova notificação" @@ -4145,7 +4151,6 @@ msgstr "Referência" msgid "Which metric?" msgstr "Qual métrica?" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "Definir métricas comuns para sua equipe facilita ainda mais fazer perguntas" @@ -4163,7 +4168,7 @@ msgid "Custom" msgstr "Personalizado" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "Nova pergunta" @@ -4171,13 +4176,13 @@ msgstr "Nova pergunta" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "Use o gerador de perguntas para ver tendências, listas de coisas ou para criar suas próprias métricas." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "Consulta nativa" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "Para perguntas mais complicadas, você pode escrever sua própria consulta SQL ou nativo" @@ -4281,7 +4286,7 @@ msgstr "Digite um valor..." msgid "Enter a default value..." msgstr "Digite um valor padrão..." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "Ocorreu um erro" @@ -4529,7 +4534,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "Recomendamos manter as notificações pequenas e simples para mantê-las fáceis e úteis para toda a equipe." #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "Escolha seus dados" @@ -4545,47 +4550,47 @@ msgstr "E-mails" msgid "Slack messages" msgstr "Mensagens Slack" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "Enviado" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} será enviado para" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "Mensagens" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "Enviar e-mail agora" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "Envie para {0} agora" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "Enviando..." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "Envio falhou" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "Não foi enviado porque a notificação não tem resultados." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "Notificação enviada" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} deve ser configurado por um administrador." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4672,7 +4677,7 @@ msgstr "Número de linhas por hora" msgid "Break out by {0}" msgstr "Distribuir por {0}" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "Resumir este segmento" @@ -4726,15 +4731,15 @@ msgstr "Ascendente" msgid "Descending" msgstr "Descendente" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "através do tempo" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "Média" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "Distintos" @@ -4931,6 +4936,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} Alertas baseados em metas ainda não são compatÃveis com gráficos com mais de uma linha, portanto, esse alerta será enviado desde que o gráfico tenha {1}." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "resultados" @@ -4946,47 +4952,47 @@ msgstr "Dica:" msgid "usually" msgstr "geralmente" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "Escolha um segmento ou tabela" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "Selecione um banco de dados" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "Selecione..." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "Selecione uma tabela" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "Nenhuma tabela foi encontrada neste banco de dados." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "Uma pergunta está faltando?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "Saiba mais sobre consultas aninhadas" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "Campos" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "Nenhum segmento foi encontrado" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "Encontre um segmento" @@ -5036,7 +5042,7 @@ msgstr "Adicione um grupo" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5044,9 +5050,9 @@ msgstr "Adicione um grupo" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5069,7 +5075,7 @@ msgstr "Agrupado por" msgid "None" msgstr "Nenhum" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "Esta questão está escrita em {0}." @@ -5081,11 +5087,11 @@ msgstr "Ocultar editor" msgid "Hide Query" msgstr "Esconder consulta" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "Abrir editor" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "Mostrar consulta" @@ -5130,7 +5136,7 @@ msgstr "CANCELAR" msgid "Move question" msgstr "Mover pergunta" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "Em que coleção deveria ser?" @@ -5184,7 +5190,7 @@ msgstr "{0} desta questão" msgid "Convert this question to {0}" msgstr "Converta esta questão para {0}" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "Esta questão será atualizada em aproximadamente {0}" @@ -5218,7 +5224,7 @@ msgstr "Se você me der alguma informação, eu posso te mostrar uma coisa ótim msgid "How do I use this thing?" msgstr "Como eu uso essa coisa?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "Obter uma resposta" @@ -5286,7 +5292,7 @@ msgstr "receber um alerta" msgid "Back to last run" msgstr "Retornar para a última execução" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "Display" @@ -5298,7 +5304,7 @@ msgstr "Sem descrição" msgid "Use for current question" msgstr "Use para a pergunta atual" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "Perguntas potencialmente úteis" @@ -5322,7 +5328,7 @@ msgstr "Todos os valores diferentes de {0}" msgid "Number of {0} grouped by {1}" msgstr "Número de {0} agrupados por {1}" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5356,12 +5362,12 @@ msgid "Filter by {0}" msgstr "Filtrar por {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "Número de {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "Ver todos {0}" @@ -5381,32 +5387,33 @@ msgstr "Veja os dados brutos de {0}" msgid "More" msgstr "Mais" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "Expressão inválida" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "erro desconhecido" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Campo fórmula" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "Pense nisso como algo como escrever uma fórmula em um programa de planilhas: você pode usar números, campos nesta tabela, sÃmbolos matemáticos como +, e algumas funções. Então você poderia escrever algo como Subtotal − Custo." -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "Saiba mais" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "Dê um nome a ele" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "Algo legal e descritivo" @@ -5486,7 +5493,7 @@ msgid "Enter desired number" msgstr "Digite o número desejado" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "Vazio" @@ -5554,41 +5561,41 @@ msgstr "Para usar várias cláusulas opcionais, você pode incluir pelo menos um msgid "Read the full documentation" msgstr "Leia a documentação completa" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "Filtro de Etiqueta" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "Tipo de Variável" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "Texto" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "Data" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Filtro de campo" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "Campo para mapear para" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "Tipo de filtro" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "Obrigatório?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "Valor padrão do filtro" @@ -5600,7 +5607,7 @@ msgstr "Arquivar esta pergunta?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "Esta questão será removida de qualquer painel ou notificação que a utilize." -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "Pergunta" @@ -5612,8 +5619,8 @@ msgstr "Escolha uma pergunta para adicionar" msgid "You are editing this page" msgstr "Você está editando esta página" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "Veja isto {0}" @@ -5621,15 +5628,15 @@ msgstr "Veja isto {0}" msgid "A subset of" msgstr "Um subconjunto de" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "Selecione um tipo de campo" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5640,8 +5647,8 @@ msgid "by" msgstr "por" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "Tipo do campo" @@ -5666,12 +5673,12 @@ msgid "Nothing important yet" msgstr "Nada importante ainda" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "Nada de interessante ainda" @@ -5680,12 +5687,12 @@ msgid "Things to be aware of about this {0}" msgstr "Coisas para ter em mente sobre isso {0}" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "Nada para estar ciente ainda" @@ -5731,7 +5738,7 @@ msgstr "Existe alguma coisa que os usuários devem saber sobre isso {0}?" msgid "Which 2-3 fields do you usually group this metric by?" msgstr "Com quais 2-3 campos esta métrica é geralmente agrupada?" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "Este é o lugar perfeito para começar se você é novo em seus dados empresa, ou se você quiser apenas verificar o que está acontecendo." @@ -5747,11 +5754,11 @@ msgstr "Razão da mudança" msgid "Leave a note to explain what changes you made and why they were required" msgstr "Deixe uma nota para explicar que mudanças você fez e por que elas foram obrigatório" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "Por que esse banco de dados é interessante" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "Coisas para manter em mente sobre este banco de dados" @@ -5761,44 +5768,44 @@ msgid "Databases and tables" msgstr "Bancos de dados e tabelas" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "Detalhes" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "Tabelas em {0}" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "Nome real no banco de dados" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "Por que esse campo é interessante" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "Coisas a ter em mente sobre este campo" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "Tipo de dados" @@ -5812,12 +5819,12 @@ msgstr "Os campos nesta tabela aparecerão aqui à medida que forem adicionados" msgid "Fields in {0}" msgstr "Campos em {0}" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "Nome do campo" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "Aplique raios-X a este campo" @@ -5848,11 +5855,11 @@ msgstr "Número de {0}" msgid "See raw data for {0}" msgstr "Ver dados brutos de {0}" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "Por que esta tabela é interessante" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "Coisas para manter em mente sobre esta tabela" @@ -5866,7 +5873,7 @@ msgstr "Perguntas sobre esta tabela aparecerão aqui quando forem adicionadas" #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "Perguntas sobre {0}" @@ -5881,7 +5888,7 @@ msgstr "Criado {0} por {1}" msgid "Fields in this table" msgstr "Campos nesta tabela" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "Perguntas sobre esta tabela" @@ -5917,7 +5924,7 @@ msgstr "Veja todas as métricas" msgid "Segments and tables" msgstr "Segmentos e Tabelas" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "Tabelas" @@ -6034,8 +6041,8 @@ msgstr "Existe alguém com quem seus usuários podem entrar em contato se precis msgid "Who should users contact for help if they're confused about this data?" msgstr "Com quem os usuários devem entrar em contato para obter ajuda se estiverem confuso sobre esta informação?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "Por favor, adicione uma mensagem de revisão" @@ -6051,15 +6058,15 @@ msgstr "Coisas a ter em conta acerca desta métrica" msgid "How this Metric is calculated" msgstr "Como essa métrica é calculada" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "Nada sobre como foi calculado ainda" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "Outros campos pelos quais você pode agrupar essa métrica" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "Campos pelos quais você pode agrupar essa métrica" @@ -6084,20 +6091,20 @@ msgid "There are no revisions for this metric" msgstr "Não há comentários para esta métrica" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "Histórico de revisão de {0}" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "Aplique raios-X a esta métrica" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "Por que esse segmento é interessante" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "Coisas a ter em mente sobre este segmento" @@ -6121,60 +6128,60 @@ msgstr "Aprenda a criar segmentos" msgid "Questions about this segment will appear here as they're added" msgstr "Perguntas sobre este segmento aparecerão aqui quando forem adicionadas" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "Não há comentários para este segmento" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "Campos neste segmento" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "Perguntas sobre este segmento" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "Aplique raios-X a este segmento" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "Iniciar sessão" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "Pesquisar" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "Painel" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "Nova pergunta" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "Selecione o tipo de banco de dados que você usa" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "Adicione seus dados" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "Eu adicionarei meus próprios dados mais tarde" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "Conectando com {0}" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "Você precisará de informações sobre seu banco de dados, como seu nome de usuário e a senha. Se você não tem isso agora, o Metabase também vem com um conjunto de dados de amostra com os quais você pode começar." -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "Eu adicionarei meus dados mais tarde" @@ -6182,43 +6189,43 @@ msgstr "Eu adicionarei meus dados mais tarde" msgid "Control automatic scans" msgstr "Controle automático de digitalização" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "Preferências de uso de dados" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "Obrigado por nos ajudar a melhorar" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "Nós não coletaremos nenhum evento de uso" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Para nos ajudar a melhorar o Metabase, gostarÃamos de coletar certas informações sobre o uso através do Google Analytics." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "Aqui está uma lista completa de tudo que acompanhamos e por quê." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "Permitir que o Metabase colete eventos de uso anonimamente" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase {0} coleta informações sobre seus dados ou resultados de perguntas." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "nunca" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "Toda a informação obtida é completamente anônima." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "A coleção pode ser desativada a qualquer momento na seção de configuração" @@ -6266,24 +6273,24 @@ msgstr "Olá, {0}. Prazer em conhecê-lo!" msgid "Create a password" msgstr "Crie uma senha" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "Shhh..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "Confirme a senha" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "Shhh... novamente, para ter certeza de que fazemos certo" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "O nome da sua empresa ou equipe" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "Departamento impressionante" @@ -6461,11 +6468,11 @@ msgstr "Faça login com o endereço de e-mail do Google" msgid "User Details" msgstr "Detalhes do usuário" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "Redefinir para o padrão" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "mapa desconhecido" @@ -6473,7 +6480,7 @@ msgstr "mapa desconhecido" msgid "Grid map requires binned longitude/latitude." msgstr "O mapa da grade requer longitude / latitude agrupada." -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "mais" @@ -6510,31 +6517,31 @@ msgstr "Desmarcar" msgid "Rows {0}-{1} of {2}" msgstr "Linhas {0}-{1} de {2}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "Dados truncados para {0} linhas." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "A visualização não pôde ser encontrada" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "Não foi possÃvel mostrar este gráfico com essas informações." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "Nenhum resultado!" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "Ainda esperando..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "Isso geralmente leva cerca de {0}." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(Isso é um pouco demorado para um painel)" @@ -6550,11 +6557,11 @@ msgstr "Selecione um campo" msgid "error" msgstr "erro" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "Clique e arraste para mudar a ordenação" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "Adicionar campos da lista abaixo" @@ -6694,19 +6701,19 @@ msgstr "Adicionar regra" msgid "Update rule" msgstr "Atualizar regra" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "Visualização nula" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "A visualização deve definir uma variável 'identificadora' estática: " -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "A visualização com este identificador já está registrada: " -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "Nenhuma exibição para {0}" @@ -6714,11 +6721,11 @@ msgstr "Nenhuma exibição para {0}" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "\"{0}\" é um campo não agregado: se ele têm mais de um valor em um único ponto no eixo X, os valores serão somados." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "Este tipo de gráfico requer pelo menos 2 colunas." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "Este tipo de gráfico não suporta mais de {0} séries de dados." @@ -6759,7 +6766,7 @@ msgstr "Por favor, configure este gráfico na configuração gráfica" msgid "Edit Settings" msgstr "Editar configuração" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "xValores ausentes!" @@ -6786,7 +6793,7 @@ msgid "Bubble size" msgstr "Tamanho da bolha" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "Line" @@ -6843,104 +6850,104 @@ msgstr "Nada" msgid "Linear Interpolated" msgstr "Linha interpolada" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "Escala do Eixo X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "Séries cronológica" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "Linear" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "Expoente" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "LogarÃtmico" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "Histograma" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "Ordinal" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "Escala do Eixo Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "Mostrar marcas de linha e eixo X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Compacto" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "Rodar 45°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "Rodar 90°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "Mostrar linha e marcas do eixo Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Eixo Y automático" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "Use um eixo Y dividido quando necessário" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "Mostrar rótulo no eixo X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "Etiqueta do eixo X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "Mostrar rótulo no eixo Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Etiqueta do eixo Y" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "Desvio padrão" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "Ãrea" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "gráfico de área" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "Barra" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "gráfico de barras" @@ -6966,19 +6973,19 @@ msgstr "Tipo de Funil" msgid "Bar chart" msgstr "Gráfico de barras" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "gráfico de linhas" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "Selecione as colunas de longitude e latitude na configuração do gráfico" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "Por favor, selecione um mapa da região." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "Selecione as colunas e métricas da região nas configurações do gráfico." @@ -6986,73 +6993,73 @@ msgstr "Selecione as colunas e métricas da região nas configurações do gráf msgid "Map" msgstr "Mapa" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "Tipo de mapa" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "Mapa da região" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "Fixar mapa" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "Tipo de pino" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "Azulejos" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "Marcadores" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "Campo de latitude" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "Campo de longitude" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "Campo métrico" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "Campo de região" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "Rádio" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "Borrão" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "Opacidade mÃnima" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "Zoom máximo" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "Nenhum relacionamento foi encontrado." -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "via {0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "Este {0} está conectado a:" @@ -7064,7 +7071,7 @@ msgstr "Detalhe do Objeto" msgid "object" msgstr "objeto" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "Total" @@ -7113,7 +7120,7 @@ msgid "Progress" msgstr "Progresso" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "Cor" @@ -7204,13 +7211,13 @@ msgstr "Direita" msgid "Show background" msgstr "Mostrar fundo" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "{0} agrupamento" msgstr[1] "{0} agrupamentos" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "Auto agrupado" @@ -7639,7 +7646,7 @@ msgstr "incremento" msgid "{0} and {1}" msgstr "{0} e {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} de {1}" @@ -8962,31 +8969,31 @@ msgstr "Ver todas as permissões de coleções" msgid "Also change sub-collections" msgstr "Mude também as sub-coleções" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Pode editar essa coleção e seu conteúdo" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Pode ver os itens dessa coleção" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "Acesso à coleção" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "Este grupo tem permissão para ver ao menos uma sub-coleção desta coleção." -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "Este grupo tem permissão para editar ao menos uma sub-coleção desta coleção." -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "Ver sub-coleções" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "Lembre me" @@ -9006,7 +9013,7 @@ msgstr "Adicionar essa questão para um painel" msgid "Create a new dashboard" msgstr "Criar um novo painel" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "A página que você pediu não pode ser encontrada." @@ -9014,11 +9021,11 @@ msgstr "A página que você pediu não pode ser encontrada." msgid "Select a {0}" msgstr "Selecione um {0}" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "Salvar painéis, questões e coleções em \"{0}\"" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "Acessar painéis, questões e coleções em \"{0}\"" @@ -9038,12 +9045,12 @@ msgstr "Relacionado" msgid "More X-rays" msgstr "Mais Raios-X" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "Sem resultados" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabase não pode localizar nenhum resultado da sua pesquisa." @@ -9253,10 +9260,10 @@ msgstr "N/D" msgid "Windows domain" msgstr "DomÃnio Windows" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "Rótulos" @@ -9291,6 +9298,8 @@ msgstr "Compartilhamento" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9305,33 +9314,33 @@ msgstr "Compartilhamento" msgid "Display" msgstr "Exibição" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "Eixos" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "Formatação" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "Experimente esses Raios-X que criei com seus dados." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "Houve um problema ao exibir esse gráfico." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "Desculpe, mas você não tem permissão para visualizar esse cartão." @@ -9353,20 +9362,20 @@ msgstr "Raio-X" msgid "Compare to the rest" msgstr "Comparar ao restante" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "Usar o fuso horário da Maquina Virtual Java (JVM)" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "Nós sugerimos que você deixe desativado exceto quando você estiver fazendo conversões de fuso horário em várias ou na maioria de suas consultas com esses dados." -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "Os painéis mais importantes do seu time vão aqui" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "Fixe painéis em {0} para eles aparecerem neste espaço para todos" @@ -9390,12 +9399,12 @@ msgstr "Dica: " msgid "Select a currency type" msgstr "Selecione um tipo de moeda" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "Tipo de Campo" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "Solução de Problemas" @@ -9443,11 +9452,11 @@ msgstr "Duração (ms)" msgid "Currency" msgstr "Moeda" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "Selecione um usuário ou canal..." -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "Sem definições de formatação" @@ -9620,15 +9629,15 @@ msgstr "Indicador" msgid "Gauge ranges" msgstr "Intervalo do indicador" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "Campo a ser mostrado" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "último {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} era {1} {2}" @@ -9756,7 +9765,7 @@ msgstr "trimestre" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "Adicionano {0} cartões ao dashboard {1}:n{2}" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "Erro ao identificar {0}:n{1}" @@ -10050,7 +10059,7 @@ msgstr "Limpeza do histórico de tarefas com sucesso, {0} linhas deletadas" msgid "not" msgstr "não" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "Para mais informação, veja" @@ -11052,6 +11061,7 @@ msgstr "Como essa métrica é distribuÃda através de diferentes números" msgid "Sessions by page where the session began" msgstr "Sessões por página onde essa sessão começou" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11400,15 +11410,15 @@ msgstr "Pode Executar Novamente?" msgid "Triggers for {0}" msgstr "Gatilhos para {0}" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "Tarefas" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "Trabalhos" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "Duplicados {0}" @@ -11420,7 +11430,7 @@ msgstr "Duplicar este item" msgid "Archive this item" msgstr "Arquivar este item" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "Duplicar painel" @@ -11447,6 +11457,7 @@ msgid "Next {0}" msgstr "Próximo {0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "Anterior {0}" @@ -11541,8 +11552,8 @@ msgstr "[T]T" msgid "This" msgstr "Isto" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "Inválido" @@ -11550,11 +11561,11 @@ msgstr "Inválido" msgid "Add a time" msgstr "Adicionar um horário" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "Nada a comparar para o anterior" -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "por {0}" @@ -11610,39 +11621,39 @@ msgstr "Erro ao adicionar diretiva de SQL legado para a Questão BigQuery salva" msgid "Failed to notify {0} Database {1} updated" msgstr "Falha ao notificar banco de dados {0}, {1} atualizado(s)" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "Carregando driver {0} {1}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "Carregar driver {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "Driver não registrado após carga: {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "Erro: tentando mudar propriedade {0} `:abstract?` de {1} para {2}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "Driver abstrato registrado {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "Driver registrado {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(pais: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "Inicializando driver {0}..." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "Razão:" @@ -11794,11 +11805,11 @@ msgstr "{0} dependência(s) {1} satisfeita(s)? {2}" msgid "Plugins with unsatisfied deps: {0}" msgstr "Plugins com deps não satisfeitas: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "Extrair arquivo {0} -> {1}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "Recurso não existe." @@ -12123,7 +12134,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreateDate]] por trimestre do ano" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "Editar Usuário" @@ -12131,12 +12142,12 @@ msgstr "Editar Usuário" msgid "New user" msgstr "Novo Usuário" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "Resetar senha" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "Desativar usuário" @@ -12413,11 +12424,11 @@ msgstr "Falha de instrução" msgid "Archive this?" msgstr "Arquivar?" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "Aprenda sobre seus dados" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "Use DNS SRV quando conectado" @@ -12427,7 +12438,7 @@ msgid "Using this option requires that provided host is a FQDN. If connecting t "leave this disabled." msgstr "Utilizar essa opção requer que o host seja um FQDN. Caso esteja conectando-se a um cluster Atlas, você talvez precise habilitar essa opção. Se não souber o que isso significa, deixe-a desativada." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "Execute queries automaticamente ao filtrar ou sumarizar" @@ -12436,7 +12447,7 @@ msgstr "Execute queries automaticamente ao filtrar ou sumarizar" msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Com essa opção ativa, o Metabase irá automaticamente rodar consultas quando os usuários fizerem simples explorações com os botões Sumarizar e Filtrar ao explorar uma tabela ou gráfico. Você pode desativar essa opção caso as consultas estejam lentas. Essa configuração não afeta as sondagens ou as consultas SQL." -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "Aprenda sobre essa base de dados" @@ -12444,25 +12455,25 @@ msgstr "Aprenda sobre essa base de dados" msgid "Archive this dashboard?" msgstr "Arquivar este dashboard?" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "Todos resultados" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "Nossas análises" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "Soma acumulada de todos valores da coluna.\\ne.x. faturamento total no tempo." -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "Contagem acumulada de linhas.\\ne.x. quantidade total de vendas no tempo." #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Filtrar" @@ -12472,27 +12483,27 @@ msgid_plural "records" msgstr[0] "registro" msgstr[1] "registros" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "Navegue pelos dados" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "Escrever em SQL" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "Pergunta simples" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "Escolha alguns dados, explore-os e facilmente filtre, sumarize e visualize-os" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "Pergunta customizada" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "Use o editor de texto avançado para juntar dados, criar colunas customizadas, efetuar cálculos e muito mais." @@ -12500,7 +12511,7 @@ msgstr "Use o editor de texto avançado para juntar dados, criar colunas customi msgid "Basic Metrics" msgstr "Métricas Básicas" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "Customizado..." @@ -12516,7 +12527,7 @@ msgstr "Escolha um limite" msgid "Show maximum" msgstr "Mostrar máximo" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "Pré-visualizar" @@ -12545,7 +12556,7 @@ msgid "Custom column" msgstr "Coluna customizada" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "Sumarize" @@ -12562,11 +12573,10 @@ msgid "Pick the metric you want to see" msgstr "Escolha a métrica que deseja ver" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "Selecione uma coluna para agrupar" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "Selecione seu dado inicial" @@ -12578,7 +12588,7 @@ msgstr "Selecionar Nenhum" msgid "Select All" msgstr "Selecionar Todos" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "Escolha uma tabela" @@ -12624,15 +12634,15 @@ msgid_plural "{0} breakouts" msgstr[0] "saÃda" msgstr[1] "saÃdas" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "Esconder filtros" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "Mostrar filtros" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "Começado em" @@ -12662,11 +12672,11 @@ msgstr "Mostrando {0}" msgid "Summarized" msgstr "Resumido" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "Esconder editor" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "Mostrar editor" @@ -12674,7 +12684,7 @@ msgstr "Mostrar editor" msgid "Pick the metric you'd like to see" msgstr "Selecione a métrica que você gostaria de ver" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "{0} opções" @@ -12702,7 +12712,7 @@ msgstr "Adicione uma métrica" msgid "Profile" msgstr "Perfil" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "Isso normalmente é bem rápido mas parece estar demorando um pouco agora" @@ -12730,19 +12740,19 @@ msgstr "Segmento desconhecido" msgid "Unknown Filter" msgstr "Filtro desconhecido" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "Junção externa à esquerda" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "Junção externa à direita" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "Junção Interna" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "Junção externa total" @@ -12794,7 +12804,7 @@ msgstr "Configuração do banco de dados da aplicação" msgid "Could not find {0} driver." msgstr "Não foi possÃvel encontrar o driver {0}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "Divers abstratos não podem derivar de diver 'Pai' concreto" @@ -12852,7 +12862,7 @@ msgstr "spark-deps.jar não é mais necessário desde o Metabase 0.32.0+. Você msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "Usando o classloader NEWLY CREATED como classloader de contexto compartilhado: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "Falha ao copiar arquivo" @@ -13130,7 +13140,7 @@ msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "Selecione as colunas que quer incluir" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Quando ativado, essa opção faz com que o Metabase realize consultas quando usuários fazem explorações de dados simples com os botões de Resumir e Filtrar. Você pode desabilitar se as consultas ao banco estão lentas. Isso não afeta as consultas SQL ou drill-throughs." @@ -13168,3 +13178,439 @@ msgstr "Erro ao determinar colunas esperadas da consulta" msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "Exceção não tratada, esperávamos que o middleware 'catch-exceptions` ia processá-la." +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "Informações do Diagnóstico" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "Selecione o processo do Metabase" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "Todos os processos do Metabase" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "A janela foi fechada antes de completar a Autenticação pelo Google" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "Ocorreu um erro ao logar com a conta Google. Por favor, contate um administrador." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "Login com e-mail" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "Remover estas sugestões" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "Deseja remover estas sugestões?" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "Ocultar esta sessão" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "Deseja remover esta sessão?" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "" + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "Minha fantástica nova coleção" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "Data de cancelamento" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "Data de exclusão" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "Não incluir" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "Soma acumulada" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "Desvio padrão" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "deve ter pelo menos {0} caracteres" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "Deve ter pelo menos {0} caracteres" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "Nome (obrigatório)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "Executar texto selecionado" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "Executar consulta" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "(⌘ + enter)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "(Ctrl + enter)" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "Você não irá fazer nenhuma alteração permanente em uma questão salva até que clique em Salvar e escolher substituir a questão original." + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "Não há nenhum widget de filtro para este tipo de campo ainda." + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "Porque esta métrica é interessante" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "Como esta métrica é calculada" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "(vazio)" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "Linha de tendência" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "Todos" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "Foi encontrado uma data inválida: \"{0}\"" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "Um erro ocorreu durante o processamento desta query." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "Não é necessário migrar, apenas use o arquivo H2 existente" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "Configuração do banco de dados" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "Não foi possÃvel encontrar o campo com ID: {0}" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "Não foi possÃvel carregar o driver {0}." + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "" + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "Fuso horário inválido \"{0}\"" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "Você implementou set-timezone-sql?" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "Falha ao definir o fuso horário \"{0}\"" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "Erro na conexão com o banco de dados" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "Configuração inválida: {0}/{1}" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "Enviando notificação ({0}: {1}) via e-mail" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "Notificação: {0}" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "Enviando notificação ({0}: {1}) via Slack" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "Enviando alerta ({0}: {1}) via e-mail" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "Enviando alerta ({0}: {1}) via Slack" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "Alerta: {0}" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "Fuso horário do ID \"{0}\" inválido" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "Timeout depois de {0}" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "Unidade inválida: {0}" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "Não sei como analisar {0} usando o formato {1}" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "O envio de estatÃsticas de uso falhou" + diff --git a/locales/ru.po b/locales/ru.po index 45559c7389790938790e5d1e689ca02b8ce5df65..1de429765b690befd3ffb884ece370bb544375a6 100644 --- a/locales/ru.po +++ b/locales/ru.po @@ -29,19 +29,18 @@ msgid "Select a database type" msgstr "Выберите тип базы данных" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "Сохранить" @@ -101,7 +100,7 @@ msgstr "Ðет, Ñ Ñделаю Ñто когда нужно" #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "Сохранение..." @@ -138,16 +137,16 @@ msgstr "в Ñтом поле:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -155,20 +154,20 @@ msgstr "в Ñтом поле:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "Отмена" @@ -180,33 +179,33 @@ msgstr "Отмена" msgid "Delete" msgstr "Удалить" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "Базы данных" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "Добавить базу данных" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "Подключение" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "РаÑпиÑание" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -216,18 +215,18 @@ msgstr "РаÑпиÑание" msgid "Save changes" msgstr "Сохранить изменениÑ" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "ДейÑтвиÑ" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "ПроизвеÑти Ñинхронизацию Ñхемы" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -235,41 +234,41 @@ msgstr "ПроизвеÑти Ñинхронизацию Ñхемы" msgid "Starting…" msgstr "Ðачинаю..." -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "Ошибка Ñинхронизации" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð°Ñ‡Ð°Ð»Ð°ÑÑŒ!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "ПереÑканировать Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÐµÐ¹" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "Ðевозможно начать Ñканирование" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "Сканирование запланировано!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "ОпаÑÐ½Ð°Ñ Ð·Ð¾Ð½Ð°" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "СброÑить Ñохраненные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÐµÐ¹" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "Удалить Ñту базу данных" @@ -278,18 +277,17 @@ msgid "Add database" msgstr "Добавить базу данных" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "ИмÑ" @@ -309,23 +307,24 @@ msgstr "Загрузка..." msgid "Bring the sample dataset back" msgstr "Вернуть данные примеров" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "Ðе могу подключтьÑÑ Ðº базе данных. ПожалуйÑта, проверьте Ñоединение." -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "Создано!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "Сохранено!" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "Изменить" @@ -365,9 +364,9 @@ msgstr "Завершено Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹" msgid "Success" msgstr "УÑпешно завершено" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "Предварительный проÑмотр" @@ -387,7 +386,7 @@ msgstr "Без Ñпециального типа" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "Другое" @@ -416,7 +415,7 @@ msgstr "Столбец" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "ВидимоÑÑ‚ÑŒ" @@ -504,35 +503,34 @@ msgstr "Ðайти таблицу" msgid "Schemas" msgstr "Схемы" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "Метрики" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "Добавить Метрику" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "Определение" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "Создать метрики Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² маÑтер запроÑов" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -540,11 +538,11 @@ msgstr "Создать метрики Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² маÑте msgid "Segments" msgstr "Сегменты" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "Добавить Сегмент" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "Создать Ñегменты Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² фильтры маÑтера запроÑов" @@ -590,23 +588,23 @@ msgstr " ИÑториÑ" msgid "Revision History for" msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ за" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} – уÑтановки полÑ" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "Где Ñто поле будет отображено в ÑиÑтеме" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Ð¤Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñтого полÑ" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "ЕÑли Ñто поле иÑпользуетÑÑ ÐºÐ°Ðº фильтр, какой вид информации должны иÑпользовать пользователи Ð´Ð»Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ð¸?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "Ð”Ð»Ñ Ñтого Ð¿Ð¾Ð»Ñ Ð¿Ð¾ÐºÐ° нет опиÑаниÑ" @@ -647,11 +645,11 @@ msgstr "Данное поле не ÑвлÑетÑÑ Ð²Ð½ÐµÑˆÐ½Ð¸Ð¼ ключем msgid "The selected field isn't a foreign key" msgstr "Выбранное поле не ÑвлÑетÑÑ Ð²Ð½ÐµÑˆÐ½ÐµÐ¼ ключём" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "Показать значениÑ" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "Выберите, что отобразить в поле: иÑходное значение из базы данных, аÑÑоциированную или иную наÑтраиваемую информацию." @@ -671,12 +669,12 @@ msgstr "ПодÑказка:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "Возможно, вы захотите обновить наименование полÑ, чтобы убедитьÑÑ, что оно ÑоответÑтвует выбранному варианту Ð¿ÐµÑ€ÐµÐ½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÑвÑзи." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "КÑшированные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÐµÐ¹" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabase может Ñканировать Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ Ð¸ включить возможноÑÑ‚ÑŒ иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ checkbox-фильтров на панели индикаторов и в вопроÑах." @@ -703,82 +701,82 @@ msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ началÑÑ!" msgid "Select any table to see its schema and add or edit metadata." msgstr "Выбрать базу данных что бы увидеть её Ñхему или изменить мета данные." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "Ð˜Ð¼Ñ Ð¾Ð±Ñзательно" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "ОпиÑание обÑзательно" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "ОпиÑание внеÑенных изменений обÑзательно" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "ÐÐ³Ñ€ÐµÐ³Ð°Ñ†Ð¸Ñ Ð¾Ð±Ñзательна" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "Изменить Вашу Метрику" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "Создать Вашу Метрику" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "ВнеÑите Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² метрику и оÑтавьте к ним поÑÑнение." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "Ð’Ñ‹ можете Ñоздать Ñохраненные метрики, чтобы иÑпользовать их в данной таблице. Сохраненные метрики включают тип агрегации, агрегированное поле и, при необходимоÑти, любой фильтр. Ðапример, вы можете иÑпользовать их, чтобы Ñоздать что-то вроде единÑтвенного официального ÑпоÑоба вычиÑÐ»ÐµÐ½Ð¸Ñ \"Средней цены\" Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ \"Заказы\"." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "Результаты: " -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "Ð˜Ð¼Ñ Ð²Ð°ÑˆÐµÐ¹ Метрики" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "Задайте Ð¸Ð¼Ñ Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ метрики, чтобы другие пользователи Ñмогли ее найти." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "Что-нибудь опиÑательное, но не Ñлишком длинное" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "Опишите вашу Метрику" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "Укажите опиÑание вашей метрики, чтобы помочь другим понÑÑ‚ÑŒ о чем она." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "Ðто идеальное меÑто, чтобы быть более конкретным в отношении менее очевидных правил вычиÑÐ»ÐµÐ½Ð¸Ñ Ð¼ÐµÑ‚Ñ€Ð¸ÐºÐ¸" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "Причина изменений" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "ОÑтавьте опиÑание внеÑенных вами изменений и почему они были необходимы." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "Данное Ñообщение поÑвитÑÑ Ð² иÑтории изменений метрики и поможет вÑем воÑÑтановить ход Ñобытий" @@ -794,7 +792,7 @@ msgstr "Изменить ваш Сегмент" msgid "Create Your Segment" msgstr "Создать ваш Сегмент" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "ВнеÑите Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ваш Ñегмент и оÑтавьте к ним поÑÑнение." @@ -802,37 +800,37 @@ msgstr "ВнеÑите Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ваш Ñегмент и оÑтав msgid "Select and add filters to create your new segment for the {0} table" msgstr "Выберите и добавьте фильтры Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ нового Ñегмента к таблице {0}" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "Задайте Ð¸Ð¼Ñ Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ Сегмента" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "Задайте Ð¸Ð¼Ñ Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ Ñегмента, чтобы другие Ñмогли его найти." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "Опишите ваш Сегмент" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "Укажите опиÑание вашей метрики, чтобы помочь другим понÑÑ‚ÑŒ о чем она. " -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "Ðто идеальное меÑто, чтобы быть более конкретным в отношении менее очевидных правил Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñегмента" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "Данное Ñообщение поÑвитÑÑ Ð² иÑтории изменений Ñегмента и поможет вÑем воÑÑтановить ход Ñобытий" #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "ÐаÑтройки" @@ -846,34 +844,30 @@ msgstr "ПереÑканировать Ñту таблицу" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "Добавить" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "Email указан неверно" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "ИмÑ" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "ФамилиÑ" #. Строка "Email" еÑÑ‚ÑŒ ниже. #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "ÐÐ´Ñ€ÐµÑ Ñлектронной почты" @@ -911,7 +905,7 @@ msgstr "УчаÑтники" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "Email" @@ -921,10 +915,10 @@ msgid "A group is only as good as its members." msgstr "Группа также хороша, как и ее члены." #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" -msgstr "ÐдминиÑтратор" +msgstr "ÐдминиÑтрирование" #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:16 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:245 @@ -984,11 +978,11 @@ msgstr "Удалить группу" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "Готово" @@ -997,9 +991,9 @@ msgid "Group name" msgstr "Ð˜Ð¼Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "Группы" @@ -1028,10 +1022,10 @@ msgstr "СброÑить пароль" msgid "Deactivate" msgstr "Деактивировать" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "Люди" @@ -1071,7 +1065,7 @@ msgstr "Мы отправили Ð¿Ñ€Ð¸Ð³Ð»Ð°ÑˆÐµÐ½Ð¸Ñ Ð´Ð»Ñ {0} Ñ Ð¸Ð½ÑÑ‚Ñ€ msgid "We've re-sent {0}'s invite" msgstr "Мы переотправили приглашение {0}" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "Хорошо" @@ -1103,7 +1097,7 @@ msgstr "Они Ñмогут зайти Ñнова, и им будут возвр msgid "Reset {0}'s password?" msgstr "СброÑить пароль Ð´Ð»Ñ {0}?" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "СброÑить" @@ -1142,19 +1136,19 @@ msgstr "Добавить кого-нибудь" msgid "Last Login" msgstr "ПоÑледний вход" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Вход Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Google" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "Вход Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ LDAP" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "Повторно активировать Ñту учетную запиÑÑŒ" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "Ðикогда" @@ -1199,7 +1193,7 @@ msgid " native queries for " msgstr " прÑмые запроÑÑ‹ к " #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "Привилегии" @@ -1256,115 +1250,115 @@ msgstr "MetaBot Ñто Slack бот Metabase. ЗдеÑÑŒ вы можете вы msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "Группа \"{0}\" имеет доÑтуп к иным {1}, чем Ð´Ð°Ð½Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°, что позволит ей получить доÑтуп к {2}." -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "Группа \"{0}\" имеет больший уровень доÑтупа, чем Ñтот, что переопределит данный параметр. Вам Ñледует ограничить или отозвать доÑтуп группы \"{1}\" к данному Ñлементу." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "Ограничение" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "Отозвать" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "доÑтуп, даже еÑли \"{0}\" имеет больший доÑтуп?" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "Ограничить доÑтуп" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "Отозвать доÑтуп" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "Ограничить доÑтуп к Ñтой базе данных?" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "Изменить" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "Разрешить напиÑание прÑмых запроÑов?" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "Ðто также предоÑтавит данной группе Ðеограниченный доÑтуп к базе данных." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "Разрешить" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "Отозвать доÑтуп ко вÑем таблицам?" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "Ðто также отзовет доÑтуп группы к прÑмым запроÑам к базе данных." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "ПредоÑтавить неограниченный доÑтуп" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "Ðеограниченный доÑтуп" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "Ограниченный доÑтуп" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "Ðет доÑтупа" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "ÐапиÑание прÑмых запроÑов" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Может пиÑать прÑмые запроÑÑ‹" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "УправлÑÑ‚ÑŒ коллекцией" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "ПоÑмотреть коллекцию" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "ДоÑтуп к данным" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "ПоÑмотреть таблицы" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "SQL запроÑÑ‹" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "ПоÑмотреть Ñхемы" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "Модель данных" @@ -1507,8 +1501,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "Metabase {0} доÑтупна. Ð’Ñ‹ иÑпользуете {1}" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "Обновить" @@ -1531,18 +1525,20 @@ msgstr "Удалить текущую карту" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "Удалить" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "Выбрать..." @@ -1706,7 +1702,7 @@ msgstr "СпиÑок вÑтраиваемых карточек" #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:186 msgid "No questions have been embedded yet." -msgstr "Ðи один Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÐµÑ‰Ðµ не вÑтроен." +msgstr "Ðи один Ð·Ð°Ð¿Ñ€Ð¾Ñ ÐµÑ‰Ðµ не вÑтроен." #: frontend/src/metabase/admin/settings/components/widgets/SecretKeyWidget.jsx:35 msgid "Regenerate embedding key?" @@ -1743,7 +1739,7 @@ msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð½Ð°Ñтройка {0}" msgid "Setup" msgstr "ÐаÑтроить" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "Общее" @@ -1870,7 +1866,7 @@ msgid "Username or DN" msgstr "Пользователь или DN" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "Пароль" @@ -1981,7 +1977,7 @@ msgstr "Множитель Cache Time-To-Live (TTL)" #: frontend/src/metabase/admin/settings/selectors.js:431 msgid "Max Cache Entry Size" -msgstr "МакÑимальный размер запиÑи кÑша" +msgstr "МакÑимальный объем запиÑи в кеш" #: frontend/src/metabase/alert/alert.js:60 msgid "Your alert is all set up." @@ -2033,31 +2029,31 @@ msgstr "Забыли пароль" msgid "The email you use for your Metabase account" msgstr "Email, который вы иÑпользуете Ñ Ð²Ð°ÑˆÐ¸Ð¼ Metabase аккаунта" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "ПоÑлать емаил Ð´Ð»Ñ ÑброÑа паролÑ" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "ПоÑлать емаил Ñ Ð¸Ð½Ñтрукцией как ÑброÑить пароль." -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "Войти в Metabase" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "ИЛИ" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ email" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "Войти" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "Похоже что Ñ Ð·Ð°Ð±Ñ‹Ð» Ñвой пароль" @@ -2076,7 +2072,7 @@ msgstr "По ÑоображениÑм безопаÑноÑти, ÑÑылки н "ЕÑли вам вÑе еще нужно ÑброÑить пароль, вы можете {0}." #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "Ðовый пароль" @@ -2089,38 +2085,38 @@ msgid "Create a new password" msgstr "Создать новый пароль" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "УдоÑтоверьтеÑÑŒ что пароль ÑоответÑтвует рекомендации безопаÑноÑти выше" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "Подтвердите новый пароль" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "УдоÑтоверьтеÑÑŒ что он ÑоответÑтвует тому который вы уже ввели" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "Ваш пароль был Ñброшен." -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "Зайди Ñ Ð²Ð°ÑˆÐ¸Ð¼ новым паролем" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "Сохранение не удалоÑÑŒ" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2139,22 +2135,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "Дашборды, коллекции и пульÑÑ‹ в Ñтой коллекции так же будут премещены в архив." #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "Ðрхив" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "Ðтот {0} перемещен в архив." -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "ПоÑмотреть архив" @@ -2164,17 +2161,19 @@ msgstr "ВоÑтоновить Ñтот {0}" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "Ðаши данные" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "ПроÑканировать Ñту таблицу" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "Узнать больше об Ñтой таблице" @@ -2269,18 +2268,18 @@ msgstr "Прикрепленные" msgid "Drag something here to pin it to the top" msgstr "ПеремеÑтите что-то Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы закрепить наверху" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "Коллекции" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "ПеремеÑтите чтобы открепить" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} Ñлемент выбран" @@ -2288,27 +2287,27 @@ msgstr[1] "{0} Ñлемента выбрано" msgstr[2] "{0} Ñлементов выбрано" msgstr[3] "{0} Ñлементов выбрано" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "ПеремеÑтить {0} Ñлементов?" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "ПеремеÑтить \"{0}\"?" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "ПеремеÑтить" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "Изменить Ñту коллекцию" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "ПеремеÑтить коллекцию в архив" @@ -2325,11 +2324,11 @@ msgstr "ÐÐ¾Ð²Ð°Ñ ÐºÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ" msgid "Copied!" msgstr "Скопировано!" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "ИÑпользать SSH-туннель Ð´Ð»Ñ ÑвÑзи Ñ Ð±Ð°Ð·Ð¾Ð¹ данных" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." @@ -2337,7 +2336,7 @@ msgstr "Ðекоторые инÑталлÑции баз данных могут "Ðта Ð¾Ð¿Ñ†Ð¸Ñ Ñ‚Ð°Ðº же предоÑтавлÑет дополнительный уровень безопаÑноÑти, когда недоÑтупен VPN. \n" "ИÑпользование может Ñнизить ÑкороÑÑ‚ÑŒ в Ñравнении Ñ Ð¿Ñ€Ñмым Ñоединением." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "Ðто Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ð±Ð°Ð·Ð° данных, так что дайте Ñ Ð²Ñ‹Ð±ÐµÑ€Ñƒ когда ÐœÑтабÑйз Ñинхронизирует и Ñканирует" @@ -2347,47 +2346,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail msgstr "По-умолчанию, Metabase выполнÑет поверхноÑтное Ñканирование каждый Ñ‡Ð°Ñ Ð¸ полное Ñканирование значений полей каждые Ñутки.\n" "ЕÑли у Ð²Ð°Ñ Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ð±Ð°Ð·Ð° данных, мы рекомендуем наÑтроить подходÑщее раÑпиÑание Ð´Ð»Ñ ÑÐºÐ°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ полей." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0} Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ Client ID и Client Secret Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ проекта." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "Ðажмите здеÑÑŒ" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "Выберите \"Прочее\" как тип приложениÑ. Ðазовите его на ваш вкуÑ." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0} Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð° аутентификации" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñми Google Drive" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "Вам необходимо разрешить доÑтуп по API в Google Developers Console, чтобы иÑпользовать Ñти данные в Metabase." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "{0} перейдите в конÑоль, еÑли вы Ñтого еще не Ñделали" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "Как бы вы хотели обращатьÑÑ Ðº Ñтой базе данных?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "Дальше" @@ -2406,7 +2405,7 @@ msgstr "ПеремеÑтить Ñтот Ñлемент" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "Изменить Ñтот запроÑ" @@ -2419,7 +2418,7 @@ msgstr "Тип дейÑтвиÑ" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "ПроÑмотреть иÑторю" @@ -2435,7 +2434,7 @@ msgstr "Заархивировать дейÑтвие" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "Добавить к дашборду" @@ -2446,7 +2445,7 @@ msgstr "Скачать результаты" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "Параметры шаринга" @@ -2492,65 +2491,63 @@ msgstr "ОÑновано на Ñхеме" msgid "A look at your" msgstr "ВзглÑните на" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "ПоиÑк в ÑпиÑке" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "ИÑкать по {0}" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr " или введитеь ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "Введите ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "Ведите номер" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "Введите текÑÑ‚" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "Ðе найдено ÑходÑÑ‚ в {0}." -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "Предположу, что выбор вÑех значений фильтра делу не поможет…" -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "Что-то пошло не так" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "Мы ÑтолкнулиÑÑŒ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹. Попробуйте обновить Ñтраницу или проÑто вернитеÑÑŒ назад." -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "ОпиÑание не заполнено" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "Ðовый {0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "Задан {0}" @@ -2571,8 +2568,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "Возвращен к более ранней редакции и {0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¹" @@ -2617,7 +2614,7 @@ msgid "Questions" msgstr "ЗапроÑÑ‹" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "ПульÑÑ‹" @@ -2654,7 +2651,7 @@ msgstr "ПодпиÑатьÑÑ" msgid "You're subscribed. Thanks for using Metabase!" msgstr "Ð’Ñ‹ подпиÑаны. СпаÑибо за иÑпользование Metabase!" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "Мы немного заблудилиÑь…" @@ -2663,14 +2660,14 @@ msgid "Temporary Password" msgstr "Временный пароль" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "Скрыть" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "Показать" @@ -2772,7 +2769,7 @@ msgstr "Выбрано" msgid "Nothing to select" msgstr "Ðичего не выбрано" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "Извините, у Ð²Ð°Ñ Ð¾Ñ‚ÑутÑтвуют Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ð° проÑмотр." @@ -2780,8 +2777,8 @@ msgstr "Извините, у Ð²Ð°Ñ Ð¾Ñ‚ÑутÑтвуют Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ msgid "Unknown error encountered" msgstr "Возникла неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "Создать" @@ -2789,7 +2786,6 @@ msgstr "Создать" msgid "Create dashboard" msgstr "Создать дашборд" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "Таблица" @@ -2814,12 +2810,11 @@ msgstr "Попробуйте уÑтановить фильтр Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ msgid "View by" msgstr "ПроÑмотрено" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "из" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "Ðикому не говори, но Ñ‚Ñ‹ мой любимчик." @@ -2827,19 +2822,19 @@ msgstr "Ðикому не говори, но Ñ‚Ñ‹ мой любимчик." msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "Как только вы подключите ÑобÑтвенные данные Ñ Ñмогу показать некоторые автоматичеÑкие изыÑканиÑ, названные X-ray. Вот неÑколько примеров на данных, которые еÑÑ‚ÑŒ у менÑ." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "Ðачните здеÑÑŒ" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "Ðаша ÑтатиÑтика" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "ПроÑмотреть вÑе Ñлементы" @@ -2849,46 +2844,47 @@ msgstr "Заменить или Ñохранить как новый?" #: frontend/src/metabase/containers/SaveQuestionModal.jsx:175 msgid "Replace original question, \"{0}\"" -msgstr "Заменить иÑходный вопроÑ, \"{0}\"" +msgstr "Заменить иÑходный запроÑ, \"{0}\"" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "Сохранить как новый запроÑ" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "Ð”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð°, Ñохраните ваш запроÑ" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "Сохранить запроÑ" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "Как называетÑÑ Ð²Ð°ÑˆÐ° карточка?" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "ОпиÑание" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "Ðто не обÑзательно, но может быть полезным" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "Ð’ какую коллекцию Ñледует Ñто включить?" @@ -2919,7 +2915,7 @@ msgstr "Ðайти запроÑ" #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:339 msgid "We're not sure if this question is compatible" -msgstr "Мы не уверены, ÑочетаетÑÑ Ð»Ð¸ данный вопроÑ" +msgstr "Мы не уверены, ÑочетаетÑÑ Ð»Ð¸ данный запроÑ" #: frontend/src/metabase/dashboard/components/ArchiveDashboardModal.jsx:43 msgid "Archive Dashboard" @@ -2929,13 +2925,13 @@ msgstr "Ðрхивировать Панель индикаторов" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "УбедитеÑÑŒ что Ñделан выбор Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ из Ñерий, иначе фильтр не будет работать на Ñтой карточке." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "Панель индикаторов кажетÑÑ Ð¿ÑƒÑтоватой." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" -msgstr "Добавьте Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸ Ñделайте ее полезной!" +msgstr "Добавьте Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¸ Ñделайте его полезным!" #: frontend/src/metabase/dashboard/components/DashboardActions.jsx:38 msgid "Daytime mode" @@ -2953,50 +2949,50 @@ msgstr "Выход из полноÑкранного режима" msgid "Enter fullscreen" msgstr "ПолноÑкранный режим" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "Сохранение..." -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "Добавить запроÑ" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "Добавить Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° Ñтот дашборд" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "Добавить фильтр" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "Параметры" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "Добавить текÑтовое поле" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "ПеремеÑтить дашборд" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "Изменить дашборд" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "Изменить внешний вид дашборда" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "Ð’Ñ‹ редактируете дашборд" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Выберите поле, которое должно быть фильтром в каждой из карт" @@ -3047,11 +3043,11 @@ msgstr "30 минут" msgid "60 minutes" msgstr "60 минут" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "Ðвтообновление" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "Обновление через" @@ -3063,7 +3059,7 @@ msgstr "Удалить Ñтот запроÑ?" msgid "Your dashboard was saved" msgstr "Ваш дашборд был Ñохранен" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "ПроÑмотреть" @@ -3117,7 +3113,7 @@ msgstr "удалил оповещение о - " #: frontend/src/metabase/home/components/Activity.jsx:154 msgid "saved a question about " -msgstr "Ñохранить Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¾ " +msgstr "Ñохранить Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¾ " #: frontend/src/metabase/home/components/Activity.jsx:167 msgid "saved a question" @@ -3138,22 +3134,21 @@ msgstr "удалил панель индикаторов" #: frontend/src/metabase/home/components/Activity.jsx:183 #: frontend/src/metabase/home/components/Activity.jsx:198 msgid "added a question to the dashboard - " -msgstr "добавил Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð½Ð° панель индикаторов - " +msgstr "добавил Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° панель индикаторов - " #: frontend/src/metabase/home/components/Activity.jsx:208 #: frontend/src/metabase/home/components/Activity.jsx:223 msgid "removed a question from the dashboard - " -msgstr "удалил Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸ индикаторов - " +msgstr "удалил Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸ индикаторов - " #: frontend/src/metabase/home/components/Activity.jsx:233 #: frontend/src/metabase/home/components/Activity.jsx:240 msgid "received the latest data from" msgstr "поÑледние данные получены" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "ÐеизвеÑтно" @@ -3228,11 +3223,11 @@ msgstr "Хммм, похоже ничего не произошло." #: frontend/src/metabase/home/components/Activity.jsx:534 msgid "Save a question and get this baby going!" -msgstr "Сохраните Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸ заÑтавьте Ñту детку идти!" +msgstr "Сохраните Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¸ заÑтавьте Ñту детку идти!" #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:19 msgid "Ask questions and explore" -msgstr "Задать Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸ иÑÑледовать" +msgstr "Создать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¸ иÑÑледовать" #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:20 msgid "Click on charts or tables to explore, or ask a new question using the easy interface or the powerful SQL editor." @@ -3270,7 +3265,7 @@ msgstr "ПоÑмотреть вÑÑ‘" msgid "Recently Viewed" msgstr "Ðедавно проÑмотренно" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "Ð’ поÑледнее времÑ, вы не Ñмотрели ни на один дÑшборд" @@ -3284,11 +3279,11 @@ msgid "Unarchive" msgstr "Разархивировать" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "ÐктивноÑÑ‚ÑŒ" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "Результаты Ð´Ð»Ñ \"{0}\"" @@ -3350,6 +3345,9 @@ msgstr "СÑылка на аватар" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "Общее" @@ -3392,8 +3390,8 @@ msgstr "Долгота" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "ЧиÑло" @@ -3440,93 +3438,93 @@ msgstr "Ð’Ñ€ÐµÐ¼Ñ ÑозданиÑ" msgid "Creation date" msgstr "Дата ÑозданиÑ" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "Продукт" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "Пользователь" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "ИÑточник" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "Цена" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "Отметка времени приÑоединениÑ" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¸ÑоединениÑ" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "Дата приÑоединениÑ" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "ПоделитьÑÑ" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "Владелец" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "КомпаниÑ" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "ПодпиÑка" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "Результат" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "Заголовок" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "Комментарий" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "СтоимоÑÑ‚ÑŒ" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Ð’Ð°Ð»Ð¾Ð²Ð°Ñ Ð¿Ñ€Ð¸Ð±Ñ‹Ð»ÑŒ" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "Дата рождениÑ" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "Поле Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "СпиÑок значений" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "Поле ввода текÑта" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "Везде" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "По умолчанию данное поле будет отображатьÑÑ Ð² таблицах и на графиках." @@ -3534,7 +3532,7 @@ msgstr "По умолчанию данное поле будет отображ msgid "Only in Detail Views" msgstr "Только в детальном проÑмотре" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "Данное поле будет отображено только при проÑмотре информации об отдельной запиÑи, предназначено Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¾Ð³Ð¾ объема информации, необÑзательного Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² таблицах и на графиках." @@ -3548,7 +3546,8 @@ msgstr "Metabase никогда не получит Ñто поле. ИÑпол #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3563,8 +3562,9 @@ msgid "CumulativeCount" msgstr "Ðакопительное количеÑтво" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "Сумма" @@ -3574,7 +3574,7 @@ msgstr "ÐÐ°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ñумма" #. Во множеÑтвенном чиÑле иÑÑ…Ð¾Ð´Ñ Ð¸Ð· применÑемоÑти в Metabase. #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "Уникальные" @@ -3583,25 +3583,28 @@ msgid "StandardDeviation" msgstr "Стандартное отклонение" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "Среднее" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "Минимальное" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "МакÑимальное" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "груÑÑ‚Ð½Ð°Ñ Ð³Ñ€ÑƒÑÑ‚Ð½Ð°Ñ Ð¿Ð°Ð½Ð´Ð°, обнаружены лекÑичеÑкие ошибки" @@ -3655,12 +3658,13 @@ msgid "What do you want to find out?" msgstr "Что Ð²Ð°Ñ Ð¸Ð½Ñ‚ÐµÑ€ÐµÑует?" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "ИÑходные данные" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "Ðакопительное количеÑтво" @@ -3704,174 +3708,174 @@ msgstr "Отфильтровано по " msgid "Sorted by " msgstr "Сортировано по " -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "ИÑтина" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "Ложь" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Выберите поле Ñ Ð´Ð¾Ð»Ð³Ð¾Ñ‚Ð¾Ð¹" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "Введите верхнюю широту" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "Введите левую долготу" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "Введите нижнюю широту" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "Введите правую долготу" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "-" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "Ðе" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "ПуÑто" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "Ðе пуÑто" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "Равно" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "Ðе равно" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "Больше чем" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "Меньше чем" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "Между" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "Больше или равно" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "Меньше или равно" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "Содержит" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "Ðе Ñодержит" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "ÐачинаетÑÑ Ñ" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "ЗаканчиваетÑÑ" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "До" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "ПоÑле" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "Внутри" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "ПроÑто таблица Ñо Ñтроками результатов, без дополнительных операций." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "КоличеÑтво запиÑей" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "Общее количеÑтво запиÑей в ответе" -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "КоличеÑтво ..." -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "КоличеÑтво вÑех значений колонки." -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "Среднее ..." -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "Среднее вÑех значений колонки." -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "Уникальные значениÑ..." -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "КоличеÑтво уникальных значений Ñтолбца Ñреди вÑех запиÑей в ответе." -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "Сумма нараÑтащим итогом…" @@ -3880,7 +3884,7 @@ msgstr "Сумма нараÑтащим итогом…" msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "Совокупное Ñумма вÑех значений Ñтолбца.\\\\ne.x. вÑего доход за временной интервал." -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "ÐараÑтающий итог" @@ -3888,28 +3892,28 @@ msgstr "ÐараÑтающий итог" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "Совокупное количеÑтво запиÑей.\\\\ne.x. вÑего продаж за временной интервал." -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "Стандартное отклонение…" #. ÐšÑ€Ð¸Ð²Ð°Ñ Ñ„Ð¾Ñ€Ð¼ÑƒÐ»Ð¸Ñ€Ð¾Ð²ÐºÐ° получилаÑÑŒ, нужно уточнение. -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "ЧиÑло, отражающее наÑколько Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñтолбца отклонÑÑŽÑ‚ÑÑ Ð¾Ñ‚ вÑех запиÑей ответа." -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "Минимум ..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Минимальное значение Ñтолбца" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "МакÑимум ..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "МакÑимальное значение колонки" @@ -4083,68 +4087,70 @@ msgstr "Прочие категории" msgid "Category, Type, Model, Rating, etc." msgstr "КатегориÑ, Тип, Модель, Рейтинг, прочее." -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "ÐаÑтройки учетной запиÑи" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "Выйти из админиÑтрированиÑ" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "Логи" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Помощь" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "О Metabase" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "Выход" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "СпаÑибо за иÑпользование" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "Ваша верÑиÑ" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "ПоÑтроено" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "Торговый знак" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "и было Ñоздано Ñ Ð·Ð°Ð±Ð¾Ñ‚Ð¾Ð¹ в Сан ФранциÑко, КалифорниÑ" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Управление Metabase" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" -msgstr "Задать вопроÑ" +msgstr "Создать запроÑ" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "Ðовый дашборд" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "Ðовый пульÑ" @@ -4157,7 +4163,6 @@ msgstr "Справочник" msgid "Which metric?" msgstr "ÐšÐ°ÐºÐ°Ñ Ð¼ÐµÑ‚Ñ€Ð¸ÐºÐ°?" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "Определение произвольных метрик Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ команды позволит упроÑтить поиÑк ответов на запроÑÑ‹." @@ -4175,7 +4180,7 @@ msgid "Custom" msgstr "Произвольный" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "Ðовый запроÑ" @@ -4183,13 +4188,13 @@ msgstr "Ðовый запроÑ" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "ИÑпользуйте проÑтой поÑтроитель запроÑов Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра трендов, ÑпиÑка вещей, или ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑобÑтвенных метрик." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "ПрÑмой запроÑ" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "Ð”Ð»Ñ Ð±Ð¾Ð»ÐµÐµ Ñложных запроÑов, вы можете напиÑать ÑобÑтвенный SQL или прÑмой запроÑ." @@ -4299,7 +4304,7 @@ msgstr "Введите значение..." msgid "Enter a default value..." msgstr "Введите значение по-умолчаниÑ..." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "Возникла ошибка" @@ -4549,7 +4554,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "Мы рекомендуем держать пульÑÑ‹ небольшими и целенаправленными, что бы приноÑить пользу вÑей команде." #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "Выберите данные" @@ -4565,47 +4570,47 @@ msgstr "Ðлектронные адреÑа" msgid "Slack messages" msgstr "Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Slack" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "Отправлено" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} будет отправлено на" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "СообщениÑ" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "Отправить Email прÑмо ÑейчаÑ" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "Отправить {0} прÑмо ÑейчаÑ" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "Отправка..." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "Отправка не удалаÑÑŒ" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "Ðе отправлено, потому что Ð¿ÑƒÐ»ÑŒÑ Ð½Ðµ Ñодержит результатов." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "ÐŸÑƒÐ»ÑŒÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} должно быть наÑтроено админиÑтратором." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4692,7 +4697,7 @@ msgstr "КоличеÑтво Ñтрок по времени" msgid "Break out by {0}" msgstr "Разбить по {0}" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "Резюмировать Ñтот Ñегмент" @@ -4746,15 +4751,15 @@ msgstr "По возраÑтанию" msgid "Descending" msgstr "По убыванию" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "по времени" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "Среднее" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "Уникальные" @@ -4952,12 +4957,13 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾Ñнованные на целÑÑ… ещё не поддерживаютÑÑ Ð´Ð»Ñ Ð³Ñ€Ð°Ñ„Ð¸ÐºÐ¾Ð² Ñ Ð±Ð¾Ð»ÐµÐµ чем одной кривой. Следовательно Ñто уведомление будет поÑлано как только значение графика доÑтигнет {1}." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "результаты" #: frontend/src/metabase/query_builder/components/AlertModals.jsx:681 msgid "{0} This kind of alert is most useful when your saved question doesn’t {1} return any results, but you want to know when it does." -msgstr "{0} Ðто уведомление оÑобенно полезно когда ваш Ñохранённый Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð½Ðµ {1} возвращает никаких результатов, но вы хотите знать когда Ñто произойдёт." +msgstr "{0} Ðто уведомление оÑобенно полезно когда ваш Ñохранённый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ðµ {1} возвращает никаких результатов, но вы хотите знать когда Ñто произойдёт." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:682 msgid "Tip" @@ -4967,47 +4973,47 @@ msgstr "ПодÑказка" msgid "usually" msgstr "обычно" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "Прикрепите Ñегмент или таблицу" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "Выберите базу данных" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "Выбрать..." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "Выберите таблицу" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "Ð’ Ñтой базе данных не найдено ни одной таблицы." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑ‰ÐµÐ½?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "Узнать больше о вложенных запроÑах" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "ПолÑ" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "Сегменты не найдены." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "Ðайти Ñегмент" @@ -5057,7 +5063,7 @@ msgstr "Добавить группировку" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5065,9 +5071,9 @@ msgstr "Добавить группировку" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5090,7 +5096,7 @@ msgstr "Сгруппировано по" msgid "None" msgstr "Ðичего" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "Ðтот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð°Ð¿Ð¸Ñан в {0}." @@ -5102,11 +5108,11 @@ msgstr "Скрыть Редактор" msgid "Hide Query" msgstr "Скрыть ЗапроÑ" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "Открыть Редактор" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "Показать ЗапроÑ" @@ -5151,7 +5157,7 @@ msgstr "ОТМЕÐÐ" msgid "Move question" msgstr "ПеремеÑтить запроÑ" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "ÐšÐ°ÐºÐ°Ñ ÐºÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° быть здеÑÑŒ?" @@ -5205,7 +5211,7 @@ msgstr "{0} Ð´Ð»Ñ Ñтого запроÑа" msgid "Convert this question to {0}" msgstr "Преобразовать Ñтот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð² {0}" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "Обновление запроÑа займёт {0}" @@ -5241,13 +5247,13 @@ msgstr "ЕÑли вы дадите мне данные Ñ Ñмогу показ msgid "How do I use this thing?" msgstr "Как Ñ Ð¼Ð¾Ð³Ñƒ иÑпользовать Ñту вещь?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "Получить ответ" #: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:12 msgid "It's okay to play around with saved questions" -msgstr "Ðто нормально, когда можно играть Ñ Ñохраненными вопроÑами" +msgstr "Ðто нормально, когда можно играть Ñ Ñохраненными запроÑами" #: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:14 msgid "You won't make any permanent changes to a saved question unless you click the edit icon in the top-right." @@ -5310,7 +5316,7 @@ msgstr "получить предупреждение" msgid "Back to last run" msgstr "ВернутьÑÑ Ðº поÑледнему запуÑку" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "ВизуализациÑ" @@ -5322,7 +5328,7 @@ msgstr "ОпиÑание не задано." msgid "Use for current question" msgstr "ИÑпользовать текущий запроÑ." -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "Потенциально полезные запроÑÑ‹." @@ -5346,7 +5352,7 @@ msgstr "Уникальные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ {0}" msgid "Number of {0} grouped by {1}" msgstr "ЧиÑло {0} Ñгруппированных по {1}" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5365,7 +5371,7 @@ msgstr "Узнайте больше о Ñтруктуре ваших данны #: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:65 #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:91 msgid "Could not find the table metadata prior to creating a new question" -msgstr "Ðе удалоÑÑŒ найти метаданные таблицы до ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ вопроÑа" +msgstr "Ðе удалоÑÑŒ найти метаданные таблицы до ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ запроÑа" #: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:87 msgid "See {0}" @@ -5380,12 +5386,12 @@ msgid "Filter by {0}" msgstr "Отфильтровано по {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "ЧиÑло {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "Смотреть вÑе {0}" @@ -5405,32 +5411,33 @@ msgstr "ПоÑмотреть иÑходные данные Ð´Ð»Ñ {0}" msgid "More" msgstr "Больше" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "Ðекорректное выражение" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Формула полÑ" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "Подумайте об Ñтом как о том, как напиÑать формулу в программе Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ñлектронными таблицами: вы можете иÑпользовать чиÑла, Ð¿Ð¾Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹, математичеÑкие Ñимволы, такие как +, и некоторые функции. Таким образом, вы можете ввеÑти что-то вроде Итого - СтоимоÑÑ‚ÑŒ." -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "Узнать больше" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "Дать имÑ" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "Что-нибудь замечательное и понÑтное" @@ -5510,7 +5517,7 @@ msgid "Enter desired number" msgstr "Введите желаемый номер" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "ПуÑто" @@ -5560,7 +5567,7 @@ msgstr "ПриÑвоение переменной типа \"фильтр пол #: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:150 msgid "When adding a Field Filter variable, you'll need to map it to a specific field. You can then choose to display a filter widget on your question, but even if you don't, you can now map your Field Filter variable to a dashboard filter when adding this question to a dashboard. Field Filters should be used inside of a \"WHERE\" clause." -msgstr "При добавлении переменной фильтра полей необходимо ÑопоÑтавить ее Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ð¼ полем. Затем можно выбрать отображение виджета фильтра Ð´Ð»Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñа, но даже еÑли Ñто не так, теперь можно ÑопоÑтавить переменную фильтра Ð¿Ð¾Ð»Ñ Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð¾Ð¼ панели мониторинга при добавлении Ñтого вопроÑа на панель мониторинга. Фильтры полей должны иÑпользоватьÑÑ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ \"WHERE\"." +msgstr "При добавлении переменной фильтра полей необходимо ÑопоÑтавить ее Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ð¼ полем. Затем можно выбрать отображение виджета фильтра Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа, но даже еÑли Ñто не так, теперь можно ÑопоÑтавить переменную фильтра Ð¿Ð¾Ð»Ñ Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð¾Ð¼ панели мониторинга при добавлении Ñтого запроÑа на панель мониторинга. Фильтры полей должны иÑпользоватьÑÑ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ \"WHERE\"." #: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:157 msgid "Optional Clauses" @@ -5578,41 +5585,41 @@ msgstr "Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð½Ð¾Ð¶ÐµÑтва необÑзате msgid "Read the full documentation" msgstr "ОзнакомитьÑÑ Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð¹ документацией" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "Заголовок фильтра" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "Тип переменной" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "ТекÑÑ‚" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "Дата" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Фильтр полÑ" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "СвÑзующие полÑ" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "Тип фильтра виджета" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "ОбÑзательно?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "Значение по-умолчанию Ð´Ð»Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð° виджета" @@ -5624,7 +5631,7 @@ msgstr "ПеремеÑтить Ñтот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð² архив?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "Ðтот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð±ÑƒÐ´ÐµÑ‚ удален Ñо вÑех дашбордов или пульÑов, где он был добавлен." -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "ЗапроÑ" @@ -5636,8 +5643,8 @@ msgstr "Выберите Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ" msgid "You are editing this page" msgstr "Ð’Ñ‹ редактируете Ñту Ñтраницу" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "ПоÑмотреть {0}" @@ -5645,15 +5652,15 @@ msgstr "ПоÑмотреть {0}" msgid "A subset of" msgstr "МножеÑтво" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "Выберите тип полÑ" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5665,8 +5672,8 @@ msgid "by" msgstr "по" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "Тип полÑ" @@ -5691,12 +5698,12 @@ msgid "Nothing important yet" msgstr "Пока ничего важного" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "Пока ничего интереÑного" @@ -5705,12 +5712,12 @@ msgid "Things to be aware of about this {0}" msgstr "Что нужно знать о {0}" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "Пока ничего не извеÑтно" @@ -5725,7 +5732,7 @@ msgstr "ПроÑмотреть метрику" #. Where is it used? #: frontend/src/metabase/reference/components/GuideDetail.jsx:112 msgid "By {0}" -msgstr "{0}" +msgstr "По {0}" #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:146 msgid "Remove item" @@ -5757,7 +5764,7 @@ msgstr "ЕÑÑ‚ÑŒ ли что-нибудь, о чем пользователи д msgid "Which 2-3 fields do you usually group this metric by?" msgstr "По каким 2-3 полÑм вы обычно группируете данную метрику?" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "Ðто идеальное меÑто Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ вашей организации или чтобы проÑто узнать что к чему." @@ -5773,11 +5780,11 @@ msgstr "Причины изменениÑ" msgid "Leave a note to explain what changes you made and why they were required" msgstr "ОÑтавьте опиÑание, чтобы объÑÑнить какие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð’Ñ‹ Ñделали и почему они необходимы" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "Почему Ñта база данных может быть интереÑна" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "Что нужно знать об Ñтой базе данных" @@ -5787,44 +5794,44 @@ msgid "Databases and tables" msgstr "Базы данных и таблицы" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "Детали" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "Таблицы в {0}" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "Ð˜Ð¼Ñ Ð² базе данных" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "Почему Ñто поле может быть интереÑно" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "Что нужно знать об Ñтом поле" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "Тип данных" @@ -5838,12 +5845,12 @@ msgstr "ÐŸÐ¾Ð»Ñ Ð² Ñтой таблицу поÑвÑÑ‚ÑÑ Ð¿Ð¾Ñле их д msgid "Fields in {0}" msgstr "ÐŸÐ¾Ð»Ñ Ð² {0}" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»Ñ" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "ПроÑканировать Ñто поле" @@ -5874,11 +5881,11 @@ msgstr "КоличеÑтво {0}" msgid "See raw data for {0}" msgstr "ПоÑмотреть иÑходные данные Ð´Ð»Ñ {0}" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "Почему Ñта таблица может быть интереÑна" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "Что нужно знать об Ñтой таблице" @@ -5892,7 +5899,7 @@ msgstr "ЗапроÑÑ‹ об Ñтой таблице поÑвÑÑ‚ÑÑ Ð¿Ð¾Ñле #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "ЗапроÑÑ‹ о {0}" @@ -5907,7 +5914,7 @@ msgstr "Создано {0} пользователем {1}" msgid "Fields in this table" msgstr "ÐŸÐ¾Ð»Ñ Ð² Ñтой таблице" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "ЗапроÑÑ‹ об Ñтой таблице" @@ -5943,7 +5950,7 @@ msgstr "ПоÑмотреть вÑе метрики" msgid "Segments and tables" msgstr "Сегменты и таблицы" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "Таблицы" @@ -6060,8 +6067,8 @@ msgstr "Могут ли пользователи к вам обращатьÑÑ msgid "Who should users contact for help if they're confused about this data?" msgstr "С кем должны ÑвÑзывать пользователи Ð´Ð»Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰Ð¸ при возникновении вопроÑов по данным?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "ПожалуйÑта, добавьте Ñообщение ревизии" @@ -6077,15 +6084,15 @@ msgstr "Что нужно знать об Ñтой метрике" msgid "How this Metric is calculated" msgstr "Как раÑÑчитываетÑÑ Ñта метрика" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "Пока ничего не раÑÑчитано" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "Другие полÑ, по которым вы можете группировать Ñту метрику" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "Метрика может быть Ñгруппирована по Ñледующим полÑм" @@ -6110,20 +6117,20 @@ msgid "There are no revisions for this metric" msgstr "Ð”Ð°Ð½Ð½Ð°Ñ Ð¼ÐµÑ‚Ñ€Ð¸ÐºÐ° не Ñодержит ревизий" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ð¹ {0}" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "ПроÑканировать Ñту метрику" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "Почему Ñтот Ñегмент интереÑен" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "Что нужно знать об Ñтом Ñегменте" @@ -6147,60 +6154,60 @@ msgstr "Узнайте как Ñоздавать Ñегменты" msgid "Questions about this segment will appear here as they're added" msgstr "ЗапроÑÑ‹ об Ñтом Ñегменте поÑвÑÑ‚ÑÑ Ð·Ð´ÐµÑÑŒ поÑле их добавлениÑ" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "Данный Ñегмент не Ñодержит ревизий" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "ÐŸÐ¾Ð»Ñ Ð² Ñтом Ñегменте" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "ЗапроÑÑ‹ Ñ Ñтим Ñегментом" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "ПроÑканировать Ñтот Ñегмент" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "Логин" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "ПоиÑк" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "Дашборд" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "Ðовый запроÑ" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "Выберите тип базы данных" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "Добавьте Ñвои данные" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "Я добавлю данные позже" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "Подключение к {0}" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "Вам необходимо Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ вашей базе данных, Ñ‚Ð°ÐºÐ°Ñ ÐºÐ°Ðº Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ пароль. ЕÑли у Ð²Ð°Ñ Ð½ÐµÐµ ее прÑмо ÑÐµÐ¹Ñ‡Ð°Ñ - Metabase поÑтавлÑетÑÑ Ñ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð¼ теÑтовых данных, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ вы можете начать." -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "Я добавлю мои данные позже" @@ -6208,43 +6215,43 @@ msgstr "Я добавлю мои данные позже" msgid "Control automatic scans" msgstr "Контроль за автоматичеÑким Ñканированием" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "ÐаÑтройки иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "СпаÑибо за помощь в улучшении" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "Мы не хотим Ñобирать никакие ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð¸ÑпользованиÑ" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Ð”Ð»Ñ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Metabase, мы бы хотели Ñобирать некоторые данные по иÑпользованию через Google Analytics." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "Вот полный ÑпиÑок вÑего что мы отÑлеживаем и почему." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "Разрешить Metabase Ñобирать анонимные данные о иÑпользовании" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase {0} Ñобирает что либо о ваших данных или результатах вопроÑов." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "никогда" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "Ð’Ñе коллекции полноÑтью анонимны." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть отключена в любой момент в наÑтройках админиÑтратора." @@ -6292,24 +6299,24 @@ msgstr "Привет, {0}. рады Ð²Ð°Ñ Ð²Ð¸Ð´ÐµÑ‚ÑŒ!" msgid "Create a password" msgstr "Создайте пароль" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "ТÑÑÑ..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "Подтверждение паролÑ" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "ТÑÑ… но еще раз, чтобы навернÑка" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "Ðазвание вашей компании или команды" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "Департамент" @@ -6372,7 +6379,7 @@ msgstr "РаÑÑказать больше" #: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:43 msgid "Start by picking the table with the data that you have a question about." -msgstr "Ðачните Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° таблицы, о данных которой вы хотели бы задать вопроÑ." +msgstr "Ðачните Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° таблицы, по данным которой вы хотели бы Ñоздать запроÑ." #: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:45 msgid "Go ahead and select the \"Orders\" table from the dropdown menu." @@ -6486,11 +6493,11 @@ msgstr "Войти Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ аккаунта Google" msgid "User Details" msgstr "Детали пользователÑ" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "СброÑить по-умолчанию" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "неизвеÑÑ‚Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°" @@ -6498,7 +6505,7 @@ msgstr "неизвеÑÑ‚Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°" msgid "Grid map requires binned longitude/latitude." msgstr "Карта нуждаетÑÑ Ð² ÑоответÑтвующих градуÑах долготы и широты" -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "больше" @@ -6535,31 +6542,31 @@ msgstr "СнÑÑ‚ÑŒ выбор" msgid "Rows {0}-{1} of {2}" msgstr "ЗапиÑи {0}-{1} из {2}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "Данные Ñокращены до {0} Ñтрок." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "Ðевозможно найти визуализацию" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "Ðевозможно отобразить график Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼Ð¸ данным." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "Ðет результатов!" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "Ожидание..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "Ðто в Ñреднем занимает {0}." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(Ðто неÑколько длинновато Ð´Ð»Ñ Ð´Ð°ÑˆÐ±Ð¾Ñ€Ð´Ð°)" @@ -6575,11 +6582,11 @@ msgstr "Выберите поле" msgid "error" msgstr "ошибка" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "Ðажмите и перетащите Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ñ… порÑдка" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "Добавить Ð¿Ð¾Ð»Ñ Ðº ÑпиÑке ниже" @@ -6718,19 +6725,19 @@ msgstr "Добавить правило" msgid "Update rule" msgstr "Обновить правило" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "Ð’Ð¸Ð·ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ðµ задана" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "Ð’Ð¸Ð·ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° определÑÑ‚ÑŒ Ñтатичную переменную 'identifier': " -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "Ð’Ð¸Ð·ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ Ñтим идентификатором уже зарегиÑтрирована: " -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "Ðет визуализации Ð´Ð»Ñ {0}" @@ -6738,11 +6745,11 @@ msgstr "Ðет визуализации Ð´Ð»Ñ {0}" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "\"{0}\" - не агрегированое поле: еÑли в точке оÑи x имеетÑÑ Ð±Ð¾Ð»ÐµÐµ двух значений - они будут проÑуммированы." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "Данный тип графика требует как минимум 2 Ñтолбца." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "Данный тип графика не поддерживает больше чем {0} наборов данных." @@ -6788,7 +6795,7 @@ msgstr "ПожалуйÑта наÑтройки Ñтот график в Ð½Ð°Ñ msgid "Edit Settings" msgstr "Изменить наÑтройки" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "X-Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚ÑутÑтвуют!" @@ -6815,7 +6822,7 @@ msgid "Bubble size" msgstr "Размер пузырька" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "ЛиниÑ" @@ -6872,104 +6879,104 @@ msgstr "Ðичего" msgid "Linear Interpolated" msgstr "Ð›Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð¿Ð¾Ð»ÑциÑ" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "Шкала оÑи абÑциÑÑ" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "Ð’Ñ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑˆÐºÐ°Ð»Ð°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "Линейный" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "Ð’ Ñтепени" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "Лог" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "ГиÑтограмма" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "ПорÑдковый" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "МаÑштаб Y оÑи" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "Показать Ñтроку и метки по оÑи x" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Компактно" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "Перевернуть на 45°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "Перевернуть на 90°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "Показать Ñтроку и метки по оÑи y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Ðвто диапазон оÑи ординат" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "ИÑпользовать разрывы школы ординат когда Ñто необходимо" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "Показать метку на X оÑи" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "Метка X оÑи" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "Показать метку на Y оÑи" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Метка Y оÑи" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "Стандартное отклонение" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "ОблаÑÑ‚ÑŒ" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "облаÑÑ‚ÑŒ графика" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "ГиÑтограмма" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "гиÑтограмма" @@ -6995,19 +7002,19 @@ msgstr "Тип воронки" msgid "Bar chart" msgstr "ГиÑтограмма" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "График" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "ПожалуйÑта выберите колонки, Ñодержащие широту и долготу Ð´Ð»Ñ Ð½Ð°Ñтройки графика." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "ПожалуйÑта выберите карту региона." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "ПожалуйÑта выберите облаÑÑ‚ÑŒ и Ñтолбцы показателей в наÑтройках графика." @@ -7015,73 +7022,73 @@ msgstr "ПожалуйÑта выберите облаÑÑ‚ÑŒ и Ñтолбцы msgid "Map" msgstr "Карта" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "Тип карты" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "Карта региона" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "Закрепить карту" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "Тип значка" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "Плитка" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "Маркеры" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "Поле широты" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "Поле долготы" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "Поле измерениÑ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "Поле региона" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "РадиуÑ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "Размытие" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð¿Ñ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð¾ÑÑ‚ÑŒ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "МакÑимальное приближение" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "СвÑзи не найдены." -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "через {0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "{0} ÑвÑзано Ñ:" @@ -7093,7 +7100,7 @@ msgstr "Детали объекта" msgid "object" msgstr "объект" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "Ð’Ñего" @@ -7142,7 +7149,7 @@ msgid "Progress" msgstr "ПрогреÑÑ" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "Цвет" @@ -7234,7 +7241,7 @@ msgstr "Право" msgid "Show background" msgstr "Показать фон" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "контейнер" @@ -7242,7 +7249,7 @@ msgstr[1] "контейнеров" msgstr[2] "контейнеры" msgstr[3] "контейнер" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "Ðвт. Ñкомпоновано" @@ -7676,7 +7683,7 @@ msgstr "Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ñумма" msgid "{0} and {1}" msgstr "{0} и {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} из {1}" @@ -8847,11 +8854,11 @@ msgstr "MB_ENCRYPTION_SECRET_KEY должен ÑоÑтоÑÑ‚ÑŒ как миним #. Right synonym for credentials in Russian? #: src/metabase/util/encryption.clj msgid "Saved credentials encryption is ENABLED for this Metabase instance." -msgstr "Шифрование Ñохранённых данных Ð´Ð»Ñ Ð´Ð¾Ñтупа ВКЛЮЧЕÐО Ð´Ð»Ñ Ñтой копии Metabase." +msgstr "Шифрование Ñохранённых учетных запиÑей ВКЛЮЧЕÐО Ð´Ð»Ñ Ñтой копии Metabase." #: src/metabase/util/encryption.clj msgid "Saved credentials encryption is DISABLED for this Metabase instance." -msgstr "Шифрование Ñохранённых данных Ð´Ð»Ñ Ð´Ð¾Ñтупа ВЫКЛЮЧЕÐО Ð´Ð»Ñ Ñтой копии Metabase." +msgstr "Шифрование Ñохранённых учетных запиÑей ВЫКЛЮЧЕÐО Ð´Ð»Ñ Ñтой копии Metabase." #. What's the "n" char in the beginning of the string for? #: src/metabase/util/encryption.clj @@ -9004,31 +9011,31 @@ msgstr "ПоÑмотреть Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²Ñех коллекц msgid "Also change sub-collections" msgstr "Так же изменить под-коллекции" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Может редактировать коллекцию и Ñодержимое" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Может Ñмотреть Ñодержимое Ñтой коллекции" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "ДоÑтуп к коллекции" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "У Ñтой группы еÑÑ‚ÑŒ разрешение на проÑмотре как минимум одного подмножеÑтва Ñтой коллекции." -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "У Ñтой группы еÑÑ‚ÑŒ разрешение на редактирование как минимум одного подмножеÑтва Ñтой коллекции." -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "ПроÑмотр под-коллекций" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "Запомнить менÑ" @@ -9048,7 +9055,7 @@ msgstr "Добавить Ñтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð² дашборд" msgid "Create a new dashboard" msgstr "Создать новый дашборд" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "Ð—Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ð°Ñ Ñтраница не найдена." @@ -9056,11 +9063,11 @@ msgstr "Ð—Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ð°Ñ Ñтраница не найдена." msgid "Select a {0}" msgstr "Выбрать {0}" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "СохранÑÑ‚ÑŒ дашборды, вопроÑÑ‹ и коллекции в \"{0}\"" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "Получать доÑтуп к дашбордам, вопроÑам и коллекциÑм в \"{0}\"" @@ -9078,14 +9085,14 @@ msgstr "СвÑзанные" #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:295 msgid "More X-rays" -msgstr "Больше рентгенов" +msgstr "Больше X-ray" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "Ðет результатов" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabase не Ñмог ничего найти по Ñтому запроÑу." @@ -9295,10 +9302,10 @@ msgstr "Ð/Д" msgid "Windows domain" msgstr "Домен Windows" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "Заголовки" @@ -9333,6 +9340,8 @@ msgstr "ПоделитьÑÑ" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9347,33 +9356,33 @@ msgstr "ПоделитьÑÑ" msgid "Display" msgstr "Отображение" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "ОÑи" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "Форматирование" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "Попробуйте Ñти X-ray, оÑнованные на ваших данных." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "При отображении графика возникли проблемы." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "ПроÑим прощениÑ, у Ð²Ð°Ñ Ð½ÐµÑ‚ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ð° проÑмотр Ñтой карточки." @@ -9387,26 +9396,26 @@ msgstr "{0} без примера набора данных, инÑтрукци #: frontend/src/metabase/modes/components/drill/AutomaticDashboardDrill.jsx:33 msgid "X-ray" -msgstr "Рентген" +msgstr "X-ray" #: frontend/src/metabase/modes/components/drill/CompareToRestDrill.js:34 msgid "Compare to the rest" msgstr "Cравнить Ñ Ð¾Ñтальным" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "ИÑпользовать чаÑовой поÑÑ Ð²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¾Ð¹ Java машины (JVM)" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "Мы рекомендуем оÑтавить Ñто выключенным, только еÑли вы не обрабатываете чаÑовой поÑÑ Ð²Ñ€ÑƒÑ‡Ð½ÑƒÑŽ в большинÑтве Ñвоих запроÑов Ñ Ñтими данными." -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "Важнейшие дашборды вашей команды будут здеÑÑŒ" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "Закрепить дашборды в {0} чтобы они поÑвилиÑÑŒ в Ñтом проÑтранÑтве Ð´Ð»Ñ Ð²Ñех." @@ -9430,18 +9439,18 @@ msgstr "ПодÑказка: " msgid "Select a currency type" msgstr "Выберите тип валюты" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "Тип полÑ" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "Разрешение проблем" #: frontend/src/metabase/admin/settings/selectors.js:93 msgid "Enable X-ray features" -msgstr "Включить функции \"Рентгена\"" +msgstr "Включить функции \"X-ray\"" #: frontend/src/metabase/admin/settings/selectors.js:320 msgid "Formatting Options" @@ -9483,11 +9492,11 @@ msgstr "ПродолжительноÑÑ‚ÑŒ (мÑ)" msgid "Currency" msgstr "Валюта" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "Выберите Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ канал..." -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "Опции Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ определены" @@ -9660,15 +9669,15 @@ msgstr "Прибор" msgid "Gauge ranges" msgstr "Диапазоны прибора" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "Поле Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "ПоÑледнÑÑ {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} был {1} {2}" @@ -9796,7 +9805,7 @@ msgstr "Квартал" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "Добавление {0} карточек в панель {1}: n{2}" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "Ошибка {0}:n{1}" @@ -9946,7 +9955,7 @@ msgstr "Объект Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ по типу, Ñодержащий пар #: src/metabase/public_settings.clj msgid "Allow users to explore data using X-rays" -msgstr "ПозволÑÑŽÑ‚ пользователÑм иÑÑледовать данные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ рентгеновÑких лучей" +msgstr "ПозволÑÑŽÑ‚ пользователÑм иÑÑледовать данные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ X-ray" #: src/metabase/public_settings/metastore.clj msgid "Using this URL to check token: {0}" @@ -10090,7 +10099,7 @@ msgstr "ОчиÑтка иÑтории задач выполнена уÑпешн msgid "not" msgstr "Ðе" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸, Ñмотрите" @@ -10999,7 +11008,7 @@ msgstr "Ð¡Ð¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð¿Ð¾ днÑм меÑÑца" #: resources/automagic_dashboards/table/GenericTable/Correlations.yaml msgid "If youre into correlations, this is the x-ray for you." -msgstr "ЕÑли вы в Ñовпадении, Ñто рентген Ð´Ð»Ñ Ð²Ð°Ñ" +msgstr "ЕÑли вы в Ñовпадении, Ñто X-ray Ð´Ð»Ñ Ð²Ð°Ñ" #: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml msgid "Sessions by Country" @@ -11091,6 +11100,7 @@ msgstr "Как Ñта метрика раÑпределÑетÑÑ Ð¿Ð¾ разн msgid "Sessions by page where the session began" msgstr "СеÑÑии за Ñтраницей, где ÑеÑÑÐ¸Ñ Ð½Ð°Ñ‡Ð°Ð»Ð°ÑÑŒ" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11439,15 +11449,15 @@ msgstr "Возможен повторный запуÑк?" msgid "Triggers for {0}" msgstr "Триггеры Ð´Ð»Ñ {0}" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "Задачи" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "Работа" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "Дубликат {0}" @@ -11459,7 +11469,7 @@ msgstr "Дублировать Ñтот Ñлемент" msgid "Archive this item" msgstr "Ðрхивировать Ñтот Ñлемент" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "Дублировать Панель УправлениÑ" @@ -11486,6 +11496,7 @@ msgid "Next {0}" msgstr "Следующий {0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "Предыдущий {0}" @@ -11600,8 +11611,8 @@ msgstr "[?]?" msgid "This" msgstr "Ðтот" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "Ðекорректный" @@ -11609,11 +11620,11 @@ msgstr "Ðекорректный" msgid "Add a time" msgstr "Добавить времÑ" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "Ðечего Ñравнивать Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼ {0}." -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "по {0}" @@ -11663,45 +11674,45 @@ msgstr "Ðевозможно подключитьÑÑ Ðº Metabase {0} БД." #: src/metabase/db/migrations.clj msgid "Error adding legacy SQL directive to BigQuery saved Question" -msgstr "Ошибка Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÑтаревшей SQL команды в Ñохранённый Ð²Ð¾Ð¿Ñ€Ð¾Ñ BigQuery" +msgstr "Ошибка Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÑтаревшей SQL команды в Ñохранённый Ð·Ð°Ð¿Ñ€Ð¾Ñ BigQuery" #: src/metabase/driver.clj msgid "Failed to notify {0} Database {1} updated" msgstr "Ðе удалоÑÑŒ уведомить {0} база данных {1} обновлена" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "Загрузка драйвера" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "Загрузить драйвер" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "Драйвер не зарегиÑтрирован поÑле загрузки: {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "Ошибка: попытка изменить ÑвойÑтво {0} `: abstract?` Ñ {1} на {2}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "ÐбÑтрактный драйвер зарегиÑтрирован" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "Драйвер зарегиÑтрирован" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(родительÑкие: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° {0}..." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "Причина:" @@ -11853,11 +11864,11 @@ msgstr "{0} завиÑимоÑÑ‚ÑŒ {1} удовлетворена? {2}" msgid "Plugins with unsatisfied deps: {0}" msgstr "Плагины Ñ Ð½ÐµÑƒÐ´Ð¾Ð²Ð»ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ‹Ð¼Ð¸ завиÑимоÑÑ‚Ñми: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "Извлечь файл {0} -> {1}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "РеÑÑƒÑ€Ñ Ð½Ðµ ÑущеÑтвует" @@ -12060,7 +12071,7 @@ msgstr "МакÑимально доÑтупно ОЗУ Ð´Ð»Ñ JVM: {0}" #: src/metabase/util.clj msgid "Not something with an ID: {0}" -msgstr "Ðет чего-бо Ñ ID: {0}" +msgstr "Ðет чего-то Ñ ID: {0}" #: resources/automagic_dashboards/table/GenericTable.yaml msgid "[[CreateDate]] by month of the year" @@ -12183,7 +12194,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreateDate]] по кварталам года" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "Редактировать пользователÑ" @@ -12191,12 +12202,12 @@ msgstr "Редактировать пользователÑ" msgid "New user" msgstr "Ðовый пользователь" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "СброÑить пароль" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "Деактивировать пользователÑ" @@ -12283,7 +12294,7 @@ msgstr "DELETE /api/metric/:id уÑтарел. ВмеÑто Ñтого, изме #: src/metabase/api/segment.clj msgid "DELETE /api/segment/:id is deprecated. Instead, change its `archived` value via PUT /api/segment/:id." -msgstr " DELETE /api/segment/:id уÑтарел. ВмеÑто Ñтого, измените значение `archived` через PUT /api/segment/:id. " +msgstr "DELETE /api/segment/:id уÑтарел. ВмеÑто Ñтого, измените значение `archived` через PUT /api/segment/:id." #: src/metabase/api/user.clj msgid "Value of is_superuser must correspond to presence of Admin group ID in group_ids." @@ -12473,11 +12484,11 @@ msgstr "ПропуÑтить инÑтрукцию" msgid "Archive this?" msgstr "Ðрхивировать Ñто?" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "Узнайте о ваших данных" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "ИÑпользовать DNS SRV Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ" @@ -12487,7 +12498,7 @@ msgid "Using this option requires that provided host is a FQDN. If connecting t "leave this disabled." msgstr "ИÑпользование Ñтой опции требует предоÑтавить FQDN хоÑÑ‚. При подключении к Atlas cluster, вам потребуетÑÑ Ñ€Ð°Ð·Ñ€ÐµÑˆÐ¸Ñ‚ÑŒ Ñту опцию. ЕÑли вы не знаете что Ñто значит - оÑтавьте отключенным." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "ÐвтоматичеÑки запуÑкать запроÑÑ‹ при проÑтой фильтрации и Ñуммировании" @@ -12495,7 +12506,7 @@ msgstr "ÐвтоматичеÑки запуÑкать запроÑÑ‹ при пр msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Когда Ñто включено, Metabase будет автоматичеÑки запуÑкать запроÑÑ‹, когда пользователи выполнÑÑŽÑ‚ проÑтые иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ кнопок Summarize и Filter при проÑмотре таблицы или диаграммы. Ð’Ñ‹ можете отключить Ñто, еÑли Ð·Ð°Ð¿Ñ€Ð¾Ñ Ðº Ñтой базе данных медленный. Ðтот параметр не влиÑет на детализацию или запроÑÑ‹ SQL." -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "Узнать об Ñтой базе данных" @@ -12503,25 +12514,25 @@ msgstr "Узнать об Ñтой базе данных" msgid "Archive this dashboard?" msgstr "Ðрхивировать Ñтот дашборд?" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "Ð’Ñе результаты" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "Ðаша аналитика" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "Ð”Ð¾Ð±Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ñумма вÑех значений колонки.\\nнапример, Ð¾Ð±Ñ‰Ð°Ñ Ð²Ñ‹Ñ€ÑƒÑ‡ÐºÐ° по времени." -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "Добавочное количеÑтво Ñтрок.\\nнапример, количеÑтво продаж по времени." #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Фильтр" @@ -12533,27 +12544,27 @@ msgstr[1] "запиÑей" msgstr[2] "запиÑей" msgstr[3] "запиÑи" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "ПроÑмотр данных" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "ÐапиÑать SQL" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "ПроÑтой запроÑ" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "Выберите данные, проÑмотрите, отфильтруйте, Ñуммируйте и визуализируйте их." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" -msgstr "ПользовательÑкий вопроÑ" +msgstr "ПользовательÑкий запроÑ" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "ИÑпользуйте раÑширенный редактор запиÑной книжки, чтобы объединÑÑ‚ÑŒ данные, Ñоздавать пользовательÑкие Ñтолбцы, выполнÑÑ‚ÑŒ математичеÑкие операции и многое другое." @@ -12561,7 +12572,7 @@ msgstr "ИÑпользуйте раÑширенный редактор запи msgid "Basic Metrics" msgstr "Базовые метрики" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "Произвольный..." @@ -12577,7 +12588,7 @@ msgstr "Выберие предел" msgid "Show maximum" msgstr "Показать макÑимум" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "Получить пример" @@ -12606,7 +12617,7 @@ msgid "Custom column" msgstr "ÐŸÑ€Ð¾Ð¸Ð·Ð²Ð¾Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ°" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "Суммировать" @@ -12623,11 +12634,10 @@ msgid "Pick the metric you want to see" msgstr "Выберите метрику, которую хотите увидеть" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "Выберите колонки Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¸Ñ€Ð¾Ð²ÐºÐ¸" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "Выберите начальные данные" @@ -12639,7 +12649,7 @@ msgstr "Отменить выбор" msgid "Select All" msgstr "Выбрать вÑе" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "Выберите таблицу..." @@ -12661,15 +12671,15 @@ msgstr "ПроÑмотр иÑходного запроÑа" #: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:17 msgid "Native query for this question" -msgstr "ИÑходных Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð´Ð»Ñ Ñтого вопроÑа" +msgstr "ИÑходных Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð´Ð»Ñ Ñтого запроÑа" #: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:18 msgid "Convert this question to a native query" -msgstr "Преобразовать Ñтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð² нативный запроÑ" +msgstr "Преобразовать Ñтот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð² нативный запроÑ" #: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:22 msgid "SQL for this question" -msgstr "SQL Ð´Ð»Ñ Ñтого вопроÑа" +msgstr "SQL Ð´Ð»Ñ Ñтого запроÑа" #: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:23 msgid "Convert this question to SQL" @@ -12687,15 +12697,15 @@ msgstr[1] "Ñекций" msgstr[2] "Ñекций" msgstr[3] "Ñекции" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "Скрыть фильтры" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "Показать фильтры" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "Ðачать Ñ" @@ -12727,11 +12737,11 @@ msgstr "Показать {0}" msgid "Summarized" msgstr "Обобщенное" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "Скрыть редактор" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "Показать редактор" @@ -12739,7 +12749,7 @@ msgstr "Показать редактор" msgid "Pick the metric you'd like to see" msgstr "Выберите показатель, который вы хотели бы видеть" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "{0} значений" @@ -12767,7 +12777,7 @@ msgstr "Добавить метрику" msgid "Profile" msgstr "Профиль" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "Ðто обычно довольно быÑтро, но, похоже, ÑÐµÐ¹Ñ‡Ð°Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ чуть больше времени." @@ -12795,19 +12805,19 @@ msgstr "ÐеизвеÑтный Ñегмент" msgid "Unknown Filter" msgstr "ÐеизвеÑтный фильтр" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "Left outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "Right outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "Inner join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "Full outer join" @@ -12829,7 +12839,7 @@ msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ðµ выполнен" #: src/metabase/async/util.clj msgid "Warning: {0} returned `nil`" -msgstr " Ошибка: {0} вернул `nil` " +msgstr "Ошибка: {0} вернул `nil`" #: src/metabase/async/util.clj msgid "Unexpected error writing result to output channel: already closed" @@ -12859,7 +12869,7 @@ msgstr "ÐаÑтройка базы данных приложениÑ" msgid "Could not find {0} driver." msgstr "Ðе удалоÑÑŒ найти драйвер {0}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "ÐбÑтрактные драйверы не могут быть получены из конкретных родительÑких драйверов." @@ -12917,7 +12927,7 @@ msgstr "Плагин spark-deps.jar больше не требуетÑÑ Ð´Ð»Ñ msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "ИÑпользование ÐОВОГО СОЗДÐÐÐОГО загрузчика клаÑÑов как общего загрузчика клаÑÑов: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "Ðевозможно Ñкопировать файл" @@ -12935,7 +12945,7 @@ msgstr "Больше результатов еÑÑ‚ÑŒ в приложенном #: src/metabase/pulse/render/body.clj msgid "This question has been included as a file attachment" -msgstr "Ðтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» включен в качеÑтве вложениÑ" +msgstr "Ðтот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» включен в качеÑтве вложениÑ" #: src/metabase/pulse/render/body.clj msgid "We were unable to display this Pulse." @@ -13195,7 +13205,7 @@ msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "Выберите Ñтолбцы которые хотите включить" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Когда Ñто включено, Metabase будет автоматичеÑки запуÑкать запроÑÑ‹, когда пользователи выполнÑÑŽÑ‚ проÑтые иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ кнопок Итоги и Фильтр при проÑмотре таблицы или диаграммы. Ð’Ñ‹ можете отключить Ñто, еÑли запроÑÑ‹ к Ñтой базе данных выполнÑÑŽÑ‚ÑÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾. Ðтот параметр не влиÑет на детализацию или запроÑÑ‹ SQL." @@ -13233,3 +13243,439 @@ msgstr "Ошибка Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ñ‹Ñ… Ñтолбцов msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "Ðеобрабатываемое иÑключение, ожидаем проÑлойку `catch-exceptions` Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸." +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "ДиагноÑтичеÑÐºÐ°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "Выберите процеÑÑ Metabase:" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "Ð’Ñе процеÑÑÑ‹ Metabase" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "Окно было закрыто до Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Google." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "При входе в Google произошла ошибка. ПожалуйÑта, ÑвÑжитеÑÑŒ Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратором." + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "Войти Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Email" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтого параметра необходимо, чтобы указанный хоÑÑ‚ ÑвлÑлÑÑ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ доменным именем. При подключении к клаÑтеру Atlas может потребоватьÑÑ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ñту опцию. ЕÑли вы не знаете, что Ñто значит, оÑтавьте Ñто отключенным." + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "По умолчанию Metabase выполнÑет легкую чаÑовую Ñинхронизацию и интенÑивное ежедневное Ñканирование значений полей. ЕÑли у Ð²Ð°Ñ Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ð±Ð°Ð·Ð° данных, мы рекомендуем включить ее и проверить, когда и как чаÑто проиÑходит Ñканирование значений полÑ." + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "Удалить Ñти предложениÑ" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "Удалить Ñти предложениÑ?" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "Они больше не будут отображатьÑÑ Ð½Ð° главной Ñтранице ни Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ из ваших пользователей, но вы вÑегда можете перейти к X-ray щелкнув «Обзор данных» в главном меню, а затем щелкнув значок молнии на одной из ваших таблиц." + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "Скрыть Ñту Ñекцию" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "Удалить Ñту Ñекцию?" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "«Ðаши данные» больше не будут отображатьÑÑ Ð½Ð° главной Ñтранице ни Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ из ваших пользователей, но вы вÑегда можете проÑмотреть Ñвои базы данных и таблицы, нажав кнопку «Обзор данных» в главном меню." + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "ÐœÐ¾Ñ Ð½Ð¾Ð²Ð°Ñ Ñ„Ð°Ð½Ñ‚Ð°ÑтичеÑÐºÐ°Ñ ÐºÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "Отметка времени отмены" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "Дата отмены" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "Отметка времени удалениÑ" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "Ð’Ñ€ÐµÐ¼Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "Дата удалениÑ" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "Только в подробных видах" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "Ðе включать" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "Ðто поле не будет отображатьÑÑ Ð¸Ð»Ð¸ выбиратьÑÑ Ð² вопроÑах, Ñозданных Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ интерфейÑов GUI. Он вÑе еще будет доÑтупен в SQL / нативных запроÑах." + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "ÐÐ°ÐºÐ¾Ð¿Ð»ÐµÐ½Ð½Ð°Ñ Ñумма" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "Стандартное отклонение" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "должно быть длиной не менее {0} Ñимволов" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "Должно быть длиной не менее {0} Ñимволов" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "Ð˜Ð¼Ñ (обÑзательно)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "ЗапуÑтить выделенный текÑÑ‚" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "Выполнить запроÑ" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "(⌘ + enter)" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "(Ctrl + enter)" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "ЗдеÑÑŒ поÑвÑÑ‚ÑÑ Ð²Ð°ÑˆÐ¸ результаты" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ будут учтены в Ñохраненный запроÑ, еÑли не нажмете «Сохранить» и не решите заменить иÑходный запроÑ." + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "Ð”Ð»Ñ Ñтого типа Ð¿Ð¾Ð»Ñ ÐµÑ‰Ðµ нет виджетов фильтра." + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "ПоÑмотрите Ñто поле" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "Чем интереÑна Ñта метрика" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "Что нужно знать об Ñтом показателе" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "Как раÑÑчитываетÑÑ Ñтот показатель" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "Таблица оÑнована на" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "(пуÑто)" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "ЛиниÑ доÑтижениÑ" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "Ð›Ð¸Ð½Ð¸Ñ Ñ‚Ñ€ÐµÐ½Ð´Ð°" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "Показать Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ð° точках данных" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "ЗначениÑ, чтобы показать" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "Столько, Ñколько может помеÑтитьÑÑ" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "Ð’Ñе" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "Данные включают пропущенные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ð¹." + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "Мы обнаружили недопуÑтимую дату: \"{0}\"" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð´Ð»Ñ Ñтой диаграммы был выполнен в {0}, а не {1} из-за ограничений базы данных или драйвера." + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "Ðта диаграмма Ñодержит запроÑÑ‹, выполнÑемые в неÑкольких чаÑовых поÑÑах: {0}" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "Произошла ошибка во Ð²Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "Ð’Ñ‹Ñ…Ð¾Ð´Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных H2 уже ÑущеÑтвует: %s, удаление." + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "Ðе требуетÑÑ Ð¼Ð¸Ð³Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ, проÑто иÑпользуйте ÑущеÑтвующий файл H2" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "Ð¦ÐµÐ»ÐµÐ²Ð°Ñ Ð‘Ð” уже заполнена!" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ:n {0}" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "ÐаÑтройка базы данных" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "Перемещение ÑкземплÑров {0}, которых нет в Коллекции, в {1} Коллекцию {2}" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "Ðеверное предложение '{{...}}': ожидаетÑÑ Ð¸Ð¼Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "ÐŸÑ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ {{...}} 'не могут быть пуÑтыми." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "ÐŸÑ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ [[...]] должны Ñодержать Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ одно предложение {{...}}." + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "Ðеверный запроÑ: найдено '[[' или '{{' без Ñовпадений ']]' или '}}'" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "Вам нужно будет выбрать значение Ð´Ð»Ñ '' {0} '', прежде чем Ñтот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть запущен." + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "Ðе могу найти поле Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼: {0}" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "Ошибка загрузки проÑтранÑтва имен драйвера" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "Ðе удалоÑÑŒ загрузить драйвер {0}." + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "Ðевозможно выполнить запроÑ: отÑутÑтвуют обÑзательные параметры: {0}" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "Ðе знаю, как разобрать {0} {1}" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "Ðе могу понÑÑ‚ÑŒ пÑевдоним {0}, ожидаю идентификации." + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "Ðе знаю, как подготовить Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÐºÐ»Ð°ÑÑа {0}" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "Создание нового пула Ñоединений Ð´Ð»Ñ Ð±Ð°Ð·Ñ‹ данных {0} {1} ..." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "Ðеверный чаÑовой поÑÑ ''{0}''" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "Ðевозможно уÑтановить чаÑовой поÑÑ: Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð¸Ð»Ð¸ отÑутÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Ñтрока формата SQL Ð´Ð»Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° {0}." + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "Ð’Ñ‹ реализовали set-timezone-sql?" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "Ðе удалоÑÑŒ уÑтановить чаÑовой поÑÑ ''{0}''" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð±Ð°Ð·Ð¾Ð¹ данных" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "Ошибка разбора JSON" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "Следует ли отображать данные на главной Ñтранице. ÐдминиÑтраторы могут отключить Ñто, чтобы направить пользователей на лучший контент, чем необработанные данные" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "Ðужно ли отображать Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ X-ray на главной Ñтранице. Они также будут Ñкрыты, еÑли прикреплены какие-либо панели инÑтрументов. ÐдминиÑтраторы могут Ñкрыть Ñто, чтобы направить пользователей на лучший контент, чем необработанные данные" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "Определите иÑточник HTTP-запроÑов по значению Ñтого заголовка, а не по его удаленному адреÑу." + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "Ðе удалоÑÑŒ разрешить наÑтройку {0}/{1}" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð½Ð°Ñтройка: {0}/{1}" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "доÑтиг Ñвоей цели" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "опуÑтилÑÑ Ð½Ð¸Ð¶Ðµ Ñвоей цели" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "Отправка пульÑа ({0}: {1}) по Ñлектронной почте" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr " ПульÑ: {0} " + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "Отправка пульÑа ({0}: {1}) через Slack" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "Отправка Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ({0}: {1}) по Ñлектронной почте" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "Оповещение Metabase : {0} из {1} " + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "Отправка Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ({0}: {1}) через Slack" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "Оповещение: {0}" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "Ðе могу найти Ñелектор цвета JS в ''{0}''" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "FIXME: Ðто недопуÑтимые временные литералы: {0} {1}. Почему мы пытаемÑÑ Ð¾Ñ‚Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ их как таковые?" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "Ðе найдена ÑоответÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÐµÐ¹ {0} ''{1}'' в поле {2} ''{3}'' через FK {4} ''{5}''" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "Ðе знаю, как получить информацию о поле: {0}" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "Тайм-аут запроÑа поÑле {0}" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "Форматирование Ñтрок результатов Ñ ID чаÑового поÑÑа {0}" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "Ðеверный ID чаÑового поÑÑа '' {0} ''" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "Сохранение отпечатка пальца Ð´Ð»Ñ {0}" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "Отправка пиÑьма об отказе!" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "Результирующие Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ ÑоответÑтвуют ожиданиÑм. Ожидаемое: {0}" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "Тайм-аут поÑле {0}" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "Ðет временного регулÑтора Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ {0}" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "ÐедопуÑтимый блок: {0}" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "Ðе знаю, как разобрать {0}, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ {1}" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "Ð’ токене отÑутÑтвует значение Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡ÐµÐ²Ð¾Ð³Ð¾ пути {0}" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "Отправка ÑтатиÑтики иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ удалаÑÑŒ" + diff --git a/locales/sk.po b/locales/sk.po index 503bf91447da6658201fd647ba2bb5be0e3eba94..2a3a242de94f5508faa3941004779c43e9952544 100644 --- a/locales/sk.po +++ b/locales/sk.po @@ -29,19 +29,18 @@ msgid "Select a database type" msgstr "Vyberte typ databázy" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "UložiÅ¥" @@ -102,7 +101,7 @@ msgstr "Nikdy, urobÃm to ruÄne keÄ budem potrebovaÅ¥" #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "Ukladám..." @@ -139,16 +138,16 @@ msgstr "do tohto poľa:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -156,20 +155,20 @@ msgstr "do tohto poľa:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "ZruÅ¡iÅ¥" @@ -181,33 +180,33 @@ msgstr "ZruÅ¡iÅ¥" msgid "Delete" msgstr "ZmazaÅ¥" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "Databázy" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "PridaÅ¥ databázu" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "Spojenie" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "Plánovanie" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -217,18 +216,18 @@ msgstr "Plánovanie" msgid "Save changes" msgstr "UložiÅ¥ zmeny" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "Akcie" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "Synchronizujte schému databázy teraz" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -236,41 +235,41 @@ msgstr "Synchronizujte schému databázy teraz" msgid "Starting…" msgstr "ZaÄÃnam..." -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "Synchronizácia zlyhala" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "Synchronizácia bola spustená!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "Znova preskenujte hodnoty polÃ" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "Spustenie skenovania zlyhalo" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "Skenovanie bolo spustené!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "NebezpeÄná zóna" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "OdstrániÅ¥ uložené hodnoty polÃ" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "OdstrániÅ¥ túto databázu" @@ -279,18 +278,17 @@ msgid "Add database" msgstr "PridaÅ¥ databázu" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "Meno" @@ -310,23 +308,24 @@ msgstr "NaÄÃtavam ..." msgid "Bring the sample dataset back" msgstr "Vráťte vzorovú údaje späť" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "K databáze sa nepodarilo pripojiÅ¥. Skontrolujte nastavenie pripojenia." -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "ÚspeÅ¡ne vytvorené!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "ÚspeÅ¡ne uložené!" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "UpraviÅ¥" @@ -366,9 +365,9 @@ msgstr "NeúspeÅ¡ne" msgid "Success" msgstr "ÚspeÅ¡ne" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "Náhľad" @@ -388,7 +387,7 @@ msgstr "Žiaden Å¡peciálny typ" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "Iné" @@ -417,7 +416,7 @@ msgstr "Stĺpec" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "ViditeľnosÅ¥" @@ -505,35 +504,34 @@ msgstr "Nájdi tabuľku" msgid "Schemas" msgstr "Schéma" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "Metrika" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "Pridaj metriku" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "DefinÃcia" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "Vytvorte metriku a pridajte ju do rozbaľovacieho menu v náhľade v nástroji na dotazy" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -541,11 +539,11 @@ msgstr "Vytvorte metriku a pridajte ju do rozbaľovacieho menu v náhľade v ná msgid "Segments" msgstr "Segmenty" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "Pridaj segment" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "Vytvorte segmenty a pridajte ich do rozbaľovacieho menu vo filtry v nástroji na dotazy" @@ -591,23 +589,23 @@ msgstr " História" msgid "Revision History for" msgstr "História revÃzià pre" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} – Nastavenia poľa" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "Kde sa toto pole objavà v Metabase" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Filtrovanie v tomto poli" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "KeÄ sa toto pole použije vo filtri, aký typ hodnoty by ľudia mali použÃvaÅ¥, ak chcú v tomto poli filtrovaÅ¥?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "Žiaden popis tohto poľa" @@ -648,11 +646,11 @@ msgstr "Aktuálne pole nie je cudzà kÄ¾ÃºÄ alebo chýbajú metadáta cieľovej msgid "The selected field isn't a foreign key" msgstr "Vybraté pole nie je cudzà kľúÄ" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "ZobraziÅ¥ hodnoty" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "Vyberte, Äi chcete zobraziÅ¥ pôvodnú hodnotu z databázy, alebo nechaÅ¥ toto pole zobraziÅ¥ priradenú alebo vlastnú informáciu." @@ -672,12 +670,12 @@ msgstr "Tip:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "Možno budete chcieÅ¥ aktualizovaÅ¥ názov poľa, aby sa ubezpeÄil, že má stále zmysel na základe vaÅ¡ich možnostà premapovania." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "Hodnoty poľa vo vyrovnávacej pamäti" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabase môže skontrolovaÅ¥ hodnoty tohto poľa a povoliÅ¥ filtre checkboxov polÃÄok na dashboardoch a otázkach." @@ -704,82 +702,82 @@ msgstr "ÄŒistenie spustené!" msgid "Select any table to see its schema and add or edit metadata." msgstr "Vyberte ľubovoľnú tabuľku, aby sa zobrazila jej schéma a pridajte alebo upravte metadáta." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "Meno je povinné" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "Popis je povinný" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "Správa pri revÃzià je povinná" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "Agregácia je povinná" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "UpraviÅ¥ vaÅ¡e metriky" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "Vytvorte svoje metriky" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "Vykonajte zmeny v metrike a pridajte vysvetľujúcu poznámku." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "Môžete vytvoriÅ¥ uložené metriky a pridaÅ¥ do tejto tabuľky voľbu pomenovanej metriky. Medzi uložené metriky patrà typ agregácie, agregované pole a prÃpadne akýkoľvek filter, ktorý pridáte. Ako prÃklad môžete použiÅ¥ na vytvorenie nieÄoho ako oficiálny spôsob výpoÄtu „priemernej ceny“ pre tabuľku Objednávky." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "Výsledok:" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "Meno vaÅ¡ej metriky" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "Pridajte meno pre vaÅ¡u metriku " -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "NieÄo popisné, ale nie prÃliÅ¡ dlhé" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "PopÃÅ¡te svoju metriku" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "Zadajte popis svojej metriky, aby ste ostatným pomohli pochopiÅ¥, o Äo ide." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "Toto je dobré miesto na presnejÅ¡ie vymedzenie menej zrejmých metrických pravidiel" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "Dôvod zmeny" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "Pridajte poznámku a vysvetlite, aké zmeny ste vykonali a preÄo boli potrebné." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "Toto sa zobrazà v histórii revÃzià pre túto metriku, aby vÅ¡etci vedeli preÄo sa veci zmenili" @@ -795,7 +793,7 @@ msgstr "Upravte svoj segment" msgid "Create Your Segment" msgstr "Vytvorte svoj segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "Vykonajte zmeny vo svojom segmente a pridajte vysvetľujúcu poznámku." @@ -803,37 +801,37 @@ msgstr "Vykonajte zmeny vo svojom segmente a pridajte vysvetľujúcu poznámku." msgid "Select and add filters to create your new segment for the {0} table" msgstr "Vyberte a pridajte filtre a vytvorte nový segment pre tabuľku {0}" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "Pomenujte svoj segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "Pomenujte svoj segment a pomôžte ostatným ho nájsÅ¥." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "PopÃÅ¡te svoj segment" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "Zadajte popis svojho segmentu, aby ste ostatným pomohli pochopiÅ¥, o Äo ide." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "Toto je miesto na presnejÅ¡ie vymedzenie pravidiel segmentu" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "Toto sa objavà v histórii revÃzià pre tento segment, aby vÅ¡etci vedeli preÄo sa veci zmenili" #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "Nastavenia" @@ -847,33 +845,29 @@ msgstr "Znovu naskenujte túto tabuľku" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "PridaÅ¥" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "Emailová adresa má zlý tvar" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "Krstné meno" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "Priezvisko" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "Emailová adresa" @@ -910,7 +904,7 @@ msgstr "ÄŒlenovia" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "Email" @@ -919,8 +913,8 @@ msgid "A group is only as good as its members." msgstr "Skupina je taká dobrá ako jej Älenovia." #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "Admin" @@ -983,11 +977,11 @@ msgstr "OdstrániÅ¥ skupinu" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "Hotovo" @@ -996,9 +990,9 @@ msgid "Group name" msgstr "Názov skupiny" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "Skupiny" @@ -1027,10 +1021,10 @@ msgstr "ObnoviÅ¥ heslo" msgid "Deactivate" msgstr "DeactivovaÅ¥" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "Ľudia" @@ -1071,7 +1065,7 @@ msgstr "Poslali sme pozvánku na adresu {0} s pokynmi na nastavenie hesla." msgid "We've re-sent {0}'s invite" msgstr "Znovu sme poslali pozvánku použÃvateľovi {0}" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "Dobre" @@ -1103,7 +1097,7 @@ msgstr "Budú sa môcÅ¥ prihlásiÅ¥ znova a pred deaktiváciou úÄtu budú zara msgid "Reset {0}'s password?" msgstr "ObnoviÅ¥ heslo použÃvateľa {0}?" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "ObnoviÅ¥" @@ -1142,19 +1136,19 @@ msgstr "Pridajte niekoho" msgid "Last Login" msgstr "Posledné prihlásenie" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Registrovaný cez Google" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "Zaregistrované prostrednÃctvom LDAP" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "Znova aktivujte tento úÄet" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "Nikdy" @@ -1198,7 +1192,7 @@ msgid " native queries for " msgstr " natÃvne dotazy pre " #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "Oprávnenia" @@ -1255,115 +1249,115 @@ msgstr "MetaBot je robot v Metabase pripojený na Slack. Tu si môžete vybraÅ¥, msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "Skupina \"{0}\" môže maÅ¥ prÃstup k inej množine {1} ako táto skupina, Äo môže tejto skupine poskytnúť ÄalÅ¡Ã prÃstup k niektorým {2}." -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "Skupina \"{0}\" má vyÅ¡Å¡iu úroveň prÃstupu ako to, ÄÃm toto nastavenie prepÃÅ¡ete. Mali by ste obmedziÅ¥ alebo zruÅ¡iÅ¥ prÃstup skupiny „{1}“ k tejto položke." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "ObmedziÅ¥" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "OdobraÅ¥" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "prÃstup, aj keÄ â€ž{0}“ má väÄÅ¡Ã prÃstup?" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "ObmedziÅ¥ prÃstup" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "OdobraÅ¥ prÃstup" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "ZmeniÅ¥ prÃstup k tejto databáze na obmedzený?" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "ZmeniÅ¥" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "PovoliÅ¥ priame pÃsanie dopytov?" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "Týmto sa zmenà aj prÃstup tejto skupiny k údajom pre neobmedzenú databázu." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "PovoliÅ¥" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "OdobraÅ¥ prÃstup pre vÅ¡etky tabuľky?" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "Tým sa tiež zruÅ¡Ã prÃstup tejto skupiny k nespracovaným dotazom pre túto databázu." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "PridaÅ¥ neobmedzený prÃstup" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "Neobmedzený prÃstup" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "Obmedzený prÃstup" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "Žiaden prÃstup" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "PÃsaÅ¥ priamy dotaz" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Môžte pÃsaÅ¥ priame dotazy" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "OpraviÅ¥ kolekciu" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "ZobraziÅ¥ kolekciu" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "PrÃstup k údajom" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "ZobraziÅ¥ tabuľky" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "SQL dotaz" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "ZobraziÅ¥ schému" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "Dátový model" @@ -1506,8 +1500,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "Metabase {0} je k dispozÃcii. PoužÃvate {1}" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "AktualizovaÅ¥" @@ -1530,18 +1524,20 @@ msgstr "Odstránte vlastnú mapu" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "OdstrániÅ¥" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "VybraÅ¥..." @@ -1744,7 +1740,7 @@ msgstr "Neznáme nastavenie {0}" msgid "Setup" msgstr "NastaviÅ¥" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "VÅ¡eobecné" @@ -1871,7 +1867,7 @@ msgid "Username or DN" msgstr "Prihlasovacie meno" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "Heslo" @@ -2034,31 +2030,31 @@ msgstr "Zabudol som heslo" msgid "The email you use for your Metabase account" msgstr "Email ktorý použÃvate pre svoj úÄet v Metabase" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "PoslaÅ¥ email na reset hesla" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "Pozrite si svoj email s inÅ¡trukciami ako si resetovaÅ¥ heslo." -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "PrihlásiÅ¥ sa do Metabase" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "ALEBO" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "PoužÃvateľske meno alebo email" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "PrihlásiÅ¥ sa" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "Zdá sa, že som zabudol svoje heslo" @@ -2076,7 +2072,7 @@ msgid "For security reasons, password reset links expire after a little while. I msgstr "Z bezpeÄnostných dôvodov platnosÅ¥ odkazov na obnovenie hesla vyprÅ¡Ã o chvÃľu. Ak stále potrebujete obnoviÅ¥ svoje heslo, môžete {0}." #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "Nové heslo" @@ -2089,38 +2085,38 @@ msgid "Create a new password" msgstr "VytvoriÅ¥ nové heslo" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "Uistite sa že je zabezpeÄený podľa pokynov vyÅ¡Å¡ie" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "PotvrÄte nové heslo" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "Skontrolujte, Äi sa zhoduje s hodnotou, ktorú ste práve zadali" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "VaÅ¡e heslo bolo resetované." -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "Prihláste sa pomocou nového hesla." #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "Uloženie zlyhalo" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2139,22 +2135,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "Dashboardy, kolekcie a impulzy v tejto kolekcii sa tiež archivujú." #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "ArchivovaÅ¥" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "{0} bola archivovaná" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "ZobraziÅ¥ archÃv" @@ -2164,17 +2161,19 @@ msgstr "VrátiÅ¥ z archivu {0}" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "VaÅ¡e data" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "PreskúmaÅ¥ túto tabuľku" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "NauÄiÅ¥ sa nieÄo o tejto tabuľke" @@ -2269,18 +2268,18 @@ msgstr "Pripnúť" msgid "Drag something here to pin it to the top" msgstr "Potiahnite nieÄo sem a pripnite to hore" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "Kolekcie" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "PotiahnutÃm sem zruÅ¡te pripnutie" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} položka vybraná" @@ -2288,27 +2287,27 @@ msgstr[1] "{0} položky vybrané" msgstr[2] "{0} položiek vybraných" msgstr[3] "{0} položiek vybraných" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "Presunúť {0} položiek?" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "Presunúť \"{0}\"?" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "Presunúť" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "UpraviÅ¥ kolekciu" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "ArchivovaÅ¥ kolekciu" @@ -2325,18 +2324,18 @@ msgstr "Nová kolekcia" msgid "Copied!" msgstr "KopÃrovaný!" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "Na pripojenie k databáze použite tunel SSH" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." msgstr "PrÃstup k niektorým inÅ¡taláciám databázy je možný iba pripojenÃm cez SSH tunel.\n" "Táto voľba tiež poskytuje ÄalÅ¡iu úroveň zabezpeÄenia, keÄ nie je k dispozÃcii sieÅ¥ VPN. Povolenie je zvyÄajne pomalÅ¡ie ako priame pripojenie." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "Táto databáza je veľká, takže nastavte kedy má Metabase spustiÅ¥ synchronizáciu a skenovanie" @@ -2345,47 +2344,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail "If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." msgstr "Metabase predvolene vykonáva hodinovú synchronizáciu a denné skenovanie hodnôt polÃ. Ak máte rozsiahlu databázu, odporúÄame vám skontrolovaÅ¥, kedy a ako Äasto sa uskutoÄnà kontrola hodnôt poľa." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0} vygenerujte ID klienta a kÄ¾ÃºÄ klienta pre svoj projekt." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "Tu kliknite" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "Ako typ aplikácie vyberte možnosÅ¥ \"Iné“. Pomenujte ho ako chcete." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0} zÃskate autorizaÄný kód" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "s povoleniami Google Drive" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "Ak chcete použÃvaÅ¥ Metabase s týmito údajmi, musÃte povoliÅ¥ prÃstup k rozhraniu API v konzole pre vývojárov Google." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "{0} prejdite na konzolu, ak ste tak eÅ¡te neurobili." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "Ako by ste chceli odkazovaÅ¥ na túto databázu?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "ÄŽalej" @@ -2404,7 +2403,7 @@ msgstr "Presunúť túto položku" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "UpraviÅ¥ túto otázku" @@ -2417,7 +2416,7 @@ msgstr "Typ akcie" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "PozrieÅ¥ históriu revÃziÃ" @@ -2433,7 +2432,7 @@ msgstr "ArchivovaÅ¥ akciu" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "PridaÅ¥ do dashboardu" @@ -2444,7 +2443,7 @@ msgstr "Výsledok sÅ¥ahovania" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "ZdieľaÅ¥ a vložiÅ¥" @@ -2490,65 +2489,63 @@ msgstr "Postavené na schéme" msgid "A look at your" msgstr "Pozrite sa na svoje" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "NájsÅ¥ zoznam" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "HľadaÅ¥ podľa {0}" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr " alebo zadajte ID " -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "Zadajte ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "Zadajte ÄÃslo" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "Zadajte text" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "Žiadna zhoda pre {0} sa nenaÅ¡la." -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "Zahrnutie každej možnosti do filtra pravdepodobne neurobà veľa ..." -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "NieÄo sa pokazilo" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "DoÅ¡lo k chybe. Skúste obnoviÅ¥ stránku, alebo stlaÄte tlaÄidlo späť." -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "Žiadny popis" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "Nový {0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "Otázka od {0}" @@ -2569,8 +2566,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "VrátiÅ¥ na skorÅ¡iu revÃziu a {0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "História revÃziÃ" @@ -2615,7 +2612,7 @@ msgid "Questions" msgstr "Otázky" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "Impulzy" @@ -2652,7 +2649,7 @@ msgstr "Prihlásenie k odberu" msgid "You're subscribed. Thanks for using Metabase!" msgstr "Ste prihlásený k odberu. ÄŽakujeme že použÃvate Metabae!" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "Sme trochu stratenà ..." @@ -2661,14 +2658,14 @@ msgid "Temporary Password" msgstr "DoÄasné heslo" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "SkryÅ¥" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "ZobraziÅ¥" @@ -2770,7 +2767,7 @@ msgstr "Vybraný" msgid "Nothing to select" msgstr "NiÄ na výber" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "PrepáÄte, ale nemáte dostatoÄné oprávnenie na zobrazenie." @@ -2778,8 +2775,8 @@ msgstr "PrepáÄte, ale nemáte dostatoÄné oprávnenie na zobrazenie." msgid "Unknown error encountered" msgstr "Vyskytla sa neznáma chyba" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "VytvoriÅ¥" @@ -2787,7 +2784,6 @@ msgstr "VytvoriÅ¥" msgid "Create dashboard" msgstr "VytvoriÅ¥ dashboard" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "Tabuľka" @@ -2812,12 +2808,11 @@ msgstr "Skúste upraviÅ¥ filter, aby ste naÅ¡li, Äo hľadáte." msgid "View by" msgstr "ZobraziÅ¥ podľa" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "z" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "Nikomu to nehovor, ale ty si môj favorit." @@ -2825,19 +2820,19 @@ msgstr "Nikomu to nehovor, ale ty si môj favorit." msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "Po pripojenà vlastných údajov vám ukážem niekoľko automatických prieskumov. Tu je niekoľko prÃkladov s ukážkovými údajmi." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "ZaÄnite tu." -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "NaÅ¡a analytika" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "Prehliadajte vÅ¡etky položky" @@ -2849,44 +2844,45 @@ msgstr "PrepÃsaÅ¥ alebo uložiÅ¥ ako novú?" msgid "Replace original question, \"{0}\"" msgstr "PrepÃsaÅ¥ originálnu otázku, \"{0}\"" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "UložiÅ¥ ako novú otázku" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "Najskôr uložte vaÅ¡u otázku" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "Uložte otázku" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "Aký je názov vaÅ¡ej karty?" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "Popis" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "Nie je to povinné, ale pomáha to pri rozliÅ¡ovaný" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "Do ktoréj kolekcie to chcete zaradiÅ¥?" @@ -2927,11 +2923,11 @@ msgstr "Archivovaný dashboard" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "Nezabudnite urobiÅ¥ výber pre každú sériu, inak nebude filter na tejto karte fungovaÅ¥." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "Tento dashboard je prázdny." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "Pridajte otázku." @@ -2951,50 +2947,50 @@ msgstr "OpustiÅ¥ režim celej obrazovky" msgid "Enter fullscreen" msgstr "Režim celej obrazovky" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "Ukladám..." -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "PridaÅ¥ otázku" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "PridaÅ¥ otázku do tohto dashboardu" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "PridaÅ¥ filter" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "Parametre" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "PridaÅ¥ textové pole" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "Presunúť dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "UpraviÅ¥ dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "UpraviÅ¥ rozloženie dashboardu" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "Upravujete dashboard" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Vyberte pole, ktoré sa môže fitrovaÅ¥ v každej karte" @@ -3045,11 +3041,11 @@ msgstr "30 minút" msgid "60 minutes" msgstr "60 minút" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "Automatické obnovenie" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "ObnoviÅ¥ v" @@ -3061,7 +3057,7 @@ msgstr "OdstrániÅ¥ túto otázku?" msgid "Your dashboard was saved" msgstr "Váš dashboard bol uložený" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "Pozrite sa na to" @@ -3148,10 +3144,9 @@ msgstr "otázka bola odstránená z dashboardu - " msgid "received the latest data from" msgstr "boli pridané dáta z" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "Neznáme" @@ -3268,7 +3263,7 @@ msgstr "ZobraziÅ¥ vÅ¡etko" msgid "Recently Viewed" msgstr "Naposledy zobrazené" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "Nedávno ste sa nepozerali na žiadne informaÄné panely alebo otázky" @@ -3282,11 +3277,11 @@ msgid "Unarchive" msgstr "ZruÅ¡iÅ¥ archiváciu" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "Aktivity" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "Výsledok pre \"{0}\"" @@ -3348,6 +3343,9 @@ msgstr "URL adresa k obrázku použÃvateľa" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "ObyÄajný" @@ -3390,8 +3388,8 @@ msgstr "Zemepisná dĺžka" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "ÄŒÃslo" @@ -3437,93 +3435,93 @@ msgstr "Zadajte Äas" msgid "Creation date" msgstr "Zadajte dátum" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "Produkt" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "PoužÃvateľ" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "Zdroj" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "Cena" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "Pripojte Äasovú znaÄku" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "Pripojte Äas" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "Pripojte dátum" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "ZdieľaÅ¥" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "Majiteľ" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "Firma" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "Predplatné" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "Skóre" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "Nadpis" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "Komentár" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "Cena" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Hrubá marža" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "Narodeniny" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "Vyhľadávacie pole" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "Zoznam vÅ¡etkych hodnôt" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "Textové pole" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "VÅ¡ade" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "Predvolené nastavenie. Toto pole sa bude normálne zobrazovaÅ¥ v tabuľkách a grafoch." @@ -3531,7 +3529,7 @@ msgstr "Predvolené nastavenie. Toto pole sa bude normálne zobrazovaÅ¥ v tabuľ msgid "Only in Detail Views" msgstr "Iba v detaile" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "Toto pole sa zobrazà iba pri prezeranà detailu jedného záznamu. Použite pre informácie, ktoré sú zdĺhavé alebo ktoré nie sú užitoÄné v tabuľke alebo grafe." @@ -3545,7 +3543,8 @@ msgstr "Metabase toto pole nikdy nezÃska. Použite na citlivé alebo irelevantn #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3560,8 +3559,9 @@ msgid "CumulativeCount" msgstr "Kumulovaný poÄet" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "Suma" @@ -3570,7 +3570,7 @@ msgid "CumulativeSum" msgstr "Kumulovaná suma" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "JednoznaÄný" @@ -3579,25 +3579,28 @@ msgid "StandardDeviation" msgstr "Å tandardná odchýlka" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "Priemer" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "Min" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "Max" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "Bola detekovaná slovnÃkova chyba" @@ -3651,12 +3654,13 @@ msgid "What do you want to find out?" msgstr "ÄŒo chcete zistiÅ¥?" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "ÄŒisté data" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "KumulatÃvny poÄet" @@ -3700,174 +3704,174 @@ msgstr "Filtrované podľa" msgid "Sorted by " msgstr "Zoradené podľa" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "Pravdivý" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "Nepravdivý" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Vyberte pole zemepisnej dĺžky" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "Zadajte hornú zemepisnú Å¡Ãrku" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "Zadajte ľavú zemepisnú dĺžku" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "Zadajte dolnú zemepisnú Å¡Ãrku" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "Zadajte pravú zemepisnú dĺžku" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "Je" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "Nie je" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "Je prázdne" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "Nie je prázdne" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "Rovná sa" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "Nerovná sa" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "VäÄÅ¡ie ako" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "MenÅ¡ie ako" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "Medzi" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "VäÄÅ¡ie alebo rovné ako" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "MenÅ¡ie alebo rovné ako" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "Obsahuje" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "Neobsahuje" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "ZaÄÃna s" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "KonÄà s" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "Pred" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "Za" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "Vnútri" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "Iba tabuľka s riadkami v odpovedi, žiadne ÄalÅ¡ie operácie." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "PoÄet riadkov" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "Celkový poÄet riadkov v odpovedi." -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "SúÄet ..." -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "SúÄet vÅ¡etkých hodnôt v stĺpci." -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "Priemerná hodnota ..." -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "Priemerná hodnota vÅ¡etkých hodôt v stĺpci" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "PoÄet rôznych hodnôt ..." -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "PoÄet jedineÄných hodnôt v stĺpci medzi vÅ¡etkými riadkami v odpovedi." -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "KumulatÃvna suma ..." @@ -3875,7 +3879,7 @@ msgstr "KumulatÃvna suma ..." msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "AditÃvny súÄet vÅ¡etkých hodnôt v stĺpci." -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "KumulatÃvny poÄet riadkov" @@ -3883,27 +3887,27 @@ msgstr "KumulatÃvny poÄet riadkov" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "AditÃvny poÄet riadkov." -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "Å tandardná odchýlka ..." -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "ÄŒÃslo, ktoré vyjadruje, do akej miery sa hodnoty stĺpca lÃÅ¡ia medzi vÅ¡etkými riadkami v odpovedi." -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "Minimálna hodnota ..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Minimálna hodnota stĺpca" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "Maximálna hodnota ..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "Maximálna hodnota stĺpca" @@ -4077,68 +4081,70 @@ msgstr "Ostatné kategórie" msgid "Category, Type, Model, Rating, etc." msgstr "Kategória, Typ, Model, Hodnotenie, atÄ." -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "Nastavenia úÄtu" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "OpustiÅ¥ admin" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "Logy" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Pomoc" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "O Metabase" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "OdhlásiÅ¥ sa" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "ÄŽakujeme za použitie" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "Ste vo verzii" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "Postavený na" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "je ochranná známka spoloÄnosti" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "a je postavený v San Franciscu v Kalifornii" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Metabase admin" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "Pridajte otázku" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "Nový dashboard" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "Nový impulz" @@ -4151,7 +4157,6 @@ msgstr "Referencia" msgid "Which metric?" msgstr "Vyberte metriku" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "Definovanie spoloÄných metrÃk pre váš tÃm uľahÄuje vytváranie otázok" @@ -4169,7 +4174,7 @@ msgid "Custom" msgstr "Voliteľný" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "Nová otázka" @@ -4177,13 +4182,13 @@ msgstr "Nová otázka" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "Pomocou jednoduchého nástroja na tvorbu otázok môžete zobraziÅ¥ trendy, zoznamy vecà alebo vytvoriÅ¥ svoje vlastné metriky." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "NatÃvny dotaz" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "Pre zložitejÅ¡ie otázky môžete napÃsaÅ¥ svoj vlastný SQL alebo natÃvny dotaz." @@ -4293,7 +4298,7 @@ msgstr "Zadajte hodnotu..." msgid "Enter a default value..." msgstr "Zadajte prednastavenú hodnotu..." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "Nastala chyba" @@ -4543,7 +4548,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "OdporúÄame vám udržiavaÅ¥ malé impulzy, aby boli rýchle a užitoÄné pre celý tÃm." #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "Vyberte svoje údaje" @@ -4559,47 +4564,47 @@ msgstr "Emaily" msgid "Slack messages" msgstr "Spravy pre Slack" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "OdoslaÅ¥" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} bude odoslaný na" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "Správy" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "Teraz odoÅ¡lite email" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "Teraz odoÅ¡lite {0}" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "Odosielanie ..." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "Odoslanie zlyhalo" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "Neodoslali sme pretože impulz nemá žiadne výsledky." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "Impulz bol odoslaný" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} musà byÅ¥ nastavený správcom." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4686,7 +4691,7 @@ msgstr "PoÄet riadkov podľa Äasu" msgid "Break out by {0}" msgstr "Vypnite o {0}" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "Sumarizujte tento segment" @@ -4740,15 +4745,15 @@ msgstr "Vzostupne" msgid "Descending" msgstr "Zostupne" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "v priebehu Äasu" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "Priemer" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "OdliÅ¡né" @@ -4946,6 +4951,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} Upozornenia na základe cieľa zatiaľ nie sú podporované pre grafy s viac ako jedným riadkom, takže toto upozornenie sa odoÅ¡le vždy, keÄ má graf {1}." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "výsledok" @@ -4961,47 +4967,47 @@ msgstr "Tip" msgid "usually" msgstr "zvyÄajne" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "Vyberte segment alebo tabuľku" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "Vyberte databázu" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "Vyberte..." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "Vyberte tabuľku" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "NenaÅ¡la sa žiadna tabuľka v tejto databáze." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "Chýba otázka?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "Viac informácià o vnorených dotazoch" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "Polia" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "Žiaden segment sa nenaÅ¡iel." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "NájsÅ¥ segment" @@ -5051,7 +5057,7 @@ msgstr "Pridajte skupinu" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5059,9 +5065,9 @@ msgstr "Pridajte skupinu" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5084,7 +5090,7 @@ msgstr "ZoskupiÅ¥ podľa" msgid "None" msgstr "Žiadne" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "Táto otázka je napÃsaná v {0}." @@ -5096,11 +5102,11 @@ msgstr "SkryÅ¥ editor" msgid "Hide Query" msgstr "SkryÅ¥ dotaz" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "OtvoriÅ¥ editor" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "ZobraziÅ¥ dotaz" @@ -5145,7 +5151,7 @@ msgstr "ZRUÅ IŤ" msgid "Move question" msgstr "Presuň otázku" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "Ktorá kolekcia to obsahuje?" @@ -5199,7 +5205,7 @@ msgstr "{0} pre túto otázku" msgid "Convert this question to {0}" msgstr "PremeniÅ¥ túto otázku na {0}" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "Obnovenie tejto otázky bude trvaÅ¥ približne {0}" @@ -5235,7 +5241,7 @@ msgstr "Ak mi dáte nejaké dáta, ukážem vám nieÄo super. Spustite dotaz!" msgid "How do I use this thing?" msgstr "Ako môžem túto vec použiÅ¥?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "ZÃskajte výsledok" @@ -5303,7 +5309,7 @@ msgstr "dostaÅ¥ upozornenie" msgid "Back to last run" msgstr "Späť na posledné spustenie" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "Vizualizácia" @@ -5315,7 +5321,7 @@ msgstr "Žiaden popis" msgid "Use for current question" msgstr "PoužiÅ¥ pre aktuálnu otázku" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "Potenciálne užitoÄné otázky" @@ -5339,7 +5345,7 @@ msgstr "VÅ¡etky odliÅ¡né hodnoty z {0}" msgid "Number of {0} grouped by {1}" msgstr "PoÄet {0} zoskupených podľa {1}" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5373,12 +5379,12 @@ msgid "Filter by {0}" msgstr "Filtrované podľa {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "PoÄet {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "ZobraziÅ¥ vÅ¡etko {0}" @@ -5398,32 +5404,33 @@ msgstr "ZobraziÅ¥ nespracované údaje {0}" msgid "More" msgstr "Viac" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "Nesprávny výraz" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "neznáma chyyba" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Vzorec poľa" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "Myslite na to, akoby to bolo ako pÃsanie vzorca v tabuľkovom programe: môžete použiÅ¥ ÄÃsla, polia v tejto tabuľke, matematické symboly ako + a niektoré funkcie. Môžete teda zadaÅ¥ nieÄo ako medzisúÄet - náklady." -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "DozvedieÅ¥ sa viac" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "Pridajte názov" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "NieÄo opisné a praktické" @@ -5503,7 +5510,7 @@ msgid "Enter desired number" msgstr "Zadajte požadované ÄÃslo" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "Prázdny" @@ -5571,41 +5578,41 @@ msgstr "Ak chcete použiÅ¥ viacero voliteľných položiek, môžete zahrnúť a msgid "Read the full documentation" msgstr "PreÄÃtajte si celú dokumentáciu" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "Popis filtra" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "Typ premennej" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "Text" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "Dátum" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Pole filtra" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "Pole na priradenie do" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "Typ filtra" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "Povinné?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "Predvolená hodnota widget filtra" @@ -5617,7 +5624,7 @@ msgstr "ArchivovaÅ¥ túto otázku?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "Táto otázka bude odstránená zo vÅ¡etkých dashboardov alebo impulzov, ktoré ju použÃvajú." -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "Otázka" @@ -5629,8 +5636,8 @@ msgstr "Vyberte otázku, ktorú chcete pridaÅ¥" msgid "You are editing this page" msgstr "Upravujete túto stránku" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "ZobraziÅ¥ {0}" @@ -5638,15 +5645,15 @@ msgstr "ZobraziÅ¥ {0}" msgid "A subset of" msgstr "Podmnožina" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "Vyberte typ poľa" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5657,8 +5664,8 @@ msgid "by" msgstr "podľa" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "Typ poľa" @@ -5683,12 +5690,12 @@ msgid "Nothing important yet" msgstr "Zatiaľ niÄ dôležité" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "Zatiaľ niÄ zaujÃmavé" @@ -5697,12 +5704,12 @@ msgid "Things to be aware of about this {0}" msgstr "Veci, ktorých by sme si mali byÅ¥ vedomà {0}" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "Zatiaľ niÄ nevieme" @@ -5748,7 +5755,7 @@ msgstr "ÄŒo by si mali by mali použÃvatelia vedieÅ¥ {0}?" msgid "Which 2-3 fields do you usually group this metric by?" msgstr "Do ktorých 2-3 polà obvykle túto metriku zoskupujete?" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "Toto je ideálne miesto, kde zaÄaÅ¥, ak ste v údajoch nováÄikom, alebo ak sa chcete len pozrieÅ¥ na to, Äo sa deje." @@ -5764,11 +5771,11 @@ msgstr "Dôvod zmien" msgid "Leave a note to explain what changes you made and why they were required" msgstr "Zanechajte poznámku a vysvetlite, aké zmeny ste vykonali a preÄo boli potrebné" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "PreÄo je táto databáza zaujÃmavá" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "Informácie o tejto databáze" @@ -5778,44 +5785,44 @@ msgid "Databases and tables" msgstr "Databázy a tabuľky" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "Podrobnosti" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "Tabuľky v {0}" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "SkutoÄný názov v databáze" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "PreÄo je toto pole zaujÃmavé?" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "Veci, o ktorých treba vedieÅ¥ o tomto poli" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "Dátový typ" @@ -5829,12 +5836,12 @@ msgstr "Polia v tejto tabuľke sa zobrazia po pridanÃ" msgid "Fields in {0}" msgstr "Polia {0}" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "Názov poľa" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "PrehľadávaÅ¥ pole" @@ -5865,11 +5872,11 @@ msgstr "PoÄet {0}" msgid "See raw data for {0}" msgstr "ZobraziÅ¥ nespracované údaje pre {0}" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "PreÄo je táto tabuľka zaujÃmavá" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "ÄŒo je potrebné vedieÅ¥ o tejto tabuľke" @@ -5883,7 +5890,7 @@ msgstr "Otázky týkajúce sa tejto tabuľky sa zobrazia pri pridanÃ" #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "Otázky týkajúce sa {0}" @@ -5898,7 +5905,7 @@ msgstr "Vytvorené {0} použÃvateľom {1}" msgid "Fields in this table" msgstr "Polia v tejto tabuľke" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "Otázky týkajúce sa tejto tabuľky" @@ -5934,7 +5941,7 @@ msgstr "ZobraziÅ¥ vÅ¡etky metriky" msgid "Segments and tables" msgstr "Segmenty a tabuľky" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "Tabuľky" @@ -6051,8 +6058,8 @@ msgstr "Existuje niekto, koho by vaÅ¡i použÃvatelia mohli kontaktovaÅ¥ kvôli msgid "Who should users contact for help if they're confused about this data?" msgstr "Koho by mali použÃvatelia kontaktovaÅ¥ ohľadom pomoci, ak majú otázky ohľadom týchto údajov?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "Zadajte revÃznu správu" @@ -6068,15 +6075,15 @@ msgstr "ÄŒo by ste mali vedieÅ¥ o tejto metrike" msgid "How this Metric is calculated" msgstr "Ako sa vypoÄÃta táto metrika" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "Zatiaľ niÄ o tom, ako sa poÄÃta" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "Ostatné polia, do ktorých môžete túto metriku zoskupiÅ¥" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "Polia, do ktorých môžete túto metriku zoskupiÅ¥" @@ -6101,20 +6108,20 @@ msgid "There are no revisions for this metric" msgstr "Pre túto metriku neexistujú žiadne revÃzie" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "História revÃzià pre {0}" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "PreskúmaÅ¥ túto metriku" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "PreÄo je tento segment zaujÃmavý?" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "ÄŒo by ste mali vedieÅ¥ o tomto segmente" @@ -6138,60 +6145,60 @@ msgstr "NauÄte sa, ako vytváraÅ¥ segmenty" msgid "Questions about this segment will appear here as they're added" msgstr "Po pridanà sa tu zobrazia otázky týkajúce sa tohto segmentu" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "Pre tento segment neexistujú žiadne revÃzie" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "Polia v tomto segmente" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "Otázky týkajúce sa tohto segmentu" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "PreskúmaÅ¥ tento segment" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "PrihlásiÅ¥ sa" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "Vyhľadávanie" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "Dashboard" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "Nová otázka" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "Vyberte typ databázy, ktorú použÃvate" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "Pridajte svoje údaje" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "Svoje údaje pridám neskôr" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "Pripája sa k {0}" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "Budete potrebovaÅ¥ nejaké informácie o svojej databáze, naprÃklad použÃvateľské meno a heslo. Ak to eÅ¡te nemáte, Metabase prichádza aj so vzorovým súborom údajov, s ktorým môžete zaÄaÅ¥." -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "Moje údaje pridám neskôr" @@ -6199,43 +6206,43 @@ msgstr "Moje údaje pridám neskôr" msgid "Control automatic scans" msgstr "Ovládajte automatické skenovanie" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "Predvoľby použitia údajov" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "ÄŽakujeme, že ste nám pomohli vylepÅ¡iÅ¥" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "Nebudeme zhromažÄovaÅ¥ žiadne udalosti použitia" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Aby ste nám pomohli vylepÅ¡iÅ¥ Metabase, chceme zhromažÄovaÅ¥ urÄité údaje o použÃvanà prostrednÃctvom služby Google Analytics." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "Tu je úplný zoznam vÅ¡etkého, Äo sledujeme a preÄo." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "PovoliÅ¥ metabáze anonymne zbieraÅ¥ udalosti použitia" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase {0} zhromažÄuje Äokoľvek o vaÅ¡ich údajoch alebo výsledkoch otázok." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "nikdy" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "Celá zbierka je úplne anonymná." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "Zbieranie môžete kedykoľvek vypnúť v nastaveniach správcu." @@ -6283,24 +6290,24 @@ msgstr "Ahoj, {0}. rád Å¥a spoznávam!" msgid "Create a password" msgstr "VytvoriÅ¥ heslo" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "Ticho..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "PotvrÄte heslo" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "Ticho ... takže eÅ¡te raz, takže to máme v poriadku" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "Názov vaÅ¡ej spoloÄnosti alebo tÃmu" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "Oddelenie" @@ -6478,11 +6485,11 @@ msgstr "Prihláste sa pomocou e-mailovej adresy Google" msgid "User Details" msgstr "Detaily použÃvateľa" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "ObnoviÅ¥ predvolené hodnoty" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "neznáma mapa" @@ -6490,7 +6497,7 @@ msgstr "neznáma mapa" msgid "Grid map requires binned longitude/latitude." msgstr "Mapa mriežky vyžaduje priloženú zemepisnú dĺžk / Å¡Ãrku." -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "viac" @@ -6527,31 +6534,31 @@ msgstr "ZruÅ¡iÅ¥" msgid "Rows {0}-{1} of {2}" msgstr "Riadky {0} - {1} z {2}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "Údaje boli skrátené na {0} riadky." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "Nepodarilo sa nájsÅ¥ vizualizáciu" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "Tento graf sa nedal zobraziÅ¥ s týmito údajmi." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "Žiadne výsledky!" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "Stále Äakám..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "ZvyÄajne to trvá v priemere {0}." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(Je to trochu dlhá doba pre dashboard)" @@ -6567,11 +6574,11 @@ msgstr "Vyberte pole" msgid "error" msgstr "chyba" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "KliknutÃm a potiahnutÃm zmenÃte ich poradie" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "Pridajte polia zo zoznamu nižšie" @@ -6711,19 +6718,19 @@ msgstr "Pridajte pravidlo" msgid "Update rule" msgstr "AktualizovaÅ¥ pravidlo" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "Vizualizácia je nulová" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "Vizualizácia musà definovaÅ¥ statickú premennú 'identifikátor':" -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "Vizualizácia s týmto identifikátorom je už zaregistrovaná:" -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "Žiadna vizualizácia pre {0}" @@ -6731,11 +6738,11 @@ msgstr "Žiadna vizualizácia pre {0}" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "\"{0}\" je neagregované pole: ak má v bode na osi x viac ako jednu hodnotu, hodnoty sa spoÄÃtajú." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "Tento typ grafu vyžaduje najmenej 2 stĺpce." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "Tento typ grafu nepodporuje viac ako {0} sérià údajov." @@ -6780,7 +6787,7 @@ msgstr "Nakonfigurujte tento graf v nastaveniach grafu" msgid "Edit Settings" msgstr "UpraviÅ¥ nastavenia" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "Chýba hodnota pre os X" @@ -6807,7 +6814,7 @@ msgid "Bubble size" msgstr "VeľkosÅ¥ bubliny" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "riadok" @@ -6864,104 +6871,104 @@ msgstr "NiÄ" msgid "Linear Interpolated" msgstr "Lineárne interpolované" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "Mierka osi X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "ÄŒasová séria" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "Lineárne" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "Sila" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "Log" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "Stĺpcový diagram" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "Rádový" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "Mierka osi Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "ZobraziÅ¥ Äiaru a znaÄky na osi x" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Kompaktné" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "OtoÄiÅ¥ o 45 °" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "OtoÄiÅ¥ o 90 °" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "ZobraziÅ¥ Äiaru a znaÄky na osi y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Automatický rozsah osi y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "V prÃpade potreby použite rozdelenú os y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "ZobraziÅ¥ popis na osi x" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "Popis na osi X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "ZobraziÅ¥ popis na osi Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Popis na osi Y" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "Å tandardná odchýlka" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "OblasÅ¥" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "PloÄný graf" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "Stĺpec" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "stĺpcový graf" @@ -6987,19 +6994,19 @@ msgstr "Typ zúženia" msgid "Bar chart" msgstr "Stĺpcový graf" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "Äiarový graf" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "V nastaveniach grafu vyberte stĺpce zemepisnej výšky a Å¡Ãrky." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "Vyberte mapu regiónu." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "V nastaveniach grafu vyberte stĺpce regiónov a metrÃk." @@ -7007,73 +7014,73 @@ msgstr "V nastaveniach grafu vyberte stĺpce regiónov a metrÃk." msgid "Map" msgstr "Mapa" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "Typ mapy" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "Mapa regiónu" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "Pripnúť mapu" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "Typ Å¡pendlÃka" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "Dlaždice" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "ZnaÄky" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "Pole zemepisnej Å¡Ãrky" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "Pole zemepisnej dĺžky" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "Pole metriky" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "Pole regiónu" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "Uhol" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "RozmazaÅ¥" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "Min. krytie" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "Max. priblÞenie" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "NenaÅ¡li sa žiadne vzÅ¥ahy." -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "prostrednÃctvom {0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "Toto {0} je spojené s:" @@ -7085,7 +7092,7 @@ msgstr "Detail objektu" msgid "object" msgstr "objekt" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "Celkom" @@ -7134,7 +7141,7 @@ msgid "Progress" msgstr "Pokrok" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "Farba" @@ -7225,7 +7232,7 @@ msgstr "Vpravo" msgid "Show background" msgstr "ZobraziÅ¥ pozadie" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "{0} kôš" @@ -7233,7 +7240,7 @@ msgstr[1] "{0} koÅ¡e" msgstr[2] "{0} koÅ¡ov" msgstr[3] "{0} koÅ¡ov" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "Automaticky ukladaÅ¥ do koÅ¡a" @@ -7667,7 +7674,7 @@ msgstr "kumulatÃvna suma" msgid "{0} and {1}" msgstr "{0} a {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} z {1}" @@ -8990,31 +8997,31 @@ msgstr "ZobraziÅ¥ vÅ¡etky povolenia v kolekcii" msgid "Also change sub-collections" msgstr "ZmeniÅ¥ aj podskupiny" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Môže upravovaÅ¥ túto kolekciu a jej obsah" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Môže zobraziÅ¥ položky v tejto kolekcii" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "PrÃstup k inkasu" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "Táto skupina má povolenie na zobrazenie aspoň jednej podskupiny tejto kolekcii." -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "Táto skupina má povolenie na úpravu aspoň jednej podskupiny tejto kolekcie." -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "ZobraziÅ¥ podskupiny" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "Pamätáš si ma" @@ -9034,7 +9041,7 @@ msgstr "Pridajte túto otázku na dashboard" msgid "Create a new dashboard" msgstr "Vytvorte nový dashboard" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "Stránku, ktorú ste požadovali, sa nepodarilo nájsÅ¥." @@ -9042,11 +9049,11 @@ msgstr "Stránku, ktorú ste požadovali, sa nepodarilo nájsÅ¥." msgid "Select a {0}" msgstr "Vyberte {0}" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "Uložte informaÄné panely, otázky a kolekcie do prieÄinka „{0}“" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "Pristupujte k dashboardom, otázkam a kolekciám v stĺpci „{0}“" @@ -9066,12 +9073,12 @@ msgstr "PrÃbuzný" msgid "More X-rays" msgstr "PreskúmaÅ¥ viac" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "Žiadne výsledky" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabase nenaÅ¡la žiadne výsledky pre vaÅ¡e hľadanie." @@ -9281,10 +9288,10 @@ msgstr "N/A" msgid "Windows domain" msgstr "Doména Windows" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "Popisy" @@ -9319,6 +9326,8 @@ msgstr "Zdieľanie" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9333,33 +9342,33 @@ msgstr "Zdieľanie" msgid "Display" msgstr "ZobraziÅ¥" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "Osi" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "Formátovanie" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "Preskúmajte tieto vasÅ¡e dáta." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "Pri zobrazovanà tohto grafu sa vyskytol problém." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "Ľutujeme, nemáte povolenie na zobrazenie tejto karty." @@ -9379,20 +9388,20 @@ msgstr "PrehľadávaÅ¥" msgid "Compare to the rest" msgstr "V porovnanà so zvyÅ¡kom" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "Použite Äasové pásmo Java Virtual Machine (JVM)" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "OdporúÄame vám to nechaÅ¥ vypnuté, pokiaľ nevykonávate manuálne zapÃnanie Äasových pásiem mnoho alebo väÄÅ¡ina vaÅ¡ich otázok s týmito údajmi." -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "Tu nájdete najdôležitejÅ¡ie dashboardy vášho tÃmu" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "Pripnite dashboardy v {0}, aby ste ich mohli zobraziÅ¥ v tomto priestore pre vÅ¡etkých" @@ -9416,12 +9425,12 @@ msgstr "Tip: " msgid "Select a currency type" msgstr "Vyberte typ meny" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "Typ poľa" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "RieÅ¡enie problémov" @@ -9469,11 +9478,11 @@ msgstr "Trvanie (ms)" msgid "Currency" msgstr "Mena" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "Vyberte použÃvateľa alebo kanál ..." -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "Žiadne nastavenia formátovania" @@ -9646,15 +9655,15 @@ msgstr "Mierka" msgid "Gauge ranges" msgstr "Rozsah mierky" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "Pole na zobrazenie" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "posledný {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} bolo {1} {2}" @@ -9782,7 +9791,7 @@ msgstr "Å¡tvrÅ¥rok" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "Pridanie {0} kariet na dashboard {1}: n {2}" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "Chyba pri analýze {0}: n {1}" @@ -10076,7 +10085,7 @@ msgstr "ÄŒistenie histórie úloh bolo úspeÅ¡né, riadky boli {0} odstránené" msgid "not" msgstr "nie" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "Viac informácià nájdete na" @@ -11077,6 +11086,7 @@ msgstr "Ako je táto metrika rozdelená medzi rôzne ÄÃsla" msgid "Sessions by page where the session began" msgstr "Relácie podľa stránky, kde sa relácia zaÄala" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11425,15 +11435,15 @@ msgstr "Môže znova spustiÅ¥?" msgid "Triggers for {0}" msgstr "SpúšťaÄe pre {0}" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "Úlohy" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "Džob" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "Duplikované {0}" @@ -11445,7 +11455,7 @@ msgstr "Duplikujte túto položku" msgid "Archive this item" msgstr "ArchivovaÅ¥ túto položku" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "Duplikátny dashboard" @@ -11472,6 +11482,7 @@ msgid "Next {0}" msgstr "ÄŽalÅ¡Ãch {0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "Predchádzajúce {0}" @@ -11586,8 +11597,8 @@ msgstr "[Q]Q" msgid "This" msgstr "Toto" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "Neplatný" @@ -11595,11 +11606,11 @@ msgstr "Neplatný" msgid "Add a time" msgstr "PridaÅ¥ Äas" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "NiÄ pre porovnanie z predchádzajúcich {0}." -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "do {0}" @@ -11655,39 +11666,39 @@ msgstr "Chyba pri pridávanà starÅ¡ej direktÃvy SQL do súboru BigQuery, otáz msgid "Failed to notify {0} Database {1} updated" msgstr "Aktualizácia {0} databázy {1} zlyhala" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "NaÄÃtava sa ovládaÄ {0} {1}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "NaÄÃtaÅ¥ ovládaÄ {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "OvládaÄ nie je zaregistrovaný po naÄÃtanÃ: {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "Chyba: pokus o zmenu vlastnosti {0} `:abstract?` z {1} na {2}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "Registrovaný abstraktný ovládaÄ {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "Registrovaný ovládaÄ {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(rodiÄia: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "Inicializácia ovládaÄa {0} ..." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "Dôvod:" @@ -11839,11 +11850,11 @@ msgstr "{0} závislosÅ¥ {1} funkÄná? {2}" msgid "Plugins with unsatisfied deps: {0}" msgstr "Doplnky s nefunkÄnými zavislosÅ¥ami: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "ExtrahovaÅ¥ súbor {0} -> {1}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "Zdroj neexistuje." @@ -12168,7 +12179,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreateDate]] do Å¡tvrÅ¥roka v roku" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "UpraviÅ¥ použÃvateľa" @@ -12176,12 +12187,12 @@ msgstr "UpraviÅ¥ použÃvateľa" msgid "New user" msgstr "Nový použÃvateľ" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "ObnoviÅ¥ heslo" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "DeaktivovaÅ¥ použÃvateľa" @@ -12458,11 +12469,11 @@ msgstr "Pokyny k vynechaniu pri Å¡tarte" msgid "Archive this?" msgstr "ArchivovaÅ¥ to?" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "ZÃskajte ÄalÅ¡ie informácie o dátach" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "Pri pripájanà použite DNS SRV" @@ -12472,7 +12483,7 @@ msgid "Using this option requires that provided host is a FQDN. If connecting t "leave this disabled." msgstr "Použitie tejto voľby vyžaduje, aby poskytnutý host bol úplný názov domény. Ak sa pripájate k Atlas cluster bude pravdepodobne potrebné túto možnosÅ¥ povoliÅ¥. Ak neviete, Äo to znamená,nechajte túto možnosÅ¥ vypnutú." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "Automaticky spúšťaÅ¥ dotazy pri jednoduchom filtrovanà a sumarizácii" @@ -12480,7 +12491,7 @@ msgstr "Automaticky spúšťaÅ¥ dotazy pri jednoduchom filtrovanà a sumarizáci msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "Ak je táto možnosÅ¥ zapnutá, Metabase automaticky spúšťa dotazy, keÄ použÃvatelia robia jednoduché prieskumy pomocou tlaÄidiel SumarizovaÅ¥ a FiltrovaÅ¥ pri prezeranà tabuľky alebo grafu. Túto možnosÅ¥ môžete vypnúť, ak je vyhľadávanie v tejto databáze pomalé. Toto nastavenie nemá vplyv na dotazy SQL." -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "ÄŽalÅ¡ie informácie o tejto databáze" @@ -12488,25 +12499,25 @@ msgstr "ÄŽalÅ¡ie informácie o tejto databáze" msgid "Archive this dashboard?" msgstr "ArchivovaÅ¥ tento informaÄný panel?" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "VÅ¡etky výsledky" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "NaÅ¡a analýza" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "PrÃdavný súÄet vÅ¡etkých hodnôt stĺpca. \\ne.x. celkový prÃjem v Äase." -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "PrÃdavný poÄet riadkov. \\ne.x. celkový poÄet predajov v Äase." #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Filter" @@ -12518,27 +12529,27 @@ msgstr[1] "záznamy" msgstr[2] "záznamov" msgstr[3] "záznamov" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "PrehliadaÅ¥ údaje" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "NapÃÅ¡te SQL" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "Jednoduchá otázka" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "Vyberte niektoré údaje, zobrazte ich a ľahko ich filtrujte, sumarizujte a vizualizujte." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "Vlastná otázka" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "Použite pokroÄilý editor poznámok na pripojenie údajov, vytváranie vlastných stĺpcov, výpoÄty a ÄalÅ¡ie." @@ -12546,7 +12557,7 @@ msgstr "Použite pokroÄilý editor poznámok na pripojenie údajov, vytváranie msgid "Basic Metrics" msgstr "Základné metriky" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "Vlastné ..." @@ -12562,7 +12573,7 @@ msgstr "Vyberte limit" msgid "Show maximum" msgstr "ZobraziÅ¥ maximum" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "ZÃskajte ukážku" @@ -12591,7 +12602,7 @@ msgid "Custom column" msgstr "Vlastný stĺpec" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "SumarizovaÅ¥" @@ -12608,11 +12619,10 @@ msgid "Pick the metric you want to see" msgstr "Vyberte metriku, ktorú chcete zobraziÅ¥" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "Vyberte stĺpec na zoskupenie podľa" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "Vyberte poÄiatoÄné údaje" @@ -12624,7 +12634,7 @@ msgstr "NevybraÅ¥ niÄ" msgid "Select All" msgstr "VybraÅ¥ vÅ¡etko" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "Vyberte tabuľku" @@ -12672,15 +12682,15 @@ msgstr[1] "{0} prelomenia" msgstr[2] "{0} prelomenÃ" msgstr[3] "{0} prelomenÃ" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "SkryÅ¥ filtre" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "ZobraziÅ¥ filtre" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "ZaÄal od" @@ -12712,11 +12722,11 @@ msgstr "Zobrazuje sa {0}" msgid "Summarized" msgstr "Súhrne" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "SkryÅ¥ editor" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "ZobraziÅ¥ editor" @@ -12724,7 +12734,7 @@ msgstr "ZobraziÅ¥ editor" msgid "Pick the metric you'd like to see" msgstr "Vyberte metriku, ktorú chcete vidieÅ¥" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "{0} možnostÃ" @@ -12752,7 +12762,7 @@ msgstr "Pridajte metriku" msgid "Profile" msgstr "Profil" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "To je zvyÄajne dosÅ¥ rýchle, ale zdá sa, že to chvÃľu trvá." @@ -12780,19 +12790,19 @@ msgstr "Neznámy segment" msgid "Unknown Filter" msgstr "Neznámy filter" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "Left outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "Right outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "Inner join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "Full outer join" @@ -12844,7 +12854,7 @@ msgstr "Nastavenie databázy aplikáciÃ" msgid "Could not find {0} driver." msgstr "Nepodarilo sa nájsÅ¥ ovládaÄ {0}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "Abstraktné ovládaÄe nemôžu pochádzaÅ¥ z konkrétnych rodiÄovských ovládaÄov." @@ -12902,7 +12912,7 @@ msgstr "Metabase 0.32.0+ už nepotrebuje spark-deps.jar. Môžete ho odstrániÅ¥ msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "Použitie novo vytvoreného classloaderu ako zdieľaného kontextu, classloader: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "Nepodarilo sa skopÃrovaÅ¥ súbor" @@ -13180,7 +13190,7 @@ msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "Vyberte stĺpce, ktoré chcete zahrnúť" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "KeÄ je toto zapnuté, Metabase automaticky spúšťa dotazy, keÄ použÃvatelia robia jednoduché prieskumy pomocou tlaÄidiel SumarizovaÅ¥ a FiltrovaÅ¥ pri prezeranà tabuľky alebo grafu. Túto možnosÅ¥ môžete vypnúť, ak je vyhľadávanie v tejto databáze pomalé. Toto nastavenie nemá vplyv na dotazy SQL." @@ -13218,3 +13228,439 @@ msgstr "Chyba pri urÄovanà oÄakávaných stĺpcov pre dopyt" msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "NeoÅ¡etÅ™ená výnimka, oÄakávaný middleware `catch-exceptions`, ktorý to zvládne." +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "" + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "" + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "" + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "" + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "" + diff --git a/locales/tr.po b/locales/tr.po index 5346541d061f50a0cfa9e92b07ba1ce437cd9f1d..8f49ca3d304ca2091e974f01e4ea44d39bd6f398 100644 --- a/locales/tr.po +++ b/locales/tr.po @@ -29,19 +29,18 @@ msgid "Select a database type" msgstr "Veritabanı türü seçin" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "Kaydet" @@ -102,7 +101,7 @@ msgstr "Asla, Ä°htiyacım olursa bunu manuel olarak yapacağım" #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "Kaydediliyor..." @@ -139,16 +138,16 @@ msgstr "Bu kutuda:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -156,20 +155,20 @@ msgstr "Bu kutuda:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "Ä°ptal" @@ -181,33 +180,33 @@ msgstr "Ä°ptal" msgid "Delete" msgstr "Sil" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "Veritabanları" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "Veritabanı ekle" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "BaÄŸlantı" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "Zamanlama" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -217,18 +216,18 @@ msgstr "Zamanlama" msgid "Save changes" msgstr "DeÄŸiÅŸiklikleri kaydet" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "Eylemler" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "Veritabanı ÅŸemasını senkronize et" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -236,41 +235,41 @@ msgstr "Veritabanı ÅŸemasını senkronize et" msgid "Starting…" msgstr "BaÅŸlıyor..." -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "Senkronizasyon yapılamadı" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "Senkronizasyon tetiklendi!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "Alan deÄŸerlerini ÅŸimdi yeniden tarayın" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "Tarama baÅŸlatılamadı" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "Tarama tetiklendi!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "Tehlikeli Bölge" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "Kaydedilen alan deÄŸerlerini iptal et" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "Bu veritabanını kaldır" @@ -279,18 +278,17 @@ msgid "Add database" msgstr "Veritabanı ekle" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "Ä°sim" @@ -310,23 +308,24 @@ msgstr "Yükleniyor" msgid "Bring the sample dataset back" msgstr "Örnek veri kümesini geri getir" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "Veritabanına baÄŸlanılamadı. Lütfen baÄŸlantı detaylarını kontrol edin." -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "BaÅŸarıyla oluÅŸturuldu!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "BaÅŸarıyla kaydedildi!" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "Düzenle" @@ -366,9 +365,9 @@ msgstr "BaÅŸarısız" msgid "Success" msgstr "BaÅŸarılı" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "Ön izleme" @@ -388,7 +387,7 @@ msgstr "Özel tip yok" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "DiÄŸer" @@ -417,7 +416,7 @@ msgstr "Sütun" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "Görünürlük" @@ -499,35 +498,34 @@ msgstr "Tablo bul" msgid "Schemas" msgstr "Åžemalar" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "Metrikler" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "Metrik Ekle" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "Açıklamalar" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "Sorgu oluÅŸturucusundaki açılır/kapanır menüye eklemek için metrikler oluÅŸturun" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -535,11 +533,11 @@ msgstr "Sorgu oluÅŸturucusundaki açılır/kapanır menüye eklemek için metrik msgid "Segments" msgstr "Segmentler" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "Segment Ekle" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "Sorgu oluÅŸturucusundaki açılır/kapanır filtreye eklemek için segmentler oluÅŸturun" @@ -585,23 +583,23 @@ msgstr "Tarihçe" msgid "Revision History for" msgstr "Revizyon GeçmiÅŸi için" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} –Alan Ayarları" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "Metatabanında bu alanın görüneceÄŸi alan" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Bu alanda filtreleme" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "Bu alan filtrede kullanıldığında, insanların filtrelemek istedikleri deÄŸeri girmek için ne kullanmaları gerekir?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "Bu alan için henüz açıklama yok" @@ -642,11 +640,11 @@ msgstr "Geçerli alan yabancı anahtar deÄŸil veya hedef tablosundaki yabancı a msgid "The selected field isn't a foreign key" msgstr "Seçilen alan yabancı anahtar deÄŸildir" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "Ekran deÄŸerleri" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "Orijinal deÄŸeri veritabanından göstermeyi seçin, veya bu alanın iliÅŸkili veya özel bilgileri gösterilmesini saÄŸlayın" @@ -666,12 +664,12 @@ msgstr "Tavsiye:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "Yaptığınız yeni seçimlerin mantıklı olduÄŸundan emin olmak için alan adını güncellemek isteyebilirsiniz." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "ÖnbelleÄŸe alınmış alan deÄŸerleri" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabase, kontrol paneli filtrelerinde ve sorgularda onay kutu filtrelerini etkinleÅŸtirmek için bu alanın deÄŸerlerini tarayabilir." @@ -698,82 +696,82 @@ msgstr "Tetik atın!" msgid "Select any table to see its schema and add or edit metadata." msgstr "Åžemasını görmek ve meta verileri eklemek veya düzenlemek için herhangi bir tablo seçin." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "Ä°sim gerekli" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "Açıklama gerekli" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "Revizyon mesajı gerekli" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "Toplama gerekli" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "MetriÄŸini düzenle" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "MetriÄŸini oluÅŸtur" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "MetriÄŸinizde deÄŸiÅŸiklikler yapın ve açıklayıcı bir not ekleyin." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "Bu tabloya adlandırılmış bir metrik seçeneÄŸi eklemek için kayıtlı metrikler oluÅŸturabilirsiniz. Kayıtlı metrikler, toplama türünü, toplanmış alanı ve isteÄŸe baÄŸlı olarak eklediÄŸiniz herhangi bir filtreyi içerir. Örnek olarak, bir SipariÅŸler tablosu için \"Ortalama Fiyat\" hesaplamasını oluÅŸturmak için bu oluÅŸturduÄŸunuz metrikleri kullanabilirsiniz." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "Sonuç:" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "MetriÄŸini adlandır" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "BaÅŸkalarına yardımcı olmak için metriÄŸinize bir isim verin." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "Açıklayıcı bir ÅŸey ama çok uzun deÄŸil" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "MetriÄŸini tanımla" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "MetriÄŸinize baÅŸkalarının ne ile ilgili olduÄŸunu anlamasına yardımcı olmak için bir açıklama verin." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "Daha az belirgin metrik kuralları hakkında daha spesifik olmak için iyi bir yer" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "DeÄŸiÅŸiklik Nedeni" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "Yaptığınız deÄŸiÅŸiklikleri ve neden gerekli olduklarını açıklamak için bir not bırakın." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "Bu, metriklerin revizyon geçmiÅŸinde herkesin neden deÄŸiÅŸtiÄŸini hatırlamasına yardımcı olacak." @@ -789,7 +787,7 @@ msgstr "Segmentinizi düzenleyin" msgid "Create Your Segment" msgstr "Segmentinizi oluÅŸturun" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "Segmentinizde deÄŸiÅŸiklikler yapın ve açıklayıcı not bırakın" @@ -797,37 +795,37 @@ msgstr "Segmentinizde deÄŸiÅŸiklikler yapın ve açıklayıcı not bırakın" msgid "Select and add filters to create your new segment for the {0} table" msgstr "{0} tablosu için yeni segmentinizi oluÅŸturmak üzere filtre seçip ekleyin" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "Segmentinizi adlandırın" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "Segmentinize baÅŸkalarının bulmasına yardımcı olacak bir ad verin." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "Segmentinizi açıklayın" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "Segmentinize diÄŸerlerinin neyle ilgili olduÄŸunu anlamalarına yardımcı olacak bir açıklama verin." -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "Bu daha az belirgin segment kuralları hakkında daha spesifik olmak için iyi bir yer" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "Neden deÄŸiÅŸtiÄŸini hatırlamalarını yardımcı olmak için bu segment revizyon geçmiÅŸinde görünecek." #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "Ayarlar" @@ -841,33 +839,29 @@ msgstr "Bu tabloyu yeniden tara" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "Ekle" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "Geçerli bir e-posta adresi deÄŸil" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "Ä°sim" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "Soyisim" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "E-posta adresi" @@ -903,7 +897,7 @@ msgstr "Ãœyeler" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "E-posta" @@ -912,8 +906,8 @@ msgid "A group is only as good as its members." msgstr "Bir grup sadece üyeleri kadar iyidir." #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "Yönetici" @@ -973,11 +967,11 @@ msgstr "Grubu Kaldır" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "Tamam" @@ -986,9 +980,9 @@ msgid "Group name" msgstr "Grup adı" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "Gruplar" @@ -1017,10 +1011,10 @@ msgstr "Åžifreyi Yenile" msgid "Deactivate" msgstr "Devre dışı bırakmak" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "Ä°nsan" @@ -1061,7 +1055,7 @@ msgstr "{0} adresine, ÅŸifresini ayarlama ile ilgili bir davet gönderdik." msgid "We've re-sent {0}'s invite" msgstr "{0} 'ın davetini tekrar gönderdik" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "Tamam" @@ -1093,7 +1087,7 @@ msgstr "Tekrar giriÅŸ yapabilecekler ve hesabı devre dışı bırakılmadan ön msgid "Reset {0}'s password?" msgstr "{0} ÅŸifresini sıfırlayın" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "Sıfırla" @@ -1132,19 +1126,19 @@ msgstr "Birini ekle" msgid "Last Login" msgstr "Son giriÅŸ" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Google üzerinden kaydoldu" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "LDAP ile kaydoldu" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "Bu hesabı yeniden etkinleÅŸtir" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "Asla" @@ -1186,7 +1180,7 @@ msgid " native queries for " msgstr "için yerel sorgular" #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "Ä°zinler" @@ -1243,115 +1237,115 @@ msgstr "MetaBot,Metabes'in Slack bot'udur. Buradan eriÅŸebileceÄŸi ÅŸeyi seçebi msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "\"{0}\" grubu bu gruba göre {1} farklı bir kümeye eriÅŸebilir, bu da bu gruba bazı {2} düzeylerine ek eriÅŸim saÄŸlayabilir." -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "\"{0}\" grubu, bu ayarı geçersiz kılacak daha yüksek bir eriÅŸim düzeyine sahiptir. \"{1}\" grubunun bu öğeye eriÅŸimini sınırlandırmalı veya iptal etmelisiniz." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "Limit" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "Geri almak" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "\"{0}\" daha fazla eriÅŸime sahip olsa bile eriÅŸimi saÄŸlayın?" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "LÄ°mit eriÅŸimi" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "EriÅŸimi iptal et" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "Bu veritabanına eriÅŸimi sınırlı olacak ÅŸekilde deÄŸiÅŸtirilsin mi?" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "DeÄŸiÅŸtir" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "Sorgu Yazmaya Ä°zin Verilsin mi?" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "Bu ayrıca bu grubun Veritabanını bu veritabanı için Sınırsız olarak deÄŸiÅŸtirecektir." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "Ä°zin vermek" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "Tüm tablolara eriÅŸimi iptal et?" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "Bu ayrıca bu grubun bu veritabanı için ham sorgulara eriÅŸimini iptal edecektir." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "Sınırsız eriÅŸim izni ver" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "Sınırsız eriÅŸim" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "Sınırlı eriÅŸim" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "EriÅŸim yok" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "Ham sorgular yaz" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Ham sorguları yazabilir" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "Koleksiyonu ayarlayın" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "Koleksiyonu görüntüle" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "Veri EriÅŸimi" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "Tabloları görüntüle" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "SQL Sorguları" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "Åžemaları görüntüle" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "Veri örneÄŸi" @@ -1494,8 +1488,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "{0} metatabase'i kullanılabilir. Siz {1}'i çalıştırıyorsunuz." #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "GüncelleÅŸtirme" @@ -1518,18 +1512,20 @@ msgstr "Özel haritayı sil" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "Kaldır" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "Seç..." @@ -1730,7 +1726,7 @@ msgstr "Bilinmeyen ayar {0}" msgid "Setup" msgstr "Kurmak" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "Genel" @@ -1857,7 +1853,7 @@ msgid "Username or DN" msgstr "Kullanıcı adı veya DN" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "Parola" @@ -2020,31 +2016,31 @@ msgstr "Parolamı unuttum" msgid "The email you use for your Metabase account" msgstr "Metabase hesabınız için kullandığınız e-posta" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "Åžifre sıfırlama e-postası gönder" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "Åžifrenizi nasıl sıfırlayacağınızla ilgili talimatlar için e-postanızı kontrol edin." -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "Metabase oturumu açın" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "VEYA" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "Kullanıcı adı yada e-posta adresi" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "Oturum aç" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "Galiba ÅŸifremi unuttum" @@ -2062,7 +2058,7 @@ msgid "For security reasons, password reset links expire after a little while. I msgstr "Güvenlik nedeniyle, ÅŸifre sıfırlama baÄŸlantıları bir süre sonra sona erer. Hala ÅŸifrenizi sıfırlamanız gerekiyorsa, {0}." #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "Yeni Åžifre" @@ -2075,38 +2071,38 @@ msgid "Create a new password" msgstr "Yeni bir ÅŸifre oluÅŸtur" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "Yukarıdaki talimatlar gibi güvenli olduÄŸundan emin olun" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "Yeni ÅŸifreyi onayla" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "Az önce girdiÄŸiniz ÅŸifre ile eÅŸleÅŸtiÄŸinden emin olun." -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "Åžifreniz sıfırlandı." -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "Yeni ÅŸifrenizle giriÅŸ yapın" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "Kayıt baÅŸarısız" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2125,22 +2121,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "Bu koleksiyondaki panolar, koleksiyonlar ve darbelerde arÅŸivlenecektir." #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "ArÅŸiv" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "Bu {0} arÅŸivlendi" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "ArÅŸivi görüntüle" @@ -2150,17 +2147,19 @@ msgstr "Bunu arÅŸivden kaldır {0}" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "Verilerimiz" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "X-ışını bu tablo" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "Bu tablo hakkında bilgi edinin" @@ -2255,44 +2254,44 @@ msgstr "Ä°ÄŸneler" msgid "Drag something here to pin it to the top" msgstr "Ãœstüne sabitlemek için buraya bir ÅŸey sürükleyin" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "Koleksiyonlar" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "Bu iÄŸneyi kaldırmak için buraya sürükleyin" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} öğe seçildi" msgstr[1] "{0} öğeler seçildi" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "Öğeleri {0} taşı?" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "\"{0}\" taşı?" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "Taşı" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "Bu koleksiyonu düzenle" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "Bu koleksiyonu arÅŸivle" @@ -2309,11 +2308,11 @@ msgstr "Yeni koleksiyon" msgid "Copied!" msgstr "Kopyalanan!" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "Veritabanı baÄŸlantıları için bir SSH tüneli kullanın" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." @@ -2321,7 +2320,7 @@ msgstr "Bazı veritabanı kurulumlarına sadece bir SSH bastion ana bilgisayarı "Bu seçenek ayrıca bir VPN mevcut olmadığında ekstra bir güvenlik katmanı saÄŸlar.\n" "Bunu etkinleÅŸtirmek genellikle doÄŸrudan bir baÄŸlantıdan daha yavaÅŸtır." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "Bu büyük bir veritabanıdır, bu yüzden Metabase senkronize edip tarama yaparken benim seçmeme izin ver" @@ -2330,47 +2329,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail "If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." msgstr "Varsayılan olarak, Metabase hafif bir saatlik senkronizasyon ve yoÄŸun bir günlük alan taraması yapar. Büyük bir veritabanınız varsa bunu açmanızı ve alan deÄŸeri taramalarının ne zaman ve ne sıklıkta gerçekleÅŸtiÄŸini gözden geçirmenizi öneririz." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0} projeniz için bir Müşteri KimliÄŸi ve Müşteri Sırrı oluÅŸturmak " -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "Buraya tıklayın" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "Uygulama türü olarak \"DiÄŸer\" i seçin. Ne istersen söylemen yeter." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "Bir kimlik kodu almak için {0}" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "Google Drive izinleriyle" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "Metabase'i bu verilerle kullanmak için Google Developers Console'da API eriÅŸimini etkinleÅŸtirmeniz gerekir." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "Daha önce yapmadıysanız {0} konsoluna gitmek için." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "Bu veritabanına nasıl baÅŸvurmak istersiniz?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "Sonraki" @@ -2389,7 +2388,7 @@ msgstr "Bu öğeyi taşı" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "Bu soruyu düzenle" @@ -2402,7 +2401,7 @@ msgstr "Eylem Türü" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "Düzeltme geçmiÅŸini görüntüle" @@ -2418,7 +2417,7 @@ msgstr "ArÅŸiv hareketi" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "Gösterge tablosuna ekle" @@ -2429,7 +2428,7 @@ msgstr "Sonuçları indir" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "PaylaÅŸma ve yerleÅŸtirme" @@ -2475,65 +2474,63 @@ msgstr "Åžemaya göre" msgid "A look at your" msgstr "Ya bir bakiÅŸ" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "Listeyi ara" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "{0} ile ara" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr " veya bir kimlik girin" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "Bir kimlik girin" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "Bir numara giriniz" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "Bir metin girin" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "EÅŸleÅŸen {0} bulunamadı." -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "Filtrenizdeki her seçeneÄŸi eklemek muhtemelen pek bir ÅŸey yapmaz…" -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "Bir ÅŸeyler ters gitti" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "Bir hatayla karşılaÅŸtık. Sayfayı yenilemeyi deneyebilir veya sadece geri dönebilirsiniz." -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "Henüz bir açıklama yok" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "Yeni {0}" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "{0} tarafından soruldu" @@ -2554,8 +2551,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "Önceki bir revizyona ve {0} ye geri alındı" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "Revizyon GeçmiÅŸi" @@ -2600,7 +2597,7 @@ msgid "Questions" msgstr "Sorular" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "Darbeler" @@ -2637,7 +2634,7 @@ msgstr "Ãœye Ol" msgid "You're subscribed. Thanks for using Metabase!" msgstr "Ãœye oldunuz. Metabase kullandığınız için teÅŸekkür ederiz." -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "Biraz kaybolduk..." @@ -2646,14 +2643,14 @@ msgid "Temporary Password" msgstr "Geçici Parola" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "Gizle" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "Göster" @@ -2755,7 +2752,7 @@ msgstr "seçilmiÅŸ" msgid "Nothing to select" msgstr "Seçecek bir ÅŸey yok" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "Ãœzgünüz, bunu görme izniniz yok." @@ -2763,8 +2760,8 @@ msgstr "Ãœzgünüz, bunu görme izniniz yok." msgid "Unknown error encountered" msgstr "Hata oluÅŸtu" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "OluÅŸtur" @@ -2772,7 +2769,6 @@ msgstr "OluÅŸtur" msgid "Create dashboard" msgstr "Dashboard oluÅŸtur" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "Tablo" @@ -2797,12 +2793,11 @@ msgstr "Aradığınızı bulmak için filtrenizi ayarlamayı deneyin." msgid "View by" msgstr "Tarafından görüntüle" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "nın" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "Kimseye söyleme, sen benim favorimsin." @@ -2810,19 +2805,19 @@ msgstr "Kimseye söyleme, sen benim favorimsin." msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "Kendi verilerinizi baÄŸladıktan sonra, Size x-ışınları denen bazı otomatik keÅŸifler gösterebilirim. Örnek verilerle ilgili bazı örnekler." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "Buradan baÅŸlayın" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "Analizlerimiz" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "Tüm öğelere göz at" @@ -2834,44 +2829,45 @@ msgstr "DeÄŸiÅŸtir veya yeni olarak kaydet" msgid "Replace original question, \"{0}\"" msgstr "Orijinal soruyu deÄŸiÅŸtir, \"{0}\"" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "Yeni soru olarak kaydet" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "Ä°lk önce, sorunuzu kaydedin" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "Soru kaydet" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "Kartınızın adı nedir?" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "Açıklama" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "O isteÄŸe baÄŸlı ama, çok yararlı" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "Bu hangi koleksiyonda olmalı?" @@ -2912,11 +2908,11 @@ msgstr "ArÅŸiv Paneli" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "Her seri için seçim yaptığınızdan emin olun, veya filtre bu kartta çalışmaz." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "Bu gösterge paneli boÅŸ görünüyor." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "Kullanmaya baÅŸlamak için bir soru ekleyin!" @@ -2936,51 +2932,51 @@ msgstr "Tam ekrandan çık" msgid "Enter fullscreen" msgstr "Tam ekran yap" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "Kaydediliyor..." -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "Bir soru ekle" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "Bu panele bir soru ekle" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "Filtre ekle" #. I don't speak Turkish but this doesn't look right to me. -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "Parametreler" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "Bir metin kutusu ekle" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "Gösterge tablosunu taşı" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "Gösterge tablosunu düzenle" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "Gösterge Tablosu Düzen tasarımını Düzenle" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "Bir gösterge tablosunu düzenliyorsunuz" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Her kart için filtrelenmesi gereken alanı seçin" @@ -3031,11 +3027,11 @@ msgstr "30 dakika" msgid "60 minutes" msgstr "60 dakika" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "Otomatik-yenileme" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "İçinde yenileniyor" @@ -3047,7 +3043,7 @@ msgstr "Bu soruyu kaldırılsın mı?" msgid "Your dashboard was saved" msgstr "Paneliniz kadedildi" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "Bu gör" @@ -3134,10 +3130,9 @@ msgstr "gösterge tablosundan bir soru kaldırıldı" msgid "received the latest data from" msgstr "en son veri alındı" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "Bilinmeyen" @@ -3254,7 +3249,7 @@ msgstr "Hepsini gör" msgid "Recently Viewed" msgstr "Son Görüntülenen" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "Son zamanlarda hiç gösterge tablosuna veya sorusuna bakmadınız" @@ -3268,11 +3263,11 @@ msgid "Unarchive" msgstr "ArÅŸivden Çıkar" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "Aktivite" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "\"{0}\" için sonuçlar" @@ -3334,6 +3329,9 @@ msgstr "Avatar Resmi URL'si" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "Genel" @@ -3376,8 +3374,8 @@ msgstr "Boylam" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "Numara" @@ -3423,93 +3421,93 @@ msgstr "OluÅŸturma zamanı" msgid "Creation date" msgstr "OluÅŸturulma tarihi" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "Ãœrün" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "kullanıcı" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "Kaynak" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "Fiyat" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "Zaman damgasına katıl" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "Ãœyelik Zamanı" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "Ãœyelik tarihi" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "Pay" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "Sahip" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "Åžirket" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "Abone" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "Gol" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "BaÅŸlık" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "Yorum " -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "Maliyet" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Brüt kar marjı" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "DoÄŸum günü" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "Arama kutusu" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "Tüm deÄŸerlerin listesi" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "Düz giriÅŸ kutusu" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "Her yerde" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "Varsayılan ayar. Bu alan normalde tablolarda ve grafiklerde gösterilecektir." @@ -3517,7 +3515,7 @@ msgstr "Varsayılan ayar. Bu alan normalde tablolarda ve grafiklerde gösterilec msgid "Only in Detail Views" msgstr "Sadece Detay Görünümlerinde" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "Bu alan sadece tek bir kaydın ayrıntılarını görüntülerken görüntülenir. Bir tablo veya grafikte uzun ya da kullanışlı olmayan bilgiler için bunu kullanın." @@ -3531,7 +3529,8 @@ msgstr "Metatabanı bu alanı asla alamaz. Hassas veya alakasız bilgiler için #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3546,8 +3545,9 @@ msgid "CumulativeCount" msgstr "Kümülatif Sayım" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "Toplam" @@ -3556,7 +3556,7 @@ msgid "CumulativeSum" msgstr "KümülatifToplam" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "Farklı" @@ -3565,25 +3565,28 @@ msgid "StandardDeviation" msgstr "Standart Sapma" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "Ortalama" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "Min" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "Maksimum" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "çok üzgün panda, lexing hataları tespit edildi" @@ -3633,12 +3636,13 @@ msgid "What do you want to find out?" msgstr "Ne öğrenmek istiyorsun?" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "Ä°ÅŸlenmemiÅŸ veri" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "Birikimli sayım" @@ -3682,174 +3686,174 @@ msgstr "Tarafından filtrelendi" msgid "Sorted by " msgstr "Tarafından sıralandı" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "DoÄŸru" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "Yanlış" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Boylam alanını seç" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "Ãœstteki enlemi girin" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "Sol boylamı giriniz" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "Daha düşük enlem girin" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "DoÄŸru boylamı giriniz" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "ise" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "DeÄŸil" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "boÅŸ" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "boÅŸ deÄŸil" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "EÅŸittir" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "EÅŸit deÄŸil" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "den daha büyük" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "Den daha küçük" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "Arasında" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "Den daha büyük veya eÅŸit" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "Den daha az veya eÅŸit" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "İçerir" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "İçermez" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "Ä°le baÅŸlar" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "Ä°le biter" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "Önce" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "Sonra" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "içeride" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "Sadece cevapta satırları olan bir tablo, ek iÅŸlem yok." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "Satır sayısı" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "Yanıttaki toplam satır sayısı." -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "...nın Toplamı " -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "Bir sütunun tüm deÄŸerlerinin toplamı." -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "...nın Ortalaması" -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "Bir sütunun tüm deÄŸerlerinin ortalaması" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "...nın Farklı deÄŸerlerin sayısı" -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "Yanıttaki tüm satırlar arasında bir sütunun benzersiz deÄŸerlerinin sayısı." -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "...nın BirikmiÅŸ toplam " @@ -3857,7 +3861,7 @@ msgstr "...nın BirikmiÅŸ toplam " msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "Bir sütunun tüm deÄŸerlerinin toplamı. \\\\ ne.x. Zaman içinde toplam gelir." -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "Kümülatif satır sayısı" @@ -3865,27 +3869,27 @@ msgstr "Kümülatif satır sayısı" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "Satırların sayısının toplam sayısı. \\\\ ne.x. Zaman içinde toplam satış sayısı." -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "Standart sapma ..." -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "Bir sütunun deÄŸerlerinin ne kadarının cevabın tüm satırları arasında deÄŸiÅŸtiÄŸini ifade eden sayı." -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "Minimum ..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Bir sütunun minimum deÄŸeri" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "Maksimum ..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "Bir sütunun maksimum deÄŸeri" @@ -4059,68 +4063,70 @@ msgstr "DiÄŸer Kategoriler" msgid "Category, Type, Model, Rating, etc." msgstr "Kategori, Tip, Model, DeÄŸerlendirme, vb." -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "Hesap ayarları" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "Çıkış yöneticisi" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "Kayıtlar" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Yardım et" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "Metatabanı Hakkında" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "Oturumu Kapat" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "Kullandığınız için teÅŸekkürler" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "Versiyondasın" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "Ãœzerine inÅŸa" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "bir Ticari markasıdır" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "ve San Francisco, CA'da özenle inÅŸa edilmiÅŸtir" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Metabase Yöneticisi" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "Bir soru sor" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "Yeni gösterge Paneli" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "Yeni arama" @@ -4133,7 +4139,6 @@ msgstr "Referans" msgid "Which metric?" msgstr "Hangi metrik?" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "Ekibiniz için ortak metrikler tanımlamak, soru sormayı daha da kolaylaÅŸtırır" @@ -4151,7 +4156,7 @@ msgid "Custom" msgstr "Özel" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "Yeni soru" @@ -4159,13 +4164,13 @@ msgstr "Yeni soru" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "Trendleri, listelerin listesini görmek veya kendi metriklerinizi oluÅŸturmak için basit soru oluÅŸturucuyu kullanın." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "Yerel sorgu" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "Daha karmaşık sorular için, kendi SQL veya yerel sorgunuzu yazabilirsiniz." @@ -4269,7 +4274,7 @@ msgstr "Bir deÄŸer girin ..." msgid "Enter a default value..." msgstr "Varsayılan bir deÄŸer girin ..." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "Bir hata oluÅŸtu" @@ -4517,7 +4522,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "Bakliyatları küçük ve odaklanmış halde tutmanızı ve çalışabilmesini ve tüm ekip için faydalı olmasını saÄŸlamanızı öneririz." #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "Verilerinizi seçin" @@ -4533,47 +4538,47 @@ msgstr "E-postalar" msgid "Slack messages" msgstr "Slack mesajları" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "Gönderilen" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} adresine gönderilecek" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "Mesajlar" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "Åžimdi e-posta gönder" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "Åžimdi {0} adresine gönder" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "Gönderiliyor ..." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "Gönderim baÅŸarısız" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "Gönderme yapılmadı çünkü arama hiçbir sonuç vermedi." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "Arama gönderildi" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} bir yönetici tarafından kurulmalıdır." -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "GevÅŸek" @@ -4660,7 +4665,7 @@ msgstr "Zamana göre satır sayısı" msgid "Break out by {0}" msgstr "{0} ile ayrın" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "Bu segmenti özetle" @@ -4714,15 +4719,15 @@ msgstr "Yükselen" msgid "Descending" msgstr "Azalan" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "zamanla" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "Ort" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "Farklar" @@ -4918,6 +4923,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} Birden fazla satıra sahip grafikler için hedef tabanlı uyarılar henüz desteklenmiyor, Bu nedenle, grafik {1} olduÄŸunda bu uyarı gönderilir." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "sonuçlar" @@ -4933,47 +4939,47 @@ msgstr "Tür" msgid "usually" msgstr "genellikle" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "Bir segment veya tablo seçin" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "Bir veritabanı seç" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "Seç ..." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "Tablo seç" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "Bu veritabanında hiçbir tablo bulunamadı." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "Eksik bir soru mu var?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "Yuvalanmış sorgular hakkında daha fazla bilgi edinin." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "Alanlar" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "Segment bulunamadı." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "Bir segment bul" @@ -5023,7 +5029,7 @@ msgstr "Bir gruplama ekle" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5031,9 +5037,9 @@ msgstr "Bir gruplama ekle" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5056,7 +5062,7 @@ msgstr "Tarafından gruplandırılmış" msgid "None" msgstr "Yok" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "Bu soru {0} ile yazılmıştır." @@ -5068,11 +5074,11 @@ msgstr "Düzenleyiciyi Gizle" msgid "Hide Query" msgstr "Sorguyu Gizle" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "Editör'ü Aç" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "Sorguyu Göster" @@ -5117,7 +5123,7 @@ msgstr "Ä°PTAL ETMEK" msgid "Move question" msgstr "Soru taşı" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "Which collection should this be in?" @@ -5171,7 +5177,7 @@ msgstr "Bu soru için {0}" msgid "Convert this question to {0}" msgstr "Bu soruyu {0} olarak çevir" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "Bu soru, yenilemek için yaklaşık {0} sürecek" @@ -5205,7 +5211,7 @@ msgstr "Bana biraz veri verirsen sana güzel bir ÅŸey gösterebilirim. Bir Sorgu msgid "How do I use this thing?" msgstr "Bu ÅŸeyi nasıl kullanırım?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "Cevap almak" @@ -5273,7 +5279,7 @@ msgstr "bir uyarı al" msgid "Back to last run" msgstr "Son koÅŸuya dönüş" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "Görüntüleme" @@ -5285,7 +5291,7 @@ msgstr "Açıklama ayarlanmamış." msgid "Use for current question" msgstr "Mevcut soru için kullan" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "Potansiyel olarak yararlı sorular" @@ -5309,7 +5315,7 @@ msgstr "Tüm farklı {0} deÄŸerleri" msgid "Number of {0} grouped by {1}" msgstr "{1} ile gruplandırılmış {0} sayısı" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5343,12 +5349,12 @@ msgid "Filter by {0}" msgstr "{0} ile filtrele" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "{0} sayısı" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "Tüm {0}" @@ -5368,32 +5374,33 @@ msgstr "{0} için ham verileri görün" msgid "More" msgstr "Daha" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "Geçersiz ifade" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "bilinmeyen hata" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Alan formülü" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "Bunu bir e-tablo programında formül yazmak gibi bir ÅŸey olarak düşünün: Sayıları, bu tablodaki alanları, + gibi matematiksel sembolleri ve bazı iÅŸlevleri kullanabilirsiniz. Böylece Subtotal - Cost gibi bir ÅŸey yazabilirsiniz." -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "Daha fazla bilgi edin" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "Bir isim ver" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "Güzel ve açıklayıcı bir ÅŸey" @@ -5473,7 +5480,7 @@ msgid "Enter desired number" msgstr "Ä°stenen numarayı giriniz" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "BoÅŸ" @@ -5541,41 +5548,41 @@ msgstr "Birden çok isteÄŸe baÄŸlı madde kullanmak için En az bir isteÄŸe baÄŸ msgid "Read the full documentation" msgstr "Tüm belgeleri okuyun" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "Filtre etiketi" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "DeÄŸiÅŸken tip" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "Metin" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "Tarih" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Alan Filtresi" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "EÅŸlenecek alan" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "Filtre aracı türünü filtrele" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "Gereklidir?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "Varsayılan filtre widget deÄŸeri" @@ -5587,7 +5594,7 @@ msgstr "Bu soruyu arÅŸivlediniz mi?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "Bu soru, onu kullanan herhangi bir gösterge tablosundan veya darbelerden çıkarılacaktır." -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "Soru" @@ -5599,8 +5606,8 @@ msgstr "Eklenecek bir soru seçin" msgid "You are editing this page" msgstr "Bu sayfayı düzenliyorsunuz" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "Bunu {0} görün " @@ -5608,15 +5615,15 @@ msgstr "Bunu {0} görün " msgid "A subset of" msgstr "Altkümesi" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "Bir alan türü seçin" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5627,8 +5634,8 @@ msgid "by" msgstr "tarafından" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "Alan türü" @@ -5653,12 +5660,12 @@ msgid "Nothing important yet" msgstr "Henüz önemli bir ÅŸey yok" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "Henüz ilginç bir ÅŸey yok" @@ -5667,12 +5674,12 @@ msgid "Things to be aware of about this {0}" msgstr "{0}ile ilgili bilinmesi gerekenler " #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "Henüz bilmeniz gereken bir ÅŸey yok" @@ -5718,7 +5725,7 @@ msgstr "Kullanıcıların bu {0} hakkında farkında olmaları gereken herhangi msgid "Which 2-3 fields do you usually group this metric by?" msgstr "Bu metriÄŸi hangi 2-3 alanla gruplandırırsınız?" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "Bu, ÅŸirketinizin verilerinin yeni olması durumunda ya da sadece neler olup bittiÄŸini kontrol etmek istiyorsanız baÅŸlamak için mükemmel bir yerdir." @@ -5734,11 +5741,11 @@ msgstr "DeÄŸiÅŸikliklerin nedeni" msgid "Leave a note to explain what changes you made and why they were required" msgstr "Yaptığınız deÄŸiÅŸiklikleri ve neden gerekli olduklarını açıklamak için not bırakın" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "Bu veritabanı neden ilginç?" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "Bu veritabanı hakkında bilinmesi gerekenler" @@ -5748,44 +5755,44 @@ msgid "Databases and tables" msgstr "Veritabanları ve tablolar" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "ayrıntılar" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "{0} alanındaki tablolar" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "Veritabanındaki gerçek isim" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "Bu alan neden ilginç?" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "Bu alan hakkında bilinmesi gerekenler" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "Veri tipi" @@ -5799,12 +5806,12 @@ msgstr "Bu tablodaki alanlar, eklendiklerinde burada görünecek" msgid "Fields in {0}" msgstr "{0} daki alanlar" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "Alan adı" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "Bu alana x-ray" @@ -5835,11 +5842,11 @@ msgstr "{0} sayısı" msgid "See raw data for {0}" msgstr "{0} için ham verileri görün" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "Bu tablo neden ilginç?" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "Bu tablo hakkında bilinmesi gerekenler" @@ -5853,7 +5860,7 @@ msgstr "Bu tabloyla ilgili sorular, eklendiklerinde burada görünece" #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "{0} ile ilgili sorular" @@ -5868,7 +5875,7 @@ msgstr " {0} {1} tarafından düzenlendi" msgid "Fields in this table" msgstr "Bu tablodaki alanlar" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "Bu tabloyla ilgili sorular" @@ -5904,7 +5911,7 @@ msgstr "Tüm metrikleri görün" msgid "Segments and tables" msgstr "Segmentler ve tablolar" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "Tablolar" @@ -6021,8 +6028,8 @@ msgstr "Bu kılavuz hakkında kafası karıştığında, kullanıcılarınız ya msgid "Who should users contact for help if they're confused about this data?" msgstr "Kullanıcılar bu veriler hakkında kafaları karıştıysa yardım için kiminle iletiÅŸime geçmeli?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "Lütfen bir revizyon mesajı girin" @@ -6038,15 +6045,15 @@ msgstr "Bu MetriÄŸin bilinmesi gerekenler" msgid "How this Metric is calculated" msgstr "Bu Metrik nasıl hesaplanır?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "Henüz nasıl hesaplandığına dair bir ÅŸey yok" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "Bu metriÄŸi gruplayabileceÄŸiniz diÄŸer alanlar" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "Bu metriÄŸi gruplayabileceÄŸiniz alanlar" @@ -6071,20 +6078,20 @@ msgid "There are no revisions for this metric" msgstr "Bu metrik için düzeltme yok" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "{0} için düzeltme tarihi" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "Metrik X-ışını" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "Bu Segment neden ilginç?" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "Bu Bölüm hakkında bilinmesi gerekenler" @@ -6108,60 +6115,60 @@ msgstr "Segment oluÅŸturmayı öğrenin" msgid "Questions about this segment will appear here as they're added" msgstr "Bu segmentle ilgili sorular, eklendiklerinde burada görünecek" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "Bu segment için düzeltme yok" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "Bu segmentteki alanlar" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "Bu segmentle ilgili sorular" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "Bu segmenti incele" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "Oturum aç" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "Arama" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "Gösterge paneli" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "Yeni soru" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "Kullandığınız Veritabanı türünü seçin" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "Verilerinizi ekleyin" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "Sonra kendi verilerini ekleyeceÄŸim" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "{0} öğesine baÄŸlanıyor" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "Veritabanınız hakkında bazı bilgilere ihtiyacınız olacak, kullanıcı adı ve ÅŸifre gibi. Åžu anda buna sahip deÄŸilsen, Metatabanı ayrıca baÅŸlayabileceÄŸiniz örnek bir veri kümesi ile birlikte gelir." -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "Verilerimi daha sonra ekleyeceÄŸim" @@ -6169,43 +6176,43 @@ msgstr "Verilerimi daha sonra ekleyeceÄŸim" msgid "Control automatic scans" msgstr "Otomatik taramaları denetle" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "Kullanım verileri tercihleri" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "GeliÅŸtirmemize yardımcı olduÄŸunuz için teÅŸekkürler" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "Herhangi bir kullanım etkinliÄŸi toplamayacağız" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Metatabanını geliÅŸtirmemize yardımcı olmak için Google Analytics’le kullanımla ilgili belirli verileri toplamak istiyoruz." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "Ä°ÅŸte izlediÄŸimiz her ÅŸeyin tam listesi ve nedeni." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "Metatabanının kullanım olaylarını anonim olarak toplamasına izin ver" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metatabanı {0}, verileriniz veya soru sonuçlarınızla ilgili bir ÅŸeyler toplar." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "asla" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "Tüm koleksiyon tamamen anonimdir." -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "Koleksiyon, yönetici ayarlarınızdaki herhangi bir noktada kapatılabilir." @@ -6254,24 +6261,24 @@ msgstr "Merhaba {0}. tanıştığıma memnun oldum!" msgid "Create a password" msgstr "Åžifre oluÅŸtur" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "Shhh ..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "Åžifreyi Onayla" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "Shhh ... ama bir kez daha doÄŸru anlıyoruz" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "Åžirketiniz veya takımın adı" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "Harika departmanı" @@ -6448,11 +6455,11 @@ msgstr "Google E-posta adresiyle giriÅŸ yap" msgid "User Details" msgstr "Kullanıcı detayları" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "Varsayılanlara dön" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "bilinmeyen harita" @@ -6460,7 +6467,7 @@ msgstr "bilinmeyen harita" msgid "Grid map requires binned longitude/latitude." msgstr "Grid haritası, binned boylam / enlemi gerektirir." -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "haha" @@ -6497,31 +6504,31 @@ msgstr "Ayarını kaldır" msgid "Rows {0}-{1} of {2}" msgstr "{0} - {1} - {2} satırda" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "Veriler {0} satırına kesildi." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "GörselleÅŸtirme bulunamadı" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "Grafik bu verileri görüntülenemedi." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "Sonuç yok!" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "Hala bekliyorum ." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "Bu genellikle ortalama {0} alır." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(Bu bir gösterge paneli için biraz uzun)" @@ -6537,11 +6544,11 @@ msgstr "Bir alan seç" msgid "error" msgstr "hata" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "SipariÅŸlerini deÄŸiÅŸtirmek için tıklayın ve sürükleyin" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "AÅŸağıdaki listeden alanlar ekleyin" @@ -6680,19 +6687,19 @@ msgstr "Kural ekle" msgid "Update rule" msgstr "Güncelleme kuralı" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "GörselleÅŸtirme boÅŸ" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "GörselleÅŸtirme bir 'tanımlayıcı' statik deÄŸiÅŸkeni tanımlamalıdır: " -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "Bu tanımlayıcı ile görselleÅŸtirme zaten kayıtlı: â£" -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "{0} için görselleÅŸtirme yok" @@ -6700,11 +6707,11 @@ msgstr "{0} için görselleÅŸtirme yok" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "\"{0}\", ayrılmamış bir alandır: x ekseni üzerindeki bir noktada birden fazla deÄŸere sahipse, deÄŸerler toplanır." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "Bu grafik türü en az 2 sütun gerektirir." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "Bu grafik türü, {0} veri dizisinden daha fazlasını desteklemiyor." @@ -6745,7 +6752,7 @@ msgstr "Lütfen bu grafiÄŸi grafik ayarlarında yapılandırın" msgid "Edit Settings" msgstr "Ayarları Düzenle" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "xValues eksik!" @@ -6772,7 +6779,7 @@ msgid "Bubble size" msgstr "Kabarcık boyutu" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "Çizgi" @@ -6829,104 +6836,104 @@ msgstr "Hiçbir ÅŸey deÄŸil" msgid "Linear Interpolated" msgstr "DoÄŸrusal Ä°nterpolasyon" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "X ekseni ölçeÄŸi" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "Zaman serisi" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "DoÄŸrusal" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "Güç" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "GiriÅŸ" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "Histogram" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "Sıra" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "Y ekseni ölçeÄŸi" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "X ekseni çizgisini ve iÅŸaretlerini göster" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Kompakt" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "45 ° döndür" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "90 ° döndür" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "Y ekseni satırını ve iÅŸaretlerini göster" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Otomatik y ekseni aralığı" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "GerektiÄŸinde bölünmüş bir y ekseni kullanın" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "X ekseni üzerindeki etiketi göster" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "X ekseni etiketi" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "Y ekseninde etiketi göster" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Y ekseni etiketi" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "Standart sapma" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "Alan" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "alan ÅŸeması" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "Bubuk " -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "çubuk grafik" @@ -6952,19 +6959,19 @@ msgstr "Huni tipi" msgid "Bar chart" msgstr "Çubuk grafik" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "Çizgi grafik" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "Grafik ayarlarında boylam ve enlem sütunlarını seçiniz." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "Lütfen bir bölge haritası seçin." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "Grafik ayarlarında lütfen bölge ve metrik sütunları seçin." @@ -6972,73 +6979,73 @@ msgstr "Grafik ayarlarında lütfen bölge ve metrik sütunları seçin." msgid "Map" msgstr "Harita" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "Harita türü" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "Bölge haritası" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "PIN haritası" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "Pin tipi" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "Fayans" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "Ä°ÅŸaretleyiciler" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "Latitude alanı" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "Boylam alanı" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "Metrik alan" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "Bölge alanı" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "Yarıçap" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "Bulanıklık" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "Min Opaklık" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "Maksimum Zum" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "Ä°liÅŸki bulunamadı." -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "{0} ile" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "Bu {0} ÅŸuna baÄŸlı:" @@ -7050,7 +7057,7 @@ msgstr "Nesne detay" msgid "object" msgstr "nesne" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "Toplam" @@ -7099,7 +7106,7 @@ msgid "Progress" msgstr "Ä°lerleme" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "Renk" @@ -7190,13 +7197,13 @@ msgstr "SaÄŸ" msgid "Show background" msgstr "Arka planı göster" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "{0} kutu" msgstr[1] "{0} kutular" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "Otomatik olarak silindi" @@ -7622,7 +7629,7 @@ msgstr "kümülatif toplam" msgid "{0} and {1}" msgstr "{0} ve {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{1}'n {0} " @@ -8943,31 +8950,31 @@ msgstr "Tüm koleksiyon izinlerine bakın" msgid "Also change sub-collections" msgstr "Alt koleksiyonları da deÄŸiÅŸtir" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Bu koleksiyonu ve içeriÄŸini düzenleyebilir" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Bu koleksiyondaki öğeleri görebilir" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "Koleksiyon EriÅŸimi" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "Bu grup, bu koleksiyonun en az bir alt koleksiyonunu görüntüleme iznine sahiptir." -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "Bu grubun bu koleksiyonun en az bir alt koleksiyonunu düzenleme izni var." -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "Alt koleksiyonları görüntüle" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "Beni hatırla" @@ -8987,7 +8994,7 @@ msgstr "Bu soruyu kontrol paneline ekle" msgid "Create a new dashboard" msgstr "Yeni bir gösterge paneli oluÅŸtur" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "Ä°stediÄŸiniz sayfa bulunamadı." @@ -8995,11 +9002,11 @@ msgstr "Ä°stediÄŸiniz sayfa bulunamadı." msgid "Select a {0}" msgstr "Bir {0} seçin" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "\"{0}\" içindeki gösterge panelini, soruları ve koleksiyonları kaydedin" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "\"{0}\" içindeki gösterge paneli, sorulara ve koleksiyonlara eriÅŸin" @@ -9019,12 +9026,12 @@ msgstr "Ä°lgili" msgid "More X-rays" msgstr "Daha fazla X-rays" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "Sonuç yok" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabase aramanız için herhangi bir sonuç bulamadı." @@ -9234,10 +9241,10 @@ msgstr "N/A" msgid "Windows domain" msgstr "Windows alanı" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "Etiketler" @@ -9272,6 +9279,8 @@ msgstr "Paylaşım" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9286,33 +9295,33 @@ msgstr "Paylaşım" msgid "Display" msgstr "Göster" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "Eksen" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "Biçimlendirme" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "Verilerinize göre bu x-ışınlarını deneyin." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "Bu grafikte bir sorun oluÅŸtu." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "Ãœzgünüz, bu kartı görme izniniz yok." @@ -9332,20 +9341,20 @@ msgstr "X-ışını" msgid "Compare to the rest" msgstr "DiÄŸerleriyle karşılaÅŸtır" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "Java Sanal Makine (JVM) zaman dilimini kullanın" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "Manuel saat dilimi yapmadığınız sürece bunu kaldırmanızı öneririz. Bu verilerle sorgularınızın çoÄŸunda veya çoÄŸunda yayınlanır." -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "Ekibinizin en önemli gösterge panellerı buraya gider" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "Herkes için bu alanda görünmesini saÄŸlamak için {0} öğesindeki gösterge panellerını sabitleyin" @@ -9369,12 +9378,12 @@ msgstr "Ä°pucu:" msgid "Select a currency type" msgstr "Para birimi seçin" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "Alan Tipi" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "Sorun Giderme" @@ -9422,11 +9431,11 @@ msgstr "Süre (ms)" msgid "Currency" msgstr "Para Birimi" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "Kullanıcı veya kanal seçin" -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "Formatlama seçeneÄŸi yok" @@ -9599,15 +9608,15 @@ msgstr "Gösterge" msgid "Gauge ranges" msgstr "Gösterge aralığı" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "Gösterilecek alan" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "son {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0}, {1} {2} idi." @@ -9735,7 +9744,7 @@ msgstr "çeyrek yıl" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "{0} kartları {1}:n{2} panosuna ekle" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "Hata ayıklama {0}:n{1}" @@ -10029,7 +10038,7 @@ msgstr "Görev geçmiÅŸi baÅŸarı ile temizlendi, {0} satır silindi. " msgid "not" msgstr "deÄŸil" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "Daha fazla bilgi için, bakınız" @@ -11030,6 +11039,7 @@ msgstr "Bu metrik'in, farklı sayılar içinde nasıl dağıtılması" msgid "Sessions by page where the session began" msgstr "Sayfaya göre oturumun baÅŸladığı yerdeki oturumlar" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11378,15 +11388,15 @@ msgstr "Tekrar tetiklensin mi?" msgid "Triggers for {0}" msgstr "{0} için tetikleyiciler" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "Görevler" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "Ä°ÅŸler" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "{0} kopyalandı" @@ -11398,7 +11408,7 @@ msgstr "Bu ögeyi kopyala" msgid "Archive this item" msgstr "Bu ögeyi arÅŸivle" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "Bu panoyu kopyala" @@ -11425,6 +11435,7 @@ msgid "Next {0}" msgstr "Sonraki {0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "Önceki {0}" @@ -11519,8 +11530,8 @@ msgstr "[Q]Q" msgid "This" msgstr "Bu" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "Geçersiz" @@ -11528,11 +11539,11 @@ msgstr "Geçersiz" msgid "Add a time" msgstr "Bir zaman ekleyin" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "Önceki {0} ile karşılaÅŸtırılacak bir ÅŸey yok." -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "{0} bazında" @@ -11588,39 +11599,39 @@ msgstr "Eski SQL sorgusunun BigQuery ile kaydedilen soruya eklenmesi sırasında msgid "Failed to notify {0} Database {1} updated" msgstr "Veritabanı {1}'in güncelleme bildirimi {0} hatalı" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "Sürücü {0} {1} yükleniyor" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "Sürücü {0}'ı yükle" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "Sürücü yükleme sonrası kaydedilemedi: {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "Hata: {0} `:abstract?` özelliÄŸi {1}'den {2}'ye deÄŸiÅŸtirilirken" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "Soyut sürücü {0} kaydedildi" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "Sürücü {0} kaydedildi" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(atalar: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "Sürücü {0} baÅŸlatılıyor..." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "Neden:" @@ -11772,11 +11783,11 @@ msgstr "{0} bağımlığı {1}'i yerine getirdi mi? {2}" msgid "Plugins with unsatisfied deps: {0}" msgstr "Yerine getirilmeyen bağımlığı olan eklentiler: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "Dosya {0} -> {1} çıkarılıyor" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "Kaynak mevcut deÄŸil." @@ -12101,7 +12112,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreateDate]] yılın çeyreÄŸine göre" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "Kullanıcıyı düzenle" @@ -12109,12 +12120,12 @@ msgstr "Kullanıcıyı düzenle" msgid "New user" msgstr "Yeni kullanıcı" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "Åžifreyi sıfırla" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "Kullanıcıyı etkisiz kıl" @@ -12391,11 +12402,11 @@ msgstr "Yanlış talimat" msgid "Archive this?" msgstr "ArÅŸiv" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "Veri hakkında daha fazla" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "BaÄŸlanırken DNS SRV kullan" @@ -12405,7 +12416,7 @@ msgid "Using this option requires that provided host is a FQDN. If connecting t "leave this disabled." msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "Basit filteleme iÅŸlemleri yaparken sörfü sonuçlarını hemen göster " @@ -12413,7 +12424,7 @@ msgstr "Basit filteleme iÅŸlemleri yaparken sörfü sonuçlarını hemen göster msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "" -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "Veritabanı detayları " @@ -12421,25 +12432,25 @@ msgstr "Veritabanı detayları " msgid "Archive this dashboard?" msgstr "Bu dashboardu arÅŸivle " -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "Tüm sonuçlar " -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "Analizler" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "Bir kolona ait dip toplam (ör: toplam sipariÅŸ tutarı ) " -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "Toplam kayıt sayısı (ör : toplam sipariÅŸ sayısı)" #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Filtre" @@ -12449,27 +12460,27 @@ msgid_plural "records" msgstr[0] "Kayıt " msgstr[1] "Kayıt " -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "Verileri incele" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "SQL yaz" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "Basit soru" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "Bir veri kümesi seçerek filtrele ya da görselleÅŸtir" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "Özel soru" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "" @@ -12477,7 +12488,7 @@ msgstr "" msgid "Basic Metrics" msgstr "Basit Metrikler" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "Özel..." @@ -12493,7 +12504,7 @@ msgstr "Bir limit seçin" msgid "Show maximum" msgstr "" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "Önizleme al" @@ -12522,7 +12533,7 @@ msgid "Custom column" msgstr "Özel kolon" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "Özetle" @@ -12539,11 +12550,10 @@ msgid "Pick the metric you want to see" msgstr "Görmek istediÄŸiniz metriÄŸi seçiniz " #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "Gruplamak istediÄŸiniz kolonu seçiniz" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "baÅŸlangıç verinizi seçiniz " @@ -12555,7 +12565,7 @@ msgstr "Seçileni temizle" msgid "Select All" msgstr "Hepsini seç " -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "Bir tablo seçiniz " @@ -12601,15 +12611,15 @@ msgid_plural "{0} breakouts" msgstr[0] "" msgstr[1] "" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "Filtreleri gizle" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "Filtreleri göster " -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "" @@ -12639,11 +12649,11 @@ msgstr "" msgid "Summarized" msgstr "" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "" @@ -12651,7 +12661,7 @@ msgstr "" msgid "Pick the metric you'd like to see" msgstr "" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "" @@ -12679,7 +12689,7 @@ msgstr "" msgid "Profile" msgstr "" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "" @@ -12707,19 +12717,19 @@ msgstr "" msgid "Unknown Filter" msgstr "" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "" @@ -12771,7 +12781,7 @@ msgstr "" msgid "Could not find {0} driver." msgstr "" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "" @@ -12829,7 +12839,7 @@ msgstr "" msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "" @@ -13107,7 +13117,7 @@ msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "" @@ -13145,3 +13155,439 @@ msgstr "" msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "" +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "" + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "" + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "" + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "" + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "" + diff --git a/locales/uk.po b/locales/uk.po deleted file mode 100644 index 950c911972c44ff4bd8f81307319cd3b57d83acb..0000000000000000000000000000000000000000 --- a/locales/uk.po +++ /dev/null @@ -1,13217 +0,0 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" -"Project-Id-Version: Metabase\n" -"Language: uk\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:24 -msgid "Your database has been added!" -msgstr "Вашу базу даних додано!" - -#: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:28 -msgid "We took a look at your data, and we have some automated explorations that we can show you!" -msgstr "Ми глÑнули на ваші дані Ñ– оÑÑŒ результат нашого автоматичного доÑлідженнÑ!" - -#: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:35 -msgid "I'm good thanks" -msgstr "Ð’Ñе гаразд, ÑпаÑибі" - -#: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:42 -msgid "Explore this data" -msgstr "ДоÑлідити дані" - -#: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:42 -msgid "Select a database type" -msgstr "Оберіть тип бази даних" - -#: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 -#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 -#: frontend/src/metabase/components/ActionButton.jsx:51 -#: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 -#: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 -#: frontend/src/metabase/reference/components/EditHeader.jsx:54 -#: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 -msgid "Save" -msgstr "Зберегти" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:122 -msgid "To do some of its magic, Metabase needs to scan your database. We will also rescan it periodically to keep the metadata up-to-date. You can control when the periodic rescans happen below." -msgstr "Ми повинні проÑканувати вашу базу даних. Періодично ми повторюватимемо цю дію Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ актуальноÑÑ‚Ñ– даних. Ðижче ви можете контролювати періодичніÑÑ‚ÑŒ." - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:127 -msgid "Database syncing" -msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð±Ð°Ð·Ð¸ даних" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:128 -msgid "This is a lightweight process that checks for\n" -"updates to this database’s schema. In most cases, you should be fine leaving this\n" -"set to sync hourly." -msgstr "Це легкий Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ оновлень Ñтруктури цієї бази даних. У більшоÑÑ‚Ñ– випадків доÑтатньо щогодинного запуÑку." - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:147 -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:183 -msgid "Scan" -msgstr "Сканувати" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:152 -msgid "Scanning for Filter Values" -msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ñ–Ð²" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:153 -msgid "Metabase can scan the values present in each\n" -"field in this database to enable checkbox filters in dashboards and questions. This\n" -"can be a somewhat resource-intensive process, particularly if you have a very large\n" -"database." -msgstr "Metabase може проÑканувати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ Ð±Ð°Ð·Ð¸ даних Ñ– зробити доÑтупними checkbox-фільтри на панелÑÑ… індикаторів Ñ– в питаннÑÑ…. ÐŸÑ€Ð¾Ñ†ÐµÑ Ð´Ð¾Ñить реÑурÑозатратний, оÑобливо Ð´Ð»Ñ Ð´ÑƒÐ¶Ðµ великої бази даних." - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:158 -msgid "When should Metabase automatically scan and cache field values?" -msgstr "Коли Metabase повинен автоматично Ñканувати Ñ– кешувати значеннÑ?" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:163 -msgid "Regularly, on a schedule" -msgstr "РегулÑрно, за розкладом" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:194 -msgid "Only when adding a new filter widget" -msgstr "Тільки коли додаєтьÑÑ Ð½Ð¾Ð²Ð¸Ð¹ віджет фільтрації" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:198 -msgid "When a user adds a new filter to a dashboard or a SQL question, Metabase will\n" -"scan the field(s) mapped to that filter in order to show the list of selectable values." -msgstr "Коли кориÑтувач додає новий фільтр до дешборду або SQL запит, Metabase Ñканує полÑ, пов'Ñзані з цим фільтром, Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÑƒ опцій." - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:209 -msgid "Never, I'll do this manually if I need to" -msgstr "Ðіколи, Ñ Ð·Ñ€Ð¾Ð±Ð»ÑŽ це вручну при необхідноÑÑ‚Ñ–" - -#: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:221 -#: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:27 -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 -#: frontend/src/metabase/components/ActionButton.jsx:52 -#: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 -msgid "Saving..." -msgstr "ЗбереженнÑ..." - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:38 -#: frontend/src/metabase/components/form/FormMessage.jsx:4 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:146 -msgid "Server error encountered" -msgstr "Помилка на Ñервері" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:56 -msgid "Delete this database?" -msgstr "Видалити цю базу даних?" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:61 -msgid "All saved questions, metrics, and segments that rely on this database will be lost." -msgstr "Ð’ÑÑ– збережені запити, метрики Ñ– Ñегменти, Ñкі залежать від цієї бази даних, будуть втрачені." - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:62 -msgid "This cannot be undone." -msgstr "Ð¦Ñ Ð´Ñ–Ñ Ð½ÐµÐ·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð°." - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:65 -msgid "If you're sure, please type" -msgstr "Якщо ви впевнені, напишіть" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:52 -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:65 -msgid "DELETE" -msgstr "ВИЛУЧИТИ" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:66 -msgid "in this box:" -msgstr "у цьому полі:" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 -#: frontend/src/metabase/admin/people/components/AddRow.jsx:27 -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 -#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 -#: frontend/src/metabase/components/ArchiveModal.jsx:35 -#: frontend/src/metabase/components/ConfirmContent.jsx:18 -#: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 -#: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 -#: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 -#: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 -#: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 -#: frontend/src/metabase/reference/components/EditHeader.jsx:34 -#: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 -msgid "Cancel" -msgstr "Відмінити" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:83 -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:124 -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:135 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 -msgid "Delete" -msgstr "Вилучити" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 -msgid "Databases" -msgstr "Бази даних" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 -msgid "Add Database" -msgstr "Додати базу даних" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 -msgid "Connection" -msgstr "З'єднаннÑ" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 -msgid "Scheduling" -msgstr "Розклад" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 -#: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:184 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:356 -#: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:47 -msgid "Save changes" -msgstr "Зберегти зміни" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 -msgid "Actions" -msgstr "Дії" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 -msgid "Sync database schema now" -msgstr "Синхронізувати Ñтруктуру БД" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:95 -msgid "Starting…" -msgstr "Починаю..." - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 -msgid "Failed to sync" -msgstr "Помилка Ñинхронізації" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 -msgid "Sync triggered!" -msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð¿Ð¾Ñ‡Ð°Ð»Ð°ÑÑ!" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 -msgid "Re-scan field values now" -msgstr "ПереÑканувати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð²" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 -msgid "Failed to start scan" -msgstr "Ðеможливо розпочати ÑкануваннÑ" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 -msgid "Scan triggered!" -msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ð»Ð¾ÑÑ!" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 -msgid "Danger Zone" -msgstr "Ðебезпечна зона" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 -msgid "Discard saved field values" -msgstr "Скинути збережені Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð²" - -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 -msgid "Remove this database" -msgstr "Вилучити цю базу даних" - -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:76 -msgid "Add database" -msgstr "Додати базу даних" - -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 -#: frontend/src/metabase/entities/collections.js:94 -#: frontend/src/metabase/entities/dashboards.js:142 -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 -msgid "Name" -msgstr "Ім'Ñ" - -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:89 -msgid "Engine" -msgstr "Рушій" - -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:118 -msgid "Deleting..." -msgstr "ВилученнÑ..." - -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:148 -msgid "Loading ..." -msgstr "ЗавантаженнÑ..." - -#: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:164 -msgid "Bring the sample dataset back" -msgstr "Відновити зразки наборів даних" - -#: frontend/src/metabase/admin/databases/database.js:175 -msgid "Couldn't connect to the database. Please check the connection details." -msgstr "Ðеможливо з'єднатиÑÑ Ð· базою даних. Будь лаÑка, перевірте Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·'єднаннÑ." - -#: frontend/src/metabase/admin/databases/database.js:383 -msgid "Successfully created!" -msgstr "УÑпішно Ñтворено!" - -#: frontend/src/metabase/admin/databases/database.js:393 -msgid "Successfully saved!" -msgstr "УÑпішно збережено!" - -#: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 -#: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 -msgid "Edit" -msgstr "Редагувати" - -#: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:59 -msgid "Revision History" -msgstr "Журнал змін" - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:32 -msgid "Retire this {0}?" -msgstr "Прибрати {0}?" - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:37 -msgid "Saved questions and other things that depend on this {0} will continue to work, but this {1} will no longer be selectable from the query builder." -msgstr "Збережені Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ– інші Ñкладові, Ñкі залежать від {0}, продовжать працювати, але {1} вже не можна буде вибрати у майÑтрі запитів." - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:38 -msgid "If you're sure you want to retire this {0}, please write a quick explanation of why it's being retired:" -msgstr "Якщо ви впевнені, що хочете прибрати {0}, будь лаÑка, напишіть коротке поÑÑÐ½ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¸Ñ… дій:" - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:42 -msgid "This will show up in the activity feed and in an email that will be sent to anyone on your team who created something that uses this {0}." -msgstr "Це буде відображено в ÑпиÑку дій Ñ– в повідомленнÑÑ…, Ñкі будуть відправлені будь кому з вашої команди, хто Ñтворив щоÑÑŒ, що викориÑтовує {0}." - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:57 -msgid "Retire" -msgstr "Прибрати" - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:58 -msgid "Retiring…" -msgstr "ВидаленнÑ..." - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:59 -msgid "Failed" -msgstr "Завершено з помилкою" - -#: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:60 -msgid "Success" -msgstr "Завершено уÑпішно" - -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 -#: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 -msgid "Preview" -msgstr "Попередній переглÑд" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:90 -msgid "No column description yet" -msgstr "ÐžÐ¿Ð¸Ñ ÑÑ‚Ð¾Ð²Ð¿Ñ†Ñ Ð²Ñ–Ð´Ñутній" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:123 -msgid "Select a field visibility" -msgstr "Виберіть видиміÑÑ‚ÑŒ полÑ" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:193 -msgid "No special type" -msgstr "Без Ñпеціального типу" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:148 -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 -msgid "Other" -msgstr "Інше" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:220 -msgid "Select a special type" -msgstr "Вибрати Ñпеціальний тип" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:265 -msgid "Select a target" -msgstr "Вибрати призначеннÑ" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:17 -#: frontend/src/metabase/query_builder/components/notebook/steps/FieldsPicker.jsx:22 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:82 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:94 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:125 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:162 -msgid "Columns" -msgstr "Стовпці" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:22 -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:46 -msgid "Column" -msgstr "Стовпець" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 -msgid "Visibility" -msgstr "ВидиміÑÑ‚ÑŒ" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:25 -msgid "Type" -msgstr "Тип" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataHeader.jsx:104 -msgid "Current database:" -msgstr "Поточна база даних:" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataHeader.jsx:109 -msgid "Show original schema" -msgstr "Показати оригінальну Ñхему" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:47 -msgid "Data Type" -msgstr "Тип даних" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchema.jsx:48 -msgid "Additional Info" -msgstr "Додаткова інформаціÑ" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchemaList.jsx:46 -msgid "Find a schema" -msgstr "Знайти Ñхему" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataSchemaList.jsx:53 -msgid "{0} schema" -msgid_plural "{0} schemas" -msgstr[0] "{0} Ñхема" -msgstr[1] "{0} Ñхем" -msgstr[2] "{0} Ñхем" -msgstr[3] "{0} Ñхеми" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:103 -msgid "Why Hide?" -msgstr "Ðавіщо приховувати?" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:104 -msgid "Technical Data" -msgstr "Технічні дані" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:105 -msgid "Irrelevant/Cruft" -msgstr "Ðе важливо / Мотлох" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:111 -msgid "Queryable" -msgstr "ДоÑтупно в запитах" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:112 -msgid "Hidden" -msgstr "Приховано" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:138 -msgid "No table description yet" -msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð±ÐµÐ· опиÑу" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:124 -msgid "Metadata Strength" -msgstr "ÑкладніÑÑ‚ÑŒ метаданих" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:83 -msgid "{0} Queryable Table" -msgid_plural "{0} Queryable Tables" -msgstr[0] "{0} доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ таблицÑ" -msgstr[1] "{0} доÑтупних Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ таблиць" -msgstr[2] "{0} доÑтупних Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ таблиць" -msgstr[3] "{0} доÑтупних Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ таблиць" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:92 -msgid "{0} Hidden Table" -msgid_plural "{0} Hidden Tables" -msgstr[0] "{0} прихована таблицÑ" -msgstr[1] "{0} прихованих таблиць" -msgstr[2] "{0} прихованих таблиць" -msgstr[3] "{0} прихованих таблиць" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:109 -msgid "Find a table" -msgstr "Знайти таблицю" - -#: frontend/src/metabase/admin/datamodel/components/database/MetadataTableList.jsx:122 -msgid "Schemas" -msgstr "Схеми" - -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 -#: frontend/src/metabase/reference/metrics/MetricList.jsx:63 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 -msgid "Metrics" -msgstr "Метрики" - -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 -msgid "Add a Metric" -msgstr "Додати Метрику" - -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 -#: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 -msgid "Definition" -msgstr "ВизначеннÑ" - -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 -msgid "Create metrics to add them to the View dropdown in the query builder" -msgstr "Створити метрики Ð´Ð»Ñ Ñ—Ñ… Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñƒ випадаюче меню майÑтра запитів" - -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 -#: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 -#: frontend/src/metabase/reference/segments/SegmentList.jsx:62 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:21 -msgid "Segments" -msgstr "Сегменти" - -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 -msgid "Add a Segment" -msgstr "Додати Сегмент" - -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 -msgid "Create segments to add them to the Filter dropdown in the query builder" -msgstr "Створити Ñегменти Ð´Ð»Ñ Ñ—Ñ… Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñƒ випадаюче меню фільтра майÑтра запитів" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:24 -msgid "created" -msgstr "Ñтворено" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:27 -msgid "reverted to a previous version" -msgstr "повернута Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñ" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:33 -msgid "edited the title" -msgstr "змінений заголовок" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:35 -msgid "edited the description" -msgstr "змінений опиÑ" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:37 -msgid "edited the " -msgstr "змінено" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:40 -msgid "made some changes" -msgstr "зроблені деÑкі зміни" - -#: frontend/src/metabase/admin/datamodel/components/revisions/Revision.jsx:49 -#: frontend/src/metabase/home/components/Activity.jsx:82 -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:333 -msgid "You" -msgstr "ви" - -#: frontend/src/metabase/admin/datamodel/components/revisions/RevisionHistory.jsx:39 -msgid "Datamodel" -msgstr "модель даних" - -#: frontend/src/metabase/admin/datamodel/components/revisions/RevisionHistory.jsx:42 -msgid " History" -msgstr "ІÑторіÑ" - -#: frontend/src/metabase/admin/datamodel/components/revisions/RevisionHistory.jsx:47 -msgid "Revision History for" -msgstr "ІÑÑ‚Ð¾Ñ€Ñ–Ñ Ð·Ð¼Ñ–Ð½ за" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 -msgid "{0} – Field Settings" -msgstr "{0} - уÑтановки полÑ" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 -msgid "Where this field will appear throughout Metabase" -msgstr "Де це поле буде відображено в ÑиÑтемі" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 -msgid "Filtering on this field" -msgstr "Ð¤Ñ–Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ñ†ÑŒÐ¾Ð³Ð¾ полÑ" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 -msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" -msgstr "Якщо це поле викориÑтовуєтьÑÑ Ñк фільтр, Ñкий вид інформації повинні викориÑтовувати кориÑтувачі Ð´Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ñ–Ñ—?" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 -msgid "No description for this field yet" -msgstr "Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ Ð¿Ð¾ÐºÐ¸ немає опиÑу" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:388 -msgid "Original value" -msgstr "Оригінальне значеннÑ" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:389 -msgid "Mapped value" -msgstr "Пов'Ñзане значеннÑ" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:432 -msgid "Enter value" -msgstr "Введіть значеннÑ" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:25 -msgid "Use original value" -msgstr "ВикориÑтовувати початкове значеннÑ" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:26 -msgid "Use foreign key" -msgstr "ВикориÑтовувати зовнішній ключ" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:27 -msgid "Custom mapping" -msgstr "ВлаÑний зв'Ñзок" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:55 -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:161 -msgid "Unrecognized mapping type" -msgstr "Ðерозпізнаний вид зв'Ñзку" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:89 -msgid "Current field isn't a foreign key or FK target table metadata is missing" -msgstr "Дане поле не Ñ” зовнішнім ключем або зовнішній ключ цільової таблиці метаданих відÑутній" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:196 -msgid "The selected field isn't a foreign key" -msgstr "Обраний поле не Ñ” зовнішньому ключем" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 -msgid "Display values" -msgstr "Показати значеннÑ" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 -msgid "Choose to show the original value from the database, or have this field display associated or custom information." -msgstr "Виберіть, що відобразити в поле: початкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· бази даних, аÑоційовану або іншу налаштовувану інформацію." - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:277 -msgid "Choose a field" -msgstr "Виберіть поле" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:298 -msgid "Please select a column to use for display." -msgstr "Будь лаÑка, виберіть Ñтовпець Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ." - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:771 -msgid "Tip:" -msgstr "Підказка:" - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:442 -msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." -msgstr "Можливо, ви захочете відновити Ð½Ð°Ð¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñ, щоб переконатиÑÑ, що воно відповідає обраному варіанту Ð¿ÐµÑ€ÐµÐ¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð²'Ñзку." - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 -msgid "Cached field values" -msgstr "Кешовані Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð²" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 -msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." -msgstr "Metabase може Ñканувати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ Ñ– включити можливіÑÑ‚ÑŒ викориÑÑ‚Ð°Ð½Ð½Ñ checkbox-фільтрів на панелі індикаторів Ñ– в питаннÑÑ…." - -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:14 -msgid "Re-scan this field" -msgstr "ПереÑканувати це поле" - -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:22 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:94 -msgid "Discard cached field values" -msgstr "Скинути ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð²" - -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:24 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:96 -msgid "Failed to discard values" -msgstr "Чи не вдалоÑÑ Ñкинути значеннÑ" - -#: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:25 -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:97 -msgid "Discard triggered!" -msgstr "Ð¡ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ почавÑÑ!" - -#: frontend/src/metabase/admin/datamodel/containers/MetadataEditorApp.jsx:116 -msgid "Select any table to see its schema and add or edit metadata." -msgstr "Вибрати базу даних щоб побачити Ñ—Ñ— Ñхему або змінити метадані." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 -#: frontend/src/metabase/entities/collections.js:97 -msgid "Name is required" -msgstr "ім'Ñ Ð¾Ð±Ð¾Ð²'Ñзково" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 -msgid "Description is required" -msgstr "Ð¾Ð¿Ð¸Ñ Ð¾Ð±Ð¾Ð²'Ñзково" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 -msgid "Revision message is required" -msgstr "ÐžÐ¿Ð¸Ñ Ð²Ð½ÐµÑених змін обов'Ñзково" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 -msgid "Aggregation is required" -msgstr "Ð°Ð³Ñ€ÐµÐ³Ð°Ñ†Ñ–Ñ Ð¾Ð±Ð¾Ð²'Ñзкове" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 -msgid "Edit Your Metric" -msgstr "Змінити Вашу Метрику" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 -msgid "Create Your Metric" -msgstr "Створити Вашу Метрику" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 -msgid "Make changes to your metric and leave an explanatory note." -msgstr "ВнеÑÑ–Ñ‚ÑŒ зміни в метрику Ñ– залиште до них поÑÑненнÑ." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 -msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." -msgstr "Можна Ñтворити збережені метрики, щоб додати в цю таблицю параметр іменованої метрики. Збережені метрики включають тип агрегації, агреговане поле Ñ–, при необхідноÑÑ‚Ñ–, будь-Ñкий фільтр, Ñкий ви додаÑте. Ðаприклад, ви можете викориÑтовувати Ñ—Ñ…, щоб Ñтворити щоÑÑŒ на зразок єдиного офіційного ÑпоÑобу обчиÑÐ»ÐµÐ½Ð½Ñ \"Середньої ціни\" Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– \"ЗамовленнÑ\"." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 -msgid "Result: " -msgstr "результати:" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 -msgid "Name Your Metric" -msgstr "Ðазвіть вашу Метрику" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 -msgid "Give your metric a name to help others find it." -msgstr "Дайте ім'Ñ Ð²Ð°ÑˆÑ–Ð¹ метриці, щоб інші кориÑтувачі змогли Ñ—Ñ— знайти." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 -msgid "Something descriptive but not too long" -msgstr "Що-небудь опиÑову, але не занадто довге" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 -msgid "Describe Your Metric" -msgstr "Опишіть вашу Метрику" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 -msgid "Give your metric a description to help others understand what it's about." -msgstr "Вкажіть Ð¾Ð¿Ð¸Ñ Ð²Ð°ÑˆÐ¾Ñ— метрики, щоб допомогти іншим зрозуміти про що вона." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 -msgid "This is a good place to be more specific about less obvious metric rules" -msgstr "Саме Ñ‡Ð°Ñ Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆ конкретних даних щодо найменш очевидних метричних правил" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 -msgid "Reason For Changes" -msgstr "Причина змін" - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 -msgid "Leave a note to explain what changes you made and why they were required." -msgstr "Залиште Ð¾Ð¿Ð¸Ñ Ð²Ð½ÐµÑених вами змін Ñ– чому вони були необхідні." - -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 -msgid "This will show up in the revision history for this metric to help everyone remember why things changed" -msgstr "Дане Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð·'ÑвитьÑÑ Ð² Ñ–Ñторії змін метрики Ñ– допоможе вÑім відновити хід подій" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:47 -msgid "At least one filter is required" -msgstr "Ðеобхідний Ñк мінімум один фільтр" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:106 -msgid "Edit Your Segment" -msgstr "Змінити ваш Сегмент" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:106 -msgid "Create Your Segment" -msgstr "Створити ваш Сегмент" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 -msgid "Make changes to your segment and leave an explanatory note." -msgstr "ВнеÑÑ–Ñ‚ÑŒ зміни в ваш Ñегмент Ñ– залиште до них поÑÑненнÑ." - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:109 -msgid "Select and add filters to create your new segment for the {0} table" -msgstr "Виберіть Ñ– додайте фільтри Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ нового Ñегмента до таблиці {0}" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 -msgid "Name Your Segment" -msgstr "Задайте ім'Ñ Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ Сегмента" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 -msgid "Give your segment a name to help others find it." -msgstr "Задайте ім'Ñ Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ Ñегмента, щоб інші змогли його знайти." - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 -msgid "Describe Your Segment" -msgstr "Опишіть ваш Сегмент" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 -msgid "Give your segment a description to help others understand what it's about." -msgstr "Вкажіть Ð¾Ð¿Ð¸Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ Ñегменту, щоб допомогти іншим зрозуміти про що він." - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 -msgid "This is a good place to be more specific about less obvious segment rules" -msgstr "Це ідеальне міÑце, щоб бути більш конкретним щодо менш очевидних правил Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñегмента" - -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 -msgid "This will show up in the revision history for this segment to help everyone remember why things changed" -msgstr "Дане Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð·'ÑвитьÑÑ Ð² Ñ–Ñторії змін Ñегмента Ñ– допоможе вÑім відновити хід подій" - -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 -#: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 -msgid "Settings" -msgstr "ÐалаштуваннÑ" - -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:81 -msgid "Metabase can scan the values in this table to enable checkbox filters in dashboards and questions." -msgstr "Metabase може Ñканувати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð² цій таблиці Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб увімкнути фільтри прапорців Ð´Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ñ–Ð² в панелі інÑтрументів Ñ– запитів." - -#: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:86 -msgid "Re-scan this table" -msgstr "ПереÑканувати цю таблицю" - -#: frontend/src/metabase/admin/people/components/AddRow.jsx:34 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 -msgid "Add" -msgstr "Додати" - -#: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 -msgid "Not a valid formatted email address" -msgstr "Email вказано невірно" - -#: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 -msgid "First name" -msgstr "Ім'Ñ" - -#: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 -msgid "Last name" -msgstr "Прізвище" - -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 -#: frontend/src/metabase/components/NewsletterForm.jsx:94 -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 -msgid "Email address" -msgstr "ÐдреÑа електронної пошти" - -#: frontend/src/metabase/admin/people/components/EditUserForm.jsx:202 -msgid "Permission Groups" -msgstr "Групи Дозволів" - -#: frontend/src/metabase/components/form/widgets/FormGroupsWidget.jsx:75 -msgid "Make this user an admin" -msgstr "Призначити адмініÑтратором" - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:34 -msgid "All users belong to the {0} group and can't be removed from it. Setting permissions for this group is a great way to\n" -"make sure you know what new Metabase users will be able to see." -msgstr "Ð’ÑÑ– кориÑтувачі входÑÑ‚ÑŒ в групу {0} Ñ– не можуть бути з неї виключені. Ð’Ñтановіть дозволу Ð´Ð»Ñ Ð´Ð°Ð½Ð¾Ñ— групи - так ви будете впевнені в тому, що зможуть побачити нові кориÑтувачі Metabase." - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:43 -msgid "This is a special group whose members can see everything in the Metabase instance, and who can access and make changes to the\n" -"settings in the Admin Panel, including changing permissions! So, add people to this group with care." -msgstr "Це Ñпеціальна група, члени Ñкої зможуть бачити вÑÑ–, що пов'Ñзано з даними екземплÑром Metabase, мати доÑтуп Ñ– редагувати наÑтройки в Панелі адмініÑтратора, включаючи повноваженнÑ! Тому включайте кориÑтувачів до цієї групи дотримуючиÑÑŒ запобіжних заходів." - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:47 -msgid "To make sure you don't get locked out of Metabase, there always has to be at least one user in this group." -msgstr "У даній групі повинен залишатиÑÑ Ñ…Ð¾Ñ‡Ð° б один кориÑтувач, інакше доÑтуп до Metabase буде блокований." - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:187 -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:218 -msgid "Members" -msgstr "УчаÑники" - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:187 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:125 -#: frontend/src/metabase/admin/settings/selectors.js:110 -#: frontend/src/metabase/entities/users.js:50 -#: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 -msgid "Email" -msgstr "Email" - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:213 -msgid "A group is only as good as its members." -msgstr "Група також хороша, Ñк Ñ– Ñ—Ñ— члени." - -#: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 -msgid "Admin" -msgstr "ÐдмініÑтратор" - -#: frontend/src/metabase/admin/people/components/GroupSummary.jsx:16 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:245 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:303 -msgid "and" -msgstr "Ñ–" - -#: frontend/src/metabase/admin/people/components/GroupSummary.jsx:19 -#: frontend/src/metabase/admin/people/components/GroupSummary.jsx:31 -msgid "{0} other group" -msgid_plural "{0} other groups" -msgstr[0] "{0} інша група" -msgstr[1] "{0} прочие группы" -msgstr[2] "{0} прочих групп" -msgstr[3] "{0} прочих групп" - -#: frontend/src/metabase/admin/people/components/GroupSummary.jsx:37 -msgid "Default" -msgstr "За замовчуваннÑм" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:39 -msgid "Something like \"Marketing\"" -msgstr "Ðаприклад, \"Маркетинг\"" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:58 -msgid "Remove this group?" -msgstr "Видалити цю групу?" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:60 -msgid "Are you sure? All members of this group will lose any permissions settings they have based on this group.\n" -"This can't be undone." -msgstr "Ви впевнені? Ð’ÑÑ– учаÑники цієї групи втратÑÑ‚ÑŒ вÑÑ– Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ñновані на цій групі. Дана Ð´Ñ–Ñ Ð½Ðµ може бути ÑкаÑовано." - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:71 -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:43 -#: frontend/src/metabase/components/ConfirmContent.jsx:17 -msgid "Yes" -msgstr "Так" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:74 -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:43 -msgid "No" -msgstr "немає" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:92 -msgid "Edit Name" -msgstr "Змінити ім'Ñ" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:95 -msgid "Remove Group" -msgstr "видалити групу" - -#: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:46 -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:138 -#: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:42 -#: frontend/src/metabase/admin/people/containers/UserSuccessModal.jsx:41 -#: frontend/src/metabase/components/HeaderModal.jsx:43 -#: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 -#: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 -#: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 -msgid "Done" -msgstr "Готово" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:218 -msgid "Group name" -msgstr "Ім'Ñ Ð³Ñ€ÑƒÐ¿Ð¸" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 -msgid "Groups" -msgstr "Групи" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:364 -msgid "Create a group" -msgstr "Створити групу" - -#: frontend/src/metabase/admin/people/components/GroupsListing.jsx:370 -msgid "You can use groups to control your users' access to your data. Put users in groups and then go to the Permissions section to control each group's access. The Administrators and All Users groups are special default groups that can't be removed." -msgstr "Ви можете викориÑтовувати групи Ð´Ð»Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŽ ваших кориÑтувачів надають допуÑк до даних. Додайте кориÑтувачів до групи Ñ– потім керуйте повноважень груп в розділі Дозволи. Групи ÐдмініÑтратори Ñ– Ð’ÑÑ– кориÑтувачі Ñ” Ñпеціальними типами груп Ñ– не можуть бути видалені." - -#: frontend/src/metabase/admin/people/components/UserActionsSelect.jsx:79 -msgid "Edit Details" -msgstr "Змінити Деталі" - -#: frontend/src/metabase/admin/people/components/UserActionsSelect.jsx:85 -msgid "Re-send Invite" -msgstr "ÐадіÑлати Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð·Ð°Ð½Ð¾Ð²Ð¾" - -#: frontend/src/metabase/admin/people/components/UserActionsSelect.jsx:90 -msgid "Reset Password" -msgstr "Скинути пароль" - -#: frontend/src/metabase/admin/people/containers/UserActivationModal.jsx:40 -msgid "Deactivate" -msgstr "деактивувати" - -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 -msgid "People" -msgstr "Люди" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:192 -msgid "Who do you want to add?" -msgstr "Кого ви хочете додати?" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:207 -msgid "Edit {0}'s details" -msgstr "Змінити деталі {0}" - -#: frontend/src/metabase/admin/people/containers/UserSuccessModal.jsx:40 -msgid "{0} has been added" -msgstr "{0} був доданий" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:224 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:262 -msgid "Add another person" -msgstr "Додати іншу людину" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:231 -msgid "We couldn’t send them an email invitation,\n" -"so make sure to tell them to log in using {0}\n" -"and this password we’ve generated for them:" -msgstr "Ми не змогли відправити їм Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð¿Ð¾ електронній пошті, тому запропонуйте увійти з ім'Ñм {0} Ñ– наÑтупним згенерував нами паролем:" - -#: frontend/src/metabase/admin/people/containers/UserSuccessModal.jsx:73 -msgid "If you want to be able to send email invites, just go to the {0} page." -msgstr "Якщо ви хочете мати можливіÑÑ‚ÑŒ відправлÑти Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð¿Ð¾ email, проÑто перейдіть на Ñторінку {0}." - -#: frontend/src/metabase/admin/people/containers/UserSuccessModal.jsx:55 -msgid "We’ve sent an invite to {0} with instructions to set their password." -msgstr "Ми надіÑлали Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð´Ð»Ñ {0} з інÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ Ð¿Ð¾ уÑтановці паролÑ." - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:283 -msgid "We've re-sent {0}'s invite" -msgstr "Ми переотправілі Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ {0}" - -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 -msgid "Okay" -msgstr "добре" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:289 -msgid "Any previous email invites they have will no longer work." -msgstr "Ð’ÑÑ– попередні email-Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð½Ð¸Ñ… більш не працюють." - -#: frontend/src/metabase/admin/people/containers/UserActivationModal.jsx:31 -msgid "Deactivate {0}?" -msgstr "Деактивувати {0}?" - -#: frontend/src/metabase/admin/people/containers/UserActivationModal.jsx:34 -msgid "{0} won't be able to log in anymore." -msgstr "{0} не зможе більше зайти." - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:320 -msgid "Reactivate {0}'s account?" -msgstr "Повторно активувати обліковий Ð·Ð°Ð¿Ð¸Ñ {0}?" - -#: frontend/src/metabase/admin/people/containers/UserActivationModal.jsx:58 -msgid "Reactivate" -msgstr "повторно активувати" - -#: frontend/src/metabase/admin/people/containers/UserActivationModal.jsx:51 -msgid "They'll be able to log in again, and they'll be placed back into the groups they were in before their account was deactivated." -msgstr "Вони зможуть зайти знову, Ñ– їм будуть повернуті вÑÑ– групи, до Ñкому ÑтавилиÑÑ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ñ– запиÑи до деактивації." - -#: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:51 -msgid "Reset {0}'s password?" -msgstr "Скинути пароль Ð´Ð»Ñ {0}?" - -#: frontend/src/metabase/components/form/StandardForm.jsx:78 -msgid "Reset" -msgstr "Ñкинути" - -#: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:54 -#: frontend/src/metabase/components/ConfirmContent.jsx:13 -#: frontend/src/metabase/dashboard/components/ArchiveDashboardModal.jsx:18 -msgid "Are you sure you want to do this?" -msgstr "Ви впевнені що хочете виконати цю дію?" - -#: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:41 -msgid "{0}'s password has been reset" -msgstr "Пароль {0} був Ñкинутий" - -#: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:45 -msgid "Here’s a temporary password they can use to log in and then change their password." -msgstr "Це тимчаÑовий пароль, з Ñким вони зможуть зайти Ñ– вÑтановити Ñвій пароль." - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:388 -msgid "We've sent them an email with instructions for creating a new password." -msgstr "Ми відправили Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾Ñ— пошти з інÑтрукцією по уÑтановці нового паролÑ." - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:102 -msgid "Active" -msgstr "активний" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:103 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:128 -msgid "Deactivated" -msgstr "неактивний" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:116 -msgid "Add someone" -msgstr "Додати кого-небудь" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:133 -msgid "Last Login" -msgstr "ОÑтанній вхід" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 -msgid "Signed up via Google" -msgstr "Вхід за допомогою Google" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 -msgid "Signed up via LDAP" -msgstr "Вхід за допомогою LDAP" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 -msgid "Reactivate this account" -msgstr "Повторно активувати цей обліковий запиÑ" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 -msgid "Never" -msgstr "ніколи" - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:31 -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} table" -msgid_plural "{0} tables" -msgstr[0] "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ {0}" -msgstr[1] "{0} таблицы" -msgstr[2] "{0} таблиц" -msgstr[3] "{0} таблиц" - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:49 -msgid " will be " -msgstr "будуть" - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:52 -msgid "given access to" -msgstr "надано доÑтуп до" - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:57 -#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:26 -#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:36 -msgid " and " -msgstr "Ñ–" - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:60 -msgid "denied access to" -msgstr "доÑтуп заборонений длÑ" - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:74 -msgid " will no longer be able to " -msgstr "ніколи не зможуть" - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:75 -msgid " will now be able to " -msgstr "тепер зможуть" - -#: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:83 -msgid " native queries for " -msgstr "прÑмі запити до" - -#: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 -msgid "Permissions" -msgstr "Дозволи" - -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:32 -msgid "Save permissions?" -msgstr "Зберегти дозволи?" - -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:38 -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:161 -msgid "Save Changes" -msgstr "Зберегти зміни" - -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:44 -msgid "Discard changes?" -msgstr "Відмінити зміни?" - -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:46 -msgid "No changes to permissions will be made." -msgstr "ÐÑ–Ñких змін доÑтупу виконано не буде." - -#: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:65 -msgid "You've made changes to permissions." -msgstr "Ви внеÑли зміни в Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупу." - -#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:55 -msgid "Permissions for this collection" -msgstr "Дозволи Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— колекції" - -#: frontend/src/metabase/admin/permissions/containers/PermissionsApp.jsx:56 -msgid "You have unsaved changes" -msgstr "У Ð²Ð°Ñ Ñ” незбережені зміни" - -#: frontend/src/metabase/admin/permissions/containers/PermissionsApp.jsx:57 -msgid "Do you want to leave this page and discard your changes?" -msgstr "Ви дійÑно бажаєте залишити цю Ñторінку Ñ– ÑкаÑувати зміни?" - -#: frontend/src/metabase/admin/permissions/permissions.js:126 -msgid "Sorry, an error occurred." -msgstr "Вибачте, виникла помилка." - -#: frontend/src/metabase/admin/permissions/selectors.js:65 -msgid "Administrators always have the highest level of access to everything in Metabase." -msgstr "ÐдмініÑтратори завжди мають найвищий пріоритет доÑтупу до вÑього в Metabase." - -#: frontend/src/metabase/admin/permissions/selectors.js:67 -msgid "Every Metabase user belongs to the All Users group. If you want to limit or restrict a group's access to something, make sure the All Users group has an equal or lower level of access." -msgstr "Кожен кориÑтувач Metabase відноÑитьÑÑ Ð´Ð¾ групи Ð’ÑÑ– кориÑтувачі. Якщо ви хочете обмежити доÑтуп групи до чого-небудь, переконайтеÑÑ Ñ‰Ð¾ група Ð’ÑÑ– кориÑтувачі має рівний або менший рівень доÑтупу." - -#: frontend/src/metabase/admin/permissions/selectors.js:69 -msgid "MetaBot is Metabase's Slack bot. You can choose what it has access to here." -msgstr "MetaBot це Slack бот Metabase. Тут ви можете вибрати до чого він буде мати доÑтуп." - -#: frontend/src/metabase/admin/permissions/selectors.js:122 -msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." -msgstr "Група \"{0}\" має доÑтуп до інших {1}, ніж дана група, що дозволить їй отримати доÑтуп до {2}." - -#: frontend/src/metabase/admin/permissions/selectors.js:127 -msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." -msgstr "Група \"{0}\" має більший рівень доÑтупу, ніж цей, що перевизначити цей параметр. Вам Ñлід обмежити або відкликати доÑтуп групи \"{1}\" до даного елементу." - -#: frontend/src/metabase/admin/permissions/selectors.js:157 -msgid "Limit" -msgstr "обмеженнÑ" - -#: frontend/src/metabase/admin/permissions/selectors.js:157 -msgid "Revoke" -msgstr "відкликати" - -#: frontend/src/metabase/admin/permissions/selectors.js:159 -msgid "access even though \"{0}\" has greater access?" -msgstr "доÑтуп, навіть Ñкщо \"{0}\" має більший доÑтуп?" - -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 -msgid "Limit access" -msgstr "обмежити доÑтуп" - -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 -msgid "Revoke access" -msgstr "відкликати доÑтуп" - -#: frontend/src/metabase/admin/permissions/selectors.js:171 -msgid "Change access to this database to limited?" -msgstr "Обмежити доÑтуп до цієї бази даних?" - -#: frontend/src/metabase/admin/permissions/selectors.js:172 -msgid "Change" -msgstr "змінити" - -#: frontend/src/metabase/admin/permissions/selectors.js:185 -msgid "Allow Raw Query Writing?" -msgstr "Дозволити напиÑÐ°Ð½Ð½Ñ Ð¿Ñ€Ñмих запитів?" - -#: frontend/src/metabase/admin/permissions/selectors.js:186 -msgid "This will also change this group's data access to Unrestricted for this database." -msgstr "Це також надаÑÑ‚ÑŒ цій групі Ðеобмежений доÑтуп до бази даних." - -#: frontend/src/metabase/admin/permissions/selectors.js:187 -msgid "Allow" -msgstr "Дозволити" - -#: frontend/src/metabase/admin/permissions/selectors.js:224 -msgid "Revoke access to all tables?" -msgstr "Відкликати доÑтуп до вÑÑ–Ñ… таблиць?" - -#: frontend/src/metabase/admin/permissions/selectors.js:225 -msgid "This will also revoke this group's access to raw queries for this database." -msgstr "Це також відкличе доÑтуп групи до прÑмих запитам до бази даних." - -#: frontend/src/metabase/admin/permissions/selectors.js:254 -msgid "Grant unrestricted access" -msgstr "Ðадати необмежений доÑтуп" - -#: frontend/src/metabase/admin/permissions/selectors.js:255 -msgid "Unrestricted access" -msgstr "необмежений доÑтуп" - -#: frontend/src/metabase/admin/permissions/selectors.js:262 -msgid "Limited access" -msgstr "Обмежений доÑтуп" - -#: frontend/src/metabase/admin/permissions/selectors.js:270 -msgid "No access" -msgstr "Ðемає доÑтупу" - -#: frontend/src/metabase/admin/permissions/selectors.js:276 -msgid "Write raw queries" -msgstr "ÐапиÑÐ°Ð½Ð½Ñ Ð¿Ñ€Ñмих запитів" - -#: frontend/src/metabase/admin/permissions/selectors.js:277 -msgid "Can write raw queries" -msgstr "Може пиÑати прÑмі запити" - -#: frontend/src/metabase/admin/permissions/selectors.js:284 -msgid "Curate collection" -msgstr "управлÑти колекцією" - -#: frontend/src/metabase/admin/permissions/selectors.js:291 -msgid "View collection" -msgstr "ПодивитиÑÑ ÐºÐ¾Ð»ÐµÐºÑ†Ñ–ÑŽ" - -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 -msgid "Data Access" -msgstr "ДоÑтуп до даних" - -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 -msgid "View tables" -msgstr "ПодивитиÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ–" - -#: frontend/src/metabase/admin/permissions/selectors.js:593 -msgid "SQL Queries" -msgstr "SQL запити" - -#: frontend/src/metabase/admin/permissions/selectors.js:663 -msgid "View schemas" -msgstr "ПодивитиÑÑ Ñхеми" - -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 -msgid "Data Model" -msgstr "модель даних" - -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:11 -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:118 -msgid "Sign in with Google" -msgstr "Увійти за допомогою Google" - -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:12 -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:120 -msgid "Allows users with existing Metabase accounts to login with a Google account that matches their email address in addition to their Metabase username and password." -msgstr "Дозволити кориÑтувачам з Ñ–Ñнуючими Metabase акаунтами входити за допомогою Google акаунтів при збігу email адреÑ, в додаток до Ñ—Ñ… Metabase логіну та паролю." - -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:16 -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:27 -#: frontend/src/metabase/components/ChannelSetupMessage.jsx:32 -msgid "Configure" -msgstr "налаштувати" - -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:22 -#: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:13 -#: frontend/src/metabase/admin/settings/selectors.js:204 -msgid "LDAP" -msgstr "LDAP" - -#: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:23 -msgid "Allows users within your LDAP directory to log in to Metabase with their LDAP credentials, and allows automatic mapping of LDAP groups to Metabase groups." -msgstr "ДозволÑÑ” кориÑтувачам в каталозі LDAP входити в Metabase з обліковими даними LDAP, а також автоматично пов'Ñзує групи LDAP з групами Metabase." - -#: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:17 -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:69 -#: frontend/src/metabase/admin/settings/selectors.js:157 -msgid "That's not a valid email address" -msgstr "Це не дійÑний email адреÑа" - -#: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:21 -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:73 -msgid "That's not a valid integer" -msgstr "Це не правильна ціле чиÑло" - -#: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:28 -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:161 -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:223 -msgid "Changes saved!" -msgstr "зміни збережені" - -#: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:157 -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:132 -msgid "Looks like we ran into some problems" -msgstr "Схоже, ми зіткнулиÑÑ Ð· деÑкими проблемами" - -#: frontend/src/metabase/admin/settings/components/SettingsEmailForm.jsx:12 -msgid "Send test email" -msgstr "ÐадіÑлати пробний email" - -#: frontend/src/metabase/admin/settings/components/SettingsEmailForm.jsx:13 -msgid "Sending..." -msgstr "Ð’Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ ..." - -#: frontend/src/metabase/admin/settings/components/SettingsEmailForm.jsx:14 -msgid "Sent!" -msgstr "Відправлено!" - -#: frontend/src/metabase/admin/settings/components/SettingsEmailForm.jsx:82 -msgid "Clear" -msgstr "ОчиÑтити" - -#: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:12 -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:113 -#: frontend/src/metabase/admin/settings/selectors.js:199 -msgid "Authentication" -msgstr "ÐутентифікаціÑ" - -#: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:18 -msgid "Server Settings" -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñервера" - -#: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:29 -msgid "User Schema" -msgstr "Призначена Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Схема" - -#: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:33 -msgid "Attributes" -msgstr "атрибути" - -#: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:42 -msgid "Group Schema" -msgstr "Схема Групи" - -#: frontend/src/metabase/admin/settings/components/SettingsSetting.jsx:28 -msgid "Using " -msgstr "викориÑтовуючи" - -#: frontend/src/metabase/admin/settings/components/SettingsSetupList.jsx:105 -msgid "Getting set up" -msgstr "Ðалаштовуємо" - -#: frontend/src/metabase/admin/settings/components/SettingsSetupList.jsx:106 -msgid "A few things you can do to get the most out of Metabase." -msgstr "ОÑÑŒ що ви можете зробити, щоб отримати з Metabase макÑимум." - -#: frontend/src/metabase/admin/settings/components/SettingsSetupList.jsx:115 -msgid "Recommended next step" -msgstr "Рекомендований наÑтупний крок" - -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:114 -msgid "Google Sign-In" -msgstr "Увійти за допомогою Google" - -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:123 -msgid "To allow users to sign in with Google you'll need to give Metabase a Google Developers console application client ID. It only takes a few steps and instructions on how to create a key can be found {0}" -msgstr "Ð”Ð»Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»Ñƒ кориÑтувачам входу в Google, вам необхідно надати Metabase Client ID з конÑолі Google Developers. Дана Ð´Ñ–Ñ Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ” Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÑ–Ð»ÑŒÐºÐ¾Ñ… кроків, інÑтрукцію Ñк Ñтворити ключ можна знайти {0}" - -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:137 -msgid "Your Google client ID" -msgstr "Ваш Google client ID" - -#: frontend/src/metabase/admin/settings/components/SettingsSingleSignOnForm.jsx:142 -msgid "Allow users to sign up on their own if their Google account email address is from:" -msgstr "Дозволити кориÑтувачам реєÑтруватиÑÑ Ñамим Ñкщо Ñ—Ñ… Google аккаунтом з email:" - -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:242 -msgid "Answers sent right to your Slack #channels" -msgstr "Відповіді будуть відправлÑтиÑÑ Ð² ваші Slack # канали" - -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:251 -msgid "Create a Slack Bot User for MetaBot" -msgstr "Створити Slack Bot кориÑтувача Ð´Ð»Ñ MetaBot" - -#: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:261 -msgid "Once you're there, give it a name and click {0}. Then copy and paste the Bot API Token into the field below. Once you are done, create a \"metabase_files\" channel in Slack. Metabase needs this to upload graphs." -msgstr "Поки ви тут, дайте ім'Ñ Ñ‚Ð° натиÑніть {0}. Потім Ñкопіюйте Ñ– вÑтавте Bot API токен в поле нижче. ПіÑÐ»Ñ Ñ†ÑŒÐ¾Ð³Ð¾, Ñтворіть канал \"metabase_files\" в Slack. Це потрібно Metabase Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð³Ñ€Ð°Ñ„Ñ–ÐºÑ–Ð²." - -#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:91 -msgid "You're running Metabase {0} which is the latest and greatest!" -msgstr "Ви запуÑтили оÑтанню Ñ– найкращу верÑÑ–ÑŽ Metanase {0}!" - -#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:100 -msgid "Metabase {0} is available. You're running {1}" -msgstr "Metabase {0} доÑтупна. Ви викориÑтовуєте {1}" - -#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -msgid "Update" -msgstr "оновити" - -#: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:117 -msgid "What's Changed:" -msgstr "Що змінено:" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:131 -msgid "Add a map" -msgstr "Додати карту" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:184 -#: frontend/src/metabase/lib/core.js:105 -msgid "URL" -msgstr "ПоÑиланнÑ" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:201 -msgid "Delete custom map" -msgstr "Видалити поточну карту" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 -#: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 -#: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 -msgid "Remove" -msgstr "вилучити" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 -#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 -#: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 -msgid "Select…" -msgstr "Вибрати ..." - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:243 -msgid "Sample values:" -msgstr "Приклади значень:" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:281 -msgid "Add a new map" -msgstr "Додати нову карту" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:281 -msgid "Edit map" -msgstr "змінити карту" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:282 -msgid "What do you want to call this map?" -msgstr "Як ви хочете назвати цю карту?" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:287 -msgid "e.g. United Kingdom, Brazil, Mars" -msgstr "наприклад, ВеликобританіÑ, БразиліÑ, МарÑ" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:294 -msgid "URL for the GeoJSON file you want to use" -msgstr "URL до файлу GeoJSON, Ñкий потрібно викориÑтовувати" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:300 -msgid "Like https://my-mb-server.com/maps/my-map.json" -msgstr "Ðаприклад, https://my-mb-server.com/maps/my-map.json" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:311 -msgid "Refresh" -msgstr "оновити" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:311 -msgid "Load" -msgstr "Завантажити" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:317 -msgid "Which property specifies the region’s identifier?" -msgstr "Яка ознака визначає ідентифікатор регіону?" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:326 -msgid "Which property specifies the region’s display name?" -msgstr "Яка ознака визначає Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ð¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ð¾Ð½Ñƒ?" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:347 -msgid "Load a GeoJSON file to see a preview" -msgstr "Завантажте файл GeoJSON Ð´Ð»Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ переглÑду" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:365 -msgid "Save map" -msgstr "зберегти карту" - -#: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:365 -msgid "Add map" -msgstr "Додати карту" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLegalese.jsx:7 -msgid "Using embedding" -msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLegalese.jsx:9 -msgid "By enabling embedding you're agreeing to the embedding license located at" -msgstr "ДохволÑючи вбудовуваннÑ, ви погоджуєтеÑÑ Ð· вбудованнÑм ліцензії з розташованої в" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLegalese.jsx:20 -msgid "In plain English, when you embed charts or dashboards from Metabase in your own application, that application isn't subject to the Affero General Public License that covers the rest of Metabase, provided you keep the Metabase logo and the \"Powered by Metabase\" visible on those embeds. You should, however, read the license text linked above as that is the actual license that you will be agreeing to by enabling this feature." -msgstr "ПроÑтіше кажучи, коли ви вбудовуєте графіки Ñ– панелі індикаторів Metabase в ваш додаток, такий додаток не Ñ” Ñуб'єктом Affero General Public License, Ñке охоплює решту Metabase, за умови, Ñкщо на вбудованих елементах буде залишатиÑÑ Ð»Ð¾Ð³Ð¾Ñ‚Ð¸Ð¿ Metabase Ñ– Ð½Ð°Ð¿Ð¸Ñ \"Powered by Metabase \". Однак, в будь-Ñкому випадку, вам Ñлід ознайомитиÑÑ Ð· ліцензією за поÑиланнÑм вище, чинну редакцію Ñкої ви приймаєте, включаючи дану функцію." - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLegalese.jsx:33 -msgid "Enable" -msgstr "Увімкнути" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLevel.jsx:24 -msgid "Premium embedding enabled" -msgstr "Преміальне Ð²Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¾" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLevel.jsx:26 -msgid "Enter the token you bought from the Metabase Store" -msgstr "Введіть токен, придбаний в Магазині Metabase" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLevel.jsx:53 -msgid "Premium embedding lets you disable \"Powered by Metabase\" on your embedded dashboards and questions." -msgstr "Преміальне Ð²Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚ÑŒ приховати Ð½Ð°Ð¿Ð¸Ñ \"Powered by Metabase\" у вбудованих панелÑÑ… інÑтрументів та запитах." - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLevel.jsx:60 -msgid "Buy a token" -msgstr "купити токен" - -#: frontend/src/metabase/admin/settings/components/widgets/EmbeddingLevel.jsx:63 -msgid "Enter a token" -msgstr "ввеÑти токен" - -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:150 -msgid "Edit Mappings" -msgstr "змінити зіÑтавленнÑ" - -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:156 -msgid "Group Mappings" -msgstr "групове зіÑтавленнÑ" - -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:163 -msgid "Create a mapping" -msgstr "Ñтворити зіÑтавленнÑ" - -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:165 -msgid "Mappings allow Metabase to automatically add and remove users from groups based on the membership information provided by the\n" -"directory server. Membership to the Admin group can be granted through mappings, but will not be automatically removed as a\n" -"failsafe measure." -msgstr "ЗіÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»ÑÑ” Metabase автоматично додавати Ñ– виключати кориÑтувачів з груп на підÑтаві інформації з каталогу Ñервера. ДоÑтуп до групи ÐдмініÑтраторів може бути надано на підÑтаві зіÑтавленнÑ, але не буде знÑтий автоматично Ñк запобіжний заÑіб." - -#: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 -msgid "Distinguished Name" -msgstr "відмітна найменуваннÑ" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:92 -msgid "Public Link" -msgstr "публічна поÑиланнÑ" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:93 -msgid "Revoke Link" -msgstr "видалити поÑиланнÑ" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:123 -msgid "Disable this link?" -msgstr "Відключити це поÑиланнÑ?" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:124 -msgid "They won't work anymore, and can't be restored, but you can create new links." -msgstr "Вони більше не працюють Ñ– не можуть бути відновлені, але ви можете Ñтворити нові поÑиланнÑ." - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:151 -msgid "Public Dashboard Listing" -msgstr "Перелік відкритих панелей індикаторів" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:154 -msgid "No dashboards have been publicly shared yet." -msgstr "До жодної з панелі індикаторів загальний доÑтуп ще не надано." - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:162 -msgid "Public Card Listing" -msgstr "Перелік загальних Карток" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:165 -msgid "No questions have been publicly shared yet." -msgstr "До жодного Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¹ доÑтуп ще не надано." - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:174 -msgid "Embedded Dashboard Listing" -msgstr "Перелік вбудованих панелей індикаторів" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:175 -msgid "No dashboards have been embedded yet." -msgstr "Жодна панель індикаторів ще не вбудована." - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:185 -msgid "Embedded Card Listing" -msgstr "СпиÑок вбудованих карток" - -#: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:186 -msgid "No questions have been embedded yet." -msgstr "Жодне Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ‰Ðµ не вбудований." - -#: frontend/src/metabase/admin/settings/components/widgets/SecretKeyWidget.jsx:35 -msgid "Regenerate embedding key?" -msgstr "Згенерувати ключ Ð²Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð½Ð¾Ð²Ð¾?" - -#: frontend/src/metabase/admin/settings/components/widgets/SecretKeyWidget.jsx:36 -msgid "This will cause existing embeds to stop working until they are updated with the new key." -msgstr "Це призведе до того, що Ñ–Ñнуючі Ð²Ð¿Ñ€Ð¾Ð²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑтануть працювати до тих пір, поки вони не будуть оновлені новим ключем." - -#: frontend/src/metabase/admin/settings/components/widgets/SecretKeyWidget.jsx:39 -msgid "Regenerate key" -msgstr "перегенерувати ключ" - -#: frontend/src/metabase/admin/settings/components/widgets/SecretKeyWidget.jsx:47 -msgid "Generate Key" -msgstr "згенерувати ключ" - -#: frontend/src/metabase/admin/settings/components/widgets/SettingToggle.jsx:11 -#: frontend/src/metabase/admin/settings/selectors.js:77 -msgid "Enabled" -msgstr "Включено" - -#: frontend/src/metabase/admin/settings/components/widgets/SettingToggle.jsx:11 -#: frontend/src/metabase/admin/settings/selectors.js:82 -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:104 -msgid "Disabled" -msgstr "Відключено" - -#: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:120 -msgid "Unknown setting {0}" -msgstr "Ðевідома наÑтройка {0}" - -#: frontend/src/metabase/admin/settings/selectors.js:23 -msgid "Setup" -msgstr "налаштувати" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 -#: frontend/src/metabase/admin/settings/selectors.js:28 -msgid "General" -msgstr "Загальні" - -#: frontend/src/metabase/admin/settings/selectors.js:33 -msgid "Site Name" -msgstr "Ðазва Ñайту" - -#: frontend/src/metabase/admin/settings/selectors.js:38 -msgid "Site URL" -msgstr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñайт" - -#: frontend/src/metabase/admin/settings/selectors.js:43 -msgid "Email Address for Help Requests" -msgstr "Email адреÑа Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð² допомоги" - -#: frontend/src/metabase/admin/settings/selectors.js:48 -msgid "Report Timezone" -msgstr "ЧаÑовий поÑÑ Ð·Ð²Ñ–Ñ‚Ñ–Ð²" - -#: frontend/src/metabase/admin/settings/selectors.js:51 -msgid "Database Default" -msgstr "За замовчуваннÑм Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних" - -#: frontend/src/metabase/admin/settings/selectors.js:54 -msgid "Select a timezone" -msgstr "Вибрати чаÑовий поÑÑ" - -#: frontend/src/metabase/admin/settings/selectors.js:54 -msgid "Not all databases support timezones, in which case this setting won't take effect." -msgstr "Ðе вÑÑ– бази даних підтримують чаÑові поÑÑи, тому цей параметр може не Ñпрацювати." - -#: frontend/src/metabase/admin/settings/selectors.js:59 -msgid "Language" -msgstr "Мова" - -#: frontend/src/metabase/admin/settings/selectors.js:65 -msgid "Select a language" -msgstr "Вибрати мову" - -#: frontend/src/metabase/admin/settings/selectors.js:69 -msgid "Anonymous Tracking" -msgstr "анонімне відÑтеженнÑ" - -#: frontend/src/metabase/admin/settings/selectors.js:74 -msgid "Friendly Table and Field Names" -msgstr "Зрозумілі імена таблиць Ñ– полів" - -#: frontend/src/metabase/admin/settings/selectors.js:80 -msgid "Only replace underscores and dashes with spaces" -msgstr "Тільки замініть знаки нижнього підкреÑÐ»ÐµÐ½Ð½Ñ Ñ– точки пробілами" - -#: frontend/src/metabase/admin/settings/selectors.js:88 -msgid "Enable Nested Queries" -msgstr "Включити вкладені запити" - -#: frontend/src/metabase/admin/settings/selectors.js:99 -msgid "Updates" -msgstr "оновленнÑ" - -#: frontend/src/metabase/admin/settings/selectors.js:104 -msgid "Check for updates" -msgstr "перевірити оновленнÑ" - -#: frontend/src/metabase/admin/settings/selectors.js:115 -msgid "SMTP Host" -msgstr "SMTP хоÑÑ‚" - -#: frontend/src/metabase/admin/settings/selectors.js:123 -msgid "SMTP Port" -msgstr "SMTP порт" - -#: frontend/src/metabase/admin/settings/selectors.js:127 -#: frontend/src/metabase/admin/settings/selectors.js:227 -msgid "That's not a valid port number" -msgstr "Ðекоректний номер порту" - -#: frontend/src/metabase/admin/settings/selectors.js:131 -msgid "SMTP Security" -msgstr "Безпека SMTP" - -#: frontend/src/metabase/admin/settings/selectors.js:139 -msgid "SMTP Username" -msgstr "SMTP кориÑтувач" - -#: frontend/src/metabase/admin/settings/selectors.js:146 -msgid "SMTP Password" -msgstr "SMTP пароль" - -#: frontend/src/metabase/admin/settings/selectors.js:153 -msgid "From Address" -msgstr "Від кого" - -#: frontend/src/metabase/admin/settings/selectors.js:167 -msgid "Slack API Token" -msgstr "Slack API Token" - -#: frontend/src/metabase/admin/settings/selectors.js:169 -msgid "Enter the token you received from Slack" -msgstr "Введіть токен отриманий від Slack" - -#: frontend/src/metabase/admin/settings/selectors.js:186 -msgid "Single Sign-On" -msgstr "єдиний вхід" - -#: frontend/src/metabase/admin/settings/selectors.js:210 -msgid "LDAP Authentication" -msgstr "ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ LDAP" - -#: frontend/src/metabase/admin/settings/selectors.js:216 -msgid "LDAP Host" -msgstr "LDAP хоÑÑ‚" - -#: frontend/src/metabase/admin/settings/selectors.js:224 -msgid "LDAP Port" -msgstr "LDAP порт" - -#: frontend/src/metabase/admin/settings/selectors.js:231 -msgid "LDAP Security" -msgstr "Безпека LDAP" - -#: frontend/src/metabase/admin/settings/selectors.js:239 -msgid "Username or DN" -msgstr "КориÑтувач або DN" - -#: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 -#: frontend/src/metabase/user/components/UserSettings.jsx:59 -msgid "Password" -msgstr "Пароль" - -#: frontend/src/metabase/admin/settings/selectors.js:249 -msgid "User search base" -msgstr "База Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ кориÑтувача" - -#: frontend/src/metabase/admin/settings/selectors.js:255 -msgid "User filter" -msgstr "Фільтр кориÑтувача" - -#: frontend/src/metabase/admin/settings/selectors.js:261 -msgid "Check your parentheses" -msgstr "Перевірте круглі дужки" - -#: frontend/src/metabase/admin/settings/selectors.js:267 -msgid "Email attribute" -msgstr "Email аттрибут" - -#: frontend/src/metabase/admin/settings/selectors.js:272 -msgid "First name attribute" -msgstr "Ðтрибут імені" - -#: frontend/src/metabase/admin/settings/selectors.js:277 -msgid "Last name attribute" -msgstr "Ðтрибут прізвища" - -#: frontend/src/metabase/admin/settings/selectors.js:282 -msgid "Synchronize group memberships" -msgstr "Синхронізувати членÑтво в групі" - -#: frontend/src/metabase/admin/settings/selectors.js:288 -msgid "Group search base" -msgstr "База Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ групи" - -#: frontend/src/metabase/admin/settings/selectors.js:297 -msgid "Maps" -msgstr "карти" - -#: frontend/src/metabase/admin/settings/selectors.js:302 -msgid "Map tile server URL" -msgstr "URL Ñервера плиточної веб-карти" - -#: frontend/src/metabase/admin/settings/selectors.js:303 -msgid "Metabase uses OpenStreetMaps by default." -msgstr "За замовчуваннÑм, Metabase викориÑтовує OpenStreetMaps." - -#: frontend/src/metabase/admin/settings/selectors.js:308 -msgid "Custom Maps" -msgstr "Ðалаштовувана карта" - -#: frontend/src/metabase/admin/settings/selectors.js:309 -msgid "Add your own GeoJSON files to enable different region map visualizations" -msgstr "Додайте влаÑні GeoJSON файли Ð´Ð»Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑ‚Ñ– візуалізації різних регіонів на картах" - -#: frontend/src/metabase/admin/settings/selectors.js:328 -msgid "Public Sharing" -msgstr "Загальний доÑтуп" - -#: frontend/src/metabase/admin/settings/selectors.js:333 -msgid "Enable Public Sharing" -msgstr "Включити загальний доÑтуп" - -#: frontend/src/metabase/admin/settings/selectors.js:338 -msgid "Shared Dashboards" -msgstr "Спільні панелі інÑтрументів" - -#: frontend/src/metabase/admin/settings/selectors.js:344 -msgid "Shared Questions" -msgstr "публічні запити" - -#: frontend/src/metabase/admin/settings/selectors.js:351 -msgid "Embedding in other Applications" -msgstr "Ð’Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð² інших Додатках" - -#: frontend/src/metabase/admin/settings/selectors.js:378 -msgid "Enable Embedding Metabase in other Applications" -msgstr "Включити Ð²Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Metabase в інших Додатках" - -#: frontend/src/metabase/admin/settings/selectors.js:388 -msgid "Embedding secret key" -msgstr "Секретний ключ Ð´Ð»Ñ Ð²Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ" - -#: frontend/src/metabase/admin/settings/selectors.js:394 -msgid "Embedded Dashboards" -msgstr "Вбудовувані панелі інÑтрументів" - -#: frontend/src/metabase/admin/settings/selectors.js:400 -msgid "Embedded Questions" -msgstr "Вбудовувані запити" - -#: frontend/src/metabase/admin/settings/selectors.js:407 -msgid "Caching" -msgstr "кешуваннÑ" - -#: frontend/src/metabase/admin/settings/selectors.js:412 -msgid "Enable Caching" -msgstr "включити кешуваннÑ" - -#: frontend/src/metabase/admin/settings/selectors.js:417 -msgid "Minimum Query Duration" -msgstr "Мінімальний Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ" - -#: frontend/src/metabase/admin/settings/selectors.js:424 -msgid "Cache Time-To-Live (TTL) multiplier" -msgstr "Множник Cache Time-To-Live (TTL)" - -#: frontend/src/metabase/admin/settings/selectors.js:431 -msgid "Max Cache Entry Size" -msgstr "МакÑимальний розмір запиÑу кеша" - -#: frontend/src/metabase/alert/alert.js:60 -msgid "Your alert is all set up." -msgstr "Ваше Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²Ð°Ð½Ðµ." - -#: frontend/src/metabase/alert/alert.js:101 -msgid "Your alert was updated." -msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ збережено." - -#: frontend/src/metabase/alert/alert.js:149 -msgid "The alert was successfully deleted." -msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ ÑƒÑпішно видалено." - -#: frontend/src/metabase/auth/auth.js:32 -msgid "Please enter a valid formatted email address." -msgstr "Введіть коректний email" - -#: frontend/src/metabase/auth/auth.js:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:110 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:69 -msgid "Passwords do not match" -msgstr "Введені паролі не збігаютьÑÑ" - -#: frontend/src/metabase/auth/components/BackToLogin.jsx:6 -msgid "Back to login" -msgstr "ПовернутиÑÑ Ð´Ð¾ входу" - -#: frontend/src/metabase/auth/components/GoogleNoAccount.jsx:15 -msgid "No Metabase account exists for this Google account." -msgstr "Ðемає облікового запиÑу пов'Ñзаного з цим Google аккаунтом." - -#: frontend/src/metabase/auth/components/GoogleNoAccount.jsx:17 -msgid "You'll need an administrator to create a Metabase account before you can use Google to log in." -msgstr "Зв'ÑжітьÑÑ Ð· адмініÑтратором Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð“ÑƒÐ³Ð» логіна." - -#: frontend/src/metabase/auth/components/SSOLoginButton.jsx:18 -msgid "Sign in with {0}" -msgstr "Зайти з {0}" - -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:56 -msgid "Please contact an administrator to have them reset your password" -msgstr "Зв'ÑжітьÑÑ Ð· адмініÑтратором Ð´Ð»Ñ ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ паролÑ" - -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:69 -msgid "Forgot password" -msgstr "Забули пароль" - -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:84 -msgid "The email you use for your Metabase account" -msgstr "Email, Ñкий ви викориÑтовуєте з вашим Metabase аккаунта" - -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 -msgid "Send password reset email" -msgstr "ПоÑлати емаил Ð´Ð»Ñ ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ" - -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 -msgid "Check your email for instructions on how to reset your password." -msgstr "ПоÑлати емаил з інÑтрукцією Ñк Ñкинути пароль." - -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 -msgid "Sign in to Metabase" -msgstr "Увійти в Metabase" - -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 -msgid "OR" -msgstr "ÐБО" - -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 -msgid "Username or email address" -msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача або email" - -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 -msgid "Sign in" -msgstr "Увійти" - -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 -msgid "I seem to have forgotten my password" -msgstr "Схоже що Ñ Ð·Ð°Ð±ÑƒÐ² Ñвій пароль" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:105 -msgid "request a new reset email" -msgstr "запроÑити новий лиÑÑ‚ із запитом на ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:123 -msgid "Whoops, that's an expired link" -msgstr "УууупÑ, здаєтьÑÑ Ñ†Ñ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ð°Ñтаріла." - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:125 -msgid "For security reasons, password reset links expire after a little while. If you still need\n" -"to reset your password, you can {0}." -msgstr "З міркувань безпеки, поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ñ‡ÐµÑ€ÐµÐ· деÑкий Ñ‡Ð°Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÑƒÑŽÑ‚ÑŒÑÑ.\n" -"Якщо вам вÑе ще потрібно Ñкинути пароль, ви можете {0}." - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 -msgid "New password" -msgstr "Ðовий пароль" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:152 -msgid "To keep your data secure, passwords {0}" -msgstr "Заради безпеки, паролі {0}" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:166 -msgid "Create a new password" -msgstr "Створити новий пароль" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 -msgid "Make sure its secure like the instructions above" -msgstr "ПереконайтеÑÑ Ñ‰Ð¾ пароль відповідає рекомендації безпеки вище" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 -msgid "Confirm new password" -msgstr "Підтвердіть новий пароль" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 -msgid "Make sure it matches the one you just entered" -msgstr "ПереконайтеÑÑ Ñ‰Ð¾ він відповідає тому Ñкий ви вже ввели" - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 -msgid "Your password has been reset." -msgstr "Ваш пароль був Ñкинутий." - -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 -msgid "Sign in with your new password" -msgstr "Зайди з вашим новим паролем" - -#: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 -msgid "Save failed" -msgstr "Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ðµ вдалоÑÑ" - -#: frontend/src/metabase/components/ActionButton.jsx:54 -#: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 -msgid "Saved" -msgstr "Збережено" - -#: frontend/src/metabase/components/Alert.jsx:12 -msgid "Ok" -msgstr "Ок" - -#: frontend/src/metabase/components/ArchiveCollectionModal.jsx:41 -msgid "Archive this collection?" -msgstr "ПереміÑтити колекцію в архів?" - -#: frontend/src/metabase/components/ArchiveCollectionModal.jsx:42 -msgid "The dashboards, collections, and pulses in this collection will also be archived." -msgstr "Панелі інÑтрументів, збірки та пульÑи в цій збірці також будуть заархівовані." - -#: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 -#: frontend/src/metabase/components/EntityMenu.info.js:31 -#: frontend/src/metabase/components/EntityMenu.info.js:87 -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 -msgid "Archive" -msgstr "Ðрхів" - -#: frontend/src/metabase/containers/ErrorPages.jsx:63 -msgid "This {0} has been archived" -msgstr "Цей {0} переміщений в архів." - -#: frontend/src/metabase/components/CollectionLanding.jsx:714 -msgid "View the archive" -msgstr "ПереглÑнути архів" - -#: frontend/src/metabase/components/ArchivedItem.jsx:42 -msgid "Unarchive this {0}" -msgstr "ВоÑтоновіть цей {0}" - -#: frontend/src/metabase/components/BrowseApp.jsx:39 -#: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 -msgid "Our data" -msgstr "Ðаші дані" - -#: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 -msgid "X-ray this table" -msgstr "ПроÑканувати цю таблицю" - -#: frontend/src/metabase/components/BrowseApp.jsx:163 -msgid "Learn about this table" -msgstr "ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про цю таблиці" - -#: frontend/src/metabase/components/Button.info.js:11 -#: frontend/src/metabase/components/Button.info.js:12 -#: frontend/src/metabase/components/Button.info.js:13 -msgid "Clickity click" -msgstr "ÐатиÑніть Ñюди" - -#: frontend/src/metabase/components/ButtonWithStatus.jsx:9 -msgid "Saved!" -msgstr "Збережено!" - -#: frontend/src/metabase/components/ButtonWithStatus.jsx:10 -msgid "Saving failed." -msgstr "Ðе вийшло зберегти." - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "Su" -msgstr "Ðд" - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "Mo" -msgstr "за" - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "Tu" -msgstr "Ð’Ñ‚" - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "We" -msgstr "Ср" - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "Th" -msgstr "чт" - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "Fr" -msgstr "Пт" - -#: frontend/src/metabase/components/Calendar.jsx:117 -msgid "Sa" -msgstr "Сб" - -#: frontend/src/metabase/components/ChannelSetupMessage.jsx:41 -msgid "Your admin's email address" -msgstr "Емаил адреÑу адмініÑтратора" - -#: frontend/src/metabase/components/ChannelSetupModal.jsx:37 -msgid "To send {0}, you'll need to set up {1} integration." -msgstr "Що б поÑлати {0}, вам потрібно вÑтановити {1} інтеграцію." - -#: frontend/src/metabase/components/ChannelSetupModal.jsx:38 -#: frontend/src/metabase/components/ChannelSetupModal.jsx:41 -msgid " or " -msgstr "або" - -#: frontend/src/metabase/components/ChannelSetupModal.jsx:40 -msgid "To send {0}, an admin needs to set up {1} integration." -msgstr "Що б поÑлати {0}, адмін повинен вÑтановити {1} інтеграцію." - -#: frontend/src/metabase/components/CollectionEmptyState.jsx:15 -msgid "This collection is empty, like a blank canvas" -msgstr "ÐšÐ¾Ð»ÐµÐºÑ†Ñ–Ñ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ Ñк чиÑте полотно" - -#: frontend/src/metabase/components/CollectionEmptyState.jsx:16 -msgid "You can use collections to organize and group dashboards, questions and pulses for your team or yourself" -msgstr "Ви можете викориÑтовувати збірки Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð° Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð½ÐµÐ»Ñ– інÑтрументів, запитів Ñ– розÑилок Ð´Ð»Ñ Ñебе Ñ– Ñвоєї команди" - -#: frontend/src/metabase/components/CollectionEmptyState.jsx:28 -msgid "Create another collection" -msgstr "Створити іншу колекцію" - -#: frontend/src/metabase/components/CollectionLanding.jsx:68 -msgid "Dashboards let you collect and share data in one place." -msgstr "Панель інÑтрументів дозволÑÑ” зберігати Ñ– ділитиÑÑ Ð´Ð°Ð½Ð¸Ð¼Ð¸ в одному міÑці." - -#: frontend/src/metabase/components/CollectionLanding.jsx:77 -msgid "Pulses let you send out the latest data to your team on a schedule via email or slack." -msgstr "ПульÑи дозволÑÑŽÑ‚ÑŒ вам відправлÑти актуальні дані команді за розкладом через email або slack." - -#: frontend/src/metabase/components/CollectionLanding.jsx:86 -msgid "Questions are a saved look at your data." -msgstr "Запити - це збережений поглÑд на ваші дані." - -#: frontend/src/metabase/components/CollectionLanding.jsx:286 -msgid "Pins" -msgstr "прикріплені" - -#: frontend/src/metabase/components/CollectionLanding.jsx:340 -msgid "Drag something here to pin it to the top" -msgstr "ПереміÑÑ‚Ñ–Ñ‚ÑŒ щоÑÑŒ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ щоб закріпити нагорі" - -#: frontend/src/metabase/admin/permissions/selectors.js:740 -#: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 -msgid "Collections" -msgstr "колекції" - -#: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 -msgid "Drag here to un-pin" -msgstr "ПереміÑÑ‚Ñ–Ñ‚ÑŒ щоб відкріпити" - -#: frontend/src/metabase/components/CollectionLanding.jsx:489 -msgid "{0} item selected" -msgid_plural "{0} items selected" -msgstr[0] "{0} елемент обраний" -msgstr[1] "{0} Ñлемента выбрано" -msgstr[2] "{0} Ñлементов выбрано" -msgstr[3] "{0} Ñлементов выбрано" - -#: frontend/src/metabase/components/CollectionLanding.jsx:519 -msgid "Move {0} items?" -msgstr "ПереміÑтити {0} елементів?" - -#: frontend/src/metabase/components/CollectionLanding.jsx:520 -msgid "Move \"{0}\"?" -msgstr "ПереміÑтити \"{0}\"?" - -#: frontend/src/metabase/components/CollectionLanding.jsx:627 -#: frontend/src/metabase/components/EntityMenu.info.js:29 -#: frontend/src/metabase/components/EntityMenu.info.js:85 -#: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 -msgid "Move" -msgstr "переміÑтити" - -#: frontend/src/metabase/components/CollectionLanding.jsx:691 -msgid "Edit this collection" -msgstr "Змінити цю колекцію" - -#: frontend/src/metabase/components/CollectionLanding.jsx:699 -msgid "Archive this collection" -msgstr "ПереміÑтити колекцію в архів" - -#: frontend/src/metabase/components/CollectionList.jsx:67 -#: frontend/src/metabase/entities/collections.js:158 -msgid "My personal collection" -msgstr "ÐœÐ¾Ñ Ð¾ÑобиÑта колекціÑ" - -#: frontend/src/metabase/components/CollectionList.jsx:107 -msgid "New collection" -msgstr "Ðова колекціÑ" - -#: frontend/src/metabase/components/CopyButton.jsx:35 -msgid "Copied!" -msgstr "Скопійовано!" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 -msgid "Use an SSH-tunnel for database connections" -msgstr "ВикориÑтовувати SSH-тунель Ð´Ð»Ñ Ð·Ð²'Ñзку з базою даних" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 -msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" -"This option also provides an extra layer of security when a VPN is not available.\n" -"Enabling this is usually slower than a direct connection." -msgstr "ДеÑкі інÑталÑції баз даних можуть бути оцінені тільки за допомогою SSH-тунелів.\n" -"Ð¦Ñ Ð¾Ð¿Ñ†Ñ–Ñ Ñ‚Ð°ÐºÐ¾Ð¶ надає додатковий рівень безпеки, коли VPN Ñ” недоÑтупним.\n" -"ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ знизити швидкіÑÑ‚ÑŒ в порівнÑнні з прÑмим з'єднаннÑм." - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 -msgid "This is a large database, so let me choose when Metabase syncs and scans" -msgstr "Це велика база даних, так що дайте мені вибрати коли Ðœetabase Ñинхронізує Ñ– Ñканує" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:296 -msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values.\n" -"If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." -msgstr "За замовчуваннÑм, Metabase виконує поверхневе ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¶Ð½Ñƒ годину Ñ– повне ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ полів щоднÑ.\n" -"Якщо у Ð²Ð°Ñ Ð²ÐµÐ»Ð¸ÐºÐ° база даних, ми рекомендуємо увімкнуте це та дивитиÑÑ ÐºÐ¾Ð»Ð¸ Ñ– Ñк чаÑто відбуваєтьÑÑ ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ полів." - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 -msgid "{0} to generate a Client ID and Client Secret for your project." -msgstr "{0} Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ–Ñ— Client ID та Client Secret Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ проекту." - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 -msgid "Click here" -msgstr "ÐатиÑніть тут" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 -msgid "Choose \"Other\" as the application type. Name it whatever you'd like." -msgstr "Виберіть \"Інше\" Ñк тип програми. Ðазвіть його на ваш Ñмак." - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 -msgid "{0} to get an auth code" -msgstr "{0} Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ аутентифікації" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 -msgid "with Google Drive permissions" -msgstr "з дозволами Google Drive" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 -msgid "To use Metabase with this data you must enable API access in the Google Developers Console." -msgstr "Вам необхідно дозволити доÑтуп по API в Google Developers Console, щоб викориÑтовувати ці дані в Metabase." - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 -msgid "{0} to go to the console if you haven't already done so." -msgstr "{0} перейдіть в конÑоль, Ñкщо ви цього ще не зробили" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 -msgid "How would you like to refer to this database?" -msgstr "Як би ви хотіли звертатиÑÑ Ð´Ð¾ цієї бази даних?" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 -#: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 -msgid "Next" -msgstr "далі" - -#: frontend/src/metabase/components/ArchivedItem.jsx:51 -#: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:80 -msgid "Delete this {0}" -msgstr "Видалити цей {0}" - -#: frontend/src/metabase/components/EntityItem.jsx:45 -msgid "Pin this item" -msgstr "Закріпити цей елемент" - -#: frontend/src/metabase/components/EntityItem.jsx:51 -msgid "Move this item" -msgstr "ПереміÑтити цей елемент" - -#: frontend/src/metabase/components/EntityMenu.info.js:24 -#: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 -msgid "Edit this question" -msgstr "Змінити цей запит" - -#: frontend/src/metabase/components/EntityMenu.info.js:26 -#: frontend/src/metabase/components/EntityMenu.info.js:47 -#: frontend/src/metabase/components/EntityMenu.info.js:82 -#: frontend/src/metabase/components/EntityMenu.info.js:99 -msgid "Action type" -msgstr "Тип дії" - -#: frontend/src/metabase/components/EntityMenu.info.js:28 -#: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 -msgid "View revision history" -msgstr "переглÑнути Ñ–Ñторію" - -#: frontend/src/metabase/components/EntityMenu.info.js:29 -#: frontend/src/metabase/components/EntityMenu.info.js:85 -msgid "Move action" -msgstr "переÑунути" - -#: frontend/src/metabase/components/EntityMenu.info.js:33 -#: frontend/src/metabase/components/EntityMenu.info.js:89 -msgid "Archive action" -msgstr "заархівувати дію" - -#: frontend/src/metabase/components/EntityMenu.info.js:45 -#: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 -msgid "Add to dashboard" -msgstr "Додати до панелі інÑтрументів" - -#: frontend/src/metabase/components/EntityMenu.info.js:49 -#: frontend/src/metabase/components/EntityMenu.info.js:101 -msgid "Download results" -msgstr "завантажити результати" - -#: frontend/src/metabase/components/EntityMenu.info.js:51 -#: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 -msgid "Sharing and embedding" -msgstr "параметри шаринга" - -#: frontend/src/metabase/components/EntityMenu.info.js:53 -#: frontend/src/metabase/components/EntityMenu.info.js:105 -msgid "Another action type" -msgstr "Інший вид дії" - -#: frontend/src/metabase/components/EntityMenu.info.js:65 -#: frontend/src/metabase/components/EntityMenu.info.js:67 -#: frontend/src/metabase/components/EntityMenu.info.js:113 -#: frontend/src/metabase/components/EntityMenu.info.js:115 -msgid "Get alerts about this" -msgstr "Отримувати ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ це" - -#: frontend/src/metabase/components/EntityMenu.info.js:69 -#: frontend/src/metabase/components/EntityMenu.info.js:117 -#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:21 -msgid "View the SQL" -msgstr "ПодивитиÑÑ SQL" - -#: frontend/src/metabase/components/EntitySegments.jsx:18 -msgid "Segments for this" -msgstr "Сегменти Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾" - -#: frontend/src/metabase/components/ErrorDetails.jsx:20 -msgid "Show error details" -msgstr "Детальніше про твіт помилки" - -#: frontend/src/metabase/components/ErrorDetails.jsx:26 -msgid "Here's the full error message" -msgstr "Повний текÑÑ‚ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку" - -#: frontend/src/metabase/components/ExplorePane.jsx:19 -msgid "Hi, Metabot here." -msgstr "Привіт, Metabot тут." - -#: frontend/src/metabase/components/ExplorePane.jsx:94 -msgid "Based on the schema" -msgstr "ЗаÑноване на Ñхемі" - -#: frontend/src/metabase/components/ExplorePane.jsx:173 -msgid "A look at your" -msgstr "ПоглÑньте на" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 -msgid "Search the list" -msgstr "Пошук в ÑпиÑку" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 -msgid "Search by {0}" -msgstr "Шукати по {0}" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 -msgid " or enter an ID" -msgstr "або введітеь ID" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 -msgid "Enter an ID" -msgstr "Введіть ID" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 -msgid "Enter a number" -msgstr "ведіть номер" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 -msgid "Enter some text" -msgstr "Введіть текÑÑ‚" - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 -msgid "No matching {0} found." -msgstr "Чи не знайдено ÑходÑÑ‚ в {0}." - -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 -msgid "Including every option in your filter probably won’t do much…" -msgstr "ПрипуÑкаю, що вибір вÑÑ–Ñ… значень фільтра Ñправі не допоможе ..." - -#: frontend/src/metabase/containers/ErrorPages.jsx:24 -msgid "Something's gone wrong" -msgstr "ЩоÑÑŒ пішло не так" - -#: frontend/src/metabase/containers/ErrorPages.jsx:25 -msgid "We've run into an error. You can try refreshing the page, or just go back." -msgstr "Ми зіткнулиÑÑ Ð· помилкою. Спробуйте оновити Ñторінку або проÑто повернітьÑÑ Ð½Ð°Ð·Ð°Ð´." - -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 -msgid "No description yet" -msgstr "ÐžÐ¿Ð¸Ñ Ð½Ðµ заповнено" - -#: frontend/src/metabase/components/Header.jsx:112 -#: frontend/src/metabase/entities/containers/EntityForm.jsx:60 -msgid "New {0}" -msgstr "Ðовий {0}" - -#: frontend/src/metabase/components/Header.jsx:123 -msgid "Asked by {0}" -msgstr "Заданий {0}" - -#: frontend/src/metabase/components/HistoryModal.jsx:12 -msgid "Today, " -msgstr "Ñьогодні," - -#: frontend/src/metabase/components/HistoryModal.jsx:14 -msgid "Yesterday, " -msgstr "вчора," - -#: frontend/src/metabase/components/HistoryModal.jsx:29 -msgid "First revision." -msgstr "перша ревізіÑ" - -#: frontend/src/metabase/components/HistoryModal.jsx:31 -msgid "Reverted to an earlier revision and {0}" -msgstr "Повернуто до більш ранньої редакції Ñ– {0}" - -#: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 -msgid "Revision history" -msgstr "ІÑÑ‚Ð¾Ñ€Ñ–Ñ Ñ€ÐµÐ²Ñ–Ð·Ñ–Ð¹" - -#: frontend/src/metabase/components/HistoryModal.jsx:46 -msgid "When" -msgstr "коли" - -#: frontend/src/metabase/components/HistoryModal.jsx:47 -msgid "Who" -msgstr "хто" - -#: frontend/src/metabase/components/HistoryModal.jsx:48 -msgid "What" -msgstr "що" - -#: frontend/src/metabase/components/HistoryModal.jsx:67 -msgid "Revert" -msgstr "повернути" - -#: frontend/src/metabase/components/HistoryModal.jsx:68 -msgid "Reverting…" -msgstr "ÐŸÐ¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ ..." - -#: frontend/src/metabase/components/HistoryModal.jsx:69 -msgid "Revert failed" -msgstr "ÐŸÐ¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð½Ðµ вдавÑÑ" - -#: frontend/src/metabase/components/HistoryModal.jsx:70 -msgid "Reverted" -msgstr "повернуто" - -#: frontend/src/metabase/components/ItemTypeFilterBar.jsx:13 -msgid "Everything" -msgstr "УÑе" - -#: frontend/src/metabase/components/ItemTypeFilterBar.jsx:18 -msgid "Dashboards" -msgstr "панелі" - -#: frontend/src/metabase/components/ItemTypeFilterBar.jsx:23 -msgid "Questions" -msgstr "питаннÑ" - -#: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 -msgid "Pulses" -msgstr "ПульÑи" - -#: frontend/src/metabase/components/LeftNavPane.jsx:36 -#: frontend/src/metabase/query_builder/components/SidebarHeader.jsx:16 -msgid "Back" -msgstr "назад" - -#: frontend/src/metabase/components/ListSearchField.jsx:17 -msgid "Find..." -msgstr "Знайти ..." - -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 -msgid "An error occured" -msgstr "Виникла помилка" - -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:35 -msgid "Loading..." -msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ..." - -#: frontend/src/metabase/components/NewsletterForm.jsx:71 -msgid "Metabase Newsletter" -msgstr "РозÑилка Metabase" - -#: frontend/src/metabase/components/NewsletterForm.jsx:81 -msgid "Get infrequent emails about new releases and feature updates." -msgstr "Отримувати рідкіÑні Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ нові релізах Ñ– Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹." - -#: frontend/src/metabase/components/NewsletterForm.jsx:99 -msgid "Subscribe" -msgstr "ПідпиÑатиÑÑ" - -#: frontend/src/metabase/components/NewsletterForm.jsx:106 -msgid "You're subscribed. Thanks for using Metabase!" -msgstr "Ви підпиÑані. ДÑкуємо за викориÑÑ‚Ð°Ð½Ð½Ñ Metabase!" - -#: frontend/src/metabase/containers/ErrorPages.jsx:44 -msgid "We're a little lost..." -msgstr "Ми трохи заблукали ..." - -#: frontend/src/metabase/components/PasswordReveal.jsx:27 -msgid "Temporary Password" -msgstr "ТимчаÑовий пароль" - -#: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 -msgid "Hide" -msgstr "приховати" - -#: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 -msgid "Show" -msgstr "Показати" - -#: frontend/src/metabase/components/QuestionSavedModal.jsx:17 -msgid "Saved! Add this to a dashboard?" -msgstr "Збережено! Додати на панель інÑтрументів?" - -#: frontend/src/metabase/components/QuestionSavedModal.jsx:25 -msgid "Yes please!" -msgstr "Так будь лаÑка" - -#: frontend/src/metabase/components/QuestionSavedModal.jsx:29 -msgid "Not now" -msgstr "Ðе зараз" - -#: frontend/src/metabase/components/SaveStatus.jsx:53 -msgid "Error:" -msgstr "Помилка:" - -#: frontend/src/metabase/components/SchedulePicker.jsx:23 -msgid "Sunday" -msgstr "неділÑ" - -#: frontend/src/metabase/components/SchedulePicker.jsx:24 -msgid "Monday" -msgstr "понеділок" - -#: frontend/src/metabase/components/SchedulePicker.jsx:25 -msgid "Tuesday" -msgstr "вівторок" - -#: frontend/src/metabase/components/SchedulePicker.jsx:26 -msgid "Wednesday" -msgstr "Ñереда" - -#: frontend/src/metabase/components/SchedulePicker.jsx:27 -msgid "Thursday" -msgstr "четвер" - -#: frontend/src/metabase/components/SchedulePicker.jsx:28 -msgid "Friday" -msgstr "п'ÑтницÑ" - -#: frontend/src/metabase/components/SchedulePicker.jsx:29 -msgid "Saturday" -msgstr "Ñубота" - -#: frontend/src/metabase/components/SchedulePicker.jsx:33 -msgid "First" -msgstr "перший" - -#: frontend/src/metabase/components/SchedulePicker.jsx:34 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:23 -msgid "Last" -msgstr "ОÑтанній" - -#: frontend/src/metabase/components/SchedulePicker.jsx:35 -msgid "15th (Midpoint)" -msgstr "15-е (Ñередина)" - -#: frontend/src/metabase/components/SchedulePicker.jsx:125 -msgid "Calendar Day" -msgstr "день календарÑ" - -#: frontend/src/metabase/components/SchedulePicker.jsx:212 -msgid "your Metabase timezone" -msgstr "чаÑовий поÑÑ Ð²Ð°ÑˆÐ¾Ð³Ð¾ Metabase" - -#: frontend/src/metabase/components/SearchHeader.jsx:21 -msgid "Filter this list..." -msgstr "Фільтрувати цей ÑпиÑок ..." - -#: frontend/src/metabase/components/Select.info.js:8 -msgid "Blue" -msgstr "Ñиній" - -#: frontend/src/metabase/components/Select.info.js:9 -msgid "Green" -msgstr "зелений" - -#: frontend/src/metabase/components/Select.info.js:10 -msgid "Red" -msgstr "червоний" - -#: frontend/src/metabase/components/Select.info.js:11 -msgid "Yellow" -msgstr "Желтний" - -#: frontend/src/metabase/components/Select.info.js:14 -msgid "A component used to make a selection" -msgstr "Компонент викориÑтаний Ð´Ð»Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑ‚Ñ– вибору" - -#: frontend/src/metabase/components/Select.info.js:20 -#: frontend/src/metabase/components/Select.info.js:30 -msgid "Selected" -msgstr "обрано" - -#: frontend/src/metabase/components/Select.jsx:299 -msgid "Nothing to select" -msgstr "Ðічого не вибрано" - -#: frontend/src/metabase/containers/ErrorPages.jsx:54 -msgid "Sorry, you don’t have permission to see that." -msgstr "Вибачте, у Ð²Ð°Ñ Ð²Ñ–Ð´Ñутні дозволи на переглÑд." - -#: frontend/src/metabase/components/form/FormMessage.jsx:5 -msgid "Unknown error encountered" -msgstr "Виникла невідома помилка" - -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 -msgid "Create" -msgstr "Створити" - -#: frontend/src/metabase/containers/DashboardForm.jsx:9 -msgid "Create dashboard" -msgstr "Створити панель інÑтрументів" - -#: frontend/src/metabase/containers/EntitySearch.jsx:35 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 -msgid "Table" -msgstr "ТаблицÑ" - -#: frontend/src/metabase/containers/EntitySearch.jsx:42 -msgid "Database" -msgstr "База даних" - -#: frontend/src/metabase/containers/EntitySearch.jsx:49 -msgid "Creator" -msgstr "творець" - -#: frontend/src/metabase/containers/EntitySearch.jsx:239 -msgid "No results found" -msgstr "Ðічого не знайдено" - -#: frontend/src/metabase/containers/EntitySearch.jsx:240 -msgid "Try adjusting your filter to find what you’re looking for." -msgstr "Спробуйте вÑтановити фільтр Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ щоб знайти те, що шукали." - -#: frontend/src/metabase/containers/EntitySearch.jsx:259 -msgid "View by" -msgstr "ПереглÑнуто" - -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 -msgid "of" -msgstr "з" - -#: frontend/src/metabase/containers/Overworld.jsx:75 -msgid "Don't tell anyone, but you're my favorite." -msgstr "Ðікому не кажи, але ти мій улюбленець." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:85 -msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." -msgstr "Як тільки ви підключите влаÑні дані Ñ Ð·Ð¼Ð¾Ð¶Ñƒ показати деÑкі автоматичні вишукуваннÑ, названі X-ray. ОÑÑŒ кілька прикладів на даних, Ñкі Ñ” у мене." - -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 -#: frontend/src/metabase/reference/components/GuideHeader.jsx:12 -msgid "Start here" -msgstr "Почніть тут" - -#: frontend/src/metabase/containers/Overworld.jsx:296 -#: frontend/src/metabase/entities/collections.js:150 -#: src/metabase/models/collection.clj -msgid "Our analytics" -msgstr "Ðаша ÑтатиÑтика" - -#: frontend/src/metabase/containers/Overworld.jsx:203 -msgid "Browse all items" -msgstr "ПереглÑнути вÑÑ– елементи" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:167 -msgid "Replace or save as new?" -msgstr "Замінити або зберегти Ñк новий?" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:175 -msgid "Replace original question, \"{0}\"" -msgstr "Замінити вихідний питаннÑ, \"{0}\"" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 -msgid "Save as new question" -msgstr "Зберегти Ñк новий запит" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 -msgid "First, save your question" -msgstr "Ð”Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ, збережіть ваш запит" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 -msgid "Save question" -msgstr "зберегти запит" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 -msgid "What is the name of your card?" -msgstr "Як називаєтьÑÑ Ð²Ð°ÑˆÐ° картка?" - -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 -#: frontend/src/metabase/entities/collections.js:102 -#: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 -#: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 -msgid "Description" -msgstr "опиÑ" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 -#: frontend/src/metabase/entities/dashboards.js:150 -msgid "It's optional but oh, so helpful" -msgstr "Це не обов'Ñзково, але може бути кориÑним" - -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 -#: frontend/src/metabase/entities/dashboards.js:154 -msgid "Which collection should this go in?" -msgstr "Ð’ Ñку збріку Ñлід це включити?" - -#: frontend/src/metabase/containers/UndoListing.jsx:34 -msgid "modified" -msgstr "змінено" - -#: frontend/src/metabase/containers/UndoListing.jsx:34 -msgid "item" -msgstr "елемент" - -#: frontend/src/metabase/containers/UndoListing.jsx:83 -msgid "Undo" -msgstr "СкаÑувати" - -#: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:270 -msgid "Applying Question" -msgstr "заÑтоÑувати запит" - -#: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:274 -msgid "That question isn't compatible" -msgstr "Цей запит неÑуміÑний" - -#: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:310 -msgid "Search for a question" -msgstr "знайти запит" - -#: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:339 -msgid "We're not sure if this question is compatible" -msgstr "Ми не впевнені, чи поєднуєтьÑÑ Ð´Ð°Ð½Ðµ питаннÑ" - -#: frontend/src/metabase/dashboard/components/ArchiveDashboardModal.jsx:43 -msgid "Archive Dashboard" -msgstr "Ðрхівувати Панель індикаторів" - -#: frontend/src/metabase/dashboard/components/DashCardParameterMapper.jsx:19 -msgid "Make sure to make a selection for each series, or the filter won't work on this card." -msgstr "ПереконайтеÑÑ Ñ‰Ð¾ зроблений вибір Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— з Ñерій, інакше фільтр не буде працювати на цій картці." - -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 -msgid "This dashboard is looking empty." -msgstr "Панель індикаторів здаєтьÑÑ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾." - -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 -msgid "Add a question to start making it useful!" -msgstr "Додайте Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ– зробіть Ñ—Ñ— кориÑною!" - -#: frontend/src/metabase/dashboard/components/DashboardActions.jsx:38 -msgid "Daytime mode" -msgstr "денний режим" - -#: frontend/src/metabase/dashboard/components/DashboardActions.jsx:38 -msgid "Nighttime mode" -msgstr "Ðічний режим" - -#: frontend/src/metabase/dashboard/components/DashboardActions.jsx:56 -msgid "Exit fullscreen" -msgstr "Вихід з повноекранного режиму" - -#: frontend/src/metabase/dashboard/components/DashboardActions.jsx:56 -msgid "Enter fullscreen" -msgstr "Повноекранний режим" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 -msgid "Saving…" -msgstr "Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ ..." - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 -msgid "Add a question" -msgstr "Додати запит" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 -msgid "Add a question to this dashboard" -msgstr "Додати запит до цієї панелі інÑтрументів" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 -msgid "Add a filter" -msgstr "Додати фільтр" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 -msgid "Parameters" -msgstr "параметри" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 -msgid "Add a text box" -msgstr "Додати текÑтове поле" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 -msgid "Move dashboard" -msgstr "ПереміÑти панелі інÑтрументів" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 -msgid "Edit dashboard" -msgstr "Змінити панель інÑтрументів" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 -msgid "Edit Dashboard Layout" -msgstr "Змінити макет панелі інÑтрументів" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 -msgid "You are editing a dashboard" -msgstr "Ви редагуєте панель інÑтрументів" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 -msgid "Select the field that should be filtered for each card" -msgstr "Виберіть поле, Ñке повинно бути фільтром в кожній з карт" - -#: frontend/src/metabase/dashboard/components/DashboardMoveModal.jsx:31 -msgid "Move dashboard to..." -msgstr "ПереміÑтити панелі інÑтрументів" - -#: frontend/src/metabase/dashboard/components/DashboardMoveModal.jsx:55 -msgid "Dashboard moved to {0}" -msgstr "Панель інÑтрументів переміщена в {0}" - -#: frontend/src/metabase/dashboard/components/ParametersPopover.jsx:82 -msgid "What do you want to filter?" -msgstr "Що ви хочете відфільтрувати?" - -#: frontend/src/metabase/dashboard/components/ParametersPopover.jsx:115 -msgid "What kind of filter?" -msgstr "Який тип фільтра?" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:13 -#: frontend/src/metabase/visualizations/lib/settings/column.js:231 -#: frontend/src/metabase/visualizations/lib/settings/series.js:90 -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:247 -msgid "Off" -msgstr "Вимкнути" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:14 -msgid "1 minute" -msgstr "1 хвилина" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:15 -msgid "5 minutes" -msgstr "5 хвилин" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:16 -msgid "10 minutes" -msgstr "10 хвилин" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:17 -msgid "15 minutes" -msgstr "15 хвилин" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:18 -msgid "30 minutes" -msgstr "30 хвилин" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:19 -msgid "60 minutes" -msgstr "60 хвилин" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 -msgid "Auto-refresh" -msgstr "автопоновленнÑ" - -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 -msgid "Refreshing in" -msgstr "Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ·" - -#: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:36 -msgid "Remove this question?" -msgstr "Видалити цей запит?" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:74 -msgid "Your dashboard was saved" -msgstr "Ваша панель інÑтрументів була збережена" - -#: frontend/src/metabase/components/CollectionLanding.jsx:744 -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 -msgid "See it" -msgstr "переглÑнути" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:141 -msgid "Save this" -msgstr "зберегти" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:173 -msgid "Show more about this" -msgstr "Показати більше про це" - -#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:143 -msgid "This card doesn't have any fields or parameters that can be mapped to this parameter type." -msgstr "Картка не міÑтить полів або параметрів Ñкі можуть бути ÑпівÑтавлені з цим типом параметра." - -#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:145 -msgid "The values in this field don't overlap with the values of any other fields you've chosen." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ Ð½Ðµ покривають Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ñ–Ñких полів, Ñкі ви вибрали." - -#: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:185 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.jsx:37 -msgid "No valid fields" -msgstr "Ðемає коректних полів" - -#: frontend/src/metabase/entities/collections.js:98 -msgid "Name must be 100 characters or less" -msgstr "Ім'Ñ Ð½Ðµ повинно перевищувати 100 Ñимволів" - -#: frontend/src/metabase/entities/collections.js:112 -msgid "Color is required" -msgstr "колір обов'Ñзковий" - -#: frontend/src/metabase/entities/dashboards.js:143 -msgid "What is the name of your dashboard?" -msgstr "Як називаєтьÑÑ Ð²Ð°ÑˆÐ° панель інÑтрументів?" - -#: frontend/src/metabase/home/components/Activity.jsx:94 -msgid "did some super awesome stuff that's hard to describe" -msgstr "зробив Ñупер-пупер фінт, Ñкий Ñкладно опиÑати Ñловами" - -#: frontend/src/metabase/home/components/Activity.jsx:103 -#: frontend/src/metabase/home/components/Activity.jsx:118 -msgid "created an alert about - " -msgstr "Ñтворив Ð¾Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ -" - -#: frontend/src/metabase/home/components/Activity.jsx:128 -#: frontend/src/metabase/home/components/Activity.jsx:143 -msgid "deleted an alert about - " -msgstr "видалив Ð¾Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ -" - -#: frontend/src/metabase/home/components/Activity.jsx:154 -msgid "saved a question about " -msgstr "зберегти Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾" - -#: frontend/src/metabase/home/components/Activity.jsx:167 -msgid "saved a question" -msgstr "зберіг запит" - -#: frontend/src/metabase/home/components/Activity.jsx:171 -msgid "deleted a question" -msgstr "видалив запит" - -#: frontend/src/metabase/home/components/Activity.jsx:174 -msgid "created a dashboard" -msgstr "Ñтворив панель індикаторів" - -#: frontend/src/metabase/home/components/Activity.jsx:177 -msgid "deleted a dashboard" -msgstr "видалив панель індикаторів" - -#: frontend/src/metabase/home/components/Activity.jsx:183 -#: frontend/src/metabase/home/components/Activity.jsx:198 -msgid "added a question to the dashboard - " -msgstr "доавіл Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° панель індикаторів -" - -#: frontend/src/metabase/home/components/Activity.jsx:208 -#: frontend/src/metabase/home/components/Activity.jsx:223 -msgid "removed a question from the dashboard - " -msgstr "видалив Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· панелі індикаторів -" - -#: frontend/src/metabase/home/components/Activity.jsx:233 -#: frontend/src/metabase/home/components/Activity.jsx:240 -msgid "received the latest data from" -msgstr "оÑтанні дані отримані" - -#: frontend/src/metabase-lib/lib/Dimension.js:814 -#: frontend/src/metabase/home/components/Activity.jsx:246 -#: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 -msgid "Unknown" -msgstr "невідомо" - -#: frontend/src/metabase/home/components/Activity.jsx:253 -msgid "Hello World!" -msgstr "Привіт Світ!" - -#: frontend/src/metabase/home/components/Activity.jsx:254 -msgid "Metabase is up and running." -msgstr "Metabase запущено" - -#: frontend/src/metabase/home/components/Activity.jsx:260 -#: frontend/src/metabase/home/components/Activity.jsx:290 -msgid "added the metric " -msgstr "додав метрику" - -#: frontend/src/metabase/home/components/Activity.jsx:274 -#: frontend/src/metabase/home/components/Activity.jsx:364 -msgid " to the " -msgstr "до" - -#: frontend/src/metabase/home/components/Activity.jsx:284 -#: frontend/src/metabase/home/components/Activity.jsx:324 -#: frontend/src/metabase/home/components/Activity.jsx:374 -#: frontend/src/metabase/home/components/Activity.jsx:415 -msgid " table" -msgstr "таблицÑ" - -#: frontend/src/metabase/home/components/Activity.jsx:300 -#: frontend/src/metabase/home/components/Activity.jsx:330 -msgid "made changes to the metric " -msgstr "змінив метрику" - -#: frontend/src/metabase/home/components/Activity.jsx:314 -#: frontend/src/metabase/home/components/Activity.jsx:405 -msgid " in the " -msgstr "в" - -#: frontend/src/metabase/home/components/Activity.jsx:337 -msgid "removed the metric " -msgstr "видалив метрику" - -#: frontend/src/metabase/home/components/Activity.jsx:340 -msgid "created a pulse" -msgstr "Створив ПульÑ" - -#: frontend/src/metabase/home/components/Activity.jsx:343 -msgid "deleted a pulse" -msgstr "Видалив ПульÑ" - -#: frontend/src/metabase/home/components/Activity.jsx:349 -#: frontend/src/metabase/home/components/Activity.jsx:380 -msgid "added the filter" -msgstr "Додати фільтр" - -#: frontend/src/metabase/home/components/Activity.jsx:390 -#: frontend/src/metabase/home/components/Activity.jsx:421 -msgid "made changes to the filter" -msgstr "змінив фільтр" - -#: frontend/src/metabase/home/components/Activity.jsx:428 -msgid "removed the filter {0}" -msgstr "видалив фільтр {0}" - -#: frontend/src/metabase/home/components/Activity.jsx:431 -msgid "joined!" -msgstr "прієднавÑÑ!" - -#: frontend/src/metabase/home/components/Activity.jsx:531 -msgid "Hmmm, looks like nothing has happened yet." -msgstr "Хммм, Ñхоже нічого не ÑталоÑÑ." - -#: frontend/src/metabase/home/components/Activity.jsx:534 -msgid "Save a question and get this baby going!" -msgstr "Збережіть Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ– змуÑьте цю дитинку йти!" - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:19 -msgid "Ask questions and explore" -msgstr "Задати Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ– доÑліджувати" - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:20 -msgid "Click on charts or tables to explore, or ask a new question using the easy interface or the powerful SQL editor." -msgstr "ÐатиÑніть на графіках або таблицÑÑ… Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ щоб доÑлідити дані, Ñтворити новий запит в проÑтому інтерфейÑÑ– або повноцінному SQL-редакторі." - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:30 -msgid "Make your own charts" -msgstr "Створити влаÑні графіки" - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:31 -msgid "Create line charts, scatter plots, maps, and more." -msgstr "Створити лінійні графіки, графіки розкиду, карти та інше." - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:41 -msgid "Share what you find" -msgstr "ПоділітьÑÑ Ñ‚Ð¸Ð¼ що знайшли" - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:42 -msgid "Create powerful and flexible dashboards, and send regular updates via email or Slack." -msgstr "Створити потужні та гнучкі панелі інÑтрументі Ñ– отримувати регулÑрні Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· email або Slack." - -#: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 -msgid "Let's go" -msgstr "почнемо" - -#: frontend/src/metabase/home/components/NextStep.jsx:34 -msgid "Setup Tip" -msgstr "Порада щодо налаштуваннÑ" - -#: frontend/src/metabase/home/components/NextStep.jsx:40 -msgid "View all" -msgstr "переглÑнутиÑÑ Ð²Ñе" - -#: frontend/src/metabase/home/components/RecentViews.jsx:40 -msgid "Recently Viewed" -msgstr "Ðещодавно переглÑнуті" - -#: frontend/src/metabase/home/components/RecentViews.jsx:75 -msgid "You haven't looked at any dashboards or questions recently" -msgstr "Ви не переглÑдали жодних панелей чи запитів оÑтаннім чаÑом" - -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:102 -msgid "{0} items selected" -msgstr "{0} елементів вибрано" - -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:124 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:174 -msgid "Unarchive" -msgstr "Розархівувати" - -#: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 -msgid "Activity" -msgstr "ÐктивніÑÑ‚ÑŒ" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 -msgid "Results for \"{0}\"" -msgstr "Результати Ð´Ð»Ñ \"{0}\"" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:138 -msgid "Pulse" -msgstr "ПульÑ" - -#: frontend/src/metabase/lib/core.js:7 -msgid "Entity Key" -msgstr "Ключ Ñуб'єкта" - -#: frontend/src/metabase/lib/core.js:8 frontend/src/metabase/lib/core.js:14 -#: frontend/src/metabase/lib/core.js:20 -msgid "Overall Row" -msgstr "вÑього Ñ€Ñдків" - -#: frontend/src/metabase/lib/core.js:9 -msgid "The primary key for this table." -msgstr "Первинний ключ Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ–" - -#: frontend/src/metabase/lib/core.js:13 -msgid "Entity Name" -msgstr "Ðазва Ñуті" - -#: frontend/src/metabase/lib/core.js:15 -msgid "The \"name\" of each record. Usually a column called \"name\", \"title\", etc." -msgstr "Ім'Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ запиÑу. Зазвичай викориÑтовуютьÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ¸ \"ім'Ñ\", \"заголовок\" та інші." - -#: frontend/src/metabase/lib/core.js:19 -msgid "Foreign Key" -msgstr "Зовнішній ключ" - -#: frontend/src/metabase/lib/core.js:21 -msgid "Points to another table to make a connection." -msgstr "Вказує на іншу таблицю Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·'єднаннÑ." - -#: frontend/src/metabase/lib/core.js:25 -msgid "Avatar Image URL" -msgstr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° аватар" - -#: frontend/src/metabase/lib/core.js:26 frontend/src/metabase/lib/core.js:31 -#: frontend/src/metabase/lib/core.js:36 frontend/src/metabase/lib/core.js:41 -#: frontend/src/metabase/lib/core.js:46 frontend/src/metabase/lib/core.js:51 -#: frontend/src/metabase/lib/core.js:56 frontend/src/metabase/lib/core.js:61 -#: frontend/src/metabase/lib/core.js:66 frontend/src/metabase/lib/core.js:71 -#: frontend/src/metabase/lib/core.js:76 frontend/src/metabase/lib/core.js:81 -#: frontend/src/metabase/lib/core.js:86 frontend/src/metabase/lib/core.js:91 -#: frontend/src/metabase/lib/core.js:96 frontend/src/metabase/lib/core.js:101 -#: frontend/src/metabase/lib/core.js:106 frontend/src/metabase/lib/core.js:111 -#: frontend/src/metabase/lib/core.js:116 frontend/src/metabase/lib/core.js:121 -#: frontend/src/metabase/lib/core.js:126 frontend/src/metabase/lib/core.js:131 -#: frontend/src/metabase/lib/core.js:136 frontend/src/metabase/lib/core.js:141 -#: frontend/src/metabase/lib/core.js:146 frontend/src/metabase/lib/core.js:151 -#: frontend/src/metabase/lib/core.js:156 frontend/src/metabase/lib/core.js:161 -#: frontend/src/metabase/lib/core.js:166 frontend/src/metabase/lib/core.js:171 -#: frontend/src/metabase/lib/core.js:176 frontend/src/metabase/lib/core.js:181 -#: frontend/src/metabase/lib/core.js:186 frontend/src/metabase/lib/core.js:191 -#: frontend/src/metabase/lib/core.js:196 frontend/src/metabase/lib/core.js:201 -#: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 -#: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 -#: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 -msgid "Common" -msgstr "Загальна" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:134 -#: frontend/src/metabase/lib/core.js:30 -#: frontend/src/metabase/meta/Dashboard.js:81 -#: frontend/src/metabase/modes/components/actions/PivotByCategoryAction.jsx:9 -msgid "Category" -msgstr "КатегоріÑ" - -#: frontend/src/metabase/lib/core.js:35 -#: frontend/src/metabase/meta/Dashboard.js:61 -msgid "City" -msgstr "МіÑто" - -#: frontend/src/metabase/lib/core.js:40 -#: frontend/src/metabase/meta/Dashboard.js:73 -msgid "Country" -msgstr "Країна" - -#: frontend/src/metabase/lib/core.js:60 -msgid "Enum" -msgstr "ÑпиÑок" - -#: frontend/src/metabase/lib/core.js:65 -msgid "Image URL" -msgstr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° зображеннÑ" - -#: frontend/src/metabase/lib/core.js:70 -msgid "Field containing JSON" -msgstr "Поле, що міÑтить JSON" - -#: frontend/src/metabase/lib/core.js:75 -msgid "Latitude" -msgstr "широта" - -#: frontend/src/metabase/lib/core.js:80 -msgid "Longitude" -msgstr "довгота" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:138 -#: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 -msgid "Number" -msgstr "чиÑло" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:19 -#: frontend/src/metabase/lib/core.js:90 -#: frontend/src/metabase/meta/Dashboard.js:65 -msgid "State" -msgstr "Штат" - -#: frontend/src/metabase/lib/core.js:95 -msgid "UNIX Timestamp (Seconds)" -msgstr "Ð§Ð°Ñ UNIX (Ñекунди)" - -#: frontend/src/metabase/lib/core.js:100 -msgid "UNIX Timestamp (Milliseconds)" -msgstr "Ð§Ð°Ñ UNIX (міліÑекунди)" - -#: frontend/src/metabase/lib/core.js:110 -msgid "Zip Code" -msgstr "ZIP-код" - -#: frontend/src/metabase/lib/core.js:115 -msgid "Quantity" -msgstr "кількіÑÑ‚ÑŒ" - -#: frontend/src/metabase/lib/core.js:120 -msgid "Income" -msgstr "Дохід" - -#: frontend/src/metabase/lib/core.js:125 -msgid "Discount" -msgstr "Знижка" - -#: frontend/src/metabase/lib/core.js:130 -msgid "Creation timestamp" -msgstr "Відмітка чаÑу ÑтвореннÑ" - -#: frontend/src/metabase/lib/core.js:135 -msgid "Creation time" -msgstr "Ð§Ð°Ñ ÑтвореннÑ" - -#: frontend/src/metabase/lib/core.js:140 -msgid "Creation date" -msgstr "дата ÑтвореннÑ" - -#: frontend/src/metabase/lib/core.js:145 -msgid "Product" -msgstr "продукт" - -#: frontend/src/metabase/lib/core.js:150 -msgid "User" -msgstr "КориÑтувач" - -#: frontend/src/metabase/lib/core.js:155 -msgid "Source" -msgstr "джерело" - -#: frontend/src/metabase/lib/core.js:160 -msgid "Price" -msgstr "Ціна" - -#: frontend/src/metabase/lib/core.js:165 -msgid "Join timestamp" -msgstr "Відмітка чаÑу приєднаннÑ" - -#: frontend/src/metabase/lib/core.js:170 -msgid "Join time" -msgstr "Ñ‡Ð°Ñ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ð½Ð½Ñ" - -#: frontend/src/metabase/lib/core.js:175 -msgid "Join date" -msgstr "Дата приєднаннÑ" - -#: frontend/src/metabase/lib/core.js:180 -msgid "Share" -msgstr "ПоділитиÑÑ" - -#: frontend/src/metabase/lib/core.js:185 -msgid "Owner" -msgstr "влаÑник" - -#: frontend/src/metabase/lib/core.js:190 -msgid "Company" -msgstr "компаніÑ" - -#: frontend/src/metabase/lib/core.js:195 -msgid "Subscription" -msgstr "ПідпиÑка" - -#: frontend/src/metabase/lib/core.js:200 -msgid "Score" -msgstr "результат" - -#: frontend/src/metabase/lib/core.js:210 -#: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 -#: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 -msgid "Title" -msgstr "Заголовок" - -#: frontend/src/metabase/lib/core.js:215 -msgid "Comment" -msgstr "коментар" - -#: frontend/src/metabase/lib/core.js:220 -msgid "Cost" -msgstr "вартіÑÑ‚ÑŒ" - -#: frontend/src/metabase/lib/core.js:225 -msgid "Gross margin" -msgstr "Валовий прибуток" - -#: frontend/src/metabase/lib/core.js:230 -msgid "Birthday" -msgstr "дата народженнÑ" - -#: frontend/src/metabase/lib/core.js:241 -msgid "Search box" -msgstr "Поле Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ" - -#: frontend/src/metabase/lib/core.js:242 -msgid "A list of all values" -msgstr "СпиÑок значень" - -#: frontend/src/metabase/lib/core.js:243 -msgid "Plain input box" -msgstr "Поле Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑту" - -#: frontend/src/metabase/lib/core.js:249 -msgid "Everywhere" -msgstr "Ð’Ñюди" - -#: frontend/src/metabase/lib/core.js:250 -msgid "The default setting. This field will be displayed normally in tables and charts." -msgstr "За замовчуваннÑм дане поле буде відображатиÑÑ Ð² таблицÑÑ… Ñ– на графіках." - -#: frontend/src/metabase/lib/core.js:254 -msgid "Only in Detail Views" -msgstr "Тільки в детальному переглÑді" - -#: frontend/src/metabase/lib/core.js:255 -msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." -msgstr "Дане поле буде відображено тільки при переглÑді інформації про окремого запиÑу, призначене Ð´Ð»Ñ Ð²ÐµÐ»Ð¸ÐºÐ¾Ð³Ð¾ обÑÑгу інформації, необов'Ñзкового Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð² таблицÑÑ… Ñ– на графіках." - -#: frontend/src/metabase/lib/core.js:259 -msgid "Do Not Include" -msgstr "Ðе вмикати" - -#: frontend/src/metabase/lib/core.js:260 -msgid "Metabase will never retrieve this field. Use this for sensitive or irrelevant information." -msgstr "Metabase ніколи не отримає це поле. ВикориÑтовуйте Ð´Ð»Ñ Ñ‡ÑƒÑ‚Ð»Ð¸Ð²Ð¾Ñ— ​​нерелевантною інформації." - -#: frontend/src/metabase/lib/expressions/config.js:7 -#: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 -#: src/metabase/query_processor/middleware/annotate.clj -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "Count" -msgstr "кількіÑÑ‚ÑŒ" - -#: frontend/src/metabase/lib/expressions/config.js:8 -msgid "CumulativeCount" -msgstr "Ðакопичувальне кількіÑÑ‚ÑŒ" - -#: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 -msgid "Sum" -msgstr "Ñума" - -#: frontend/src/metabase/lib/expressions/config.js:10 -msgid "CumulativeSum" -msgstr "Ðакопичувальна Ñума" - -#: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 -msgid "Distinct" -msgstr "унікальні" - -#: frontend/src/metabase/lib/expressions/config.js:12 -msgid "StandardDeviation" -msgstr "Стандартне відхиленнÑ" - -#: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 -msgid "Average" -msgstr "Ñереднє" - -#: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 -msgid "Min" -msgstr "Мінімальна" - -#: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 -msgid "Max" -msgstr "макÑимальне" - -#: frontend/src/metabase/lib/expressions/parser.js:386 -msgid "sad sad panda, lexing errors detected" -msgstr "Ñумна Ñумна панда, виÑвлені лекÑичні помилки" - -#: frontend/src/metabase/lib/formatting.js:787 -msgid "{0} second" -msgid_plural "{0} seconds" -msgstr[0] "{0} Ñекунда" -msgstr[1] "{0} Ñекунд" -msgstr[2] "{0} Ñекунд" -msgstr[3] "{0} Ñекунды" - -#: frontend/src/metabase/lib/formatting.js:790 -msgid "{0} minute" -msgid_plural "{0} minutes" -msgstr[0] "{0} хвилина" -msgstr[1] "{0} хвилин" -msgstr[2] "{0} хвилин" -msgstr[3] "{0} хвилин" - -#: frontend/src/metabase/lib/greeting.js:4 -msgid "Hey there" -msgstr "Привіт" - -#: frontend/src/metabase/lib/greeting.js:5 -#: frontend/src/metabase/lib/greeting.js:29 -msgid "How's it going" -msgstr "Як Ñправи" - -#: frontend/src/metabase/lib/greeting.js:6 -msgid "Howdy" -msgstr "Привіт" - -#: frontend/src/metabase/lib/greeting.js:7 -msgid "Greetings" -msgstr "ВітаннÑ" - -#: frontend/src/metabase/lib/greeting.js:8 -msgid "Good to see you" -msgstr "Раді Ð²Ð°Ñ Ð±Ð°Ñ‡Ð¸Ñ‚Ð¸" - -#: frontend/src/metabase/lib/greeting.js:12 -msgid "What do you want to know?" -msgstr "Що ви хочете дізнатиÑÑ?" - -#: frontend/src/metabase/lib/greeting.js:13 -msgid "What's on your mind?" -msgstr "Що в Ð²Ð°Ñ Ð½Ð° думці?" - -#: frontend/src/metabase/lib/greeting.js:14 -msgid "What do you want to find out?" -msgstr "Що ви хочете дізнатиÑÑ?" - -#: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 -msgid "Raw data" -msgstr "Вихідні дані" - -#: frontend/src/metabase/lib/query.js:302 -msgid "Cumulative count" -msgstr "Ðакопичувальне кількіÑÑ‚ÑŒ" - -#: frontend/src/metabase/lib/query.js:305 -msgid "Average of " -msgstr "Ñереднє" - -#: frontend/src/metabase/lib/query.js:310 -msgid "Distinct values of " -msgstr "унікальні значеннÑ" - -#: frontend/src/metabase/lib/query.js:315 -msgid "Standard deviation of " -msgstr "Стандартне відхиленнÑ" - -#: frontend/src/metabase/lib/query.js:320 -msgid "Sum of " -msgstr "Ñума" - -#: frontend/src/metabase/lib/query.js:325 -msgid "Cumulative sum of " -msgstr "Ðакопичувальна Ñума" - -#: frontend/src/metabase/lib/query.js:330 -msgid "Maximum of " -msgstr "макÑимум" - -#: frontend/src/metabase/lib/query.js:335 -msgid "Minimum of " -msgstr "мінімум" - -#: frontend/src/metabase/lib/query.js:349 -msgid "Grouped by " -msgstr "згруповано за" - -#: frontend/src/metabase/lib/query.js:363 -msgid "Filtered by " -msgstr "відфільтровано по" - -#: frontend/src/metabase/lib/query.js:392 -msgid "Sorted by " -msgstr "згруповано за" - -#: frontend/src/metabase/lib/schema_metadata.js:227 -msgid "True" -msgstr "Ñ–Ñтина" - -#: frontend/src/metabase/lib/schema_metadata.js:227 -msgid "False" -msgstr "брехнÑ" - -#: frontend/src/metabase/lib/schema_metadata.js:311 -msgid "Select longitude field" -msgstr "Виберіть поле з довготою" - -#: frontend/src/metabase/lib/schema_metadata.js:312 -msgid "Enter upper latitude" -msgstr "Введіть верхню широту" - -#: frontend/src/metabase/lib/schema_metadata.js:313 -msgid "Enter left longitude" -msgstr "Введіть ліву довготу" - -#: frontend/src/metabase/lib/schema_metadata.js:314 -msgid "Enter lower latitude" -msgstr "Введіть нижню широту" - -#: frontend/src/metabase/lib/schema_metadata.js:315 -msgid "Enter right longitude" -msgstr "Введіть праву довготу" - -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 -msgid "Is" -msgstr "-" - -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 -msgid "Is not" -msgstr "Чи не" - -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 -msgid "Is empty" -msgstr "ПуÑто" - -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 -msgid "Not empty" -msgstr "Чи не порожньо" - -#: frontend/src/metabase/lib/schema_metadata.js:360 -msgid "Equal to" -msgstr "Так Ñамо" - -#: frontend/src/metabase/lib/schema_metadata.js:361 -msgid "Not equal to" -msgstr "Ðе дорівнює" - -#: frontend/src/metabase/lib/schema_metadata.js:362 -msgid "Greater than" -msgstr "Більше ніж" - -#: frontend/src/metabase/lib/schema_metadata.js:363 -msgid "Less than" -msgstr "Менше ніж" - -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 -#: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 -msgid "Between" -msgstr "між" - -#: frontend/src/metabase/lib/schema_metadata.js:365 -msgid "Greater than or equal to" -msgstr "Більше або дорівнює" - -#: frontend/src/metabase/lib/schema_metadata.js:366 -msgid "Less than or equal to" -msgstr "Менше або дорівнює" - -#: frontend/src/metabase/lib/schema_metadata.js:373 -msgid "Contains" -msgstr "міÑтить" - -#: frontend/src/metabase/lib/schema_metadata.js:374 -msgid "Does not contain" -msgstr "Ðе міÑтить" - -#: frontend/src/metabase/lib/schema_metadata.js:377 -msgid "Starts with" -msgstr "ПочинаєтьÑÑ Ð·" - -#: frontend/src/metabase/lib/schema_metadata.js:378 -msgid "Ends with" -msgstr "закінчуєтьÑÑ" - -#: frontend/src/metabase/lib/schema_metadata.js:388 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 -#: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 -msgid "Before" -msgstr "до" - -#: frontend/src/metabase/lib/schema_metadata.js:389 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 -#: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 -msgid "After" -msgstr "піÑлÑ" - -#: frontend/src/metabase/lib/schema_metadata.js:403 -msgid "Inside" -msgstr "уÑередині" - -#: frontend/src/metabase/lib/schema_metadata.js:460 -msgid "Just a table with the rows in the answer, no additional operations." -msgstr "ПроÑто Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð· Ñ€Ñдками результатів, без додаткових операцій." - -#: frontend/src/metabase/lib/schema_metadata.js:466 -msgid "Count of rows" -msgstr "КількіÑÑ‚ÑŒ запиÑів" - -#: frontend/src/metabase/lib/schema_metadata.js:468 -msgid "Total number of rows in the answer." -msgstr "Загальна кількіÑÑ‚ÑŒ Ñ€Ñдків у відповіді" - -#: frontend/src/metabase/lib/schema_metadata.js:474 -msgid "Sum of ..." -msgstr "КількіÑÑ‚ÑŒ ..." - -#: frontend/src/metabase/lib/schema_metadata.js:476 -msgid "Sum of all the values of a column." -msgstr "КількіÑÑ‚ÑŒ вÑÑ–Ñ… значень колонки." - -#: frontend/src/metabase/lib/schema_metadata.js:482 -msgid "Average of ..." -msgstr "Середнє ..." - -#: frontend/src/metabase/lib/schema_metadata.js:484 -msgid "Average of all the values of a column" -msgstr "Середнє вÑÑ–Ñ… значень колонки." - -#: frontend/src/metabase/lib/schema_metadata.js:490 -msgid "Number of distinct values of ..." -msgstr "Унікальні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ..." - -#: frontend/src/metabase/lib/schema_metadata.js:492 -msgid "Number of unique values of a column among all the rows in the answer." -msgstr "КількіÑÑ‚ÑŒ унікальних значень ÑÑ‚Ð¾Ð²Ð¿Ñ†Ñ Ñеред вÑÑ–Ñ… запиÑів у відповіді." - -#: frontend/src/metabase/lib/schema_metadata.js:498 -msgid "Cumulative sum of ..." -msgstr "Сума нароÑтаючим підÑумком ..." - -#: frontend/src/metabase/lib/schema_metadata.js:493 -msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." -msgstr "Сукупна Ñума вÑÑ–Ñ… значень ÑтовпцÑ. \\\\ ne.x. вÑього дохід за чаÑовий інтервал." - -#: frontend/src/metabase/lib/schema_metadata.js:506 -msgid "Cumulative count of rows" -msgstr "ÐароÑтаючий підÑумок" - -#: frontend/src/metabase/lib/schema_metadata.js:501 -msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." -msgstr "Сукупна кількіÑÑ‚ÑŒ запиÑів. \\\\ ne.x. вÑього продажів за чаÑовий інтервал." - -#: frontend/src/metabase/lib/schema_metadata.js:514 -msgid "Standard deviation of ..." -msgstr "Стандартне відхиленнÑ…" - -#: frontend/src/metabase/lib/schema_metadata.js:516 -msgid "Number which expresses how much the values of a column vary among all rows in the answer." -msgstr "ЧиÑло, що відображає наÑкільки Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑÑ‚Ð¾Ð²Ð¿Ñ†Ñ Ð²Ñ–Ð´Ñ…Ð¸Ð»ÑÑŽÑ‚ÑŒÑÑ Ð²Ñ–Ð´ вÑÑ–Ñ… запиÑів відповіді." - -#: frontend/src/metabase/lib/schema_metadata.js:522 -msgid "Minimum of ..." -msgstr "Мінімум ..." - -#: frontend/src/metabase/lib/schema_metadata.js:524 -msgid "Minimum value of a column" -msgstr "Мінімальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑтовпцÑ" - -#: frontend/src/metabase/lib/schema_metadata.js:530 -msgid "Maximum of ..." -msgstr "МакÑимум ..." - -#: frontend/src/metabase/lib/schema_metadata.js:532 -msgid "Maximum value of a column" -msgstr "МакÑимальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ¸" - -#: frontend/src/metabase/lib/schema_metadata.js:540 -msgid "Break out by dimension" -msgstr "Розбити по вимірюванню" - -#: frontend/src/metabase/lib/settings.js:108 -msgid "lower case letter" -msgstr "буква в нижньому регіÑтрі" - -#: frontend/src/metabase/lib/settings.js:110 -msgid "upper case letter" -msgstr "буква в верхньому регіÑтрі" - -#: frontend/src/metabase/lib/settings.js:112 -#: src/metabase/automagic_dashboards/core.clj -msgid "number" -msgstr "чиÑло" - -#: frontend/src/metabase/lib/settings.js:114 -msgid "special character" -msgstr "Ñпеціальний Ñимвол" - -#: frontend/src/metabase/lib/settings.js:120 -msgid "must be" -msgstr "повинен міÑтити не менше" - -#: frontend/src/metabase/lib/settings.js:120 -#: frontend/src/metabase/lib/settings.js:121 -msgid "characters long" -msgstr "Ñимволів" - -#: frontend/src/metabase/lib/settings.js:121 -msgid "Must be" -msgstr "Повинен міÑтити не менш" - -#: frontend/src/metabase/lib/settings.js:137 -msgid "and include" -msgstr "Ñ– міÑтити Ñк мінімум" - -#: frontend/src/metabase/lib/utils.js:85 -msgid "zero" -msgstr "нуль" - -#: frontend/src/metabase/lib/utils.js:86 -msgid "one" -msgstr "один" - -#: frontend/src/metabase/lib/utils.js:87 -msgid "two" -msgstr "два" - -#: frontend/src/metabase/lib/utils.js:88 -msgid "three" -msgstr "три" - -#: frontend/src/metabase/lib/utils.js:89 -msgid "four" -msgstr "чотири" - -#: frontend/src/metabase/lib/utils.js:90 -msgid "five" -msgstr "п'ÑÑ‚ÑŒ" - -#: frontend/src/metabase/lib/utils.js:91 -msgid "six" -msgstr "шіÑÑ‚ÑŒ" - -#: frontend/src/metabase/lib/utils.js:92 -msgid "seven" -msgstr "Ñім" - -#: frontend/src/metabase/lib/utils.js:93 -msgid "eight" -msgstr "віÑім" - -#: frontend/src/metabase/lib/utils.js:94 -msgid "nine" -msgstr "дев'ÑÑ‚ÑŒ" - -#: frontend/src/metabase/meta/Dashboard.js:30 -msgid "Month and Year" -msgstr "МіÑÑць Ñ– рік" - -#: frontend/src/metabase/meta/Dashboard.js:31 -msgid "Like January, 2016" -msgstr "Ðаприклад, Январь 2016" - -#: frontend/src/metabase/meta/Dashboard.js:35 -msgid "Quarter and Year" -msgstr "Квартал Ñ– Рік" - -#: frontend/src/metabase/meta/Dashboard.js:36 -msgid "Like Q1, 2016" -msgstr "Ðаприклад, 1Q 2016" - -#: frontend/src/metabase/meta/Dashboard.js:40 -msgid "Single Date" -msgstr "одна Дата" - -#: frontend/src/metabase/meta/Dashboard.js:41 -msgid "Like January 31, 2016" -msgstr "Ðаприклад, 31 ÑÑ–Ñ‡Ð½Ñ 2016" - -#: frontend/src/metabase/meta/Dashboard.js:45 -msgid "Date Range" -msgstr "діапазон дат" - -#: frontend/src/metabase/meta/Dashboard.js:46 -msgid "Like December 25, 2015 - February 14, 2016" -msgstr "Ðаприклад, 25 Ð³Ñ€ÑƒÐ´Ð½Ñ 2015 - 14 лютий 2016" - -#: frontend/src/metabase/meta/Dashboard.js:50 -msgid "Relative Date" -msgstr "відноÑна Дата" - -#: frontend/src/metabase/meta/Dashboard.js:51 -msgid "Like \"the last 7 days\" or \"this month\"" -msgstr "Ðаприклад, \"оÑтанні 7 днів\" або \"цей міÑÑць\"" - -#: frontend/src/metabase/meta/Dashboard.js:55 -msgid "Date Filter" -msgstr "Фільтр за датою" - -#: frontend/src/metabase/meta/Dashboard.js:56 -msgid "All Options" -msgstr "вÑÑ– опції" - -#: frontend/src/metabase/meta/Dashboard.js:57 -msgid "Contains all of the above" -msgstr "Включає вÑе що перераховано нижче" - -#: frontend/src/metabase/meta/Dashboard.js:69 -msgid "ZIP or Postal Code" -msgstr "ZIP або Поштовий код" - -#: frontend/src/metabase/meta/Dashboard.js:77 -#: frontend/src/metabase/meta/Dashboard.js:107 -msgid "ID" -msgstr "ВД" - -#: frontend/src/metabase/meta/Dashboard.js:95 -#: frontend/src/metabase/modes/components/actions/PivotByTimeAction.jsx:8 -msgid "Time" -msgstr "чаÑ" - -#: frontend/src/metabase/meta/Dashboard.js:96 -msgid "Date range, relative date, time of day, etc." -msgstr "ЧаÑовий інтервал, відноÑна дата, Ñ‡Ð°Ñ Ð´Ð½Ñ, інше." - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:124 -#: frontend/src/metabase/meta/Dashboard.js:101 -#: frontend/src/metabase/modes/components/actions/PivotByLocationAction.jsx:8 -msgid "Location" -msgstr "РозташуваннÑ" - -#: frontend/src/metabase/meta/Dashboard.js:102 -msgid "City, State, Country, ZIP code." -msgstr "МіÑто, Штат, Країна, ZIP код." - -#: frontend/src/metabase/meta/Dashboard.js:108 -msgid "User ID, product ID, event ID, etc." -msgstr "Ідентифікатор кориÑтувача, продукту, події, Ñ– Ñ‚.д." - -#: frontend/src/metabase/meta/Dashboard.js:113 -msgid "Other Categories" -msgstr "Інші категорії" - -#: frontend/src/metabase/meta/Dashboard.js:114 -msgid "Category, Type, Model, Rating, etc." -msgstr "КатегоріÑ, Тип, Модель, Рейтинг, інше." - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 -#: frontend/src/metabase/user/components/UserSettings.jsx:50 -msgid "Account settings" -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 -msgid "Exit admin" -msgstr "Вийти з адмініÑтруваннÑ" - -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 -msgid "Logs" -msgstr "СпиÑок" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 -msgid "Help" -msgstr "Допомога" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 -msgid "About Metabase" -msgstr "Про Metabase" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 -msgid "Sign out" -msgstr "Вихід" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 -msgid "Thanks for using" -msgstr "ДÑкуємо за викориÑтаннÑ" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 -msgid "You're on version" -msgstr "Ваша верÑÑ–Ñ" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 -msgid "Built on" -msgstr "Побудовано" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 -msgid "is a Trademark of" -msgstr "Торговий знак" - -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 -msgid "and is built with care in San Francisco, CA" -msgstr "Ñ– було Ñтворено з турботою в Сан ФранциÑко, КаліфорніÑ" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 -msgid "Metabase Admin" -msgstr "ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Metabase" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 -#: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 -#: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 -#: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 -msgid "Ask a question" -msgstr "Задати питаннÑ" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 -msgid "New dashboard" -msgstr "Ðова панель інÑтрументів" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 -msgid "New pulse" -msgstr "Ðова ПульÑ" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:323 -msgid "Reference" -msgstr "довідник" - -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:87 -msgid "Which metric?" -msgstr "Яка метрика?" - -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 -#: frontend/src/metabase/reference/metrics/MetricList.jsx:26 -msgid "Defining common metrics for your team makes it even easier to ask questions" -msgstr "Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… метрик Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ñ— команди ще більше полегшує ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ð°Ð½ÑŒ" - -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:117 -msgid "How to create metrics" -msgstr "Як Ñтворити метрики" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:138 -msgid "See data over time, as a map, or pivoted to help you understand trends or changes." -msgstr "ДивитьÑÑ Ð´Ð°Ð½Ñ– у чаÑÑ– у виглÑді карт та зведених таблиць Ð´Ð»Ñ Ñ€Ð¾Ð·ÑƒÐ¼Ñ–Ð½Ð½Ñ Ñ‚Ñ€ÐµÐ½Ð´Ñ–Ð² або змін" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:149 -msgid "Custom" -msgstr "МайÑтер запитів" - -#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 -msgid "New question" -msgstr "Ðовий запит" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:152 -msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." -msgstr "ВикориÑтовуйте проÑту програму ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð² Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду трендів, ÑпиÑків або ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð²Ð»Ð°Ñних метрик." - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 -#: src/metabase/automagic_dashboards/core.clj -#: resources/automagic_dashboards/table/example.yaml -msgid "Native query" -msgstr "ПрÑмий запит" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 -msgid "For more complicated questions, you can write your own SQL or native query." -msgstr "Ð”Ð»Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ñ– на більш Ñкладні запитаннÑ, ви можете напиÑати влаÑний SQL або прÑмий запит." - -#: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:245 -msgid "Select a default value…" -msgstr "Виберіть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° замовчуваннÑм ..." - -#: frontend/src/metabase/parameters/components/widgets/DateAllOptionsWidget.jsx:150 -#: frontend/src/metabase/query_builder/components/filters/FilterPopoverFooter.jsx:41 -msgid "Update filter" -msgstr "оновити фільтр" - -#: frontend/src/metabase/lib/query_time.js:112 -#: frontend/src/metabase/lib/query_time.js:123 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:9 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:144 -#: src/metabase/pulse/render/datetime.clj -msgid "Today" -msgstr "Сьогодні" - -#: frontend/src/metabase/lib/query_time.js:118 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:14 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:148 -#: src/metabase/pulse/render/datetime.clj -msgid "Yesterday" -msgstr "Вчора" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:18 -msgid "Past 7 days" -msgstr "Минулі 7 днів" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:19 -msgid "Past 30 days" -msgstr "Минулі 30 днів" - -#: frontend/src/metabase/lib/query_time.js:198 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:24 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:29 -#: src/metabase/api/table.clj -msgid "Week" -msgid_plural "Weeks" -msgstr[0] "тиждень" -msgstr[1] "тиждень" -msgstr[2] "тиждень" -msgstr[3] "тиждень" - -#: frontend/src/metabase/lib/query_time.js:200 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:25 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:30 -#: src/metabase/api/table.clj -msgid "Month" -msgid_plural "Months" -msgstr[0] "міÑÑць" -msgstr[1] "міÑÑць" -msgstr[2] "міÑÑць" -msgstr[3] "міÑÑць" - -#: frontend/src/metabase/lib/query_time.js:204 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:26 -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:31 -#: src/metabase/api/table.clj -msgid "Year" -msgid_plural "Years" -msgstr[0] "рік" -msgstr[1] "рік" -msgstr[2] "рік" -msgstr[3] "рік" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:152 -msgid "Past 7 Days" -msgstr "Минулі 7 днів" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:156 -msgid "Past 30 Days" -msgstr "Минулі 30 днів" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:160 -msgid "Last Week" -msgstr "оÑтанній тиждень" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:164 -msgid "Last Month" -msgstr "ОÑтанній міÑÑць" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:168 -msgid "Last Year" -msgstr "ОÑтанній рік" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:172 -msgid "This Week" -msgstr "Цей тиждень" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:176 -msgid "This Month" -msgstr "Цей міÑÑць" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:180 -msgid "This Year" -msgstr "Цей рік" - -#: frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget.jsx:89 -#: frontend/src/metabase/parameters/components/widgets/TextWidget.jsx:54 -msgid "Enter a value..." -msgstr "Введіть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ..." - -#: frontend/src/metabase/parameters/components/widgets/TextWidget.jsx:90 -msgid "Enter a default value..." -msgstr "Введіть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾-ÑƒÐ¼Ð¾Ð²Ñ‡Ð°Ð½Ð½Ñ ..." - -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 -#: frontend/src/metabase/public/components/PublicError.jsx:18 -msgid "An error occurred" -msgstr "Виникла помилка" - -#: frontend/src/metabase/public/components/PublicNotFound.jsx:11 -msgid "Not found" -msgstr "Ðе знайдено" - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:82 -msgid "You’ve made changes that need to be published before they will be reflected in your application embed." -msgstr "Ви зробили зміни, Ñкі повинні бути опубліковані перед тим Ñк вони відіб'ÑŽÑ‚ÑŒÑÑ Ñƒ вбудованому додатку." - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:83 -msgid "You will need to publish this {0} before you can embed it in another application." -msgstr "Ви повинні опублікувати {0} перед тим Ñк вбудувати це в інший додаток." - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:92 -msgid "Discard Changes" -msgstr "Відмінити зміни" - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:99 -msgid "Updating..." -msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ..." - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:100 -msgid "Updated" -msgstr "Оновлене" - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:101 -msgid "Failed!" -msgstr "Виникла помилка!" - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:102 -msgid "Publish" -msgstr "Опублікувати" - -#: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:111 -msgid "Code" -msgstr "код" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:72 -#: frontend/src/metabase/visualizations/lib/settings/column.js:282 -msgid "Style" -msgstr "Стиль" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:82 -msgid "Which parameters can users of this embed use?" -msgstr "Які параметри можуть викориÑтовуватиÑÑ Ð´Ð»Ñ Ð²Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ?" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:84 -msgid "This {0} doesn't have any parameters to configure yet." -msgstr "{0} не міÑтить параметрів, що наÑтроюютьÑÑ." - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:105 -msgid "Editable" -msgstr "редаговані" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:106 -msgid "Locked" -msgstr "заблоковано" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:113 -msgid "Preview Locked Parameters" -msgstr "Попередній переглÑд заблокованих параметрів" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:114 -msgid "Try passing some values to your locked parameters here. Your server will have to provide the actual values in the signed token when using this for real." -msgstr "Спробуйте додати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð¸Ñ… параметрів. Ðадалі ваш Ñервер буде надавати актуальні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð² підпиÑаному токені." - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:125 -msgid "Danger zone" -msgstr "небезпечна зона" - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:126 -msgid "This will disable embedding for this {0}." -msgstr "Це відключить Ð²ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ {0}." - -#: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:127 -msgid "Unpublish" -msgstr "ЗнÑти з публікації" - -#: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:17 -msgid "Light" -msgstr "Ñвітла" - -#: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:18 -msgid "Dark" -msgstr "темна" - -#: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:37 -msgid "Border" -msgstr "кордон" - -#: frontend/src/metabase/public/components/widgets/EmbedCodePane.jsx:62 -msgid "To embed this {0} in your application:" -msgstr "Ð”Ð»Ñ Ð²Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ {0} в ваш додаток:" - -#: frontend/src/metabase/public/components/widgets/EmbedCodePane.jsx:64 -msgid "Insert this code snippet in your server code to generate the signed embedding URL " -msgstr "Ð’Ñтавте це Ñниппет на ваш Ñервер Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ–Ñ— підпиÑаної поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð²Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ" - -#: frontend/src/metabase/public/components/widgets/EmbedCodePane.jsx:87 -msgid "Then insert this code snippet in your HTML template or single page app." -msgstr "Потім вÑтавте цей Ñниппет в ваш HTML шаблон або одноÑторінкове додаток (SPA)." - -#: frontend/src/metabase/public/components/widgets/EmbedCodePane.jsx:94 -msgid "Embed code snippet for your HTML or Frontend Application" -msgstr "Ð’Ñтавте Ñниппет в ваш HTML код або Frontend додаток" - -#: frontend/src/metabase/public/components/widgets/EmbedCodePane.jsx:101 -msgid "More {0}" -msgstr "Більше {0}" - -#: frontend/src/metabase/public/components/widgets/EmbedCodePane.jsx:103 -msgid "examples on GitHub" -msgstr "приклади на GitHub" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:71 -msgid "Enable sharing" -msgstr "Включити загальний доÑтуп" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:75 -msgid "Disable this public link?" -msgstr "Відключити цю публічну поÑиланнÑ?" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:76 -msgid "This will cause the existing link to stop working. You can re-enable it, but when you do it will be a different link." -msgstr "Це отлючіт працездатніÑÑ‚ÑŒ Ñ–Ñнуючої поÑиланнÑ. Ви можете повторно включити Ñ—Ñ—, але при цьому буде Ñтворено нову поÑиланнÑ." - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:116 -msgid "Public link" -msgstr "публічна поÑиланнÑ" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:117 -msgid "Share this {0} with people who don't have a Metabase account using the URL below:" -msgstr "ПоділитиÑÑ {0} з людьми, Ñкими не мають облікових запиÑів в Metabase викориÑтовуючи поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð¸Ð¶Ñ‡Ðµ:" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:154 -msgid "Public embed" -msgstr "Вбудувати в режимі загального доÑтупу" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:155 -msgid "Embed this {0} in blog posts or web pages by copying and pasting this snippet:" -msgstr "Вбудуйте {0} в Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±Ð»Ð¾Ð³Ñƒ чи веб-Ñторінки, Ñкопіювавши Ñ– вÑтавивши наÑтупний Ñниппет:" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:172 -msgid "Embed this {0} in an application" -msgstr "Вбудувати {0} в додаток" - -#: frontend/src/metabase/public/components/widgets/SharingPane.jsx:173 -msgid "By integrating with your application server code, you can provide a secure stats {0} limited to a specific user, customer, organization, etc." -msgstr "Ви можете інтегрувати в Ñерверну чаÑтину коду вашої програми безпечну ÑтатиÑтику {0}, обмежену конкретним кориÑтувачем, покупцем, організацією Ñ– Ñ‚.п." - -#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:93 -msgid "Remove attachment" -msgstr "Видалити додаток" - -#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:94 -msgid "Attach file with results" -msgstr "Прикріпити файл з результатами" - -#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:126 -msgid "This question will be added as a file attachment" -msgstr "Цей запит буде додано у виглÑді прикріпленого файлу" - -#: frontend/src/metabase/pulse/components/PulseCardPreview.jsx:127 -msgid "This question won't be included in your Pulse" -msgstr "Цей запит не може бути включений в ПульÑ" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:91 -msgid "This pulse will no longer be emailed to {0} {1}" -msgstr "Цей ÐŸÑƒÐ»ÑŒÑ Ð±Ñ–Ð»ÑŒÑˆÐµ не буде відправлÑтиÑÑ Ð½Ð° email {0} {1}" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:93 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:375 -msgid "{0} address" -msgid_plural "{0} addresses" -msgstr[0] "{0} ÐдреÑа" -msgstr[1] "{0} ÐдреÑи" -msgstr[2] "{0} ÐдреÑ" -msgstr[3] "{0} ÐдреÑи" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:102 -msgid "Slack channel {0} will no longer get this pulse {1}" -msgstr "Канал Slack {0} більше не буде отримувати цей Ð¿ÑƒÐ»ÑŒÑ {1}" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:111 -msgid "Channel {0} will no longer receive this pulse {1}" -msgstr "Канал {0} більше не буде отримувати цей Ð¿ÑƒÐ»ÑŒÑ {1}" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 -msgid "Edit pulse" -msgstr "Змінити пульÑ" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:133 -msgid "What's a Pulse?" -msgstr "Що таке ПульÑ?" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:143 -msgid "Got it" -msgstr "Зрозуміло" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:159 -msgid "Where should this data go?" -msgstr "Куди Ñлід відправити ці дані?" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:175 -msgid "Unarchiving…" -msgstr "Ð Ð¾Ð·Ð°Ñ€Ñ…Ñ–Ð²Ð°Ñ†Ñ–Ñ ..." - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:176 -msgid "Unarchive failed" -msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·Ð°Ñ€Ñ…Ñ–Ð²ÑƒÐ²Ð°Ñ‚Ð¸" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:177 -msgid "Unarchived" -msgstr "Розархівовано" - -#: frontend/src/metabase/pulse/components/PulseEdit.jsx:184 -msgid "Create pulse" -msgstr "Створити ПульÑ" - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:90 -msgid "Attachment" -msgstr "Додаток" - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:104 -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:111 -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:675 -msgid "Heads up" -msgstr "Увага" - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:105 -msgid "We'll show the first 10 columns and 20 rows of this table in your Pulse. If you email this, we'll add a file attachment with all columns and up to 2,000 rows." -msgstr "Ми покажемо перші 10 колонок Ñ– 20 Ñ€Ñдків цієї таблиці у вашому ПульÑÑ–. Якщо ви це відправите email, ми додамо у Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð» з таблицею до 2000 Ñ€Ñдків Ñ– з уÑіма колонками." - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:112 -msgid "Raw data questions can only be included as email attachments" -msgstr "Запити з вихідними даними можуть бути включені тільки Ñк файли" - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:119 -msgid "Looks like this pulse is getting big" -msgstr "Схоже що цей ÐŸÑƒÐ»ÑŒÑ Ñтає занадто великим" - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:120 -msgid "We recommend keeping pulses small and focused to help keep them digestible and useful to the whole team." -msgstr "Ми рекомендуємо залишати ПульÑи невеликими Ñ– цілеÑпрÑмованими, щоб зробити Ñ—Ñ… легкими Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ñ‚Ð° кориÑний Ð´Ð»Ñ Ð²Ñієї команди." - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 -msgid "Pick your data" -msgstr "Виберіть дані" - -#: frontend/src/metabase/pulse/components/PulseEditCards.jsx:162 -msgid "Choose questions you'd like to send in this pulse" -msgstr "Виберіть запити, Ñкі будуть надіÑлані в цьому ПульÑ" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:27 -msgid "Emails" -msgstr "Електронні адреÑи" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:28 -msgid "Slack messages" -msgstr "Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Slack" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 -msgid "Sent" -msgstr "Відправлено" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 -msgid "{0} will be sent at" -msgstr "{0} Буде відправлено на" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 -msgid "Messages" -msgstr "ПовідомленнÑ" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 -msgid "Send email now" -msgstr "ÐадіÑлати Email прÑмо зараз" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 -msgid "Send to {0} now" -msgstr "ÐадіÑлати {0} прÑмо зараз" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 -msgid "Sending…" -msgstr "Ð’Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ ..." - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 -msgid "Sending failed" -msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 -msgid "Didn’t send because the pulse has no results." -msgstr "Ðе відправлено, тому що ÐŸÑƒÐ»ÑŒÑ Ð½Ðµ міÑтить результатів." - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 -msgid "Pulse sent" -msgstr "ÐŸÑƒÐ»ÑŒÑ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ð¹" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 -msgid "{0} needs to be set up by an administrator." -msgstr "{0} Має бути налагоджене адмініÑтратором." - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 -msgid "Slack" -msgstr "Slack" - -#: frontend/src/metabase/pulse/components/PulseEditCollection.jsx:12 -msgid "Which collection should this pulse live in?" -msgstr "Ð’ Ñкій збірці повинна знаходитиÑÑŒ цей ПульÑ?" - -#: frontend/src/metabase/pulse/components/PulseEditName.jsx:35 -msgid "Name your pulse" -msgstr "Дайти ім'Ñ Ð²Ð°ÑˆÐ¾Ð¼Ñƒ ПульÑу" - -#: frontend/src/metabase/pulse/components/PulseEditName.jsx:37 -msgid "Give your pulse a name to help others understand what it's about" -msgstr "Дайте назву вашому ПульÑу, щоб інші люди зрозуміли про що він" - -#: frontend/src/metabase/pulse/components/PulseEditName.jsx:49 -msgid "Important metrics" -msgstr "Важливі метрики" - -#: frontend/src/metabase/pulse/components/PulseEditSkip.jsx:22 -msgid "Skip if no results" -msgstr "ПропуÑтити Ñкщо немає результатів" - -#: frontend/src/metabase/pulse/components/PulseEditSkip.jsx:24 -msgid "Skip a scheduled Pulse if none of its questions have any results" -msgstr "ПропуÑтити заплановану відправку ПульÑу Ñкщо жоден із запитів не міÑтить результатів" - -#: frontend/src/metabase/pulse/components/RecipientPicker.jsx:65 -msgid "Enter email addresses you'd like this data to go to" -msgstr "Вкажіть email адреÑи на Ñкі ви б хотіли відправити ці дані" - -#: frontend/src/metabase/pulse/components/WhatsAPulse.jsx:16 -msgid "Help everyone on your team stay in sync with your data." -msgstr "Допоможіть вашій команді залишатиÑÑ Ð² курÑÑ– змін ваших даних." - -#: frontend/src/metabase/pulse/components/WhatsAPulse.jsx:30 -msgid "Pulses let you send data from Metabase to email or Slack on the schedule of your choice." -msgstr "ПульÑи дозволÑÑŽÑ‚ÑŒ відправлÑти дані з Metabase по електронній пошті або в Slack за заданим вами розкладом." - -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:100 -msgid "After {0}" -msgstr "ПіÑÐ»Ñ {0}" - -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:102 -msgid "Before {0}" -msgstr "До {0}" - -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:104 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:294 -msgid "Is Empty" -msgstr "ПуÑто" - -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:106 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:300 -msgid "Not Empty" -msgstr "Чи не порожньо" - -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:109 -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:212 -msgid "All Time" -msgstr "ВеÑÑŒ чаÑ" - -#: frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx:155 -msgid "Apply" -msgstr "заÑтоÑувати" - -#: frontend/src/metabase/modes/components/actions/CommonMetricsAction.jsx:21 -msgid "View {0}" -msgstr "ПереглÑнути {0}" - -#: frontend/src/metabase/modes/components/actions/CompareWithTable.jsx:29 -msgid "Compare this with all rows in the table" -msgstr "ПорівнÑти з уÑіма Ñ€Ñдками в таблиці" - -#: frontend/src/metabase/modes/components/actions/CompoundQueryAction.jsx:14 -msgid "Analyze the results of this Query" -msgstr "Проаналізовано результати цього запиту" - -#: frontend/src/metabase/modes/components/actions/CountByTimeAction.jsx:29 -msgid "Count of rows by time" -msgstr "КількіÑÑ‚ÑŒ Ñ€Ñдків по чаÑу" - -#: frontend/src/metabase/modes/components/actions/PivotByAction.jsx:52 -msgid "Break out by {0}" -msgstr "Розбити по {0}" - -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 -msgid "Summarize this segment" -msgstr "Резюмувати цей Ñегмент" - -#: frontend/src/metabase/modes/components/actions/UnderlyingDataAction.jsx:14 -msgid "View this as a table" -msgstr "ПереглÑнути Ñк таблицю" - -#: frontend/src/metabase/modes/components/actions/UnderlyingRecordsAction.jsx:22 -msgid "View the underlying {0} records" -msgstr "ПодивитиÑÑ {0} пов'Ñзані запиÑи" - -#: frontend/src/metabase/modes/components/actions/XRayCard.jsx:20 -msgid "X-Ray this question" -msgstr "ПроÑканувати цей запит" - -#: frontend/src/metabase/qb/components/drill/AutomaticDashboardDrill.jsx:32 -msgid "X-ray {0} {1}" -msgstr "X-ray {0} {1}" - -#: frontend/src/metabase/qb/components/drill/AutomaticDashboardDrill.jsx:32 -#: frontend/src/metabase/qb/components/drill/CompareToRestDrill.js:32 -msgid "these" -msgstr "ці" - -#: frontend/src/metabase/qb/components/drill/AutomaticDashboardDrill.jsx:32 -#: frontend/src/metabase/qb/components/drill/CompareToRestDrill.js:32 -msgid "this" -msgstr "це" - -#: frontend/src/metabase/qb/components/drill/CompareToRestDrill.js:32 -msgid "Compare {0} {1} to the rest" -msgstr "ПорівнÑти {0} {1} з іншим" - -#: frontend/src/metabase/modes/components/drill/DistributionDrill.jsx:35 -msgid "Distribution" -msgstr "поширеннÑ" - -#: frontend/src/metabase/modes/components/drill/ObjectDetailDrill.jsx:38 -msgid "View details" -msgstr "ПереглÑнути деталі" - -#: frontend/src/metabase/modes/components/drill/QuickFilterDrill.jsx:57 -msgid "View this {0}'s {1}" -msgstr "ПереглÑнути {0} {1}" - -#: frontend/src/metabase/modes/components/drill/SortAction.jsx:42 -msgid "Ascending" -msgstr "За зроÑтаннÑм" - -#: frontend/src/metabase/modes/components/drill/SortAction.jsx:50 -msgid "Descending" -msgstr "По Ñпаданню" - -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 -msgid "over time" -msgstr "по чаÑу" - -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 -msgid "Avg" -msgstr "Ñереднє" - -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 -msgid "Distincts" -msgstr "унікальні" - -#: frontend/src/metabase/modes/components/drill/UnderlyingRecordsDrill.jsx:39 -msgid "View this {0}" -msgid_plural "View these {0}" -msgstr[0] "Показати {0}" -msgstr[1] "Показати {0}" -msgstr[2] "Показати {0}" -msgstr[3] "Показати {0}" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:227 -#: frontend/src/metabase/modes/components/drill/ZoomDrill.jsx:26 -msgid "Zoom in" -msgstr "наблизити" - -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:24 -msgid "Custom Expression" -msgstr "Довільний вираз" - -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:22 -msgid "Common Metrics" -msgstr "Загальні метрики" - -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:209 -msgid "Metabasics" -msgstr "Metabasics" - -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:387 -msgid "Name (optional)" -msgstr "Ім'Ñ (не обов'Ñзково)" - -#: frontend/src/metabase/query_builder/components/AggregationWidget.jsx:156 -msgid "Choose an aggregation" -msgstr "Виберіть агрегацію" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:100 -msgid "Set up your own alert" -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð»Ð°Ñне попередженнÑ" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:143 -msgid "Unsubscribing..." -msgstr "ВідпиÑка ..." - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:148 -msgid "Failed to unsubscribe" -msgstr "Помилка при Ñ—Ñ— анулюваннÑ" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:206 -msgid "Unsubscribe" -msgstr "ВідмовитиÑÑ" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:236 -msgid "No channel" -msgstr "немає каналу" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:264 -msgid "Okay, you're unsubscribed" -msgstr "Відмінно, ви відпиÑалиÑÑ" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:336 -msgid "You're receiving {0}'s alerts" -msgstr "Вами отримано {0} попереджень" - -#: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:337 -msgid "{0} set up an alert" -msgstr "{0} вÑтановив оповіщеннÑ" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:160 -msgid "alerts" -msgstr "попередженнÑ" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:183 -msgid "Let's set up your alert" -msgstr "Давайте налаштуємо ваше попередженнÑ" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:214 -msgid "The wide world of alerts" -msgstr "ÐеоÑÑжний Ñвіт попереджень" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:215 -msgid "There are a few different kinds of alerts you can get" -msgstr "Є кілька різних типів попереджень, Ñкі ви можете отримати" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:229 -msgid "When a raw data question {0}" -msgstr "Коли запит за вихідними даними {0}" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:230 -msgid "returns any results" -msgstr "повертати будь-Ñкі результати" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:241 -msgid "When a line or bar {0}" -msgstr "Коли Ð»Ñ–Ð½Ñ–Ñ Ð°Ð±Ð¾ Ñ€Ñд {0}" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:242 -msgid "crosses a goal line" -msgstr "через лінію мети" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:253 -msgid "When a progress bar {0}" -msgstr "Коли Ð¿Ñ€Ð¾Ð³Ñ€ÐµÑ Ð±Ð°Ñ€ {0}" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:254 -msgid "reaches its goal" -msgstr "доÑÑгне цільового значеннÑ" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:262 -msgid "Set up an alert" -msgstr "налаштувати попередженнÑ" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:331 -msgid "Edit your alert" -msgstr "Змінити ваше попередженнÑ" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:331 -msgid "Edit alert" -msgstr "змінити попередженнÑ" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:373 -msgid "This alert will no longer be emailed to {0}." -msgstr "Це Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð±Ñ–Ð»ÑŒÑˆÐµ не буде відправлÑтиÑÑ Ð½Ð° {0}." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:381 -msgid "Slack channel {0} will no longer get this alert." -msgstr "Канал Slack {0} більше не буде отримувати дане попередженнÑ." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:385 -msgid "Channel {0} will no longer receive this alert." -msgstr "Канал {0} більше не буде отримувати дане попередженнÑ." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:402 -msgid "Delete this alert" -msgstr "Видалити це попередженнÑ" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:404 -msgid "Stop delivery and delete this alert. There's no undo, so be careful." -msgstr "Зупинити доÑтавку Ñ– видалити це попередженнÑ. Ð”Ñ–Ñ Ð½Ðµ може бути ÑкаÑовано, будьте уважні." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:412 -msgid "Delete this alert?" -msgstr "Видалити це попередженнÑ?" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:499 -msgid "Alert me when the line…" -msgstr "Попередити мене коли Ð»Ñ–Ð½Ñ–Ñ ..." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:500 -msgid "Alert me when the progress bar…" -msgstr "Попередити мене коли Ð¿Ñ€Ð¾Ð³Ñ€ÐµÑ ..." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:503 -msgid "Goes above the goal line" -msgstr "Перевищить лінію мети" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:503 -msgid "Reaches the goal" -msgstr "доÑÑгне мети" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:506 -msgid "Goes below the goal line" -msgstr "ОпуÑтитьÑÑ Ð½Ð¸Ð¶Ñ‡Ðµ лінії цілі" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:506 -msgid "Goes below the goal" -msgstr "ОпуÑтитьÑÑ Ð½Ð¸Ð¶Ñ‡Ðµ цілі" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:514 -msgid "The first time it crosses, or every time?" -msgstr "При першому перетині, або кожен раз?" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:515 -msgid "The first time it reaches the goal, or every time?" -msgstr "При першому доÑÑгненні мети, або кожен раз?" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:517 -msgid "The first time" -msgstr "Перший раз" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:518 -msgid "Every time" -msgstr "Кожен раз" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:621 -msgid "Where do you want to send these alerts?" -msgstr "Куди ви хочете відправлÑти дані попередженнÑ?" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:632 -msgid "Email alerts to:" -msgstr "ÐадÑилати попереджувальні на:" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:674 -msgid "{0} Goal-based alerts aren't yet supported for charts with more than one line, so this alert will be sent whenever the chart has {1}." -msgstr "{0} ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ñновані на цілÑÑ… ще не підтримуютьÑÑ Ð´Ð»Ñ Ð³Ñ€Ð°Ñ„Ñ–ÐºÑ–Ð² з більш ніж однієї кривої. Отже це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ надіÑлано Ñк тільки Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð³Ñ€Ð°Ñ„Ñ–ÐºÐ° доÑÑгне {1}." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 -msgid "results" -msgstr "результати" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:681 -msgid "{0} This kind of alert is most useful when your saved question doesn’t {1} return any results, but you want to know when it does." -msgstr "{0} Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¾Ñобливо кориÑно коли ваш збережений Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð½Ðµ {1} повертає ніÑких результатів, але ви хочете знати коли це ÑтанетьÑÑ." - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:682 -msgid "Tip" -msgstr "Підказка" - -#: frontend/src/metabase/query_builder/components/AlertModals.jsx:684 -msgid "usually" -msgstr "зазвичай" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 -msgid "Pick a segment or table" -msgstr "Прикріпіть Ñегмент або таблицю" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 -msgid "Select a database" -msgstr "Виберіть базу даних" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 -#: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 -msgid "Select..." -msgstr "Вибрати ..." - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 -msgid "Select a table" -msgstr "Виберіть таблицю" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 -msgid "No tables found in this database." -msgstr "У цій базі даних не знайдено жодної таблиці." - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 -msgid "Is a question missing?" -msgstr "Якщо пропуÑтити запит?" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 -msgid "Learn more about nested queries" -msgstr "ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про вкладених запитах" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 -msgid "Fields" -msgstr "полÑ" - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 -msgid "No segments were found." -msgstr "Сегменти не знайдені." - -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 -msgid "Find a segment" -msgstr "знайти Ñегмент" - -#: frontend/src/metabase/query_builder/components/ExpandableString.jsx:47 -msgid "View less" -msgstr "менше" - -#: frontend/src/metabase/query_builder/components/ExpandableString.jsx:57 -msgid "View more" -msgstr "більше" - -#: frontend/src/metabase/query_builder/components/ExtendedOptions.jsx:112 -msgid "Pick a field to sort by" -msgstr "Виберіть поле Ð´Ð»Ñ ÑортуваннÑ" - -#: frontend/src/metabase/query_builder/components/ExtendedOptions.jsx:125 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:75 -msgid "Sort" -msgstr "Сортувати" - -#: frontend/src/metabase/query_builder/components/ExtendedOptions.jsx:137 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:82 -msgid "Row limit" -msgstr "КількіÑÑ‚ÑŒ Ñ€Ñдків" - -#: frontend/src/metabase/query_builder/components/FieldName.jsx:73 -msgid "Unknown Field" -msgstr "невідоме поле" - -#: frontend/src/metabase/query_builder/components/FieldName.jsx:76 -msgid "field" -msgstr "поле" - -#: frontend/src/metabase/query_builder/components/Filter.jsx:117 -msgid "Matches" -msgstr "збіги" - -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:152 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:160 -#: frontend/src/metabase/query_builder/components/notebook/steps/FilterStep.jsx:18 -msgid "Add filters to narrow your answer" -msgstr "Додайте фільтри щоб Ñкоротити результати запиту" - -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:297 -msgid "Add a grouping" -msgstr "Додати групуваннÑ" - -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 -#: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:89 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:131 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:176 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 -msgid "Data" -msgstr "дані" - -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:363 -msgid "Filtered by" -msgstr "відфільтровано по" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:75 -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:380 -msgid "View" -msgstr "Вид" - -#: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:397 -msgid "Grouped By" -msgstr "згруповано за" - -#: frontend/src/metabase/query_builder/components/LimitWidget.jsx:27 -msgid "None" -msgstr "0" - -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 -msgid "This question is written in {0}." -msgstr "Цей запит напиÑаний в {0}." - -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:384 -msgid "Hide Editor" -msgstr "Приховати редактор" - -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:385 -msgid "Hide Query" -msgstr "приховати Запит" - -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 -msgid "Open Editor" -msgstr "Відкрити редактор" - -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 -msgid "Show Query" -msgstr "Показати Запит" - -#: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:25 -msgid "This metric has been retired. It's no longer available for use." -msgstr "Ð¦Ñ Ð¼ÐµÑ‚Ñ€Ð¸ÐºÐ° була видалена. Вона більш недоÑтупна Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтаннÑ." - -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:34 -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:46 -msgid "Download full results" -msgstr "Завантажити повні результати." - -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:35 -msgid "Download this data" -msgstr "Завантажити ці дані" - -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:46 -msgid "Warning" -msgstr "попередженнÑ" - -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:50 -msgid "Your answer has a large number of rows so it could take a while to download." -msgstr "Ваш результат міÑтить велику кількіÑÑ‚ÑŒ Ñ€Ñдків Ñ– займе ÑкийÑÑŒ Ñ‡Ð°Ñ Ð½Ð° завантаженнÑ." - -#: frontend/src/metabase/query_builder/components/QueryDownloadWidget.jsx:51 -msgid "The maximum download size is 1 million rows." -msgstr "МакÑимальний розмір завантажених 1 мільйон Ñ€Ñдків." - -#: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:9 -msgid "Edit question" -msgstr "змінити запит" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:249 -msgid "SAVE CHANGES" -msgstr "ЗБЕРЕГТИ ЗМІÐИ" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:263 -msgid "CANCEL" -msgstr "СКÐСУВÐТИ" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:276 -msgid "Move question" -msgstr "переміÑтити запит" - -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 -msgid "Which collection should this be in?" -msgstr "Яка ÐºÐ¾Ð»ÐµÐºÑ†Ñ–Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° бути тут?" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:134 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:84 -#: frontend/src/metabase/query_builder/components/view/NativeVariablesButton.jsx:17 -msgid "Variables" -msgstr "Змінні" - -#: frontend/src/metabase/query_builder/components/view/DataReferenceButton.jsx:17 -msgid "Learn about your data" -msgstr "ДізнатиÑÑ Ð¿Ñ€Ð¾ Ñвої дані" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:460 -msgid "Alerts are on" -msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾" - -#: frontend/src/metabase/query_builder/components/QueryHeader.jsx:522 -msgid "started from" -msgstr "починаючи з" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:48 -msgid "SQL" -msgstr "SQL" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:48 -msgid "native query" -msgstr "ПрÑмий запит" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:52 -msgid "Not Supported" -msgstr "Ðе підтримуєтьÑÑ" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:58 -msgid "View the {0}" -msgstr "ПереглÑнути {0}" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:59 -msgid "Switch to {0}" -msgstr "ПереключитиÑÑ Ð½Ð° {0}" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:62 -msgid "Switch to Builder" -msgstr "ПереключитиÑÑ Ð² МайÑтер запитів" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:87 -msgid "{0} for this question" -msgstr "{0} Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ запиту" - -#: frontend/src/metabase/query_builder/components/QueryModeButton.jsx:111 -msgid "Convert this question to {0}" -msgstr "Перетворити цей запит в {0}" - -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 -msgid "This question will take approximately {0} to refresh" -msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ займе {0}" - -#: frontend/src/metabase/query_builder/components/view/QuestionLastUpdated.jsx:13 -msgid "Updated {0}" -msgstr "Оновлене {0}" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:141 -msgid "row" -msgid_plural "rows" -msgstr[0] "Ñ€Ñдок" -msgstr[1] "Ñ€Ñдок" -msgstr[2] "Ñ€Ñдок" -msgstr[3] "Ñ€Ñдок" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:148 -msgid "Showing first {0} {1}" -msgstr "ПереглÑд перших {0} {1}" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:151 -msgid "Showing {0} {1}" -msgstr "ПереглÑд {0} {1}" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:162 -msgid "Doing science" -msgstr "наукові доÑлідженнÑ" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 -msgid "If you give me some data I can show you something cool. Run a Query!" -msgstr "Якщо ви даÑте мені дані Ñ Ð·Ð¼Ð¾Ð¶Ñƒ показати щоÑÑŒ круте. ЗапуÑÑ‚Ñ–Ñ‚ÑŒ запит!" - -#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:299 -msgid "How do I use this thing?" -msgstr "Як це викориÑтовувати?" - -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 -msgid "Get Answer" -msgstr "Отримати відповідь" - -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:12 -msgid "It's okay to play around with saved questions" -msgstr "Це нормально, коли можна грати зі збереженими питаннÑми" - -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:14 -msgid "You won't make any permanent changes to a saved question unless you click the edit icon in the top-right." -msgstr "Ви не будете вноÑити будь-Ñкі поÑтійні зміни в збережений запит, Ñкщо не клацнете значок Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð² правому верхньому куті." - -#: frontend/src/metabase/query_builder/components/SearchBar.jsx:28 -msgid "Search for" -msgstr "Пошук" - -#: frontend/src/metabase/query_builder/components/SelectionModule.jsx:158 -msgid "Advanced..." -msgstr "Розширений ..." - -#: frontend/src/metabase/query_builder/components/SelectionModule.jsx:167 -msgid "Sorry. Something went wrong." -msgstr "ПроÑимо вибаченнÑ. ЩоÑÑŒ пішло не так." - -#: frontend/src/metabase/query_builder/components/TimeGroupingPopover.jsx:40 -msgid "Group time by" -msgstr "Групувати Ñ‡Ð°Ñ Ð¿Ð¾" - -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:50 -msgid "Your question took too long" -msgstr "Ваш запит займає надто багато чаÑу" - -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:51 -msgid "We didn't get an answer back from your database in time, so we had to stop. You can try again in a minute, or if the problem persists, you can email an admin to let them know." -msgstr "Ми не отримали відповідь від Вашої бази даних вчаÑно, так що нам довелоÑÑ Ð·ÑƒÐ¿Ð¸Ð½Ð¸Ñ‚Ð¸ÑÑ. Ви можете Ñпробувати ще раз через пару хвилин, або Ñкщо проблема зберігаєтьÑÑ Ð¾Ð¿Ð¾Ð²Ñ–Ñтити адмініÑтратора по електронній пошті" - -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:60 -msgid "We're experiencing server issues" -msgstr "У Ð½Ð°Ñ Ñкладнощі з Ñервером" - -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:61 -msgid "Try refreshing the page after waiting a minute or two. If the problem persists we'd recommend you contact an admin." -msgstr "Спробуйте оновити Ñторінку, почекавши одну-дві хвилини. Якщо проблема повторитьÑÑ, рекомендуємо звернутиÑÑ Ð´Ð¾ адмініÑтратора." - -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:95 -msgid "There was a problem with your question" -msgstr "З вашим запитів виникла проблема" - -#: frontend/src/metabase/query_builder/components/VisualizationError.jsx:96 -msgid "Most of the time this is caused by an invalid selection or bad input value. Double check your inputs and retry your query." -msgstr "У більшоÑÑ‚Ñ– випадків це пов'Ñзано з помилкою вибору або введеного значеннÑ. Перевірте дані та повторіть запит." - -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:66 -msgid "This may be the answer you’re looking for. If not, try removing or changing your filters to make them less specific." -msgstr "Можливо, ми знайшли те, що ви шукали. Якщо немає, Ñпробуйте ÑкаÑувати або змінити фільтри, зробивши Ñ—Ñ… менш Ñуворими." - -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:71 -msgid "You can also {0} when there are some results." -msgstr "Ми також можете {0} піÑÐ»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñƒ." - -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:73 -msgid "get an alert" -msgstr "отримати попередженнÑ" - -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:77 -msgid "Back to last run" -msgstr "ПовернутиÑÑ Ð´Ð¾ оÑтаннього запуÑку" - -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 -msgid "Visualization" -msgstr "візуалізаціÑ" - -#: frontend/src/metabase/query_builder/components/dataref/TablePane.jsx:95 -msgid "No description set." -msgstr "ÐžÐ¿Ð¸Ñ Ð½Ðµ задано." - -#: frontend/src/metabase/query_builder/components/dataref/DetailPane.jsx:21 -msgid "Use for current question" -msgstr "ВикориÑтовувати поточний запит." - -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 -msgid "Potentially useful questions" -msgstr "Потенційно кориÑні запити." - -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:169 -msgid "Group by {0}" -msgstr "Групувати за {0}" - -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:165 -msgid "Sum of all values of {0}" -msgstr "Сума вÑÑ–Ñ… значень {0}" - -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:63 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:51 -msgid "All distinct values of {0}" -msgstr "Унікальні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ {0}" - -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:190 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:39 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:39 -msgid "Number of {0} grouped by {1}" -msgstr "ЧиÑло {0} згрупованих за {1}" - -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:17 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:19 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:23 -#: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:24 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:23 -msgid "Data Reference" -msgstr "ВідповідніÑÑ‚ÑŒ Даних" - -#: frontend/src/metabase/query_builder/components/dataref/MainPane.jsx:13 -msgid "Learn more about your data structure to ask more useful questions" -msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про Ñтруктуру ваших даних Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñних запитів" - -#: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:65 -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:91 -msgid "Could not find the table metadata prior to creating a new question" -msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ метадані таблиці до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ питаннÑ" - -#: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:87 -msgid "See {0}" -msgstr "ПодивитиÑÑ {0}" - -#: frontend/src/metabase/query_builder/components/dataref/MetricPane.jsx:101 -msgid "Metric Definition" -msgstr "Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐœÐµÑ‚Ñ€Ð¸ÐºÐ¸" - -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:125 -msgid "Filter by {0}" -msgstr "Відфільтровано по {0}" - -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 -msgid "Number of {0}" -msgstr "ЧиÑло {0}" - -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 -msgid "See all {0}" -msgstr "ДивитиÑÑ Ð²ÑÑ– {0}" - -#: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:155 -msgid "Segment Definition" -msgstr "Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñегмента" - -#: frontend/src/metabase/query_builder/components/dataref/TablePane.jsx:50 -msgid "An error occurred loading the table" -msgstr "При завантаженні таблиці ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°" - -#: frontend/src/metabase/query_builder/components/dataref/TablePane.jsx:74 -msgid "See the raw data for {0}" -msgstr "ПодивитиÑÑ Ð²Ð¸Ñ…Ñ–Ð´Ð½Ñ– дані Ð´Ð»Ñ {0}" - -#: frontend/src/metabase/query_builder/components/dataref/TablePane.jsx:179 -msgid "More" -msgstr "більше" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 -msgid "Invalid expression" -msgstr "некоректне вираз" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 -msgid "unknown error" -msgstr "невідома помилка" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 -msgid "Field formula" -msgstr "Формула полÑ" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 -msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." -msgstr "Подумайте про це Ñк про те, Ñк напиÑати формулу в програмі Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з електронними таблицÑми: ви можете викориÑтовувати чиÑла, Ð¿Ð¾Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ–, математичні Ñимволи, такі Ñк +, Ñ– деÑкі функції. Таким чином, ви можете ввеÑти щоÑÑŒ на зразок Разом - ВартіÑÑ‚ÑŒ." - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 -#: frontend/src/metabase/reference/components/GuideDetail.jsx:126 -msgid "Learn more" -msgstr "ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 -msgid "Give it a name" -msgstr "Дати ім'Ñ" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 -msgid "Something nice and descriptive" -msgstr "Що-небудь чудове Ñ– зрозуміле" - -#: frontend/src/metabase/query_builder/components/expressions/Expressions.jsx:60 -msgid "Add a custom field" -msgstr "Додати довільне поле" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:17 -msgid "Include {0}" -msgstr "Включаючи {0}" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:19 -msgid "Case sensitive" -msgstr "Чутливе до регіÑтру" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:23 -msgid "today" -msgstr "Ñьогодні" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:24 -msgid "this week" -msgstr "на цьому тижні" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:25 -msgid "this month" -msgstr "у цьому міÑÑці" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:26 -msgid "this year" -msgstr "в цьому році" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:27 -msgid "this minute" -msgstr "в цю хвилину" - -#: frontend/src/metabase/query_builder/components/filters/FilterOptions.jsx:28 -msgid "this hour" -msgstr "в цьому годині" - -#: frontend/src/metabase/query_builder/components/filters/FilterPopover.jsx:290 -msgid "not implemented {0}" -msgstr "не реалізоване {0}" - -#: frontend/src/metabase/query_builder/components/filters/FilterPopover.jsx:291 -msgid "true" -msgstr "Ñ–Ñтина" - -#: frontend/src/metabase/query_builder/components/filters/FilterPopover.jsx:291 -msgid "false" -msgstr "брехнÑ" - -#: frontend/src/metabase/query_builder/components/filters/FilterPopoverFooter.jsx:41 -#: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 -msgid "Add filter" -msgstr "Додати фільтр" - -#: frontend/src/metabase/query_builder/components/filters/FilterWidgetList.jsx:64 -msgid "Item" -msgstr "елемент" - -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:220 -msgid "Previous" -msgstr "Попередній" - -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:251 -msgid "Current" -msgstr "Поточний" - -#: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:277 -#: frontend/src/metabase/visualizations/lib/settings/column.js:246 -#: frontend/src/metabase/visualizations/lib/settings/series.js:89 -msgid "On" -msgstr "на" - -#: frontend/src/metabase/query_builder/components/filters/pickers/NumberPicker.jsx:47 -msgid "Enter desired number" -msgstr "Введіть бажаний номер" - -#: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 -msgid "Empty" -msgstr "ПуÑто" - -#: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:116 -msgid "Find a value" -msgstr "знайти значеннÑ" - -#: frontend/src/metabase/query_builder/components/filters/pickers/SpecificDatePicker.jsx:113 -msgid "Hide calendar" -msgstr "приховати календар" - -#: frontend/src/metabase/query_builder/components/filters/pickers/SpecificDatePicker.jsx:113 -msgid "Show calendar" -msgstr "Показати календар" - -#: frontend/src/metabase/query_builder/components/filters/pickers/TextPicker.jsx:97 -msgid "You can enter multiple values separated by commas" -msgstr "Ви можете ввеÑти безліч значень, розділених комою" - -#: frontend/src/metabase/query_builder/components/filters/pickers/TextPicker.jsx:38 -msgid "Enter desired text" -msgstr "Введіть бажаний текÑÑ‚" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:107 -msgid "Try it" -msgstr "Спробувати" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:129 -msgid "What's this for?" -msgstr "Ð”Ð»Ñ Ñ‡Ð¾Ð³Ð¾ це?" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:131 -msgid "Variables in native queries let you dynamically replace values in your queries using filter widgets or through the URL." -msgstr "Змінні в прÑмих запитах дозволÑÑŽÑ‚ÑŒ динамічно замінювати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ ваших запитах за допомогою віджетів фільтрів або через URL-адреÑу." - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:136 -msgid "{0} creates a variable in this SQL template called \"variable_name\". Variables can be given types in the side panel, which changes their behavior. All variable types other than \"Field Filter\" will automatically cause a filter widget to be placed on this question; with Field Filters, this is optional. When this filter widget is filled in, that value replaces the variable in the SQL template." -msgstr "{0} Ñтворює змінну в цьому шаблоні SQL з ім'Ñм \"variable_name\". Змінні можуть бути задані типами на бічній панелі, що змінює Ñ—Ñ… поведінку. Ð’ÑÑ– типи змінних, відмінні від \"Фільтр полÑ\", автоматично викликають віджет фільтра з цього питаннÑ; з \"Фільтром полÑ\" це необов'Ñзково. При заповненні цього віджет фільтра, це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð¼Ñ–Ð½ÑŽÑ” змінну в шаблоні SQL." - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:145 -msgid "Field Filters" -msgstr "Фільтри полÑ" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:147 -msgid "Giving a variable the \"Field Filter\" type allows you to link SQL cards to dashboard filter widgets or use more types of filter widgets on your SQL question. A Field Filter variable inserts SQL similar to that generated by the GUI query builder when adding filters on existing columns." -msgstr "ПриÑÐ²Ð¾Ñ”Ð½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ñ–Ð¹ типу \"Фільтр полÑ\" дозволÑÑ” зв'Ñзати картки SQL з віджетами фільтра панелі моніторингу або викориÑтовувати додаткові типи віджетів фільтра в запиті SQL. Мінлива фільтра Ð¿Ð¾Ð»Ñ Ð²ÑтавлÑÑ” SQL, подібний до того, Ñкий генеруєтьÑÑ Ð±ÑƒÐ´Ñ–Ð²Ð½Ð¸ÐºÐ¾Ð¼ запитів GUI при додаванні фільтрів на Ñ–Ñнуючі Ñтовпчики." - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:150 -msgid "When adding a Field Filter variable, you'll need to map it to a specific field. You can then choose to display a filter widget on your question, but even if you don't, you can now map your Field Filter variable to a dashboard filter when adding this question to a dashboard. Field Filters should be used inside of a \"WHERE\" clause." -msgstr "При додаванні змінної \"Фільтр полÑ\" необхідно зіÑтавити Ñ—Ñ— з певним полем. ПіÑÐ»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ ви можете відобразити віджет фільтра Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ запиту, але навіть Ñкщо ви цього не зробите, тепер можна зіÑтавити змінну \"Фільтр полÑ\" з фільтром панелі інÑтрументів при додаванні цього Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° панель інÑтрументів. \"Фільтри полÑ\" повинні викориÑтовуватиÑÑ Ð²Ñередині Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ \"WHERE\"." - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:157 -msgid "Optional Clauses" -msgstr "Опціональні положеннÑ" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:132 -msgid "brackets around a {0} create an optional clause in the template. If \"variable\" is set, then the entire clause is placed into the template. If not, then the entire clause is ignored." -msgstr "Дужки навколо {0} Ñтворюють опциональне Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ð² шаблоні. Якщо \"Змінна\" вÑтановлена, тоді вÑе Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ”Ñ‚ÑŒÑÑ Ð² шаблон. Якщо ні - вÑе Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ñ‚ÑŒÑÑ." - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:169 -msgid "To use multiple optional clauses you can include at least one non-optional WHERE clause followed by optional clauses starting with \"AND\"." -msgstr "Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… опціональних положень, ви можете включити принаймні одне обов'Ñзкове Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ WHERE, доповнивши його опціональними через \"AND\"." - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:187 -msgid "Read the full documentation" -msgstr "ОзнайомитиÑÑ Ð· повною документацією" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 -msgid "Filter label" -msgstr "Тема фільтра" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 -msgid "Variable type" -msgstr "Тип змінної" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 -msgid "Text" -msgstr "текÑÑ‚" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 -msgid "Date" -msgstr "Дата" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 -msgid "Field Filter" -msgstr "Фільтр полÑ" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 -msgid "Field to map to" -msgstr "Ñполучні полÑ" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 -msgid "Filter widget type" -msgstr "Тип фільтра віджета" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 -msgid "Required?" -msgstr "Обов'Ñзково?" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 -msgid "Default filter widget value" -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° замовчуваннÑм Ð´Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð° віджета" - -#: frontend/src/metabase/query_builder/containers/ArchiveQuestionModal.jsx:19 -msgid "Archive this question?" -msgstr "ПереміÑтити цей запит в архів?" - -#: frontend/src/metabase/query_builder/containers/ArchiveQuestionModal.jsx:20 -msgid "This question will be removed from any dashboards or pulses using it." -msgstr "Цей запит буде видалений з уÑÑ–Ñ… панелей інÑтрументів або ПульÑів, де він був доданий." - -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 -msgid "Question" -msgstr "запит" - -#: frontend/src/metabase/questions/containers/AddToDashboard.jsx:11 -msgid "Pick a question to add" -msgstr "Виберіть запит Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ" - -#: frontend/src/metabase/reference/components/EditHeader.jsx:19 -msgid "You are editing this page" -msgstr "Ви редагуєте цю Ñторінку" - -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 -msgid "See this {0}" -msgstr "ПодивитиÑÑ {0}" - -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:117 -msgid "A subset of" -msgstr "безліч" - -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 -msgid "Select a field type" -msgstr "Виберіть тип полÑ" - -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 -msgid "No field type" -msgstr "ÐÑ– типу полÑ" - -#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:22 -msgid "by" -msgstr "по" - -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 -msgid "Field type" -msgstr "Тип полÑ" - -#: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:71 -msgid "Select a Foreign Key" -msgstr "Виберіть зовнішній ключ" - -#: frontend/src/metabase/reference/components/Formula.jsx:56 -msgid "View the {0} formula" -msgstr "ПереглÑнути формулу {0}" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:80 -msgid "Why this {0} is important" -msgstr "Чому {0} Ñ” важливим" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:81 -msgid "Why this {0} is interesting" -msgstr "Чому {0} видавÑÑ Ñ†Ñ–ÐºÐ°Ð²Ð¸Ð¼" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:87 -msgid "Nothing important yet" -msgstr "Поки нічого важливого" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 -msgid "Nothing interesting yet" -msgstr "Поки нічого цікавого" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:93 -msgid "Things to be aware of about this {0}" -msgstr "Що потрібно знати про {0}" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 -msgid "Nothing to be aware of yet" -msgstr "Поки нічого не відомо" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:103 -msgid "Explore this metric" -msgstr "доÑлідити метрику" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:105 -msgid "View this metric" -msgstr "переглÑнути метрику" - -#: frontend/src/metabase/reference/components/GuideDetail.jsx:112 -msgid "By {0}" -msgstr "{0}" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:146 -msgid "Remove item" -msgstr "видалити елемент" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:155 -msgid "Why is this dashboard the most important?" -msgstr "Чому Ñ†Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ інÑтрументів найважливіша?" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:156 -msgid "What is useful or interesting about this {0}?" -msgstr "Що буде цікаво чи кориÑно знати про {0}?" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:160 -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:174 -msgid "Write something helpful here" -msgstr "Ðапишіть тут що-небудь кориÑне" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:169 -msgid "Is there anything users of this dashboard should be aware of?" -msgstr "Чи Ñ” що-небудь, про що кориÑтувачі цієї панелі індикаторів повинні знати?" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:170 -msgid "Anything users should be aware of about this {0}?" -msgstr "Чи Ñ” що-небудь, про що кориÑтувачі повинні знати щодо {0}?" - -#: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:182 -#: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:26 -msgid "Which 2-3 fields do you usually group this metric by?" -msgstr "За Ñкими 2-3 полÑÑ… ви зазвичай группируете дану метрику?" - -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 -msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." -msgstr "Це ідеальне міÑце Ð´Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ Ð¾Ð·Ð½Ð°Ð¹Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· даними вашої організації або щоб проÑто дізнатиÑÑ Ñ‰Ð¾ до чого." - -#: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:65 -msgid "Most useful fields to group this metric by" -msgstr "ÐайкориÑніші полÑ, за Ñкими можна групувати цю метрику" - -#: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:32 -msgid "Reason for changes" -msgstr "причини зміни" - -#: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:36 -msgid "Leave a note to explain what changes you made and why they were required" -msgstr "Залиште опиÑ, щоб поÑÑнити Ñкі зміни Ви зробили Ñ– чому вони необхідні" - -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 -msgid "Why this database is interesting" -msgstr "Чому Ñ†Ñ Ð±Ð°Ð·Ð° даних може бути цікава" - -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 -msgid "Things to be aware of about this database" -msgstr "Що потрібно знати про цю базі даних" - -#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 -#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 -msgid "Databases and tables" -msgstr "Бази даних Ñ– таблиці" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:173 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 -#: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 -msgid "Details" -msgstr "Деталі" - -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 -msgid "Tables in {0}" -msgstr "Таблиці в {0}" - -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 -msgid "Actual name in database" -msgstr "Ð¡Ð¿Ñ€Ð°Ð²Ð½Ñ Ð½Ð°Ð·Ð²Ð° в базі даних" - -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 -msgid "Why this field is interesting" -msgstr "Чому це поле може бути цікаво" - -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 -msgid "Things to be aware of about this field" -msgstr "Що потрібно знати про це поле" - -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 -msgid "Data type" -msgstr "Тип даних" - -#: frontend/src/metabase/reference/databases/FieldList.jsx:39 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:39 -msgid "Fields in this table will appear here as they're added" -msgstr "ÐŸÐ¾Ð»Ñ Ð² цій таблицю з'ÑвлÑÑ‚ÑŒÑÑ Ð¿Ñ–ÑÐ»Ñ Ñ—Ñ… додаваннÑ" - -#: frontend/src/metabase/reference/databases/FieldList.jsx:137 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:138 -msgid "Fields in {0}" -msgstr "ÐŸÐ¾Ð»Ñ Ð² {0}" - -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 -msgid "Field name" -msgstr "Ðазва полÑ" - -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 -msgid "X-ray this field" -msgstr "ПроÑканувати це поле" - -#: frontend/src/metabase/reference/databases/NoDatabasesEmptyState.jsx:8 -msgid "Metabase is no fun without any data" -msgstr "Metabase Ñтає марним Ñкщо немає ніÑких даних" - -#: frontend/src/metabase/reference/databases/NoDatabasesEmptyState.jsx:9 -msgid "Your databases will appear here once you connect one" -msgstr "Ваша база даних з'ÑвитьÑÑ Ñ‚ÑƒÑ‚ піÑÐ»Ñ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ" - -#: frontend/src/metabase/reference/databases/NoDatabasesEmptyState.jsx:10 -msgid "Databases will appear here once your admins have added some" -msgstr "Бази даних з'ÑвитьÑÑ Ñ‚ÑƒÑ‚ піÑÐ»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтраторами" - -#: frontend/src/metabase/reference/databases/NoDatabasesEmptyState.jsx:12 -msgid "Connect a database" -msgstr "Підключити базу даних" - -#. #-#-#-#-# metabase-backend.pot (metabase) #-#-#-#-# -#. cum-count and cum-sum get names for count and sum, respectively (see explanation in `aggregation-name`) -#: frontend/src/metabase/reference/databases/TableDetail.jsx:38 -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Count of {0}" -msgstr "КількіÑÑ‚ÑŒ {0}" - -#: frontend/src/metabase/reference/databases/TableDetail.jsx:47 -msgid "See raw data for {0}" -msgstr "ПодивитиÑÑ Ð²Ð¸Ñ…Ñ–Ð´Ð½Ñ– дані Ð´Ð»Ñ {0}" - -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 -msgid "Why this table is interesting" -msgstr "Чому Ñ†Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¼Ð¾Ð¶Ðµ бути цікава" - -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 -msgid "Things to be aware of about this table" -msgstr "Що потрібно знати про цю таблиці" - -#: frontend/src/metabase/reference/databases/TableList.jsx:30 -msgid "Tables in this database will appear here as they're added" -msgstr "Таблиці в цій базі даних з'ÑвлÑÑ‚ÑŒÑÑ Ð¿Ñ–ÑÐ»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ" - -#: frontend/src/metabase/reference/databases/TableQuestions.jsx:34 -msgid "Questions about this table will appear here as they're added" -msgstr "Запити про цю таблиці з'ÑвлÑÑ‚ÑŒÑÑ Ð¿Ñ–ÑÐ»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ" - -#: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 -#: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 -#: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 -msgid "Questions about {0}" -msgstr "Запити про {0}" - -#: frontend/src/metabase/reference/databases/TableQuestions.jsx:98 -#: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:102 -#: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:101 -msgid "Created {0} by {1}" -msgstr "Створено {0} кориÑтувачем {1}" - -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:40 -msgid "Fields in this table" -msgstr "ÐŸÐ¾Ð»Ñ Ð² цій таблиці" - -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 -msgid "Questions about this table" -msgstr "Запити про цю таблиці" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:158 -msgid "Help your team get started with your data." -msgstr "Допоможіть вашій команді з вашими даними." - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:160 -msgid "Show your team what’s most important by choosing your top dashboard, metrics, and segments." -msgstr "Покажіть вашій команді найбільш важливе, вибравши найкращі панелі інÑтрументів, метрики Ñ– Ñегменти." - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:166 -msgid "Get started" -msgstr "почнемо" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:174 -msgid "Our most important dashboard" -msgstr "Ðаша найважливіша панелі інÑтрументів" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:189 -msgid "Numbers that we pay attention to" -msgstr "ЧиÑла, Ñкі потребують уваги" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:214 -msgid "Metrics are important numbers your company cares about. They often represent a core indicator of how the business is performing." -msgstr "Метрики - це важливі Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ñ–Ñ— показники. Вони чаÑто ÑвлÑÑŽÑ‚ÑŒ Ñобою оÑновні показники того, Ñк працює бізнеÑ." - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:222 -msgid "See all metrics" -msgstr "ПодивитиÑÑ Ð²ÑÑ– метрики" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:236 -msgid "Segments and tables" -msgstr "Сегменти Ñ– таблиці" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 -msgid "Tables" -msgstr "таблиці" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:263 -msgid "Segments and tables are the building blocks of your company's data. Tables are collections of the raw information while segments are specific slices with specific meanings, like {0}" -msgstr "Сегменти Ñ– таблиці Ñ” Ñкладовими блоками даних вашої компанії. Таблиці Ñ” збіркою необробленої інформації, а Ñегменти - це конкретні зрізи зі Ñпецифічними значеннÑми, наприклад {0}" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:268 -msgid "Tables are the building blocks of your company's data." -msgstr "Таблиці Ñ” Ñкладовими блоками даних вашої компанії." - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:278 -msgid "See all segments" -msgstr "ПодивитиÑÑ Ð²ÑÑ– Ñегменти" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:294 -msgid "See all tables" -msgstr "ПодивитиÑÑ Ð²ÑÑ– таблиці" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:302 -msgid "Other things to know about our data" -msgstr "Інші речі, Ñкі потрібно знати про наших даних" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:303 -msgid "Find out more" -msgstr "знайти більше" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:308 -msgid "A good way to get to know your data is by spending a bit of time exploring the different tables and other info available to you. It may take a while, but you'll start to recognize names and meanings over time." -msgstr "Хороший ÑпоÑіб познайомитиÑÑ Ð· вашими даними - витратити трохи чаÑу на Ð²Ð¸Ð²Ñ‡ÐµÐ½Ð½Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… таблиць та іншої інформації, доÑтупної вам. Це може зайнÑти деÑкий чаÑ, але ви з чаÑом ви Ñтанете дізнаватиÑÑ Ñ—Ñ… назви та значеннÑ." - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:314 -msgid "Explore our data" -msgstr "доÑлідити дані" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:322 -msgid "Have questions?" -msgstr "ЗалишилиÑÑ Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:327 -msgid "Contact {0}" -msgstr "Зв'ÑжітьÑÑ Ð· {0}" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:253 -msgid "Help new Metabase users find their way around." -msgstr "Допоможіть новим кориÑтувачам Metabase знайти Ñвій шлÑÑ…." - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:256 -msgid "The Getting Started guide highlights the dashboard, metrics, segments, and tables that matter most, and informs your users of important things they should know before digging into the data." -msgstr "У керівництві Getting Started оÑновна увага приділÑєтьÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ–, метрик, Ñегментам Ñ– таблицÑми, Ñкі інформують ваших кориÑтувачів про важливі речі, Ñкі вони повинні знати, перш ніж вникати в дані." - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:263 -msgid "Is there an important dashboard for your team?" -msgstr "Ð¦Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ інÑтрументів важлива Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ñ— команди?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:265 -msgid "Create a dashboard now" -msgstr "Створити панель інÑтрументів зараз" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:271 -msgid "What is your most important dashboard?" -msgstr "Яка панель інÑтрументів Ñ” найбільш важливою?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:290 -msgid "Do you have any commonly referenced metrics?" -msgstr "Чи Ñ” у Ð²Ð°Ñ Ñкі-небудь чаÑто згадувані метрики?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:292 -msgid "Learn how to define a metric" -msgstr "ДізнайтеÑÑ Ñк визначити метрику" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:308 -msgid "What are your 3-5 most commonly referenced metrics?" -msgstr "Які ваші 3-5 найбільш чаÑто згадувані метрики?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:352 -msgid "Add another metric" -msgstr "Додати іншу метрику" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:365 -msgid "Do you have any commonly referenced segments or tables?" -msgstr "Чи Ñ” у Ð²Ð°Ñ Ñкі-небудь чаÑто згадувані Ñегменти або таблиці?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:367 -msgid "Learn how to create a segment" -msgstr "ДізнайтеÑÑ Ñк Ñтворити Ñегмент" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:383 -msgid "What are 3-5 commonly referenced segments or tables that would be useful for this audience?" -msgstr "Які 3-5 чаÑто згадуваних Ñегментів або таблиць, Ñкі були б кориÑні Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— аудиторії?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:429 -msgid "Add another segment or table" -msgstr "Додати ще один Ñегмент або таблицю" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:438 -msgid "Is there anything your users should understand or know before they start accessing the data?" -msgstr "Чи Ñ” що-небудь, що ваші кориÑтувачі повинні розуміти або знати, перш ніж вони отримають доÑтуп до даних?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:444 -msgid "What should a user of this data know before they start accessing it?" -msgstr "Що повинен знати кориÑтувач про ці дані перед тим, Ñк до них звертатиÑÑ?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:448 -msgid "E.g., expectations around data privacy and use, common pitfalls or misunderstandings, information about data warehouse performance, legal notices, etc." -msgstr "Ðаприклад, Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ конфіденційноÑÑ‚Ñ– та викориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…, типові помилки або непорозуміннÑ, Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ продуктивніÑÑ‚ÑŒ Ñховища даних, Ñке правове Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ– Ñ‚.д." - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:459 -msgid "Is there someone your users could contact for help if they're confused about this guide?" -msgstr "Чи можуть кориÑтувачі до Ð²Ð°Ñ Ð·Ð²ÐµÑ€Ñ‚Ð°Ñ‚Ð¸ÑÑ Ð¿Ñ€Ð¸ виникненні питань?" - -#: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:468 -msgid "Who should users contact for help if they're confused about this data?" -msgstr "З ким повинні пов'Ñзувати кориÑтувачі Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¸ при виникненні питань за даними?" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 -msgid "Please enter a revision message" -msgstr "Будь лаÑка, додайте Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ€ÐµÐ²Ñ–Ð·Ñ–Ñ—" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:216 -msgid "Why this Metric is interesting" -msgstr "Чому Ñ†Ñ ÐœÐµÑ‚Ñ€Ð¸ÐºÐ° може бути цікавою" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:226 -msgid "Things to be aware of about this Metric" -msgstr "Що потрібно знати про цю метриці" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:236 -msgid "How this Metric is calculated" -msgstr "Як розраховуєтьÑÑ Ñ†Ñ Ð¼ÐµÑ‚Ñ€Ð¸ÐºÐ°" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 -msgid "Nothing on how it's calculated yet" -msgstr "Поки нічого не розраховане" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 -msgid "Other fields you can group this metric by" -msgstr "Інші полÑ, за Ñкими ви можете групувати цю метрику" - -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 -msgid "Fields you can group this metric by" -msgstr "Метрика може бути згрупована за такими полÑми" - -#: frontend/src/metabase/reference/metrics/MetricList.jsx:25 -msgid "Metrics are the official numbers that your team cares about" -msgstr "Метрики це офіційні цифри, Ñкими опікуєтьÑÑ Ð²Ð°ÑˆÐ° команда" - -#: frontend/src/metabase/reference/metrics/MetricList.jsx:27 -msgid "Metrics will appear here once your admins have created some" -msgstr "Метрики будуть з'ÑвлÑтиÑÑ Ñ‚ÑƒÑ‚ Ñк тільки ваші адміни Ñ—Ñ… зроблÑÑ‚ÑŒ" - -#: frontend/src/metabase/reference/metrics/MetricList.jsx:29 -msgid "Learn how to create metrics" -msgstr "ДізнайтеÑÑ Ñк Ñтворити метрику" - -#: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:35 -msgid "Questions about this metric will appear here as they're added" -msgstr "Запити про цю метриці з'ÑвлÑÑ‚ÑŒÑÑ Ð¿Ñ–ÑÐ»Ñ Ñ—Ñ… додаваннÑ" - -#: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:29 -msgid "There are no revisions for this metric" -msgstr "Дана метрика не міÑтить ревізій" - -#: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 -msgid "Revision history for {0}" -msgstr "ІÑÑ‚Ð¾Ñ€Ñ–Ñ Ñ€ÐµÐ²Ñ–Ð·Ñ–Ð¹ {0}" - -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 -msgid "X-ray this metric" -msgstr "ПроÑканувати цю метрику" - -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 -msgid "Why this Segment is interesting" -msgstr "Чому цей Ñегмент цікавий" - -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 -msgid "Things to be aware of about this Segment" -msgstr "Що потрібно знати про цей Ñегмент" - -#: frontend/src/metabase/reference/segments/SegmentList.jsx:24 -msgid "Segments are interesting subsets of tables" -msgstr "Сегменти Ñ” цікавими підмножинами таблиць" - -#: frontend/src/metabase/reference/segments/SegmentList.jsx:25 -msgid "Defining common segments for your team makes it even easier to ask questions" -msgstr "Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñегментів Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ñ— команди Ñпрощує ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð²" - -#: frontend/src/metabase/reference/segments/SegmentList.jsx:26 -msgid "Segments will appear here once your admins have created some" -msgstr "Сегменти з'ÑвлÑÑ‚ÑŒÑÑ Ñ‚ÑƒÑ‚ піÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾ Ñк адмініÑтратори Ñ—Ñ… ÑтворÑÑ‚ÑŒ" - -#: frontend/src/metabase/reference/segments/SegmentList.jsx:28 -msgid "Learn how to create segments" -msgstr "ДізнайтеÑÑ Ñк Ñтворювати Ñегменти" - -#: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:35 -msgid "Questions about this segment will appear here as they're added" -msgstr "Запити про цей Ñегмент з'ÑвлÑÑ‚ÑŒÑÑ Ñ‚ÑƒÑ‚ піÑÐ»Ñ Ñ—Ñ… додаваннÑ" - -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 -msgid "There are no revisions for this segment" -msgstr "Даний Ñегмент не міÑтить ревізій" - -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 -msgid "Fields in this segment" -msgstr "ÐŸÐ¾Ð»Ñ Ð² цьому Ñегменті" - -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 -msgid "Questions about this segment" -msgstr "Запити з цим Ñегментом" - -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 -msgid "X-ray this segment" -msgstr "ПроÑканувати цей Ñегмент" - -#: frontend/src/metabase/routes.jsx:182 -msgid "Login" -msgstr "Логін" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 -msgid "Search" -msgstr "Пошук" - -#: frontend/src/metabase/routes.jsx:217 -msgid "Dashboard" -msgstr "Панель інÑтрументів" - -#: frontend/src/metabase/routes.jsx:228 -msgid "New Question" -msgstr "Ðове питаннÑ" - -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 -msgid "Select the type of Database you use" -msgstr "Виберіть тип бази даних" - -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 -msgid "Add your data" -msgstr "Додайте Ñвої дані" - -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 -msgid "I'll add my own data later" -msgstr "Я додам дані пізніше" - -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 -msgid "Connecting to {0}" -msgstr "ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ {0}" - -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 -msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." -msgstr "Вам необхідно деÑка Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ вашу базі даних, така Ñк ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Ñ– пароль. Якщо у Ð²Ð°Ñ Ð½ÐµÑ— Ñ—Ñ— прÑмо зараз - Metabase поÑтавлÑєтьÑÑ Ð· набором теÑтових даних, з Ñким ви можете почати." - -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 -msgid "I'll add my data later" -msgstr "Я додам мої дані пізніше" - -#: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:46 -msgid "Control automatic scans" -msgstr "Контроль за автоматичним ÑкануваннÑм" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 -msgid "Usage data preferences" -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 -msgid "Thanks for helping us improve" -msgstr "ДÑкую за допомогу в поліпшенні" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 -msgid "We won't collect any usage events" -msgstr "Ми не хочемо збирати ніÑкі події викориÑтаннÑ" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 -msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." -msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð»Ñ–Ð¿ÑˆÐµÐ½Ð½Ñ Metabase, ми б хотіли збирати деÑкі дані по викориÑтанню через Google Analytics." - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 -msgid "Here's a full list of everything we track and why." -msgstr "ОÑÑŒ повний ÑпиÑок вÑього що ми відÑтежуємо Ñ– чому." - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 -msgid "Allow Metabase to anonymously collect usage events" -msgstr "Дозволити Metabase збирати анонімні дані про викориÑтаннÑ" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 -msgid "Metabase {0} collects anything about your data or question results." -msgstr "Metabase {0} збирає що або про ваших даних або результатах питань." - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 -msgid "never" -msgstr "ніколи" - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 -msgid "All collection is completely anonymous." -msgstr "Ð’ÑÑ– колекції повніÑÑ‚ÑŽ анонімні." - -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 -msgid "Collection can be turned off at any point in your admin settings." -msgstr "ÐšÐ¾Ð»ÐµÐºÑ†Ñ–Ñ Ð¼Ð¾Ð¶Ðµ бути відключена в будь-Ñкий момент в налаштуваннÑÑ… адмініÑтратора." - -#: frontend/src/metabase/setup/components/Setup.jsx:44 -msgid "If you feel stuck" -msgstr "Якщо ви заÑÑ‚Ñ€Ñгли" - -#: frontend/src/metabase/setup/components/Setup.jsx:49 -msgid "our getting started guide" -msgstr "Ðаше керівництво по початку роботи" - -#: frontend/src/metabase/setup/components/Setup.jsx:50 -msgid "is just a click away." -msgstr "вÑього в одному кліці від ваÑ." - -#: frontend/src/metabase/setup/components/Setup.jsx:92 -msgid "Welcome to Metabase" -msgstr "ЛаÑкаво проÑимо в Metabase" - -#: frontend/src/metabase/setup/components/Setup.jsx:93 -msgid "Looks like everything is working. Now let’s get to know you, connect to your data, and start finding you some answers!" -msgstr "Схоже, вÑе працює. Тепер давайте познайомимоÑÑ Ð±Ð»Ð¸Ð¶Ñ‡Ðµ: налаштуйте Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ даних Ñ– підемо шукати відповіді!" - -#: frontend/src/metabase/setup/components/Setup.jsx:97 -msgid "Let's get started" -msgstr "почнемо" - -#: frontend/src/metabase/setup/components/Setup.jsx:142 -msgid "You're all set up!" -msgstr "Ð’Ñе налаштоване!" - -#: frontend/src/metabase/setup/components/Setup.jsx:153 -msgid "Take me to Metabase" -msgstr "Покажіть мені Metabase" - -#: frontend/src/metabase/setup/components/UserStep.jsx:155 -msgid "What should we call you?" -msgstr "Як ми можемо Ð²Ð°Ñ Ð½Ð°Ð·Ð¸Ð²Ð°Ñ‚Ð¸?" - -#: frontend/src/metabase/setup/components/UserStep.jsx:156 -msgid "Hi, {0}. nice to meet you!" -msgstr "Привіт, {0}. Раді Ð²Ð°Ñ Ð±Ð°Ñ‡Ð¸Ñ‚Ð¸!" - -#: frontend/src/metabase/setup/components/UserStep.jsx:243 -msgid "Create a password" -msgstr "Створіть пароль" - -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 -msgid "Shhh..." -msgstr "ТÑÑÑ ..." - -#: frontend/src/metabase/setup/components/UserStep.jsx:269 -msgid "Confirm password" -msgstr "ÐŸÑ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ" - -#: frontend/src/metabase/setup/components/UserStep.jsx:278 -msgid "Shhh... but one more time so we get it right" -msgstr "ТÑÑ ... але ще раз, щоб напевно" - -#: frontend/src/metabase/setup/components/UserStep.jsx:287 -msgid "Your company or team name" -msgstr "Ðазва вашої компанії або команди" - -#: frontend/src/metabase/setup/components/UserStep.jsx:296 -msgid "Department of awesome" -msgstr "Департамент" - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:26 -msgid "Metabot is admiring your integers…" -msgstr "Metabot захоплюєтьÑÑ Ð²Ð°ÑˆÐ¸Ð¼Ð¸ чиÑлами ..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:27 -msgid "Metabot is performing billions of differential equations…" -msgstr "Metabot виконує мільÑрди диференціальних рівнÑнь ..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:28 -msgid "Metabot is doing science…" -msgstr "Metabot виконує наукові доÑÐ»Ñ–Ð´Ð¶ÐµÐ½Ð½Ñ ..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:29 -msgid "Metabot is checking out your metrics…" -msgstr "Metabot перевірÑÑ” ваші метрики ..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:30 -msgid "Metabot is looking for trends and outliers…" -msgstr "Metabot шукає тренди Ñ– аномалії ..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:31 -msgid "Metabot is consulting the quantum abacus…" -msgstr "Metabot конÑультуєтьÑÑ Ð· квантовими рахунками ..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:32 -msgid "Metabot is feeling pretty good about all this…" -msgstr "Metabot'у вÑе це дуже подобаєтьÑÑ ..." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:52 -msgid "We’ll show you some interesting explorations of your data in\n" -"just a few minutes." -msgstr "Ми покажемо вам кілька цікавих результатів наших доÑліджень через кілька хвилин." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:72 -msgid "This seems to be taking a while. In the meantime, you can check out one of these example explorations to see what Metabase can do for you." -msgstr "ЗдаєтьÑÑ, це займе трохи більше чаÑу, ніж очікувалоÑÑ. Рпоки ви можете подивитиÑÑ Ð¿Ñ€Ð¸ÐºÐ»Ð°Ð´Ð¸ доÑліджень, Ñкі Metabase може робити за ваÑ." - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:86 -msgid "I took a look at the data you just connected, and I have some explorations of interesting things I found. Hope you like them!" -msgstr "Я подививÑÑ Ð½Ð° дані Ñ– оÑÑŒ що цікаве Ñ Ð¼Ð¾Ð¶Ñƒ про них Ñказати. СподіваюÑÑ Ð²Ð°Ð¼ ÑподобаєтьÑÑ!" - -#: frontend/src/metabase/setup/containers/PostSetupApp.jsx:98 -msgid "I'm done exploring for now" -msgstr "Ð’Ñе, поки виÑтачить доÑліджень" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:20 -msgid "Welcome to the Query Builder!" -msgstr "ЛаÑкаво проÑимо в Будівник Запитів!" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:22 -msgid "The Query Builder lets you assemble questions (or \"queries\") to ask about your data." -msgstr "МайÑтер Запитів дозволить підготувати Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ (по-іншому \"запити\") про ваших даних." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:26 -msgid "Tell me more" -msgstr "розповіÑти більше" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:43 -msgid "Start by picking the table with the data that you have a question about." -msgstr "Почніть з вибору таблиці, про дані Ñкої ви хотіли б задати питаннÑ." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:45 -msgid "Go ahead and select the \"Orders\" table from the dropdown menu." -msgstr "Спробуйте вибрати талбіцу \"ЗамовленнÑ\" зі ÑпиÑку." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:78 -msgid "Filter your data to get just what you want." -msgstr "Відфільтруйте дані щоб отримати те, що хочете." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:79 -msgid "Click the plus button and select the \"Created At\" field." -msgstr "ÐатиÑніть кнопку \"плюÑ\" Ñ– виберіть поле \"Створено\"." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:93 -msgid "Here we can pick how many days we want to see data for, try 10" -msgstr "Тут ви можете вибрати Ñкільки днів хочете бачити дані, введіть, наприклад, 10" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:116 -msgid "Here's where you can choose to add or average your data, count the number of rows in the table, or just view the raw data." -msgstr "Тут можна додати або уÑереднити дані, підрахувати кількіÑÑ‚ÑŒ Ñ€Ñдків у таблиці або проÑто переглÑнути необроблені дані." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:118 -msgid "Try it: click on <strong>Raw Data</strong> to change it to <strong>Count of rows</strong> so we can count how many orders there are in this table." -msgstr "Спробуйте: натиÑніть на <strong> Вихідні дані </ strong> щоб помінÑти Ñ—Ñ… на <strong> Показати # </ strong>, тоді ми зможемо порахувати Ñкільки замовлень в цій таблиці." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:142 -msgid "Add a grouping to break out your results by category, day, month, and more." -msgstr "Додайте Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð¸Ð²ÐºÐ¸ результатів по категоріÑм, днÑм, міÑÑцÑм Ñ– Ñ‚.д." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:144 -msgid "Let's do it: click on <strong>Add a grouping</strong>, and choose <strong>Created At: by Week</strong>." -msgstr "ПроÑто зробіть це: натиÑніть на <strong> Додати группіовку </ strong>, Ñ– виберіть <strong> Дата ÑтвореннÑ: по тижню </ strong>" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:152 -msgid "Click on \"by day\" to change it to \"Week.\"" -msgstr "ÐатиÑніть \"по днÑÑ…\" щоб змінити на \"Тиждень\"." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:173 -msgid "Run Your Query." -msgstr "Виконати ваш запит." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:175 -msgid "You're doing so well! Click <strong>Run query</strong> to get your results!" -msgstr "Ð’Ñе готово! ÐатиÑніть <strong> ЗапуÑтити запит </ strong> Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ–Ð²!" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:192 -msgid "You can view your results as a chart instead of a table." -msgstr "Ви можете переглÑдати ваші результати у виглÑді графіка заміÑÑ‚ÑŒ таблиці." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:194 -msgid "Everbody likes charts! Click the <strong>Visualization</strong> dropdown and select <strong>Line</strong>." -msgstr "Ð’ÑÑ– люблÑÑ‚ÑŒ графіки! ÐатиÑніть на випадаючому ÑпиÑку <strong> Ð’Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ </ strong> Ñ– виберіть <strong> Ð›Ñ–Ð½Ñ–Ñ </ strong>." - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:216 -msgid "Well done!" -msgstr "Зроблено!" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:218 -msgid "That's all! If you still have questions, check out our" -msgstr "Це вÑе! Якщо у Ð²Ð°Ñ Ð·Ð°Ð»Ð¸ÑˆÐ¸Ð»Ð¸ÑÑ Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ, ознайомтеÑÑ Ð· нашим" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:223 -msgid "User's Guide" -msgstr "ІнÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ ÐºÐ¾Ñ€Ð¸Ñтувача" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:223 -msgid "Have fun exploring your data!" -msgstr "ВеÑелітьÑÑ, доÑліджуючи Ñвої дані!" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:226 -msgid "Thanks" -msgstr "ДÑкуємо" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:235 -msgid "Save Your Questions" -msgstr "Зберегти ваші запити" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:237 -msgid "By the way, you can save your questions so you can refer to them later. Saved Questions can also be put into dashboards or Pulses." -msgstr "До речі, ви можете зберегти Ñвої запити Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб пізніше Ñ–Ñнувала можливіÑÑ‚ÑŒ поÑилатиÑÑ Ð½Ð° них. Збережені запити також можуть бути поміщені в панелі інÑтрументів або в ПульÑи" - -#: frontend/src/metabase/tutorial/QueryBuilderTutorial.jsx:241 -msgid "Sounds good" -msgstr "Звучить чудово" - -#: frontend/src/metabase/tutorial/Tutorial.jsx:248 -msgid "Whoops!" -msgstr "УуууупÑ!" - -#: frontend/src/metabase/tutorial/Tutorial.jsx:249 -msgid "Sorry, it looks like something went wrong. Please try restarting the tutorial in a minute." -msgstr "ПроÑимо вибаченнÑ, але щоÑÑŒ пішло не так. Спробуйте почати Ð½Ð°Ð²Ñ‡Ð°Ð½Ð½Ñ Ð·Ð°Ð½Ð¾Ð²Ð¾ через хвилину." - -#: frontend/src/metabase/user/actions.js:34 -msgid "Password updated successfully!" -msgstr "Пароль уÑпішно змінено!" - -#: frontend/src/metabase/user/actions.js:53 -msgid "Account updated successfully!" -msgstr "Обліковий Ð·Ð°Ð¿Ð¸Ñ ÑƒÑпішно змінена!" - -#: frontend/src/metabase/user/components/SetUserPassword.jsx:107 -msgid "Current password" -msgstr "Поточний пароль" - -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:137 -msgid "Sign in with Google Email address" -msgstr "Увійти за допомогою облікового запиÑу Google" - -#: frontend/src/metabase/user/components/UserSettings.jsx:65 -msgid "User Details" -msgstr "Деталі кориÑтувача" - -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 -msgid "Reset to defaults" -msgstr "Скинути по замовчуванню" - -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 -msgid "unknown map" -msgstr "невідома карта" - -#: frontend/src/metabase/visualizations/components/LeafletGridHeatMap.jsx:26 -msgid "Grid map requires binned longitude/latitude." -msgstr "Карта потребує відповідних градуÑах довготи Ñ– широти" - -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 -msgid "more" -msgstr "більше" - -#: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:111 -msgid "Which fields do you want to use for the X and Y axes?" -msgstr "Які Ð¿Ð¾Ð»Ñ Ð²Ð¸ хочете викориÑтовувати Ð´Ð»Ñ Ð¾Ñей X Ñ– Y?" - -#: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:113 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:64 -msgid "Choose fields" -msgstr "Виберіть полÑ" - -#: frontend/src/metabase/visualizations/components/PinMap.jsx:215 -msgid "Save as default view" -msgstr "Зберегти Ñк вид за замовчуваннÑм" - -#: frontend/src/metabase/visualizations/components/PinMap.jsx:237 -msgid "Draw box to filter" -msgstr "Ðамалюйте \"коробку\" Ð´Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ñ–Ñ—" - -#: frontend/src/metabase/visualizations/components/PinMap.jsx:237 -msgid "Cancel filter" -msgstr "СкаÑувати фільтр" - -#: frontend/src/metabase/visualizations/components/PinMap.jsx:47 -msgid "Pin Map" -msgstr "закріпити карту" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:369 -msgid "Unset" -msgstr "знÑти вибір" - -#: frontend/src/metabase/visualizations/components/TableSimple.jsx:253 -msgid "Rows {0}-{1} of {2}" -msgstr "ЗапиÑи {0} - {1} з {2}" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 -msgid "Data truncated to {0} rows." -msgstr "Дані Ñкорочені до {0} Ñ€Ñдків." - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 -msgid "Could not find visualization" -msgstr "Ðеможливо знайти візуалізацію" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 -msgid "Could not display this chart with this data." -msgstr "Ðеможливо відобразити графік з поточними даними." - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 -msgid "No results!" -msgstr "Ðемає результатів!" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 -msgid "Still Waiting..." -msgstr "ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ ..." - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 -msgid "This usually takes an average of {0}." -msgstr "Це в Ñередньому займає {0}." - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 -msgid "(This is a bit long for a dashboard)" -msgstr "Це трохи задовго Ð´Ð»Ñ Ð¿Ð°Ð½ÐµÐ»Ñ– інÑтрументів" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:503 -msgid "This is usually pretty fast but seems to be taking awhile right now." -msgstr "Зазвичай це доÑить швидке дію, але, здаєтьÑÑ, зараз це займе більше чаÑу." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.jsx:36 -msgid "Select a field" -msgstr "Виберіть поле" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingFieldsPicker.jsx:45 -msgid "error" -msgstr "помилка" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 -msgid "Click and drag to change their order" -msgstr "ÐатиÑніть Ñ– перетÑгніть Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ Ñ—Ñ… порÑдку" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 -msgid "Add fields from the list below" -msgstr "Додати Ð¿Ð¾Ð»Ñ Ð´Ð¾ ÑпиÑку нижче" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:24 -msgid "less than" -msgstr "менше ніж" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:25 -msgid "greater than" -msgstr "більше ніж" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:26 -msgid "less than or equal to" -msgstr "менше ніж або дорівнює" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:27 -msgid "greater than or equal to" -msgstr "більше ніж або дорівнює" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:28 -msgid "equal to" -msgstr "одно" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:29 -msgid "not equal to" -msgstr "не дорівнює" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:191 -msgid "Conditional formatting" -msgstr "Умовне форматуваннÑ" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:193 -msgid "You can add rules to make the cells in this table change color if\n" -"they meet certain conditions." -msgstr "Ви можете додати правила щоб помінÑти кольори елементів таблиці в залежноÑÑ‚Ñ– від умов." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:203 -msgid "Add a rule" -msgstr "Додати правило" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:208 -msgid "Rules will be applied in this order" -msgstr "Правила будуть заÑтоÑовуватиÑÑ Ð² цьому порÑдку" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:209 -msgid "Click and drag to reorder." -msgstr "ÐатиÑніть Ñ– перетÑгніть щоб змінити порÑдок." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:242 -msgid "No columns selected" -msgstr "Стовпці не вибрані" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:290 -msgid "Cells in this column will be tinted based on their values." -msgstr "Клітинки цієї колонки будуть пофарбовані в залежноÑÑ‚Ñ– від Ñ—Ñ… значень." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:279 -msgid "When a cell in these columns is {0} it will be tinted this color." -msgstr "Коли оÑередок в цих колонках буде {0}, вона буде пофарбована в цьому колір." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:313 -msgid "Which columns should be affected?" -msgstr "Які колонки повинні бути змінені?" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:335 -msgid "Formatting style" -msgstr "Стиль форматуваннÑ" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:339 -msgid "Single color" -msgstr "один колір" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:340 -msgid "Color range" -msgstr "діапазон кольорів" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:312 -msgid "When a cell in this column is…" -msgstr "Коли оÑередок в цій колонці ..." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:376 -msgid "…turn its background this color:" -msgstr "переключити фоновий колір в цей колір:" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:382 -msgid "Highlight the whole row" -msgstr "ПідÑвітити вÑÑŽ Ñ€Ñдок" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:390 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:132 -msgid "Colors" -msgstr "кольори" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:404 -msgid "Start the range at" -msgstr "Почати діапазон з" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:409 -msgid "Smallest value in this column" -msgstr "Ðайменше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð² цьому Ñтовпці" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:411 -msgid "Smallest value in each column" -msgstr "Ðайменше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð² кожному Ñтовпці" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:413 -msgid "Smallest value in all of these columns" -msgstr "Ðайменше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ вÑÑ–Ñ… цих шпальтах" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:417 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:441 -msgid "Custom value" -msgstr "Довільний значеннÑ" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:428 -msgid "End the range at" -msgstr "закінчити діапазон" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:433 -msgid "Largest value in this column" -msgstr "Ðайбільше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð² цій колонці" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:435 -msgid "Largest value in each column" -msgstr "Ðайбільше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ вÑÑ–Ñ… колонках" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:437 -msgid "Largest value in all of these columns" -msgstr "Ðайбільше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ вÑÑ–Ñ… цих колонках" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:471 -msgid "Add rule" -msgstr "Додати правило" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:471 -msgid "Update rule" -msgstr "оновити правило" - -#: frontend/src/metabase/visualizations/index.js:33 -msgid "Visualization is null" -msgstr "Ð’Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð½Ðµ задана" - -#: frontend/src/metabase/visualizations/index.js:38 -msgid "Visualization must define an 'identifier' static variable: " -msgstr "Ð’Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° визначати Ñтатичну змінну 'identifier':" - -#: frontend/src/metabase/visualizations/index.js:44 -msgid "Visualization with that identifier is already registered: " -msgstr "Ð’Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð· цим ідентифікатором вже зареєÑтрована:" - -#: frontend/src/metabase/visualizations/index.js:72 -msgid "No visualization for {0}" -msgstr "Ðемає візуалізації Ð´Ð»Ñ {0}" - -#: frontend/src/metabase/visualizations/lib/warnings.js:25 -msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." -msgstr "{0} - ÐЕ Ð°Ð³Ñ€ÐµÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ðµ: Ñкщо в точці оÑÑ– x Ñ” більше двох значень - вони будуть підÑумовані." - -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 -msgid "This chart type requires at least 2 columns." -msgstr "Даний тип графіка вимагає Ñк мінімум 2 Ñтовпчика." - -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 -msgid "This chart type doesn't support more than {0} series of data." -msgstr "Даний тип графіка не підтримує більше ніж {0} наборів даних." - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:297 -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:62 -msgid "Goal" -msgstr "мета" - -#: frontend/src/metabase/visualizations/lib/errors.js:11 -msgid "Doh! The data from your query doesn't fit the chosen display choice. This visualization requires at least {0} {1} of data." -msgstr "Ой! Дані із запиту не підходÑÑ‚ÑŒ до обраної візуалізації. Ð¦Ñ Ð²Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ” мінімум {0}\n" -" {1} даних" - -#: frontend/src/metabase/visualizations/lib/errors.js:11 -msgid "column" -msgid_plural "columns" -msgstr[0] "Ñтовпець" -msgstr[1] "Ñтовпець" -msgstr[2] "Ñтовпець" -msgstr[3] "Ñтовпець" - -#: frontend/src/metabase/visualizations/lib/errors.js:23 -msgid "No dice. We have {0} data {1} to show and that's not enough for this visualization." -msgstr "Чи не проканает. У Ð½Ð°Ñ {0} даних з {1} щоб показати, Ñ– цього недоÑтатньо Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— візуалізації." - -#: frontend/src/metabase/visualizations/lib/errors.js:23 -msgid "point" -msgid_plural "points" -msgstr[0] "крапка" -msgstr[1] "крапка" -msgstr[2] "крапка" -msgstr[3] "крапка" - -#: frontend/src/metabase/visualizations/lib/errors.js:35 -msgid "Bummer. We can't actually do a pin map for this data because we require both a latitude and longitude column." -msgstr "Тупик. Ми не зможемо зробити карту з цих даних - потрібна Ñ– широта, Ñ– довгота." - -#: frontend/src/metabase/visualizations/lib/errors.js:55 -msgid "Please configure this chart in the chart settings" -msgstr "Конфігуруйте цю діаграму в налаштуваннÑÑ… діаграми" - -#: frontend/src/metabase/visualizations/lib/errors.js:57 -msgid "Edit Settings" -msgstr "Змінити налаштуваннÑ" - -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 -msgid "xValues missing!" -msgstr "X-Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñутні!" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:90 -#: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:31 -msgid "X-axis" -msgstr "віÑÑŒ абÑциÑ" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:119 -msgid "Add a series breakout..." -msgstr "Додати розрив Ñерії ..." - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:132 -#: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:35 -msgid "Y-axis" -msgstr "віÑÑŒ ординат" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:160 -msgid "Add another series..." -msgstr "Додати іншу Ñерію ..." - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:177 -msgid "Bubble size" -msgstr "Розмір бульбашки" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 -msgid "Line" -msgstr "лініÑ" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:72 -msgid "Curve" -msgstr "крива" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:73 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:104 -msgid "Step" -msgstr "крок" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:170 -msgid "Show point markers on lines" -msgstr "Показати позначки точок на лініÑÑ…" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:219 -msgid "Stacking" -msgstr "об'єднаннÑ" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:223 -msgid "Don't stack" -msgstr "Чи не об'єднувати" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:224 -msgid "Stack" -msgstr "об'єднати" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:225 -msgid "Stack - 100%" -msgstr "Об'єднати - 100%" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 -msgid "Show goal" -msgstr "Показати мета" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:287 -msgid "Goal value" -msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼ÐµÑ‚Ð¸" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:103 -msgid "Replace missing values with" -msgstr "Замінити відÑутні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:107 -msgid "Zero" -msgstr "нуль" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:108 -msgid "Nothing" -msgstr "нічого" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:109 -msgid "Linear Interpolated" -msgstr "лінійна інтерполÑціÑ" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 -msgid "X-axis scale" -msgstr "Шкала оÑÑ– абÑциÑ" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 -msgid "Timeseries" -msgstr "тимчаÑова шкала" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 -msgid "Linear" -msgstr "лінійний" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 -msgid "Power" -msgstr "У Ñтупені" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 -msgid "Log" -msgstr "лог" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 -msgid "Histogram" -msgstr "ГіÑтограма" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 -msgid "Ordinal" -msgstr "порÑдковий" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 -msgid "Y-axis scale" -msgstr "МаÑштаб Y оÑÑ–" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 -msgid "Show x-axis line and marks" -msgstr "Показати Ñ€Ñдок Ñ– мітки по оÑÑ– x" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 -msgid "Compact" -msgstr "компактно" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 -msgid "Rotate 45°" -msgstr "Перевернути на 45 °" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 -msgid "Rotate 90°" -msgstr "Перевернути на 90 °" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 -msgid "Show y-axis line and marks" -msgstr "Показати Ñ€Ñдок Ñ– мітки по оÑÑ– y" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 -msgid "Auto y-axis range" -msgstr "Ðвто діапазон оÑÑ– ординат" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 -msgid "Use a split y-axis when necessary" -msgstr "ВикориÑтовувати розриви школи ординат коли це необхідно" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 -msgid "Show label on x-axis" -msgstr "Показати мітку на X оÑÑ–" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 -msgid "X-axis label" -msgstr "Мітка X оÑÑ–" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 -msgid "Show label on y-axis" -msgstr "Показати мітку на Y оÑÑ–" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 -msgid "Y-axis label" -msgstr "Мітка Y оÑÑ–" - -#: frontend/src/metabase/visualizations/lib/utils.js:133 -msgid "Standard Deviation" -msgstr "Стандартне відхиленнÑ" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 -msgid "Area" -msgstr "облаÑÑ‚ÑŒ" - -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 -msgid "area chart" -msgstr "облаÑÑ‚ÑŒ графіка" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 -msgid "Bar" -msgstr "ГіÑтограма" - -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 -msgid "bar chart" -msgstr "гіÑтограма" - -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:62 -msgid "Which fields do you want to use?" -msgstr "Яке поле ви хочете викориÑтовувати?" - -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:32 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:122 -msgid "Funnel" -msgstr "воронка" - -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:111 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:110 -msgid "Measure" -msgstr "ВимірюваннÑ" - -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:117 -msgid "Funnel type" -msgstr "Тип воронки" - -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:123 -msgid "Bar chart" -msgstr "ГіÑтограма" - -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 -msgid "line chart" -msgstr "Графік" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 -msgid "Please select longitude and latitude columns in the chart settings." -msgstr "Будь лаÑка виберіть колонки, що міÑÑ‚ÑÑ‚ÑŒ широту Ñ– довготу Ð´Ð»Ñ Ð½Ð°Ñтройки графіка." - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 -msgid "Please select a region map." -msgstr "Будь лаÑка виберіть карту регіону." - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 -msgid "Please select region and metric columns in the chart settings." -msgstr "Будь лаÑка виберіть облаÑÑ‚ÑŒ Ñ– Ñтовпці метрик в налаштуваннÑÑ… графіка." - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:39 -msgid "Map" -msgstr "Мапа" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 -msgid "Map type" -msgstr "Тип карти" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 -msgid "Region map" -msgstr "Карта регіону" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 -msgid "Pin map" -msgstr "закріпити карту" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 -msgid "Pin type" -msgstr "Тип значка" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 -msgid "Tiles" -msgstr "плитка" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 -msgid "Markers" -msgstr "маркери" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 -msgid "Latitude field" -msgstr "поле широти" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 -msgid "Longitude field" -msgstr "поле довготи" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 -msgid "Metric field" -msgstr "поле вимірюваннÑ" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 -msgid "Region field" -msgstr "поле регіону" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 -msgid "Radius" -msgstr "радіуÑ" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 -msgid "Blur" -msgstr "Розумієте" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 -msgid "Min Opacity" -msgstr "мінімальна прозоріÑÑ‚ÑŒ" - -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 -msgid "Max Zoom" -msgstr "макÑимальне наближеннÑ" - -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 -msgid "No relationships found." -msgstr "Зв'Ñзки не знайдені." - -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 -msgid "via {0}" -msgstr "через {0}" - -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 -msgid "This {0} is connected to:" -msgstr "{0} пов'Ñзано з:" - -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:87 -msgid "Object Detail" -msgstr "Деталі об'єкту" - -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:90 -msgid "object" -msgstr "об'єкт" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 -msgid "Total" -msgstr "вÑього" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:73 -msgid "Which columns do you want to use?" -msgstr "Які колонки ви хочете викориÑтовувати?" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:49 -msgid "Pie" -msgstr "пиріг" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:105 -msgid "Dimension" -msgstr "ВимірюваннÑ" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:115 -msgid "Show legend" -msgstr "Показати легенду" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:120 -msgid "Show percentages in legend" -msgstr "Показати процентовку в легенді" - -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:126 -msgid "Minimum slice percentage" -msgstr "Мінімальний процентаж зрізу" - -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:161 -msgid "Goal met" -msgstr "Мета доÑÑгнута" - -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:163 -msgid "Goal exceeded" -msgstr "Мета доÑÑгнута" - -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:230 -msgid "Goal {0}" -msgstr "Мета {0}" - -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:43 -msgid "Progress visualization requires a number." -msgstr "Ð’Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€ÐµÑ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾ чиÑло." - -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:27 -msgid "Progress" -msgstr "прогреÑ" - -#: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 -msgid "Color" -msgstr "колір" - -#: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:13 -msgid "Row Chart" -msgstr "лінійна діаграма" - -#: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:16 -msgid "row chart" -msgstr "лінійна діаграма" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:358 -msgid "Separator style" -msgstr "Стиль роздільника" - -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:88 -msgid "Number of decimal places" -msgstr "КількіÑÑ‚ÑŒ деÑÑткових знаків" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:382 -msgid "Add a prefix" -msgstr "Додати префікÑ" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:386 -msgid "Add a suffix" -msgstr "Додати ÑуфікÑ" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:375 -msgid "Multiply by a number" -msgstr "Помножити на чиÑло" - -#: frontend/src/metabase/visualizations/visualizations/ScatterPlot.jsx:16 -msgid "Scatter" -msgstr "розкид" - -#: frontend/src/metabase/visualizations/visualizations/ScatterPlot.jsx:19 -msgid "scatter plot" -msgstr "точкова діаграма" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:83 -msgid "Pivot the table" -msgstr "звід таблиці" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:73 -msgid "Visible fields" -msgstr "видимі полÑ" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:167 -#, fuzzy -msgid "Write here, and use Markdown if you'd like" -msgstr "Ðапишіть тут, Ñ– викориÑтовуєтьÑÑ Ñкщо хочете Markdown" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:73 -msgid "Vertical Alignment" -msgstr "вертикальне вирівнюваннÑ" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:77 -msgid "Top" -msgstr "верх" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:78 -msgid "Middle" -msgstr "Ñередина" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:79 -msgid "Bottom" -msgstr "низ" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:86 -msgid "Horizontal Alignment" -msgstr "горизонтальне вирівнюваннÑ" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:126 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:90 -msgid "Left" -msgstr "ліво" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:91 -msgid "Center" -msgstr "центр" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:127 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:92 -msgid "Right" -msgstr "право" - -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:99 -msgid "Show background" -msgstr "Показати фон" - -#: frontend/src/metabase-lib/lib/Dimension.js:725 -msgid "{0} bin" -msgid_plural "{0} bins" -msgstr[0] "контейнер" -msgstr[1] "контейнеров" -msgstr[2] "контейнеры" -msgstr[3] "контейнер" - -#: frontend/src/metabase-lib/lib/Dimension.js:731 -msgid "Auto binned" -msgstr "Ðвт. Ñкомпоновано" - -#: src/metabase/api/alert.clj -msgid "DELETE /api/alert/:id is deprecated. Instead, change its `archived` value via PUT /api/alert/:id." -msgstr "Запит DELETE / api / alert /: id заÑтарів. ÐатоміÑÑ‚ÑŒ викориÑтовуйте PUT / api / alert /: id Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ 'archived' значеннÑ." - -#: src/metabase/api/automagic_dashboards.clj -msgid "invalid show value" -msgstr "некоректне відображаєтьÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ" - -#: src/metabase/api/automagic_dashboards.clj -msgid "invalid value for prefix" -msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ€ÐµÑ„Ñ–ÐºÑа" - -#: src/metabase/api/automagic_dashboards.clj -msgid "invalid value for rule name" -msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ–Ð¼ÐµÐ½Ñ– правила" - -#: src/metabase/api/automagic_dashboards.clj -msgid "value couldn''t be parsed as base64 encoded JSON" -msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ може бути перетворено Ñк base64 ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ JSON Ñ€Ñдок" - -#: src/metabase/api/automagic_dashboards.clj -msgid "Invalid entity type" -msgstr "Ðекоректний тип ÑутноÑÑ‚Ñ–" - -#: src/metabase/api/automagic_dashboards.clj -msgid "Invalid comparison entity type. Can only be one of \"table\", \"segment\", or \"adhoc\"" -msgstr "Ðекоректний тип Ð´Ð»Ñ Ð¿Ð¾Ñ€Ñ–Ð²Ð½ÑÐ½Ð½Ñ ÑутноÑÑ‚Ñ–. Може бути тільки \"таблицÑ\", \"Ñегмент\" або \"на льоту\"" - -#: src/metabase/query_processor/async.clj -msgid "Error running query to determine Card result metadata:" -msgstr "Помилка Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð¸Ñ… картки:" - -#: src/metabase/api/card.clj -msgid "DELETE /api/card/:id is deprecated. Instead, change its `archived` value via PUT /api/card/:id." -msgstr "Запит DELETE / api / card /: id заÑтарів. ÐатоміÑÑ‚ÑŒ ?, викориÑтовуйте PUT / api / card /: id Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ 'archived' значеннÑ." - -#: src/metabase/api/common.clj src/metabase/api/common/internal.clj -msgid "Invalid field: {0}" -msgstr "Ðекоректне поле: {0}" - -#: src/metabase/api/common.clj -msgid "Invalid value ''{0}'' for ''{1}'': {2}" -msgstr "Ðекоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ '' {0} '' Ð´Ð»Ñ '' {1} '': {2}" - -#: src/metabase/api/common.clj -msgid "must be one of: {0}" -msgstr "має бути одні з: {0}" - -#: src/metabase/api/common.clj -msgid "Invalid Request." -msgstr "Ðекоректний запит." - -#: src/metabase/api/common.clj -msgid "Not found." -msgstr "Ðе знайдено." - -#: src/metabase/api/common.clj -msgid "You don''t have permissions to do that." -msgstr "У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” повноважень на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¾Ñ— дії." - -#: src/metabase/api/common.clj -msgid "Internal server error." -msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñервера." - -#: src/metabase/api/common.clj -msgid "Warning: endpoint {0}/{1} does not have a docstring." -msgstr "ПопередженнÑ: кінцева точка {0} / {1} не має опиÑу." - -#: src/metabase/api/common.clj -msgid "starting streaming request" -msgstr "запуÑк потокового запиту" - -#: src/metabase/async/api_response.clj -msgid "connection closed, canceling request" -msgstr "з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾, ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ" - -#. a newline padding character as it's harmless and will allow us to check if the client is connected. If -#. sending this character fails because the connection is closed, the chan will then close. Newlines are -#. no-ops when reading JSON which this depends upon. -#: src/metabase/async/api_response.clj -msgid "Response not ready, writing one byte & sleeping..." -msgstr "Відповідь не готовий, запишемо один байт Ñ– почекаємо ..." - -#: src/metabase/api/common.clj -msgid "Public sharing is not enabled." -msgstr "ÐŸÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð½Ðµ включена." - -#: src/metabase/api/common.clj -msgid "Embedding is not enabled." -msgstr "Ð’Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¾." - -#: src/metabase/api/common.clj -msgid "The object has been archived." -msgstr "Цей об'єкт переміщений в архів." - -#: src/metabase/api/common/internal.clj -msgid "Attempted to return a boolean as an API response. This is not allowed!" -msgstr "Спроба Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð»Ð¾Ð³Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ відповіді API. Це не дозволено!" - -#: src/metabase/api/dataset.clj -msgid "Source query for this query is Card {0}" -msgstr "Вихідний запит Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ - картка {0}" - -#: src/metabase/api/dataset.clj -msgid "Invalid export format: {0}" -msgstr "Ðекоректний формат екÑпорту: {0}" - -#: src/metabase/api/geojson.clj -msgid "Invalid JSON URL or resource: {0}" -msgstr "Ðекоректна JSON поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ реÑурÑ: {0}" - -#: src/metabase/api/geojson.clj -msgid "JSON containing information about custom GeoJSON files for use in map visualizations instead of the default US State or World GeoJSON." -msgstr "JSON, Ñкий міÑтить інформацію про кориÑтувача файлах GeoJSON Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð² візуалізації карт заміÑÑ‚ÑŒ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° замовчуваннÑм - СШРабо World GeoJSON." - -#: src/metabase/api/geojson.clj -msgid "Invalid custom GeoJSON key: {0}" -msgstr "Ðекоректних ключ GeoJSON: {0}" - -#. ...but if we *still* couldn't find a match, throw an Exception, because we don't want people -#. trying to inject new params -#: src/metabase/api/public.clj -msgid "Invalid param: {0}" -msgstr "Ðекоректний параметр: {0}" - -#: src/metabase/api/pulse.clj -msgid "DELETE /api/pulse/:id is deprecated. Instead, change its `archived` value via PUT /api/pulse/:id." -msgstr "Запит DELETE / api / pulse /: id заÑтарів. ÐатоміÑÑ‚ÑŒ викориÑтовуйте PUT / api / pulse /: id Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ 'archived' значеннÑ." - -#: src/metabase/api/routes.clj -msgid "API endpoint does not exist." -msgstr "Кінцева точка API не Ñ–Ñнує." - -#: src/metabase/api/session.clj -msgid "Password did not match stored password." -msgstr "Пароль не збігаєтьÑÑ Ð·Ñ– збереженим паролем." - -#: src/metabase/api/session.clj -msgid "did not match stored password" -msgstr "не збігаєтьÑÑ Ð·Ñ– збереженим паролем" - -#: src/metabase/api/session.clj -msgid "Problem connecting to LDAP server, will fallback to local authentication {0}" -msgstr "Помилка Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ LDAP Ñервер, Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ локальної аутентифікації {0}" - -#: src/metabase/api/session.clj -msgid "Invalid reset token" -msgstr "Ðекоректний токен ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ" - -#: src/metabase/api/session.clj -msgid "Client ID for Google Auth SSO. If this is set, Google Auth is considered to be enabled." -msgstr "Client ID Ð´Ð»Ñ Google Auth SSO. Якщо вÑтановлено, то Google Auth включено." - -#: src/metabase/api/session.clj -msgid "When set, allow users to sign up on their own if their Google account email address is from this domain." -msgstr "Коли вÑтановлено, кориÑтувачі зможуть викориÑтовувати Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ Ñвій Google аккаунт з цього домену." - -#: src/metabase/api/session.clj -msgid "Invalid Google Auth token." -msgstr "Ðекоректний Google Auth токен," - -#: src/metabase/api/session.clj -msgid "Email is not verified." -msgstr "Email не підтверджений." - -#: src/metabase/api/session.clj -msgid "You''ll need an administrator to create a Metabase account before you can use Google to log in." -msgstr "Вам необхідний адмініÑтратор Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Metabase аккаунта до того, Ñк ви зможете входити за допомогою облікового запиÑу Google." - -#: src/metabase/api/session.clj -msgid "Successfully authenticated Google Auth token for: {0} {1}" -msgstr "УÑпішний вхід з токеном Google Auth длÑ: {0} {1}" - -#: src/metabase/api/setup.clj -msgid "Add a database" -msgstr "Додати базу Даних" - -#: src/metabase/api/setup.clj -msgid "Get connected" -msgstr "Будьте на зв'Ñзку" - -#: src/metabase/api/setup.clj -msgid "Connect to your data so your whole team can start to explore." -msgstr "Під'єднатиÑÑ Ð´Ð¾ ваших данних, щоб ваша команда змогла почати Ñ—Ñ… вивчати." - -#: src/metabase/api/setup.clj -msgid "Set up email" -msgstr "налаштувати email" - -#: src/metabase/api/setup.clj -msgid "Add email credentials so you can more easily invite team members and get updates via Pulses." -msgstr "Додавши email вам Ñтане проÑтіше запрошувати членів команди Ñ– отримувати Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· ПульÑи." - -#: src/metabase/api/setup.clj -msgid "Set Slack credentials" -msgstr "Ð’Ñтановити параметри Slack" - -#: src/metabase/api/setup.clj -msgid "Does your team use Slack? If so, you can send automated updates via pulses and ask questions with MetaBot." -msgstr "Чи викориÑтовує ваша команда Slack? Якщо так, то ви можете відправлÑти автоматичні Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· ПульÑи Ñ– задавати Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð·Ð° допомогою MetaBot." - -#: src/metabase/api/setup.clj -msgid "Invite team members" -msgstr "ЗапроÑити учаÑників команди" - -#: src/metabase/api/setup.clj -msgid "Share answers and data with the rest of your team." -msgstr "ПоділитиÑÑ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ñми Ñ– даними з вашою командою." - -#: src/metabase/api/setup.clj -msgid "Hide irrelevant tables" -msgstr "Приховати непотрібні таблиці" - -#: src/metabase/api/setup.clj -msgid "Curate your data" -msgstr "Завершіть Ñвої дані" - -#: src/metabase/api/setup.clj -msgid "If your data contains technical or irrelevant info you can hide it." -msgstr "Якщо ваші дані міÑÑ‚ÑÑ‚ÑŒ технічну або нерелевантну інформацію, ви можете Ñ—Ñ… приховати." - -#: src/metabase/api/setup.clj -msgid "Organize questions" -msgstr "ВпорÑдкувати запити" - -#: src/metabase/api/setup.clj -msgid "Have a lot of saved questions in {0}? Create collections to help manage them and add context." -msgstr "У Ð²Ð°Ñ Ð±ÐµÐ·Ð»Ñ–Ñ‡ збережених запитів в {0}? Створіть колекції Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¸ в управлінні Ñ– Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÐµÐºÑту." - -#. This is the very first log message that will get printed. -#. It's here because this is one of the very first namespaces that gets loaded, and the first that has access to the logger -#. It shows up a solid 10-15 seconds before the "Starting Metabase in STANDALONE mode" message because so many other namespaces need to get loaded -#: src/metabase/api/setup.clj -msgid "Metabase" -msgstr "Metabase" - -#: src/metabase/api/setup.clj -msgid "Create metrics" -msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¼ÐµÑ‚Ñ€Ð¸ÐºÐ¸" - -#: src/metabase/api/setup.clj -msgid "Define canonical metrics to make it easier for the rest of your team to get the right answers." -msgstr "Визначте канонічні метрики, щоб іншим Ñпівробітникам було проÑтіше отримати правильні відповіді." - -#: src/metabase/api/setup.clj -msgid "Create segments" -msgstr "ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñегментів" - -#: src/metabase/api/setup.clj -msgid "Keep everyone on the same page by creating canonical sets of filters anyone can use while asking questions." -msgstr "Тримайте вÑÑ–Ñ… на одній Ñторінці, Ñтворюючи канонічні набори фільтрів, Ñкі будь-хто може викориÑтовувати, ÑтавлÑчи питаннÑ." - -#: src/metabase/api/table.clj -msgid "Table ''{0}'' is now visible. Resyncing." -msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ '' {0} '' тепер видима. РеÑинхронізаціÑ." - -#: src/metabase/api/table.clj -msgid "Auto bin" -msgstr "авто компоновка" - -#: src/metabase/api/table.clj -msgid "Don''t bin" -msgstr "Чи не компонувати" - -#: frontend/src/metabase/lib/query_time.js:196 src/metabase/api/table.clj -msgid "Day" -msgid_plural "Days" -msgstr[0] "день" -msgstr[1] "дней" -msgstr[2] "дней" -msgstr[3] "дней" - -#. note the order of these options corresponds to the order they will be shown to the user in the UI -#: frontend/src/metabase/lib/query_time.js:192 src/metabase/api/table.clj -msgid "Minute" -msgid_plural "Minutes" -msgstr[0] "хвилина" -msgstr[1] "хвилин" -msgstr[2] "хвилин" -msgstr[3] "хвилин" - -#: frontend/src/metabase/lib/query_time.js:194 src/metabase/api/table.clj -msgid "Hour" -msgid_plural "Hours" -msgstr[0] "Година" -msgstr[1] "Годин" -msgstr[2] "Годин" -msgstr[3] "Годин" - -#: frontend/src/metabase/lib/query_time.js:202 src/metabase/api/table.clj -msgid "Quarter" -msgid_plural "Quarters" -msgstr[0] "квартал" -msgstr[1] "Кварталов" -msgstr[2] "Кварталов" -msgstr[3] "Кварталов" - -#: src/metabase/api/table.clj -msgid "Minute of Hour" -msgstr "хвилина години" - -#: src/metabase/api/table.clj -msgid "Hour of Day" -msgstr "Ð§Ð°Ñ Ð”Ð½Ñ" - -#: src/metabase/api/table.clj -msgid "Day of Week" -msgstr "День тижнÑ" - -#: src/metabase/api/table.clj -msgid "Day of Month" -msgstr "день міÑÑцÑ" - -#: src/metabase/api/table.clj -msgid "Day of Year" -msgstr "день року" - -#: src/metabase/api/table.clj -msgid "Week of Year" -msgstr "тиждень року" - -#: src/metabase/api/table.clj -msgid "Month of Year" -msgstr "міÑÑць року" - -#: src/metabase/api/table.clj -msgid "Quarter of Year" -msgstr "Квартал року" - -#: src/metabase/api/table.clj -msgid "10 bins" -msgstr "10 контейнерів" - -#: src/metabase/api/table.clj -msgid "50 bins" -msgstr "50 контейнерів" - -#: src/metabase/api/table.clj -msgid "100 bins" -msgstr "100 контейнерів" - -#: src/metabase/api/table.clj -msgid "Bin every 0.1 degrees" -msgstr "Конт. кожен 0.1 градуÑ" - -#: src/metabase/api/table.clj -msgid "Bin every 1 degree" -msgstr "Конт. кожен 1 градуÑ" - -#: src/metabase/api/table.clj -msgid "Bin every 10 degrees" -msgstr "Конт. кожні 10 градуÑів" - -#: src/metabase/api/table.clj -msgid "Bin every 20 degrees" -msgstr "Конт. кожні 20 градуÑів" - -#. returns `true` if successful -- see JavaDoc -#: src/metabase/api/tiles.clj src/metabase/pulse/render/sparkline.clj -msgid "No appropriate image writer found!" -msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ відповідний обробник зображень!" - -#: src/metabase/api/user.clj -msgid "Email address already in use." -msgstr "Email вже зайнÑтий." - -#: src/metabase/api/user.clj -msgid "Email address already associated to another user." -msgstr "Email викориÑтаний іншим кориÑтувачем." - -#: src/metabase/api/user.clj -msgid "Not able to reactivate an active user" -msgstr "Ðеможливо повторно активувати активного кориÑтувача" - -#: src/metabase/api/user.clj -msgid "Invalid password" -msgstr "Ðекоректний пароль" - -#: src/metabase/automagic_dashboards/comparison.clj -msgid "All {0}" -msgstr "Ð’ÑÑ– {0}" - -#: src/metabase/automagic_dashboards/comparison.clj -msgid "{0}, all {1}" -msgstr "{0}, вÑе {1}" - -#: src/metabase/automagic_dashboards/comparison.clj -msgid "Comparison of {0} and {1}" -msgstr "ПорівнÑÐ½Ð½Ñ {0} Ñ– {1}" - -#: src/metabase/automagic_dashboards/comparison.clj -msgid "Automatically generated comparison dashboard comparing {0} and {1}" -msgstr "Ðвтоматично згенерований дешборд, що порівнює {0} Ñ– {1}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "sum" -msgstr "Ñума" - -#: src/metabase/automagic_dashboards/core.clj -msgid "average" -msgstr "Ñереднє" - -#: src/metabase/automagic_dashboards/core.clj -msgid "minumum" -msgstr "мінімум" - -#: src/metabase/automagic_dashboards/core.clj -msgid "maximum" -msgstr "макÑимум" - -#: src/metabase/automagic_dashboards/core.clj -msgid "distinct count" -msgstr "унікальне кількіÑÑ‚ÑŒ" - -#: src/metabase/automagic_dashboards/core.clj -msgid "standard deviation" -msgstr "Ñтандартне відхиленнÑ" - -#: src/metabase/automagic_dashboards/core.clj -msgid "cumulative count" -msgstr "накопичувальне кількіÑÑ‚ÑŒ" - -#: src/metabase/automagic_dashboards/core.clj -msgid "cumulative sum" -msgstr "накопичувальна Ñума" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} and {1}" -msgstr "{0} Ñ– {1}" - -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} of {1}" -msgstr "{0} з {1}" - -#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:39 -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} by {1}" -msgstr "{0} по {1}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} in the {1} segment" -msgstr "{0} в {1} Ñегменті" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} segment" -msgstr "{0} Ñегмент" - -#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:19 -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} metric" -msgid_plural "{0} metrics" -msgstr[0] "{0} метрика" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} field" -msgstr "{0} поле" - -#: src/metabase/automagic_dashboards/core.clj -msgid "\"{0}\" question" -msgstr "{0} запит" - -#: src/metabase/automagic_dashboards/comparison.clj -#: src/metabase/automagic_dashboards/core.clj -msgid "Compare with {0}" -msgstr "ПорівнÑти з {0}" - -#: src/metabase/automagic_dashboards/comparison.clj -#: src/metabase/automagic_dashboards/core.clj -msgid "Compare with entire dataset" -msgstr "ПорівнÑти з набором даних" - -#: src/metabase/automagic_dashboards/core.clj -msgid "Applying heuristic %s to %s." -msgstr "ЗаÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ ÐµÐ²Ñ€Ð¸Ñтики% s длÑ% s." - -#: src/metabase/automagic_dashboards/core.clj -msgid "Dimensions bindings:n%s" -msgstr "Прив'Ñзки розмірів: n% s" - -#: src/metabase/automagic_dashboards/core.clj -msgid "Using definitions:nMetrics:n%snFilters:n%s" -msgstr "ВикориÑтовувати визначеннÑ: nMetrics: Ð% snFilters: н% и" - -#: src/metabase/automagic_dashboards/core.clj -msgid "Can''t create dashboard for {0}" -msgstr "Ðеможливо Ñтворити панель інÑтрументів Ð´Ð»Ñ {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0}st" -msgstr "{0} ий" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0}nd" -msgstr "{0} ой" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0}rd" -msgstr "{0} ий" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0}th" -msgstr "{0} ий" - -#: src/metabase/automagic_dashboards/core.clj -msgid "at {0}" -msgstr "до {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "on {0}" -msgstr "на {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "in {0} week - {1}" -msgstr "в {0} тиждень - {1}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "in {0}" -msgstr "в {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "in Q{0} - {1}" -msgstr "в Кв {0} - {1}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "Q{0}" -msgstr "Кв {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} is {1}" -msgstr "{0} з {1}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} is between {1} and {2}" -msgstr "{0} між {1} Ñ– {2}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "{0} is between {1} and {2}; and {3} is between {4} and {5}" -msgstr "{0} між {1} Ñ– {2}; Ñ– {3} між {4} Ñ– {5}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "where {0}" -msgstr "де {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "A closer look at {0}" -msgstr "Детальніше про {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "A closer look at the {0}" -msgstr "ПридивитиÑÑ Ð´Ð¾ {0}" - -#: src/metabase/automagic_dashboards/populate.clj -msgid "Adding %s cards to dashboard %s:n%s" -msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ°Ñ€Ñ‚ÐºÐ¸ %s до панелі інÑтрументів %s: n%s" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "0 <= score <= {0}" -msgstr "0 <= результат <= {0}" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "1 <= width <= {0}" -msgstr "1 <= ширина <= {0}" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid metrics references" -msgstr "ДопуÑтимі поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° метрики" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid filters references" -msgstr "ДопуÑтимі поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° фільтри" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid group references" -msgstr "ДопуÑтимі поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° групи" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid order_by references" -msgstr "ДопуÑтимі поÑÐ¸Ð»Ð°Ð½Ð½Ñ ÑортуваннÑ" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid dashboard filters references" -msgstr "ДопуÑтимі поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° фільтри панелі моніторингу" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid dimension references" -msgstr "ДопуÑтимі поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° вимірюваннÑ" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Valid card dimension references" -msgstr "ДопуÑтимі поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розміри карти" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Error parsing %s:n%s" -msgstr "Помилка обробки% s: n% s" - -#: src/metabase/cmd/reset_password.clj -msgid "No user found with email address ''{0}''. " -msgstr "КориÑтувач з email адреÑою '' {0} ' \"не найден.â£" - -#: src/metabase/cmd/reset_password.clj -msgid "Please check the spelling and try again." -msgstr "Будь лаÑка перевірте напиÑÐ°Ð½Ð½Ñ Ñ– Ñпробуйте ще раз." - -#: src/metabase/cmd/reset_password.clj -msgid "Resetting password for {0}..." -msgstr "Ð¡ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð»Ñ {0} ..." - -#: src/metabase/cmd/reset_password.clj -msgid "OK [[[{0}]]]" -msgstr "OK [[[{0}]]]" - -#: src/metabase/cmd/reset_password.clj -msgid "FAIL [[[{0}]]]" -msgstr "ЗБІЙ [[[{0}]]]" - -#: src/metabase/core.clj -msgid "Please use the following URL to setup your Metabase installation:" -msgstr "Будь лаÑка, викориÑтовуйте цю поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÑƒÑтановки вашої інÑталÑції Metabase:" - -#: src/metabase/core.clj -msgid "Metabase Shutting Down ..." -msgstr "Ð’Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Metabase ..." - -#: src/metabase/core.clj -msgid "Metabase Shutdown COMPLETE" -msgstr "Ð’Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Metabase ЗÐВЕРШЕÐО" - -#: src/metabase/core.clj -msgid "Starting Metabase version {0} ..." -msgstr "ЗапуÑк Metabase верÑÑ–Ñ— {0} ..." - -#: src/metabase/core.clj -msgid "System timezone is ''{0}'' ..." -msgstr "СиÑтемний чаÑовий поÑÑ '' {0} '' ..." - -#. startup database. validates connection & runs any necessary migrations -#: src/metabase/core.clj -msgid "Setting up and migrating Metabase DB. Please sit tight, this may take a minute..." -msgstr "ÐÐ°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¼Ñ–Ð³Ñ€Ð°Ñ†Ñ–Ð¹ внутрішньої бази даних Metabase. Зачекайте, будь лаÑка, це може зайнÑти ÑкийÑÑŒ Ñ‡Ð°Ñ ..." - -#: src/metabase/core.clj -msgid "Looks like this is a new installation ... preparing setup wizard" -msgstr "Схоже що це нова інÑталÑÑ†Ñ–Ñ ... підготовка майÑтра уÑтановки" - -#: src/metabase/core.clj -msgid "Metabase Initialization COMPLETE" -msgstr "Ð†Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Metabase ВИКОÐÐÐО" - -#: src/metabase/server.clj -msgid "Launching Embedded Jetty Webserver with config:" -msgstr "ЗапуÑк вбудованого веб-Ñервера Jetty з конфігурацією:" - -#: src/metabase/server.clj -msgid "Shutting Down Embedded Jetty Webserver" -msgstr "Ð’Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð²Ð±ÑƒÐ´Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ веб-Ñервера Jetty" - -#: src/metabase/core.clj -msgid "Starting Metabase in STANDALONE mode" -msgstr "ЗапуÑк Metabase в режимі окремого додатка" - -#: src/metabase/core.clj -msgid "Metabase Initialization FAILED" -msgstr "Ð†Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Metabase проваливÑÑ" - -#: src/metabase/db.clj -msgid "Database has migration lock; cannot run migrations." -msgstr "База даних міÑтить Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° запуÑк міграцій; неможливо запуÑтити міграції." - -#: src/metabase/db.clj -msgid "You can force-release these locks by running `java -jar metabase.jar migrate release-locks`." -msgstr "Ви можете Ñкинути ці Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿ÑƒÑтивши `java -jar metabase.jar migrate release-locks`." - -#: src/metabase/db.clj -msgid "Checking if Database has unrun migrations..." -msgstr "Перевірка бази даних на наÑвніÑÑ‚ÑŒ невиконаних міграцій ..." - -#: src/metabase/db.clj -msgid "Database has unrun migrations. Waiting for migration lock to be cleared..." -msgstr "База даних міÑтить невиконані міграції. Очікуванні Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° запуÑк міграцій ..." - -#: src/metabase/db.clj -msgid "Migration lock is cleared. Running migrations..." -msgstr "Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° запуÑк міграцій очищена. ЗапуÑк міграцій ..." - -#: src/metabase/db.clj -msgid "Migration lock cleared, but nothing to do here! Migrations were finished by another instance." -msgstr "Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ð³Ñ€Ð°Ñ†Ñ–Ð¹ очищена, але нічого не виконано. Міграції були завершені іншим інÑтанÑи." - -#. Set up liquibase and let it do its thing -#: src/metabase/db.clj -msgid "Setting up Liquibase..." -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Liquibase ..." - -#: src/metabase/db.clj -msgid "Liquibase is ready." -msgstr "Liquibase готовий." - -#: src/metabase/db.clj -msgid "Verifying {0} Database Connection ..." -msgstr "Перевірка Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ бази даних {0} ..." - -#: src/metabase/db.clj -msgid "Verify Database Connection ... " -msgstr "Перевірка Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ бази даних ..." - -#: src/metabase/db.clj -msgid "Running Database Migrations..." -msgstr "ЗапуÑк міграцій бази даних ..." - -#: src/metabase/db.clj -msgid "Database Migrations Current ... " -msgstr "Поточна Ð¼Ñ–Ð³Ñ€Ð°Ñ†Ñ–Ñ Ð±Ð°Ð·Ð¸ даних ..." - -#: src/metabase/driver/common.clj -msgid "Hmm, we couldn''t connect to the database." -msgstr "Хмм, ми не можемо підключитиÑÑ Ð´Ð¾ бази даних." - -#: src/metabase/driver/common.clj -msgid "Make sure your host and port settings are correct" -msgstr "ПереконайтеÑÑ Ñ‰Ð¾ хоÑÑ‚ Ñ– порт вказані коректно." - -#: src/metabase/driver/common.clj -msgid "We couldn''t connect to the ssh tunnel host." -msgstr "Ми не можемо підключитиÑÑ Ñ‡ÐµÑ€ÐµÐ· ssh-тунель." - -#: src/metabase/driver/common.clj -msgid "Check the username, password." -msgstr "Перевірте ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, пароль." - -#: src/metabase/driver/common.clj -msgid "Check the hostname and port." -msgstr "Перевірте ім'Ñ Ñ…Ð¾Ñта Ñ– порт." - -#: src/metabase/driver/common.clj -msgid "Looks like the database name is incorrect." -msgstr "Схоже що зазначено некоректно ім'Ñ Ð±Ð°Ð·Ð¸ даних." - -#: src/metabase/driver/common.clj -msgid "It looks like your host is invalid." -msgstr "Схоже що зазначений некоректний хоÑÑ‚." - -#: src/metabase/driver/common.clj -msgid "Please double-check it and try again." -msgstr "Будь лаÑка перевірте Ñ– Ñпробуйте знову." - -#: src/metabase/driver/common.clj -msgid "Looks like your password is incorrect." -msgstr "Схоже що зазначений некоректний пароль." - -#: src/metabase/driver/common.clj -msgid "Looks like you forgot to enter your password." -msgstr "Схоже що ви забули вказати пароль." - -#: src/metabase/driver/common.clj -msgid "Looks like your username is incorrect." -msgstr "Схоже що зазначено некоректно ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача." - -#: src/metabase/driver/common.clj -msgid "Looks like the username or password is incorrect." -msgstr "Схоже вказані некоректні ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувачі або пароль." - -#. ## CONFIG -#: src/metabase/driver.clj -msgid "Connection timezone to use when executing queries. Defaults to system timezone." -msgstr "ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ‡Ð°Ñового поÑÑу Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð². За замовчуваннÑм викориÑтовуєтьÑÑ ÑиÑтемний чаÑовий поÑÑ." - -#: src/metabase/driver.clj -msgid "Registered driver {0} {1}" -msgstr "З нами драйвер {0} {1}" - -#: src/metabase/driver.clj -msgid "No -init-driver function found for ''{0}''" -msgstr "Чи не знайдена Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ -init-driver Ð´Ð»Ñ '' {0} ''" - -#: src/metabase/driver/common.clj -msgid "Unable to parse date string ''{0}'' for database engine ''{1}''" -msgstr "Ðеможливо обробити Ñ€Ñдок дати '' {0} '' Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних '' {1} ''" - -#. all-NULL columns in DBs like Mongo w/o explicit types -#: src/metabase/driver/common.clj -msgid "Don''t know how to map class ''{0}'' to a Field base_type, falling back to :type/*." -msgstr "Ðевідомо Ñк зіÑтавити ÐºÐ»Ð°Ñ '' {0} '' з полем base_type, Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾: type / *." - -#: src/metabase/driver/util.clj -msgid "Failed to connect to database: {0}" -msgstr "Ðеможливо підключитиÑÑ Ð´Ð¾ бази даних: {0}" - -#: src/metabase/driver/bigquery.clj -msgid "Invalid BigQuery identifier: ''{0}''" -msgstr "Ðекоректний ідентифікатор BigQuery: '' {0} ''" - -#: src/metabase/driver/bigquery.clj -msgid "BigQuery statements can't be parameterized!" -msgstr "Вираз BigQuery не може бути параметризованих!" - -#: src/metabase/driver/sql_jdbc/execute.clj -msgid "Failed to set timezone:" -msgstr "Ðеможливо вÑтановити чаÑовий поÑÑ:" - -#: src/metabase/driver/googleanalytics.clj -msgid "You must enable the Google Analytics API. Use this link to go to the Google Developers Console: {0}" -msgstr "Ви повинні дозволити Google Analytics API. ВикориÑтовуйте цю поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ в Google Developers Console: {0}" - -#: src/metabase/driver/h2.clj -msgid "Running SQL queries against H2 databases using the default (admin) database user is forbidden." -msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ SQL запитів на H2 базі даних з викориÑтаннÑм кориÑтувача за замовчуваннÑм (admin) заборонено." - -#: src/metabase/driver/sparksql.clj -msgid "Error: metabase.driver.FixedHiveDriver is registered, but JDBC does not seem to be using it." -msgstr "Помилка: metabase.driver.FixedHiveDriver зареєÑтрований, але Ñхоже що JDBC не викориÑтовує його." - -#: src/metabase/driver/sparksql.clj -msgid "Found metabase.driver.FixedHiveDriver." -msgstr "Знайдений metabase.driver.FixedHiveDriver." - -#: src/metabase/driver/sparksql.clj -msgid "Successfully registered metabase.driver.FixedHiveDriver with JDBC." -msgstr "УÑпішно зареєÑтрований metabase.driver.FixedHiveDriver з JDBC." - -#. CONFIG -#. TODO - smtp-port should be switched to type :integer -#: src/metabase/email.clj -msgid "Email address you want to use as the sender of Metabase." -msgstr "Email адреÑа, Ñку ви хочете викориÑтовувати в ÑкоÑÑ‚Ñ– відправника Metabase." - -#: src/metabase/email.clj -msgid "The address of the SMTP server that handles your emails." -msgstr "ÐдреÑа SMTP Ñервера, Ñкий оброблÑÑ” вашу пошту." - -#: src/metabase/email.clj -msgid "SMTP username." -msgstr "SMTP кориÑтувач." - -#: src/metabase/email.clj -msgid "SMTP password." -msgstr "SMTP пароль." - -#: src/metabase/email.clj -msgid "The port your SMTP server uses for outgoing emails." -msgstr "Порт вашого SMTP Ñервера, Ñкий викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²ÐºÐ¸ пошти." - -#: src/metabase/email.clj -msgid "SMTP secure connection protocol. (tls, ssl, starttls, or none)" -msgstr "Протокол безпеки Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ SMTP (tls, ssl, starttls, або не викориÑтовуєтьÑÑ)" - -#: src/metabase/email.clj -msgid "none" -msgstr "нічого" - -#: src/metabase/email.clj -msgid "SMTP host is not set." -msgstr "SMTP хоÑÑ‚ не вÑтановлено." - -#: src/metabase/email.clj -msgid "Failed to send email" -msgstr "Помилка відправки email" - -#: src/metabase/email.clj -msgid "Error testing SMTP connection" -msgstr "Помилка теÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ SMTP з'єднаннÑ" - -#: src/metabase/integrations/ldap.clj -msgid "Enable LDAP authentication." -msgstr "Включити LDAP аутентифікацію." - -#: src/metabase/integrations/ldap.clj -msgid "Server hostname." -msgstr "хоÑÑ‚ Ñервера" - -#: src/metabase/integrations/ldap.clj -msgid "Server port, usually 389 or 636 if SSL is used." -msgstr "Порт Ñервера, зазвичай 389 або 636 при викориÑтанні SSL." - -#: src/metabase/integrations/ldap.clj -msgid "Use SSL, TLS or plain text." -msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ SSL, TLS або проÑтого текÑту." - -#: src/metabase/integrations/ldap.clj -msgid "The Distinguished Name to bind as (if any), this user will be used to lookup information about other users." -msgstr "Розрізнювальне ім'Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²'Ñзки Ñк (Ñкщо Ñ”), цей кориÑтувач буде викориÑтовуватиÑÑ Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ інформації про інших кориÑтувачів." - -#: src/metabase/integrations/ldap.clj -msgid "The password to bind with for the lookup user." -msgstr "Пароль Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²'Ñзки кориÑтувача, Ñкий викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ." - -#: src/metabase/integrations/ldap.clj -msgid "Search base for users. (Will be searched recursively)" -msgstr "Пошукова база Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів. (Ми будемо шукати рекурÑивно)" - -#: src/metabase/integrations/ldap.clj -msgid "User lookup filter, the placeholder '{login}' will be replaced by the user supplied login." -msgstr "Фільтр Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ кориÑтувачів, змінна '{login}' буде замінена наданим логіном кориÑтувача." - -#: src/metabase/integrations/ldap.clj -msgid "Attribute to use for the user's email. (usually ''mail'', ''email'' or ''userPrincipalName'')" -msgstr "Ðтрибут, що викориÑтовуєтьÑÑ Ð² ÑкоÑÑ‚Ñ– email кориÑтувача (зазвичай '' mail ',' 'email' 'або' 'userPrincipalName' ')" - -#: src/metabase/integrations/ldap.clj -msgid "Attribute to use for the user''s first name. (usually ''givenName'')" -msgstr "Ðтрибут, що викориÑтовуєтьÑÑ Ð² ÑкоÑÑ‚Ñ– імені кориÑтувача (зазвичай '' givenName '')" - -#: src/metabase/integrations/ldap.clj -msgid "Attribute to use for the user''s last name. (usually ''sn'')" -msgstr "Ðтрибут, що викориÑтовуєтьÑÑ Ð² ÑкоÑÑ‚Ñ– прізвища кориÑтувача (зазвичай '' sn '')" - -#: src/metabase/integrations/ldap.clj -msgid "Enable group membership synchronization with LDAP." -msgstr "Увімкнути Ñинхронізацію членÑтва в групах з LDAP." - -#: src/metabase/integrations/ldap.clj -msgid "Search base for groups, not required if your LDAP directory provides a ''memberOf'' overlay. (Will be searched recursively)" -msgstr "Пошукова база Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿, необов'Ñзкова Ñкщо LDAP Ñервер надає '' memberOf ''. (Ми будемо шукати рекурÑивно)" - -#. Should be in the form: {"cn=Some Group,dc=...": [1, 2, 3]} where keys are LDAP groups and values are lists of MB groups IDs -#: src/metabase/integrations/ldap.clj -msgid "JSON containing LDAP to Metabase group mappings." -msgstr "JSON міÑтить зіÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¼Ñ–Ð¶ групами LDAP Ñ– Metabase." - -#. Define a setting which captures our Slack api token -#: src/metabase/integrations/slack.clj -msgid "Slack API bearer token obtained from https://api.slack.com/web#authentication" -msgstr "Slack API bearer токен, отриманий звідÑи https://api.slack.com/web#authentication" - -#: src/metabase/metabot.clj -msgid "Enable MetaBot, which lets you search for and view your saved questions directly via Slack." -msgstr "Увімкніть MetabBot, це дозволить шукати Ñ– дивитиÑÑ Ð·Ð°Ð¿Ð¸Ñ‚Ð¸ безпоÑередньо через Slack." - -#: src/metabase/metabot/instance.clj -msgid "Last MetaBot checkin was {0} ago." -msgstr "ОÑÑ‚Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ° MetaBot була проведена {0} назад." - -#: src/metabase/metabot/instance.clj -msgid "This instance will now handle MetaBot duties." -msgstr "Поточний інÑтанÑи буде обÑлуговуватиÑÑ MetaBot." - -#: src/metabase/metabot.clj -msgid "Here''s what I can {0}:" -msgstr "ОÑÑŒ що Ñ Ð¼Ð¾Ð¶Ñƒ {0}:" - -#: src/metabase/metabot.clj -msgid "I don''t know how to {0} `{1}`.n{2}" -msgstr "Я не знаю, Ñк {0} `{1}` .n {2}" - -#: src/metabase/metabot/slack.clj -msgid "Uh oh! :cry:n> {0}" -msgstr "Ууух! : Cry: n> {0}" - -#: src/metabase/metabot/command.clj -msgid "Here''s your {0} most recent cards:n{1}" -msgstr "Тут ваші {0} оÑтанні картки: n {1}" - -#: src/metabase/metabot/command.clj -msgid "Could you be a little more specific? I found these cards with names that matched:n{0}" -msgstr "Чи можете ви уточнити? Я знайшов ці картки за випадковим збігом імен: n {0}" - -#: src/metabase/metabot/command.clj -msgid "I don''t know what Card `{0}` is. Give me a Card ID or name." -msgstr "Мені невідома картка `{0}`. Будь лаÑка вкажіть ідентифікатор або ім'Ñ." - -#: src/metabase/metabot/command.clj -msgid "Show which card? Give me a part of a card name or its ID and I can show it to you. If you don''t know which card you want, try `metabot list`." -msgstr "Показати Ñку карту? Дай мені чаÑтину імені карти або Ñ—Ñ— ID Ñ– Ñ Ð¼Ð¾Ð¶Ñƒ показати його вам. Якщо ви не \"Ñ‚ знаю, Ñку карту ви хочете, Ñпробуйте metabot ÑпіÑок`." - -#: src/metabase/metabot/command.clj -msgid "Ok, just a second..." -msgstr "Добре, Ñекунду ..." - -#: src/metabase/metabot/command.clj -msgid "Not Found" -msgstr "Ðе знайдено" - -#: src/metabase/metabot/command.clj -msgid "Loading Kanye quotes..." -msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ†Ð¸Ñ‚Ð°Ñ‚ Kanye ..." - -#: src/metabase/metabot/events.clj -msgid "Evaluating Metabot command:" -msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Metabot:" - -#: src/metabase/metabot.clj -msgid "Go home websocket, you're drunk." -msgstr "Іди додому вебÑокет, ти п'Ñний." - -#: src/metabase/metabot/websocket.clj -msgid "Error launching metabot:" -msgstr "Помилка запуÑку metabot:" - -#: src/metabase/metabot/websocket.clj -msgid "MetaBot WebSocket is closed. Reconnecting now." -msgstr "ВебÑокет MetaBot закритий. Спроба перепідключеннÑ." - -#: src/metabase/metabot/websocket.clj -msgid "Error connecting websocket:" -msgstr "Помилка Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ вебÑокету:" - -#: src/metabase/metabot/instance.clj -msgid "This instance is performing MetaBot duties." -msgstr "Цей екземплÑÑ€ виконує обов'Ñзки Метабота." - -#: src/metabase/metabot/instance.clj -msgid "Another instance is already handling MetaBot duties." -msgstr "Інший екземплÑÑ€ вже оброблÑÑ” обов'Ñзки MetaBot." - -#: src/metabase/metabot.clj -msgid "Starting MetaBot threads..." -msgstr "ЗапуÑк потоків MetaBot ..." - -#: src/metabase/metabot.clj -msgid "Stopping MetaBot... 🤖" -msgstr "Зупинка MetaBot ... 🤖" - -#: src/metabase/metabot.clj -msgid "MetaBot already running. Killing the previous WebSocket listener first." -msgstr "MetaBot вже працює. ВбивÑтво попереднього WebSocket Ñлухача першим." - -#: src/metabase/middleware/security.clj -msgid "Base-64 encoded public key for this site's SSL certificate." -msgstr "Base-64 закодований відкритий ключ Ñертифіката SSL даного Ñайту." - -#: src/metabase/middleware/security.clj -msgid "Specify this to enable HTTP Public Key Pinning." -msgstr "Вкажіть це включити HTTP Public Key піннінга." - -#: src/metabase/middleware/security.clj -msgid "See {0} for more information." -msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації див {0}." - -#: src/metabase/models/card.clj -msgid "Cannot save Question: source query has circular references." -msgstr "Ðеможливо зберегти питаннÑ: джерело запиту має циклічні поÑиланнÑ." - -#: src/metabase/models/card.clj src/metabase/models/query/permissions.clj -#: src/metabase/query_processor/middleware/fetch_source_query.clj -#: src/metabase/query_processor/middleware/permissions.clj -msgid "Card {0} does not exist." -msgstr "Card {0} не Ñ–Ñнує." - -#: src/metabase/models/card.clj -msgid "You do not have permissions to run ad-hoc native queries against Database {0}." -msgstr "У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” прав Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку Ad-Hoc влаÑні запити до бази даних {0}." - -#: src/metabase/models/collection.clj -msgid "Invalid color" -msgstr "неправильний колір" - -#: src/metabase/models/collection.clj -msgid "must be a valid 6-character hex color code" -msgstr "повинен бути дійÑним 6-Ñимвольний код шіÑтнадцÑтковий колір" - -#: src/metabase/models/collection.clj -msgid "Collection name cannot be blank!" -msgstr "Ðазва колекції не може бути порожнім!" - -#: src/metabase/models/collection.clj -msgid "cannot be blank" -msgstr "не може бути порожнім" - -#: src/metabase/models/collection.clj -msgid "Invalid Collection location: path is invalid." -msgstr "Invalid Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐšÐ¾Ð»ÐµÐºÑ†Ñ–Ñ: неприпуÑтимий шлÑÑ…." - -#: src/metabase/models/collection.clj -msgid "You cannot move a Personal Collection." -msgstr "Ви не можете переміÑтити оÑобиÑту колекцію." - -#: src/metabase/models/collection.clj -msgid "Invalid Collection location: some or all ancestors do not exist." -msgstr "Ðеправильне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐšÐ¾Ð»ÐµÐºÑ†Ñ–Ñ: деÑкі або вÑÑ– предки не Ñ–Ñнує." - -#: src/metabase/models/collection.clj -msgid "You cannot archive the Root Collection." -msgstr "Ви не можете архівувати кореневу колекцію." - -#: src/metabase/models/collection.clj -msgid "You cannot archive a Personal Collection." -msgstr "Ви не можете архівувати оÑобиÑту колекцію." - -#: src/metabase/models/collection.clj -msgid "You cannot move the Root Collection." -msgstr "Ви не можете переміÑтити Root Collection." - -#: src/metabase/models/collection.clj -msgid "You cannot move a Collection into itself or into one of its descendants." -msgstr "Ви не можете переміÑтити колекцію в Ñебе або в один з його нащадків." - -#. first move this Collection -#: src/metabase/models/collection.clj -msgid "Moving Collection {0} and its descendants from {1} to {2}" -msgstr "ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Collection {0} Ñ– його нащадків від {1} до {2}" - -#: src/metabase/models/collection.clj -msgid "You're not allowed to change the owner of a Personal Collection." -msgstr "Ви не можете змінити влаÑник оÑобиÑтої колекції." - -#: src/metabase/models/collection.clj -msgid "You're not allowed to move a Personal Collection." -msgstr "Ви не можете передати оÑобиÑту колекцію." - -#: src/metabase/models/collection.clj -msgid "You cannot move a Collection and archive it at the same time." -msgstr "Ви не можете переміÑтити колекцію Ñ– архівувати його в той же чаÑ." - -#: src/metabase/models/collection.clj -msgid "You cannot delete a Personal Collection!" -msgstr "Ви не можете видалÑти оÑобиÑту колекцію!" - -#: src/metabase/models/collection.clj -msgid "{0} {1}''s Personal Collection" -msgstr "{0} {1} '' s ОÑобиÑта КолекціÑ" - -#: src/metabase/models/collection_revision.clj -msgid "You cannot update a CollectionRevision!" -msgstr "Ви не можете оновити CollectionRevision!" - -#: src/metabase/models/field_values.clj -msgid "Field {0} was previously automatically set to show a list widget, but now has {1} values." -msgstr "Поле {0} був раніше автоматично вÑтановлюєтьÑÑ, щоб показати ÑпиÑок віджетів, але тепер має {1} значеннÑ." - -#: src/metabase/models/field_values.clj -msgid "Switching Field to use a search widget instead." -msgstr "Комутаційне поле викориÑтовувати заміÑÑ‚ÑŒ віджет пошуку." - -#: src/metabase/models/field_values.clj -msgid "Storing updated FieldValues for Field {0}..." -msgstr "Ð—Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð¾Ð½Ð¾Ð²Ð»ÑŽÑŽÑ‚ÑŒÑÑ FieldValues â€‹â€‹Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ {0} ..." - -#: src/metabase/models/field_values.clj -msgid "Storing FieldValues for Field {0}..." -msgstr "Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ FieldValues â€‹â€‹Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ {0} ..." - -#: src/metabase/models/humanization.clj -msgid "Metabase can attempt to transform your table and field names into more sensible, human-readable versions, e.g. \"somehorriblename\" becomes \"Some Horrible Name\"." -msgstr "Metabase може Ñпробувати перетворити ваші імена таблиць Ñ– полів в більш розумні, людина-читаютьÑÑ Ð²ÐµÑ€ÑÑ–Ñ—, наприклад, «Somehorriblename» Ñтає «ДеÑкі Жахливе ім'Ñ»." - -#: src/metabase/models/humanization.clj -msgid "This doesn’t work all that well if the names are in a language other than English, however." -msgstr "Це не працює вÑе, що добре, Ñкщо імена знаходÑÑ‚ÑŒÑÑ Ð² іншій мові, крім англійÑької, однако." - -#: src/metabase/models/humanization.clj -msgid "Do you want us to take a guess?" -msgstr "Ви хочете, щоб ми зробити припущеннÑ?" - -#: src/metabase/models/permissions.clj -msgid "You cannot create or revoke permissions for the 'Admin' group." -msgstr "Ви не можете Ñтворити або ÑкаÑувати дозволи Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¸ «Admin»." - -#: src/metabase/models/permissions.clj -msgid "Invalid permissions object path: ''{0}''." -msgstr "Ðевірні права доÑтупу об'єкта шлÑÑ…: '' {0} ''." - -#: src/metabase/models/permissions.clj -msgid "You cannot update a permissions entry!" -msgstr "Ви не можете оновити Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ–Ð²!" - -#: src/metabase/models/permissions.clj -msgid "Delete it and create a new one." -msgstr "Видаліть його Ñ– Ñтворити новий." - -#: src/metabase/models/permissions.clj -msgid "You cannot edit permissions for a Personal Collection or its descendants." -msgstr "Ви не можете редагувати дозволу Ð´Ð»Ñ Ð¾ÑобиÑтої колекції або його нащадків." - -#: src/metabase/models/permissions.clj -msgid "Looks like someone else edited the permissions and your data is out of date." -msgstr "Схоже, хтоÑÑŒ редагували дозвіл Ñ– ваші дані заÑтаріли." - -#: src/metabase/models/permissions.clj -msgid "Please fetch new data and try again." -msgstr "Будь лаÑка, отримувати нові дані Ñ– Ñпробуйте ще раз." - -#: src/metabase/models/permissions_group.clj -msgid "Created magic permissions group ''{0}'' (ID = {1})" -msgstr "Створені магії дозволів групи '' {0} '' (ID = {1})" - -#: src/metabase/models/permissions_group.clj -msgid "A group with that name already exists." -msgstr "Група з таким ім'Ñм вже Ñ–Ñнує." - -#: src/metabase/models/permissions_group.clj -msgid "You cannot edit or delete the ''{0}'' permissions group!" -msgstr "Ви не можете змінити або видалити «» {0} \"\" групу дозволів!" - -#: src/metabase/models/permissions_group_membership.clj -msgid "You cannot add or remove users to/from the 'MetaBot' group." -msgstr "Ви не можете додавати або видалÑти кориÑтувачів в / з групи «MetaBot»." - -#: src/metabase/models/permissions_group_membership.clj -msgid "You cannot add or remove users to/from the 'All Users' group." -msgstr "Ви не можете додавати або видалÑти кориÑтувачів в / з групи «All Users»." - -#: src/metabase/models/permissions_group_membership.clj -msgid "You cannot remove the last member of the 'Admin' group!" -msgstr "Ви не можете видалити оÑтанній член групи «ÐдмініÑтруваннÑ»!" - -#: src/metabase/models/permissions_revision.clj -msgid "You cannot update a PermissionsRevision!" -msgstr "Ви не можете оновити PermissionsRevision!" - -#. if there's still not a Card, throw an Exception! -#: src/metabase/models/pulse.clj -msgid "Invalid Alert: Alert does not have a Card assoicated with it" -msgstr "Invalid Alert: ÐžÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ðµ має карти assoicated з ним" - -#: src/metabase/models/pulse.clj -msgid "value must be a map with the keys `{0}`, `{1}`, and `{2}`." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути карта з ключами `{0},` {1} `Ñ–` {2}`." - -#: src/metabase/models/pulse.clj -msgid "value must be a map with the following keys `({0})`" -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути карта з наÑтупними ключами `({0})`" - -#: src/metabase/models/query/permissions.clj -msgid "Error calculating permissions for query: {0}" -msgstr "Помилка обчиÑÐ»ÐµÐ½Ð½Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»Ñƒ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ: {0}" - -#: src/metabase/models/query/permissions.clj -msgid "Invalid query type: {0}" -msgstr "ÐеприпуÑтимий тип запиту: {0}" - -#: src/metabase/models/query_execution.clj -msgid "You cannot update a QueryExecution!" -msgstr "Ви не можете оновити QueryExecution!" - -#: src/metabase/models/revision.clj -msgid "You cannot update a Revision!" -msgstr "Ви не можете оновити Revision!" - -#: src/metabase/models/setting.clj -msgid "Setting {0} does not exist.nFound: {1}" -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ {0} exist.nFound: {1}" - -#: src/metabase/models/setting/cache.clj -msgid "Updating value of settings-last-updated in DB..." -msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð²-оÑтанніх оновлюваний в БД ..." - -#: src/metabase/models/setting/cache.clj -msgid "Checking whether settings cache is out of date (requires DB call)..." -msgstr "Перевірка чи кеш налаштувань заÑтаріли (потрібно DB виклику) ..." - -#: src/metabase/models/setting/cache.clj -msgid "Settings have been changed on another instance, and will be reloaded here." -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ»Ð¸ змінені на інший екземплÑÑ€, Ñ– будуть перезавантажувалиÑÑŒ тут." - -#: src/metabase/models/setting/cache.clj -msgid "Refreshing Settings cache..." -msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐµÑˆÑƒ ÐалаштуваннÑ" - -#: src/metabase/models/setting.clj -msgid "Invalid value for string: must be either \"true\" or \"false\" (case-insensitive)." -msgstr "ÐеприпуÑтиме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ñдка: має бути «Ñправжнім» або «брехнÑ» (без ÑƒÑ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтру)." - -#: src/metabase/models/setting.clj -msgid "You cannot update `settings-last-updated` yourself! This is done automatically." -msgstr "Ви не можете оновити `наÑтройки, оÑтанній updated` Ñебе! Це робитьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾." - -#. go ahead and log the Exception anyway on the off chance that it *wasn't* just a race condition issue -#: src/metabase/models/setting.clj -msgid "Error inserting a new Setting:" -msgstr "Помилка вÑтавки нової наÑтройки:" - -#: src/metabase/models/setting.clj -msgid "Assuming Setting already exists in DB and updating existing value." -msgstr "ПрипуÑкаючи, що наÑтройки вже Ñ–Ñнує в БД Ñ– Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ–Ñнуючого значеннÑ." - -#: src/metabase/models/user.clj -msgid "value must be a map with each value either a string or number." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути карта з кожним значеннÑм або Ñ€Ñдки або чиÑла." - -#: src/metabase/plugins.clj -msgid "Loading plugins in directory {0}..." -msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñ–Ð² в каталозі {0} ..." - -#: src/metabase/plugins.clj -msgid "Loading plugin {0}... " -msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½ {0} ..." - -#: src/metabase/plugins.clj -msgid "It looks like you have some external dependencies in your Metabase plugins directory." -msgstr "Схоже, у Ð²Ð°Ñ Ñ” кілька зовнішніх залежноÑтей в каталозі Metabase плагінів." - -#: src/metabase/plugins.clj -msgid "With Java 9 or higher, Metabase cannot automatically add them to your classpath." -msgstr "З Java 9 або вище, Metabase не може автоматично додавати Ñ—Ñ… в дорозі до клаÑів." - -#: src/metabase/plugins.clj -msgid "Instead, you should include them at launch with the -cp option. For example:" -msgstr "ЗаміÑÑ‚ÑŒ цього ви повинні включити Ñ—Ñ… при запуÑку з -cp опцією. Ðаприклад:" - -#: src/metabase/plugins.clj -msgid "See https://metabase.com/docs/latest/operations-guide/start.html#java-versions for more details." -msgstr "Див https://metabase.com/docs/latest/operations-guide/start.html#java-versions Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆ докладної інформації." - -#: src/metabase/plugins.clj -msgid "(If you're already running Metabase this way, you can ignore this message.)" -msgstr "(Якщо ви вже працюєте Metabase таким чином, ви можете ігнорувати це повідомленнÑ.)" - -#: src/metabase/public_settings.clj -msgid "Identify when new versions of Metabase are available." -msgstr "Визначити, коли будуть доÑтупні нові верÑÑ–Ñ— Metabase" - -#: src/metabase/public_settings.clj -msgid "Information about available versions of Metabase." -msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ доÑтупні верÑÑ–ÑÑ… метабази." - -#: src/metabase/public_settings.clj -msgid "The name used for this instance of Metabase." -msgstr "Ім'Ñ, Ñке викориÑтовуєтьÑÑ Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— верÑÑ–Ñ— метабази." - -#: src/metabase/public_settings.clj -msgid "The base URL of this Metabase instance, e.g. \"http://metabase.my-company.com\"." -msgstr "База URL-адреÑу даного примірника Metabase, наприклад, \"Http://metabase.my-company.com\"." - -#: src/metabase/public_settings.clj -msgid "The default language for this Metabase instance." -msgstr "Мова за замовчуваннÑм Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— верÑÑ–Ñ— Metabase." - -#: src/metabase/public_settings.clj -msgid "This only applies to emails, Pulses, etc. Users'' browsers will specify the language used in the user interface." -msgstr "Це відноÑитьÑÑ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ до електронної пошти, ПульÑів Ñ– Ñ‚.д. КориÑтувачі «» браузерів вкажуть мову, що викориÑтовуєтьÑÑ Ð² інтерфейÑÑ–." - -#: src/metabase/public_settings.clj -msgid "The email address users should be referred to if they encounter a problem." -msgstr "КориÑтувачам Ð°Ð´Ñ€ÐµÑ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾Ñ— пошти Ñлід звертатиÑÑ Ð´Ð¾ допомоги, Ñкщо вони зіткнулиÑÑ Ð· проблемою." - -#: src/metabase/public_settings.clj -msgid "Enable the collection of anonymous usage data in order to help Metabase improve." -msgstr "Включити збір анонімного викориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб допомогти нам поліпшити Metabase." - -#: src/metabase/public_settings.clj -msgid "The map tile server URL template used in map visualizations, for example from OpenStreetMaps or MapBox." -msgstr "Шаблон Ñервера URL плиточної веб-карти викориÑтовуєтьÑÑ Ð² карті візуалізації, наприклад, з OpenStreetMaps або MapBox." - -#: src/metabase/public_settings.clj -msgid "Enable admins to create publicly viewable links (and embeddable iframes) for Questions and Dashboards?" -msgstr "Дозволити адмініÑтраторам Ñтворювати загальнодоÑтупні поÑÐ¸Ð»Ð°Ð½Ð½Ñ (Ñ– вбудовані i-фрейми) Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð² Ñ– панелі інÑтрументів?" - -#: src/metabase/public_settings.clj -msgid "Allow admins to securely embed questions and dashboards within other applications?" -msgstr "Дозволити адмініÑтраторам безпечно вÑтавлÑти Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ– приладові панелі в інших додатках?" - -#: src/metabase/public_settings.clj -msgid "Allow using a saved question as the source for other queries?" -msgstr "Дозволити викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾Ð³Ð¾ Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñк джерело Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¸Ñ… запитів?" - -#: src/metabase/public_settings.clj -msgid "Enabling caching will save the results of queries that take a long time to run." -msgstr "Ð’ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ зберігати результати запитів, Ñкі займають багато чаÑу Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку." - -#: src/metabase/public_settings.clj -msgid "The maximum size of the cache, per saved question, in kilobytes:" -msgstr "МакÑимальний розмір кешу, за збереженим питаннÑ, в кілобайтах:" - -#: src/metabase/public_settings.clj -msgid "The absolute maximum time to keep any cached query results, in seconds." -msgstr "ÐбÑолютний макÑимальний чаÑ, щоб вÑе кешированниє результати запиту в Ñекундах." - -#: src/metabase/public_settings.clj -msgid "Metabase will cache all saved questions with an average query execution time longer than this many seconds:" -msgstr "Metabase кешируєт вÑÑ– збережені Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ–Ð· Ñереднім чаÑом Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð² довше, ніж це багато Ñекунд:" - -#: src/metabase/public_settings.clj -msgid "To determine how long each saved question''s cached result should stick around, we take the query''s average execution time and multiply that by whatever you input here." -msgstr "Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб визначити, Ñк довго кожен збережений Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Â«Ñ†Ðµ кешувати результат повинен дотримуватиÑÑ Ð½Ð°Ð²ÐºÐ¾Ð»Ð¾, візьмемо запит» Ñередній Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ… Ñ– помножити це вÑе, що ви тут вхід." - -#: src/metabase/public_settings.clj -msgid "So if a query takes on average 2 minutes to run, and you input 10 for your multiplier, its cache entry will persist for 20 minutes." -msgstr "Таким чином, Ñкщо запит займає в Ñередньому 2 хвилини Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку, Ñ– ви вводите 10 Ð´Ð»Ñ Ð¼ÑƒÐ»ÑŒÑ‚Ð¸Ð¿Ð»Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ð°, його Ð·Ð°Ð¿Ð¸Ñ Ñƒ кеші зберігатиметьÑÑ Ð¿Ñ€Ð¾Ñ‚Ñгом 20 хвилин." - -#: src/metabase/public_settings.clj -msgid "When using the default binning strategy and a number of bins is not provided, this number will be used as the default." -msgstr "При викориÑтанні Ñтратегії Біннінг за замовчуваннÑм Ñ– кількіÑÑ‚ÑŒ бункерів не передбачено, цей номер буде викориÑтовуватиÑÑ Ð·Ð° замовчуваннÑм." - -#: src/metabase/public_settings.clj -msgid "When using the default binning strategy for a field of type Coordinate (such as Latitude and Longitude), this number will be used as the default bin width (in degrees)." -msgstr "При викориÑтанні Ñтратегії Біннінг за замовчуваннÑм Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ координат (наприклад, широти Ñ– довготи), цей номер буде викориÑтовуватиÑÑ Ð² ÑкоÑÑ‚Ñ– ширини бункера за замовчуваннÑм (в градуÑах)." - -#: src/metabase/public_settings/metastore.clj -msgid "Unable to validate token." -msgstr "Ðеможливо перевірити маркер." - -#: src/metabase/public_settings/metastore.clj -msgid "Error fetching token status:" -msgstr "Помилка вибірки маркерів Ñтану:" - -#: src/metabase/public_settings/metastore.clj -msgid "There was an error checking whether this token was valid." -msgstr "Там була помилка перевірки, чи був цей маркер дійÑний." - -#: src/metabase/public_settings/metastore.clj -msgid "Token validation timed out." -msgstr "Токен перевірки минув." - -#: src/metabase/public_settings/metastore.clj -msgid "Invalid token: token isn't in the right format." -msgstr "ÐеприпуÑтимий маркер: маркер не в потрібному форматі." - -#. attempt to query the metastore API about the status of this token. If the request doesn't complete in a -#. reasonable amount of time throw a timeout exception -#: src/metabase/public_settings/metastore.clj -msgid "Checking with the MetaStore to see whether {0} is valid..." -msgstr "Перевірка з MetaStore, щоб побачити чи {0} діє ..." - -#: src/metabase/public_settings/metastore.clj -msgid "Token for premium embedding. Go to the MetaStore to get yours!" -msgstr "Маркер Ð´Ð»Ñ Ð¿Ñ€ÐµÐ¼Ñ–ÑƒÐ¼ вкладеннÑ. Перейти до MetaStore, щоб отримати ваш!" - -#: src/metabase/public_settings/metastore.clj -msgid "Token is valid." -msgstr "Токен дійÑний." - -#: src/metabase/public_settings/metastore.clj -msgid "Error setting premium embedding token" -msgstr "Помилка уÑтановки Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð¿Ñ€ÐµÐ¼Ñ–ÑƒÐ¼ маркер" - -#: src/metabase/pulse.clj -msgid "Unable to compare results to goal for alert." -msgstr "Ðеможливо порівнÑти результати цілі Ð´Ð»Ñ ÑповіщеннÑ." - -#: src/metabase/pulse.clj -msgid "Question ID is ''{0}'' with visualization settings ''{1}''" -msgstr "ÐŸÐ¸Ñ‚Ð°Ð½Ð½Ñ Ð’Ð” «» {0} «» з наÑтройками візуалізації «» {1} «»" - -#: src/metabase/pulse.clj -msgid "Unrecognized alert with condition ''{0}''" -msgstr "Ðезнайоме ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð· умовою «» {0} «»" - -#: src/metabase/pulse.clj -msgid "Unrecognized channel type {0}" -msgstr "Ðерозпізнаний тип каналу {0}" - -#: src/metabase/pulse.clj -msgid "Error sending notification!" -msgstr "Помилка відправки повідомленнÑ!" - -#: src/metabase/pulse/render/color.clj -msgid "Can't find JS color selector at ''{0}''" -msgstr "Чи не можете знайти JS Ñелектор кольору в «» {0} «»" - -#: src/metabase/pulse/render.clj -msgid "Card has errors: {0}" -msgstr "Картка міÑтить помилки: {0}" - -#: src/metabase/pulse/render.clj -msgid "Pulse card render error" -msgstr "Помилка візуалізації карти ПульÑу" - -#: src/metabase/query_processor/middleware/fetch_source_query.clj -msgid "Trimming trailing comment from card with id {0}" -msgstr "Обрізка замикає ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ Ð²Ñ–Ð´ карти з ідентифікатором {0}" - -#: src/metabase/query_processor/middleware/parameters/sql.clj -msgid "Can't find field with ID: {0}" -msgstr "Ðеможливо знайти поле з ID: {0}" - -#: src/metabase/query_processor/middleware/parameters/sql.clj -msgid "''{0}'' is a required param." -msgstr "«{0}» »є необхідними парами." - -#: src/metabase/query_processor/middleware/parameters/sql.clj -msgid "Found ''{0}'' with no terminating ''{1}'' in query ''{2}''" -msgstr "Знайдено '' {0} '' без будь-Ñких завершального '' {1} '' в запиті '' {2} ''" - -#: src/metabase/query_processor/middleware/parameters/sql.clj -msgid "Unable to substitute ''{0}'': param not specified.nFound: {1}" -msgstr "Ðеможливо замінити '' {0} '': Param ÐЕ specified.nFound: {1}" - -#: src/metabase/query_processor/middleware/permissions.clj -msgid "You do not have permissions to view Card {0}." -msgstr "У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” прав Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду карти {0}." - -#: src/metabase/query_processor/middleware/permissions.clj -msgid "You do not have permissions to run this query." -msgstr "У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” прав Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку цього запиту." - -#: src/metabase/sync/analyze.clj -msgid "Fingerprint updates attempted {0}, updated {1}, no data found {2}, failed {3}" -msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð±Ð¸Ñ‚ÐºÑ–Ð² пальців Ñпробували {0}, Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ {1}, ніÑких даних, знайдені {2}, не вдалиÑÑ {3}" - -#: src/metabase/sync/analyze.clj -msgid "Total number of fields classified {0}, {1} failed" -msgstr "Загальна кількіÑÑ‚ÑŒ клаÑифікованих полів {0}, {1} не вдалоÑÑ" - -#: src/metabase/sync/analyze.clj -msgid "Total number of tables classified {0}, {1} updated" -msgstr "Загальна кількіÑÑ‚ÑŒ клаÑифікованих таблиць {0}, {1} оновлена" - -#: src/metabase/sync/analyze/fingerprint/fingerprinters.clj -msgid "Error generating fingerprint for {0}" -msgstr "Помилка Ð³ÐµÐ½ÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð±Ð¸Ñ‚ÐºÑ–Ð² пальців Ð´Ð»Ñ {0}" - -#: src/metabase/sync/field_values.clj -msgid "Updated {0} field value sets, created {1}, deleted {2} with {3} errors" -msgstr "Оновлені Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ {0} поле набори, Ñтворені {1}, {2, віддалені з} {3} помилки" - -#: src/metabase/sync/sync_metadata.clj -msgid "Total number of fields sync''d {0}, number of fields updated {1}" -msgstr "Загальна кількіÑÑ‚ÑŒ Ñинхронізованих полів {0}, чиÑло оновлених полів {1}" - -#: src/metabase/sync/sync_metadata.clj -msgid "Total number of tables sync''d {0}, number of tables updated {1}" -msgstr "Загальна кількіÑÑ‚ÑŒ Ñинхронізованих таблиць {0}, кількіÑÑ‚ÑŒ оновлених таблиць {1}" - -#: src/metabase/sync/sync_metadata.clj -msgid "Found timezone id {0}" -msgstr "Знайдено чаÑовий поÑÑ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€ {0}" - -#: src/metabase/sync/sync_metadata.clj -msgid "Total number of foreign keys sync''d {0}, {1} updated and {2} tables failed to update" -msgstr "Загальна кількіÑÑ‚ÑŒ зовнішніх Ñинхронізованих ключів {0}, {1} оновлена ​​і {2} таблиці не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸" - -#: src/metabase/sync/util.clj -msgid "{0} Database {1} ''{2}''" -msgstr "{0} База даних {1} '' {2} ''" - -#: src/metabase/sync/util.clj -msgid "Table {0} ''{1}''" -msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ {0} '' {1} ''" - -#: src/metabase/sync/util.clj -msgid "Field {0} ''{1}''" -msgstr "Поле {0} '' {1} ''" - -#: src/metabase/sync/util.clj -msgid "Field ''{0}''" -msgstr "Поле '' {0} ''" - -#: src/metabase/sync/util.clj -msgid "step ''{0}'' for {1}" -msgstr "крок '' {0} '' Ð´Ð»Ñ {1}" - -#: src/metabase/sync/util.clj -msgid "Completed {0} on {1}" -msgstr "Завершено {0} {1}" - -#: src/metabase/sync/util.clj -msgid "Start: {0}" -msgstr "Початок: {0}" - -#: src/metabase/sync/util.clj -msgid "End: {0}" -msgstr "Кінець: {0}" - -#: src/metabase/sync/util.clj -msgid "Duration: {0}" -msgstr "ТриваліÑÑ‚ÑŒ: {0}" - -#: src/metabase/sync/util.clj -msgid "Completed step ''{0}''" -msgstr "Завершений крок '' {0} ''" - -#: src/metabase/task.clj -msgid "Loading tasks namespace:" -msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñтору імен:" - -#: src/metabase/task.clj -msgid "Starting Quartz Scheduler" -msgstr "ЗапуÑк Quartz Scheduler" - -#: src/metabase/task.clj -msgid "Stopping Quartz Scheduler" -msgstr "Зупинка Quartz Scheduler" - -#: src/metabase/task.clj -msgid "Job already exists:" -msgstr "Робота вже Ñ–Ñнує:" - -#. This is the very first log message that will get printed. It's here because this is one of the very first -#. namespaces that gets loaded, and the first that has access to the logger It shows up a solid 10-15 seconds before -#. the "Starting Metabase in STANDALONE mode" message because so many other namespaces need to get loaded -#: src/metabase/util.clj -msgid "Loading Metabase..." -msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Metabase ..." - -#: src/metabase/util/date.clj -msgid "Possible timezone conflict found on database {0}." -msgstr "Можлива тимчаÑова зона конфлікту знаходитьÑÑ Ð½Ð° базі даних {0}." - -#: src/metabase/util/date.clj -msgid "JVM timezone is {0} and detected database timezone is {1}." -msgstr "JVM, тимчаÑова зона {0} Ñ– виÑвлена ​​тимчаÑова зона бази даних {1}." - -#: src/metabase/util/date.clj -msgid "Configure a report timezone to ensure proper date and time conversions." -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð°Ñового поÑÑу звітів Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ñ‚Ð¸ Ñ– чаÑу." - -#: src/metabase/util/embed.clj -msgid "Secret key used to sign JSON Web Tokens for requests to `/api/embed` endpoints." -msgstr "Секретний ключ, викориÑтовуваний Ð´Ð»Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñу JSON веб-токенів Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð² до `/ API / embed` кінцевими точками." - -#: src/metabase/util/encryption.clj -msgid "MB_ENCRYPTION_SECRET_KEY must be at least 16 characters." -msgstr "MB_ENCRYPTION_SECRET_KEY повинен бути не менше 16 Ñимволів." - -#: src/metabase/util/encryption.clj -msgid "Saved credentials encryption is ENABLED for this Metabase instance." -msgstr "Збережено ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¸Ñ… даних включена Ð´Ð»Ñ Ð´Ð°Ð½Ð¾Ð³Ð¾ екземплÑра Metabase." - -#: src/metabase/util/encryption.clj -msgid "Saved credentials encryption is DISABLED for this Metabase instance." -msgstr "Збережено ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¸Ñ… даних відключений Ð´Ð»Ñ Ð´Ð°Ð½Ð¾Ð³Ð¾ екземплÑра Metabase." - -#: src/metabase/util/encryption.clj -msgid "nFor more information, see" -msgstr "nÐ”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації див" - -#: src/metabase/util/schema.clj -msgid "value must be an integer." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути цілим чиÑлом." - -#: src/metabase/util/schema.clj -msgid "value must be a string." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути Ñ€Ñдком." - -#: src/metabase/util/schema.clj -msgid "value must be a boolean." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути логічне значеннÑ." - -#: src/metabase/util/schema.clj -msgid "value must be a string that matches the regex `{0}`." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути Ñ€Ñдком, Ñка відповідає формальним виразом `{0}`." - -#: src/metabase/util/schema.clj -msgid "value must satisfy one of the following requirements: " -msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” відповідати одній з таких вимог:" - -#: src/metabase/util/schema.clj -msgid "value may be nil, or if non-nil, {0}" -msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути нулем, або Ñкщо не-нуль, {0}" - -#: src/metabase/util/schema.clj -msgid "value must be one of: {0}." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути одним з: {0}." - -#: src/metabase/util/schema.clj -msgid "value must be an array." -msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути маÑивом." - -#: src/metabase/util/schema.clj -msgid "Each {0}" -msgstr "Кожен {0}" - -#: src/metabase/util/schema.clj -msgid "The array cannot be empty." -msgstr "МаÑив не може бути порожнім." - -#: src/metabase/util/schema.clj -msgid "value must be a non-blank string." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути не порожній Ñ€Ñдок." - -#: src/metabase/util/schema.clj -msgid "Integer greater than zero" -msgstr "Ціле чиÑло більше нулÑ" - -#: src/metabase/util/schema.clj -msgid "value must be an integer greater than zero." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути ціле чиÑло більше нулÑ." - -#: src/metabase/util/schema.clj -msgid "Number greater than zero" -msgstr "ЧиÑло більше нулÑ" - -#: src/metabase/util/schema.clj -msgid "value must be a number greater than zero." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути чиÑлом більше нулÑ." - -#: src/metabase/util/schema.clj -msgid "Keyword or string" -msgstr "Ключове Ñлово або Ñ€Ñдок" - -#: src/metabase/util/schema.clj -msgid "Valid field type" -msgstr "ДійÑний тип полÑ" - -#: src/metabase/util/schema.clj -msgid "value must be a valid field type." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути допуÑтимим типом полÑ." - -#: src/metabase/util/schema.clj -msgid "Valid field type (keyword or string)" -msgstr "Тип ДійÑно поле (ключове Ñлово або Ñ€Ñдок)" - -#: src/metabase/util/schema.clj -msgid "value must be a valid field type (keyword or string)." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути допуÑтимим типом Ð¿Ð¾Ð»Ñ (ключове Ñлово або Ñ€Ñдок)." - -#: src/metabase/util/schema.clj -msgid "Valid entity type (keyword or string)" -msgstr "Тип ДійÑний об'єкт (ключове Ñлово або Ñ€Ñдок)" - -#: src/metabase/util/schema.clj -msgid "value must be a valid entity type (keyword or string)." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути дійÑним тип об'єкта (ключове Ñлово або Ñ€Ñдок)." - -#: src/metabase/util/schema.clj -msgid "Valid map" -msgstr "дійÑно карта" - -#: src/metabase/util/schema.clj -msgid "value must be a map." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути на карті." - -#: src/metabase/util/schema.clj -msgid "Valid email address" -msgstr "ДійÑна електронна пошта" - -#: src/metabase/util/schema.clj -msgid "value must be a valid email address." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути дійÑною адреÑою електронної пошти." - -#: src/metabase/util/schema.clj -msgid "Insufficient password strength" -msgstr "ÐедоÑÑ‚Ð°Ñ‚Ð½Ñ Ð¼Ñ–Ñ†Ð½Ñ–ÑÑ‚ÑŒ паролÑ" - -#: src/metabase/util/schema.clj -msgid "value must be a valid integer." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути цілим чиÑлом." - -#: src/metabase/util/schema.clj -msgid "value must be a valid integer greater than zero." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути ціле чиÑло більше нулÑ." - -#: src/metabase/util/schema.clj -msgid "value must be a valid boolean string (''true'' or ''false'')." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути коректною булевої Ñ€Ñдок ( \"\" Ñ–Ñтинний «» або «» брехні «»)." - -#: src/metabase/util/schema.clj -msgid "value must be a valid JSON string." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути допуÑтимою Ñ€Ñдком JSON." - -#: src/metabase/util/schema.clj -msgid "value must be a valid embedding params map." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути допуÑтимим Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ PARAMS." - -#: frontend/src/metabase/admin/permissions/components/PermissionsTabs.jsx:12 -msgid "Data permissions" -msgstr "Дозволи даних" - -#: frontend/src/metabase/admin/permissions/components/PermissionsTabs.jsx:13 -msgid "Collection permissions" -msgstr "Дозволи Колекції" - -#: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:59 -msgid "See all collection permissions" -msgstr "Ð’ÑÑ– права збору" - -#: frontend/src/metabase/admin/permissions/containers/TogglePropagateAction.jsx:27 -msgid "Also change sub-collections" -msgstr "Крім того, змініть підколекції" - -#: frontend/src/metabase/admin/permissions/selectors.js:285 -msgid "Can edit this collection and its contents" -msgstr "Може редагувати цю колекцію Ñ– Ñ—Ñ— вміÑÑ‚" - -#: frontend/src/metabase/admin/permissions/selectors.js:292 -msgid "Can view items in this collection" -msgstr "Ви можете переглÑнути елементи в цій колекції" - -#: frontend/src/metabase/admin/permissions/selectors.js:752 -msgid "Collection Access" -msgstr "збір доÑтупу" - -#: frontend/src/metabase/admin/permissions/selectors.js:828 -msgid "This group has permission to view at least one subcollection of this collection." -msgstr "Ð¦Ñ Ð³Ñ€ÑƒÐ¿Ð° має дозвіл на переглÑд, щонайменше, один підколекції цієї колекції." - -#: frontend/src/metabase/admin/permissions/selectors.js:833 -msgid "This group has permission to edit at least one subcollection of this collection." -msgstr "Ð¦Ñ Ð³Ñ€ÑƒÐ¿Ð° має дозволу на зміну, щонайменше, один підколекції цієї колекції." - -#: frontend/src/metabase/admin/permissions/selectors.js:846 -msgid "View sub-collections" -msgstr "ПереглÑд Ñуб-колекціÑ" - -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 -msgid "Remember Me" -msgstr "Пам'Ñтай мене" - -#: frontend/src/metabase/components/BrowseApp.jsx:63 -msgid "X-ray this schema" -msgstr "ПроÑканувати цю Ñхема" - -#: frontend/src/metabase/components/CollectionLanding.jsx:258 -msgid "Edit the permissions for this collection" -msgstr "Зміна дозволів Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— колекції" - -#: frontend/src/metabase/containers/AddToDashSelectDashModal.jsx:55 -msgid "Add this question to a dashboard" -msgstr "Додати це Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð² приладову панель" - -#: frontend/src/metabase/containers/AddToDashSelectDashModal.jsx:65 -msgid "Create a new dashboard" -msgstr "Створити нову приладову панель" - -#: frontend/src/metabase/containers/ErrorPages.jsx:45 -msgid "The page you asked for couldn't be found." -msgstr "Ðа Ñторінці ви проÑили не може бути знайдений." - -#: frontend/src/metabase/containers/ItemSelect.jsx:30 -msgid "Select a {0}" -msgstr "Виберіть {0}" - -#: frontend/src/metabase/containers/Overworld.jsx:185 -msgid "Save dashboards, questions, and collections in \"{0}\"" -msgstr "Зберегти приладові панелі, Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ– колекції в «{0}»" - -#: frontend/src/metabase/containers/Overworld.jsx:188 -msgid "Access dashboards, questions, and collections in \"{0}\"" -msgstr "Щитки доÑтупу, Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ– ÐºÐ¾Ð»ÐµÐºÑ†Ñ–Ñ Ð² «{0}»" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:223 -msgid "Compare" -msgstr "порівнÑти" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:231 -msgid "Zoom out" -msgstr "ЗменшеннÑ" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:235 -msgid "Related" -msgstr "Ñпоріднений" - -#: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:295 -msgid "More X-rays" -msgstr "Більше X-Rays" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 -#: src/metabase/pulse/render/body.clj -msgid "No results" -msgstr "Ðемає результатів" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 -msgid "Metabase couldn't find any results for your search." -msgstr "Metabase не змогли знайти ніÑких результатів пошуку." - -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:115 -msgid "No metrics" -msgstr "Ðемає метрик" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:31 -msgid "Aggregations" -msgstr "ÑкупченнÑ" - -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:32 -msgid "Operators" -msgstr "оператори" - -#: frontend/src/metabase/query_builder/components/expressions/Expressions.jsx:30 -msgid "Custom fields" -msgstr "Довільні полÑ" - -#. 2. Create the new collections. -#: src/metabase/db/migrations.clj -msgid "Migrated Dashboards" -msgstr "перенеÑені ЗведеннÑ" - -#: src/metabase/db/migrations.clj -msgid "Migrated Pulses" -msgstr "ПеренеÑені ПульÑи" - -#: src/metabase/db/migrations.clj -msgid "Migrated Questions" -msgstr "перенеÑені ПитаннÑ" - -#. 4. move everything not in this Collection to a new Collection -#: src/metabase/db/migrations.clj -msgid "Moving instances of {0} that aren't in a Collection to {1} Collection {2}" -msgstr "ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð¼Ñ–Ñ€Ð½Ð¸ÐºÑ–Ð² {0}, Ñкі не Ñ” в колекцію {1} ÐšÐ¾Ð»ÐµÐºÑ†Ñ–Ñ {2}" - -#: src/metabase/models/permissions.clj -msgid "Failed to grant permissions: {0}" -msgstr "Ðе вдавÑÑ Ð½Ð°Ð´Ð°Ñ‚Ð¸ дозвіл: {0}" - -#: src/metabase/util/encryption.clj -msgid "Cannot decrypt encrypted string. Have you changed or forgot to set MB_ENCRYPTION_SECRET_KEY?" -msgstr "Ðеможливо розшифрувати зашифровану Ñ€Ñдок. Ви змінили або забули вÑтановити MB_ENCRYPTION_SECRET_KEY?" - -#: frontend/src/metabase/entities/collections.js:167 -msgid "All personal collections" -msgstr "Ð’ÑÑ– перÑональні колекції" - -#: src/metabase/driver/common.clj -msgid "Host" -msgstr "ХоÑÑ‚" - -#: src/metabase/driver/common.clj -msgid "Port" -msgstr "Порт" - -#: src/metabase/driver/common.clj -msgid "Database username" -msgstr "ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача бази даних" - -#: src/metabase/driver/common.clj -msgid "What username do you use to login to the database?" -msgstr "Яке ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача ви викориÑтовуєте Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ в базу даних?" - -#: src/metabase/driver/common.clj -msgid "Database password" -msgstr "Пароль бази даних" - -#: src/metabase/driver/common.clj -msgid "Database name" -msgstr "ім'Ñ Ð±Ð°Ð·Ð¸ даних" - -#: src/metabase/driver/common.clj -msgid "birds_of_the_world" -msgstr "birds_of_the_world" - -#: src/metabase/driver/common.clj -msgid "Use a secure connection (SSL)?" -msgstr "ВикориÑтовуйте захищене з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (SSL)?" - -#: src/metabase/driver/common.clj -msgid "Additional JDBC connection string options" -msgstr "Додаткові опції Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ€Ñдків JDBC" - -#: src/metabase/driver/bigquery.clj -msgid "Project ID" -msgstr "ідентифікатор проекту" - -#: src/metabase/driver/bigquery.clj -msgid "praxis-beacon-120871" -msgstr "ПракÑиÑ-маÑк-120871" - -#: src/metabase/driver/bigquery.clj -msgid "Dataset ID" -msgstr "Dataset ID" - -#: src/metabase/driver/bigquery.clj -msgid "toucanSightings" -msgstr "toucanSightings" - -#: src/metabase/driver/bigquery.clj src/metabase/driver/googleanalytics.clj -msgid "Client ID" -msgstr "ідентифікатор клієнта" - -#: src/metabase/driver/bigquery.clj src/metabase/driver/googleanalytics.clj -msgid "Client Secret" -msgstr "клієнт Secret" - -#: src/metabase/driver/bigquery.clj src/metabase/driver/googleanalytics.clj -msgid "Auth Code" -msgstr "код авторизації" - -#: src/metabase/driver/crate.clj -msgid "Hosts" -msgstr "хоÑти" - -#: src/metabase/driver/druid.clj -msgid "Broker node port" -msgstr "порту вузла Брокер" - -#: src/metabase/driver/googleanalytics.clj -msgid "Google Analytics Account ID" -msgstr "Google Analytics ID рахунки" - -#: src/metabase/driver/h2.clj -msgid "Connection String" -msgstr "Ñ€Ñдок з'єднаннÑ" - -#: src/metabase/driver/h2.clj -msgid "Users/camsaul/bird_sightings/toucans" -msgstr "КориÑтувачі / camsaul / bird_sightings / тукани" - -#: src/metabase/driver/mongo.clj -msgid "carrierPigeonDeliveries" -msgstr "carrierPigeonDeliveries" - -#: src/metabase/driver/mongo.clj -msgid "Authentication Database" -msgstr "База даних аутентифікації" - -#: src/metabase/driver/mongo.clj -msgid "Optional database to use when authenticating" -msgstr "Додатково бази даних Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸ перевірці автентичноÑÑ‚Ñ–" - -#: src/metabase/driver/mongo.clj -msgid "Additional Mongo connection string options" -msgstr "Розширені можливоÑÑ‚Ñ– пошуку Ñ€Ñдка Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Mongo" - -#: src/metabase/driver/oracle.clj -msgid "Oracle system ID (SID)" -msgstr "Oracle, ідентифікатор ÑиÑтеми (SID)," - -#: src/metabase/driver/oracle.clj -msgid "Usually something like ORCL or XE." -msgstr "Зазвичай щоÑÑŒ на зразок ORCL або ХЕ." - -#: src/metabase/driver/oracle.clj -msgid "Optional if using service name" -msgstr "Додатково, Ñкщо викориÑтовуєтьÑÑ Ñ–Ð¼'Ñ Ñлужби" - -#: src/metabase/driver/oracle.clj -msgid "Oracle service name" -msgstr "Ім'Ñ Ñлужби Oracle" - -#: src/metabase/driver/oracle.clj -msgid "Optional TNS alias" -msgstr "Додатковий пÑевдонім TNS" - -#: src/metabase/driver/presto.clj -msgid "hive" -msgstr "вулик" - -#: src/metabase/driver/redshift.clj -msgid "my-cluster-name.abcd1234.us-east-1.redshift.amazonaws.com" -msgstr "my-cluster-name.abcd1234.us-east-1.redshift.amazonaws.com" - -#: src/metabase/driver/redshift.clj -msgid "toucan_sightings" -msgstr "toucan_sightings" - -#: src/metabase/driver/sparksql.clj -msgid "default" -msgstr "дефолт" - -#: src/metabase/driver/sqlite.clj -msgid "Filename" -msgstr "ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ" - -#: src/metabase/driver/sqlite.clj -msgid "/home/camsaul/toucan_sightings.sqlite 😋" -msgstr "/home/camsaul/toucan_sightings.sqlite 😋" - -#: src/metabase/driver/sqlserver.clj -msgid "BirdsOfTheWorld" -msgstr "BirdsOfTheWorld" - -#: src/metabase/driver/sqlserver.clj -msgid "Database instance name" -msgstr "Ім'Ñ Ð¿Ñ€Ð¸Ð¼Ñ–Ñ€Ð½Ð¸ÐºÐ° бази даних" - -#: src/metabase/driver/sqlserver.clj -msgid "N/A" -msgstr "N / A" - -#: src/metabase/driver/sqlserver.clj -msgid "Windows domain" -msgstr "домен Windows," - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 -msgid "Labels" -msgstr "етикетки" - -#: frontend/src/metabase/admin/people/components/GroupDetail.jsx:339 -msgid "Add members" -msgstr "Додати кориÑтувачів" - -#: frontend/src/metabase/entities/collections.js:116 -msgid "Collection it's saved in" -msgstr "ÐšÐ¾Ð»ÐµÐºÑ†Ñ–Ñ Ð²Ð¾Ð½Ð° зберігаєтьÑÑ Ð²" - -#: frontend/src/metabase/lib/groups.js:4 -msgid "All Users" -msgstr "Ð’ÑÑ– кориÑтувачі" - -#: frontend/src/metabase/lib/groups.js:5 -msgid "Administrators" -msgstr "ÐдмініÑтратори" - -#: frontend/src/metabase/lib/groups.js:6 -msgid "MetaBot" -msgstr "MetaBot" - -#: frontend/src/metabase/public/components/widgets/EmbedModalContent.jsx:290 -msgid "Sharing" -msgstr "поділ" - -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:23 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:218 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:251 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:280 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:286 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:294 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:302 -#: frontend/src/metabase/visualizations/lib/settings/nested.js:126 -#: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:119 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:125 -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:131 -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:61 -#: frontend/src/metabase/visualizations/visualizations/Progress.jsx:67 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:72 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:85 -#: frontend/src/metabase/visualizations/visualizations/Text.jsx:98 -msgid "Display" -msgstr "диÑплей" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 -msgid "Axes" -msgstr "Ñокири" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 -#: frontend/src/metabase/admin/settings/selectors.js:316 -#: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 -#: frontend/src/metabase/visualizations/lib/settings/column.js:63 -msgid "Formatting" -msgstr "форматуваннÑ" - -#: frontend/src/metabase/containers/Overworld.jsx:102 -msgid "Try these x-rays based on your data." -msgstr "Спробуйте ці x-rays на оÑнові ваших даних." - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 -msgid "There was a problem displaying this chart." -msgstr "ІÑнував проблема показати цей графік." - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 -msgid "Sorry, you don't have permission to see this card." -msgstr "Ðа жаль, у Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” доÑтупу переглÑдати цю карту." - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:55 -msgid "Just a heads up:" -msgstr "Ð’Ñього голови до:" - -#: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:63 -msgid "{0} without the Sample Dataset, the Query Builder tutorial won't work. You can always restore the Sample Dataset, but any questions you've saved using this data will be lost." -msgstr "{0} без зразка Dataset, підручник Query Builder не працюватиме. Ви завжди можете відновити Sample Dataset, але будь-Ñкі питаннÑ, ви зберегли викориÑтовуючи ці дані будуть втрачені." - -#: frontend/src/metabase/modes/components/drill/AutomaticDashboardDrill.jsx:33 -msgid "X-ray" -msgstr "X-ray" - -#: frontend/src/metabase/modes/components/drill/CompareToRestDrill.js:34 -msgid "Compare to the rest" -msgstr "У порівнÑнні з іншими" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 -msgid "Use the Java Virtual Machine (JVM) timezone" -msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¾Ñ— машини Java (JVM) чаÑовий поÑÑ" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 -msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" -"many or most of your queries with this data." -msgstr "Ми пропонуємо вам залишити цю опцію, Ñкщо ви робите ручну виливок чаÑового поÑÑу в\n" -"багато чи більшіÑÑ‚ÑŒ ваших запитів з цими даними." - -#: frontend/src/metabase/containers/Overworld.jsx:312 -msgid "Your team's most important dashboards go here" -msgstr "Ðайбільш важливі Щитки вашої команди йдуть Ñюди" - -#: frontend/src/metabase/containers/Overworld.jsx:313 -msgid "Pin dashboards in {0} to have them appear in this space for everyone" -msgstr "Pin Щитки в {0}, щоб вони відображалиÑÑ Ð² цьому проÑторі Ð´Ð»Ñ Ð²ÑÑ–Ñ…" - -#: src/metabase/db.clj -msgid "Unable to release the Liquibase lock after a migration failure" -msgstr "Ðеможливо знÑти Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ LiquiBase піÑÐ»Ñ Ð·Ð±Ð¾ÑŽ міграції" - -#: src/metabase/driver/bigquery.clj -msgid "Use JVM Time Zone" -msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¾Ñ— машини Java Time Zone" - -#: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:29 -msgid "We're currently analyzing the tables and fields to help you explore your data." -msgstr "Ми в даний Ñ‡Ð°Ñ Ð°Ð½Ð°Ð»Ñ–Ð·ÑƒÑ” таблиці Ñ– полÑ, Ñкі допоможуть вам вивчити ваші дані." - -#: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:441 -msgid "Tip: " -msgstr "Порада:" - -#: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:246 -msgid "Select a currency type" -msgstr "Виберіть тип валюти" - -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 -msgid "Field Type" -msgstr "Тип полÑ" - -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 -msgid "Troubleshooting" -msgstr "Ð’Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼" - -#: frontend/src/metabase/admin/settings/selectors.js:93 -msgid "Enable X-ray features" -msgstr "Включити функції X-ray" - -#: frontend/src/metabase/admin/settings/selectors.js:320 -msgid "Formatting Options" -msgstr "параметри форматуваннÑ" - -#: frontend/src/metabase/admin/tasks/containers/TaskModal.jsx:22 -msgid "Task details" -msgstr "Деталі про завданнÑ" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:29 -msgid "Troubleshooting logs" -msgstr "Журнали Ð´Ð»Ñ Ñ€Ð¾Ð·Ð²'Ñзку проблем" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:31 -msgid "Trying to get to the bottom of something? This section shows logs of Metabase's background tasks, which can help shed light on what's going on." -msgstr "ÐамагаючиÑÑŒ докопатиÑÑ Ð´Ð¾ чогоÑÑŒ? У цьому розділі відображаєтьÑÑ Ð¶ÑƒÑ€Ð½Ð°Ð»Ð¸ фонових завдань метабази длÑ, Ñкий може допомогти пролити Ñвітло на те, що відбуваєтьÑÑ." - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:56 -msgid "Task" -msgstr "Задача" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:57 -msgid "DB ID" -msgstr "DB ID" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:58 -msgid "Started at" -msgstr "Початок" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:59 -msgid "Ended at" -msgstr "ЗакінченнÑ" - -#: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:60 -msgid "Duration (ms)" -msgstr "ТриваліÑÑ‚ÑŒ (мÑ)" - -#: frontend/src/metabase/lib/core.js:45 -msgid "Currency" -msgstr "валюта" - -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 -msgid "Pick a user or channel..." -msgstr "Виберіть кориÑтувача або канал ..." - -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 -msgid "No formatting settings" -msgstr "Ðемає наÑтройки форматуваннÑ" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:81 -msgid "Label for this range (optional)" -msgstr "Етикетка Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ діапазону (за бажаннÑм)" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:93 -msgid "Add a range" -msgstr "Додати діапазон" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:26 -msgid "is less than" -msgstr "менше" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:27 -msgid "is greater than" -msgstr "більше" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:28 -msgid "is less than or equal to" -msgstr "менше або дорівнює" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:29 -msgid "is greater than or equal to" -msgstr "більше або дорівнює" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:30 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:37 -msgid "is equal to" -msgstr "одно" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:31 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:38 -msgid "is not equal to" -msgstr "не дорівнює" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:32 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:39 -msgid "is null" -msgstr "дорівнює нулю" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:33 -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:40 -msgid "is not null" -msgstr "не Ñ” нульовим" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:41 -msgid "contains" -msgstr "міÑтить" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:42 -msgid "does not contain" -msgstr "не міÑтить" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:43 -msgid "starts with" -msgstr "починаєтьÑÑ Ð·" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:44 -msgid "ends with" -msgstr "закінчуєтьÑÑ" - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:292 -msgid "When a cell in these columns {0} it will be tinted this color." -msgstr "Коли клітина в цих ÑтовпцÑÑ… {0} буде тонированной цим кольором." - -#: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:351 -msgid "When a cell in this column…" -msgstr "Коли клітина в цій колонці ..." - -#: frontend/src/metabase/visualizations/lib/errors.js:42 -msgid "This visualization requires you to group by a field." -msgstr "Ð¦Ñ Ð²Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ” групувати поле." - -#: frontend/src/metabase/visualizations/lib/settings/column.js:178 -msgid "Date style" -msgstr "Стиль дати" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:196 -msgid "Date separators" -msgstr "Роздільники дати" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:215 -msgid "Abbreviate names of days and months" -msgstr "Скорочувати назви днів Ñ– міÑÑців" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:225 -msgid "Show the time" -msgstr "Показати чаÑ" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:232 -msgid "HH:MM" -msgstr "HH: MM" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:240 -msgid "HH:MM:SS" -msgstr "ÐÐ: ММ: СС" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:243 -msgid "HH:MM:SS.MS" -msgstr "HH: MM: SS.MS" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:254 -msgid "Time style" -msgstr "Стиль чаÑу" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:300 -msgid "Unit of currency" -msgstr "Грошова одиницÑ" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:320 -msgid "Currency label style" -msgstr "Стиль Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:338 -msgid "Where to display the unit of currency" -msgstr "Де відображати одиницю валюти?" - -#: frontend/src/metabase/visualizations/lib/settings/column.js:371 -msgid "Minimum number of decimal places" -msgstr "Мінімальна кількіÑÑ‚ÑŒ знаків піÑÐ»Ñ ÐºÐ¾Ð¼Ð¸" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:252 -msgid "Stacked chart type" -msgstr "Stacked тип діаграми" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:295 -msgid "Goal label" -msgstr "етикетка Мета" - -#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 -msgid "Show trend line" -msgstr "Показати лінії тренду" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:67 -msgid "Line style" -msgstr "Стиль лінії" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:84 -msgid "Show dots on lines" -msgstr "Показати точки на лінії" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:88 -#: frontend/src/metabase/visualizations/lib/settings/series.js:125 -msgid "Auto" -msgstr "автоматичний" - -#: frontend/src/metabase/visualizations/lib/settings/series.js:120 -msgid "Which axis?" -msgstr "Яка віÑÑŒ?" - -#: frontend/src/metabase/visualizations/visualizations/ComboChart.jsx:16 -msgid "Line + Bar" -msgstr "Ð›Ñ–Ð½Ñ–Ñ + Бар" - -#: frontend/src/metabase/visualizations/visualizations/ComboChart.jsx:19 -msgid "line and bar chart" -msgstr "Ð»Ñ–Ð½Ñ–Ñ Ñ– гіÑтограма" - -#: frontend/src/metabase/visualizations/visualizations/Gauge.jsx:76 -msgid "Gauge visualization requires a number." -msgstr "Ð²Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Gauge вимагає Ñ€Ñду." - -#: frontend/src/metabase/visualizations/visualizations/Gauge.jsx:60 -msgid "Gauge" -msgstr "вимірювальний прилад" - -#: frontend/src/metabase/visualizations/visualizations/Gauge.jsx:115 -msgid "Gauge ranges" -msgstr "діапазони Калібрувальні" - -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 -msgid "Field to show" -msgstr "поле показати" - -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 -msgid "last {0}" -msgstr "оÑтанній {0}" - -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 -msgid "{0} was {1} {2}" -msgstr "{0} був {1} {2}" - -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:66 -msgid "Group by a time field to see how this has changed over time" -msgstr "Ð£Ð³Ñ€ÑƒÐ¿Ð¾Ð²Ð°Ð½Ð½Ñ Ð¿Ð¾ полю чаÑу, щоб побачити, Ñк це змінилоÑÑ Ð· плином чаÑу" - -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:46 -msgid "Switch positive / negative colors?" -msgstr "Перейдіть позитивні / негативні кольору?" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:95 -msgid "Pivot column" -msgstr "колонка Pivot" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:126 -msgid "Cell column" -msgstr "колонка Cell" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:163 -msgid "Visible columns" -msgstr "видимі Ñтовпці" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:191 -msgid "Conditional Formatting" -msgstr "умовне форматуваннÑ" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:233 -msgid "Column title" -msgstr "Ðазва колонки" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:240 -msgid "Show a mini bar chart" -msgstr "Показати міні-гиÑтограмму" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:251 -msgid "Link" -msgstr "поÑиланнÑ" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:255 -msgid "Email link" -msgstr "ÐадіÑлати поÑиланнÑ" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:259 -msgid "Image" -msgstr "зображеннÑ" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:263 -msgid "Automatic" -msgstr "автоматична" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:268 -msgid "View as link or image" -msgstr "ПереглÑд у виглÑді поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ зображеннÑ" - -#: frontend/src/metabase/visualizations/visualizations/Table.jsx:278 -msgid "Link text" -msgstr "текÑÑ‚" - -#: src/metabase/api/common/internal.clj -msgid "Not a valid integer: ''{0}''" -msgstr "Чи не Ñ” цілим чиÑлом: «» {0} «»" - -#: src/metabase/api/embed.clj -msgid "Embedding is not enabled for this object." -msgstr "Ð’Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ включений Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ об'єкта." - -#: src/metabase/api/session.clj -msgid "Problem connecting to LDAP server, will fallback to local authentication: {0}" -msgstr "Проблема Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ Ñервера LDAP, буде Відкат до локальної аутентифікації: {0}" - -#: src/metabase/api/task.clj -msgid "When including an offset, a limit must also be included." -msgstr "При включенні зÑуву, також повинен бути включений межа." - -#: src/metabase/api/task.clj -msgid "When including a limit, an offset must also be included." -msgstr "При включенні межа, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð°ÐºÐ¾Ð¶ повинні бути включені." - -#: src/metabase/automagic_dashboards/core.clj -msgid "Applying heuristic {0} to {1}." -msgstr "ЗаÑтоÑовуючи евриÑтику {0} до {1}." - -#: src/metabase/automagic_dashboards/core.clj -msgid "Dimensions bindings:n{0}" -msgstr "Розміри прив'Ñзок: п {0}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "Using definitions:nMetrics:n{0}nFilters:n{1}" -msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ: nMetrics: п {0} nFilters: п {1}" - -#: src/metabase/automagic_dashboards/core.clj -msgid "minute" -msgstr "хвилин" - -#: src/metabase/automagic_dashboards/core.clj -msgid "hour" -msgstr "годину" - -#: src/metabase/automagic_dashboards/core.clj -msgid "day of week" -msgstr "день тижнÑ" - -#: src/metabase/automagic_dashboards/core.clj -msgid "day of month" -msgstr "день міÑÑцÑ" - -#: src/metabase/automagic_dashboards/core.clj -msgid "day of year" -msgstr "день року" - -#: src/metabase/automagic_dashboards/core.clj -msgid "week" -msgstr "тиждень" - -#: src/metabase/automagic_dashboards/core.clj -msgid "month" -msgstr "міÑÑць" - -#: src/metabase/automagic_dashboards/core.clj -msgid "quarter" -msgstr "чверть" - -#: src/metabase/automagic_dashboards/populate.clj -msgid "Adding {0} cards to dashboard {1}:n{2}" -msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ {0} карти приладової панелі {1}: {2 п}" - -#: src/metabase/automagic_dashboards/rules.clj -msgid "Error parsing {0}:n{1}" -msgstr "Помилка ÑинтакÑичного аналізу {0}: {1 п}" - -#: src/metabase/driver/druid/query_processor.clj -msgid "WARNING: Filtering only works on dimensions! ''{0}'' is a metric. Ignoring filter." -msgstr "ПОПЕРЕДЖЕÐÐЯ: Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð°Ñ†ÑŽÑ” тільки за габаритами! '' {0} '' Ñ” метрикою. Ðе звертаючи уваги на фільтр." - -#: src/metabase/driver/druid/query_processor.clj -msgid "WARNING: A date can't belong to multiple discrete intervals, so ANDing them together doesn't make sense." -msgstr "УВÐГÐ: дата не може належати кілька диÑкретним інтервалах, так що вони разом операції AND не мають ÑенÑу." - -#: src/metabase/driver/druid/query_processor.clj -msgid "Ignoring these intervals: {0}" -msgstr "Ð†Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†Ð¸Ñ… інтервалів: {0}" - -#. We should never get to this point since the all non-string negations should get automatically rewritten -#. by the query expander. -#: src/metabase/driver/druid/query_processor.clj -msgid "WARNING: Don't know how to negate: {0}" -msgstr "УВÐГÐ: Ðе знаю, Ñк звеÑти нанівець: {0}" - -#: src/metabase/driver/druid/query_processor.clj -msgid "Sorting with Druid is only allowed in queries that have one or more breakout columns. Ignoring :order-by clause." -msgstr "Ð¡Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð· друїдом допуÑкаєтьÑÑ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ в запитах, Ñкі мають один або кілька Ñекційних колони. ІгноруваннÑ: порÑдку по п." - -#. TODO - this is not really true, is it -#: src/metabase/driver/druid/query_processor.clj -msgid "WARNING: It only makes sense to specify :fields for a query with no aggregation. Ignoring the clause." -msgstr "УВÐГÐ: Це має ÑÐµÐ½Ñ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ Ð´Ð»Ñ Ð²ÐºÐ°Ð·Ñ–Ð²ÐºÐ¸: Ð¿Ð¾Ð»Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ, без агрегації. Ðе звертаючи уваги на Ñтановище." - -#: src/metabase/driver/druid/query_processor.clj -msgid "WARNING: Druid doenst allow limitSpec in timeseries queries. Ignoring the LIMIT clause." -msgstr "ПОПЕРЕДЖЕÐÐЯ: Друїд doenst дозволÑÑ” limitSpec в таймÑеріÑÑ… запитів. Ðе звертаючи уваги на Ñтан LIMIT." - -#: src/metabase/driver/sql/query_processor.clj -msgid "HoneySQL Form:" -msgstr "HoneySQL Форма:" - -#: src/metabase/driver/sql_jdbc/execute.clj -msgid "Unable to parse date ''{0}''" -msgstr "Ðеможливо розібрати дату «» {0} «»" - -#: src/metabase/driver/sql_jdbc/execute.clj -msgid "Client closed connection, cancelling query" -msgstr "Клієнт закрив з'єднаннÑ, ÑкаÑовуючи запит" - -#: src/metabase/driver/sql_jdbc/execute.clj -msgid "Setting timezone with statement: {0}" -msgstr "Як вÑтановити чаÑовий поÑÑ Ð· виразом: {0}" - -#: src/metabase/driver/googleanalytics/query_processor.clj -msgid "Multiple date filters are not supported" -msgstr "Кілька фільтрів дати не підтримуютьÑÑ" - -#: src/metabase/driver/googleanalytics/query_processor.clj -msgid ":not is not yet implemented" -msgstr ": Чи не ще не реалізовано" - -#: src/metabase/driver/googleanalytics/query_processor.clj -msgid "Only one Google Analytics segment allowed at a time." -msgstr "Тільки один Ñегмент Google Analytics дозволив в той чаÑ." - -#: src/metabase/driver/mongo/query_processor.clj -msgid "MONGO AGGREGATION PIPELINE:" -msgstr "MONGO Ð°Ð³Ñ€ÐµÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¢Ð Ð£Ð‘ÐžÐŸÐ ÐžÐ’ÐžÐ”ÐžÐ’:" - -#: src/metabase/driver/mongo/query_processor.clj -msgid "Error: mismatched columns in results! Expected: {0} Got: {1}" -msgstr "Помилка: незбіжні Ñтовпці в результатах! Очікуваний: {0} Got: {1}" - -#: src/metabase/email/messages.clj -msgid "Unable to create temp file in `{0}` for email attachments " -msgstr "Ðеможливо Ñтворити тимчаÑовий файл в `{0} 'Ð´Ð»Ñ Ð²ÐºÐ»Ð°Ð´ÐµÐ½ÑŒ електронної пошти" - -#: src/metabase/events/activity_feed.clj -msgid "Error preprocessing query:" -msgstr "Помилка попередньої обробки запиту:" - -#: src/metabase/mbql/normalize.clj -msgid "Illegal filter clause: {0}" -msgstr "Ðелегальне ÐŸÑ€Ð¾Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð°: {0}" - -#: src/metabase/mbql/normalize.clj -msgid "Invalid clause:" -msgstr "Ðевірний розділ:" - -#: src/metabase/mbql/util.clj -msgid "Error: query's source query has not been resolved. You probably need to `preprocess` the query first." -msgstr "Помилка: джерело запит запитів Query не було вирішене. Ви, ймовірно, потрібно `preprocess` запит першим." - -#: src/metabase/mbql/util.clj -msgid "No expression named ''{0}''" -msgstr "ÐÑ– вирази з ім'Ñм «» {0} «»" - -#: src/metabase/mbql/util.clj -msgid "No aggregation at index: {0}" -msgstr "Ðемає агрегації за індекÑом: {0}" - -#: src/metabase/models/field_values.clj -msgid "Field values total length is {0} (max {1})." -msgstr "Загальна довжина значень полів {0} (Ð¼Ð°ÐºÑ {1})." - -#: src/metabase/models/field_values.clj -msgid "FieldValues are allowed for this Field." -msgstr "FieldValues ​​дозволені Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ полÑ." - -#: src/metabase/models/field_values.clj -msgid "FieldValues are NOT allowed for this Field." -msgstr "FieldValues ​​ÐЕ дозволені Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ полÑ." - -#: src/metabase/models/field_values.clj -msgid "Field {0} ''{1}'' should have FieldValues and belongs to a Database with On-Demand FieldValues updating." -msgstr "Поле {0} \"\" {1} \"» повинен мати FieldValues ​​і належить до бази даних на вимогу, FieldValues ​​поновленнÑ." - -#: src/metabase/models/permissions.clj -msgid "You cannot create or revoke permissions for the ''Admin'' group." -msgstr "Ви не можете Ñтворити або ÑкаÑувати дозволи Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¸ «» Admin «»." - -#: src/metabase/models/permissions_group_membership.clj -msgid "You cannot add or remove users to/from the ''MetaBot'' group." -msgstr "Ви не можете додавати або видалÑти кориÑтувачів в / з «MetaBot« »групи»." - -#: src/metabase/models/permissions_group_membership.clj -msgid "You cannot add or remove users to/from the ''All Users'' group." -msgstr "Ви не можете додавати або видалÑти кориÑтувачів в / з групи «All Users« »»." - -#: src/metabase/models/permissions_group_membership.clj -msgid "You cannot remove the last member of the ''Admin'' group!" -msgstr "Ви не можете видалити оÑтанній елемент з групи «» Admin «»!" - -#. go ahead and log the Exception anyway on the off chance that it *wasn't* just a race condition issue -#: src/metabase/models/setting/cache.clj -msgid "Error inserting a new Setting: {0}" -msgstr "Помилка вÑтавки нової уÑтановки: {0}" - -#: src/metabase/models/setting.clj -msgid "defsetting descriptions strings must be `:internal?` or internationalized, found: `{0}`" -msgstr "defsetting Ð¾Ð¿Ð¸Ñ Ñ€Ñдка повинні бути `:` внутрішніми або інтернаціоналізувати, знайдені: `{0}`" - -#: src/metabase/plugins.clj -msgid "Loading plugin {0}... {1}" -msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½ {0} ... {1}" - -#: src/metabase/public_settings.clj -msgid "Object keyed by type, containing formatting settings" -msgstr "Параметри Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±'єкта ключем по типу, що міÑтить" - -#: src/metabase/public_settings.clj -msgid "Allow users to explore data using X-rays" -msgstr "Дозволити кориÑтувачам доÑліджувати дані за допомогою X-rays" - -#: src/metabase/public_settings/metastore.clj -msgid "Using this URL to check token: {0}" -msgstr "ВикориÑтовуючи цей URL, щоб перевірити фішку: {0}" - -#: src/metabase/public_settings/metastore.clj -msgid "Unable to validate token: 404 not found." -msgstr "Ðеможливо перевірити маркер: 404, не знайдено." - -#: src/metabase/public_settings/metastore.clj -msgid "There was an error checking whether this token was valid:" -msgstr "Там була помилка перевірки, чи був цей маркер дійÑний:" - -#. +----------------------------------------------------------------------------------------------------------------+ -#. | SETTING & RELATED FNS | -#. +----------------------------------------------------------------------------------------------------------------+ -#. TODO - rename this to premium-features-token? -#: src/metabase/public_settings/metastore.clj -msgid "Token for premium features. Go to the MetaStore to get yours!" -msgstr "Токен преміум-функцій. Перейти до MetaStore, щоб отримати ваш!" - -#: src/metabase/public_settings/metastore.clj -msgid "Token format is invalid. Token should be 64 hexadecimal characters." -msgstr "Токен невірний формат. Знак повинен бути 64 шіÑтнадцÑткових Ñимволів." - -#: src/metabase/public_settings/metastore.clj -msgid "Error setting premium features token" -msgstr "Помилка Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¾ÐºÐµÐ½Ñƒ преміум-функції" - -#: src/metabase/public_settings/metastore.clj -msgid "Error validating token:" -msgstr "Помилка перевірки маркера:" - -#: src/metabase/query_processor.clj -msgid "Error preprocessing query" -msgstr "Помилка запиту попередньої обробки" - -#: src/metabase/query_processor.clj -msgid "No native form returned." -msgstr "Ðемає нативной форми не повернувÑÑ." - -#: src/metabase/query_processor/middleware/process_userland_query.clj -msgid "Invalid response from database driver. No :status provided." -msgstr "Ðеправильна відповідь від драйвера бази даних. ÐÑ–: ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð°Ð´Ð°Ñ”Ñ‚ÑŒÑÑ." - -#: src/metabase/query_processor.clj -msgid "General error" -msgstr "Загальна помилка" - -#: src/metabase/query_processor.clj -msgid "Missing query hash!" -msgstr "ВідÑÑƒÑ‚Ð½Ñ Ñ…ÐµÑˆ-запит!" - -#: src/metabase/query_processor/middleware/add_implicit_clauses.clj -msgid "Table ''{0}'' has no Fields associated with it." -msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Â«Â» {0} \"\" не має полів, пов'Ñзане з ним." - -#: src/metabase/query_processor/middleware/add_query_throttle.clj -msgid "Max concurrent query limit reached" -msgstr "МакÑимальна межа одночаÑних запитів доÑÑг" - -#. we should never reach this if our patterns are written right so this is more to catch code mistakes than -#. something the user should expect to see -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Don't know how to get information about Field:" -msgstr "Ðе знаю, Ñк отримати інформацію про поле:" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "metabase.query-processor.interface/*driver* is unbound." -msgstr "metabase.query-processor.interface / * драйвер * Ñ” непов'Ñзаним." - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Query processor error: mismatched number of columns in query and results." -msgstr "Запит помилка процеÑора: неÑпівпадаючі кількіÑÑ‚ÑŒ Ñтовпців в запиті Ñ– результатах." - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Expected {0} fields, got {1}" -msgstr "Очікувані {0} полÑ, отримав {1}" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Expected: {0}" -msgstr "Очікуваний: {0}" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Actual: {0}" -msgstr "Фактичне: {0}" - -#: src/metabase/query_processor/middleware/binning.clj -msgid "Unable to bin Field without a min/max value" -msgstr "Ðеможливо бен поле без хв / Ð¼Ð°ÐºÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ" - -#: src/metabase/query_processor/middleware/check_features.clj -msgid "{0} is not supported by this driver." -msgstr "{0} Ñ” недоÑтупною драйвером." - -#: src/metabase/query_processor/middleware/expand_macros.clj -msgid "Segment {0} does not exist, or is invalid." -msgstr "Сегмент {0} не Ñ–Ñнує, або Ñ” недійÑним." - -#: src/metabase/query_processor/middleware/expand_macros.clj -msgid "Metric {0} does not exist, or is invalid." -msgstr "Метрика {0} не Ñ–Ñнує, або Ñ” недійÑним." - -#: src/metabase/query_processor/middleware/fetch_source_query.clj -msgid "Missing source query in Card {0}" -msgstr "ВідÑÑƒÑ‚Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚ джерела в картці {0}" - -#: src/metabase/query_processor/middleware/fetch_source_query.clj -msgid "Fetched source query from Card {0}:" -msgstr "ВитÑгнутий джерело запит з карти {0}:" - -#: src/metabase/query_processor/middleware/mbql_to_native.clj -msgid "Error transforming MBQL query to native:" -msgstr "Помилка Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ MBQL запиту до рідних:" - -#: src/metabase/query_processor/middleware/resolve_source_table.clj -msgid "Cannot run query: could not find source table {0}." -msgstr "Ðеможливо виконати запит: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ таблицю джерела {0}." - -#: src/metabase/query_processor/middleware/results_metadata.clj -msgid "Error recording results metadata for query:" -msgstr "Результати запиÑи Помилка метаданих Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ:" - -#: src/metabase/query_processor/store.clj -msgid "Error: Query Processor store is not initialized." -msgstr "Помилка: обробник запити магазин не инициализирован." - -#: src/metabase/query_processor/store.clj -msgid "Error: Table {0} is not present in the Query Processor Store." -msgstr "Помилка: Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ {0} немає в магазині обробника запитів." - -#: src/metabase/query_processor/store.clj -msgid "Error: Field {0} is not present in the Query Processor Store." -msgstr "Помилка: Поле {0} не приÑутній в обробнику запитів Store." - -#: src/metabase/task/task_history_cleanup.clj -msgid "Task history cleanup successful, rows were {0}deleted" -msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñ–ÑÑ‚Ð¾Ñ€Ñ–Ñ Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ ÑƒÑпішно, Ñ€Ñдки були {0} видалені" - -#: src/metabase/task/task_history_cleanup.clj -msgid "not" -msgstr "ÐЕ" - -#: src/metabase/util/encryption.clj -msgid "For more information, see" -msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації див" - -#: src/metabase/util/schema.clj -msgid "Integer greater than or equal to zero" -msgstr "Ціле чиÑло, більше або рівне нулю" - -#: src/metabase/util/schema.clj -msgid "value must be an integer greater than or equal to zero." -msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути цілим чиÑлом, більшим або рівним нулю." - -#: src/metabase/util/schema.clj -msgid "value must be an integer zero or greater." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути цілим чиÑлом нуль або більше." - -#: src/metabase/util/schema.clj -msgid "value must be a valid integer greater than or equal to zero." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути дійÑним чиÑлом, більшим або рівним нулю." - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "New users per state in the last 30 days" -msgstr "Ðові кориÑтувачі в змозі за оÑтанні 30 днів" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Created At by day of the week" -msgstr "Створений Ðа день тижнÑ" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Created At by quarter of the year" -msgstr "Створено Ð’ поквартально року" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] per country" -msgstr "[Ім'Ñ this.short []] в кожній країні" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Users per source" -msgstr "КориÑтувачі на джерело" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "The top external pages that brought users to your site" -msgstr "Верхні зовнішні Ñторінки, Ñкі привели кориÑтувачів на ваш Ñайт" - -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "How [[this]] is distributed and more." -msgstr "Як [[це]] поширюєтьÑÑ Ñ– багато іншого." - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "The [[this]] over time" -msgstr "[[Це]] протÑгом довгого чаÑу" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "User growth" -msgstr "зроÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Whether or not there are any patterns to when they happen." -msgstr "Ðезалежно від того, Ñ” чи ні будь-Ñкі моделі, коли вони траплÑÑŽÑ‚ÑŒÑÑ." - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Users per state" -msgstr "КориÑтувачі в Ñтані" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions" -msgstr "ÑеÑÑ–Ñ—" - -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "How some of the numbers in [[this]] relate to each other" -msgstr "Як деÑкі з чиÑел в [[це]] пов'Ñзані один з одним" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per country" -msgstr "Менеджер з продажу в країні" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by month of the year" -msgstr "Дата реєÑтрації по міÑÑцÑÑ… року" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by hour of the day" -msgstr "[[Відмітка]] по годинах днÑ" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "A look at the [[this]]" -msgstr "ПоглÑд на [[це]]" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Bottom 5 per category" -msgstr "Дно 5 в категорії" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Number of orders" -msgstr "кількіÑÑ‚ÑŒ замовлень" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Event growth" -msgstr "зроÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´Ñ–Ð¹" - -#: resources/automagic_dashboards/table/example/indepth.yaml -msgid "Total [[GenericTable]]" -msgstr "Ð’Ñього [[GenericTable]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Income growth" -msgstr "зроÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð¾Ñ…Ð¾Ð´Ñ–Ð²" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Top 10 countries by sales in the last 30 days" -msgstr "Топ-10 країн за обÑÑгом продажів за оÑтанні 30 днів" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[this]] by month of the year" -msgstr "[[Це]] по міÑÑцÑÑ… року" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions per day of the week" -msgstr "Угоди в день тижнÑ" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions by device type" -msgstr "СеÑÑ–Ñ— за типом приÑтрою" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Transactions per country" -msgstr "Операції в країні" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by quarter of the year" -msgstr "Дата реєÑтрації на чверть року" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per hour of the day" -msgstr "Події в годину днÑ" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[Singleton]]" -msgstr "[[Сінглтон]]" - -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Country.yaml -msgid "Top 5 [[this]]" -msgstr "Top 5 [[це]]" - -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Country.yaml -msgid "Bottom 5 [[this]]" -msgstr "Дно 5 [[це]]" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by day of the month" -msgstr "[[Відмітка]] по днÑÑ… міÑÑцÑ" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per [[GenericCategoryLarge]]" -msgstr "Per [[GenericCategoryLarge]]" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "Null values" -msgstr "нульові значеннÑ" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Total events" -msgstr "вÑього подій" - -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "A look at [[GenericTable]] across your [[this]], and how it changes over time." -msgstr "ПоглÑд на [[GenericTable]] через ваш [[це]], Ñ– Ñк вона змінюєтьÑÑ Ð· чаÑом." - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategoryMedium]]" -msgstr "[[Це]] в [[GenericCategoryMedium]]" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "How the [[this]] changes with time" -msgstr "Як [[це]] змінюєтьÑÑ Ð· чаÑом" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "How they compare by seasonality" -msgstr "Як вони ÑпіввідноÑÑÑ‚ÑŒÑÑ ÑезонноÑÑ‚Ñ–" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average income per transaction" -msgstr "Середній дохід на одну транзакцію" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per country" -msgstr "[[Це]] в країні" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Income per state" -msgstr "Дохід на Ñтан" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per [[GenericCategoryMedium]]" -msgstr "Per [[GenericCategoryMedium]]" - -#: resources/automagic_dashboards/question/GenericQuestion.yaml -msgid "A closer look at your [[this]]" -msgstr "Більш пильний поглÑд на ваш [[це]]" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "How [[GenericNumber]] is distributed" -msgstr "Як [[GenericNumber]] поширюєтьÑÑ" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[Timestamp]] by quarter of year" -msgstr "[[Відмітка]] на чверть року" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per country" -msgstr "Події в країні" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Weekdays when [[this.short-name]] were added" -msgstr "Будні, коли [[this.short-ім'Ñ]] було додано" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Months when [[this.short-name]] were added" -msgstr "МіÑÑць, коли [[this.short-ім'Ñ]] було додано" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare across different categories" -msgstr "Як вони ÑпіввідноÑÑÑ‚ÑŒÑÑ Ð¼Ñ–Ð¶ різними категоріÑми" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "New users per source in the last 30" -msgstr "Ðові кориÑтувачі на джерело в оÑтанні 30" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per quarter of the year" -msgstr "Події в квартал цього року" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Heres a quick look at your [[this]]" -msgstr "Heres швидкий поглÑд на ваш [[це]]" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategoryLarge]], top 5" -msgstr "[[Це]] в [[GenericCategoryLarge]], топ-5" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Days when [[this.short-name]] were added" -msgstr "Дні, коли [[this.short-ім'Ñ]] було додано" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Total orders per source" -msgstr "Ð’Ñього замовлень на джерело" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[this]] by quarter of the year" -msgstr "[[Це]] на чверть року" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per [[GenericCategoryMedium]]" -msgstr "Події в [[GenericCategoryMedium]]" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per state" -msgstr "Події в Ñтані" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Top landing pages" -msgstr "Кращі цільові Ñторінки" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Heres a closer look at your [[this]] over time" -msgstr "Heres ближчий поглÑд на ваш [[це]] протÑгом довгого чаÑу" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "Sum of [[this]] by [[Country]]" -msgstr "Сума [[це]] по [[Країна]]" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "States that are performing best" -msgstr "Держави, Ñкі виконують краще" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Created At by month of the year" -msgstr "Створено Ð’ від міÑÑÑ†Ñ Ñ€Ð¾ÐºÑƒ" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "Sum of [[this]] by [[State]]" -msgstr "Сума [[це]] по [[держави]]" - -#: resources/automagic_dashboards/field/State.yaml -msgid "Sum of [[GenericNumber]] per [[this]]" -msgstr "Сума [[GenericNumber]] в [[це]]" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events by coordinates" -msgstr "Події за координатами" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Top referral pages" -msgstr "ПопулÑрні Ñторінки рефералів" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "An exploration of your users to get you started." -msgstr "ДоÑÐ»Ñ–Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¸Ñ… кориÑтувачів, щоб ви почали." - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "An overview of your [[this]] and how its distributed across time, place, and categories." -msgstr "ОглÑд ваших [[це]] Ñ– Ñк його розподілені по чаÑу, міÑце Ñ– категорії." - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Average income per state" -msgstr "Середній дохід на Ñтан" - -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "[[this]] by [[GenericCategoryMedium]]" -msgstr "[[Це]] по [[GenericCategoryMedium]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Total transactions" -msgstr "вÑього угод" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] that have joined over time" -msgstr "[Ім'Ñ this.short []], Ñкі приєдналиÑÑ Ð¿Ñ€Ð¾Ñ‚Ñгом довгого чаÑу" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "The [[this]] by location" -msgstr "[[Це]] за міÑцем розташуваннÑ" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per month of the year" -msgstr "Події на міÑÑць року" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] by [[GenericNumber]]" -msgstr "[[Це]] по [[GenericNumber]]" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Quarters when [[this.short-name]] were added" -msgstr "Чверті, коли [[this.short-ім'Ñ]] було додано" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "How these [[this.short-name]] are distributed" -msgstr "Як це [[this.short-ім'Ñ]] розподілені" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] by [[GenericNumber]]" -msgstr "[Ім'Ñ-this.short []] по [[GenericNumber]]" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Where users are coming from" -msgstr "Де кориÑтувачі приходÑÑ‚ÑŒ з" - -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "[[this]] comparisons and correlations" -msgstr "[[Це]] порівнÑнь Ñ– корелÑції" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Total income" -msgstr "Ñукупний дохід" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Total income per month" -msgstr "Загальний дохід в міÑÑць" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Number of users per source" -msgstr "КількіÑÑ‚ÑŒ кориÑтувачів на джерело" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Transactions per state" -msgstr "Операції в Ñтані" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "[[this]] by [[Timestamp]]" -msgstr "[[Це]] по [[Відмітка]]" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "New users per source in the last 30 days" -msgstr "Ðові кориÑтувачі на джерело в протÑгом оÑтанніх 30 днів" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by day of the month" -msgstr "Дата реєÑтрації в день міÑÑцÑ" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average discount %" -msgstr "Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ð·Ð½Ð¸Ð¶ÐºÐ°%" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Autogenerated metrics about [[GenericTable]]." -msgstr "Ðвтогенеріруемие метрики про [[GenericTable]]." - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per day of the month" -msgstr "[[Це]] в день міÑÑцÑ" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Total sessions in each country" -msgstr "Ð’Ñього ÑеÑÑ–Ñ— в кожній країні" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions per month of the year" -msgstr "КількіÑÑ‚ÑŒ транзакцій в міÑÑць року" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per product" -msgstr "Продажі на продукт" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Users in each country" -msgstr "КориÑтувачі в кожній країні" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[this]] by hour of the day" -msgstr "[[Це]] на годину днÑ" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events in the last 30 days" -msgstr "Події протÑгом оÑтанніх 30 днів" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Transactions per source" -msgstr "Операції на джерело" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Where youve acquired your users" -msgstr "Де, котор ви придбали кориÑтувач" - -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare acrosss location" -msgstr "Як вони порівнюють acrosss розташуваннÑ" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "[[this]] per product" -msgstr "[[Це]] Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ продукту" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per month of the year" -msgstr "[[Це]] в міÑÑць на рік" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per country" -msgstr "за країну" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "A deeper look at how different countries are performing for you." -msgstr "Більш глибокий поглÑд на те, Ñк різні країни виконують Ð´Ð»Ñ Ð²Ð°Ñ." - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per state" -msgstr "Продажі в Ñтані" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events by [[GenericNumber]]" -msgstr "Події за [[GenericNumber]]" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Sales per product [[ProductCategoryMedium]]" -msgstr "Продажі на продукт [[ProductCategoryMedium]]" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "User acquisition by country" -msgstr "ÐŸÑ€Ð¸Ð´Ð±Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача по країні" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "[[this]] per source" -msgstr "[[Це]] Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ джерела" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[this]] by day of the week" -msgstr "[[Це]] по днÑÑ… тижнÑ" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Days of the month when [[this.short-name]] joined" -msgstr "Дні міÑÑцÑ, коли [ім'Ñ this.short []] приєднавÑÑ" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Heres an overview of the people in your [[this]]" -msgstr "Heres оглÑд людей у ​​вашій [[це]]" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "How [[GenericTable]] are distributed across this time field, and if it has any seasonal patterns." -msgstr "Як [[GenericTable]] розподілені по цього чаÑу полÑ, Ñ– Ñкщо у нього Ñ” ÑкіÑÑŒ Ñезонні моделі." - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/table/TransactionTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Overview" -msgstr "оглÑд" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How this metric is distributed across different categories" -msgstr "Як Ñ†Ñ Ð¼ÐµÑ‚Ñ€Ð¸ÐºÐ° розподілÑєтьÑÑ Ð¿Ð¾ різним категоріÑм" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] per state" -msgstr "[Ім'Ñ-this.short []] в Ñтані" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Weekdays when [[this.short-name]] joined" -msgstr "Будні, коли [ім'Ñ this.short []] приєднавÑÑ" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Hours when [[this.short-name]] joined" -msgstr "Годинники, коли [ім'Ñ this.short []] приєднавÑÑ" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Total income by month" -msgstr "Загальний дохід по міÑÑцÑÑ…" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "A breakdown of your [[this]] over time, and its min, max, average and more." -msgstr "Розбивка вашого [[цього]] протÑгом довгого чаÑу, Ñ– його мінімум, макÑимум, Ñереднє Ñ– багато іншого." - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Average quantity per state" -msgstr "Ð¡ÐµÑ€ÐµÐ´Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ в Ñтані" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare by across different numbers" -msgstr "Як вони ÑпіввідноÑÑÑ‚ÑŒÑÑ Ð· різних чиÑлах" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "New users per country in the last 30 days" -msgstr "Ðові кориÑтувачі в країні за оÑтанні 30 днів" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions over time" -msgstr "Угоди з плином чаÑу" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategorySmall]]" -msgstr "[[Це]] в [[GenericCategorySmall]]" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Some breakdown" -msgstr "деÑкі розбивка" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "Average of [[this]] by [[State]]" -msgstr "Середнє Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ [[це]] по [[держави]]" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions per quarter of the year" -msgstr "Угоди за квартал поточного року" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "By coordinates" -msgstr "за координатами" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Heres a closer look at your [[this]] by products" -msgstr "Heres ближчий поглÑд на ваш [[це]] продуктами" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per quarter of the year" -msgstr "[[Це]] за квартал поточного року" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Heres an overview of your [[this]] data from Google Analytics" -msgstr "Heres оглÑд вашого [[це]] дані з Google Analytics" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Quarters when [[this.short-name]] joined" -msgstr "Quarters, коли [ім'Ñ this.short []] приєднавÑÑ" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "New [[this.short-name]] in the last 30 days" -msgstr "Ðове [this.short ім'Ñ-[]] протÑгом оÑтанніх 30 днів" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Total sessions by desktop, mobile, or tablet" -msgstr "Ð’Ñього ÑеанÑів по наÑтільним, мобільним, або таблетки" - -#: resources/automagic_dashboards/table/example/indepth.yaml -msgid "Indepth example" -msgstr "Indepth приклад" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Average income per source" -msgstr "Середній дохід на джерело" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[Timestamp]] by day of week" -msgstr "[[Відмітка]] по днÑÑ… тижнÑ" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/question/GenericQuestion.yaml -msgid "Heres a closer look at your [[this]]" -msgstr "Heres ближчий поглÑд на ваш [[це]]" - -#: resources/automagic_dashboards/field/Country.yaml -msgid "Heres a closer look at your [[this]] field" -msgstr "Heres ближчий поглÑд на ваш [[це]] поле" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Summary" -msgstr "резюме" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "How the [[this]] is distributed geographically" -msgstr "Як [[це]] поширюєтьÑÑ Ð³ÐµÐ¾Ð³Ñ€Ð°Ñ„Ñ–Ñ‡Ð½Ð¾" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "The pages with the most pageviews" -msgstr "Сторінки з найбільшою кількіÑÑ‚ÑŽ переглÑдів Ñторінок" - -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "How [[Number1]] is correlated with [[Number2]]" -msgstr "Як [[Number1]] зіÑтавлÑєтьÑÑ Ð· [[Number2]]" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Top 10 states by sales in the last 30 days" -msgstr "Топ-10 країн за обÑÑгом продажів за оÑтанні 30 днів" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Top 10 states by sales" -msgstr "Топ-10 країн за обÑÑгом продажів" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[Timestamp]]" -msgstr "[[Відмітка]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Where these transactions happened" -msgstr "Якщо ці угоди відбулиÑÑ" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Top 10 countries by sales" -msgstr "Топ-10 країн за обÑÑгом продажів" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Sales by state" -msgstr "продажі держави" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Where most of your sessions originate from" -msgstr "Якщо більшіÑÑ‚ÑŒ ваших ÑеÑій відбуваютьÑÑ Ð·" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Top acquisition channels" -msgstr "ÐайпопулÑрніші канали придбаннÑ" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "These [[this.short-name]] across time" -msgstr "Це [[ім'Ñ this.short]] під чаÑ" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average quantity" -msgstr "ÑÐµÑ€ÐµÐ´Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per source" -msgstr "Продажі на джерело" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Average income per country" -msgstr "Середній дохід на душу країни" - -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "How [[this]] is distributed" -msgstr "Як [[це]] поширюєтьÑÑ" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Distinct [[FK]]" -msgstr "Окреме [[ФК]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "How these transactions are distributed" -msgstr "Як ці операції розподілені" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per state" -msgstr "за Ñтан" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "Count of [[GenericCategoryMedium]] by [[this]]" -msgstr "Граф [[GenericCategoryMedium]] по [[це]]" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/TransactionTable.yaml -#: resources/automagic_dashboards/table/UserTable.yaml -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "A look at your [[this]]" -msgstr "ПодивітьÑÑ Ð½Ð° ваш [[це]]" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "[[GenericNumber]] by [[this]]" -msgstr "[[GenericNumber]] по [[це]]" - -#: resources/automagic_dashboards/field/Country.yaml -msgid "Sum of [[GenericNumber]] by [[this]]" -msgstr "Сума [[GenericNumber]] по [[це]]" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "A look at your [[this]] table" -msgstr "ПодивітьÑÑ Ð½Ð° ваш [[це]] таблиці" - -#: resources/automagic_dashboards/field/State.yaml -msgid "How many [[GenericTable]] there are per state, and how each state is represented across other categories." -msgstr "Скільки [[GenericTable]] Ñ” в Ñтані, Ñ– Ñк кожна держава предÑтавлена ​​по інших категоріÑÑ…." - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Most-viewed pages" -msgstr "Ðай-популÑрні Ñторінки" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Example exploration" -msgstr "приклад розвідки" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Sales vs. rating" -msgstr "Продажі в порівнÑнні з рейтингом" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per hour of the day" -msgstr "[[Це]] о першій годині днÑ" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Where your [[this.short-name]] are" -msgstr "Де ваше [ім'Ñ this.short []] Ñ”" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "These are the same for all your [[this.short-name]]" -msgstr "Вони однакові Ð´Ð»Ñ Ð²ÑÑ–Ñ… ваших [ім'Ñ-this.short []]" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events by different categories" -msgstr "Події за різними категоріÑми" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Where these [[this.short-name]] are" -msgstr "Там, де це [[ім'Ñ this.short]] Ñ”" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Over time" -msgstr "Через деÑкий чаÑ" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "A summary of the events in your [[this]] table" -msgstr "Короткий виклад подій у вашій [[це]] таблиці" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Transactions per source over time" -msgstr "Операції на джерело з плином чаÑу" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "How the [[this]] is distributed" -msgstr "Як [[це]] поширюєтьÑÑ" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Total income per source" -msgstr "Загальний дохід Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ джерела" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Total [[this.short-name]]" -msgstr "Ð’Ñього [this.short ім'Ñ []]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Some metrics we found about your transactions." -msgstr "Ми знайшли деÑкі метрики про ваші транзакції" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "How your different products are performing." -msgstr "Як ваші різні продукти виконують." - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Where these events are happening" -msgstr "Там, де ці події відбуваютьÑÑ" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Which US states are bringing you the most business." -msgstr "Які американÑькі штати приноÑÑÑ‚ÑŒ вам найбільше бізнеÑу." - -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare across time" -msgstr "Як вони ÑпіввідноÑÑÑ‚ÑŒÑÑ Ð·Ð° чаÑом" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average transaction income per month" -msgstr "Середній дохід транзакцій в міÑÑць" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average quantity per month" -msgstr "Ð¡ÐµÑ€ÐµÐ´Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ на міÑÑць" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "Seasonal patterns in the [[this]]" -msgstr "Сезонні закономірноÑÑ‚Ñ– в [[це]]" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events over time" -msgstr "Події протÑгом довгого чаÑу" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Orders and income per source" -msgstr "Ð—Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ– дохід на джерело" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Transactions per hour of the day" -msgstr "КількіÑÑ‚ÑŒ транзакцій о першій годині днÑ" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Where most of your traffic is coming from." -msgstr "Там, де велика чаÑтина трафіку приходить від." - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Heres a quick look at the [[this]]" -msgstr "Heres швидкий поглÑд на [[це]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "It looks like your [[this]] has transactions, so heres a look at them" -msgstr "Схоже на [[це]] має угод, так Heres поглÑд на них" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average discount per month" -msgstr "Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ð·Ð½Ð¸Ð¶ÐºÐ° на міÑÑць" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by month of the year" -msgstr "[[Відмітка]] по міÑÑцÑÑ… року" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategorySmall]] over time" -msgstr "[[Це]] в [[GenericCategorySmall]] протÑгом довгого чаÑу" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Distribution by coordinates" -msgstr "Розподіл за координатами" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Sales by source" -msgstr "продажі джерела" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales for each product category" -msgstr "Менеджер з продажу Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— категорії продуктів" - -#: resources/automagic_dashboards/question/GenericQuestion.yaml -msgid "A closer look at the metrics and dimensions used in this saved question." -msgstr "Більш пильний поглÑд на метрики Ñ– виміри, Ñкі викориÑтовуютьÑÑ Ð² цьому збереженому запиті" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] per [[GenericCategoryMedium]]" -msgstr "[Ім'Ñ-this.short []] в [[GenericCategoryMedium]]" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Sales per product [[ProductCategoryLarge]]" -msgstr "Продажі на продукт [[ProductCategoryLarge]]" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Average quantity per country" -msgstr "Ð¡ÐµÑ€ÐµÐ´Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ в країні" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] per [[GenericCategoryLarge]]" -msgstr "[Ім'Ñ-this.short []] в [[GenericCategoryLarge]]" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Heres a closer look at your [[this]] per source" -msgstr "Heres ближчий поглÑд на ваш [[це]] на джерело" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per day of the month" -msgstr "Події в день міÑÑцÑ" - -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "If youre into correlations, this is the x-ray for you." -msgstr "Якщо ви корелюєте, цей x-ray Ð´Ð»Ñ Ð²Ð°Ñ." - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions by Country" -msgstr "СеÑÑ–Ñ— по країнам" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Some interesting metrics about your GA stats to get you started." -msgstr "ДеÑкі цікаві метрики про вашу ÑтатиÑтикою ГÐ, щоб ви почали." - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per state" -msgstr "[[Це]] в Ñтані" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by quarter of the year" -msgstr "[[Відмітка]] на чверть року" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How its distributed across time and other categories." -msgstr "Як його розподілені по чаÑу та іншим категоріÑм." - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "A look at your events over time and by several categories." -msgstr "ПодивітьÑÑ Ð½Ð° ваших подій у чаÑÑ– Ñ– по декількох категоріÑÑ…." - -#: resources/automagic_dashboards/field/State.yaml -msgid "[[GenericTable]] per [[this]]" -msgstr "[[GenericTable]] в [[це]]" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Average quantity per source" -msgstr "Ð¡ÐµÑ€ÐµÐ´Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ на джерело" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Top 5 per category" -msgstr "Топ 5 в категорії" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per day of the week" -msgstr "Події в день тижнÑ" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "New [[this.short-name]] per month" -msgstr "Ðове [[this.short ім'Ñ]] в міÑÑць" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Top performers" -msgstr "Кращі виконавці" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Transactions in the last 30 days" -msgstr "Угоди протÑгом оÑтанніх 30 днів" - -#: resources/automagic_dashboards/field/DateTime.yaml -msgid "[[GenericTable]] by [[this]]" -msgstr "[[GenericTable]] по [[це]]" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Overview of your [[this]] data from Google Analytics" -msgstr "ОглÑд вашого [[це]] дані з Google Analytics" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Created At by hour of the day" -msgstr "Створено о певній годині днÑ" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Sales by month" -msgstr "Продажі по міÑÑцÑÑ…" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "How the [[this]] is distributed across categories" -msgstr "Як [[це]] розподілені за категоріÑми" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[Timestamp]] by month of year" -msgstr "[[Відмітка]] по міÑÑцÑÑ… року" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "How many total sessions vs. how many individual users you had each day." -msgstr "Скільки та загалом кожного Ð´Ð½Ñ Ð² Ð²Ð°Ñ Ð±ÑƒÐ»Ð¾ ÑеанÑів та Ñкільки індивідуальних кориÑтувачів" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How this metric is distributed across different numbers" -msgstr "Як Ñ†Ñ Ð¼ÐµÑ‚Ñ€Ð¸ÐºÐ° розподілÑєтьÑÑ Ð¼Ñ–Ð¶ різними номерами" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions by page where the session began" -msgstr "СеÑÑ–Ñ— по Ñторінці, де почалаÑÑ ÑеÑÑ–Ñ" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -msgid "Distinct values" -msgstr "чіткі значеннÑ" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Hours when [[this.short-name]] were added" -msgstr "Годинники, коли [[this.short-ім'Ñ]] було додано" - -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "[[Timestamp]] by day of the week" -msgstr "[[Відмітка]] по днÑÑ… тижнÑ" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[GenericNumber]] over time" -msgstr "[[GenericNumber]] протÑгом довгого чаÑу" - -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "Heres an overview of your [[this]]" -msgstr "Heres оглÑд ваших [[це]]" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] by coordinates" -msgstr "[Ім'Ñ-this.short []] за координатами" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Heres a closer look at your [[this]] per state" -msgstr "Heres ближчий поглÑд на вашому [[це]] в Ñтані" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Created At by day of the month" -msgstr "Створений Ðа день міÑÑцÑ" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales by coordinates" -msgstr "Продажі за координатами" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "New [[this.short-name]] over time" -msgstr "Ðове [ім'Ñ this.short []] протÑгом довгого чаÑу" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by hour of the day" -msgstr "Дата реєÑтрації на годину днÑ" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[Timestamp]] by hour of day" -msgstr "[[Відмітка]] за чаÑом доби" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Sessions and unique users per day" -msgstr "СеÑÑ–Ñ— Ñ– унікальних кориÑтувачів в день" - -#: resources/automagic_dashboards/table/EventTable.yaml -msgid "Events per [[GenericCategoryLarge]]" -msgstr "Події в [[GenericCategoryLarge]]" - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/field/Country.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "How they compare by distribution" -msgstr "Як вони ÑпіввідноÑÑÑ‚ÑŒÑÑ Ð· розподілу" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Income per country" -msgstr "Дохід від кожної країни" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Heres a closer look at your [[this]] per country" -msgstr "Heres ближчий поглÑд на ваш [[це]] в кожній країні" - -#: resources/automagic_dashboards/table/example.yaml -msgid "Sales by product [[ProductCategory]]" -msgstr "Продажі за видами продукції [[ProductCategory]]" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per [[GenericCategoryLarge]], bottom 5" -msgstr "[[Це]] в [[GenericCategoryLarge]], Ð½Ð¸Ð¶Ð½Ñ 5" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] added in the last 30 days" -msgstr "[[This.short-ім'Ñ]] додано протÑгом оÑтанніх 30 днів" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Per [[Source]]" -msgstr "Per [[Джерело]]" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Average item quantity per month" -msgstr "Ð¡ÐµÑ€ÐµÐ´Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ товару в міÑÑць" - -#: resources/automagic_dashboards/field/Country.yaml -msgid "The number of [[GenericTable]] per country, and how each country is represented in different categories." -msgstr "ЧиÑло [[GenericTable]] в кожній країні, Ñ– Ñк кожна країна предÑтавлена ​​в різних категоріÑÑ…." - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "[[this]] per day of the week" -msgstr "[[Це]] в день тижнÑ" - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Average qunatity per source" -msgstr "Ð¡ÐµÑ€ÐµÐ´Ð½Ñ qunatity на джерело" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[this.short-name]] by [[Timestamp]]" -msgstr "[Ім'Ñ-this.short []] по [[Відмітка]]" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "Summary statistics" -msgstr "Зведена ÑтатиÑтика" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "Sales per month" -msgstr "Продажі в міÑÑць" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[GenericNumber]] by join date" -msgstr "[[GenericNumber]] дата, приєднатиÑÑ" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "Average of [[this]] by [[Country]]" -msgstr "Середнє Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ [[це]] по [[Країна]]" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "[[this]] over time" -msgstr "[[Це]] протÑгом довгого чаÑу" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Join date by day of the week" -msgstr "Дата реєÑтрації по днÑÑ… тижнÑ" - -#: resources/automagic_dashboards/field/Number.yaml -msgid "We crunched the numbers for your [[this]]" -msgstr "Ми хруÑтіли номера Ð´Ð»Ñ [[це]]" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Months when [[this.short-name]] joined" -msgstr "МіÑÑці, коли [ім'Ñ this.short []] приєднавÑÑ" - -#: src/metabase/api/geojson.clj -msgid "Unable to parse resource `{0}` as JSON" -msgstr "Ðеможливо розібрати реÑÑƒÑ€Ñ `{0} 'в форматі JSON" - -#: src/metabase/api/geojson.clj -msgid "Unable to find JSON via relative path `{0}`" -msgstr "Ðеможливо знайти JSON через відноÑний шлÑÑ… `{0}`" - -#: src/metabase/api/geojson.clj -msgid "Connection to host timed out for URL `{0}`" -msgstr "ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ вузла таймаут Ð´Ð»Ñ URL `{0}`" - -#: src/metabase/api/geojson.clj -msgid "Unable to connect to unknown host at URL `{0}`" -msgstr "Ðеможливо підключитиÑÑ Ð´Ð¾ невідомого хоÑта в URL `{0}`" - -#: src/metabase/api/geojson.clj -msgid "Unable to connect to host at URL `{0}`" -msgstr "Ðеможливо підключитиÑÑ Ð´Ð¾ хоÑту в URL `{0}`" - -#: src/metabase/api/geojson.clj -msgid "Connection refused by host at for URL `{0}`" -msgstr "З'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð¾ хоÑта в URL Ð´Ð»Ñ `{0}`" - -#: src/metabase/api/geojson.clj -msgid "Unable to retrieve resource at URL `{0}`" -msgstr "Ðе вдалоÑÑ Ñ€ÐµÑÑƒÑ€Ñ Ð¿Ð¾ URL `{0}`" - -#: src/metabase/api/geojson.clj -msgid "Unable to parse resource at URL `{0}` as JSON" -msgstr "Ðеможливо розібрати реÑÑƒÑ€Ñ Ð½Ð° URL `{0} ', Ñк JSON" - -#: src/metabase/api/session.clj -msgid "Problem connecting to LDAP server, will fall back to local authentication: {0}" -msgstr "Проблема Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ Ñервера LDAP, повернетьÑÑ Ð´Ð¾ локальної аутентифікації: {0}" - -#: src/metabase/driver/bigquery.clj -msgid "BigQuery statements can''t be parameterized!" -msgstr "заÑви BigQuery can''t параметріроватьÑÑ!" - -#: src/metabase/driver/druid/query_processor.clj -msgid "WARNING: Druid does not allow limitSpec in time series queries. Ignoring the LIMIT clause." -msgstr "УВÐГÐ: Друїд не дозволÑÑ” limitSpec в запитах чаÑових Ñ€Ñдів. Ðе звертаючи уваги на Ñтан LIMIT." - -#: src/metabase/driver/snowflake.clj -msgid "Invalid Snowflake connection details: missing DB name." -msgstr "ÐедійÑна Сніжинка деталь з'єднаннÑ: відÑÑƒÑ‚Ð½Ñ Ñ–Ð¼'Ñ Ð‘Ð”." - -#: src/metabase/email/messages.clj -msgid "We’d love your feedback." -msgstr "Ми хотіли б ваші відгуки." - -#: src/metabase/email/messages.clj -msgid "It looks like Metabase wasn’t quite a match for you." -msgstr "Схоже Metabase не зовÑім підходить Ð´Ð»Ñ Ð²Ð°Ñ." - -#: src/metabase/email/messages.clj -msgid "Would you mind taking a fast 5 question survey to help the Metabase team understand why and make things better in the future?" -msgstr "Ви не могли б взÑти швидкий оглÑд 5 питаннÑ, щоб допомогти команді Metabase зрозуміти, чому Ñ– зробити речі краще в майбутньому?" - -#: src/metabase/email/messages.clj -msgid "We hope you''ve been enjoying Metabase." -msgstr "Ми ÑподіваємоÑÑ you''ve наÑолоджувалиÑÑ Metabase." - -#: src/metabase/email/messages.clj -msgid "Would you mind taking a fast 6 question survey to tell us how it’s going?" -msgstr "Ви не заперечуєте б взÑти швидкий оглÑд 6 питаннÑ, щоб Ñказати нам, Ñк це відбуваєтьÑÑ?" - -#: src/metabase/email/messages.clj -msgid "{0} created a Metabase account" -msgstr "{0} ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу Metabase" - -#: src/metabase/email/messages.clj -msgid "{0} accepted their Metabase invite" -msgstr "{0} прийнÑв Ñ—Ñ… Metabase запроÑити" - -#: src/metabase/email/messages.clj -msgid "[Metabase] Password Reset Request" -msgstr "[Metabase] Ð¡ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð—Ð°Ð¿Ð¸Ñ‚" - -#: src/metabase/email/messages.clj -msgid "[Metabase] Notification" -msgstr "[Метабаза] ПовідомленнÑ" - -#: src/metabase/email/messages.clj -msgid "[Metabase] Help make Metabase better." -msgstr "[Metabase] Допоможіть зробити Metabase краще." - -#: src/metabase/email/messages.clj -msgid "[Metabase] Tell us how things are going." -msgstr "[Metabase] Розкажіть, Ñк йдуть Ñправи." - -#: src/metabase/mbql/util.clj -msgid "Error: query''s source query has not been resolved. You probably need to `preprocess` the query first." -msgstr "Помилка: джерело запит: запит \"в не було вирішене. Ви, ймовірно, потрібно `preprocess` запит першим." - -#: src/metabase/models/params.clj -msgid "Don't know what to do with:" -msgstr "Ðе знаю, що робити з:" - -#: src/metabase/models/params.clj -msgid "Don't know how to wrap:" -msgstr "Ðе знаю, Ñк обернути:" - -#: src/metabase/public_settings.clj -msgid "Failed setting `query-caching-max-kb` to {0}." -msgstr "Помилка уÑтановки `запиту кешуваннÑ-Max-kb` до {0}." - -#: src/metabase/public_settings.clj -msgid "Values greater than {1} are not allowed." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±Ñ–Ð»ÑŒÑˆÐµ {1} не допуÑкаютьÑÑ." - -#: src/metabase/query_processor/store.clj -msgid "Database {0} does not exist." -msgstr "База даних {0} не Ñ–Ñнує." - -#: src/metabase/query_processor/store.clj -msgid "Error: Database is not present in the Query Processor Store." -msgstr "Помилка: База даних немає в Query Processor Store." - -#: src/metabase/util/embed.clj -msgid "Invalid embedding-secret-key! Secret key must be a hexadecimal-encoded 256-bit key (i.e., a 64-character string)." -msgstr "Invalid вкладеннÑ-Ñекретний ключ! Секретний ключ повинен бути шіÑтнадцÑтковим-закодовано 256-бітний ключ (тобто Ñ€Ñдки 64 Ñимволів)." - -#: src/metabase/util/embed.clj -msgid "JWT is missing `alg`." -msgstr "JWT відÑÑƒÑ‚Ð½Ñ `alg`." - -#: src/metabase/util/embed.clj -msgid "JWT `alg` cannot be `none`." -msgstr "JWT `alg` не може бить` none`." - -#: src/metabase/util/embed.clj -msgid "The embedding secret key has not been set." -msgstr "Ð’ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ñекретний ключ не був вÑтановлений." - -#: src/metabase/util/embed.clj -msgid "Token is missing value for keypath" -msgstr "Токен не вказане Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ð¾Ð³Ð¾ реÑурÑу" - -#: resources/automagic_dashboards/table/example/indepth.yaml -msgid "In-depth example" -msgstr "поглиблений приклад" - -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:29 -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:17 -msgid "Key" -msgstr "ключ" - -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:30 -msgid "Class" -msgstr "клаÑ" - -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:32 -msgid "Triggers" -msgstr "тригери" - -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:48 -msgid "View triggers" -msgstr "ПереглÑд ÑпуÑкові" - -#: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:85 -msgid "Scheduler Info" -msgstr "планувальник інформаціÑ" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:20 -msgid "Priority" -msgstr "пріоритет" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:21 -msgid "Last Fired" -msgstr "ОÑтанній Звільнено" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:22 -msgid "Next Fire Time" -msgstr "Далі Вогонь ЧаÑ" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:23 -msgid "Start Time" -msgstr "Ð§Ð°Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:24 -msgid "End Time" -msgstr "Ñ‡Ð°Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:25 -msgid "Final Fire Time" -msgstr "Заключний Вогонь ЧаÑ" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:26 -msgid "May Fire Again?" -msgstr "Може Знову пожежа?" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:83 -msgid "Triggers for {0}" -msgstr "Тригери Ð´Ð»Ñ {0}" - -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 -msgid "Tasks" -msgstr "ЗавданнÑ" - -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 -msgid "Jobs" -msgstr "Роботи" - -#: frontend/src/metabase/components/CollectionLanding.jsx:739 -msgid "Duplicated {0}" -msgstr "Дубльований {0}" - -#: frontend/src/metabase/components/EntityItem.jsx:57 -msgid "Duplicate this item" -msgstr "Дублюйте цей пункт" - -#: frontend/src/metabase/components/EntityItem.jsx:63 -msgid "Archive this item" -msgstr "Ðрхів цього пункту" - -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 -msgid "Duplicate dashboard" -msgstr "дублікат панель" - -#: frontend/src/metabase/entities/containers/EntityCopyModal.jsx:16 -msgid "Duplicate \"{0}\"" -msgstr "Дублікат \"{0}\"" - -#: frontend/src/metabase/entities/containers/EntityCopyModal.jsx:21 -#: frontend/src/metabase/entities/containers/EntityCopyModal.jsx:26 -msgid "Duplicate" -msgstr "дублювати" - -#: frontend/src/metabase/lib/query_time.js:115 -msgid "Tomorrow" -msgstr "завтра" - -#: frontend/src/metabase/lib/query_time.js:129 -#: frontend/src/metabase/lib/query_time.js:143 -msgid "This {0}" -msgstr "Це {0}" - -#: frontend/src/metabase/lib/query_time.js:132 -msgid "Next {0}" -msgstr "Далі {0}" - -#: frontend/src/metabase/lib/query_time.js:135 -msgid "Previous {0}" -msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ {0}" - -#: frontend/src/metabase/lib/query_time.js:139 -msgid "Previous {0} {1}" -msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ {0} {1}" - -#: frontend/src/metabase/lib/query_time.js:141 -msgid "Next {0} {1}" -msgstr "Далі {0} {1}" - -#: frontend/src/metabase/lib/query_time.js:171 -msgid "Now" -msgstr "в даний чаÑ" - -#: frontend/src/metabase/lib/query_time.js:174 -msgid "{0} {1} ago" -msgstr "{0} {1} назад" - -#: frontend/src/metabase/lib/query_time.js:175 -msgid "{0} {1} from now" -msgstr "{0} {1} тепер" - -#: frontend/src/metabase/lib/query_time.js:190 -msgid "Default period" -msgid_plural "Default periods" -msgstr[0] "період за замовчуваннÑм" -msgstr[1] "Периоды по умолчанию" -msgstr[2] "Периоды по умолчанию" -msgstr[3] "Периоды по умолчанию" - -#: frontend/src/metabase/lib/query_time.js:206 -msgid "Minute of hour" -msgid_plural "Minutes of hour" -msgstr[0] "хвилина годину" -msgstr[1] "хвилина годину" -msgstr[2] "хвилина годину" -msgstr[3] "хвилина годину" - -#: frontend/src/metabase/lib/query_time.js:208 -msgid "Hour of day" -msgid_plural "Hours of day" -msgstr[0] "Ñ‡Ð°Ñ Ð´Ð½Ñ" -msgstr[1] "Ñ‡Ð°Ñ Ð´Ð½Ñ" -msgstr[2] "Ñ‡Ð°Ñ Ð´Ð½Ñ" -msgstr[3] "Ñ‡Ð°Ñ Ð´Ð½Ñ" - -#: frontend/src/metabase/lib/query_time.js:210 -msgid "Day of week" -msgid_plural "Days of week" -msgstr[0] "день тижнÑ" -msgstr[1] "день тижнÑ" -msgstr[2] "день тижнÑ" -msgstr[3] "день тижнÑ" - -#: frontend/src/metabase/lib/query_time.js:212 -msgid "Day of month" -msgid_plural "Days of month" -msgstr[0] "день міÑÑцÑ" -msgstr[1] "день міÑÑцÑ" -msgstr[2] "день міÑÑцÑ" -msgstr[3] "день міÑÑцÑ" - -#: frontend/src/metabase/lib/query_time.js:214 -msgid "Day of year" -msgid_plural "Days of year" -msgstr[0] "день року" -msgstr[1] "день року" -msgstr[2] "день року" -msgstr[3] "день року" - -#: frontend/src/metabase/lib/query_time.js:216 -msgid "Week of year" -msgid_plural "Weeks of year" -msgstr[0] "тиждень року" -msgstr[1] "тиждень року" -msgstr[2] "тиждень року" -msgstr[3] "тиждень року" - -#: frontend/src/metabase/lib/query_time.js:218 -msgid "Month of year" -msgid_plural "Months of year" -msgstr[0] "міÑÑць року" -msgstr[1] "міÑÑць року" -msgstr[2] "міÑÑць року" -msgstr[3] "міÑÑць року" - -#: frontend/src/metabase/lib/query_time.js:220 -msgid "Quarter of year" -msgid_plural "Quarters of year" -msgstr[0] "чверть року" -msgstr[1] "чверть року" -msgstr[2] "чверть року" -msgstr[3] "чверть року" - -#: frontend/src/metabase-lib/lib/queries/structured/Filter.js:257 -#: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:62 -#: frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget.jsx:58 -#: frontend/src/metabase/query_builder/components/Filter.jsx:82 -msgid "{0} selection" -msgid_plural "{0} selections" -msgstr[0] "{0} вибору" -msgstr[1] "{0} вибору" -msgstr[2] "{0} вибору" -msgstr[3] "{0} вибору" - -#: frontend/src/metabase/parameters/components/widgets/DateQuarterYearWidget.jsx:11 -msgid "[Q]Q" -msgstr "[Q] Q" - -#: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:28 -msgid "This" -msgstr "це" - -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 -msgid "Invalid" -msgstr "недійÑний" - -#: frontend/src/metabase/query_builder/components/filters/pickers/SpecificDatePicker.jsx:137 -msgid "Add a time" -msgstr "Додати чаÑ" - -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 -msgid "Nothing to compare for the previous {0}." -msgstr "Ðіщо не порівнÑти Ð´Ð»Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ñ— {0}." - -#: frontend/src/metabase-lib/lib/Dimension.js:678 -msgid "by {0}" -msgstr "{0}" - -#: src/metabase/api/database.clj -msgid "value must be a valid database engine." -msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути дійÑним двигуном бази даних." - -#: src/metabase/api/geojson.clj -msgid "Connection refused by host for URL `{0}`" -msgstr "З'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð¾ хоÑта Ð´Ð»Ñ URL `{0}`" - -#: src/metabase/db.clj -msgid "Warning: Postgres connection string with `ssl=true` detected." -msgstr "Увага: Postgres Ñ€Ñдок з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· `Ssl = true` виÑвлений." - -#: src/metabase/db.clj -msgid "You may need to add `?sslmode=require` to your application DB connection string." -msgstr "Ви можете додати `? Sslmode = require` в прикладної Ñ€Ñдок з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ DB." - -#: src/metabase/db.clj -msgid "If Metabase fails to launch, please add it and try again." -msgstr "Якщо Metabase не запуÑкаєтьÑÑ, будь лаÑка, додайте його Ñ– Ñпробуйте ще раз." - -#: src/metabase/db.clj -msgid "See https://github.com/metabase/metabase/issues/8908 for more details." -msgstr "Див https://github.com/metabase/metabase/issues/8908 Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆ докладної інформації." - -#: src/metabase/db.clj -msgid "WARNING: Using Metabase with an H2 application database is not recomended for production deployments." -msgstr "ПОПЕРЕДЖЕÐÐЯ: ВикориÑÑ‚Ð°Ð½Ð½Ñ Metabase з базою даних програми H2 не рекомендуєтьÑÑ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ð¸Ñ€Ð¾Ð±Ð½Ð¸Ñ†Ñ‚Ð²Ð°." - -#: src/metabase/db.clj -msgid "For production deployments, we highly recommend using Postgres, MySQL, or MariaDB instead." -msgstr "Ð”Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ð¸Ñ€Ð¾Ð±Ð½Ð¸Ñ†Ñ‚Ð²Ð°, ми наÑтійно рекомендуємо викориÑтовувати Postgres, MySQL, або MariaDB заміÑÑ‚ÑŒ цього." - -#: src/metabase/db.clj -msgid "If you decide to continue to use H2, please be sure to back up the database file regularly." -msgstr "Якщо ви вирішите продовжувати викориÑтовувати H2, будь лаÑка, переконайтеÑÑ, що регулÑрно Ñтворювати резервні копії файлу бази даних." - -#: src/metabase/db.clj -msgid "See https://metabase.com/docs/latest/operations-guide/start.html#migrating-from-using-the-h2-database-to-mysql-or-postgres for more information." -msgstr "Див https://metabase.com/docs/latest/operations-guide/start.html#migrating-from-using-the-h2-database-to-mysql-or-postgres Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації." - -#: src/metabase/db.clj -msgid "Unable to connect to Metabase {0} DB." -msgstr "Ðеможливо підключитиÑÑ Ð´Ð¾ Metabase {0} БД." - -#: src/metabase/db/migrations.clj -msgid "Error adding legacy SQL directive to BigQuery saved Question" -msgstr "Помилка Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð¸ Ñпадок SQL в BigQuery збережений питаннÑ" - -#: src/metabase/driver.clj -msgid "Failed to notify {0} Database {1} updated" -msgstr "Чи не вдалоÑÑ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð¸Ñ‚Ð¸ {0} База даних {1} оновлена" - -#: src/metabase/driver.clj -msgid "Loading driver {0} {1}" -msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° {0} {1}" - -#: src/metabase/driver.clj -msgid "Load driver {0}" -msgstr "Водій Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ {0}" - -#: src/metabase/driver.clj -msgid "Driver not registered after loading: {0}" -msgstr "Водій не зареєÑтрований піÑÐ»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ: {0}" - -#: src/metabase/driver.clj -msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." -msgstr "Помилка: Ñпроби змінити влаÑтивіÑÑ‚ÑŒ {0} `?: ÐбÑтрактние` від {1} до {2}." - -#: src/metabase/driver.clj -msgid "Registered abstract driver {0}" -msgstr "ЗареєÑтрований абÑтрактний драйвер {0}" - -#: src/metabase/driver.clj -msgid "Registered driver {0}" -msgstr "ЗареєÑтрований драйвер {0}" - -#: src/metabase/driver.clj -msgid "(parents: {0})" -msgstr "(Батьки: {0})" - -#: src/metabase/driver.clj -msgid "Initializing driver {0}..." -msgstr "Ð†Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° {0} ..." - -#: src/metabase/driver.clj -msgid "Reason:" -msgstr "Причина:" - -#: src/metabase/driver.clj -msgid "Invalid driver feature: {0}" -msgstr "Ðевірна Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð°: {0}" - -#: src/metabase/driver/sql/query_processor.clj -msgid "Invalid HoneySQL form:" -msgstr "ÐеприпуÑтима форма HoneySQL:" - -#: src/metabase/driver/sql_jdbc/connection.clj -msgid "Closing connection pool for database {0} ..." -msgstr "Ð—Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿ÑƒÐ»Ñƒ з'єднань Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних {0} ..." - -#: src/metabase/driver/util.clj -msgid "Error loading namespace" -msgstr "Помилка при завантаженні імен" - -#: src/metabase/events.clj -msgid "Starting events listener:" -msgstr "ЗапуÑк подій Ñлухача:" - -#: src/metabase/events.clj -msgid "Unexpected error listening on events" -msgstr "ÐеÑподівана помилка проÑÐ»ÑƒÑ…Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´Ñ–Ð¹" - -#: src/metabase/events/sync_database.clj -msgid "Error syncing Database {0}" -msgstr "ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° бази даних {0}" - -#: src/metabase/events/sync_database.clj -msgid "Failed to process sync-database event." -msgstr "Чи не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ Ð¿Ð¾Ð´Ñ–Ñ Ñинхронізації бази даних." - -#: src/metabase/mbql/util.clj -msgid "Bad nested-query-level: query does not have a source query" -msgstr "Bad вкладеного-запит рівень: запит не має запит джерела" - -#: src/metabase/metabot/command.clj -msgid "I don''t know how to `{0}`." -msgstr "Я don''t знаю, Ñк `{0} '." - -#: src/metabase/metabot/command.clj -msgid "Here''s what I can do: " -msgstr "ОÑÑŒ що Ñ Ð¼Ð¾Ð¶Ñƒ зробити:" - -#: src/metabase/metabot/slack.clj -msgid "Error in Metabot command" -msgstr "Помилка в команді Metabot" - -#: src/metabase/metabot/websocket.clj -msgid "Websocket associated with this Slack event is different from the websocket we're currently using." -msgstr "WebSocket, пов'Ñзаний з цією подією Слак відрізнÑєтьÑÑ Ð²Ñ–Ð´ WebSocket, ми в даний Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтовуєтьÑÑ." - -#: src/metabase/models/field_values.clj -msgid "FieldValues for Field {0} remain unchanged. Skipping..." -msgstr "FieldValues â€‹â€‹Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ {0} залишаєтьÑÑ Ð½ÐµÐ·Ð¼Ñ–Ð½Ð½Ð¸Ð¼. ПропуÑтивши ..." - -#: src/metabase/models/interface.clj -msgid "Unable to normalize:" -msgstr "Ðеможливо нормалізувати:" - -#: src/metabase/models/params.clj -msgid "Could not find matching Field ID for target:" -msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ відповідні Ð¿Ð¾Ð»Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€ мети:" - -#: src/metabase/plugins.clj -msgid "Metabase does not have permissions to write to plugins directory {0}" -msgstr "Metabase не має дозволу на Ð·Ð°Ð¿Ð¸Ñ Ð² каталог плагінів {0}" - -#: src/metabase/plugins.clj -msgid "Metabase cannot use the plugins directory {0}" -msgstr "Metabase не може викориÑтовувати каталог плагінів {0}" - -#: src/metabase/plugins.clj -msgid "Please make sure the directory exists and that Metabase has permission to write to it." -msgstr "ПереконайтеÑÑ, що каталог Ñ–Ñнує Ñ– що Metabase має дозвіл на Ð·Ð°Ð¿Ð¸Ñ Ð² нього." - -#: src/metabase/plugins.clj -msgid "You can change the directory Metabase uses for modules by setting the environment variable MB_PLUGINS_DIR." -msgstr "Ви можете змінити каталог Metabase викориÑтовує Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð², вÑтановивши змінну Ð¾Ñ‚Ð¾Ñ‡ÐµÐ½Ð½Ñ MB_PLUGINS_DIR." - -#: src/metabase/plugins.clj -msgid "Falling back to a temporary directory for now." -msgstr "ÐŸÐ°Ð´Ñ–Ð½Ð½Ñ Ð½Ð°Ð·Ð°Ð´ в тимчаÑову директорію на даний момент." - -#: src/metabase/plugins.clj -msgid "Metabase cannot write to temporary directory. Please set MB_PLUGINS_DIR to a writable directory and restart Metabase." -msgstr "Metabase не може пиÑати на тимчаÑовий каталог. Будь лаÑка, вÑтановіть MB_PLUGINS_DIR на запиÑуваний директорію Ñ– перезапуÑтити Metabase." - -#: src/metabase/plugins.clj -msgid "spark-deps.jar is no longer needed by Metabase 1.0+. You can delete it from the plugins directory." -msgstr "ÐЕ Ñ–Ñкровий deps.jar більше не потрібен метабази 1.0+. Ви можете видалити його з каталогу плагінів." - -#: src/metabase/plugins.clj -msgid "Failied to initialize plugin {0}" -msgstr "Failied Ð´Ð»Ñ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð¼Ð¾Ð´ÑƒÐ»Ñ {0}" - -#: src/metabase/plugins.clj -msgid "Loading plugins in {0}..." -msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñ–Ð² в {0} ..." - -#: src/metabase/plugins/classloader.clj -msgid "Using Clojure base loader as shared context classloader: {0}" -msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ завантажувача Clojure в ÑкоÑÑ‚Ñ– загального контекÑту завантажувача клаÑів: {0}" - -#: src/metabase/plugins/classloader.clj -msgid "Setting current thread context classloader to shared classloader {0}..." -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ контекÑту потоку завантажувач клаÑів Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ завантажувача клаÑів {0} ..." - -#. it's important that we deref the promise again here instead of using the one we just created because it is -#. possible thru a race condition that somebody else delivered the promise before we did; in that case, -#. Clojure ignores subsequent calls to `deliver`. Dereffing the promise guarantees that we'll get the actual -#. value of it rather than one that ends up getting discarded -#: src/metabase/plugins/classloader.clj -msgid "Setting current thread context classloader to NEWLY CREATED classloader {0}..." -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ контекÑту нитки завантажувача клаÑів по відношенню до нових загрузчиком клаÑів {0} ..." - -#: src/metabase/plugins/classloader.clj -msgid "Added URL {0} to classpath" -msgstr "Доданий URL {0} шлÑÑ… до клаÑів" - -#: src/metabase/plugins/dependencies.clj -msgid "Plugin {0} declares a dependency that Metabase does not understand: {1}" -msgstr "Плагін {0} оголошує залежніÑÑ‚ÑŒ, Metabase не розуміє: {1}" - -#: src/metabase/plugins/dependencies.clj -msgid "Refer to the plugin manifest reference for a complete list of valid plugin dependencies:" -msgstr "ЗвернітьÑÑ Ð´Ð¾ плагіном маніфеÑту поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° повний ÑпиÑок допуÑтимих залежноÑтей плагіна:" - -#: src/metabase/plugins/dependencies.clj -msgid "Metabase cannot initialize plugin {0} due to required dependencies." -msgstr "Метабази не може звернутиÑÑ Ð´Ð¾ плагін {0} через необхідних залежноÑтей." - -#: src/metabase/plugins/dependencies.clj -msgid "Class not found: {0}" -msgstr "ÐšÐ»Ð°Ñ Ð½Ðµ найден: {0}" - -#: src/metabase/plugins/dependencies.clj -msgid "Plugin ''{0}'' depends on plugin ''{1}''" -msgstr "Плагін '' {0} '' залежить від плагіна '' {1} ''" - -#: src/metabase/plugins/dependencies.clj -msgid "{0} dependency {1} satisfied? {2}" -msgstr "{0} залежніÑÑ‚ÑŒ {1} задоволені? {2}" - -#: src/metabase/plugins/dependencies.clj -msgid "Plugins with unsatisfied deps: {0}" -msgstr "Модулі з незадоволеним DEPS: {0}" - -#: src/metabase/plugins/files.clj -msgid "Extract file {0} -> {1}" -msgstr "Файл Extract {0} -> {1}" - -#: src/metabase/plugins/files.clj -msgid "Resource does not exist." -msgstr "РеÑÑƒÑ€Ñ Ð½Ðµ Ñ–Ñнує." - -#: src/metabase/plugins/init_steps.clj -msgid "Loading plugin namespace {0}..." -msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½ імен {0} ..." - -#: src/metabase/plugins/initialize.clj -msgid "Dependencies satisfied; these plugins will now be loaded: {0}" -msgstr "ЗалежноÑÑ‚Ñ– задоволені; ці модулі тепер будуть завантажені: {0}" - -#: src/metabase/plugins/jdbc_proxy.clj -msgid "Registering JDBC proxy driver for {0}..." -msgstr "РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° JDBC прокÑÑ– Ð´Ð»Ñ {0} ..." - -#: src/metabase/plugins/jdbc_proxy.clj -msgid "Deregistering original JDBC driver {0}..." -msgstr "СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації оригінальний драйвер JDBC {0} ..." - -#: src/metabase/plugins/lazy_loaded_driver.clj -msgid "Default connection property {0} does not exist." -msgstr "За замовчуваннÑм Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð²Ð»Ð°ÑтивоÑÑ‚Ñ– {0} не Ñ–Ñнує." - -#: src/metabase/plugins/lazy_loaded_driver.clj -msgid "Invalid connection property {0}: not a string or map." -msgstr "Ðеправильне Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð²Ð»Ð°ÑтивіÑÑ‚ÑŒ {0}: чи не Ñ€Ñдок або карти." - -#. ok, do the init steps listed in the plugin mainfest -#: src/metabase/plugins/lazy_loaded_driver.clj -msgid "Load lazy loading driver {0}" -msgstr "ÐÐ°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð»ÐµÐ´Ð°Ñ‡Ð¾ÑŽ водій Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ {0}" - -#: src/metabase/plugins/lazy_loaded_driver.clj -msgid "Cannot initialize plugin: missing required property `driver-name`" -msgstr "Ðеможливо ініціалізувати плагін: відÑÑƒÑ‚Ð½Ñ Ð¾Ð±Ð¾Ð²'Ñзкова влаÑтивіÑÑ‚ÑŒ `Ð²Ð¾Ð´Ñ–Ñ name`" - -#: src/metabase/plugins/lazy_loaded_driver.clj -msgid "Warning: plugin manifest for {0} does not include connection properties" -msgstr "Увага: плагін маніфеÑту Ð´Ð»Ñ {0} не включає в Ñебе влаÑтивіÑÑ‚ÑŒ з'єднаннÑ" - -#. finally, register the Metabase driver -#: src/metabase/plugins/lazy_loaded_driver.clj -msgid "Registering lazy loading driver {0}..." -msgstr "РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð»ÐµÐ´Ð°Ñ‡Ð¾Ð³Ð¾ Ð²Ð¾Ð´Ñ–Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ {0} ..." - -#: src/metabase/pulse.clj -msgid "Error running query for Card {0}" -msgstr "Помилка при виконанні запиту Ð´Ð»Ñ ÐºÐ°Ñ€Ñ‚Ð¸ {0}" - -#: src/metabase/pulse/render/datetime.clj -msgid "Last week" -msgstr "Минулого тижнÑ" - -#: src/metabase/pulse/render/datetime.clj -msgid "This week" -msgstr "Цього тижнÑ" - -#: src/metabase/pulse/render/datetime.clj -msgid "Last month" -msgstr "ОÑтанній міÑÑцÑ" - -#: src/metabase/pulse/render/datetime.clj -msgid "This month" -msgstr "Цього міÑÑцÑ" - -#: src/metabase/pulse/render/datetime.clj -msgid "Last quarter" -msgstr "ОÑтанній квартал" - -#: src/metabase/pulse/render/datetime.clj -msgid "This quarter" -msgstr "У цьому кварталі" - -#: src/metabase/pulse/render/datetime.clj -msgid "Last year" -msgstr "Минулого року" - -#: src/metabase/pulse/render/datetime.clj -msgid "This year" -msgstr "Цього року" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "*driver* is unbound." -msgstr "* Драйвер * Ñ” непов'Ñзаним." - -#: src/metabase/sync/sync_metadata/fields.clj -msgid "Error syncing Fields for Table ''{0}''" -msgstr "Помилка Ñинхронізації полів Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– «» {0} «»" - -#: src/metabase/sync/sync_metadata/fields.clj -msgid "Hash of {0} matches stored hash, skipping Fields sync" -msgstr "Хеш {0} відповідає збереженій хеш, пропуÑкаючи ÐŸÐ¾Ð»Ñ Ñинхронізації" - -#: src/metabase/sync/sync_metadata/fields/common.clj -msgid "Field" -msgstr "поле" - -#: src/metabase/sync/sync_metadata/fields/sync_instances.clj -msgid "Error checking if Fields {0} need to be created or reactivated" -msgstr "Помилка перевірки, Ñкщо Ð¿Ð¾Ð»Ñ {0} повинні бути Ñтворені або реактивировать" - -#: src/metabase/sync/sync_metadata/fields/sync_instances.clj -msgid "Marking Field ''{0}'' as inactive." -msgstr "ÐœÐ°Ñ€ÐºÑƒÐ²Ð°Ð½Ð½Ñ ÐŸÐ¾Ð»Ðµ «» {0} \"\" Ñк неактивний." - -#: src/metabase/sync/sync_metadata/fields/sync_instances.clj -msgid "Error retiring {0}" -msgstr "Помилка доглÑду {0}" - -#: src/metabase/sync/sync_metadata/fields/sync_metadata.clj -msgid "Database type of {0} has changed from ''{1}'' to ''{2}''." -msgstr "Тип бази даних {0} змінено з '' {1} '' до '' {2} ''." - -#: src/metabase/sync/sync_metadata/fields/sync_metadata.clj -msgid "Base type of {0} has changed from ''{1}'' to ''{2}''." -msgstr "Базовий тип {0} змінено з '' {1} '' до '' {2} ''." - -#: src/metabase/sync/sync_metadata/fields/sync_metadata.clj -msgid "Special type of {0} has changed from ''{1}'' to ''{2}''." -msgstr "Спеціальний тип {0} змінено з '' {1} '' до '' {2} ''." - -#: src/metabase/sync/sync_metadata/fields/sync_metadata.clj -msgid "Comment has been added for {0}." -msgstr "Коментар був доданий Ð´Ð»Ñ {0}." - -#: src/metabase/task.clj -msgid "Stopping Quartz Scheduler {0}" -msgstr "Зупинка Кварц Планувальник {0}" - -#: src/metabase/task.clj -msgid "Starting Quartz Scheduler {0}" -msgstr "ЗапуÑк Quartz Scheduler {0}" - -#: src/metabase/task.clj -msgid "Error loading tasks namespace {0}" -msgstr "Помилка при завантаженні Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñтору імен {0}" - -#. don't bother logging namespace for now, maybe in the future if there's tasks of the same name in multiple -#. namespaces we can log it -#: src/metabase/task.clj -msgid "Initializing task {0}" -msgstr "Ð†Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ {0}" - -#: src/metabase/task.clj -msgid "Error initializing task {0}" -msgstr "Помилка при ініціалізації Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ {0}" - -#: src/metabase/task/follow_up_emails.clj -msgid "Problem sending abandonment email" -msgstr "Проблема відправки електронної пошти закиданнÑ" - -#: src/metabase/task/send_anonymous_stats.clj -msgid "Sending anonymous usage stats." -msgstr "Ð’Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð°Ð½Ð¾Ð½Ñ–Ð¼Ð½Ð¾Ñ— ÑтатиÑтики викориÑтаннÑ." - -#: src/metabase/task/send_anonymous_stats.clj -msgid "Error sending anonymous usage stats" -msgstr "Помилка відправки анонімної ÑтатиÑтики викориÑтаннÑ" - -#: src/metabase/task/send_pulses.clj -msgid "Error sending Pulse {0}" -msgstr "Помилка відправки ПульÑу {0}" - -#: src/metabase/task/send_pulses.clj -msgid "Sending scheduled pulses..." -msgstr "Ð’Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€ÐµÐ³ÑƒÐ»Ñрних ПульÑів ..." - -#: src/metabase/task/send_pulses.clj -msgid "SendPulses task failed" -msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð· відправки ПульÑів не виконано" - -#: src/metabase/task/sync_databases.clj -msgid "Failed to scheduler tasks for Database {0}" -msgstr "Помилка завдань планувальника Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних {0}" - -#: src/metabase/task/task_history_cleanup.clj -msgid "Cleaning up task history" -msgstr "ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ñ–Ñторії завданнÑ" - -#: src/metabase/task/task_history_cleanup.clj -msgid "Task history cleanup successful, rows were deleted" -msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñ–Ñторії Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ ÑƒÑпішно, Ñ€Ñдки були видалені" - -#: src/metabase/task/task_history_cleanup.clj -msgid "Task history cleanup successful, no rows were deleted" -msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñ–Ñторії Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ ÑƒÑпішно, жодна Ñ€Ñдок не була видалена" - -#: src/metabase/task/upgrade_checks.clj -msgid "Checking for new Metabase version info." -msgstr "Перевірка нової Metabase інформації про верÑÑ–Ñ—." - -#: src/metabase/task/upgrade_checks.clj -msgid "Error fetching version info" -msgstr "Помилка при отриманні інформації про верÑÑ–Ñ—" - -#: src/metabase/util.clj -msgid "Maximum memory available to JVM: {0}" -msgstr "МакÑимальний обÑÑг пам'ÑÑ‚Ñ–, доÑтупний Ð´Ð»Ñ Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¾Ñ— машини Java: {0}" - -#: src/metabase/util.clj -msgid "Not something with an ID: {0}" -msgstr "Ðе те, що з ID: {0}" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateDate]] by month of the year" -msgstr "[[CreateDate]] по міÑÑцÑÑ… року" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "Here's a quick look at your [[this]]" -msgstr "ОÑÑŒ швидкий поглÑд на ваш [[це]]" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by hour of the day" -msgstr "[[CreateTimestamp]] по годинах днÑ" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Where you've acquired your users" -msgstr "Де ви придбали кориÑтувач" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How it's distributed across time and other categories." -msgstr "Як це розподілено за чаÑом Ñ– іншим категоріÑм." - -#: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -msgid "Here's a closer look at your [[this]] per source" -msgstr "ОÑÑŒ ближчий поглÑд на ваш [[це]] на джерело" - -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "Here's a quick look at the [[this]]" -msgstr "ОÑÑŒ швидкий поглÑд на [[це]]" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by day of the month" -msgstr "[[CreateTimestamp]] по днÑÑ… міÑÑцÑ" - -#: resources/automagic_dashboards/table/UserTable.yaml -msgid "Here's an overview of the people in your [[this]]" -msgstr "ОÑÑŒ короткий оглÑд людей в ваших [[це]]" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by quarter of the year" -msgstr "[[CreateTimestamp]] на чверть року" - -#: resources/automagic_dashboards/field/Number.yaml -#: resources/automagic_dashboards/table/GenericTable.yaml -#: resources/automagic_dashboards/metric/GenericMetric.yaml -msgid "How they compare across location" -msgstr "Як вони ÑпіввідноÑÑÑ‚ÑŒÑÑ Ñ‡ÐµÑ€ÐµÐ· міÑце" - -#: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -msgid "Here's a closer look at your [[this]] by products" -msgstr "ОÑÑŒ ближчий поглÑд на ваш [[це]] по продукції" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by month of the year" -msgstr "[[CreateTimestamp]] по міÑÑцÑÑ… року" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "An overview of your [[this]] and how it's distributed across time, place, and categories." -msgstr "ОглÑд ваших [[це]] Ñ– Ñк це розподілено за чаÑом, міÑцем, Ñ– категорії." - -#: resources/automagic_dashboards/field/DateTime.yaml -#: resources/automagic_dashboards/question/GenericQuestion.yaml -msgid "Here's a closer look at your [[this]]" -msgstr "ОÑÑŒ ближчий поглÑд на ваш [[це]]" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTimestamp]] by day of the week" -msgstr "[[CreateTimestamp]] по днÑÑ… тижнÑ" - -#: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -msgid "Here's an overview of your [[this]] data from Google Analytics" -msgstr "ОÑÑŒ короткий оглÑд вашого [[це]] дані з Google Analytics" - -#: resources/automagic_dashboards/field/State.yaml -#: resources/automagic_dashboards/field/GenericField.yaml -#: resources/automagic_dashboards/comparison/State.yaml -#: resources/automagic_dashboards/comparison/FK.yaml -#: resources/automagic_dashboards/comparison/Country.yaml -#: resources/automagic_dashboards/comparison/GenericField.yaml -msgid "Here's an overview of your [[this]]" -msgstr "ОÑÑŒ короткий оглÑд вашого [[це]]" - -#: resources/automagic_dashboards/field/Country.yaml -msgid "Here's a closer look at your [[this]] field" -msgstr "ОÑÑŒ ближчий поглÑд на ваш [[це]] поле" - -#: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -msgid "Here's a closer look at your [[this]] per country" -msgstr "ОÑÑŒ ближчий поглÑд на ваш [[це]] в країні" - -#: resources/automagic_dashboards/table/GenericTable/Correlations.yaml -msgid "If you're into correlations, this is the x-ray for you." -msgstr "Якщо ви корелюєте, цей x-ray Ð´Ð»Ñ Ð²Ð°Ñ." - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateDate]] by day of the week" -msgstr "[[CreateDate]] по днÑÑ… тижнÑ" - -#: resources/automagic_dashboards/table/TransactionTable.yaml -msgid "It looks like your [[this]] has transactions, so here's a look at them" -msgstr "Схоже, ваш [[це]] має угод, так оÑÑŒ подивітьÑÑ Ð½Ð° них" - -#: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -msgid "Here's a closer look at your [[this]] per state" -msgstr "ОÑÑŒ ближчий поглÑд на вашому [[це]] в Ñтані" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateDate]] by day of the month" -msgstr "[[CreateDate]] по днÑÑ… міÑÑцÑ" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateTime]] by hour of the day" -msgstr "[[CreateTime]] по годинах днÑ" - -#: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -msgid "Here's a closer look at your [[this]] over time" -msgstr "ОÑÑŒ ближчий поглÑд на ваш [[це]] протÑгом довгого чаÑу" - -#: resources/automagic_dashboards/table/GenericTable.yaml -msgid "[[CreateDate]] by quarter of the year" -msgstr "[[CreateDate]] на чверть року" - -#: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 -msgid "Edit user" -msgstr "Редагувати кориÑтувача" - -#: frontend/src/metabase/admin/people/containers/NewUserModal.jsx:13 -msgid "New user" -msgstr "Створити кориÑтувача" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 -#: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 -msgid "Reset password" -msgstr "Скинути гаÑло" - -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 -msgid "Deactivate user" -msgstr "Деактивувати кориÑтувача" - -#: frontend/src/metabase/admin/people/containers/UserActivationModal.jsx:47 -msgid "Reactivate {0}?" -msgstr "Ðктивувати {0} повторно?" - -#: frontend/src/metabase/admin/people/containers/UserSuccessModal.jsx:63 -msgid "We couldn’t send them an email invitation, so make sure to tell them to log in using {0} and this password we’ve generated for them:" -msgstr "Ми не могли надіÑлати їм Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾ÑŽ поштою, тому не забудьте повідомити Ñ—Ñ… про викориÑÑ‚Ð°Ð½Ð½Ñ {0} Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ Ñ– цього гаÑла, Ñке ми Ñтворили Ð´Ð»Ñ Ð½Ð¸Ñ…:" - -#: frontend/src/metabase/entities/collections.js:24 -msgid "collection" -msgstr "колекціÑ" - -#: frontend/src/metabase/entities/collections.js:25 -msgid "collections" -msgstr "колекції" - -#: frontend/src/metabase/entities/dashboards.js:32 -msgid "dashboard" -msgstr "приладова дошка" - -#: frontend/src/metabase/entities/dashboards.js:33 -msgid "dashboards" -msgstr "приладові дошки" - -#: frontend/src/metabase/entities/users.js:37 -msgid "First name is required" -msgstr "Ім'Ñ - обов'Ñзкове" - -#: frontend/src/metabase/entities/users.js:38 -#: frontend/src/metabase/entities/users.js:46 -msgid "Must be 100 characters or less" -msgstr "Ðе більше 100 Ñимволів" - -#: frontend/src/metabase/entities/users.js:45 -msgid "Last name is required" -msgstr "Прізвище - обов'Ñзкове" - -#: frontend/src/metabase/entities/users.js:52 -msgid "Email is required" -msgstr "Електронна пошта - обов'Ñзкова" - -#: frontend/src/metabase/home/containers/ArchiveApp.jsx:93 -msgid "Items you archive will appear here." -msgstr "Заархівовані елементи з'ÑвлÑÑ‚ÑŒÑÑ Ñ‚ÑƒÑ‚" - -#: frontend/src/metabase/query_builder/components/dataref/DetailPane.jsx:16 -msgid "No description" -msgstr "Ðемає опиÑу" - -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:178 -msgid "Sum of all values" -msgstr "ПідÑумок" - -#: frontend/src/metabase/query_builder/components/dataref/FieldPane.jsx:186 -msgid "See all distinct values" -msgstr "ПереглÑнути уÑÑ– унікальні значеннÑ" - -#: frontend/src/metabase/query_builder/components/dataref/MainPane.jsx:12 -msgid "Browse the contents of your databases, tables, and columns. Pick a database to get started" -msgstr "" - -#: src/metabase/api/card.clj -msgid "Card results metadata passed in to API is VALID. Thanks!" -msgstr "" - -#: src/metabase/api/card.clj -msgid "Card results metadata passed in to API is INVALID. Running query to fetch correct metadata." -msgstr "" - -#: src/metabase/api/card.clj -msgid "Card results metadata passed in to API is ISSING. Running query to fetch correct metadata." -msgstr "" - -#: src/metabase/api/email.clj -msgid "{0} was autocorrected to {1}" -msgstr "" - -#: src/metabase/api/metric.clj -msgid "DELETE /api/metric/:id is deprecated. Instead, change its `archived` value via PUT /api/metric/:id." -msgstr "" - -#: src/metabase/api/segment.clj -msgid "DELETE /api/segment/:id is deprecated. Instead, change its `archived` value via PUT /api/segment/:id." -msgstr "" - -#: src/metabase/api/user.clj -msgid "Value of is_superuser must correspond to presence of Admin group ID in group_ids." -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "Unexpected error writing keepalive characters" -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "Unexpected output in async API response" -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "starting streaming response" -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "Output chan closed, canceling keepalive request." -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "Async response finished, closing channels." -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "No response after waiting {0}. Canceling request." -msgstr "" - -#: src/metabase/async/api_response.clj -msgid "Input channel unexpectedly closed." -msgstr "" - -#: src/metabase/async/semaphore_channel.clj -msgid "f finished, permit will be returned" -msgstr "" - -#: src/metabase/async/semaphore_channel.clj -msgid "request canceled, permit will be returned" -msgstr "" - -#: src/metabase/async/semaphore_channel.clj -msgid "Unexpected error attempting to run function after obtaining permit" -msgstr "" - -#: src/metabase/async/semaphore_channel.clj -msgid "Not running pending function call: output channel already closed." -msgstr "" - -#: src/metabase/async/semaphore_channel.clj -msgid "Current thread already has a permit for {0}, will not wait to acquire another" -msgstr "" - -#: src/metabase/async/util.clj -msgid "Output channel closed, will skip running {0}." -msgstr "" - -#: src/metabase/async/util.clj -msgid "Running {0} on separate thread..." -msgstr "" - -#: src/metabase/async/util.clj -msgid "Caught error running {0}" -msgstr "" - -#: src/metabase/async/util.clj -msgid "Request canceled, canceling future" -msgstr "" - -#: src/metabase/driver/sql_jdbc/connection.clj -msgid "Closing old connection pool for database {0} ..." -msgstr "" - -#: src/metabase/metabot/command.clj -msgid "Here''s your {0} most recent cards:" -msgstr "" - -#: src/metabase/metabot/command.clj -msgid "Could you be a little more specific, or use the ID? I found these cards with names that matched:" -msgstr "" - -#: src/metabase/metabot/command.clj -msgid "Card {0} not found." -msgstr "" - -#: src/metabase/middleware/exceptions.clj -msgid "Exception in API call" -msgstr "Помилка виклику API" - -#: src/metabase/middleware/exceptions.clj -msgid "Request canceled before finishing." -msgstr "" - -#: src/metabase/middleware/json.clj -msgid "Metabase only supports JSON requests." -msgstr "" - -#: src/metabase/middleware/json.clj -msgid "Make sure you set a 'Content-Type: application/json' header." -msgstr "" - -#: src/metabase/middleware/misc.clj -msgid "Setting Metabase site URL to {0}" -msgstr "" - -#: src/metabase/models/database.clj -msgid "Error scheduling tasks for DB" -msgstr "" - -#: src/metabase/models/database.clj -msgid "Error unscheduling tasks for DB." -msgstr "" - -#: src/metabase/models/database.clj -msgid "{0} Database ''{1}'' sync/analyze schedules have changed!" -msgstr "" - -#: src/metabase/models/database.clj -msgid "Sync metadata was: ''{0}'' is now: ''{1}''" -msgstr "" - -#: src/metabase/models/database.clj -msgid "Cache FieldValues was: ''{0}'', is now: ''{1}''" -msgstr "" - -#: src/metabase/models/metric.clj -msgid "You cannot update the creator_id of a Metric." -msgstr "" - -#: src/metabase/models/permissions.clj -msgid "MetaBot can only have Collection permissions." -msgstr "" - -#: src/metabase/models/permissions.clj -msgid "Failed to grant permissions" -msgstr "" - -#: src/metabase/models/permissions.clj -msgid "Changing permissions" -msgstr "" - -#: src/metabase/models/permissions.clj -msgid "FROM:" -msgstr "" - -#: src/metabase/models/permissions.clj -msgid "TO:" -msgstr "" - -#: src/metabase/models/segment.clj -msgid "You cannot update the creator_id of a Segment." -msgstr "" - -#: src/metabase/models/setting.clj -msgid "Attempted to set Setting {0} to obfuscated value. Ignoring change." -msgstr "" - -#: src/metabase/models/setting.clj -msgid "Using value of env var {0}" -msgstr "" - -#: src/metabase/models/user.clj -msgid "Adding User {0} to All Users permissions group..." -msgstr "" - -#: src/metabase/models/user.clj -msgid "Adding User {0} to Admin permissions group..." -msgstr "" - -#: src/metabase/query_processor/middleware/process_userland_query.clj -msgid "Query failure" -msgstr "" - -#: src/metabase/query_processor/middleware/async_wait.clj -msgid "Maximum number of simultaneous queries to allow per connected Database." -msgstr "" - -#: src/metabase/util.clj -msgid "Timed out after {0} milliseconds." -msgstr "" - -#: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:27 -msgid "Misfire Instruction" -msgstr "" - -#: frontend/src/metabase/components/ArchiveModal.jsx:31 -msgid "Archive this?" -msgstr "" - -#: frontend/src/metabase/components/BrowseApp.jsx:244 -msgid "Learn about our data" -msgstr "" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 -msgid "Use DNS SRV when connecting" -msgstr "" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:269 -msgid "Using this option requires that provided host is a FQDN. If connecting to \n" -"an Atlas cluster, you might need to enable this option. If you don't know what this means,\n" -"leave this disabled." -msgstr "" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 -msgid "Automatically run queries when doing simple filtering and summarizing" -msgstr "" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 -msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." -msgstr "" - -#: frontend/src/metabase/containers/Overworld.jsx:247 -msgid "Learn about this database" -msgstr "" - -#: frontend/src/metabase/dashboard/components/ArchiveDashboardModal.jsx:17 -msgid "Archive this dashboard?" -msgstr "" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 -msgid "All results" -msgstr "" - -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 -msgid "Our Analytics" -msgstr "" - -#: frontend/src/metabase/lib/schema_metadata.js:500 -msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." -msgstr "" - -#: frontend/src/metabase/lib/schema_metadata.js:508 -msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." -msgstr "" - -#: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 -msgid "Filter" -msgstr "" - -#: frontend/src/metabase/modes/components/drill/UnderlyingRecordsDrill.jsx:34 -msgid "record" -msgid_plural "records" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 -msgid "Browse Data" -msgstr "" - -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 -msgid "Write SQL" -msgstr "" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 -msgid "Simple question" -msgstr "" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 -msgid "Pick some data, view it, and easily filter, summarize, and visualize it." -msgstr "" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 -msgid "Custom question" -msgstr "" - -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 -msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." -msgstr "" - -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:23 -msgid "Basic Metrics" -msgstr "" - -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 -msgid "Custom…" -msgstr "" - -#: frontend/src/metabase/query_builder/components/DimensionList.jsx:147 -msgid "Add grouping" -msgstr "" - -#: frontend/src/metabase/query_builder/components/LimitPopover.jsx:14 -msgid "Pick a limit" -msgstr "" - -#: frontend/src/metabase/query_builder/components/LimitPopover.jsx:38 -msgid "Show maximum" -msgstr "" - -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 -msgid "Get Preview" -msgstr "" - -#: frontend/src/metabase/query_builder/components/VisualizationResult.jsx:82 -msgid "Back to previous results" -msgstr "" - -#: frontend/src/metabase/query_builder/components/dataref/DetailPane.jsx:21 -msgid "Sample values" -msgstr "" - -#: frontend/src/metabase/query_builder/components/dataref/MainPane.jsx:10 -msgid "Browse the contents of your databases, tables, and columns. Pick a database to get started." -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/Notebook.jsx:40 -msgid "Visualize" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:34 -msgid "Join data" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:41 -msgid "Custom column" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 -msgid "Summarize" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:61 -msgid "Aggregate" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:68 -msgid "Breakout" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/AggregateStep.jsx:18 -msgid "Pick the metric you want to see" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 -msgid "Pick a column to group by" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 -msgid "Pick your starting data" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/FieldsPicker.jsx:43 -msgid "Select None" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/FieldsPicker.jsx:43 -msgid "Select All" -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 -msgid "Pick a table..." -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/LimitStep.jsx:23 -msgid "Enter a limit" -msgstr "" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:159 -msgid "Brackets around a {0} create an optional clause in the template. If \"variable\" is set, then the entire clause is placed into the template. If not, then the entire clause is ignored." -msgstr "" - -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:176 -msgid "When using a Field Filter, the column name should not be included in the SQL. Instead, the variable should be mapped to a field in the side panel." -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:16 -msgid "View the native query" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:17 -msgid "Native query for this question" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:18 -msgid "Convert this question to a native query" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:22 -msgid "SQL for this question" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/NativeQueryButton.jsx:23 -msgid "Convert this question to SQL" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionAlertWidget.jsx:53 -msgid "Get alerts" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:31 -msgid "{0} breakout" -msgid_plural "{0} breakouts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 -msgid "Hide filters" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 -msgid "Show filters" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 -msgid "Started from" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:21 -msgid "{0} row" -msgid_plural "{0} rows" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:29 -msgid "Show all rows" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:30 -msgid "Show {0}" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:35 -msgid "Showing first {0}" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionRowCount.jsx:36 -msgid "Showing {0}" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:34 -msgid "Summarized" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 -msgid "Hide editor" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 -msgid "Show editor" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/AggregationSidebar.jsx:14 -msgid "Pick the metric you'd like to see" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 -msgid "{0} options" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:44 -msgid "Choose a visualization" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:38 -msgid "Filter by" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar.jsx:57 -msgid "Summarize by" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar.jsx:83 -msgid "Group by" -msgstr "" - -#: frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar.jsx:167 -msgid "Add a metric" -msgstr "" - -#: frontend/src/metabase/user/components/UserSettings.jsx:57 -msgid "Profile" -msgstr "" - -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 -msgid "This is usually pretty fast but seems to be taking a while right now." -msgstr "" - -#: frontend/src/metabase/visualizations/visualizations/ComboChart.jsx:16 -msgid "Combo" -msgstr "" - -#: frontend/src/metabase/visualizations/visualizations/RowChart.jsx:13 -msgid "Row" -msgstr "" - -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:22 -msgid "Trend" -msgstr "" - -#: frontend/src/metabase-lib/lib/DimensionOptions.js:129 -msgid "Boolean" -msgstr "" - -#: frontend/src/metabase-lib/lib/queries/structured/Filter.js:59 -msgid "Unknown Segment" -msgstr "" - -#: frontend/src/metabase-lib/lib/queries/structured/Filter.js:68 -msgid "Unknown Filter" -msgstr "" - -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 -msgid "Left outer join" -msgstr "" - -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 -msgid "Right outer join" -msgstr "" - -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 -msgid "Inner join" -msgstr "" - -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 -msgid "Full outer join" -msgstr "" - -#: src/metabase/api/card.clj -msgid "Card results metadata passed in to API is MISSING. Running query to fetch correct metadata." -msgstr "" - -#: src/metabase/api/session.clj -msgid "Problem connecting to LDAP server, will fall back to local authentication" -msgstr "" - -#: src/metabase/api/setup.clj -msgid "Cannot create Database: cannot find driver {0}." -msgstr "" - -#: src/metabase/api/tiles.clj -msgid "Query failed" -msgstr "" - -#: src/metabase/async/util.clj -msgid "Warning: {0} returned `nil`" -msgstr "" - -#: src/metabase/async/util.clj -msgid "Unexpected error writing result to output channel: already closed" -msgstr "" - -#: src/metabase/async/util.clj -msgid "Unexpected error writing exception to output channel: already closed" -msgstr "" - -#: src/metabase/async/util.clj -msgid "Request canceled, canceling future." -msgstr "" - -#: src/metabase/cmd/load_from_h2.clj -msgid "Metabase can only transfer data from H2 to Postgres or MySQL/MariaDB." -msgstr "" - -#: src/metabase/db.clj -msgid "WARNING: Using Metabase with an H2 application database is not recommended for production deployments." -msgstr "" - -#: src/metabase/db.clj -msgid "Application database setup" -msgstr "" - -#: src/metabase/driver.clj -msgid "Could not find {0} driver." -msgstr "" - -#: src/metabase/driver.clj -msgid "Abstract drivers cannot derive from concrete parent drivers." -msgstr "" - -#: src/metabase/driver/mysql.clj -msgid "You may need to add 'trustServerCertificate=true' to the additional connection options to connect with SSL." -msgstr "" - -#: src/metabase/driver/sql/util.clj -msgid "Don't know how to alias {0}, expected an Identifer." -msgstr "" - -#: src/metabase/driver/sql_jdbc/execute.clj -msgid "Client closed connection, canceling query" -msgstr "" - -#: src/metabase/integrations/ldap.clj -msgid "{0} is not a valid DN." -msgstr "" - -#: src/metabase/middleware/log.clj -msgid "Error logging API request" -msgstr "" - -#: src/metabase/middleware/misc.clj -msgid "Failed to set site-url" -msgstr "" - -#: src/metabase/models/database.clj -msgid "Error destroying thread pool for DB." -msgstr "" - -#: src/metabase/models/humanization.clj -msgid "Updating display name for {0} ''{1}'': ''{2}'' -> ''{3}''" -msgstr "" - -#: src/metabase/models/humanization.clj -msgid "Invalid humanization strategy ''{0}''. Valid strategies are: {1}" -msgstr "" - -#. now rehumanize all the Tables and Fields using the new strategy. -#. TODO: Should we do this in a background thread because it is potentially slow? -#: src/metabase/models/humanization.clj -msgid "Chaning Table & Field names humanization strategy from ''{0}'' to ''{1}''" -msgstr "" - -#: src/metabase/models/task_history.clj src/metabase/sync/util.clj -msgid "Error saving task history" -msgstr "" - -#: src/metabase/plugins.clj -msgid "spark-deps.jar is no longer needed by Metabase 0.32.0+. You can delete it from the plugins directory." -msgstr "" - -#: src/metabase/plugins/classloader.clj -msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" -msgstr "" - -#: src/metabase/plugins/files.clj -msgid "Failed to copy file" -msgstr "" - -#: src/metabase/public_settings.clj -msgid "Invalid site URL: {0}" -msgstr "" - -#: src/metabase/public_settings.clj -msgid "site-url is invalid; returning nil for now. Will be reset on next request." -msgstr "" - -#: src/metabase/pulse/render/body.clj -msgid "More results have been included as a file attachment" -msgstr "" - -#: src/metabase/pulse/render/body.clj -msgid "This question has been included as a file attachment" -msgstr "" - -#: src/metabase/pulse/render/body.clj -msgid "We were unable to display this Pulse." -msgstr "" - -#: src/metabase/pulse/render/body.clj -msgid "Please view this card in Metabase." -msgstr "" - -#: src/metabase/pulse/render/body.clj -msgid "An error occurred while displaying this card." -msgstr "" - -#: src/metabase/query_processor.clj -msgid "Can only determine expected columns for MBQL queries." -msgstr "" - -#: src/metabase/query_processor.clj -msgid "No columns returned." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_clauses.clj -msgid "Warining: cannot determine fields for an explicit `source-query` unless you also include `source-metadata`." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "Cannot resolve {0}: Field does not exist, or its Table belongs to a different Database." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "Cannot resolve :field-literal inside :fk-> unless inside join with explicit :alias." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "Cannot find Table ID for {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "No matching info found." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "Could not resolve {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "Invalid fk-> clause: nowhere to add corresponding join." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_joins.clj -msgid "{0} driver does not support foreign keys." -msgstr "" - -#: src/metabase/query_processor/middleware/add_source_metadata.clj -msgid "Cannot infer `:source-metadata` for source query with native source query without source metadata." -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Query processor error: number of columns returned by driver does not match results." -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Expected {0} columns, but first row of resuls has {1} columns." -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "No expression named {0} found. Found: {1}" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Distinct values of {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Average of {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Sum of {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "SD of {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Min of {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Max of {0}" -msgstr "" - -#. until we have a way to generate good names for filters we'll just have to say 'matching condition' for now -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Sum of {0} matching condition" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Share of rows matching condition" -msgstr "" - -#: src/metabase/query_processor/middleware/annotate.clj -msgid "Count of rows matching condition" -msgstr "" - -#: src/metabase/query_processor/middleware/async.clj -msgid "Request already canceled, will not run synchronous QP code." -msgstr "" - -#: src/metabase/query_processor/middleware/async.clj -msgid "Unexpectedly got `nil` Query Processor response." -msgstr "" - -#: src/metabase/query_processor/middleware/async.clj -msgid "Got InterruptedException. Canceling query." -msgstr "" - -#: src/metabase/query_processor/middleware/async.clj -msgid "Unhandled exception, exepected `catch-exceptions` middleware to handle it." -msgstr "" - -#: src/metabase/query_processor/middleware/async.clj -msgid "Query timed out after %s" -msgstr "" - -#: src/metabase/query_processor/middleware/async_wait.clj -msgid "Creating new query thread pool for Database {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/async_wait.clj -msgid "Destroying query thread pool for Database {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/async_wait.clj -msgid "Request canceled, canceling pending query" -msgstr "" - -#: src/metabase/query_processor/middleware/binning.clj -msgid "Cannot update binned field: query is missing source-metadata" -msgstr "" - -#: src/metabase/query_processor/middleware/binning.clj -msgid "Cannot update binned field: could not find matching source metadata for Field ''{0}''" -msgstr "" - -#: src/metabase/query_processor/middleware/cache.clj -msgid "Using query processor cache backend: {0}" -msgstr "" - -#: src/metabase/query_processor/middleware/expand_macros.clj -msgid "Invalid metric: {0} reason: {1}" -msgstr "" - -#: src/metabase/query_processor/middleware/process_userland_query.clj -msgid "Unknown error" -msgstr "" - -#: src/metabase/query_processor/middleware/process_userland_query.clj -msgid "Unexpected nil response from query processor." -msgstr "" - -#: src/metabase/query_processor/middleware/process_userland_query.clj -msgid "Query canceled" -msgstr "" - -#: src/metabase/query_processor/middleware/resolve_driver.clj -msgid "Unable to resolve driver for query: missing or invalid `:database` ID." -msgstr "" - -#: src/metabase/query_processor/middleware/resolve_driver.clj -msgid "Unable to resolve driver for query: Database {0} does not exist." -msgstr "" - -#: src/metabase/query_processor/middleware/resolve_joins.clj -msgid "Cannot use :fields :all in join against source query unless it has :source-metadata." -msgstr "" - -#: src/metabase/query_processor/middleware/resolve_joins.clj -msgid "Bad :joined-field clause: join with alias ''{0}'' does not exist. Found: {1}" -msgstr "" - -#: src/metabase/query_processor/middleware/resolve_source_table.clj -msgid "Invalid :source-table ''{0}'': should be resolved to a Table ID by now." -msgstr "" - -#: src/metabase/query_processor/store.clj -msgid "Cannot store Tables or Fields before Database is stored." -msgstr "" - -#: src/metabase/query_processor/store.clj -msgid "Attempting to fetch second Database. Queries can only reference one Database." -msgstr "" - -#: src/metabase/query_processor/store.clj -msgid "Failed to fetch Table {0}: Table does not exist, or belongs to a different Database." -msgstr "" - -#: src/metabase/query_processor/store.clj -msgid "Failed to fetch Field {0}: Field does not exist, or belongs to a different Database." -msgstr "" - -#: src/metabase/routes/index.clj -msgid "Failed to load template ''{0}''. Did you remember to build the Metabase frontend?" -msgstr "" - -#: src/metabase/sample_data.clj -msgid "Sample dataset DB file ''{0}'' cannot be found." -msgstr "" - -#: src/metabase/sample_data.clj -msgid "Loading sample dataset..." -msgstr "" - -#: src/metabase/sample_data.clj -msgid "Failed to load sample dataset" -msgstr "" - -#: src/metabase/sync/sync_metadata/tables.clj -msgid "Found new tables:" -msgstr "" - -#: src/metabase/sync/sync_metadata/tables.clj -msgid "Marking tables as inactive:" -msgstr "" - -#: src/metabase/sync/sync_metadata/tables.clj -msgid "Updating description for tables:" -msgstr "" - -#: src/metabase/task.clj -msgid "Rescheduling job {0}" -msgstr "" - -#: src/metabase/task.clj -msgid "Error rescheduling job" -msgstr "" - -#: src/metabase/task/send_pulses.clj -msgid "Starting Pulse Execution: {0}" -msgstr "" - -#: src/metabase/task/send_pulses.clj -msgid "Finished Pulse Execution: {0}" -msgstr "" - -#: src/metabase/task/sync_databases.clj -msgid "Failed to schedule tasks for Database {0}" -msgstr "" - -#: src/metabase/util/schema.clj -msgid "All elements must be distinct." -msgstr "" - -#: -msgctxt "Modal for selecting columns in source data or when doing a join." -msgid "Pick the columns you want to include" -msgstr "" - -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 -msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." -msgstr "" - -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:97 -msgid "Change join type" -msgstr "" - -#: src/metabase/driver/sql/util.clj -msgid "Don't know how to alias {0}, expected an Identifier." -msgstr "" - -#: src/metabase/integrations/common.clj -msgid "Error adding User {0} to Group {1}" -msgstr "" - -#. now rehumanize all the Tables and Fields using the new strategy. -#. TODO: Should we do this in a background thread because it is potentially slow? -#: src/metabase/models/humanization.clj -msgid "Changing Table & Field names humanization strategy from ''{0}'' to ''{1}''" -msgstr "" - -#: src/metabase/query_processor.clj -msgid "Infinite loop detected: recursively preprocessed query {0} times." -msgstr "" - -#: src/metabase/query_processor/middleware/add_implicit_clauses.clj -msgid "Warning: cannot determine fields for an explicit `source-query` unless you also include `source-metadata`." -msgstr "" - -#: src/metabase/query_processor/middleware/add_source_metadata.clj -msgid "Error determining expected columns for query" -msgstr "" - -#: src/metabase/query_processor/middleware/async.clj -msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." -msgstr "" - diff --git a/locales/vi.po b/locales/vi.po index 43fbdb00626a0fa2ead8bf9d784ff66e48f46d4c..f9152cb7db66d048ea214370c1d8df7298993c74 100644 --- a/locales/vi.po +++ b/locales/vi.po @@ -29,19 +29,18 @@ msgid "Select a database type" msgstr "Chá»n kiểu cÆ¡ sở dữ liệu" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "LÆ°u" @@ -102,7 +101,7 @@ msgstr "Không bao giá», tôi sẽ là m thủ công nếu cần thiết" #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "Äang lÆ°u..." @@ -139,16 +138,16 @@ msgstr "trong há»™p thoại nà y:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -156,20 +155,20 @@ msgstr "trong há»™p thoại nà y:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "Huá»·" @@ -181,33 +180,33 @@ msgstr "Huá»·" msgid "Delete" msgstr "Xoá" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "Các cÆ¡ sở dữ liệu" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "Thêm cÆ¡ sở dữ liệu" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "Kết nối" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "Lên lịch" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -217,18 +216,18 @@ msgstr "Lên lịch" msgid "Save changes" msgstr "LÆ°u thay đổi" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "Các thao tác" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "Äồng bá»™ cấu trúc cÆ¡ sở dữ liệu ngay bây giá»" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -236,41 +235,41 @@ msgstr "Äồng bá»™ cấu trúc cÆ¡ sở dữ liệu ngay bây giá»" msgid "Starting…" msgstr "Äang bắt đầu..." -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "Äồng bá»™ thất bại" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "Äã kÃch hoạt đồng bá»™!" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "Quét lại các trÆ°á»ng giá trị ngay bây giá»" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "Bắt đầu quét thất bại" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "Äã kÃch hoạt quét" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "Khu vá»±c nguy hiểm" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "Huá»· những trÆ°á»ng giá trị đã lÆ°u" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "Xoá cÆ¡ sở dữ liệu nà y" @@ -279,18 +278,17 @@ msgid "Add database" msgstr "Thêm cÆ¡ sở dữ liệu" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "Tên" @@ -310,23 +308,24 @@ msgstr "Äang tải..." msgid "Bring the sample dataset back" msgstr "Khôi phục lại dữ liệu mẫu" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "Không thể kết nối tá»›i cÆ¡ sở dữ liệu. Xin hãy kiểm tra chi tiết kết nối" -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "Tạo thà nh công!" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "LÆ°u thà nh công!" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "Sá»a" @@ -366,9 +365,9 @@ msgstr "Thất bại" msgid "Success" msgstr "Thà nh công" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "Xem trÆ°á»›c" @@ -388,7 +387,7 @@ msgstr "Không có kiểu đặc biệt" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "Khác" @@ -417,7 +416,7 @@ msgstr "Cá»™t" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "Hiển thị" @@ -496,35 +495,34 @@ msgstr "Tìm bảng" msgid "Schemas" msgstr "Các schema" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "Số liệu" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "Thêm má»™t số liệu" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "Äịnh nghÄ©a" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "Tạo số liệu để thêm chúng và o danh sách thả xuống Chế Ä‘á»™ xem trong trình tạo truy vấn" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -532,11 +530,11 @@ msgstr "Tạo số liệu để thêm chúng và o danh sách thả xuống Chế msgid "Segments" msgstr "Phân khúc" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "Thêm má»™t phân khúc" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "Tạo các phân Ä‘oạn để thêm chúng và o danh sách thả xuống Bá»™ lá»c trong trình tạo truy vấn " @@ -582,23 +580,23 @@ msgstr " Lịch sá»" msgid "Revision History for" msgstr "Lịch sá» thay đổi cho" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} - Cà i đặt trÆ°á»ng" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "TrÆ°á»ng nà y sẽ xuất hiện trên khắp Metabase" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "Lá»c trên trÆ°á»ng nà y" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "Khi trÆ°á»ng nà y được sá» dụng trong bá»™ lá»c, má»i ngÆ°á»i nên sá» dụng gì để nháºp giá trị há» muốn lá»c?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "ChÆ°a có mô tả cho trÆ°á»ng nà y" @@ -639,11 +637,11 @@ msgstr "TrÆ°á»ng hiện tại không phải khoá ngoà i hoặc thiếu bảng msgid "The selected field isn't a foreign key" msgstr "TrÆ°á»ng đã chá»n không phải khoá ngoà i" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "Các giá trị hiển thị" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "Chá»n hiển thị giá trị gốc từ cÆ¡ sở dữ liệu hoặc hiển thị trÆ°á»ng nà y liên quan hoặc thông tin tùy chỉnh." @@ -663,12 +661,12 @@ msgstr "Mẹo:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "Bạn có thể muốn cáºp nháºt tên trÆ°á»ng để đảm bảo nó vẫn có ý nghÄ©a dá»±a trên các lá»±a chá»n ánh xạ lại của bạn." -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "Giá trị trÆ°á»ng lÆ°u trữ" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabase có thể quét các giá trị cho trÆ°á»ng nà y để báºt các bá»™ lá»c há»™p kiểm trong bảng Ä‘iá»u khiển và câu há»i." @@ -695,82 +693,82 @@ msgstr "Hủy kÃch hoạt!" msgid "Select any table to see its schema and add or edit metadata." msgstr "Chá»n bất kỳ bảng nà o để xem lược đồ của nó và thêm hoặc chỉnh sá»a siêu dữ liệu." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "Tên là bắt buá»™c" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "Mô tả là bắt buá»™c" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "Thông Ä‘iệp sá»a đổi là bắt buá»™c" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "Tổng hợp là cần thiết" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "Chỉnh sá»a số liệu của bạn" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "Tạo số liệu của bạn" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "Thay đổi số liệu của bạn và để lại lá»i giải thÃch" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "Bạn có thể tạo số liệu đã lÆ°u để thêm tùy chá»n số liệu được đặt tên và o bảng nà y. Số liệu đã lÆ°u bao gồm loại tổng hợp, trÆ°á»ng tổng hợp và tùy chá»n bất kỳ bá»™ lá»c nà o bạn thêm. Và dụ: bạn có thể sá» dụng Ä‘iá»u nà y để tạo má»™t cái gì đó giống nhÆ° cách tÃnh chÃnh thức \\ \"Giá trung bình \" cho bảng ÄÆ¡n hà ng." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "Kết quả: " -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "Äặt tên số liệu của bạn" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "Äặt tên số liệu của bạn để giúp ngÆ°á»i khác tìm thấy nó" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "Má»™t và i mô tả không quá dà i" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "Mô tả số liệu của bạn" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "Cho số liệu của bạn má»™t lá»i mô tả để giúp ngÆ°á»i khác hiểu nó là gì" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "Äây là má»™t nÆ¡i tốt để cụ thể hÆ¡n vá» các quy tắc số liệu Ãt rõ rà ng hÆ¡n" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "Lý do thay đổi" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "Äể lại má»™t ghi chú để giải thÃch những thay đổi bạn đã thá»±c hiện và tại sao chúng được yêu cầu." -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "Äiá»u nà y sẽ hiển thị trong lịch sá» sá»a đổi cho số liệu nà y để giúp má»i ngÆ°á»i nhá»› tại sao má»i thứ thay đổi" @@ -786,7 +784,7 @@ msgstr "Chỉnh sá»a phân khúc của bạn" msgid "Create Your Segment" msgstr "Tạo phân khúc của bạn" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "Thay đổi phân khúc của bạn và để lại má»™t ghi chú giải thÃch." @@ -794,37 +792,37 @@ msgstr "Thay đổi phân khúc của bạn và để lại má»™t ghi chú giả msgid "Select and add filters to create your new segment for the {0} table" msgstr "Chá»n và thêm các bá»™ lá»c để tạo phân khúc má»›i của bạn cho bảng {0}" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "Äặt tên phân khúc của bạn" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "Äặt tên cho phân khúc của bạn để giúp ngÆ°á»i khác tìm thấy nó" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "Mô tả phân khúc của bạn" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "Cho phân khúc của bạn má»™t lá»i mô tả để giúp ngÆ°á»i khác hiểu nó là gì" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "Äây là má»™t nÆ¡i tốt để cụ thể hÆ¡n vá» các quy tắc phân khúc Ãt rõ rà ng hÆ¡n" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "Äiá»u nà y sẽ hiển thị trong lịch sá» sá»a đổi cho phân khúc nà y để giúp má»i ngÆ°á»i nhá»› tại sao má»i thứ thay đổi" #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "Cà i đặt" @@ -838,33 +836,29 @@ msgstr "Quét lại bảng nà y" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "Thêm" #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "Không phải là má»™t địa chỉ email được định dạng hợp lệ" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "Tên" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "Há»" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "Äịa chỉ email" @@ -900,7 +894,7 @@ msgstr "Các thà nh viên" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "Email" @@ -909,8 +903,8 @@ msgid "A group is only as good as its members." msgstr "Má»™t nhóm chỉ tốt nhÆ° các thà nh viên của nó." #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "Quản trị viên" @@ -970,11 +964,11 @@ msgstr "Xoá nhóm" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "Xong" @@ -983,9 +977,9 @@ msgid "Group name" msgstr "Tên nhóm" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "Các nhóm" @@ -1014,10 +1008,10 @@ msgstr "Äặt lại máºt khẩu" msgid "Deactivate" msgstr "Huá»· kÃch hoạt" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "Má»i ngÆ°á»i" @@ -1056,7 +1050,7 @@ msgstr "Chúng tôi đã gá»i má»™t thÆ° má»i tá»›i {0} kèm hÆ°á»›ng dẫn Ä‘ msgid "We've re-sent {0}'s invite" msgstr "Chúng tôi đã gá»i lại thÆ° má»i cho {0}" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "Äồng ý" @@ -1088,7 +1082,7 @@ msgstr "Há» sẽ có thể đăng nháºp lại được, và sẽ trở vá» nh msgid "Reset {0}'s password?" msgstr "Äặt lại máºt khẩu của {0}?" -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "Äặt lại" @@ -1127,19 +1121,19 @@ msgstr "Thêm ai đó" msgid "Last Login" msgstr "Äăng nháºp cuối" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "Äăng ký qua Google" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "Äăng ký qua LDAP" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "KÃch hoạt lại tà i khoản nà y" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "Không bao giá»" @@ -1180,7 +1174,7 @@ msgid " native queries for " msgstr "truy vấn gốc cho" #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "Các quyá»n" @@ -1237,115 +1231,115 @@ msgstr "MetaBot là má»™t con bot của Metabase trên Slack. Bạn có thể ch msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "Nhóm \\ \"{0} \" có thể có quyá»n truy cáºp và o má»™t nhóm {1} khác vá»›i nhóm nà y, nhóm nà y có thể cung cấp cho nhóm nà y quyá»n truy cáºp bổ sung và o má»™t số {2}." -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "Nhóm \\ \"{0} \" có mức truy cáºp cao hÆ¡n nhóm nà y, sẽ ghi đè cà i đặt nà y. Bạn nên giá»›i hạn hoặc thu hồi quyá»n truy cáºp của nhóm \\ \"{1} \" và o mục nà y." -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "Giá»›i hạn" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "Thu hồi" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "truy cáºp mặc dù \\ \"{0} \" có quyá»n truy cáºp lá»›n hÆ¡n?" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "Giá»›i hạn truy cáºp" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "Thu hồi quyá»n truy cáºp" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "Thay đổi quyá»n truy cáºp tá»›i cÆ¡ sở dữ liệu nà y thà nh giá»›i hạn?" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "Thay đổi" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "Cho phép viết truy vấn thuần tuý" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "Äiá»u nà y cÅ©ng sẽ thay đổi quyá»n truy cáºp dữ liệu của nhóm nà y thà nh Không giá»›i hạn đối vá»›i cÆ¡ sở dữ liệu nà y." -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "Cho phép" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "Thu hồi quyá»n truy cáºp tá»›i tất cả cá bảng?" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "Äiá»u nà y cÅ©ng sẽ thu hồi quyá»n truy cáºp của nhóm nà y và o các truy vấn thô cho cÆ¡ sở dữ liệu nà y." -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "Cấp quyá»n truy cáºp không hạn chế" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "Truy cáºp không hạn chế" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "Giá»›i hạn truy cáºp" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "Không truy cáºp" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "Viết truy vấn thuần tuý" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "Có thể viết các truy vấn thuần tuý" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "Bá»™ sÆ°u táºp" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "Xem bá»™ sÆ°u táºp" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "Truy cáºp dữ liệu" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "Xem bảng" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "Truy vấn SQL" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "Xem schema" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "Dữ liệu mẫu" @@ -1488,8 +1482,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "Äã có Metabase {0}. Bạn Ä‘ang sá» dụng {1}" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "Cáºp nháºt" @@ -1512,18 +1506,20 @@ msgstr "Xoá bản đồ tuỳ chỉnh" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "Xoá" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "Chá»n..." @@ -1724,7 +1720,7 @@ msgstr "Cà i đặt {0} không xác định" msgid "Setup" msgstr "Thiết láºp" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "Tổng quan" @@ -1851,7 +1847,7 @@ msgid "Username or DN" msgstr "Tên tà i khoản hoặc tên miá»n" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "Máºt khẩu" @@ -2014,31 +2010,31 @@ msgstr "Quên máºt khẩu" msgid "The email you use for your Metabase account" msgstr "Äịa chỉ email sá» dụng cho tà i khoản Metabase" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "Gá»i email khôi phục máºt khẩu" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "Hãy kiểm tra email hÆ°á»›ng dẫn cách đặt lại máºt khẩu." -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "Äăng nháºp và o Metabase" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "HOẶC" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "Tên tà i khoản hoặc địa chỉ email" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "Äăng nháºp" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "Có vẻ nhÆ° tôi đã quên máºt khẩu của mình" @@ -2056,7 +2052,7 @@ msgid "For security reasons, password reset links expire after a little while. I msgstr "Vì lý do bảo máºt, liên kết đặt lại máºt khẩu sẽ hết hạn trong má»™t khoảng thá»i gian. Nếu bạn vẫn cần đặt lại máºt khẩu, bạn có thể {0}" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "Máºt khẩu má»›i" @@ -2069,38 +2065,38 @@ msgid "Create a new password" msgstr "Tạo máºt khẩu má»›i" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "Hãy chắc rằng nó bảo máºt nhÆ° hÆ°á»›ng dẫn bên trên" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "Xác nháºn máºt khẩu má»›i" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "Hãy đảm bảo rằng nó khá»›p vá»›i giá trị bạn vừa nháºp" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "Máºt khẩu của bạn đã được đặt lại." -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "Äăng nháºp vá»›i máºt khẩu má»›i" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "LÆ°u thất bại" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2119,22 +2115,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "Bảng Ä‘iá»u khiển, bá»™ sÆ°u táºp và xung trong bá»™ sÆ°u táºp nà y cÅ©ng sẽ được lÆ°u trữ." #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "LÆ°u trữ" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "{0} nà y đã được lÆ°u trữ" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "Xem lÆ°u trữ" @@ -2144,17 +2141,19 @@ msgstr "Bá» lÆ°u trữ {0} nà y" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "Dữ liệu của chúng ta" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "X-ray bảng nà y" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "Há»c há»i vá» bảng nà y" @@ -2249,43 +2248,43 @@ msgstr "Các ghim" msgid "Drag something here to pin it to the top" msgstr "Kéo thứ gì đó và o đây để ghim nó lên đầu" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "Các bá»™ sÆ°u táºp" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "Kéo và o đây để bá» ghim" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "{0} mục đã chá»n" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "Di chuyển {0} mục" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "Di chuyển \"{0}\"?" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "Di chuyển" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "Chỉnh sá»a bá»™ sÆ°u táºp nà y" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "LÆ°u trữ bá»™ sÆ°u táºp nà y" @@ -2302,11 +2301,11 @@ msgstr "Bá»™ sÆ°u táºp má»›i" msgid "Copied!" msgstr "Äã sao chép!" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "Sá» dụng má»™t SSH-tunnel cho các kết nối tá»›i cÆ¡ sở dữ liệu nà y" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." @@ -2314,7 +2313,7 @@ msgstr "Má»™t và i cà i đặt cÆ¡ sở dữ liệu chỉ có thể truy cáºp b "Lá»±a chá»n nà y cung cấp má»™t tầng bảo máºt khi VPN không khả dụng.\n" "Báºt tÃnh năng nà y sẽ là m cháºm hết nối hÆ¡n là kết nối trá»±c tiếp." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "Äây là má»™t cÆ¡ sở dữ liệu lá»›n, váºy nên hãy để tôi chá»n khi nà o thì Metabase đồng bá»™ và quét" @@ -2323,47 +2322,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail "If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." msgstr "Nếu bạn có cÆ¡ sở dữ liệu lá»›n, chúng tôi khuyên bạn nên báºt tÃnh năng nà y và xem xét thá»i Ä‘iểm và tần suất quét giá trị trÆ°á»ng xảy ra." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0} để sinh Client ID và Client Secret cho dá»± án của bạn." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "Nhấn và o đây" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "Chá»n \"Khác\" cho kiểu ứng dụng. Äặt tên tuỳ ý bạn thÃch" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0} để lấy mã xác thá»±c" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "vá»›i quyá»n của Google Drive" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "Äể sá» dụng Metabase vá»›i dữ liệu nà y bạn phải báºt tÃnh năng API access trên giao diện Google Developers Console." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "{0} để Ä‘i tá»›i bảng Ä‘iá»u khiển nếu bạn chÆ°a là m thế." -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "Bạn muốn tham khảo cÆ¡ sở dữ liệu nà y nhÆ° thế nà o?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "Tiếp theo" @@ -2382,7 +2381,7 @@ msgstr "Di chuyển cái nà y" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "Sá»a câu há»i nà y" @@ -2395,7 +2394,7 @@ msgstr "Kiểu hà nh Ä‘á»™ng" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "Xem lịch sá» thay đổi" @@ -2411,7 +2410,7 @@ msgstr "Hà nh Ä‘á»™ng lÆ°u trữ" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "Thêm và o bảng tổng quan" @@ -2422,7 +2421,7 @@ msgstr "Tải xuống kết quả" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "Chia sẻ và nhúng" @@ -2468,65 +2467,63 @@ msgstr "Dá»±a và o schema" msgid "A look at your" msgstr "Nhìn và o cái của bạn" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "Tìm kiếm trong danh sách" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "Tìm kiếm theo {0}" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr " hoặc nháºp và o má»™t ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "Nháºp và o má»™t ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "Nháºp và o má»™t số" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "Nháºp và o và i dòng chữ" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "Không có {0} nà o khá»›p." -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "Bao gồm má»i tùy chá»n trong bá»™ lá»c của bạn có thể sẽ không là m được nhiá»u" -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "Có gì đó sai" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "Äã gặp lá»—i. Bạn có thể thá» là m má»›i lại trang, hoặc trở vá» trang trÆ°á»›c." -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "ChÆ°a có mô tả" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "{0} má»›i" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "Äược há»i bởi {0}" @@ -2547,8 +2544,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "Khôi phục vá» phiên bản trÆ°á»›c đó và {0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "Lịch sá» thay đổi" @@ -2593,7 +2590,7 @@ msgid "Questions" msgstr "Các câu há»i" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "Xung" @@ -2630,7 +2627,7 @@ msgstr "Äăng ký" msgid "You're subscribed. Thanks for using Metabase!" msgstr "Bạn đã đăng ký. Cảm Æ¡n đã sá» dụng Metabase!" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "Chúng ta hÆ¡i lạc lối..." @@ -2639,14 +2636,14 @@ msgid "Temporary Password" msgstr "Máºt khẩu tạm thá»i" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "Ẩn" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "Hiện" @@ -2748,7 +2745,7 @@ msgstr "Äã chá»n" msgid "Nothing to select" msgstr "Không có gì để chá»n" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "Xin lá»—i, bạn không có quyá»n xem." @@ -2756,8 +2753,8 @@ msgstr "Xin lá»—i, bạn không có quyá»n xem." msgid "Unknown error encountered" msgstr "Lá»—i không xác định" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "Tạo" @@ -2765,7 +2762,6 @@ msgstr "Tạo" msgid "Create dashboard" msgstr "Tạo trang tổng quan" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "Bảng" @@ -2790,12 +2786,11 @@ msgstr "Thá» chỉnh sá»a lá»c để tìm những gì bạn Ä‘ang tìm kiếm msgid "View by" msgstr "Xem bởi" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "của" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "Äừng nói vá»›i ai, nhÆ°ng mà bạn mà ngÆ°á»i tôi yêu thÃch." @@ -2803,19 +2798,19 @@ msgstr "Äừng nói vá»›i ai, nhÆ°ng mà bạn mà ngÆ°á»i tôi yêu thÃch." msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "Má»™t khi bạn kết nối dữ liệu của mình, Tôi có thể cho bạn má»™t và i khám phá tá»± Ä‘á»™ng gá»i là x-rays. Äây là má»™t và i và dụ vá»›i mẫu dữ liệu." -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "Bắt đầu ở đây" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "Các phân tÃch của chúng ta" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "Duyệt tất cả" @@ -2827,44 +2822,45 @@ msgstr "Thay thế hoặc lÆ°u má»›i?" msgid "Replace original question, \"{0}\"" msgstr "Thay thế câu há»i gốc, \"{0}\"" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "LÆ°u ra câu há»i má»›i" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "Äầu tiên, hãy lÆ°u câu há»i của bạn" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "LÆ°u câu há»i" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "Tên thẻ của bạn là gì?" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "Mô tả" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "Nó không bắt buá»™c, nhÆ°ng có Ãch đó" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "Cái nà y nên Ä‘i và o bá»™ sÆ°u táºp nà o?" @@ -2905,11 +2901,11 @@ msgstr "LÆ°u trữ bảng Ä‘iá»u khiển" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "Äảm bảo thá»±c hiện lá»±a chá»n cho từng chuá»—i hoặc bá»™ lá»c sẽ không hoạt Ä‘á»™ng trên thẻ nà y." -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "Bảng Ä‘iá»u khiển nà y trống" -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "Thêm má»™t câu há»i để bắt đầu khiến nó hữu Ãch" @@ -2929,50 +2925,50 @@ msgstr "Thoát toà n mà n hình" msgid "Enter fullscreen" msgstr "Và o toà n mà n hình" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "Äang lÆ°u..." -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "Thêm má»™t câu há»i" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "Thêm má»™t câu há»i và o bảng Ä‘iá»u khiển nà y" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "Thêm má»™t bá»™ lá»c" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "Thông số" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "Thêm má»™t há»™p văn bản" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "Di chuyển bảng Ä‘iá»u khiển" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "Chỉnh sá»a bảng Ä‘iá»u khiển" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "Chỉnh sá»a bố cục bảng Ä‘iá»u khiển" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "Bạn Ä‘ang chỉnh sá»a bảng Ä‘iá»u khiển" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "Chá»n trÆ°á»ng được lá»c cho má»—i thẻ" @@ -3023,11 +3019,11 @@ msgstr "30 phút" msgid "60 minutes" msgstr "60 phút" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "Tá»± Ä‘á»™ng là m má»›i" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "Là m má»›i trong" @@ -3039,7 +3035,7 @@ msgstr "Bá» câu há»i nà y?" msgid "Your dashboard was saved" msgstr "Bảng Ä‘iá»u khiển của bạn đã được lÆ°u" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "Xem nó" @@ -3126,10 +3122,9 @@ msgstr "Äã loại bá» má»™t câu há»i từ bảng Ä‘iá»u khiển - " msgid "received the latest data from" msgstr "Äã nháºn dữ liệu má»›i nhất từ" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "Không biết" @@ -3246,7 +3241,7 @@ msgstr "Xem tất cả" msgid "Recently Viewed" msgstr "Xem gần đây" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "Bạn không xem bảng Ä‘iá»u khiển hay câu há»i nà o gần đây" @@ -3260,11 +3255,11 @@ msgid "Unarchive" msgstr "Bá» lÆ°u trữ" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "Hoạt Ä‘á»™ng" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "Kết quả cho \"{0}\"" @@ -3326,6 +3321,9 @@ msgstr "URL ảnh đại diện" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "Chung" @@ -3368,8 +3366,8 @@ msgstr "Kinh Ä‘á»™" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "Số" @@ -3415,93 +3413,93 @@ msgstr "Thá»i gian tạo" msgid "Creation date" msgstr "Ngà y tạo" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "Sản phẩm" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "NgÆ°á»i dùng" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "Nguồn" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "Giá" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "Dấu thá»i gian tham gia" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "Thá»i gian tham gia" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "Ngà y tham gia" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "Chia sẻ" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "Chủ sở hữu" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "Công ty" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "Theo dõi" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "Äiểm" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "Tiêu Ä‘á»" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "Bình luáºn" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "Chi phÃ" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "Biên lãi gá»™p" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "Sinh nháºt" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "Há»™p tìm kiếm" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "Danh sách tất cả các giá trị" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "Há»™p đầu và o trÆ¡n" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "Má»i nÆ¡i" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "Cà i đặt mặc định. TrÆ°á»ng nà y sẽ được hiển thị bình thÆ°á»ng trong bảng và biểu đồ." @@ -3509,7 +3507,7 @@ msgstr "Cà i đặt mặc định. TrÆ°á»ng nà y sẽ được hiển thị bì msgid "Only in Detail Views" msgstr "Chỉ trong chế Ä‘á»™ xem chi tiết" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "TrÆ°á»ng nà y sẽ chỉ được hiển thị khi xem chi tiết của má»™t bản ghi. Sá» dụng thông tin nà y cho thông tin dà i hoặc không hữu Ãch trong bảng hoặc biểu đồ." @@ -3523,7 +3521,8 @@ msgstr "CÆ¡ sở dữ liệu tÃch lÅ©y sẽ không bao giá» lấy lại trÆ° #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3538,8 +3537,9 @@ msgid "CumulativeCount" msgstr "Số tÃch lÅ©y" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "Tổng" @@ -3548,7 +3548,7 @@ msgid "CumulativeSum" msgstr "Tổng tÃch lÅ©y" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "Phân biệt" @@ -3557,25 +3557,28 @@ msgid "StandardDeviation" msgstr "Äá»™ lệch chuẩn" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "Trung bình" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "Nhá» nhất" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "Lá»›n nhất" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "Lá»—i lexing được phát hiệ" @@ -3623,12 +3626,13 @@ msgid "What do you want to find out?" msgstr "Bạn muốn tìm cái gì?" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "Dữ liệu gốc" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "Số tÃch lÅ©y" @@ -3672,174 +3676,174 @@ msgstr "Äược lá»c bởi" msgid "Sorted by " msgstr "Äược sắp xếp bởi" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "Äúng" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "Sai" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "Chá»n trÆ°á»ng kinh Ä‘á»™" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "Nháºp vÄ© Ä‘á»™ cao hÆ¡n" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "Nháºp kinh Ä‘á»™ trái" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "Nháºp vÄ© Ä‘á»™ thấp hÆ¡n" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "Nháºp kinh Ä‘á»™ phải" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "Là " -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "Không là " -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "Trống" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "Không trống" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "Bằng" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "Không bằng" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "Lá»›n hÆ¡n" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "Ãt hÆ¡n" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "Giữa" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "Lá»›n hÆ¡n hoặc bằng" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "Ãt hÆ¡n hoặc bằng" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "Bao gồm" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "Không bao gồm" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "Bắt đầu vá»›i" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "Kết thúc vá»›i" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "TrÆ°á»›c" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "Sau" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "Bên trong" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "Chỉ cần má»™t bảng vá»›i các hà ng trong câu trả lá»i, không có thao tác bổ sung." -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "Äếm số hà ng" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "Tổng số dòng trong câu trả lá»i" -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "Tổng của ..." -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "Tổng tất cả giá trị của má»™t cá»™t" -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "Trung bình của..." -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "Trung bình tất cả giá trị của má»™t cá»™t" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "Số lượng giá trị riêng biệt của ..." -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "Số giá trị duy nhất của má»™t cá»™t trong số tất cả các hà ng trong câu trả lá»i." -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "Tổng cá»™ng của" @@ -3847,7 +3851,7 @@ msgstr "Tổng cá»™ng của" msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "Tổng cá»™ng của tất cả các giá trị của má»™t cá»™t. \\\\ ne.x. tổng doanh thu theo thá»i gian." -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "Số hà ng tÃch lÅ©y" @@ -3855,27 +3859,27 @@ msgstr "Số hà ng tÃch lÅ©y" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "Tổng số phụ của số lượng hà ng. \\\\ ne.x. tổng số lượng bán hà ng theo thá»i gian." -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "Äá»™ lệch chuẩn của ..." -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "Số biểu thị số lượng giá trị của má»™t cá»™t khác nhau giữa tất cả các hà ng trong câu trả lá»i." -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "Nhá» nhất của..." -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "Giá trị nhá» nhất của cá»™t" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "Lá»›n nhất của ..." -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "Giá trị cao nhất của cá»™t" @@ -4049,68 +4053,70 @@ msgstr "Ngà nh khác" msgid "Category, Type, Model, Rating, etc." msgstr "Ngà nh, loại, mẫu, đánh giá,..." -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "Cà i đặt tà i khoản" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "Thoát ngÆ°á»i quản lý" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "Nháºt kÃ" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "Trợ giúp" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "Vá» Metabase" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "Thoát ra" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "Cảm Æ¡n vì đã sá» dụng" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "Bạn Ä‘ang ở phiên bản" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "đã xây dá»±ng trên" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "là nhãn hiệu của" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "và được xây dá»±ng cẩn tháºn ở San Francisco, CA" -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Quản trị viên Metabase" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "Há»i má»™t câu há»i" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "Bảng Ä‘iá»u khiển má»›i" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "Xung má»›i" @@ -4123,7 +4129,6 @@ msgstr "Tham khảo" msgid "Which metric?" msgstr "Số liệu nà o?" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "Xác định các số liệu phổ biến cho nhóm của bạn giúp đặt câu há»i dá»… dà ng hÆ¡n" @@ -4141,7 +4146,7 @@ msgid "Custom" msgstr "Táºp quán" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "Câu há»i má»›i" @@ -4149,13 +4154,13 @@ msgstr "Câu há»i má»›i" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "Sá» dụng trình tạo câu há»i Ä‘Æ¡n giản để xem xu hÆ°á»›ng, danh sách các thứ hoặc để tạo số liệu của riêng bạn." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "Truy vấn gốc" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "Vá»›i nhiá»u câu há»i phức tạp hÆ¡n, bạn có thể viết SQL hoặc truy vấn gốc của bạn." @@ -4256,7 +4261,7 @@ msgstr "Nháºp má»™t giá trị..." msgid "Enter a default value..." msgstr "Nháºp má»™t giá trị mặc định..." -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "Có lá»—i xảy ra" @@ -4503,7 +4508,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "Chúng tôi khuyên bạn nên giữ xung nhá» và táºp trung để giúp giữ cho chúng dá»… tiêu hóa và hữu Ãch cho cả nhóm." #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "Chá»n dữ liệu của bạn" @@ -4519,47 +4524,47 @@ msgstr "Email" msgid "Slack messages" msgstr "Tin nhắn Slack" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "Äã gá»i" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0} sẽ được gá»i tại" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "Tin nhắn" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "Gá»i email bây giá»" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "Gá»i đến {0} bây giá»" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "Äang gá»i" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "Gá»i thất bại" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "Không gá»i vì xung không có kết quả" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "Äã gá»i xung" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0} cần được cà i đặt bởi quản trị viên" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4646,7 +4651,7 @@ msgstr "Số dòng theo thá»i gian" msgid "Break out by {0}" msgstr "Thoát ra bằng {0}" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "Tổng hợp phân Ä‘oạn nà y" @@ -4700,15 +4705,15 @@ msgstr "Tăng dần" msgid "Descending" msgstr "Giảm dần" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "Thêm giá»" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "Trung bình" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "Khác biệt" @@ -4903,6 +4908,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} Cảnh báo dá»±a trên mục tiêu chÆ°a được há»— trợ cho các biểu đồ có nhiá»u hÆ¡n má»™t dòng, vì váºy cảnh báo nà y sẽ được gá»i bất cứ khi nà o biểu đồ có {1}." #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "kết quả" @@ -4918,47 +4924,47 @@ msgstr "Tip" msgid "usually" msgstr "thÆ°á»ng" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "Chá»n má»™t phân Ä‘oạn hoặc bảng" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "Chá»n má»™t cÆ¡ sở dữ liệu" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "Lá»±a chá»n..." -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "Chá»n má»™t bảng" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "Không có bảng nà o được tìm thấy trong cÆ¡ sở dữ liệu nà y" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "Có phải má»™t câu há»i Ä‘ang thiếu?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "Tìm hiểu thêm vá» các truy vấn lồng nhau" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "Các trÆ°á»ng" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "Không có phân Ä‘oạn nà o được tìm thấy" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "Tìm má»™t phân Ä‘oạn" @@ -5008,7 +5014,7 @@ msgstr "Thêm má»™t nhóm" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5016,9 +5022,9 @@ msgstr "Thêm má»™t nhóm" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5041,7 +5047,7 @@ msgstr "Äược nhóm bởi" msgid "None" msgstr "Không" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "Câu há»i nà y được viết bằng {0}" @@ -5053,11 +5059,11 @@ msgstr "Ẩn biên táºp" msgid "Hide Query" msgstr "Ẩn truy vấn" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "Mở trình chỉnh sá»a" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "Hiển thị truy vấn" @@ -5102,7 +5108,7 @@ msgstr "HỦY BỎ" msgid "Move question" msgstr "Di chuyển câu há»i" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "Cái nà y nên ở trong bá»™ sÆ°u táºp nà o?" @@ -5156,7 +5162,7 @@ msgstr "{0} cho câu há»i nà y" msgid "Convert this question to {0}" msgstr "Chuyển đổi câu há»i nà y thà nh {0}" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "Câu há»i nà y sẽ mất khoảng {0} để là m má»›i" @@ -5189,7 +5195,7 @@ msgstr "Nếu bạn cho tôi má»™t số dữ liệu tôi có thể cho bạn th msgid "How do I use this thing?" msgstr "Là m thế nà o để tôi sá» dụng Ä‘iá»u nà y?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "Nháºn câu trả lá»i" @@ -5257,7 +5263,7 @@ msgstr "nháºn má»™t thông báo" msgid "Back to last run" msgstr "Quay lại lần chạy trÆ°á»›c" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "Hình ảnh hóa" @@ -5269,7 +5275,7 @@ msgstr "Không có bá»™ mô tả." msgid "Use for current question" msgstr "Sá» dụng cho câu há»i hiện tại" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "Câu há»i tiá»m năng hữu Ãch" @@ -5293,7 +5299,7 @@ msgstr "Tất cả các giá trị riêng biệt của {0}" msgid "Number of {0} grouped by {1}" msgstr "Số {0} được nhóm theo {1}" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5327,12 +5333,12 @@ msgid "Filter by {0}" msgstr "Lá»c bởi {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "Số của {0}" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "Xem tất cả {0}" @@ -5352,32 +5358,33 @@ msgstr "Xem dữ liệu thô cho {0}" msgid "More" msgstr "Nhiá»u hÆ¡n" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "Biểu hiện không hợp lệ" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "lá»—i không xác định" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "Công thức trÆ°á»ng" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "Hãy nghÄ© vá» Ä‘iá»u nà y giống nhÆ° viết má»™t công thức trong chÆ°Æ¡ng trình bảng tÃnh: bạn có thể sá» dụng các số, các trÆ°á»ng trong bảng nà y, các ký hiệu toán há»c nhÆ° + và má»™t số hà m. Vì váºy, bạn có thể gõ má»™t cái gì đó nhÆ° tổng phụ - Chi phÃ." -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "Tìm hiểu thêm" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "Äặt tên cho nó" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "Má»™t cái gì đó tốt đẹp và mô tả" @@ -5457,7 +5464,7 @@ msgid "Enter desired number" msgstr "Nháºp số mong muốn" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "Rá»—ng" @@ -5525,41 +5532,41 @@ msgstr "Äể sá» dụng nhiá»u mệnh Ä‘á» tùy chá»n, bạn có thể bao msgid "Read the full documentation" msgstr "Äá»c tà i liệu đầy đủ" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "Nhãn bá»™ lá»c" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "Loại biến" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "Bản văn" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "Ngà y" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "Bá»™ lá»c trÆ°á»ng" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "TrÆ°á»ng để ánh xạ tá»›i" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "Loại bá»™ lá»c" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "Cần thiết?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "Giá trị widget bá»™ lá»c mặc định" @@ -5571,7 +5578,7 @@ msgstr "LÆ°u trữ câu há»i nà y?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "Câu há»i nà y sẽ bị xóa khá»i bất kỳ bảng Ä‘iá»u khiển hoặc xung sá» dụng nó." -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "Câu há»i" @@ -5583,8 +5590,8 @@ msgstr "Chá»n má»™t câu há»i để thêm và o" msgid "You are editing this page" msgstr "Bạn Ä‘ang chỉnh sá»a trang nà y" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "Xem {0}" @@ -5592,15 +5599,15 @@ msgstr "Xem {0}" msgid "A subset of" msgstr "Má»™t táºp hợp con của" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "Chá»n má»™t kiểu trÆ°á»ng" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5611,8 +5618,8 @@ msgid "by" msgstr "bởi" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "Kiểu trÆ°á»ng" @@ -5637,12 +5644,12 @@ msgid "Nothing important yet" msgstr "Không có gì quan trá»ng hết" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "Không có gì thú vị hết" @@ -5651,12 +5658,12 @@ msgid "Things to be aware of about this {0}" msgstr "Những Ä‘iá»u cần biết vá» Ä‘iá»u nà y {0}" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "Không có gì cần biết" @@ -5702,7 +5709,7 @@ msgstr "Bất cứ Ä‘iá»u gì ngÆ°á»i dùng nên biết vá» Ä‘iá»u nà y {0}? msgid "Which 2-3 fields do you usually group this metric by?" msgstr "2-3 trÆ°á»ng nà o bạn thÆ°á»ng nhóm số liệu nà y theo?" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "Äây là nÆ¡i hoà n hảo để bắt đầu nếu bạn má»›i sá» dụng dữ liệu của công ty bạn hoặc nếu bạn chỉ muốn kiểm tra xem những gì diá»…n ra." @@ -5718,11 +5725,11 @@ msgstr "Là do cho thay đổi" msgid "Leave a note to explain what changes you made and why they were required" msgstr "Äể lại chú thÃch để giải thÃch những thay đổi bạn vừa tạo và tại sao chúng cần thiết." -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "Tại sao cÆ¡ sở dữ liệu nà y thú vị" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "Những Ä‘iá»u cần lÆ°u ý vá» cÆ¡ sở dữ liệu nà y" @@ -5732,44 +5739,44 @@ msgid "Databases and tables" msgstr "CÆ¡ sở dữ liệu và bảng" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "Chi tiết" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "Bảng trong {0}" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "Tên thá»±c trong cÆ¡ sở dữ liệu" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "Tại sao trÆ°á»ng nà y thú vị" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "Những Ä‘iá»u cần lÆ°u ý vá» trÆ°á»ng nà y" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "Kiểu dữ liệu" @@ -5783,12 +5790,12 @@ msgstr "Các trÆ°á»ng trong bảng nà y sẽ xuất hiện tại đây khi chú msgid "Fields in {0}" msgstr "Các trÆ°á»ng trong {0}" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "Tên trÆ°á»ng" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "X quang trÆ°á»ng nà y" @@ -5819,11 +5826,11 @@ msgstr "Số đếm của {0}" msgid "See raw data for {0}" msgstr "Xem dữ liệu thô cho {0}" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "Tại sao bảng nà y thú vị" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "Những Ä‘iá»u cần lÆ°u ý vá» bảng nà y" @@ -5837,7 +5844,7 @@ msgstr "Các câu há»i vá» bảng nà y sẽ xuất hiện tại đây khi chú #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "Các câu há»i vá» {0}" @@ -5852,7 +5859,7 @@ msgstr "Äã tạo {0} bởi {1}" msgid "Fields in this table" msgstr "Các trÆ°á»ng trong bảng nà y" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "Các câu há»i vá» bảng nà y" @@ -5888,7 +5895,7 @@ msgstr "Xem tất cả số liệu" msgid "Segments and tables" msgstr "Phân Ä‘oạn và bảng" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "Các bảng" @@ -6005,8 +6012,8 @@ msgstr "Có ai đó mà ngÆ°á»i dùng của bạn có thể liên hệ để Ä‘ msgid "Who should users contact for help if they're confused about this data?" msgstr "NgÆ°á»i dùng nên liên hệ vá»›i ai để được giúp đỡ nếu há» bối rối vá» dữ liệu nà y?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "Vui lòng nháºp tin nhắn sá»a đổi" @@ -6022,15 +6029,15 @@ msgstr "Những Ä‘iá»u cần biết vá» số liệu nà y" msgid "How this Metric is calculated" msgstr "Số liệu nà y được tÃnh toán thế nà o" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "ChÆ°a có gì vá» cách tÃnh toán" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "Các trÆ°á»ng khác bạn có thể nhóm dữ liệu nà y theo" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "Các trÆ°á»ng bạn có thể nhóm dữ liệu nà y theo" @@ -6055,20 +6062,20 @@ msgid "There are no revisions for this metric" msgstr "Không có sá»a đổi cho số liệu nà y" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "Lịch sá» sá»a đổi cho {0}" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "X quang số liệu nà y" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "Tại sao phân Ä‘oạn nà y thú vị" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "Những Ä‘iá»u cần lÆ°u ý vá» phân Ä‘oạn nà y" @@ -6092,60 +6099,60 @@ msgstr "Há»c cách thiết láºp phân khúc" msgid "Questions about this segment will appear here as they're added" msgstr "Câu há»i vá» phân khúc sẽ xuất hiện ở đây khi nó được há»i" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "Không có sá»a đổi cho phân khúc nà y" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "Các trÆ°á»ng trong phân khúc nà y" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "Câu há»i vá» phân khúc nà y" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "X-ray phân khúc nà y" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "Äăng nháºp" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "Tìm kiếm" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "Bảng Ä‘iá»u khiển" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "Câu há»i má»›i" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "Chá»n loại cÆ¡ sở dữ liệu bạn sá» dụng" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "Thêm dữ liệu" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "Tôi sẽ thêm dữ liệu riêng sau" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "Äang kết nối đến {0}" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "Bạn sẽ cần và i thông tin vá» cÆ¡ sở dữ liệu của mình, nhÆ° tên đăng nháºp và máºt khẩu. Nếu bạn không có thông tin đó bây giá», Metabase sẽ Ä‘Æ°a ra thông tin mẫu để bạn có thể bắt đầu " -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "Tôi sẽ bổ sung dữ liệu sau" @@ -6153,43 +6160,43 @@ msgstr "Tôi sẽ bổ sung dữ liệu sau" msgid "Control automatic scans" msgstr "Äiá»u khiển scan tá»± Ä‘á»™ng" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "Tùy chá»n dữ liệu sá» dụng" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "Cảm Æ¡n đã giúp chúng tôi cải tiến" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "Chúng tôi sẽ không thu táºp sá»± kiện được sá» dụng" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "Vá»›i mục Ä‘Ãch cải tiến Metabase, chúng tôi muốn thu tháºp dữ liệu sá» dụng hiện tại qua Google Analytics " -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "Äây là danh sách đầy đủ những gì chúng tôi theo dõi và tại sao" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "Cho phép Metabase thu tháºp sá»± kiện được sá» dụng ẩn danh" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase {0} thu tháºp má»i thứ vá» dữ liệu hay kết quả câu há»i của bạn" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "không bao giá»" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "Tất cả bá»™ sÆ°u táºp Ä‘á»u hoà n toà n ẩn danh" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "Có thể tắt bá»™ sÆ°u táºp bất cứ lúc nà o trong phần cà i đặt quản trị của bạn" @@ -6237,24 +6244,24 @@ msgstr "Xin chà o {0}, rất vui được gặp bạn" msgid "Create a password" msgstr "Thiết láºp máºt khẩu" -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "Shhh..." -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "Xác nháºn máºt khẩu" -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "Shhh... thêm má»™t lần nữa để chúng tôi chắc rằng nó đúng" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "Tên công ty hoặc nhóm" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "Ban tuyệt vá»i" @@ -6431,11 +6438,11 @@ msgstr "Äăng nháºp bằng địa chỉ Google Email" msgid "User Details" msgstr "Thông tin ngÆ°á»i sá» dụng" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "Äặt lại vá» mặc định" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "Bản đồ không rõ" @@ -6443,7 +6450,7 @@ msgstr "Bản đồ không rõ" msgid "Grid map requires binned longitude/latitude." msgstr "Bản đồ lÆ°á»›i yêu cầu kinh Ä‘á»™ / vÄ© Ä‘á»™." -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "Thêm" @@ -6480,31 +6487,31 @@ msgstr "Không đặt" msgid "Rows {0}-{1} of {2}" msgstr "Hà ng {0} - {1} trong số {2}" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "Dữ liệu bị cắt ngắn thà nh {0} hà ng" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "Không thể tìm thấy trá»±c quan" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "Không thể hiển thị biểu đồ nà y vá»›i dữ liệu nà y" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "Không có kết quả" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "Äang chá»..." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "Äiá»u nà y thÆ°á»ng mất trung bình {0}." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(Äây là má»™t chút dà i cho má»™t bảng Ä‘iá»u khiển)" @@ -6520,11 +6527,11 @@ msgstr "Chá»n má»™t trÆ°á»ng" msgid "error" msgstr "lá»—i" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "Nhấp và kéo để thay đổi thứ tá»± của há»" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "Thêm các trÆ°á»ng từ danh sách dÆ°á»›i đây" @@ -6663,19 +6670,19 @@ msgstr "Thêm luáºt" msgid "Update rule" msgstr "Cáºp nháºp luáºt" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "Trá»±c quan rá»—ng" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "Trá»±c quan hóa phải xác định biến tÄ©nh 'định danh'" -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "Hình dung vá»›i định danh đó đã được đăng ký:" -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "Không trá»±c quan hóa cho {0}" @@ -6683,11 +6690,11 @@ msgstr "Không trá»±c quan hóa cho {0}" msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "\\ \"{0} \" là trÆ°á»ng không kết hợp: nếu nó có nhiá»u hÆ¡n má»™t giá trị tại má»™t Ä‘iểm trên trục x, các giá trị sẽ được tÃnh tổng." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "Loại biểu đồ nà y yêu cầu Ãt nhất 2 cá»™t." -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "Loại biểu đồ nà y không há»— trợ nhiá»u hÆ¡n {0} chuá»—i dữ liệu." @@ -6726,7 +6733,7 @@ msgstr "Vui lòng định cấu hình biểu đồ nà y trong cà i đặt biểu msgid "Edit Settings" msgstr "Thay đổi cà i đặt" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "Giá trị thiếu" @@ -6753,7 +6760,7 @@ msgid "Bubble size" msgstr "KÃch thÆ°á»›c bong bóng" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "Dòng" @@ -6810,104 +6817,104 @@ msgstr "Không có gì" msgid "Linear Interpolated" msgstr "Ná»™i suy tuyến tÃnh" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "KÃch thÆ°á»›c trục X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "Dòng thá»i gian" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "Tuyến tÃnh" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "Nguồn" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "Khóa" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "Biểu đồ" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "Bình thÆ°á»ng" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "KÃch thÆ°á»›c trục Y" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "Hiển thị dòng trục x và điểm" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "Gá»n nhẹ" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "Xoay 45 Ä‘á»™" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "Xoay 90 Ä‘á»™" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "Hiển thị dòng trục y và điểm" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "Tá»± Ä‘á»™ng phạm vi trục y " -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "Dùng trục Y xoay khi cần thiết" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "Hiển thị nhãn trên trục X" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "Nhãn trục " -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "Thể hiện nhãn trên trục " -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Hiển thị nhãn trên trục Y" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "Äá»™ lệch chuẩn" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "Vùng" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "biểu đồ khu vá»±c" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "Thanh" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "biểu đồ thanh" @@ -6933,19 +6940,19 @@ msgstr "Loại phá»…u" msgid "Bar chart" msgstr "Biểu đồ cá»™t" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "biểu đồ Ä‘Æ°á»ng" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "Vui lòng chá»n các cá»™t kinh Ä‘á»™ và vÄ© Ä‘á»™ trong cà i đặt biểu đồ." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "Vui lòng chá»n má»™t bản đồ khu vá»±c." -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "Vui lòng chá»n các cá»™t khu vá»±c và số liệu trong cà i đặt biểu đồ." @@ -6953,73 +6960,73 @@ msgstr "Vui lòng chá»n các cá»™t khu vá»±c và số liệu trong cà i đặt msgid "Map" msgstr "Bản đồ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "Loại bản đồ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "Vùng trên bản đồ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "Äánh dấu trên bản đồ" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "Loại đánh dấu" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "Ngói" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "Dấu" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "TrÆ°á»ng vÄ© Ä‘á»™" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "TrÆ°á»ng kinh Ä‘á»™" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "TrÆ°á»ng số liệu" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "TrÆ°á»ng vùng" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "Bán kÃnh" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "Là m nhòe" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "Äá»™ má» tối thiểu" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "Thu phóng tối Ä‘a" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "Không tìm thấy quan hệ" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "thông qua {0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr " {0} nà y được liên kết đến:" @@ -7031,7 +7038,7 @@ msgstr "Chi tiết đối tượng" msgid "object" msgstr "đối tượng" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "Tổng" @@ -7080,7 +7087,7 @@ msgid "Progress" msgstr "Äang thá»±c hiện" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "Mà u" @@ -7172,12 +7179,12 @@ msgstr "Phải" msgid "Show background" msgstr "Hiển thị ná»n" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "ngăn" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "tá»± Ä‘á»™ng ngăn" @@ -7601,7 +7608,7 @@ msgstr "tổng tÃch lÅ©y" msgid "{0} and {1}" msgstr "{0} và {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} của {1}" @@ -8921,31 +8928,31 @@ msgstr "Xem tất cả các quyá»n thu tháºp" msgid "Also change sub-collections" msgstr "Äồng thá»i thay đổi bá»™ sÆ°u táºp phụ" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "Có thể chỉnh sá»a bá»™ sÆ°u táºp nà y và ná»™i dung của nó" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "Có thể xem các mục trong bá»™ sÆ°u táºp nà y" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "Có thể xem các mục trong bá»™ sÆ°u táºp nà y" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "Nhóm nà y có quyá»n xem Ãt nhất má»™t bá»™ sÆ°u táºp của bá»™ sÆ°u táºp nà y." -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "Nhóm nà y có quyá»n chỉnh sá»a Ãt nhất má»™t bá»™ sÆ°u táºp con của bá»™ sÆ°u táºp nà y." -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "Xem các bá»™ sÆ°u táºp phụ " -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "Nhá»› tôi" @@ -8965,7 +8972,7 @@ msgstr "Thêm câu há»i nà y và o bảng Ä‘iá»u khiển" msgid "Create a new dashboard" msgstr "Tạo bảng Ä‘iá»u khiển má»›i" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "Trang bạn yêu cầu không thể được tìm thấy." @@ -8973,11 +8980,11 @@ msgstr "Trang bạn yêu cầu không thể được tìm thấy." msgid "Select a {0}" msgstr "Chá»n má»™t {0}" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "LÆ°u bảng Ä‘iá»u khiển, câu há»i và bá»™ sÆ°u táºp trong \\ \"{0} \"" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "Truy cáºp bảng Ä‘iá»u khiển, câu há»i và bá»™ sÆ°u táºp trong \\ \"{0} \"" @@ -8997,12 +9004,12 @@ msgstr "Liên quan" msgid "More X-rays" msgstr "Thêm tia X" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "Không có kết quả" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabase không thể tìm thấy bất kỳ kết quả nà o cho tìm kiếm của bạn. " @@ -9212,10 +9219,10 @@ msgstr "Không có" msgid "Windows domain" msgstr "Tên miá»n Windows" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "Nhãn" @@ -9250,6 +9257,8 @@ msgstr "Chia sẻ" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9264,33 +9273,33 @@ msgstr "Chia sẻ" msgid "Display" msgstr "Hiển thị" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "Trục" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "Äịnh dạng" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "Hãy thá» những tia X nà y dá»±a trên dữ liệu của bạn." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "Có má»™t vấn Ä‘á» hiển thị biểu đồ nà y." -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "Xin lá»—i, bạn không được phép xem thẻ nà y." @@ -9310,21 +9319,21 @@ msgstr "tia X" msgid "Compare to the rest" msgstr "So sánh vá»›i phần còn lại" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "Sá» dụng múi giá» của Máy ảo Java (JVM)" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "Chúng tôi khuyên bạn nên bá» qua Ä‘iá»u nà y trừ khi bạn thá»±c hiện truyá»n múi giá» thủ công trong\n" "\"\"nhiá»u hoặc hầu hết các truy vấn của bạn vá»›i dữ liệu nà y." -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "Bảng Ä‘iá»u khiển quan trá»ng nhất của nhóm của bạn ở đây" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "Ghim bảng Ä‘iá»u khiển trong {0} để chúng xuất hiện trong không gian nà y cho má»i ngÆ°á»i" @@ -9348,12 +9357,12 @@ msgstr "Mẹo" msgid "Select a currency type" msgstr "Chá»n má»™t loại tiá»n tệ" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "Loại lÄ©nh vá»±c" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "Xá» lý sá»± cố" @@ -9401,11 +9410,11 @@ msgstr "Thá»i lượng (ms)" msgid "Currency" msgstr "Tiá»n tệ" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "Chá»n ngÆ°á»i dùng hoặc kênh ..." -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "Không có cà i đặt định dạng" @@ -9578,15 +9587,15 @@ msgstr "Máy Ä‘o" msgid "Gauge ranges" msgstr "Phạm vi Ä‘o" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "LÄ©nh vá»±c để hiển thị" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "cuối {0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0} là {1} {2}" @@ -9714,7 +9723,7 @@ msgstr "quý" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "Thêm thẻ {0} và o bảng Ä‘iá»u khiển {1}: n {2}" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "Lá»—i phân tÃch cú pháp {0}: n {1}" @@ -10008,7 +10017,7 @@ msgstr "Dá»n dẹp lịch sá» nhiệm vụ thà nh công, các hà ng đã bị msgid "not" msgstr "không phải" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "Äể biết thêm thông tin, xem" @@ -11009,6 +11018,7 @@ msgstr "Cách số liệu nà y được phân bổ trên các số khác nhau" msgid "Sessions by page where the session began" msgstr "Phiên theo trang nÆ¡i phiên bắt đầu" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11357,15 +11367,15 @@ msgstr "Có thể chạy tiếp?" msgid "Triggers for {0}" msgstr "Triggers cho {0}" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "Tác vụ" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "Jobs" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "Äã tạo bản sao {0}" @@ -11377,7 +11387,7 @@ msgstr "Tạo bản sao" msgid "Archive this item" msgstr "LÆ°u trữ item nà y" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "Äã tạo bản sao" @@ -11404,6 +11414,7 @@ msgid "Next {0}" msgstr "{0} Tiếp theo" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "{0} TrÆ°á»›c đó" @@ -11488,8 +11499,8 @@ msgstr "[Q]Q" msgid "This" msgstr "Cái nà y" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "Không phù hợp" @@ -11497,11 +11508,11 @@ msgstr "Không phù hợp" msgid "Add a time" msgstr "Thêm thá»i gian" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "Không có gì để so sánh vá»›i {0}." -#: frontend/src/metabase-lib/lib/Dimension.js:678 +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "bởi {0}" @@ -11557,39 +11568,39 @@ msgstr "Lá»—i khi thêm lệnh SQL cÅ© và o Câu há»i đã lÆ°u của BigQuery" msgid "Failed to notify {0} Database {1} updated" msgstr "Không thể thông báo {0} CÆ¡ sở dữ liệu {1} đã cáºp nháºt" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "Äang tải trình Ä‘iá»u khiển {0} {1}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "Tải trình Ä‘iá»u khiển {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "Trình Ä‘iá»u khiển không được đăng ký sau khi tải: {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "Lá»—i: cố gắng thay đổi thuá»™c tÃnh {0} `:abstract?` từ {1} thà nh {2}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "Trình Ä‘iá»u khiển abstract đã đăng ký {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "Trình Ä‘iá»u khiển đã đăng ký {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(cha mẹ: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "Äang khởi tạo trình Ä‘iá»u khiển {0} ..." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "Lý do:" @@ -11741,11 +11752,11 @@ msgstr "{0} phụ thuá»™c {1} được đáp ứng? {2}" msgid "Plugins with unsatisfied deps: {0}" msgstr "Các plugin có deps không thá»a mãn: {0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "TrÃch xuất file {0} -> {1}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "Tà i nguyên không tồn tại." @@ -12070,7 +12081,7 @@ msgid "[[CreateDate]] by quarter of the year" msgstr "[[CreatDate]] theo quý trong năm" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "Chỉnh sá»a ngÆ°á»i dùng" @@ -12078,12 +12089,12 @@ msgstr "Chỉnh sá»a ngÆ°á»i dùng" msgid "New user" msgstr "NgÆ°á»i dùng má»›i" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "Äặt lại máºt khẩu" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "Vô hiệu hóa ngÆ°á»i dùng" @@ -12360,11 +12371,11 @@ msgstr "" msgid "Archive this?" msgstr "" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "" @@ -12374,7 +12385,7 @@ msgid "Using this option requires that provided host is a FQDN. If connecting t "leave this disabled." msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "" @@ -12382,7 +12393,7 @@ msgstr "" msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "" -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "" @@ -12390,25 +12401,25 @@ msgstr "" msgid "Archive this dashboard?" msgstr "" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "Tất cả kết quả" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:500 +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "" -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "" #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "Lá»c" @@ -12417,27 +12428,27 @@ msgid "record" msgid_plural "records" msgstr[0] "" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" msgstr "" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "Viết truy vấn SQL" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "Câu há»i Ä‘Æ¡n giản" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "Câu há»i tuỳ chỉnh" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "" @@ -12445,7 +12456,7 @@ msgstr "" msgid "Basic Metrics" msgstr "" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "" @@ -12461,7 +12472,7 @@ msgstr "" msgid "Show maximum" msgstr "Hiển thị tối Ä‘a" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "Xem trÆ°á»›c" @@ -12490,7 +12501,7 @@ msgid "Custom column" msgstr "" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "" @@ -12507,11 +12518,10 @@ msgid "Pick the metric you want to see" msgstr "" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "Chá»n má»™t cá»™t để gom nhóm" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "" @@ -12523,7 +12533,7 @@ msgstr "Không chá»n gì" msgid "Select All" msgstr "Chá»n tất cả" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "Chá»n má»™t bảng..." @@ -12568,15 +12578,15 @@ msgid "{0} breakout" msgid_plural "{0} breakouts" msgstr[0] "" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "Ẩn bá»™ lá»c" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "Hiện bá»™ lá»c" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "Bắt đầu từ" @@ -12605,11 +12615,11 @@ msgstr "" msgid "Summarized" msgstr "" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "" @@ -12617,7 +12627,7 @@ msgstr "" msgid "Pick the metric you'd like to see" msgstr "" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "" @@ -12645,7 +12655,7 @@ msgstr "" msgid "Profile" msgstr "Hồ sÆ¡" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "" @@ -12673,19 +12683,19 @@ msgstr "" msgid "Unknown Filter" msgstr "" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "" @@ -12737,7 +12747,7 @@ msgstr "" msgid "Could not find {0} driver." msgstr "" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "" @@ -12795,7 +12805,7 @@ msgstr "" msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "" @@ -13073,7 +13083,7 @@ msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "" @@ -13111,3 +13121,439 @@ msgstr "" msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "" +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "" + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "" + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "" + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "" + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "" + diff --git a/locales/zh.po b/locales/zh.po index 863cdc15c780f7da307843d8ccd77434adc0f56c..fbc52648b4ec7a03302218af4fa4ad8169651c9b 100644 --- a/locales/zh.po +++ b/locales/zh.po @@ -5,10 +5,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" "Project-Id-Version: Metabase\n" -"Language: zh-CN\n" +"Language: zh-Hans\n" "Plural-Forms: nplurals=1; plural=0;\n" -#. ä½ çš„æ•°æ®åº“å·²ç»æ·»åŠ æˆåŠŸï¼ #: frontend/src/metabase/admin/databases/components/CreatedDatabaseModal.jsx:24 msgid "Your database has been added!" msgstr "æ•°æ®åº“æ·»åŠ æˆåŠŸï¼" @@ -25,25 +24,23 @@ msgstr "ä¸ç”¨ï¼Œè°¢è°¢" msgid "Explore this data" msgstr "探索数æ®" -#. 选择数æ®åº“类型 #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:42 msgid "Select a database type" msgstr "选择数æ®åº“类型" #: frontend/src/metabase/admin/databases/components/DatabaseEditForms.jsx:76 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 #: frontend/src/metabase/admin/datamodel/components/FieldRemapping.jsx:410 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:74 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:203 #: frontend/src/metabase/components/ActionButton.jsx:51 #: frontend/src/metabase/components/ButtonWithStatus.jsx:7 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:187 #: frontend/src/metabase/query_builder/components/view/EditQuestionInfoModal.jsx:15 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:193 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:213 #: frontend/src/metabase/reference/components/EditHeader.jsx:54 #: frontend/src/metabase/reference/components/EditHeader.jsx:69 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:180 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:164 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:177 msgid "Save" msgstr "ä¿å˜" @@ -51,7 +48,6 @@ msgstr "ä¿å˜" msgid "To do some of its magic, Metabase needs to scan your database. We will also rescan it periodically to keep the metadata up-to-date. You can control when the periodic rescans happen below." msgstr "为了åšä¸€äº›ç¥žå¥‡çš„事情,Metabase需è¦æ‰«æä½ çš„æ•°æ®åº“。我们将会定期扫æ,æ¥ä¿æŒæºæ•°æ®æ˜¯æœ€æ–°çš„ã€‚ä½ ä¹Ÿå¯ä»¥åœ¨å‘¨æœŸçš„扫æ之å‰ï¼Œæ‰‹å·¥æ¥æŽ§åˆ¶æ‰«æ。" -#. æ•°æ®åº“æ£åœ¨åŒæ¥ä¸... #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:127 msgid "Database syncing" msgstr "æ•°æ®åº“åŒæ¥ä¸" @@ -62,13 +58,11 @@ msgid "This is a lightweight process that checks for\n" "set to sync hourly." msgstr "这是一个检查数æ®åº“模å¼å˜åŒ–çš„è½»é‡çº§çš„è¿‡ç¨‹ï¼Œå¤§éƒ¨åˆ†æƒ…å†µä¸‹ï¼Œä½ å¯ä»¥ä½¿ç”¨æ¯å°æ—¶åŒæ¥ã€‚" -#. 扫æ #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:147 #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:183 msgid "Scan" msgstr "扫æ" -#. 扫æç›é€‰å€¼ #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:152 msgid "Scanning for Filter Values" msgstr "扫æ过滤器值" @@ -80,17 +74,14 @@ msgid "Metabase can scan the values present in each\n" "database." msgstr "Metabase å¯ä»¥æ‰«ææ•°æ®åº“ä¸æ¯ä¸ªå—段的值, 用以å¯ç”¨æŸ¥è¯¢æˆ–仪表æ¿ä¸çš„选择框过滤器. 当您的数æ®åº“较大时, è¿™å¯èƒ½æ˜¯ä¸€ä¸ªèµ„æºå¯†é›†åž‹çš„过程." -#. Metabase应该什么时候自动地扫æ并缓å˜å—段的值? #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:158 msgid "When should Metabase automatically scan and cache field values?" msgstr "Metabase应该在什么时候自动扫æ缓å˜çš„å—段值" -#. 通常情况下,需è¦åˆ¶å®šä¸€ä¸ªè®¡åˆ’表 #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:163 msgid "Regularly, on a schedule" msgstr "æ ¹æ®æŽ’程,周期性地进行" -#. ä»…ä»…å½“ä½ åœ¨æ·»åŠ ä¸€ä¸ªæ–°çš„è¿‡æ»¤å™¨æŽ§ä»¶çš„æ—¶å€™ #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:194 msgid "Only when adding a new filter widget" msgstr "åªæœ‰å½“ä½ åœ¨æ·»åŠ ä¸€ä¸ªæ–°çš„è¿‡æ»¤æŽ§ä»¶æ—¶" @@ -104,24 +95,21 @@ msgstr "当用户å‘仪表盘或SQLæŸ¥è¯¢æ·»åŠ ä¸€ä¸ªæ–°çš„è¿‡æ»¤å™¨ï¼ŒMetabase msgid "Never, I'll do this manually if I need to" msgstr "ä¸ç”¨ï¼Œå¦‚果需è¦æˆ‘会手动执行" -#. ä¿å˜ä¸... #: frontend/src/metabase/admin/databases/components/DatabaseSchedulingForm.jsx:221 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:27 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:222 #: frontend/src/metabase/components/ActionButton.jsx:52 #: frontend/src/metabase/components/ButtonWithStatus.jsx:8 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:477 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:492 msgid "Saving..." msgstr "ä¿å˜ä¸......" -#. æœåŠ¡å™¨å‘生错误了 #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:38 #: frontend/src/metabase/components/form/FormMessage.jsx:4 #: frontend/src/metabase/containers/SaveQuestionModal.jsx:146 msgid "Server error encountered" msgstr "æœåŠ¡å™¨å‡ºé”™äº†" -#. 是å¦è¦åˆ 除这个数æ®åº“? #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:56 msgid "Delete this database?" msgstr "是å¦è¦åˆ 除这个数æ®åº“?" @@ -130,7 +118,6 @@ msgstr "是å¦è¦åˆ 除这个数æ®åº“?" msgid "All saved questions, metrics, and segments that rely on this database will be lost." msgstr "所有ä¾èµ–这个数æ®åº“ä¿å˜çš„é—®é¢˜ï¼ŒæŒ‡æ ‡ï¼Œæ•°æ®æ®µå°†è¦ä¸¢å¤±ã€‚" -#. æ¤æ“ä½œæ— æ³•æ‰§è¡Œ #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:62 msgid "This cannot be undone." msgstr "æ¤æ“ä½œæ— æ³•æ’¤é”€ã€‚" @@ -150,16 +137,16 @@ msgstr "在这个框里:" #: frontend/src/metabase/admin/databases/components/DeleteDatabaseModal.jsx:77 #: frontend/src/metabase/admin/datamodel/components/ObjectRetireModal.jsx:49 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:84 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:75 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:86 #: frontend/src/metabase/admin/people/components/AddRow.jsx:27 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:49 #: frontend/src/metabase/admin/permissions/components/PermissionsEditor.jsx:52 #: frontend/src/metabase/admin/permissions/containers/CollectionPermissionsModal.jsx:61 -#: frontend/src/metabase/admin/permissions/selectors.js:163 -#: frontend/src/metabase/admin/permissions/selectors.js:173 -#: frontend/src/metabase/admin/permissions/selectors.js:188 -#: frontend/src/metabase/admin/permissions/selectors.js:227 +#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:167 +#: frontend/src/metabase/admin/permissions/selectors.js:182 +#: frontend/src/metabase/admin/permissions/selectors.js:221 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:357 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:202 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:268 @@ -167,20 +154,20 @@ msgstr "在这个框里:" #: frontend/src/metabase/components/ConfirmContent.jsx:18 #: frontend/src/metabase/components/DeleteModalWithConfirm.jsx:72 #: frontend/src/metabase/components/HeaderModal.jsx:49 -#: frontend/src/metabase/components/form/StandardForm.jsx:62 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:198 +#: frontend/src/metabase/components/form/StandardForm.jsx:60 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:196 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:289 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:153 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:170 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:38 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:191 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:354 -#: frontend/src/metabase/query_builder/components/RunButton.jsx:41 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:92 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:39 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:90 #: frontend/src/metabase/query_builder/components/view/sidebars/FilterSidebar.jsx:32 #: frontend/src/metabase/reference/components/EditHeader.jsx:34 #: frontend/src/metabase/reference/components/RevisionMessageModal.jsx:52 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:286 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:301 #: frontend/src/metabase/visualizations/components/settings/ChartSettingsTableFormatting.jsx:461 msgid "Cancel" msgstr "å–消" @@ -192,34 +179,33 @@ msgstr "å–消" msgid "Delete" msgstr "åˆ é™¤" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:131 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:77 -#: frontend/src/metabase/admin/permissions/selectors.js:323 -#: frontend/src/metabase/admin/permissions/selectors.js:330 -#: frontend/src/metabase/admin/permissions/selectors.js:426 -#: frontend/src/metabase/admin/routes.jsx:53 -#: frontend/src/metabase/nav/containers/Navbar.jsx:243 +#: frontend/src/metabase/admin/permissions/selectors.js:317 +#: frontend/src/metabase/admin/permissions/selectors.js:324 +#: frontend/src/metabase/admin/permissions/selectors.js:420 +#: frontend/src/metabase/admin/routes.jsx:54 +#: frontend/src/metabase/nav/containers/Navbar.jsx:242 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:18 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:21 msgid "Databases" msgstr "æ•°æ®åº“" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:132 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:133 msgid "Add Database" msgstr "æ·»åŠ æ•°æ®åº“" #: frontend/src/metabase-lib/lib/DimensionOptions.js:114 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:60 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 msgid "Connection" msgstr "连接" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:61 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:62 msgid "Scheduling" msgstr "调度" -#. ä¿å˜ä¿®æ”¹ -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:173 -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:80 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:174 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:71 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:82 #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:26 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:221 @@ -229,20 +215,18 @@ msgstr "调度" msgid "Save changes" msgstr "ä¿å˜ä¿®æ”¹" -#. 动作 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:188 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:189 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:35 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:35 msgid "Actions" msgstr "动作" -#. ç«‹å³åŒæ¥æ•°æ®åº“ -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:196 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 msgid "Sync database schema now" msgstr "开始åŒæ¥æ•°æ®åº“模å¼" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:197 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:15 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:23 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:87 @@ -250,46 +234,41 @@ msgstr "开始åŒæ¥æ•°æ®åº“模å¼" msgid "Starting…" msgstr "开始..." -#. åŒæ¥å¤±è´¥ -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:198 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 msgid "Failed to sync" msgstr "åŒæ¥å¤±è´¥" -#. 触å‘åŒæ¥ -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:199 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:200 msgid "Sync triggered!" msgstr "åŒæ¥è§¦å‘ï¼" -#. 开始é‡æ–°æ‰«æå—段值 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:208 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:209 msgid "Re-scan field values now" msgstr "现在é‡æ–°æ‰«æå—段值" -#. æ— æ³•å¼€å§‹æ‰«æ -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:210 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:16 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:88 msgid "Failed to start scan" msgstr "æ— æ³•å¼€å§‹æ‰«æ" -#. 已触å‘扫æ -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:211 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:212 #: frontend/src/metabase/admin/datamodel/components/UpdateCachedFieldValues.jsx:17 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:89 msgid "Scan triggered!" msgstr "扫æ已触å‘ï¼" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:218 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:219 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:400 msgid "Danger Zone" msgstr "å±é™©æ“作" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:224 -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:227 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:225 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:228 msgid "Discard saved field values" msgstr "放弃ä¿å˜çš„å—段值" -#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:242 +#: frontend/src/metabase/admin/databases/containers/DatabaseEditApp.jsx:243 msgid "Remove this database" msgstr "åˆ é™¤æ•°æ®åº“" @@ -298,18 +277,17 @@ msgid "Add database" msgstr "æ·»åŠ æ•°æ®åº“" #: frontend/src/metabase/admin/databases/containers/DatabaseListApp.jsx:88 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:32 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:32 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:123 #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:183 #: frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx:91 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:446 -#: frontend/src/metabase/containers/EntitySearch.jsx:26 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:448 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:218 #: frontend/src/metabase/entities/collections.js:94 #: frontend/src/metabase/entities/dashboards.js:142 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:472 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:85 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:91 msgid "Name" msgstr "åå—" @@ -329,23 +307,24 @@ msgstr "åŠ è½½ä¸ã€‚。。" msgid "Bring the sample dataset back" msgstr "æ¢å¤æ ·æœ¬æ•°æ®é›†" -#: frontend/src/metabase/admin/databases/database.js:175 +#: frontend/src/metabase/admin/databases/database.js:176 msgid "Couldn't connect to the database. Please check the connection details." msgstr "æ— æ³•è¿žæŽ¥åˆ°æ•°æ®åº“。 请检查连接的详细信æ¯ã€‚" -#: frontend/src/metabase/admin/databases/database.js:383 +#: frontend/src/metabase/admin/databases/database.js:384 msgid "Successfully created!" msgstr "创建æˆåŠŸï¼" -#: frontend/src/metabase/admin/databases/database.js:393 +#: frontend/src/metabase/admin/databases/database.js:394 msgid "Successfully saved!" msgstr "ä¿å˜æˆåŠŸï¼" #: frontend/src/metabase/admin/datamodel/components/ObjectActionSelect.jsx:44 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:189 #: frontend/src/metabase/query_builder/components/AlertListPopoverContent.jsx:200 -#: frontend/src/metabase/reference/components/EditButton.jsx:18 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:90 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:17 msgid "Edit" msgstr "编辑" @@ -385,9 +364,9 @@ msgstr "失败" msgid "Success" msgstr "æˆåŠŸ" -#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:91 +#: frontend/src/metabase/admin/datamodel/components/PartialQueryBuilder.jsx:86 #: frontend/src/metabase/public/components/widgets/AdvancedEmbedPane.jsx:110 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:180 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:184 #: frontend/src/metabase/query_builder/components/view/QuestionPreviewToggle.jsx:15 msgid "Preview" msgstr "预览" @@ -407,7 +386,7 @@ msgstr "指定的类型ä¸å˜åœ¨" #: frontend/src/metabase-lib/lib/DimensionOptions.js:148 #: frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx:194 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:34 -#: frontend/src/metabase/reference/components/Field.jsx:57 +#: frontend/src/metabase/reference/components/Field.jsx:59 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:42 msgid "Other" msgstr "其他" @@ -436,7 +415,7 @@ msgstr "å—段" #: frontend/src/metabase/admin/datamodel/components/database/ColumnsList.jsx:24 #: frontend/src/metabase/admin/datamodel/components/database/MetadataTable.jsx:142 -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:298 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:288 msgid "Visibility" msgstr "å¯è§æ€§" @@ -515,35 +494,34 @@ msgstr "æŸ¥æ‰¾è¡¨æ ¼" msgid "Schemas" msgstr "表结构" -#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:722 -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:68 +#: frontend/src/metabase-lib/lib/queries/StructuredQuery.js:820 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:67 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:33 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:27 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:190 #: frontend/src/metabase/reference/metrics/MetricList.jsx:63 #: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:21 -#: frontend/src/metabase/routes.jsx:232 msgid "Metrics" msgstr "æŒ‡æ ‡" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:27 msgid "Add a Metric" msgstr "æ·»åŠ æŒ‡æ ‡" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:33 -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:33 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:34 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:34 #: frontend/src/metabase/query_builder/components/QueryDefinitionTooltip.jsx:30 msgid "Definition" msgstr "定义" -#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/MetricsList.jsx:51 msgid "Create metrics to add them to the View dropdown in the query builder" msgstr "åˆ›å»ºæŒ‡æ ‡å¹¶æ·»åŠ åˆ°æŸ¥è¯¢è®¾è®¡å™¨çš„è§†å›¾ä¸‹æ‹‰åˆ—è¡¨" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:20 -#: frontend/src/metabase/home/containers/SearchApp.jsx:73 -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:952 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:21 +#: frontend/src/metabase/home/containers/SearchApp.jsx:72 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:955 #: frontend/src/metabase/reference/guide/BaseSidebar.jsx:33 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:19 #: frontend/src/metabase/reference/segments/SegmentList.jsx:62 @@ -551,11 +529,11 @@ msgstr "åˆ›å»ºæŒ‡æ ‡å¹¶æ·»åŠ åˆ°æŸ¥è¯¢è®¾è®¡å™¨çš„è§†å›¾ä¸‹æ‹‰åˆ—è¡¨" msgid "Segments" msgstr "过滤器" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:26 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:27 msgid "Add a Segment" msgstr "æ·»åŠ è¿‡æ»¤å™¨" -#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:50 +#: frontend/src/metabase/admin/datamodel/components/database/SegmentsList.jsx:51 msgid "Create segments to add them to the Filter dropdown in the query builder" msgstr "åˆ›å»ºè¿‡æ»¤å™¨å¹¶æ·»åŠ åˆ°æŸ¥è¯¢è®¾è®¡å™¨çš„ç›é€‰ä¸‹æ‹‰åˆ—表" @@ -601,23 +579,23 @@ msgstr "历å²" msgid "Revision History for" msgstr "历å²ç‰ˆæœ¬" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:233 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:228 msgid "{0} – Field Settings" msgstr "{0} - å—段设置" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:299 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:289 msgid "Where this field will appear throughout Metabase" msgstr "这些å—段将在哪里显示?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:321 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:311 msgid "Filtering on this field" msgstr "å—段过滤" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:322 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:312 msgid "When this field is used in a filter, what should people use to enter the value they want to filter on?" msgstr "当在过滤器ä¸ä½¿ç”¨æ¤å—段时,人们应该使用什么形å¼è¾“入他们想è¦è¿‡æ»¤çš„值?" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:448 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:437 msgid "No description for this field yet" msgstr "æš‚æ— ç›é€‰æ¡ä»¶æè¿°" @@ -658,11 +636,11 @@ msgstr "当å‰å—段ä¸æ˜¯å¤–键或者缺少外键关è”表元数æ®" msgid "The selected field isn't a foreign key" msgstr "选ä¸çš„å—段ä¸æ˜¯å¤–é”®" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:339 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:329 msgid "Display values" msgstr "显示值" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:340 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:330 msgid "Choose to show the original value from the database, or have this field display associated or custom information." msgstr "选择显示数æ®åº“ä¸çš„原始值,或者显示æ¤å—段的关è”或自定义信æ¯ã€‚" @@ -682,12 +660,12 @@ msgstr "æ示:" msgid "You might want to update the field name to make sure it still makes sense based on your remapping choices." msgstr "ä½ å¯èƒ½æƒ³è¦æ›´æ–°è¿™ä¸ªå—段的å称æ¥ç¡®ä¿å®ƒåŸºäºŽä½ çš„é‡æ–°æ˜ 射选择时ä»ç„¶æœ‰æ„义" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:356 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:346 #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:80 msgid "Cached field values" msgstr "缓å˜å—段值" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:357 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:347 msgid "Metabase can scan the values for this field to enable checkbox filters in dashboards and questions." msgstr "Metabase 通过扫æ该å—段,以å¯ç”¨ä»ªè¡¨ç›˜å’Œé—®é¢˜çš„多选框ç›é€‰ã€‚" @@ -714,82 +692,82 @@ msgstr "丢弃处ç†å·²ç»è§¦å‘ï¼" msgid "Select any table to see its schema and add or edit metadata." msgstr "选择任æ„表å•æ¥æ˜¾ç¤ºå®ƒçš„所有模å¼å¹¶ä¸”æ·»åŠ æˆ–åˆ é™¤å…ƒæ•°æ®" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:35 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:36 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:32 #: frontend/src/metabase/entities/collections.js:97 msgid "Name is required" msgstr "å称必填" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:38 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:39 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:35 msgid "Description is required" msgstr "æè¿°å¿…å¡«" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:42 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:43 #: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:39 msgid "Revision message is required" msgstr "调整信æ¯å¿…å¡«" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:48 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:49 msgid "Aggregation is required" msgstr "èšåˆä¿¡æ¯å¿…å¡«" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Edit Your Metric" msgstr "ç¼–è¾‘æŒ‡æ ‡" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:104 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:142 msgid "Create Your Metric" msgstr "åˆ›å»ºæŒ‡æ ‡" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:108 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:146 msgid "Make changes to your metric and leave an explanatory note." msgstr "ä¿®æ”¹æŒ‡æ ‡å¹¶ç•™ä¸‹ç®€è¦è¯´æ˜Žã€‚" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:107 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:145 msgid "You can create saved metrics to add a named metric option to this table. Saved metrics include the aggregation type, the aggregated field, and optionally any filter you add. As an example, you might use this to create something like the official way of calculating \"Average Price\" for an Orders table." msgstr "ä½ èƒ½å¤Ÿåˆ›é€ å·²å˜å‚¨çš„æŒ‡æ ‡æ¥æ·»åŠ 一个已ç»å‘½åçš„æŒ‡æ ‡é€‰é¡¹åˆ°è¿™ä¸ªè¡¨å•ã€‚å˜å‚¨åˆ»åº¦åŒ…æ‹¬ä½ æ·»åŠ çš„èšåˆç±»åž‹ï¼Œèšåˆå—段和å¯é€‰çš„任何ç›é€‰é¡¹ã€‚举个例åï¼Œä½ å¯èƒ½ä½¿ç”¨è¿™ä¸ªæ¥ä¸ºä¸€ä¸ªè®¢å•è¡¨å•åˆ›é€ 一些åƒæ˜¯â€œå¹³å‡ä»·â€çš„官方计算方法," -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:140 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:180 msgid "Result: " msgstr "结果:" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:189 msgid "Name Your Metric" msgstr "命åæŒ‡æ ‡" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:190 msgid "Give your metric a name to help others find it." msgstr "ä¸ºæŒ‡æ ‡å‘½å,方便其他人查找。" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:154 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:154 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:194 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:152 msgid "Something descriptive but not too long" msgstr "简çŸçš„æè¿°" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:198 msgid "Describe Your Metric" msgstr "æè¿°æŒ‡æ ‡" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:199 msgid "Give your metric a description to help others understand what it's about." msgstr "æè¿°æŒ‡æ ‡ï¼Œæ–¹ä¾¿å…¶ä»–äººç†è§£ã€‚" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:203 msgid "This is a good place to be more specific about less obvious metric rules" msgstr "在这里详细æè¿°æŒ‡æ ‡ï¼Œæ¯”å¦‚ä¸å¤ªæ˜Žæ˜¾çš„规则" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:167 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:207 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:165 msgid "Reason For Changes" msgstr "æ›´æ”¹åŽŸå› " -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:169 -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:169 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:209 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:167 msgid "Leave a note to explain what changes you made and why they were required." msgstr "留言以说明您所åšçš„更改以åŠä¸ºä½•éœ€è¦è¿™äº›æ›´æ”¹ã€‚" -#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/MetricForm.jsx:213 msgid "This will show up in the revision history for this metric to help everyone remember why things changed" msgstr "这将显示在æ¤æŒ‡æ ‡çš„修订历å²è®°å½•ä¸ï¼Œä»¥å¸®åŠ©æ¯ä¸ªäººè®°ä½äº‹æƒ…å‘生å˜åŒ–çš„åŽŸå› " @@ -805,7 +783,7 @@ msgstr "编辑划分" msgid "Create Your Segment" msgstr "创建划分" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:112 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:110 msgid "Make changes to your segment and leave an explanatory note." msgstr "更改划分,并æè¿°å˜åŠ¨å†…容。" @@ -813,37 +791,37 @@ msgstr "更改划分,并æè¿°å˜åŠ¨å†…容。" msgid "Select and add filters to create your new segment for the {0} table" msgstr "é€‰æ‹©å¹¶æ·»åŠ ç›é€‰æ¡ä»¶ä»¥ä¸º{0}表创建新段" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:149 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:147 msgid "Name Your Segment" msgstr "命å划分" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:150 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:148 msgid "Give your segment a name to help others find it." msgstr "命å划分方便其他人查找" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:158 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:156 msgid "Describe Your Segment" msgstr "æ述划分" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:159 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:157 msgid "Give your segment a description to help others understand what it's about." msgstr "æ述划分,方便其他人ç†è§£ã€‚" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:163 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:161 msgid "This is a good place to be more specific about less obvious segment rules" msgstr "在这里详细æ述划分,比如ä¸å¤ªæ˜Žæ˜¾çš„规则" -#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:173 +#: frontend/src/metabase/admin/datamodel/containers/SegmentForm.jsx:171 msgid "This will show up in the revision history for this segment to help everyone remember why things changed" msgstr "这将显示在过滤器的修订历å²è®°å½•ä¸ï¼Œä»¥å¸®åŠ©æ¯ä¸ªäººè®°ä½äº‹æƒ…å‘生å˜åŒ–çš„åŽŸå› " #: frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx:66 -#: frontend/src/metabase/admin/routes.jsx:127 +#: frontend/src/metabase/admin/routes.jsx:129 #: frontend/src/metabase/admin/settings/containers/SettingsEditorApp.jsx:269 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:91 -#: frontend/src/metabase/nav/containers/Navbar.jsx:228 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:92 +#: frontend/src/metabase/nav/containers/Navbar.jsx:227 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:93 -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:162 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:201 msgid "Settings" msgstr "设置" @@ -857,33 +835,29 @@ msgstr "åˆ·æ–°è¡¨æ ¼" #: frontend/src/metabase/admin/people/components/AddRow.jsx:34 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:274 -#: frontend/src/metabase/dashboard/components/DashCard.jsx:281 +#: frontend/src/metabase/dashboard/components/DashCard.jsx:282 msgid "Add" msgstr "æ·»åŠ " #: frontend/src/metabase/setup/components/UserStep.jsx:103 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:67 msgid "Not a valid formatted email address" msgstr "éžæ³•çš„email地å€" #: frontend/src/metabase/entities/users.js:34 -#: frontend/src/metabase/setup/components/UserStep.jsx:186 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:100 +#: frontend/src/metabase/setup/components/UserStep.jsx:189 msgid "First name" msgstr "å" #: frontend/src/metabase/entities/users.js:42 -#: frontend/src/metabase/setup/components/UserStep.jsx:203 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:205 msgid "Last name" msgstr "姓" #: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:77 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:161 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:194 #: frontend/src/metabase/components/NewsletterForm.jsx:94 #: frontend/src/metabase/reference/guide/GettingStartedGuideEditForm.jsx:481 -#: frontend/src/metabase/setup/components/UserStep.jsx:222 -#: frontend/src/metabase/user/components/UpdateUserDetails.jsx:138 +#: frontend/src/metabase/setup/components/UserStep.jsx:223 msgid "Email address" msgstr "邮箱地å€" @@ -919,7 +893,7 @@ msgstr "组员" #: frontend/src/metabase/admin/settings/selectors.js:110 #: frontend/src/metabase/entities/users.js:50 #: frontend/src/metabase/lib/core.js:55 -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:300 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:294 msgid "Email" msgstr "邮箱" @@ -928,8 +902,8 @@ msgid "A group is only as good as its members." msgstr "组内æˆå‘˜æƒé™ä¸€è‡´" #: frontend/src/metabase/admin/people/components/GroupSummary.jsx:15 -#: frontend/src/metabase/admin/routes.jsx:48 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/admin/routes.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Admin" msgstr "管ç†å‘˜" @@ -988,11 +962,11 @@ msgstr "移除分组" #: frontend/src/metabase/components/HeaderModal.jsx:43 #: frontend/src/metabase/dashboard/components/AddSeriesModal.jsx:282 #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:107 -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:395 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:397 #: frontend/src/metabase/query_builder/components/AlertModals.jsx:193 #: frontend/src/metabase/query_builder/components/SidebarContent.jsx:17 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:292 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:307 msgid "Done" msgstr "完æˆ" @@ -1001,9 +975,9 @@ msgid "Group name" msgstr "分组å称" #: frontend/src/metabase/admin/people/components/GroupsListing.jsx:363 -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:25 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:22 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:132 -#: frontend/src/metabase/admin/routes.jsx:88 +#: frontend/src/metabase/admin/routes.jsx:89 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:170 msgid "Groups" msgstr "分组" @@ -1032,10 +1006,10 @@ msgstr "é‡ç½®å¯†ç " msgid "Deactivate" msgstr "åœç”¨" -#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:24 +#: frontend/src/metabase/admin/people/containers/AdminPeopleApp.jsx:21 #: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:94 -#: frontend/src/metabase/admin/routes.jsx:84 -#: frontend/src/metabase/nav/containers/Navbar.jsx:233 +#: frontend/src/metabase/admin/routes.jsx:85 +#: frontend/src/metabase/nav/containers/Navbar.jsx:232 msgid "People" msgstr "人员管ç†" @@ -1074,7 +1048,7 @@ msgstr "我们已ç»å‘é€äº†ä¸€ä¸ªå¸¦æœ‰è¯´æ˜Žçš„邀请给{0}æ¥è®¾ç½®ä»–们的 msgid "We've re-sent {0}'s invite" msgstr "我们已é‡æ–°å‘é€{0}的邀请邮件" -#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:22 +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:21 msgid "Okay" msgstr "好的" @@ -1106,7 +1080,7 @@ msgstr "他们将能够å†æ¬¡ç™»å½•ï¼Œå¹¶ä¸”将被放回到å¸æˆ·è¢«åœç”¨ä¹‹å‰ msgid "Reset {0}'s password?" msgstr "é‡ç½®{0}的密ç " -#: frontend/src/metabase/components/form/StandardForm.jsx:78 +#: frontend/src/metabase/components/form/StandardForm.jsx:76 msgid "Reset" msgstr "é‡ç½®" @@ -1145,19 +1119,19 @@ msgstr "邀请其他人" msgid "Last Login" msgstr "上次登录" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:156 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:154 msgid "Signed up via Google" msgstr "用谷æŒè´¦å·ç™»å½•" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:161 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:159 msgid "Signed up via LDAP" msgstr "用LDAPè´¦å·ç™»å½•" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:173 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:171 msgid "Reactivate this account" msgstr "é‡å¯è´¦å·" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:197 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:195 msgid "Never" msgstr "æ°¸ä¸" @@ -1165,8 +1139,7 @@ msgstr "æ°¸ä¸" #: src/metabase/automagic_dashboards/core.clj msgid "{0} table" msgid_plural "{0} tables" -msgstr[0] "è¡¨æ ¼ {0}\n" -"Plural: {0} å¼ è¡¨æ ¼" +msgstr[0] "{0} å¼ è¡¨æ ¼" #: frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx:49 msgid " will be " @@ -1199,7 +1172,7 @@ msgid " native queries for " msgstr "本地查询" #: frontend/src/metabase/admin/permissions/routes.jsx:12 -#: frontend/src/metabase/nav/containers/Navbar.jsx:248 +#: frontend/src/metabase/nav/containers/Navbar.jsx:247 msgid "Permissions" msgstr "æƒé™" @@ -1256,115 +1229,115 @@ msgstr "MetaBot是Metabaseçš„Slack机器人。您å¯ä»¥åœ¨æ¤å¤„é€‰æ‹©è®¿é—®æƒ msgid "The \"{0}\" group may have access to a different set of {1} than this group, which may give this group additional access to some {2}." msgstr "“{0}â€ç»„å¯ä»¥è®¿é—®ä¸Žè¯¥ç»„ä¸åŒçš„{1},这å¯ä»¥ä¸ºè¯¥ç»„æ供对æŸäº›{2}çš„é¢å¤–访问æƒé™ã€‚" -#: frontend/src/metabase/admin/permissions/selectors.js:127 +#: frontend/src/metabase/admin/permissions/selectors.js:125 msgid "The \"{0}\" group has a higher level of access than this, which will override this setting. You should limit or revoke the \"{1}\" group's access to this item." msgstr "“{0}â€ç»„具有比æ¤æ›´é«˜çš„访问级别,并将覆盖æ¤è®¾ç½®ã€‚您应该é™åˆ¶æˆ–撤消“{1}â€ç»„对æ¤é¡¹ç›®çš„访问æƒé™ã€‚" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Limit" msgstr "é™åˆ¶" -#: frontend/src/metabase/admin/permissions/selectors.js:157 +#: frontend/src/metabase/admin/permissions/selectors.js:151 msgid "Revoke" msgstr "撤销" -#: frontend/src/metabase/admin/permissions/selectors.js:159 +#: frontend/src/metabase/admin/permissions/selectors.js:153 msgid "access even though \"{0}\" has greater access?" msgstr "å³ä½¿{0}有更高æƒé™ï¼Ÿ" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:261 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:255 msgid "Limit access" msgstr "部分æƒé™" -#: frontend/src/metabase/admin/permissions/selectors.js:162 -#: frontend/src/metabase/admin/permissions/selectors.js:226 -#: frontend/src/metabase/admin/permissions/selectors.js:269 +#: frontend/src/metabase/admin/permissions/selectors.js:156 +#: frontend/src/metabase/admin/permissions/selectors.js:220 +#: frontend/src/metabase/admin/permissions/selectors.js:263 msgid "Revoke access" msgstr "å–消æƒé™" -#: frontend/src/metabase/admin/permissions/selectors.js:171 +#: frontend/src/metabase/admin/permissions/selectors.js:165 msgid "Change access to this database to limited?" msgstr "更改æƒé™ä¸ºå—é™æƒé™" -#: frontend/src/metabase/admin/permissions/selectors.js:172 +#: frontend/src/metabase/admin/permissions/selectors.js:166 msgid "Change" msgstr "更改" -#: frontend/src/metabase/admin/permissions/selectors.js:185 +#: frontend/src/metabase/admin/permissions/selectors.js:179 msgid "Allow Raw Query Writing?" msgstr "å…许原始查询è¯å¥å†™ä½œï¼Ÿ" -#: frontend/src/metabase/admin/permissions/selectors.js:186 +#: frontend/src/metabase/admin/permissions/selectors.js:180 msgid "This will also change this group's data access to Unrestricted for this database." msgstr "这也将更改æ¤ç»„对æ¤æ•°æ®åº“的“ä¸å—é™åˆ¶çš„â€è®¿é—®æƒé™ã€‚" -#: frontend/src/metabase/admin/permissions/selectors.js:187 +#: frontend/src/metabase/admin/permissions/selectors.js:181 msgid "Allow" msgstr "å…许" -#: frontend/src/metabase/admin/permissions/selectors.js:224 +#: frontend/src/metabase/admin/permissions/selectors.js:218 msgid "Revoke access to all tables?" msgstr "å–消所有表的æƒé™" -#: frontend/src/metabase/admin/permissions/selectors.js:225 +#: frontend/src/metabase/admin/permissions/selectors.js:219 msgid "This will also revoke this group's access to raw queries for this database." msgstr "这也将撤消æ¤ç»„对该数æ®åº“的原始查询的访问æƒé™ã€‚" -#: frontend/src/metabase/admin/permissions/selectors.js:254 +#: frontend/src/metabase/admin/permissions/selectors.js:248 msgid "Grant unrestricted access" msgstr "授予ä¸å—é™åˆ¶çš„访问æƒé™" -#: frontend/src/metabase/admin/permissions/selectors.js:255 +#: frontend/src/metabase/admin/permissions/selectors.js:249 msgid "Unrestricted access" msgstr "ä¸å—é™åˆ¶çš„æƒé™" -#: frontend/src/metabase/admin/permissions/selectors.js:262 +#: frontend/src/metabase/admin/permissions/selectors.js:256 msgid "Limited access" msgstr "å—é™åˆ¶çš„æƒé™" -#: frontend/src/metabase/admin/permissions/selectors.js:270 +#: frontend/src/metabase/admin/permissions/selectors.js:264 msgid "No access" msgstr "没有æƒé™" -#: frontend/src/metabase/admin/permissions/selectors.js:276 +#: frontend/src/metabase/admin/permissions/selectors.js:270 msgid "Write raw queries" msgstr "写原始查询è¯å¥" -#: frontend/src/metabase/admin/permissions/selectors.js:277 +#: frontend/src/metabase/admin/permissions/selectors.js:271 msgid "Can write raw queries" msgstr "能够写原始查询è¯å¥" -#: frontend/src/metabase/admin/permissions/selectors.js:284 +#: frontend/src/metabase/admin/permissions/selectors.js:278 msgid "Curate collection" msgstr "修改集åˆ" -#: frontend/src/metabase/admin/permissions/selectors.js:291 +#: frontend/src/metabase/admin/permissions/selectors.js:285 msgid "View collection" msgstr "查看集åˆ" -#: frontend/src/metabase/admin/permissions/selectors.js:334 -#: frontend/src/metabase/admin/permissions/selectors.js:430 -#: frontend/src/metabase/admin/permissions/selectors.js:527 +#: frontend/src/metabase/admin/permissions/selectors.js:328 +#: frontend/src/metabase/admin/permissions/selectors.js:424 +#: frontend/src/metabase/admin/permissions/selectors.js:521 msgid "Data Access" msgstr "å…许访问数æ®" -#: frontend/src/metabase/admin/permissions/selectors.js:495 -#: frontend/src/metabase/admin/permissions/selectors.js:652 -#: frontend/src/metabase/admin/permissions/selectors.js:657 +#: frontend/src/metabase/admin/permissions/selectors.js:489 +#: frontend/src/metabase/admin/permissions/selectors.js:646 +#: frontend/src/metabase/admin/permissions/selectors.js:651 msgid "View tables" msgstr "æŸ¥çœ‹è¡¨æ ¼" -#: frontend/src/metabase/admin/permissions/selectors.js:593 +#: frontend/src/metabase/admin/permissions/selectors.js:587 msgid "SQL Queries" msgstr "SQL查询" -#: frontend/src/metabase/admin/permissions/selectors.js:663 +#: frontend/src/metabase/admin/permissions/selectors.js:657 msgid "View schemas" msgstr "查看架构" -#: frontend/src/metabase/admin/routes.jsx:59 -#: frontend/src/metabase/nav/containers/Navbar.jsx:238 +#: frontend/src/metabase/admin/routes.jsx:60 +#: frontend/src/metabase/nav/containers/Navbar.jsx:237 msgid "Data Model" msgstr "æ•°æ®æ¨¡åž‹" @@ -1388,11 +1361,11 @@ msgstr "é…ç½®" #: frontend/src/metabase/admin/settings/components/SettingsLdapForm.jsx:13 #: frontend/src/metabase/admin/settings/selectors.js:204 msgid "LDAP" -msgstr "è”机分æžå¤„ç†" +msgstr "LDAP" #: frontend/src/metabase/admin/settings/components/SettingsAuthenticationOptions.jsx:23 msgid "Allows users within your LDAP directory to log in to Metabase with their LDAP credentials, and allows automatic mapping of LDAP groups to Metabase groups." -msgstr "å…è®¸ç”¨æˆ·åœ¨æ²¡æœ‰ä½ çš„LDAPå—典的情况下使用他们的LDAPè¯ä¹¦æ¥ç™»å½•åˆ°Metabase,并且å…许自动LDAP群组的自动åŒæ¥åˆ°Metabase的群组" +msgstr "å…许LDAP目录ä¸çš„用户使用他们的LDAPå‡è¯ç™»å½•åˆ°Metabase,并且å…许自动åŒæ¥LDAP组的数æ®åˆ°Metabaseä¸æ¥ã€‚" #: frontend/src/metabase/admin/settings/components/SettingsBatchForm.jsx:17 #: frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx:69 @@ -1507,8 +1480,8 @@ msgid "Metabase {0} is available. You're running {1}" msgstr "Metabase {0}å¯æ›´æ–°ã€‚ä½ æ£åœ¨è¿è¡Œæ˜¯{1}" #: frontend/src/metabase/admin/settings/components/SettingsUpdatesForm.jsx:113 -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:106 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:104 msgid "Update" msgstr "æ›´æ–°" @@ -1531,18 +1504,20 @@ msgstr "åˆ é™¤è‡ªå®šä¹‰åœ°å›¾" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:203 #: frontend/src/metabase/admin/settings/components/widgets/LdapGroupMappingsWidget.jsx:348 +#: frontend/src/metabase/containers/Overworld.jsx:146 +#: frontend/src/metabase/containers/Overworld.jsx:293 #: frontend/src/metabase/dashboard/components/RemoveFromDashboardModal.jsx:40 #: frontend/src/metabase/parameters/components/ParameterWidget.jsx:193 -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:117 -#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:157 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:115 +#: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:159 msgid "Remove" msgstr "åˆ é™¤" #: frontend/src/metabase/admin/settings/components/widgets/CustomGeoJSONWidget.jsx:228 #: frontend/src/metabase/dashboard/containers/DashCardCardParameterMapper.jsx:188 #: frontend/src/metabase/parameters/components/ParameterValueWidget.jsx:246 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:148 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:197 msgid "Select…" msgstr "选择" @@ -1743,7 +1718,7 @@ msgstr "未知设置{0}" msgid "Setup" msgstr "åˆå§‹åŒ–" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:211 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:207 #: frontend/src/metabase/admin/settings/selectors.js:28 msgid "General" msgstr "基本设置" @@ -1870,7 +1845,7 @@ msgid "Username or DN" msgstr "用户å或DN" #: frontend/src/metabase/admin/settings/selectors.js:244 -#: frontend/src/metabase/auth/containers/LoginApp.jsx:191 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:223 #: frontend/src/metabase/user/components/UserSettings.jsx:59 msgid "Password" msgstr "密ç " @@ -2033,31 +2008,31 @@ msgstr "忘记密ç " msgid "The email you use for your Metabase account" msgstr "ä½ ä½œä¸ºMetabase账户的Email地å€" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:99 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:98 msgid "Send password reset email" msgstr "å‘é€è´¦å·é‡ç½®é‚®ä»¶" -#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:110 +#: frontend/src/metabase/auth/containers/ForgotPasswordApp.jsx:109 msgid "Check your email for instructions on how to reset your password." msgstr "æ£€æŸ¥ä½ çš„é‚®ä»¶æ¥èŽ·å–é‡ç½®å¯†ç 说明" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:131 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:148 msgid "Sign in to Metabase" msgstr "登录Metabase" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:141 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:165 msgid "OR" msgstr "或者" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:160 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:193 msgid "Username or email address" msgstr "用户å或者邮箱地å€" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:220 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:254 msgid "Sign in" msgstr "登录" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:233 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:267 msgid "I seem to have forgotten my password" msgstr "我似乎忘记了我的密ç " @@ -2075,7 +2050,7 @@ msgid "For security reasons, password reset links expire after a little while. I msgstr "äºŽå®‰å…¨åŽŸå› ï¼Œå¯†ç é‡ç½®é“¾æŽ¥ä¼šåœ¨ä¸€æ®µæ—¶é—´åŽè¿‡æœŸã€‚如果您ä»éœ€è¦é‡ç½®å¯†ç ,å¯ä»¥{0}。" #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:150 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:126 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:125 msgid "New password" msgstr "新密ç " @@ -2088,38 +2063,38 @@ msgid "Create a new password" msgstr "创建新密ç " #: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:173 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:137 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:135 msgid "Make sure its secure like the instructions above" msgstr "ç¡®ä¿å®ƒçš„安全性åƒä¸Šæ–¹è¯´æ˜Žä¸ä¸€æ ·" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:187 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:145 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:186 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:143 msgid "Confirm new password" msgstr "确认新密ç " -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:194 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:155 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:193 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:152 msgid "Make sure it matches the one you just entered" msgstr "ç¡®è®¤å®ƒå’Œä½ åˆšåˆšè¾“å…¥çš„ä¸€è‡´" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:219 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:217 msgid "Your password has been reset." msgstr "ä½ çš„å¯†ç å·²ç»è¢«é‡ç½®" -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:225 -#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:230 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:223 +#: frontend/src/metabase/auth/containers/PasswordResetApp.jsx:228 msgid "Sign in with your new password" msgstr "ç”¨ä½ çš„æ–°å¯†ç 登录" #: frontend/src/metabase/components/ActionButton.jsx:53 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:172 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:189 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:186 msgid "Save failed" msgstr "ä¿å˜å¤±è´¥" #: frontend/src/metabase/components/ActionButton.jsx:54 #: frontend/src/metabase/components/SaveStatus.jsx:60 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:173 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:190 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:133 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:187 msgid "Saved" @@ -2138,22 +2113,23 @@ msgid "The dashboards, collections, and pulses in this collection will also be a msgstr "æ¤é›†åˆä¸çš„仪表æ¿ï¼Œé›†åˆå’Œå®šæ—¶é€šçŸ¥ä¹Ÿå°†è¢«å½’档。" #: frontend/src/metabase/components/ArchiveModal.jsx:38 -#: frontend/src/metabase/components/CollectionLanding.jsx:620 +#: frontend/src/metabase/components/CollectionLanding.jsx:616 #: frontend/src/metabase/components/EntityMenu.info.js:31 #: frontend/src/metabase/components/EntityMenu.info.js:87 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:176 #: frontend/src/metabase/home/containers/ArchiveApp.jsx:50 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:196 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:201 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:202 -#: frontend/src/metabase/routes.jsx:199 +#: frontend/src/metabase/routes.jsx:196 msgid "Archive" msgstr "å½’æ¡£" -#: frontend/src/metabase/containers/ErrorPages.jsx:63 +#: frontend/src/metabase/containers/ErrorPages.jsx:65 msgid "This {0} has been archived" msgstr "æ¤{0}已归档。" -#: frontend/src/metabase/components/CollectionLanding.jsx:714 +#: frontend/src/metabase/components/CollectionLanding.jsx:710 msgid "View the archive" msgstr "查看归档" @@ -2163,17 +2139,19 @@ msgstr "å–消归档æ¤{0}" #: frontend/src/metabase/components/BrowseApp.jsx:39 #: frontend/src/metabase/components/BrowseApp.jsx:102 -#: frontend/src/metabase/components/BrowseApp.jsx:196 -#: frontend/src/metabase/containers/Overworld.jsx:219 +#: frontend/src/metabase/components/BrowseApp.jsx:194 +#: frontend/src/metabase/containers/Overworld.jsx:270 +#: frontend/src/metabase/reference/databases/DatabaseList.jsx:49 +#: frontend/src/metabase/reference/guide/BaseSidebar.jsx:39 msgid "Our data" msgstr "我们的数æ®" #: frontend/src/metabase/components/BrowseApp.jsx:146 -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:55 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:53 msgid "X-ray this table" msgstr "é€è§†è¿™ä¸ªæ•°æ®è¡¨å•" -#: frontend/src/metabase/components/BrowseApp.jsx:163 +#: frontend/src/metabase/components/BrowseApp.jsx:161 msgid "Learn about this table" msgstr "äº†è§£è¿™å¼ æ•°æ®è¡¨" @@ -2268,43 +2246,43 @@ msgstr "固定" msgid "Drag something here to pin it to the top" msgstr "把东西拖到这里将它固定在顶部" -#: frontend/src/metabase/admin/permissions/selectors.js:740 +#: frontend/src/metabase/admin/permissions/selectors.js:734 #: frontend/src/metabase/components/CollectionLanding.jsx:352 -#: frontend/src/metabase/home/containers/SearchApp.jsx:78 +#: frontend/src/metabase/home/containers/SearchApp.jsx:77 msgid "Collections" msgstr "集åˆ" #: frontend/src/metabase/components/CollectionLanding.jsx:431 -#: frontend/src/metabase/components/CollectionLanding.jsx:454 +#: frontend/src/metabase/components/CollectionLanding.jsx:452 msgid "Drag here to un-pin" msgstr "拖到这里å–消固定" -#: frontend/src/metabase/components/CollectionLanding.jsx:489 +#: frontend/src/metabase/components/CollectionLanding.jsx:487 msgid "{0} item selected" msgid_plural "{0} items selected" msgstr[0] "已选择{0}项" -#: frontend/src/metabase/components/CollectionLanding.jsx:519 +#: frontend/src/metabase/components/CollectionLanding.jsx:517 msgid "Move {0} items?" msgstr "移动{0}项?" -#: frontend/src/metabase/components/CollectionLanding.jsx:520 +#: frontend/src/metabase/components/CollectionLanding.jsx:518 msgid "Move \"{0}\"?" msgstr "移动“{0}â€ï¼Ÿ" -#: frontend/src/metabase/components/CollectionLanding.jsx:627 +#: frontend/src/metabase/components/CollectionLanding.jsx:623 #: frontend/src/metabase/components/EntityMenu.info.js:29 #: frontend/src/metabase/components/EntityMenu.info.js:85 #: frontend/src/metabase/containers/CollectionMoveModal.jsx:69 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:30 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:36 msgid "Move" msgstr "移动" -#: frontend/src/metabase/components/CollectionLanding.jsx:691 +#: frontend/src/metabase/components/CollectionLanding.jsx:687 msgid "Edit this collection" msgstr "修改集åˆ" -#: frontend/src/metabase/components/CollectionLanding.jsx:699 +#: frontend/src/metabase/components/CollectionLanding.jsx:695 msgid "Archive this collection" msgstr "归档集åˆ" @@ -2321,11 +2299,11 @@ msgstr "新建集åˆ" msgid "Copied!" msgstr "å·²å¤åˆ¶ï¼" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:216 msgid "Use an SSH-tunnel for database connections" msgstr "为Metabse连接使用SSH通é“" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:220 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:218 msgid "Some database installations can only be accessed by connecting through an SSH bastion host.\n" "This option also provides an extra layer of security when a VPN is not available.\n" "Enabling this is usually slower than a direct connection." @@ -2333,7 +2311,7 @@ msgstr "一些数æ®åº“安装åªæœ‰é€šè¿‡SSH通é“访问的æœåŠ¡å™¨æœ‰æƒè®¿é—® "当VPNä¸å¯ç”¨æ—¶ï¼Œè¿™ä¸ªé€‰é¡¹ä¹Ÿæ供了一个é¢å¤–的安全层。\n" "å¯ç”¨è¿™ä¸ªé€‰é¡¹ï¼Œé€šå¸¸æ¯”直接连接速度更慢。" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:294 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:290 msgid "This is a large database, so let me choose when Metabase syncs and scans" msgstr "这是一个大型数æ®åº“,让我选择MetabaseåŒæ¥å’Œæ‰«æ的时间" @@ -2343,47 +2321,47 @@ msgid "By default, Metabase does a lightweight hourly sync and an intensive dail msgstr "默认情况下,Metabaseæ¯å°æ—¶æ‰§è¡Œä¸€æ¬¡è½»é‡çº§åŒæ¥ï¼Œæ¯å¤©æ‰§è¡Œä¸€æ¬¡å¯†é›†æ‰«æ。\n" "如果您有一个大型数æ®åº“,我们建议å¯ç”¨æ¤åŠŸèƒ½å¹¶æŸ¥çœ‹å—段值扫æçš„å‘生时间和频率。" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:330 msgid "{0} to generate a Client ID and Client Secret for your project." msgstr "{0}为您的项目生æˆå®¢æˆ·ç«¯ID和客户端密钥。" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:337 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:364 -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:400 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:332 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:359 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 msgid "Click here" msgstr "点击这里" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:340 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:335 msgid "Choose \"Other\" as the application type. Name it whatever you'd like." msgstr "选择“其他â€ä½œä¸ºåº”用程åºç±»åž‹ã€‚把它命åä¸ºä½ æƒ³è¦çš„任何东西。" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:362 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:357 msgid "{0} to get an auth code" msgstr "{0}获å–身份验è¯ä»£ç " -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:374 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:369 msgid "with Google Drive permissions" msgstr "使用Google Driveræƒé™" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:395 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:390 msgid "To use Metabase with this data you must enable API access in the Google Developers Console." msgstr "è¦å°†Metabase用于æ¤æ•°æ®ï¼Œæ‚¨å¿…须在Google Developers Consoleä¸å¯ç”¨API访问æƒé™ã€‚" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:398 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:393 msgid "{0} to go to the console if you haven't already done so." msgstr "å¦‚æžœæ‚¨è¿˜æ²¡æœ‰è¿™æ ·åšï¼Œè¯·è½¬åˆ°æŽ§åˆ¶å°{0}。" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:447 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:449 msgid "How would you like to refer to this database?" msgstr "您想如何使用这个数æ®åº“?" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:479 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:494 #: frontend/src/metabase/home/components/NewUserOnboardingModal.jsx:97 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:236 -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:194 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:199 #: frontend/src/metabase/setup/components/DatabaseSchedulingStep.jsx:79 -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 -#: frontend/src/metabase/setup/components/UserStep.jsx:308 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:120 +#: frontend/src/metabase/setup/components/UserStep.jsx:302 msgid "Next" msgstr "下一æ¥" @@ -2402,7 +2380,7 @@ msgstr "移动这个项目" #: frontend/src/metabase/components/EntityMenu.info.js:24 #: frontend/src/metabase/components/EntityMenu.info.js:80 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:15 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:21 msgid "Edit this question" msgstr "编辑这个æé—®" @@ -2415,7 +2393,7 @@ msgstr "行为的类型" #: frontend/src/metabase/components/EntityMenu.info.js:28 #: frontend/src/metabase/components/EntityMenu.info.js:84 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:20 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:26 msgid "View revision history" msgstr "查看修订历å²" @@ -2431,7 +2409,7 @@ msgstr "档案行为" #: frontend/src/metabase/components/EntityMenu.info.js:45 #: frontend/src/metabase/components/EntityMenu.info.js:97 -#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:25 +#: frontend/src/metabase/query_builder/components/view/QuestionEntityMenu.jsx:31 msgid "Add to dashboard" msgstr "æ·»åŠ åˆ°ä»ªè¡¨ç›˜" @@ -2442,7 +2420,7 @@ msgstr "下载结果" #: frontend/src/metabase/components/EntityMenu.info.js:51 #: frontend/src/metabase/components/EntityMenu.info.js:103 -#: frontend/src/metabase/public/components/widgets/EmbedWidget.jsx:52 +#: frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx:53 msgid "Sharing and embedding" msgstr "分享并且编辑" @@ -2488,65 +2466,63 @@ msgstr "基于这个模å¼" msgid "A look at your" msgstr "看看您的" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:240 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:248 msgid "Search the list" msgstr "查找列表" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:244 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 msgid "Search by {0}" msgstr "用{0}æœç´¢" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:246 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 msgid " or enter an ID" msgstr "或者输入一个ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:250 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:258 msgid "Enter an ID" msgstr "输入一个ID" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:252 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:260 msgid "Enter a number" msgstr "输入一个数å—" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:254 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:262 msgid "Enter some text" msgstr "输入一些文本" -#: frontend/src/metabase/components/FieldValuesWidget.jsx:366 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 msgid "No matching {0} found." msgstr "没有找到匹é…çš„{0} " -#: frontend/src/metabase/components/FieldValuesWidget.jsx:374 +#: frontend/src/metabase/components/FieldValuesWidget.jsx:382 msgid "Including every option in your filter probably won’t do much…" msgstr "包括æ¯ä¸ªé€‰é¡¹åœ¨ä½ 的过滤器ä¸å¾ˆå¯èƒ½å°†ä¸ä¼šèµ·å¾ˆå¤§ä½œç”¨â€¦â€¦" -#: frontend/src/metabase/containers/ErrorPages.jsx:24 +#: frontend/src/metabase/containers/ErrorPages.jsx:26 msgid "Something's gone wrong" msgstr "有些问题å‘生了" -#: frontend/src/metabase/containers/ErrorPages.jsx:25 +#: frontend/src/metabase/containers/ErrorPages.jsx:27 msgid "We've run into an error. You can try refreshing the page, or just go back." msgstr "我们è¿è¡Œä¸å‡ºçŽ°äº†ä¸€ä¸ªé”™è¯¯ï¼Œä½ å¯ä»¥å°è¯•åˆ·æ–°è¿™ä¸ªé¡µé¢ï¼Œæˆ–者直接返回" -#: frontend/src/metabase/components/Header.jsx:97 -#: frontend/src/metabase/components/HeaderBar.jsx:45 -#: frontend/src/metabase/components/ListItem.jsx:37 -#: frontend/src/metabase/reference/components/Detail.jsx:47 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:161 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:216 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:194 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:212 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:212 +#: frontend/src/metabase/components/Header.jsx:104 +#: frontend/src/metabase/reference/components/Detail.jsx:45 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:162 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:217 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:195 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:210 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:238 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:213 msgid "No description yet" msgstr "æš‚æ— æè¿°" -#: frontend/src/metabase/components/Header.jsx:112 +#: frontend/src/metabase/components/Header.jsx:119 #: frontend/src/metabase/entities/containers/EntityForm.jsx:60 msgid "New {0}" msgstr "æ–°çš„" -#: frontend/src/metabase/components/Header.jsx:123 +#: frontend/src/metabase/components/Header.jsx:130 msgid "Asked by {0}" msgstr "被{0}å‘èµ·çš„æé—®" @@ -2567,8 +2543,8 @@ msgid "Reverted to an earlier revision and {0}" msgstr "回滚到一个更早的调整并且{0}" #: frontend/src/metabase/components/HistoryModal.jsx:42 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:278 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:57 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:58 msgid "Revision history" msgstr "调整记录" @@ -2613,7 +2589,7 @@ msgid "Questions" msgstr "问题" #: frontend/src/metabase/components/ItemTypeFilterBar.jsx:28 -#: frontend/src/metabase/routes.jsx:323 +#: frontend/src/metabase/routes.jsx:317 msgid "Pulses" msgstr "定时任务" @@ -2650,7 +2626,7 @@ msgstr "订阅" msgid "You're subscribed. Thanks for using Metabase!" msgstr "订阅æˆåŠŸã€‚感谢您使用Metabaseï¼" -#: frontend/src/metabase/containers/ErrorPages.jsx:44 +#: frontend/src/metabase/containers/ErrorPages.jsx:46 msgid "We're a little lost..." msgstr "我们有点失è½......" @@ -2659,14 +2635,14 @@ msgid "Temporary Password" msgstr "临时密ç " #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:411 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:426 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:463 msgid "Hide" msgstr "éšè—" #: frontend/src/metabase/components/PasswordReveal.jsx:68 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:412 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:427 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:449 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:464 msgid "Show" msgstr "显示" @@ -2768,7 +2744,7 @@ msgstr "已选择" msgid "Nothing to select" msgstr "æš‚æ— ç»“æžœ" -#: frontend/src/metabase/containers/ErrorPages.jsx:54 +#: frontend/src/metabase/containers/ErrorPages.jsx:56 msgid "Sorry, you don’t have permission to see that." msgstr "对ä¸èµ·ï¼Œä½ 没有æƒé™çœ‹é‚£äº›ä¸œè¥¿" @@ -2776,8 +2752,8 @@ msgstr "对ä¸èµ·ï¼Œä½ 没有æƒé™çœ‹é‚£äº›ä¸œè¥¿" msgid "Unknown error encountered" msgstr "未知错误å‘生了" -#: frontend/src/metabase/components/form/StandardForm.jsx:69 -#: frontend/src/metabase/nav/containers/Navbar.jsx:350 +#: frontend/src/metabase/components/form/StandardForm.jsx:67 +#: frontend/src/metabase/nav/containers/Navbar.jsx:344 msgid "Create" msgstr "创建" @@ -2785,7 +2761,6 @@ msgstr "创建" msgid "Create dashboard" msgstr "创建仪表盘" -#: frontend/src/metabase/containers/EntitySearch.jsx:35 #: frontend/src/metabase/visualizations/visualizations/Table.jsx:57 msgid "Table" msgstr "è¡¨æ ¼" @@ -2810,12 +2785,11 @@ msgstr "å°è¯•è°ƒæ•´è¿‡æ»¤å™¨ä»¥æ‰¾åˆ°æ‚¨è¦æŸ¥æ‰¾çš„内容。" msgid "View by" msgstr "查看方å¼" -#: frontend/src/metabase/containers/EntitySearch.jsx:495 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:124 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:122 msgid "of" msgstr "çš„" -#: frontend/src/metabase/containers/Overworld.jsx:75 +#: frontend/src/metabase/containers/Overworld.jsx:91 msgid "Don't tell anyone, but you're my favorite." msgstr "ä¸è¦å‘Šè¯‰ä»»ä½•äººï¼Œä½†ä½ 是我的最爱。" @@ -2823,19 +2797,19 @@ msgstr "ä¸è¦å‘Šè¯‰ä»»ä½•äººï¼Œä½†ä½ 是我的最爱。" msgid "Once you connect your own data, I can show you some automatic explorations called x-rays. Here are some examples with sample data." msgstr "一旦连接了自己的数æ®ï¼Œæˆ‘å°±å¯ä»¥å‘您展示一些称为é€è§†çš„自动探索。以下是一些基于示例数æ®çš„例å。" -#: frontend/src/metabase/containers/Overworld.jsx:128 -#: frontend/src/metabase/containers/Overworld.jsx:301 +#: frontend/src/metabase/containers/Overworld.jsx:180 +#: frontend/src/metabase/containers/Overworld.jsx:384 #: frontend/src/metabase/reference/components/GuideHeader.jsx:12 msgid "Start here" msgstr "从这里开始" -#: frontend/src/metabase/containers/Overworld.jsx:296 +#: frontend/src/metabase/containers/Overworld.jsx:379 #: frontend/src/metabase/entities/collections.js:150 #: src/metabase/models/collection.clj msgid "Our analytics" msgstr "分æž" -#: frontend/src/metabase/containers/Overworld.jsx:203 +#: frontend/src/metabase/containers/Overworld.jsx:248 msgid "Browse all items" msgstr "æµè§ˆæ‰€æœ‰" @@ -2847,44 +2821,45 @@ msgstr "替æ¢è¿˜æ˜¯ä¿å˜ä¸ºæ–°çš„?" msgid "Replace original question, \"{0}\"" msgstr "替æ¢åŽŸå§‹é—®é¢˜â€œ{0}â€" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:180 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:178 msgid "Save as new question" msgstr "ä¿å˜ä¸ºæ–°é—®é¢˜" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:189 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:187 msgid "First, save your question" msgstr "首先,ä¿å˜æ‚¨çš„问题" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:190 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:188 msgid "Save question" msgstr "ä¿å˜é—®é¢˜" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:226 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:224 msgid "What is the name of your card?" msgstr "这个å¡ç‰‡å«ä»€ä¹ˆåå—?" #: frontend/src/metabase/admin/tasks/containers/JobInfoApp.jsx:31 #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:18 -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:234 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:232 #: frontend/src/metabase/entities/collections.js:102 #: frontend/src/metabase/entities/dashboards.js:148 -#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:205 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:159 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:214 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:192 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:206 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:210 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:210 +#: frontend/src/metabase/lib/core.js:50 frontend/src/metabase/lib/core.js:235 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:160 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:215 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:193 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:208 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:236 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:211 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:25 msgid "Description" msgstr "æè¿°" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:240 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:238 +#: frontend/src/metabase/entities/collections.js:104 #: frontend/src/metabase/entities/dashboards.js:150 msgid "It's optional but oh, so helpful" msgstr "这是å¯é€‰çš„,但éžå¸¸æœ‰å¸®åŠ©" -#: frontend/src/metabase/containers/SaveQuestionModal.jsx:247 +#: frontend/src/metabase/containers/SaveQuestionModal.jsx:245 #: frontend/src/metabase/entities/dashboards.js:154 msgid "Which collection should this go in?" msgstr "将这个放到哪个集åˆä¸ï¼Ÿ" @@ -2925,11 +2900,11 @@ msgstr "文档仪表盘" msgid "Make sure to make a selection for each series, or the filter won't work on this card." msgstr "ç¡®ä¿ä¸ºæ¯ä¸ªç³»åˆ—都åšå‡ºäº†é€‰æ‹©ï¼Œä¸ç„¶ç›é€‰å°†ä¸ä¼šåœ¨è¿™ä¸ªå¡ç‰‡ä¸Šèµ·ä½œç”¨" -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:291 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 msgid "This dashboard is looking empty." msgstr "这个仪表盘看起æ¥æ˜¯ç©ºçš„" -#: frontend/src/metabase/dashboard/components/Dashboard.jsx:292 +#: frontend/src/metabase/dashboard/components/Dashboard.jsx:293 msgid "Add a question to start making it useful!" msgstr "æ·»åŠ ä¸€ä¸ªç–‘é—®æ¥è®©å®ƒå˜å¾—有用" @@ -2949,50 +2924,50 @@ msgstr "退出全å±" msgid "Enter fullscreen" msgstr "进入全å±" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:171 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:188 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:185 msgid "Saving…" msgstr "ä¿å˜ä¸" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:206 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:223 msgid "Add a question" msgstr "æ·»åŠ ä¸€ä¸ªé—®é¢˜" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:209 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:226 msgid "Add a question to this dashboard" msgstr "æ·»åŠ æŠ¥è¡¨åˆ°ä»ªè¡¨ç›˜" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:238 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:255 msgid "Add a filter" msgstr "æ·»åŠ ç›é€‰" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:244 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:261 #: frontend/src/metabase/public/components/widgets/AdvancedSettingsPane.jsx:80 msgid "Parameters" msgstr "å‚æ•°" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:264 -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:268 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:281 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:285 msgid "Add a text box" msgstr "æ·»åŠ æ–‡æœ¬æ¡†" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:325 msgid "Move dashboard" msgstr "移动仪表盘" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:291 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:308 msgid "Edit dashboard" msgstr "编辑仪表盘" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:295 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:312 msgid "Edit Dashboard Layout" msgstr "编辑仪表盘展示" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:358 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:376 msgid "You are editing a dashboard" msgstr "æ£åœ¨ç¼–辑仪表盘" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:363 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:381 msgid "Select the field that should be filtered for each card" msgstr "选择应该在æ¯ä¸ªå¡ç‰‡ä¸éƒ½åº”该被过滤的å—段" @@ -3043,11 +3018,11 @@ msgstr "30分钟" msgid "60 minutes" msgstr "60分钟" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:31 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:51 msgid "Auto-refresh" msgstr "自动刷新" -#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:37 +#: frontend/src/metabase/dashboard/components/RefreshWidget.jsx:57 msgid "Refreshing in" msgstr "刷新于" @@ -3059,7 +3034,7 @@ msgstr "移除这个疑问?" msgid "Your dashboard was saved" msgstr "ä½ çš„ä»ªè¡¨ç›˜å·²ç»ä¿å˜" -#: frontend/src/metabase/components/CollectionLanding.jsx:744 +#: frontend/src/metabase/components/CollectionLanding.jsx:740 #: frontend/src/metabase/dashboard/containers/AutomaticDashboardApp.jsx:79 msgid "See it" msgstr "查看它" @@ -3146,10 +3121,9 @@ msgstr "从仪表盘ä¸ç§»é™¤ä¸€ä¸ªé—®é¢˜" msgid "received the latest data from" msgstr "接收最新的数æ®æ¥è‡ª" -#: frontend/src/metabase-lib/lib/Dimension.js:814 #: frontend/src/metabase/home/components/Activity.jsx:246 #: frontend/src/metabase/lib/query_time.js:180 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:325 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:329 msgid "Unknown" msgstr "未知" @@ -3266,7 +3240,7 @@ msgstr "查看全部" msgid "Recently Viewed" msgstr "最近查看" -#: frontend/src/metabase/home/components/RecentViews.jsx:75 +#: frontend/src/metabase/home/components/RecentViews.jsx:77 msgid "You haven't looked at any dashboards or questions recently" msgstr "最近没有查看的仪表盘或者图表" @@ -3280,11 +3254,11 @@ msgid "Unarchive" msgstr "å–消归档" #: frontend/src/metabase/home/containers/HomepageApp.jsx:77 -#: frontend/src/metabase/nav/components/ProfileLink.jsx:58 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:59 msgid "Activity" msgstr "活动" -#: frontend/src/metabase/home/containers/SearchApp.jsx:30 +#: frontend/src/metabase/home/containers/SearchApp.jsx:31 msgid "Results for \"{0}\"" msgstr "{0}的结果" @@ -3346,6 +3320,9 @@ msgstr "头åƒå›¾ç‰‡URL链接" #: frontend/src/metabase/lib/core.js:206 frontend/src/metabase/lib/core.js:211 #: frontend/src/metabase/lib/core.js:216 frontend/src/metabase/lib/core.js:221 #: frontend/src/metabase/lib/core.js:226 frontend/src/metabase/lib/core.js:231 +#: frontend/src/metabase/lib/core.js:236 frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:246 frontend/src/metabase/lib/core.js:251 +#: frontend/src/metabase/lib/core.js:256 frontend/src/metabase/lib/core.js:261 msgid "Common" msgstr "å…±åŒ" @@ -3388,8 +3365,8 @@ msgstr "ç»åº¦" #: frontend/src/metabase-lib/lib/DimensionOptions.js:138 #: frontend/src/metabase/lib/core.js:85 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:152 -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:41 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:155 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:45 msgid "Number" msgstr "æ•°å—" @@ -3435,93 +3412,93 @@ msgstr "创建时间" msgid "Creation date" msgstr "创建日期" -#: frontend/src/metabase/lib/core.js:145 +#: frontend/src/metabase/lib/core.js:175 msgid "Product" msgstr "产å“" -#: frontend/src/metabase/lib/core.js:150 +#: frontend/src/metabase/lib/core.js:180 msgid "User" msgstr "用户" -#: frontend/src/metabase/lib/core.js:155 +#: frontend/src/metabase/lib/core.js:185 msgid "Source" msgstr "æ¥æº" -#: frontend/src/metabase/lib/core.js:160 +#: frontend/src/metabase/lib/core.js:190 msgid "Price" msgstr "ä»·æ ¼" -#: frontend/src/metabase/lib/core.js:165 +#: frontend/src/metabase/lib/core.js:195 msgid "Join timestamp" msgstr "å…³è”时间戳" -#: frontend/src/metabase/lib/core.js:170 +#: frontend/src/metabase/lib/core.js:200 msgid "Join time" msgstr "å…³è”时间" -#: frontend/src/metabase/lib/core.js:175 +#: frontend/src/metabase/lib/core.js:205 msgid "Join date" msgstr "å…³è”日期" -#: frontend/src/metabase/lib/core.js:180 +#: frontend/src/metabase/lib/core.js:210 msgid "Share" msgstr "分享" -#: frontend/src/metabase/lib/core.js:185 +#: frontend/src/metabase/lib/core.js:215 msgid "Owner" msgstr "拥有者" -#: frontend/src/metabase/lib/core.js:190 +#: frontend/src/metabase/lib/core.js:220 msgid "Company" msgstr "å…¬å¸" -#: frontend/src/metabase/lib/core.js:195 +#: frontend/src/metabase/lib/core.js:225 msgid "Subscription" msgstr "订阅" -#: frontend/src/metabase/lib/core.js:200 +#: frontend/src/metabase/lib/core.js:230 msgid "Score" msgstr "分数" -#: frontend/src/metabase/lib/core.js:210 +#: frontend/src/metabase/lib/core.js:240 #: frontend/src/metabase/public/components/widgets/DisplayOptionsPane.jsx:49 #: frontend/src/metabase/visualizations/lib/settings/visualization.js:18 msgid "Title" msgstr "æ ‡é¢˜" -#: frontend/src/metabase/lib/core.js:215 +#: frontend/src/metabase/lib/core.js:245 msgid "Comment" msgstr "评论" -#: frontend/src/metabase/lib/core.js:220 +#: frontend/src/metabase/lib/core.js:250 msgid "Cost" msgstr "花费" -#: frontend/src/metabase/lib/core.js:225 +#: frontend/src/metabase/lib/core.js:255 msgid "Gross margin" msgstr "毛利" -#: frontend/src/metabase/lib/core.js:230 +#: frontend/src/metabase/lib/core.js:260 msgid "Birthday" msgstr "生日" -#: frontend/src/metabase/lib/core.js:241 +#: frontend/src/metabase/lib/core.js:271 msgid "Search box" msgstr "æœç´¢æ¡†" -#: frontend/src/metabase/lib/core.js:242 +#: frontend/src/metabase/lib/core.js:272 msgid "A list of all values" msgstr "一个所有值的列表" -#: frontend/src/metabase/lib/core.js:243 +#: frontend/src/metabase/lib/core.js:273 msgid "Plain input box" msgstr "文本框" -#: frontend/src/metabase/lib/core.js:249 +#: frontend/src/metabase/lib/core.js:279 msgid "Everywhere" msgstr "所有地方" -#: frontend/src/metabase/lib/core.js:250 +#: frontend/src/metabase/lib/core.js:280 msgid "The default setting. This field will be displayed normally in tables and charts." msgstr "默认设置。这个å—段通常将会被展示在表å•ä¸å’Œå›¾è¡¨ä¸ã€‚" @@ -3529,7 +3506,7 @@ msgstr "默认设置。这个å—段通常将会被展示在表å•ä¸å’Œå›¾è¡¨ä¸ msgid "Only in Detail Views" msgstr "åªåœ¨ç»†èŠ‚视图ä¸" -#: frontend/src/metabase/lib/core.js:255 +#: frontend/src/metabase/lib/core.js:285 msgid "This field will only be displayed when viewing the details of a single record. Use this for information that's lengthy or that isn't useful in a table or chart." msgstr "仅在查看å•ä¸ªè®°å½•çš„详细信æ¯æ—¶æ‰ä¼šæ˜¾ç¤ºæ¤å—段。将æ¤ç”¨äºŽå†—é•¿æˆ–åœ¨è¡¨æ ¼ã€å›¾è¡¨ä¸æ— 用的信æ¯ã€‚" @@ -3543,7 +3520,8 @@ msgstr "Metabase永远ä¸ä¼šèŽ·å–æ¤å—段。将æ¤ç”¨äºŽæ•æ„Ÿæˆ–ä¸ç›¸å…³çš„ #: frontend/src/metabase/lib/expressions/config.js:7 #: frontend/src/metabase/lib/query.js:300 -#: frontend/src/metabase/visualizations/lib/utils.js:130 +#: frontend/src/metabase/lib/schema_metadata.js:472 +#: frontend/src/metabase/visualizations/lib/utils.js:129 #: src/metabase/query_processor/middleware/annotate.clj #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml @@ -3558,8 +3536,9 @@ msgid "CumulativeCount" msgstr "累积计数" #: frontend/src/metabase/lib/expressions/config.js:9 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:17 -#: frontend/src/metabase/visualizations/lib/utils.js:131 +#: frontend/src/metabase/lib/schema_metadata.js:481 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:18 +#: frontend/src/metabase/visualizations/lib/utils.js:130 msgid "Sum" msgstr "求和" @@ -3568,7 +3547,7 @@ msgid "CumulativeSum" msgstr "累积求和" #: frontend/src/metabase/lib/expressions/config.js:11 -#: frontend/src/metabase/visualizations/lib/utils.js:132 +#: frontend/src/metabase/visualizations/lib/utils.js:131 msgid "Distinct" msgstr "ä¸é‡å¤" @@ -3577,25 +3556,28 @@ msgid "StandardDeviation" msgstr "æ ‡å‡†å·®" #: frontend/src/metabase/lib/expressions/config.js:13 -#: frontend/src/metabase/visualizations/lib/utils.js:129 +#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/visualizations/lib/utils.js:128 msgid "Average" msgstr "å¹³å‡" #: frontend/src/metabase/lib/expressions/config.js:14 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:25 +#: frontend/src/metabase/lib/schema_metadata.js:535 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:26 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:48 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:440 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 msgid "Min" msgstr "最å°" #: frontend/src/metabase/lib/expressions/config.js:15 -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:29 +#: frontend/src/metabase/lib/schema_metadata.js:544 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:30 #: frontend/src/metabase/visualizations/components/settings/ChartSettingGaugeSegments.jsx:57 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:448 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 msgid "Max" msgstr "最大" -#: frontend/src/metabase/lib/expressions/parser.js:386 +#: frontend/src/metabase/lib/expressions/parser.js:373 msgid "sad sad panda, lexing errors detected" msgstr "哎呀,出错了" @@ -3643,12 +3625,13 @@ msgid "What do you want to find out?" msgstr "ä½ æƒ³æ‰¾å‡ºä»€ä¹ˆï¼Ÿ" #: frontend/src/metabase/lib/query.js:298 -#: frontend/src/metabase/lib/schema_metadata.js:458 +#: frontend/src/metabase/lib/schema_metadata.js:463 #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:254 msgid "Raw data" msgstr "原始数æ®" #: frontend/src/metabase/lib/query.js:302 +#: frontend/src/metabase/lib/schema_metadata.js:517 msgid "Cumulative count" msgstr "累积计数" @@ -3692,174 +3675,174 @@ msgstr "以……ç›é€‰" msgid "Sorted by " msgstr "以……分类" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "True" msgstr "真" -#: frontend/src/metabase/lib/schema_metadata.js:227 +#: frontend/src/metabase/lib/schema_metadata.js:234 msgid "False" msgstr "å‡" -#: frontend/src/metabase/lib/schema_metadata.js:311 +#: frontend/src/metabase/lib/schema_metadata.js:318 msgid "Select longitude field" msgstr "选择ç»åº¦å—段" -#: frontend/src/metabase/lib/schema_metadata.js:312 +#: frontend/src/metabase/lib/schema_metadata.js:319 msgid "Enter upper latitude" msgstr "输入纬度上边届" -#: frontend/src/metabase/lib/schema_metadata.js:313 +#: frontend/src/metabase/lib/schema_metadata.js:320 msgid "Enter left longitude" msgstr "输入ç»åº¦å·¦è¾¹ç•Œ" -#: frontend/src/metabase/lib/schema_metadata.js:314 +#: frontend/src/metabase/lib/schema_metadata.js:321 msgid "Enter lower latitude" msgstr "输入纬度下边界" -#: frontend/src/metabase/lib/schema_metadata.js:315 +#: frontend/src/metabase/lib/schema_metadata.js:322 msgid "Enter right longitude" msgstr "输入ç»åº¦å³è¾¹ç•Œ" -#: frontend/src/metabase-lib/lib/Dimension.js:505 -#: frontend/src/metabase-lib/lib/Dimension.js:507 -#: frontend/src/metabase/lib/schema_metadata.js:351 -#: frontend/src/metabase/lib/schema_metadata.js:371 -#: frontend/src/metabase/lib/schema_metadata.js:381 -#: frontend/src/metabase/lib/schema_metadata.js:387 -#: frontend/src/metabase/lib/schema_metadata.js:395 -#: frontend/src/metabase/lib/schema_metadata.js:401 -#: frontend/src/metabase/lib/schema_metadata.js:406 +#: frontend/src/metabase-lib/lib/Dimension.js:537 +#: frontend/src/metabase-lib/lib/Dimension.js:539 +#: frontend/src/metabase/lib/schema_metadata.js:358 +#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:394 +#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:413 msgid "Is" msgstr "是" -#: frontend/src/metabase/lib/schema_metadata.js:352 -#: frontend/src/metabase/lib/schema_metadata.js:372 -#: frontend/src/metabase/lib/schema_metadata.js:382 -#: frontend/src/metabase/lib/schema_metadata.js:396 -#: frontend/src/metabase/lib/schema_metadata.js:402 +#: frontend/src/metabase/lib/schema_metadata.js:359 +#: frontend/src/metabase/lib/schema_metadata.js:379 +#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:409 msgid "Is not" msgstr "ä¸æ˜¯" -#: frontend/src/metabase/lib/schema_metadata.js:353 -#: frontend/src/metabase/lib/schema_metadata.js:367 -#: frontend/src/metabase/lib/schema_metadata.js:375 -#: frontend/src/metabase/lib/schema_metadata.js:383 -#: frontend/src/metabase/lib/schema_metadata.js:391 -#: frontend/src/metabase/lib/schema_metadata.js:397 -#: frontend/src/metabase/lib/schema_metadata.js:407 +#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:382 +#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:398 +#: frontend/src/metabase/lib/schema_metadata.js:404 +#: frontend/src/metabase/lib/schema_metadata.js:414 msgid "Is empty" msgstr "为空" -#: frontend/src/metabase/lib/schema_metadata.js:354 -#: frontend/src/metabase/lib/schema_metadata.js:368 -#: frontend/src/metabase/lib/schema_metadata.js:376 -#: frontend/src/metabase/lib/schema_metadata.js:384 -#: frontend/src/metabase/lib/schema_metadata.js:392 -#: frontend/src/metabase/lib/schema_metadata.js:398 -#: frontend/src/metabase/lib/schema_metadata.js:408 +#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:375 +#: frontend/src/metabase/lib/schema_metadata.js:383 +#: frontend/src/metabase/lib/schema_metadata.js:391 +#: frontend/src/metabase/lib/schema_metadata.js:399 +#: frontend/src/metabase/lib/schema_metadata.js:405 +#: frontend/src/metabase/lib/schema_metadata.js:415 msgid "Not empty" msgstr "ä¸ä¸ºç©º" -#: frontend/src/metabase/lib/schema_metadata.js:360 +#: frontend/src/metabase/lib/schema_metadata.js:367 msgid "Equal to" msgstr "ç‰äºŽ" -#: frontend/src/metabase/lib/schema_metadata.js:361 +#: frontend/src/metabase/lib/schema_metadata.js:368 msgid "Not equal to" msgstr "ä¸ç‰äºŽ" -#: frontend/src/metabase/lib/schema_metadata.js:362 +#: frontend/src/metabase/lib/schema_metadata.js:369 msgid "Greater than" msgstr "大于" -#: frontend/src/metabase/lib/schema_metadata.js:363 +#: frontend/src/metabase/lib/schema_metadata.js:370 msgid "Less than" msgstr "å°äºŽ" -#: frontend/src/metabase/lib/schema_metadata.js:364 -#: frontend/src/metabase/lib/schema_metadata.js:390 +#: frontend/src/metabase/lib/schema_metadata.js:371 +#: frontend/src/metabase/lib/schema_metadata.js:397 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:284 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:96 msgid "Between" msgstr "介于之间" -#: frontend/src/metabase/lib/schema_metadata.js:365 +#: frontend/src/metabase/lib/schema_metadata.js:372 msgid "Greater than or equal to" msgstr "大于或ç‰äºŽ" -#: frontend/src/metabase/lib/schema_metadata.js:366 +#: frontend/src/metabase/lib/schema_metadata.js:373 msgid "Less than or equal to" msgstr "å°äºŽæˆ–ç‰äºŽ" -#: frontend/src/metabase/lib/schema_metadata.js:373 +#: frontend/src/metabase/lib/schema_metadata.js:380 msgid "Contains" msgstr "包å«" -#: frontend/src/metabase/lib/schema_metadata.js:374 +#: frontend/src/metabase/lib/schema_metadata.js:381 msgid "Does not contain" msgstr "ä¸åŒ…å«" -#: frontend/src/metabase/lib/schema_metadata.js:377 +#: frontend/src/metabase/lib/schema_metadata.js:384 msgid "Starts with" msgstr "以…开始" -#: frontend/src/metabase/lib/schema_metadata.js:378 +#: frontend/src/metabase/lib/schema_metadata.js:385 msgid "Ends with" msgstr "以…结æŸ" -#: frontend/src/metabase/lib/schema_metadata.js:388 +#: frontend/src/metabase/lib/schema_metadata.js:395 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:263 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:74 msgid "Before" msgstr "早于" -#: frontend/src/metabase/lib/schema_metadata.js:389 +#: frontend/src/metabase/lib/schema_metadata.js:396 #: frontend/src/metabase/query_builder/components/filters/pickers/DatePicker.jsx:270 #: frontend/src/metabase/query_builder/components/filters/pickers/TimePicker.jsx:85 msgid "After" msgstr "晚于" -#: frontend/src/metabase/lib/schema_metadata.js:403 +#: frontend/src/metabase/lib/schema_metadata.js:410 msgid "Inside" msgstr "介于ä¸é—´" -#: frontend/src/metabase/lib/schema_metadata.js:460 +#: frontend/src/metabase/lib/schema_metadata.js:464 msgid "Just a table with the rows in the answer, no additional operations." msgstr "åªæ˜¯ä¸€ä¸ªåŒ…å«æ•°æ®è¡Œçš„è¡¨æ ¼ï¼Œæ²¡æœ‰å…¶ä»–æ“作。" -#: frontend/src/metabase/lib/schema_metadata.js:466 +#: frontend/src/metabase/lib/schema_metadata.js:471 msgid "Count of rows" msgstr "总行数" -#: frontend/src/metabase/lib/schema_metadata.js:468 +#: frontend/src/metabase/lib/schema_metadata.js:473 msgid "Total number of rows in the answer." msgstr "总的数æ®è¡Œæ•°ã€‚" -#: frontend/src/metabase/lib/schema_metadata.js:474 +#: frontend/src/metabase/lib/schema_metadata.js:480 msgid "Sum of ..." msgstr "总和" -#: frontend/src/metabase/lib/schema_metadata.js:476 +#: frontend/src/metabase/lib/schema_metadata.js:482 msgid "Sum of all the values of a column." msgstr "一个å—段所有数值的总和。" -#: frontend/src/metabase/lib/schema_metadata.js:482 +#: frontend/src/metabase/lib/schema_metadata.js:489 msgid "Average of ..." msgstr "å¹³å‡å€¼" -#: frontend/src/metabase/lib/schema_metadata.js:484 +#: frontend/src/metabase/lib/schema_metadata.js:491 msgid "Average of all the values of a column" msgstr "一个å—段所有数值的平å‡å€¼ã€‚" -#: frontend/src/metabase/lib/schema_metadata.js:490 +#: frontend/src/metabase/lib/schema_metadata.js:498 msgid "Number of distinct values of ..." msgstr "ä¸é‡å¤å€¼çš„总数" -#: frontend/src/metabase/lib/schema_metadata.js:492 +#: frontend/src/metabase/lib/schema_metadata.js:500 msgid "Number of unique values of a column among all the rows in the answer." msgstr "一个å—段所有互ä¸é‡å¤çš„值的总数" -#: frontend/src/metabase/lib/schema_metadata.js:498 +#: frontend/src/metabase/lib/schema_metadata.js:507 msgid "Cumulative sum of ..." msgstr "累积求和" @@ -3867,7 +3850,7 @@ msgstr "累积求和" msgid "Additive sum of all the values of a column.\\\\ne.x. total revenue over time." msgstr "一个å—æ®µæ‰€æœ‰æ•°å€¼çš„ç´¯ç§¯åŠ å’Œã€‚\\\\n比如:éšç€æ—¶é—´æŽ¨ç§»çš„总收入。" -#: frontend/src/metabase/lib/schema_metadata.js:506 +#: frontend/src/metabase/lib/schema_metadata.js:516 msgid "Cumulative count of rows" msgstr "累积行数" @@ -3875,27 +3858,27 @@ msgstr "累积行数" msgid "Additive count of the number of rows.\\\\ne.x. total number of sales over time." msgstr "累积的数æ®è¡Œæ•°ã€‚\\\\ n比如:éšç€æ—¶é—´çš„推移销售数é‡ã€‚" -#: frontend/src/metabase/lib/schema_metadata.js:514 +#: frontend/src/metabase/lib/schema_metadata.js:525 msgid "Standard deviation of ..." msgstr "æ ‡å‡†å·®" -#: frontend/src/metabase/lib/schema_metadata.js:516 +#: frontend/src/metabase/lib/schema_metadata.js:527 msgid "Number which expresses how much the values of a column vary among all rows in the answer." msgstr "一个å—æ®µæ‰€æœ‰æ•°å€¼çš„æ ‡å‡†å·®ã€‚" -#: frontend/src/metabase/lib/schema_metadata.js:522 +#: frontend/src/metabase/lib/schema_metadata.js:534 msgid "Minimum of ..." msgstr "最å°å€¼" -#: frontend/src/metabase/lib/schema_metadata.js:524 +#: frontend/src/metabase/lib/schema_metadata.js:536 msgid "Minimum value of a column" msgstr "一个å—段的最å°å€¼" -#: frontend/src/metabase/lib/schema_metadata.js:530 +#: frontend/src/metabase/lib/schema_metadata.js:543 msgid "Maximum of ..." msgstr "最大值" -#: frontend/src/metabase/lib/schema_metadata.js:532 +#: frontend/src/metabase/lib/schema_metadata.js:545 msgid "Maximum value of a column" msgstr "一个å—段的最大值" @@ -4069,68 +4052,70 @@ msgstr "其他类别" msgid "Category, Type, Model, Rating, etc." msgstr "类别ã€ç±»åž‹ã€æ¨¡åž‹ã€è¯„分ç‰" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:42 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:43 #: frontend/src/metabase/user/components/UserSettings.jsx:50 msgid "Account settings" msgstr "账户设置" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:49 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:50 msgid "Exit admin" msgstr "退出管ç†å‘˜" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:34 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:35 msgid "Logs" msgstr "日志" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:64 +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:103 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:22 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:65 #: frontend/src/metabase/query_builder/components/template_tags/TagEditorSidebar.jsx:99 msgid "Help" msgstr "帮助" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:71 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:72 msgid "About Metabase" msgstr "关于Metabase" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:77 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:78 msgid "Sign out" msgstr "注销" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:102 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 msgid "Thanks for using" msgstr "谢谢使用" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:106 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:113 msgid "You're on version" msgstr "æ£åœ¨ä½¿ç”¨ç‰ˆæœ¬" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:109 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:116 msgid "Built on" msgstr "建立于" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:128 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:135 msgid "is a Trademark of" msgstr "æ˜¯ä¸€ä¸ªâ€¦â€¦çš„å•†æ ‡" -#: frontend/src/metabase/nav/components/ProfileLink.jsx:130 +#: frontend/src/metabase/nav/components/ProfileLink.jsx:137 msgid "and is built with care in San Francisco, CA" msgstr "å¹¶ä¸”å®ƒåœ¨åŠ å·žï¼Œæ—§é‡‘å±±ç²¾å¿ƒè¢«æ‰“é€ " -#: frontend/src/metabase/nav/containers/Navbar.jsx:223 +#: frontend/src/metabase/nav/containers/Navbar.jsx:222 msgid "Metabase Admin" msgstr "Metabase管ç†å‘˜" -#: frontend/src/metabase/nav/containers/Navbar.jsx:331 +#: frontend/src/metabase/nav/containers/Navbar.jsx:325 #: frontend/src/metabase/reference/databases/TableQuestions.jsx:36 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:37 msgid "Ask a question" msgstr "创建问题" -#: frontend/src/metabase/nav/containers/Navbar.jsx:355 +#: frontend/src/metabase/nav/containers/Navbar.jsx:350 msgid "New dashboard" msgstr "新仪表盘" -#: frontend/src/metabase/nav/containers/Navbar.jsx:361 +#: frontend/src/metabase/nav/containers/Navbar.jsx:356 #: frontend/src/metabase/pulse/components/PulseEdit.jsx:129 msgid "New pulse" msgstr "新定时任务" @@ -4143,7 +4128,6 @@ msgstr "å‚考" msgid "Which metric?" msgstr "å“ªä¸ªæŒ‡æ ‡ï¼Ÿ" -#: frontend/src/metabase/new_query/containers/MetricSearch.jsx:114 #: frontend/src/metabase/reference/metrics/MetricList.jsx:26 msgid "Defining common metrics for your team makes it even easier to ask questions" msgstr "ä¸ºä½ çš„å›¢é˜Ÿå®šä¹‰å…±åŒæŒ‡æ ‡ï¼Œè®©å®ƒç”šè‡³ç®€å•åˆ°å¯ä»¥è½»æ¾çš„æé—®" @@ -4161,7 +4145,7 @@ msgid "Custom" msgstr "自定义" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:50 -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:142 +#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:157 msgid "New question" msgstr "æ–°çš„ç–‘é—®" @@ -4169,13 +4153,13 @@ msgstr "æ–°çš„ç–‘é—®" msgid "Use the simple question builder to see trends, lists of things, or to create your own metrics." msgstr "使用简å•çš„疑问创建器æ¥æŸ¥çœ‹è¶‹åŠ¿ã€åˆ—è¡¨æˆ–è€…äº‹ç‰©ï¼Œæˆ–è€…åˆ›å»ºä½ è‡ªå·±çš„æŒ‡æ ‡ã€‚" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:166 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:84 #: src/metabase/automagic_dashboards/core.clj #: resources/automagic_dashboards/table/example.yaml msgid "Native query" msgstr "原生查询" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:167 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:85 msgid "For more complicated questions, you can write your own SQL or native query." msgstr "为了回ç”更多å¤æ‚çš„ç–‘é—®ï¼Œä½ å¯ä»¥å†™ä¸‹ä½ 自己的SQLè¯å¥æˆ–者原生查询。" @@ -4211,15 +4195,13 @@ msgstr "过去7天" msgid "Past 30 days" msgstr "过去30天" -#. 周 #: frontend/src/metabase/lib/query_time.js:198 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:24 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:29 #: src/metabase/api/table.clj msgid "Week" msgid_plural "Weeks" -msgstr[0] "周\n" -"周" +msgstr[0] "周" #: frontend/src/metabase/lib/query_time.js:200 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:25 @@ -4227,8 +4209,7 @@ msgstr[0] "周\n" #: src/metabase/api/table.clj msgid "Month" msgid_plural "Months" -msgstr[0] "月\n" -"月" +msgstr[0] "月" #: frontend/src/metabase/lib/query_time.js:204 #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:26 @@ -4236,8 +4217,7 @@ msgstr[0] "月\n" #: src/metabase/api/table.clj msgid "Year" msgid_plural "Years" -msgstr[0] "å¹´\n" -"å¹´" +msgstr[0] "å¹´" #: frontend/src/metabase/parameters/components/widgets/DateRelativeWidget.jsx:152 msgid "Past 7 Days" @@ -4280,7 +4260,7 @@ msgstr "输入一个值……" msgid "Enter a default value..." msgstr "输入一个默认值……" -#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:48 +#: frontend/src/metabase/components/LoadingAndErrorWrapper.jsx:49 #: frontend/src/metabase/public/components/PublicError.jsx:18 msgid "An error occurred" msgstr "å‘生了一个错误" @@ -4527,7 +4507,7 @@ msgid "We recommend keeping pulses small and focused to help keep them digestibl msgstr "推è精简定时任务,方便整个团队ç†è§£å’Œä½¿ç”¨ã€‚" #: frontend/src/metabase/pulse/components/PulseEditCards.jsx:160 -#: frontend/src/metabase/query_builder/components/view/View.jsx:123 +#: frontend/src/metabase/query_builder/components/view/View.jsx:131 msgid "Pick your data" msgstr "é€‰æ‹©ä½ çš„æ•°æ®" @@ -4543,47 +4523,47 @@ msgstr "电å邮箱" msgid "Slack messages" msgstr "Slack消æ¯" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:220 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:216 msgid "Sent" msgstr "å‘é€" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:221 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:217 msgid "{0} will be sent at" msgstr "{0}将会在……被å‘é€" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:223 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:219 msgid "Messages" msgstr "ä¿¡æ¯" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:235 msgid "Send email now" msgstr "现在å‘é€é‚®ä»¶" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:240 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:236 msgid "Send to {0} now" msgstr "现在å‘é€é‚®ä»¶ç»™{0}" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:238 msgid "Sending…" msgstr "å‘é€ä¸â€¦â€¦" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:239 msgid "Sending failed" msgstr "å‘é€å¤±è´¥" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:246 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:242 msgid "Didn’t send because the pulse has no results." msgstr "未å‘é€ï¼Œå› 为定时任务没有结果。" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:247 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:243 msgid "Pulse sent" msgstr "定时任务已å‘é€ã€‚" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:286 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:282 msgid "{0} needs to be set up by an administrator." msgstr "{0}需è¦è¢«è®¾ç½®æˆç®¡ç†å‘˜" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:301 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:295 msgid "Slack" msgstr "Slack" @@ -4670,7 +4650,7 @@ msgstr "按时间对行计数" msgid "Break out by {0}" msgstr "按{0}分组" -#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:31 +#: frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx:36 msgid "Summarize this segment" msgstr "总结这个划分" @@ -4724,15 +4704,15 @@ msgstr "å‡åº" msgid "Descending" msgstr "é™åº" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:47 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js:43 msgid "over time" msgstr "超时" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:21 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:22 msgid "Avg" msgstr "å¹³å‡" -#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:33 +#: frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js:34 msgid "Distincts" msgstr "ä¸é‡å¤" @@ -4928,6 +4908,7 @@ msgid "{0} Goal-based alerts aren't yet supported for charts with more than one msgstr "{0} 多行图表还ä¸æ”¯æŒåŸºäºŽç›®æ ‡çš„报è¦ï¼Œæ‰€ä»¥å½“å›¾æ ‡æœ‰{1}时,这个报è¦å°±ä¼šå‘é€ã€‚" #: frontend/src/metabase/query_builder/components/AlertModals.jsx:677 +#: src/metabase/pulse.clj msgid "results" msgstr "结果" @@ -4943,47 +4924,47 @@ msgstr "æ示" msgid "usually" msgstr "通常" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:60 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:61 msgid "Pick a segment or table" msgstr "选择一个区间或者表å•" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:78 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:79 msgid "Select a database" msgstr "选择一个数æ®åº“" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:93 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:94 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:87 #: frontend/src/metabase/reference/components/GuideDetailEditor.jsx:187 #: frontend/src/metabase/reference/components/MetricImportantFieldsDetail.jsx:35 msgid "Select..." msgstr "选择……" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:133 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:134 msgid "Select a table" msgstr "选择一个表å•" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:810 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:813 msgid "No tables found in this database." msgstr "该数æ®åº“未å‘现表" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:847 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:850 msgid "Is a question missing?" msgstr "图表缺失?" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:854 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:857 msgid "Learn more about nested queries" msgstr "了解更多关于嵌套查询" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:889 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:892 #: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:30 msgid "Fields" msgstr "å—段" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:968 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:971 msgid "No segments were found." msgstr "没有划分" -#: frontend/src/metabase/query_builder/components/DataSelector.jsx:991 +#: frontend/src/metabase/query_builder/components/DataSelector.jsx:994 msgid "Find a segment" msgstr "找到一个划分" @@ -5033,7 +5014,7 @@ msgstr "æ·»åŠ ä¸€ä¸ªèšåˆ" #: frontend/src/metabase/query_builder/components/GuiQueryEditor.jsx:334 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:29 -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:64 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.jsx:66 #: frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx:112 #: frontend/src/metabase/visualizations/lib/settings/graph.js:89 #: frontend/src/metabase/visualizations/lib/settings/graph.js:131 @@ -5041,9 +5022,9 @@ msgstr "æ·»åŠ ä¸€ä¸ªèšåˆ" #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:63 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:103 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:110 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:302 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:308 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:314 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:305 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:311 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:317 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:104 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:109 msgid "Data" @@ -5066,7 +5047,7 @@ msgstr "分组æ¡ä»¶" msgid "None" msgstr "没有" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:376 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:422 msgid "This question is written in {0}." msgstr "这个疑问已ç»è¢«å†™å…¥{0}" @@ -5078,11 +5059,11 @@ msgstr "éšè—编辑器" msgid "Hide Query" msgstr "éšè—查询" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:390 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:432 msgid "Open Editor" msgstr "打开编辑器" -#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:391 +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:433 msgid "Show Query" msgstr "显示查询" @@ -5127,7 +5108,7 @@ msgstr "å–消" msgid "Move question" msgstr "移动图表" -#: frontend/src/metabase/query_builder/components/QueryModals.jsx:135 +#: frontend/src/metabase/query_builder/components/QueryModals.jsx:155 msgid "Which collection should this be in?" msgstr "将这个放到哪个集åˆä¸ï¼Ÿ" @@ -5181,7 +5162,7 @@ msgstr "这个图表的{0}" msgid "Convert this question to {0}" msgstr "转æ¢å›¾è¡¨ä¸º{0}" -#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:20 +#: frontend/src/metabase/query_builder/components/RunButtonWithTooltip.jsx:16 msgid "This question will take approximately {0} to refresh" msgstr "这个图表大约需è¦{0}æ¥åˆ·æ–°" @@ -5214,7 +5195,7 @@ msgstr "å¦‚æžœä½ ç»™æˆ‘ä¸€äº›æ•°æ®æˆ‘å¯ä»¥å±•ç¤ºç»™ä½ 看一些很酷的东西 msgid "How do I use this thing?" msgstr "我该如何使用这个?" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Answer" msgstr "得到ç”案" @@ -5282,7 +5263,7 @@ msgstr "得到一个è¦æŠ¥" msgid "Back to last run" msgstr "返回上一次è¿è¡Œ" -#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:155 +#: frontend/src/metabase/query_builder/components/view/ViewFooter.jsx:194 msgid "Visualization" msgstr "å¯è§†åŒ–" @@ -5294,7 +5275,7 @@ msgstr "没有设置æè¿°" msgid "Use for current question" msgstr "为当å‰ç–‘问使用" -#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:16 +#: frontend/src/metabase/reference/components/UsefulQuestions.jsx:14 msgid "Potentially useful questions" msgstr "有潜在价值的疑问" @@ -5318,7 +5299,7 @@ msgstr "{0}的去é‡å€¼" msgid "Number of {0} grouped by {1}" msgstr "按{1}分组的{0}计数" -#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:75 +#: frontend/src/metabase/query_builder/components/dataref/DataReference.jsx:77 #: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:20 #: frontend/src/metabase/reference/databases/FieldSidebar.jsx:30 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:26 @@ -5352,12 +5333,12 @@ msgid "Filter by {0}" msgstr "æ ¹æ®{0}ç›é€‰" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:134 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:38 msgid "Number of {0}" msgstr "{0}çš„æ•°å—" #: frontend/src/metabase/query_builder/components/dataref/SegmentPane.jsx:141 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:46 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:48 msgid "See all {0}" msgstr "查看所有的{0}" @@ -5377,32 +5358,33 @@ msgstr "查看{0}的所有原始数æ®" msgid "More" msgstr "更多" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:201 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:194 msgid "Invalid expression" msgstr "ä¸å¯ç”¨çš„表达å¼" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:276 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionEditorTextfield.jsx:269 msgid "unknown error" msgstr "未知错误" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:51 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:47 msgid "Field formula" msgstr "å—段公å¼" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:62 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:60 msgid "Think of this as being kind of like writing a formula in a spreadsheet program: you can use numbers, fields in this table, mathematical symbols like +, and some functions. So you could type something like Subtotal - Cost." msgstr "这有点åƒåœ¨EXCEL表ä¸ç¼–写公å¼ï¼Œä½ å¯ä»¥ä½¿ç”¨æ•°å—,å—段,数å¦ç¬¦å·å’Œä¸€äº›å‡½æ•°ï¼Œä¾‹å¦‚ Subtotal - Cost。" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:71 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:69 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:218 #: frontend/src/metabase/reference/components/GuideDetail.jsx:126 msgid "Learn more" msgstr "了解更多" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:75 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:73 msgid "Give it a name" msgstr "给它一个åå—å§" -#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:81 +#: frontend/src/metabase/query_builder/components/expressions/ExpressionWidget.jsx:79 msgid "Something nice and descriptive" msgstr "一些超棒的ã€å€¼å¾—记录的东西" @@ -5482,7 +5464,7 @@ msgid "Enter desired number" msgstr "输入期望值" #: frontend/src/metabase/query_builder/components/filters/pickers/SelectPicker.jsx:83 -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:150 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:154 msgid "Empty" msgstr "空的" @@ -5520,7 +5502,7 @@ msgstr "原生查询ä¸çš„å˜é‡å…许使用ç›é€‰ç»„件或URLå‚æ•°æ¥åŠ¨æ€æ›¿ #: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:136 msgid "{0} creates a variable in this SQL template called \"variable_name\". Variables can be given types in the side panel, which changes their behavior. All variable types other than \"Field Filter\" will automatically cause a filter widget to be placed on this question; with Field Filters, this is optional. When this filter widget is filled in, that value replaces the variable in the SQL template." -msgstr "{0}在æ¤SQL模æ¿ä¸åˆ›å»ºä¸€ä¸ªå为“variable_nameâ€çš„å˜é‡ã€‚å˜é‡å¯ä»¥åœ¨ä¾§é¢æ¿ä¸ç»™å‡ºç±»åž‹ï¼Œè¿™ä¼šæ”¹å˜å®ƒä»¬çš„行为。除“å—段过滤器â€ä¹‹å¤–的所有å˜é‡ç±»åž‹éƒ½å°†è‡ªåŠ¨å¯¼è‡´è¿‡æ»¤å™¨å°éƒ¨ä»¶æ”¾åœ¨æ¤é—®é¢˜ä¸Š;使用å—段过滤器,这是å¯é€‰çš„。填充æ¤è¿‡æ»¤å™¨çª—å£å°éƒ¨ä»¶æ—¶ï¼Œè¯¥å€¼å°†æ›¿æ¢SQL模æ¿ä¸çš„å˜é‡ã€‚" +msgstr "{0}会在æ¤SQL模æ¿ä¸åˆ›å»ºä¸€ä¸ªå为“variable_nameâ€çš„å˜é‡ã€‚该å˜é‡å¯ä»¥åœ¨ä¾§è¾¹æ ä¸é€‰æ‹©ç±»åž‹ï¼Œæ¥æ”¹å˜å˜é‡å¡«å……的效果。除了“å—段ç›é€‰æ¡ä»¶â€ä¹‹å¤–的所有å˜é‡ç±»åž‹éƒ½å°†ä¼šåœ¨æ¤é—®é¢˜ä¸Šé¢è‡ªåŠ¨ç”Ÿæˆå¯¹åº”的过滤器窗å£å°éƒ¨ä»¶;å—段ç›é€‰æ¡ä»¶å¯ä»¥è®¾ç½®ä¸ºæ˜¯å¦å¿…填项。填充æ¤è¿‡æ»¤å™¨çª—å£å°éƒ¨ä»¶æ—¶ï¼Œè¯¥å€¼å°†æ›¿æ¢SQL模æ¿ä¸å¯¹åº”çš„å˜é‡ã€‚" #: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:145 msgid "Field Filters" @@ -5550,41 +5532,41 @@ msgstr "è¦ä½¿ç”¨å¤šä¸ªå¯é€‰åå¥ï¼Œæ‚¨å¯ä»¥åŒ…å«è‡³å°‘一个éžå¯é€‰WHERE msgid "Read the full documentation" msgstr "阅读完整文档" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:130 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:133 msgid "Filter label" msgstr "è¿‡æ»¤æ ‡ç¾" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:142 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:145 msgid "Variable type" msgstr "多ç§ç±»åž‹" #: frontend/src/metabase-lib/lib/DimensionOptions.js:143 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:151 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 msgid "Text" msgstr "文本" #: frontend/src/metabase-lib/lib/DimensionOptions.js:119 -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:153 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:156 msgid "Date" msgstr "日期" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:154 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:157 msgid "Field Filter" msgstr "å—段ç›é€‰æ¡ä»¶" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:160 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:164 msgid "Field to map to" msgstr "å—æ®µæ˜ å°„åˆ°" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:181 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:189 msgid "Filter widget type" msgstr "è¿‡æ»¤å™¨æ ·å¼" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:203 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:226 msgid "Required?" msgstr "必填项?" -#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:213 +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:236 msgid "Default filter widget value" msgstr "过滤器默认值" @@ -5596,7 +5578,7 @@ msgstr "归档图表?" msgid "This question will be removed from any dashboards or pulses using it." msgstr "这个图表会从已引用的仪表盘或定时任务ä¸ç§»é™¤" -#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:151 +#: frontend/src/metabase/query_builder/containers/QueryBuilder.jsx:155 msgid "Question" msgstr "ç–‘é—®" @@ -5608,8 +5590,8 @@ msgstr "选择一个疑问æ¥æ·»åŠ " msgid "You are editing this page" msgstr "ä½ æ£åœ¨ç¼–辑这个页é¢" -#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:101 -#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:63 +#: frontend/src/metabase/reference/components/EditableReferenceHeader.jsx:78 +#: frontend/src/metabase/reference/components/ReferenceHeader.jsx:45 msgid "See this {0}" msgstr "查看这个{0}" @@ -5617,15 +5599,15 @@ msgstr "查看这个{0}" msgid "A subset of" msgstr "å集" -#: frontend/src/metabase/reference/components/Field.jsx:47 -#: frontend/src/metabase/reference/components/Field.jsx:86 +#: frontend/src/metabase/reference/components/Field.jsx:49 +#: frontend/src/metabase/reference/components/Field.jsx:101 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:32 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:67 msgid "Select a field type" msgstr "选择一个å—段类型" -#: frontend/src/metabase/reference/components/Field.jsx:56 -#: frontend/src/metabase/reference/components/Field.jsx:71 +#: frontend/src/metabase/reference/components/Field.jsx:58 +#: frontend/src/metabase/reference/components/Field.jsx:86 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:41 #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:56 msgid "No field type" @@ -5636,8 +5618,8 @@ msgid "by" msgstr "通过" #: frontend/src/metabase/reference/components/FieldTypeDetail.jsx:25 -#: frontend/src/metabase/reference/databases/FieldList.jsx:155 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:156 +#: frontend/src/metabase/reference/databases/FieldList.jsx:156 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:157 msgid "Field type" msgstr "å—段类型" @@ -5662,12 +5644,12 @@ msgid "Nothing important yet" msgstr "还没有什么é‡è¦çš„事情" #: frontend/src/metabase/reference/components/GuideDetail.jsx:88 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:171 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:236 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:214 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:222 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:232 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:172 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:237 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:215 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:248 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:233 msgid "Nothing interesting yet" msgstr "还没有什么有趣的事情" @@ -5676,12 +5658,12 @@ msgid "Things to be aware of about this {0}" msgstr "关于{0}的注æ„事项" #: frontend/src/metabase/reference/components/GuideDetail.jsx:97 -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:181 -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:246 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:224 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:232 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:242 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:182 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:247 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:225 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:258 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:243 msgid "Nothing to be aware of yet" msgstr "ç›®å‰æš‚æ— æ³¨æ„项" @@ -5727,7 +5709,7 @@ msgstr "任何事情关于{0}是用户需è¦çŸ¥é“çš„å—?" msgid "Which 2-3 fields do you usually group this metric by?" msgstr "ä½ ç»å¸¸ç”¨å“ª2-3个å—æ®µæŠŠè¿™äº›æŒ‡æ ‡èšåˆï¼Ÿ" -#: frontend/src/metabase/reference/components/GuideHeader.jsx:23 +#: frontend/src/metabase/reference/components/GuideHeader.jsx:25 msgid "This is the perfect place to start if you’re new to your company’s data, or if you just want to check in on what’s going on." msgstr "如果对于公å¸æ•°æ®ä¸äº†è§£ï¼Œæˆ–者想检查一下怎么回事,这是一个很好的选择。" @@ -5743,11 +5725,11 @@ msgstr "å˜æ›´çš„ç†ç”±" msgid "Leave a note to explain what changes you made and why they were required" msgstr "对为什么必须åšè¿™äº›ä¿®æ”¹è¿›è¡Œæ–‡å—记录" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:169 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:170 msgid "Why this database is interesting" msgstr "为什么这个数æ®åº“å分有趣" -#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:179 +#: frontend/src/metabase/reference/databases/DatabaseDetail.jsx:180 msgid "Things to be aware of about this database" msgstr "关于这个数æ®åº“需è¦äº†è§£çš„事情" @@ -5757,44 +5739,44 @@ msgid "Databases and tables" msgstr "æ•°æ®åº“和报表" #: frontend/src/metabase/admin/tasks/containers/TasksApp.jsx:61 -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:27 -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:41 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:28 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:38 #: frontend/src/metabase/reference/databases/TableDetail.jsx:173 #: frontend/src/metabase/reference/databases/TableSidebar.jsx:34 -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:187 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:30 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:191 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:188 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:31 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:193 #: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:190 #: frontend/src/metabase/reference/segments/SegmentFieldSidebar.jsx:31 -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:30 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:31 msgid "Details" msgstr "细节" -#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:33 -#: frontend/src/metabase/reference/databases/TableList.jsx:115 +#: frontend/src/metabase/reference/databases/DatabaseSidebar.jsx:34 +#: frontend/src/metabase/reference/databases/TableList.jsx:116 msgid "Tables in {0}" msgstr "{0}ä¸çš„报表" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:225 -#: frontend/src/metabase/reference/databases/TableDetail.jsx:203 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:221 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:226 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:204 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:222 msgid "Actual name in database" msgstr "实际在数æ®åº“ä¸çš„å称" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:234 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:230 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:235 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:231 msgid "Why this field is interesting" msgstr "为什么这个å—段有趣" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:244 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:240 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:245 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:241 msgid "Things to be aware of about this field" msgstr "关于这个å—段需è¦äº†è§£çš„事情" -#: frontend/src/metabase/reference/databases/FieldDetail.jsx:256 -#: frontend/src/metabase/reference/databases/FieldList.jsx:158 -#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:252 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:159 +#: frontend/src/metabase/reference/databases/FieldDetail.jsx:257 +#: frontend/src/metabase/reference/databases/FieldList.jsx:159 +#: frontend/src/metabase/reference/segments/SegmentFieldDetail.jsx:253 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:160 msgid "Data type" msgstr "æ•°æ®ç±»åž‹" @@ -5808,12 +5790,12 @@ msgstr "在这个表å•ä¸æ·»åŠ å—段时,它们将会出现在这里" msgid "Fields in {0}" msgstr "在{0}ä¸çš„å—段" -#: frontend/src/metabase/reference/databases/FieldList.jsx:152 -#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:153 +#: frontend/src/metabase/reference/databases/FieldList.jsx:153 +#: frontend/src/metabase/reference/segments/SegmentFieldList.jsx:154 msgid "Field name" msgstr "å—段å称" -#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:49 +#: frontend/src/metabase/reference/databases/FieldSidebar.jsx:46 msgid "X-ray this field" msgstr "é€è§†è¿™ä¸ªå—段" @@ -5844,11 +5826,11 @@ msgstr "{0}计数" msgid "See raw data for {0}" msgstr "查看{0}的原始数æ®" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:212 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:213 msgid "Why this table is interesting" msgstr "为什么这个表å•æœ‰è¶£" -#: frontend/src/metabase/reference/databases/TableDetail.jsx:222 +#: frontend/src/metabase/reference/databases/TableDetail.jsx:223 msgid "Things to be aware of about this table" msgstr "关于这个表å•éœ€è¦çŸ¥é“的事情" @@ -5862,7 +5844,7 @@ msgstr "当关于这个表å•çš„ç–‘é—®è¢«æ·»åŠ æ—¶ï¼Œå®ƒä»¬å°†ä¼šå‡ºçŽ°åœ¨è¿™é‡Œ #: frontend/src/metabase/reference/databases/TableQuestions.jsx:74 #: frontend/src/metabase/reference/metrics/MetricQuestions.jsx:78 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:36 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:37 #: frontend/src/metabase/reference/segments/SegmentQuestions.jsx:77 msgid "Questions about {0}" msgstr "关于{0}çš„ç–‘é—®" @@ -5877,7 +5859,7 @@ msgstr "æ ¹æ®{1}创建{0}" msgid "Fields in this table" msgstr "在这个表ä¸çš„å—段" -#: frontend/src/metabase/reference/databases/TableSidebar.jsx:48 +#: frontend/src/metabase/reference/databases/TableSidebar.jsx:46 msgid "Questions about this table" msgstr "关于这个表的疑问" @@ -5913,7 +5895,7 @@ msgstr "æŸ¥çœ‹æ‰€æœ‰çš„æŒ‡æ ‡" msgid "Segments and tables" msgstr "åˆ’åˆ†å’Œè¡¨æ ¼" -#: frontend/src/metabase/home/containers/SearchApp.jsx:83 +#: frontend/src/metabase/home/containers/SearchApp.jsx:82 #: frontend/src/metabase/reference/guide/GettingStartedGuide.jsx:237 msgid "Tables" msgstr "è¡¨æ ¼" @@ -6030,8 +6012,8 @@ msgstr "æœ‰ä»€ä¹ˆäººæ˜¯ä½ çš„ç”¨æˆ·å¦‚æžœå¯¹å‘导感到疑惑,å¯ä»¥è”系到 msgid "Who should users contact for help if they're confused about this data?" msgstr "用户如果对这个数æ®æ„Ÿåˆ°ç–‘惑,他们应该è”ç³»è°å¯»æ±‚帮助?" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:75 -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:95 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:76 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:97 msgid "Please enter a revision message" msgstr "请输入一个调整信æ¯" @@ -6047,15 +6029,15 @@ msgstr "å…³äºŽè¿™ä¸ªæŒ‡æ ‡éœ€è¦æ³¨æ„的事情" msgid "How this Metric is calculated" msgstr "è¿™ä¸ªæŒ‡æ ‡æ˜¯å¦‚ä½•è®¡ç®—çš„" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:240 msgid "Nothing on how it's calculated yet" msgstr "它是如何计算的里é¢è¿˜æ²¡æœ‰ä¸œè¥¿" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:295 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:297 msgid "Other fields you can group this metric by" msgstr "ä½ å¯ä»¥é€šè¿‡èšåˆè¿™ä¸ªæŒ‡æ ‡å½¢æˆçš„其他领域" -#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:296 +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:298 msgid "Fields you can group this metric by" msgstr "ä½ å¯ä»¥é€šè¿‡èšåˆè¿™ä¸ªæŒ‡æ ‡å¾—到的领域" @@ -6080,20 +6062,20 @@ msgid "There are no revisions for this metric" msgstr "è¿™ä¸ªæŒ‡æ ‡æ²¡æœ‰ä¿®æ”¹åŽ†å²" #: frontend/src/metabase/reference/metrics/MetricRevisions.jsx:91 -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:51 -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:91 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:52 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:90 msgid "Revision history for {0}" msgstr "{0}的修改历å²" -#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:43 +#: frontend/src/metabase/reference/metrics/MetricSidebar.jsx:44 msgid "X-ray this metric" msgstr "é€è§†è¿™ä¸ªæŒ‡æ ‡" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:220 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:246 msgid "Why this Segment is interesting" msgstr "为什么这个区段很有æ„æ€" -#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:230 +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:256 msgid "Things to be aware of about this Segment" msgstr "关于这个区段的注æ„事项" @@ -6117,60 +6099,60 @@ msgstr "å¦ä¹ 如何创建区段" msgid "Questions about this segment will appear here as they're added" msgstr "å½“å®ƒä»¬è¢«æ·»åŠ æ—¶ï¼Œå…³äºŽè¿™ä¸ªåŒºæ®µçš„ç–‘é—®å°†ä¼šå‡ºçŽ°åœ¨è¿™é‡Œ" -#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:29 +#: frontend/src/metabase/reference/segments/SegmentRevisions.jsx:28 msgid "There are no revisions for this segment" msgstr "这个区段没有修改过" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:36 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:37 msgid "Fields in this segment" msgstr "在这个区段ä¸çš„å—段" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:42 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:43 msgid "Questions about this segment" msgstr "有关这个区段的疑问" -#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:49 +#: frontend/src/metabase/reference/segments/SegmentSidebar.jsx:50 msgid "X-ray this segment" msgstr "é€è§†è¿™ä¸ªåŒºæ®µ" -#: frontend/src/metabase/routes.jsx:182 +#: frontend/src/metabase/routes.jsx:179 msgid "Login" msgstr "登录" -#: frontend/src/metabase/nav/containers/Navbar.jsx:156 -#: frontend/src/metabase/routes.jsx:198 +#: frontend/src/metabase/nav/containers/Navbar.jsx:155 +#: frontend/src/metabase/routes.jsx:195 msgid "Search" msgstr "查询" -#: frontend/src/metabase/routes.jsx:217 +#: frontend/src/metabase/routes.jsx:214 msgid "Dashboard" msgstr "仪表盘" -#: frontend/src/metabase/routes.jsx:228 +#: frontend/src/metabase/routes.jsx:227 msgid "New Question" msgstr "æ–°ç–‘é—®" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:125 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:127 msgid "Select the type of Database you use" msgstr "é€‰æ‹©ä½ ä½¿ç”¨çš„æ•°æ®åº“类型" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:146 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:148 msgid "Add your data" msgstr "æ·»åŠ ä½ çš„æ•°æ®" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:150 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:152 msgid "I'll add my own data later" msgstr "我之åŽå°†ä¼šæ·»åŠ 自己的数æ®" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:151 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:153 msgid "Connecting to {0}" msgstr "连接到{0}" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:170 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:175 msgid "You’ll need some info about your database, like the username and password. If you don’t have that right now, Metabase also comes with a sample dataset you can get started with." msgstr "在开始之å‰éœ€è¦é…置数æ®åº“ä¿¡æ¯ï¼ˆå¦‚:用户åã€å¯†ç )。如果暂时没有这些信æ¯metabase也æ供了一个简å•æ•°æ®æºä¾›å¦ä¹ 使用。" -#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:202 +#: frontend/src/metabase/setup/components/DatabaseConnectionStep.jsx:207 msgid "I'll add my data later" msgstr "我之åŽå†æ·»åŠ æ•°æ®" @@ -6178,43 +6160,43 @@ msgstr "我之åŽå†æ·»åŠ æ•°æ®" msgid "Control automatic scans" msgstr "控制自动化扫æ" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:52 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:59 msgid "Usage data preferences" msgstr "使用数æ®å¼•ç”¨" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:55 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:62 msgid "Thanks for helping us improve" msgstr "感谢帮助我们æå‡" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:56 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:63 msgid "We won't collect any usage events" msgstr "我们ä¸ä¼šæ”¶é›†ä»»ä½•ä½¿ç”¨äº‹ä»¶ä¿¡æ¯" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:75 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:85 msgid "In order to help us improve Metabase, we'd like to collect certain data about usage through Google Analytics." msgstr "为了æå‡Metabase的用户体验,å¯èƒ½éœ€è¦é€šè¿‡Google Analytics收集特定的使用数æ®ã€‚" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:80 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:90 msgid "Here's a full list of everything we track and why." msgstr "这个我们所有我们è¦æ”¶é›†çš„清å•ï¼Œä»¥åŠä¸ºä»€ä¹ˆè¦æ”¶é›†" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:93 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 msgid "Allow Metabase to anonymously collect usage events" msgstr "å…许Metabase匿å收集使用事件" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:100 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:110 msgid "Metabase {0} collects anything about your data or question results." msgstr "Metabase{0}æ”¶é›†ä»»ä½•äº‹æƒ…å…³äºŽä½ çš„æ•°æ®æˆ–者æ问结果" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:101 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:111 msgid "never" msgstr "æ°¸ä¸" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:103 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:113 msgid "All collection is completely anonymous." msgstr "所有的收集都是匿å的。" -#: frontend/src/metabase/setup/components/PreferencesStep.jsx:104 +#: frontend/src/metabase/setup/components/PreferencesStep.jsx:114 msgid "Collection can be turned off at any point in your admin settings." msgstr "您éšæ—¶å¯ä»¥åœ¨ç®¡ç†è®¾ç½®ä¸å…³é—ä¿¡æ¯æ”¶é›†ã€‚" @@ -6262,24 +6244,24 @@ msgstr "ä½ å¥½ï¼Œ{0}很高兴è§åˆ°ä½ ï¼" msgid "Create a password" msgstr "创建一个密ç " -#: frontend/src/metabase/setup/components/UserStep.jsx:259 -#: frontend/src/metabase/user/components/SetUserPassword.jsx:117 +#: frontend/src/metabase/setup/components/UserStep.jsx:256 +#: frontend/src/metabase/user/components/SetUserPassword.jsx:116 msgid "Shhh..." msgstr "嘘……" -#: frontend/src/metabase/setup/components/UserStep.jsx:269 +#: frontend/src/metabase/setup/components/UserStep.jsx:265 msgid "Confirm password" msgstr "确认密ç " -#: frontend/src/metabase/setup/components/UserStep.jsx:278 +#: frontend/src/metabase/setup/components/UserStep.jsx:274 msgid "Shhh... but one more time so we get it right" msgstr "嘘……å†è¾“入一次让我们确ä¿å®ƒæ˜¯å¯¹çš„" -#: frontend/src/metabase/setup/components/UserStep.jsx:287 +#: frontend/src/metabase/setup/components/UserStep.jsx:282 msgid "Your company or team name" msgstr "ä½ çš„å…¬å¸æˆ–者团队å称" -#: frontend/src/metabase/setup/components/UserStep.jsx:296 +#: frontend/src/metabase/setup/components/UserStep.jsx:291 msgid "Department of awesome" msgstr "超棒的部门" @@ -6456,11 +6438,11 @@ msgstr "用Google邮箱地å€ç™»å½•" msgid "User Details" msgstr "用户详情" -#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:302 +#: frontend/src/metabase/visualizations/components/ChartSettings.jsx:317 msgid "Reset to defaults" msgstr "æ¢å¤é»˜è®¤å€¼" -#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:137 +#: frontend/src/metabase/visualizations/components/ChoroplethMap.jsx:167 msgid "unknown map" msgstr "未知地图" @@ -6468,7 +6450,7 @@ msgstr "未知地图" msgid "Grid map requires binned longitude/latitude." msgstr "ç½‘æ ¼åœ°å›¾éœ€è¦ç»‘定ç»åº¦/纬度。" -#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:112 +#: frontend/src/metabase/visualizations/components/LegendVertical.jsx:117 msgid "more" msgstr "更多" @@ -6505,31 +6487,31 @@ msgstr "撤销设置" msgid "Rows {0}-{1} of {2}" msgstr "{2}çš„{0}~{1}è¡Œ" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:196 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:198 msgid "Data truncated to {0} rows." msgstr "æ•°æ®è¢«æˆªæ–为{0}行。" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:391 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:393 msgid "Could not find visualization" msgstr "找ä¸åˆ°å¯è§†åŒ–" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:398 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:400 msgid "Could not display this chart with this data." msgstr "æ— æ³•æ˜¾ç¤ºè¿™ä¸ªå›¾è¡¨æ˜¾ç¤ºè¿™äº›æ•°æ®" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:514 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:516 msgid "No results!" msgstr "没有结果ï¼" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:535 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:537 msgid "Still Waiting..." msgstr "ä»ç„¶åœ¨ç‰å¾………" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:538 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:540 msgid "This usually takes an average of {0}." msgstr "这将通常å–一个{0}çš„å¹³å‡æ•°ã€‚" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:544 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:546 msgid "(This is a bit long for a dashboard)" msgstr "(这对于仪表盘æ¥è¯´æœ‰ç‚¹å¤ªé•¿äº†ï¼‰" @@ -6545,11 +6527,11 @@ msgstr "选择一个å—段" msgid "error" msgstr "错误" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:122 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:117 msgid "Click and drag to change their order" msgstr "点击并且拖拽æ¥æ”¹å˜ä»–们的指令" -#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:135 +#: frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.jsx:130 msgid "Add fields from the list below" msgstr "从下方列表ä¸æ·»åŠ å—段" @@ -6688,32 +6670,31 @@ msgstr "æ·»åŠ è§„åˆ™" msgid "Update rule" msgstr "更新规则" -#: frontend/src/metabase/visualizations/index.js:33 +#: frontend/src/metabase/visualizations/index.js:39 msgid "Visualization is null" msgstr "å¯è§†åŒ–是空的" -#: frontend/src/metabase/visualizations/index.js:38 +#: frontend/src/metabase/visualizations/index.js:44 msgid "Visualization must define an 'identifier' static variable: " msgstr "å¯è§†åŒ–å›¾æ ‡å¿…é¡»å®šä¹‰ä¸€ä¸ªä½œä¸ºâ€œæ ‡è¯†ç¬¦â€çš„é™æ€å˜é‡ï¼šâ£" -#: frontend/src/metabase/visualizations/index.js:44 +#: frontend/src/metabase/visualizations/index.js:50 msgid "Visualization with that identifier is already registered: " msgstr "å…·æœ‰è¯¥æ ‡è¯†ç¬¦çš„å¯è§†åŒ–图表已ç»æ³¨å†Œï¼šâ£" -#: frontend/src/metabase/visualizations/index.js:72 +#: frontend/src/metabase/visualizations/index.js:78 msgid "No visualization for {0}" msgstr "没有{0}çš„å¯è§†åŒ–" -#. 未èšåˆçš„å—æ®µï¼Œå¦‚æžœä½ æ²¡æœ‰ä¸‹ä¸€æ¥æ“作,默认将对这个å—段求和。 #: frontend/src/metabase/visualizations/lib/warnings.js:25 msgid "\"{0}\" is an unaggregated field: if it has more than one value at a point on the x-axis, the values will be summed." msgstr "“{0}â€æ˜¯æœªèšåˆçš„å—段,如果它在X轴的点上有多于一个的值,这些值将会被求和。" -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:87 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:93 msgid "This chart type requires at least 2 columns." msgstr "è¿™ç§å›¾è¡¨éœ€è¦è‡³å°‘2列" -#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:92 +#: frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js:98 msgid "This chart type doesn't support more than {0} series of data." msgstr "è¿™ç§å›¾è¡¨ä¸æ”¯æŒè¶…过{0}ç§æ•°æ®" @@ -6752,7 +6733,7 @@ msgstr "请在图表设置ä¸é…置这个图表" msgid "Edit Settings" msgstr "编辑设置" -#: frontend/src/metabase/visualizations/lib/fill_data.js:37 +#: frontend/src/metabase/visualizations/lib/fill_data.js:39 msgid "xValues missing!" msgstr "x值丢失ï¼" @@ -6779,7 +6760,7 @@ msgid "Bubble size" msgstr "气泡大å°" #: frontend/src/metabase/visualizations/lib/settings/series.js:71 -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:16 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:17 msgid "Line" msgstr "线段" @@ -6836,104 +6817,104 @@ msgstr "什么也没有" msgid "Linear Interpolated" msgstr "线性æ’值平滑" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:359 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:396 msgid "X-axis scale" msgstr "X轴比例" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:378 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 msgid "Timeseries" msgstr "时间系列" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:381 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:399 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:418 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:436 msgid "Linear" msgstr "线性" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:383 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:400 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:420 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:437 msgid "Power" msgstr "势" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:384 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:401 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:438 msgid "Log" msgstr "日志" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:386 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:423 msgid "Histogram" msgstr "柱状图" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:388 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:425 msgid "Ordinal" msgstr "åºæ•°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:394 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:431 msgid "Y-axis scale" msgstr "Y轴比例" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:407 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:444 msgid "Show x-axis line and marks" msgstr "显示Xè½´çº¿å’Œæ ‡è®°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:413 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:450 msgid "Compact" msgstr "压缩" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:414 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:451 msgid "Rotate 45°" msgstr "旋转45°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:415 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:452 msgid "Rotate 90°" msgstr "旋转90°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:422 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:459 msgid "Show y-axis line and marks" msgstr "显示Yè½´çº¿æ®µå’Œæ ‡è®°" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:434 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:471 msgid "Auto y-axis range" msgstr "自动Y轴范围" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:478 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:515 msgid "Use a split y-axis when necessary" msgstr "当需è¦æ—¶ä½¿ç”¨ä¸€ä¸ªåˆ†ç¦»çš„Yè½´" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:485 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:522 msgid "Show label on x-axis" msgstr "å±•ç¤ºæ ‡ç¾åœ¨X轴上" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:491 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:528 msgid "X-axis label" msgstr "Xè½´æ ‡ç¾" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:500 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:537 msgid "Show label on y-axis" msgstr "å±•ç¤ºæ ‡ç¾åœ¨Y轴上" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:506 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:543 msgid "Y-axis label" msgstr "Yè½´æ ‡ç¾" -#: frontend/src/metabase/visualizations/lib/utils.js:133 +#: frontend/src/metabase/visualizations/lib/utils.js:132 msgid "Standard Deviation" msgstr "æ ‡å‡†å·®" #: frontend/src/metabase/visualizations/lib/settings/graph.js:256 -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:18 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:19 msgid "Area" msgstr "区域" -#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:21 +#: frontend/src/metabase/visualizations/visualizations/AreaChart.jsx:22 msgid "area chart" msgstr "区域图表" #: frontend/src/metabase/visualizations/lib/settings/graph.js:257 -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:17 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:18 msgid "Bar" msgstr "柱" -#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:20 +#: frontend/src/metabase/visualizations/visualizations/BarChart.jsx:21 msgid "bar chart" msgstr "柱形图" @@ -6959,19 +6940,19 @@ msgstr "æ¼æ–—类型" msgid "Bar chart" msgstr "柱形图" -#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:19 +#: frontend/src/metabase/visualizations/visualizations/LineChart.jsx:20 msgid "line chart" msgstr "线段图表" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:301 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:304 msgid "Please select longitude and latitude columns in the chart settings." msgstr "请在图表设置ä¸é€‰æ‹©ç»åº¦å’Œç»´åº¦çš„列" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:307 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:310 msgid "Please select a region map." msgstr "请选择一个区域地图" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:313 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:316 msgid "Please select region and metric columns in the chart settings." msgstr "请在图表设置ä¸é€‰æ‹©ä¸€ä¸ªåŒºåŸŸå’ŒæŒ‡æ ‡åˆ—" @@ -6979,73 +6960,73 @@ msgstr "请在图表设置ä¸é€‰æ‹©ä¸€ä¸ªåŒºåŸŸå’ŒæŒ‡æ ‡åˆ—" msgid "Map" msgstr "地图" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:129 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:132 msgid "Map type" msgstr "地图类型" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:133 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:226 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:136 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:229 msgid "Region map" msgstr "区域地图" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:134 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:137 msgid "Pin map" msgstr "固定地图" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:180 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:183 msgid "Pin type" msgstr "固定类型" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:185 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:188 msgid "Tiles" msgstr "æ ‡é¢˜" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:186 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:189 msgid "Markers" msgstr "æ ‡è®°" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:207 msgid "Latitude field" msgstr "维度å—段" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:211 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:214 msgid "Longitude field" msgstr "ç»åº¦å—段" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:218 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:245 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:221 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:248 msgid "Metric field" msgstr "æŒ‡æ ‡å—段" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:249 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:252 msgid "Region field" msgstr "区域å—段" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:269 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:272 msgid "Radius" msgstr "åŠå¾„" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:275 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:278 msgid "Blur" msgstr "模糊" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:281 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:284 msgid "Min Opacity" msgstr "最å°ä¸é€æ˜Žåº¦" -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:287 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:290 msgid "Max Zoom" msgstr "放到最大" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:227 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:231 msgid "No relationships found." msgstr "没有å‘现关è”。" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:265 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:269 msgid "via {0}" msgstr "通过{0}" -#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:343 +#: frontend/src/metabase/visualizations/visualizations/ObjectDetail.jsx:347 msgid "This {0} is connected to:" msgstr "这个{0}连接到" @@ -7057,7 +7038,7 @@ msgstr "对象细节" msgid "object" msgstr "对象" -#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:371 +#: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:373 msgid "Total" msgstr "总计" @@ -7106,7 +7087,7 @@ msgid "Progress" msgstr "处ç†" #: frontend/src/metabase/entities/collections.js:109 -#: frontend/src/metabase/visualizations/visualizations/Map.jsx:253 +#: frontend/src/metabase/visualizations/visualizations/Map.jsx:256 #: frontend/src/metabase/visualizations/visualizations/Progress.jsx:68 msgid "Color" msgstr "颜色" @@ -7197,12 +7178,12 @@ msgstr "å³è¾¹" msgid "Show background" msgstr "显示背景" -#: frontend/src/metabase-lib/lib/Dimension.js:725 +#: frontend/src/metabase-lib/lib/Dimension.js:758 msgid "{0} bin" msgid_plural "{0} bins" msgstr[0] "{0} 刻度间隔" -#: frontend/src/metabase-lib/lib/Dimension.js:731 +#: frontend/src/metabase-lib/lib/Dimension.js:764 msgid "Auto binned" msgstr "自动分组" @@ -7473,27 +7454,23 @@ msgstr "æ— é—´éš”" #: frontend/src/metabase/lib/query_time.js:196 src/metabase/api/table.clj msgid "Day" msgid_plural "Days" -msgstr[0] "天\n" -"天" +msgstr[0] "天" #. note the order of these options corresponds to the order they will be shown to the user in the UI #: frontend/src/metabase/lib/query_time.js:192 src/metabase/api/table.clj msgid "Minute" msgid_plural "Minutes" -msgstr[0] "分钟\n" -"分钟" +msgstr[0] "分" #: frontend/src/metabase/lib/query_time.js:194 src/metabase/api/table.clj msgid "Hour" msgid_plural "Hours" -msgstr[0] "å°æ—¶\n" -"å°æ—¶" +msgstr[0] "æ—¶" #: frontend/src/metabase/lib/query_time.js:202 src/metabase/api/table.clj msgid "Quarter" msgid_plural "Quarters" -msgstr[0] "å£åº¦\n" -"å£åº¦" +msgstr[0] "å£åº¦" #: src/metabase/api/table.clj msgid "Minute of Hour" @@ -7628,7 +7605,7 @@ msgstr "累积总和" msgid "{0} and {1}" msgstr "{0} å’Œ {1}" -#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:68 +#: frontend/src/metabase-lib/lib/queries/structured/Aggregation.js:76 #: src/metabase/automagic_dashboards/core.clj msgid "{0} of {1}" msgstr "{0} çš„ {1}" @@ -8948,31 +8925,31 @@ msgstr "查看所有文件夹æƒé™" msgid "Also change sub-collections" msgstr "åŒæ—¶æ›´æ”¹å集åˆ" -#: frontend/src/metabase/admin/permissions/selectors.js:285 +#: frontend/src/metabase/admin/permissions/selectors.js:279 msgid "Can edit this collection and its contents" msgstr "å…许修改集åˆåŠå…¶å†…容" -#: frontend/src/metabase/admin/permissions/selectors.js:292 +#: frontend/src/metabase/admin/permissions/selectors.js:286 msgid "Can view items in this collection" msgstr "å…许查看该集åˆçš„内容" -#: frontend/src/metabase/admin/permissions/selectors.js:752 +#: frontend/src/metabase/admin/permissions/selectors.js:746 msgid "Collection Access" msgstr "集åˆçš„æƒé™" -#: frontend/src/metabase/admin/permissions/selectors.js:828 +#: frontend/src/metabase/admin/permissions/selectors.js:822 msgid "This group has permission to view at least one subcollection of this collection." msgstr "该组有æƒæŸ¥çœ‹æ¤é›†åˆçš„至少一个å集åˆã€‚" -#: frontend/src/metabase/admin/permissions/selectors.js:833 +#: frontend/src/metabase/admin/permissions/selectors.js:827 msgid "This group has permission to edit at least one subcollection of this collection." msgstr "该组有æƒç¼–辑æ¤é›†åˆçš„至少一个å集åˆã€‚" -#: frontend/src/metabase/admin/permissions/selectors.js:846 +#: frontend/src/metabase/admin/permissions/selectors.js:840 msgid "View sub-collections" msgstr "查看å集åˆ" -#: frontend/src/metabase/auth/containers/LoginApp.jsx:214 +#: frontend/src/metabase/auth/containers/LoginApp.jsx:245 msgid "Remember Me" msgstr "è®°ä½æˆ‘" @@ -8992,7 +8969,7 @@ msgstr "æŠŠæŠ¥è¡¨æ·»åŠ åˆ°dashboard" msgid "Create a new dashboard" msgstr "创建一个新的仪表æ¿" -#: frontend/src/metabase/containers/ErrorPages.jsx:45 +#: frontend/src/metabase/containers/ErrorPages.jsx:47 msgid "The page you asked for couldn't be found." msgstr "找ä¸åˆ°æ‚¨è¦è®¿é—®çš„页é¢" @@ -9000,11 +8977,11 @@ msgstr "找ä¸åˆ°æ‚¨è¦è®¿é—®çš„页é¢" msgid "Select a {0}" msgstr "选择{0}" -#: frontend/src/metabase/containers/Overworld.jsx:185 +#: frontend/src/metabase/containers/Overworld.jsx:234 msgid "Save dashboards, questions, and collections in \"{0}\"" msgstr "在“{0}â€ä¸ä¿å˜ä»ªè¡¨æ¿ï¼Œé—®é¢˜å’Œé›†åˆ" -#: frontend/src/metabase/containers/Overworld.jsx:188 +#: frontend/src/metabase/containers/Overworld.jsx:235 msgid "Access dashboards, questions, and collections in \"{0}\"" msgstr "访问“{0}â€ä¸çš„仪表æ¿ï¼Œé—®é¢˜å’Œé›†åˆ" @@ -9024,12 +9001,12 @@ msgstr "相关" msgid "More X-rays" msgstr "更多é€è§†æ–¹æ³•" -#: frontend/src/metabase/home/containers/SearchApp.jsx:40 +#: frontend/src/metabase/home/containers/SearchApp.jsx:41 #: src/metabase/pulse/render/body.clj msgid "No results" msgstr "没有结果" -#: frontend/src/metabase/home/containers/SearchApp.jsx:41 +#: frontend/src/metabase/home/containers/SearchApp.jsx:42 msgid "Metabase couldn't find any results for your search." msgstr "Metabaseæ— æ³•æ‰¾åˆ°æ‚¨çš„æœç´¢ç»“果。" @@ -9239,10 +9216,10 @@ msgstr "ä¸é€‚用" msgid "Windows domain" msgstr "Windows域å" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:490 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:499 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:505 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:521 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:527 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:536 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:542 msgid "Labels" msgstr "æ ‡ç¾" @@ -9277,6 +9254,8 @@ msgstr "分享" #: frontend/src/metabase/visualizations/lib/settings/graph.js:286 #: frontend/src/metabase/visualizations/lib/settings/graph.js:294 #: frontend/src/metabase/visualizations/lib/settings/graph.js:302 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:319 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:333 #: frontend/src/metabase/visualizations/lib/settings/nested.js:126 #: frontend/src/metabase/visualizations/visualizations/Funnel.jsx:118 #: frontend/src/metabase/visualizations/visualizations/PieChart.jsx:114 @@ -9291,33 +9270,33 @@ msgstr "分享" msgid "Display" msgstr "显示" -#: frontend/src/metabase/visualizations/lib/settings/graph.js:358 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:393 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:406 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:421 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:433 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:439 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:447 -#: frontend/src/metabase/visualizations/lib/settings/graph.js:477 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:395 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:430 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:443 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:458 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:470 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:476 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:484 +#: frontend/src/metabase/visualizations/lib/settings/graph.js:514 msgid "Axes" msgstr "åæ ‡è½´" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:216 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:212 #: frontend/src/metabase/admin/settings/selectors.js:316 #: frontend/src/metabase/modes/components/drill/FormatAction.jsx:27 #: frontend/src/metabase/visualizations/lib/settings/column.js:63 msgid "Formatting" msgstr "æ ¼å¼åŒ–" -#: frontend/src/metabase/containers/Overworld.jsx:102 +#: frontend/src/metabase/containers/Overworld.jsx:121 msgid "Try these x-rays based on your data." msgstr "æ ¹æ®ä½ çš„æ•°æ®è¯•è¯•è¿™äº›é€è§†ã€‚" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:36 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:38 msgid "There was a problem displaying this chart." msgstr "显示这个图表有一个问题。" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:37 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:39 msgid "Sorry, you don't have permission to see this card." msgstr "对ä¸èµ·ï¼Œæ‚¨æ²¡æœ‰æƒé™çœ‹è¿™å¼ å¡ã€‚" @@ -9337,20 +9316,20 @@ msgstr "é€è§†" msgid "Compare to the rest" msgstr "和其余的比较" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:244 msgid "Use the Java Virtual Machine (JVM) timezone" msgstr "使用Java虚拟机时区" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:248 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:246 msgid "We suggest you leave this off unless you're doing manual timezone casting in\n" "many or most of your queries with this data." msgstr "æˆ‘ä»¬å»ºè®®ä½ è®©å®ƒå…³é—,除éžä½ 用这些数æ®åœ¨å¤§éƒ¨åˆ†æŸ¥è¯¢ä¸æ‰‹åŠ¨è°ƒæ•´æ—¶åŒº" -#: frontend/src/metabase/containers/Overworld.jsx:312 +#: frontend/src/metabase/containers/Overworld.jsx:395 msgid "Your team's most important dashboards go here" msgstr "ä½ çš„å›¢é˜Ÿçš„æœ€é‡è¦çš„仪表盘在这里" -#: frontend/src/metabase/containers/Overworld.jsx:313 +#: frontend/src/metabase/containers/Overworld.jsx:396 msgid "Pin dashboards in {0} to have them appear in this space for everyone" msgstr "把é¢æ¿å›ºå®šåœ¨{0}里,使之对所有人å¯è§" @@ -9374,12 +9353,12 @@ msgstr "æ示:" msgid "Select a currency type" msgstr "选择一个统用的类型" -#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:310 +#: frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx:300 msgid "Field Type" msgstr "å—段类型" -#: frontend/src/metabase/admin/routes.jsx:109 -#: frontend/src/metabase/nav/containers/Navbar.jsx:253 +#: frontend/src/metabase/admin/routes.jsx:110 +#: frontend/src/metabase/nav/containers/Navbar.jsx:252 msgid "Troubleshooting" msgstr "错误排查" @@ -9427,11 +9406,11 @@ msgstr "用时" msgid "Currency" msgstr "è´§å¸" -#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:161 +#: frontend/src/metabase/pulse/components/PulseEditChannels.jsx:157 msgid "Pick a user or channel..." msgstr "选择一个用户或频é“" -#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:89 +#: frontend/src/metabase/visualizations/components/ColumnSettings.jsx:90 msgid "No formatting settings" msgstr "æ— æ ¼å¼åŒ–设置" @@ -9604,15 +9583,15 @@ msgstr "æ ‡å°º" msgid "Gauge ranges" msgstr "æ ‡å°ºèŒƒå›´" -#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:98 +#: frontend/src/metabase/visualizations/visualizations/Scalar.jsx:107 msgid "Field to show" msgstr "显示的å—段" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:140 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:135 msgid "last {0}" msgstr "上一{0}" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:204 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:199 msgid "{0} was {1} {2}" msgstr "{0}{2} {1}" @@ -9740,7 +9719,7 @@ msgstr "å£åº¦" msgid "Adding {0} cards to dashboard {1}:n{2}" msgstr "æ·»åŠ {0} å¡ç‰‡åˆ°ä»ªè¡¨ç›˜ {1}:n{2}" -#: src/metabase/automagic_dashboards/rules.clj +#: src/metabase/util/yaml.clj msgid "Error parsing {0}:n{1}" msgstr "解æžé”™è¯¯ {0}:n{1}" @@ -9877,7 +9856,6 @@ msgid "Error inserting a new Setting: {0}" msgstr "æ’入新设置时出错: {0}" #: src/metabase/models/setting.clj -#, fuzzy msgid "defsetting descriptions strings must be `:internal?` or internationalized, found: `{0}`" msgstr "defsettingæè¿°å—符串必须是`:internal?`或internationalized,found:`{0}`" @@ -10019,7 +9997,6 @@ msgstr "记录查询结果元数æ®æ—¶å‡ºé”™ï¼š" msgid "Error: Query Processor store is not initialized." msgstr "错误:未åˆå§‹åŒ–查询处ç†å™¨å˜å‚¨ã€‚" -#. 错误:查询处ç†å™¨å˜å‚¨ä¸ä¸å˜åœ¨è¡¨{0}。 #: src/metabase/query_processor/store.clj msgid "Error: Table {0} is not present in the Query Processor Store." msgstr "错误:查询处ç†å™¨å˜å‚¨ä¸ä¸å˜åœ¨è¡¨{0}。" @@ -10036,7 +10013,7 @@ msgstr "任务历å²æ¸…ç†å®Œæ¯•, è®°å½•åˆ é™¤ {0}" msgid "not" msgstr "ä¸" -#: src/metabase/util/encryption.clj +#: src/metabase/db.clj src/metabase/util/encryption.clj msgid "For more information, see" msgstr "查看更多信æ¯ï¼Œçœ‹" @@ -10241,7 +10218,6 @@ msgid "Income per state" msgstr "æ¯å·žæ”¶å…¥" #: resources/automagic_dashboards/table/UserTable.yaml -#, fuzzy msgid "Per [[GenericCategoryMedium]]" msgstr "按[[GenericCategoryMedium]]" @@ -10250,7 +10226,6 @@ msgid "A closer look at your [[this]]" msgstr "ç»†çœ‹ä½ çš„ [[this]]" #: resources/automagic_dashboards/table/UserTable.yaml -#, fuzzy msgid "How [[GenericNumber]] is distributed" msgstr "如何分å‘[[GenericNumber]]" @@ -10263,12 +10238,10 @@ msgid "Events per country" msgstr "æ¯ä¸ªå›½å®¶çš„事件" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "Weekdays when [[this.short-name]] were added" msgstr "æ·»åŠ [[this.short-name]]的工作日" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "Months when [[this.short-name]] were added" msgstr "æ·»åŠ [[this.short-name]]的月份" @@ -10289,12 +10262,10 @@ msgid "Heres a quick look at your [[this]]" msgstr "这里是 [[this]] 的速览" #: resources/automagic_dashboards/metric/GenericMetric.yaml -#, fuzzy msgid "[[this]] per [[GenericCategoryLarge]], top 5" msgstr "[[this]]按[[GenericCategoryLarge]],å‰5å" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "Days when [[this.short-name]] were added" msgstr "æ·»åŠ [[this.short-name]]的天数" @@ -10307,7 +10278,6 @@ msgid "[[this]] by quarter of the year" msgstr "[[这个]]按å£åº¦è®¡ç®—" #: resources/automagic_dashboards/table/EventTable.yaml -#, fuzzy msgid "Events per [[GenericCategoryMedium]]" msgstr "æ¯ä¸ª[[GenericCategoryMedium]]的事件" @@ -10324,7 +10294,6 @@ msgid "Heres a closer look at your [[this]] over time" msgstr "éšç€æ—¶é—´çš„æŽ¨ç§»ï¼Œä½ ä¼šä»”ç»†çœ‹çœ‹[[这个]]" #: resources/automagic_dashboards/field/Number.yaml -#, fuzzy msgid "Sum of [[this]] by [[Country]]" msgstr "[[国家]]çš„[[this]]之和" @@ -10429,7 +10398,6 @@ msgid "Transactions per state" msgstr "æ¯ä¸ªå·žçš„交易é‡" #: resources/automagic_dashboards/field/Number.yaml -#, fuzzy msgid "[[this]] by [[Timestamp]]" msgstr "resources/automagic_dashboards/field/Number.yaml" @@ -10496,7 +10464,6 @@ msgid "[[this]] per product" msgstr "æ¯ä¸ªäº§å“" #: resources/automagic_dashboards/metric/GenericMetric.yaml -#, fuzzy msgid "[[this]] per month of the year" msgstr "[[this]]æ¯å¹´çš„æ¯æœˆ" @@ -10514,12 +10481,10 @@ msgid "Sales per state" msgstr "æ¯ä¸ªå·žçš„销售é‡" #: resources/automagic_dashboards/table/EventTable.yaml -#, fuzzy msgid "Events by [[GenericNumber]]" msgstr "[[GenericNumber]]的活动" #: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -#, fuzzy msgid "Sales per product [[ProductCategoryMedium]]" msgstr "æ¯ä¸ªäº§å“的销售[[ProductCategoryMedium]]" @@ -10528,27 +10493,22 @@ msgid "User acquisition by country" msgstr "按国家/地区获å–的用户" #: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -#, fuzzy msgid "[[this]] per source" msgstr "æ¯ä¸ªæ¥æº[[this]]" #: resources/automagic_dashboards/field/DateTime.yaml -#, fuzzy msgid "[[this]] by day of the week" msgstr "[[this]]åˆ°æ˜ŸæœŸå‡ " #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "Days of the month when [[this.short-name]] joined" msgstr "åŠ å…¥[[this.short-name]]çš„é‚£å‡ å¤©" #: resources/automagic_dashboards/table/UserTable.yaml -#, fuzzy msgid "Heres an overview of the people in your [[this]]" msgstr "以下是[[this]]ä¸äººç‰©çš„概述" #: resources/automagic_dashboards/field/DateTime.yaml -#, fuzzy msgid "How [[GenericTable]] are distributed across this time field, and if it has any seasonal patterns." msgstr "[[GenericTable]]如何在æ¤æ—¶é—´å—段ä¸åˆ†å¸ƒï¼Œä»¥åŠæ˜¯å¦æœ‰ä»»ä½•å£èŠ‚性模å¼ã€‚" @@ -10568,17 +10528,14 @@ msgid "How this metric is distributed across different categories" msgstr "è¯¥æŒ‡æ ‡å¦‚ä½•åœ¨ä¸åŒç±»åˆ«ä¸åˆ†å¸ƒ" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[this.short-name]] per state" msgstr "æ¯ä¸ªå·ž[[this.short-name]]" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "Weekdays when [[this.short-name]] joined" msgstr "[[this.short-name]]åŠ å…¥æ—¶çš„å·¥ä½œæ—¥" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "Hours when [[this.short-name]] joined" msgstr "[[this.short-name]]åŠ å…¥æ—¶çš„å°æ—¶æ•°" @@ -10607,7 +10564,6 @@ msgid "Transactions over time" msgstr "éšç€æ—¶é—´çš„推移" #: resources/automagic_dashboards/metric/GenericMetric.yaml -#, fuzzy msgid "[[this]] per [[GenericCategorySmall]]" msgstr "æ¯[[GenericCategorySmall]] [[this]]" @@ -10616,7 +10572,6 @@ msgid "Some breakdown" msgstr "一些故障" #: resources/automagic_dashboards/field/Number.yaml -#, fuzzy msgid "Average of [[this]] by [[State]]" msgstr "å¹³å‡[[this]]乘[[State]]" @@ -10629,27 +10584,22 @@ msgid "By coordinates" msgstr "æ ¹æ®ç»çº¬åº¦åæ ‡" #: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -#, fuzzy msgid "Heres a closer look at your [[this]] by products" msgstr "下é¢ä»”ç»†çœ‹çœ‹ä½ çš„[[this]]产å“" #: resources/automagic_dashboards/metric/GenericMetric.yaml -#, fuzzy msgid "[[this]] per quarter of the year" msgstr "[[this]]æ¯å¹´çš„æ¯ä¸ªå£åº¦" #: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -#, fuzzy msgid "Heres an overview of your [[this]] data from Google Analytics" msgstr "下é¢æ˜¯å¯¹Google Analyticsä¸[[this]]æ•°æ®çš„概述" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "Quarters when [[this.short-name]] joined" msgstr "[[this.short-name]]åŠ å…¥æ—¶çš„å®¿èˆ" #: resources/automagic_dashboards/table/UserTable.yaml -#, fuzzy msgid "New [[this.short-name]] in the last 30 days" msgstr "过去30天内新[[this.short-name]]" @@ -10728,7 +10678,6 @@ msgid "Top acquisition channels" msgstr "顶级收è´æ¸ é“" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "These [[this.short-name]] across time" msgstr "这些[[this.short-name]]跨时间" @@ -10748,7 +10697,6 @@ msgstr "æ¯ä¸ªå›½å®¶å¹³å‡æ”¶å…¥" #: resources/automagic_dashboards/comparison/FK.yaml #: resources/automagic_dashboards/comparison/Country.yaml #: resources/automagic_dashboards/comparison/GenericField.yaml -#, fuzzy msgid "How [[this]] is distributed" msgstr "如何[[this]]分å‘" @@ -10765,7 +10713,6 @@ msgid "Per state" msgstr "æ¯ä¸ªå·ž" #: resources/automagic_dashboards/field/DateTime.yaml -#, fuzzy msgid "Count of [[GenericCategoryMedium]] by [[this]]" msgstr "ç”±[[this]]计算[[GenericCategoryMedium]]çš„æ•°é‡" @@ -10786,22 +10733,18 @@ msgstr "æŸ¥çœ‹ä½ çš„ [[this]]" #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/GenericField.yaml -#, fuzzy msgid "[[GenericNumber]] by [[this]]" msgstr "[[GenericNumber]] [[this]]" #: resources/automagic_dashboards/field/Country.yaml -#, fuzzy msgid "Sum of [[GenericNumber]] by [[this]]" msgstr "[[GenericNumber]]的总和[[this]]" #: resources/automagic_dashboards/table/EventTable.yaml -#, fuzzy msgid "A look at your [[this]] table" msgstr "ç”±[[this]]计算[[GenericCategoryMedium]]çš„æ•°é‡" #: resources/automagic_dashboards/field/State.yaml -#, fuzzy msgid "How many [[GenericTable]] there are per state, and how each state is represented across other categories." msgstr "[[GenericNumber]] [[this]]" @@ -10814,22 +10757,18 @@ msgid "Example exploration" msgstr "探索示例" #: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -#, fuzzy msgid "Sales vs. rating" msgstr "销售é¢ä¸Žè¯„级" #: resources/automagic_dashboards/metric/GenericMetric.yaml -#, fuzzy msgid "[[this]] per hour of the day" msgstr "[[GenericNumber]]的总和[[this]]" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "Where your [[this.short-name]] are" msgstr "çœ‹çœ‹ä½ çš„[[this]]表" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "These are the same for all your [[this.short-name]]" msgstr "æ¯ä¸ªå·žæœ‰å¤šå°‘[[GenericTable]],以åŠæ¯ä¸ªå·žå¦‚何在其他类别ä¸è¡¨ç¤ºã€‚" @@ -10838,7 +10777,6 @@ msgid "Events by different categories" msgstr "ä¸åŒç±»åˆ«çš„活动" #: resources/automagic_dashboards/table/UserTable.yaml -#, fuzzy msgid "Where these [[this.short-name]] are" msgstr "销售é¢ä¸Žè¯„级" @@ -10859,7 +10797,6 @@ msgstr "æ¯ä¸ªæ¥æºçš„交易" #: resources/automagic_dashboards/field/Number.yaml #: resources/automagic_dashboards/field/Country.yaml #: resources/automagic_dashboards/field/GenericField.yaml -#, fuzzy msgid "How the [[this]] is distributed" msgstr "[[this]]æ¯å¤©çš„æ¯å°æ—¶" @@ -10869,7 +10806,6 @@ msgstr "æ¯ä¸ªæ¥æºçš„总收入" #: resources/automagic_dashboards/table/GenericTable.yaml #: resources/automagic_dashboards/table/UserTable.yaml -#, fuzzy msgid "Total [[this.short-name]]" msgstr "您[[this.short-name]]çš„ä½ç½®" @@ -10928,7 +10864,6 @@ msgid "Heres a quick look at the [[this]]" msgstr "这里是 [[this]] 的速览" #: resources/automagic_dashboards/table/TransactionTable.yaml -#, fuzzy msgid "It looks like your [[this]] has transactions, so heres a look at them" msgstr "ä½ çš„æ‰€æœ‰[[this.short-name]]éƒ½æ˜¯ä¸€æ ·çš„" @@ -10938,12 +10873,10 @@ msgstr "æ¯æœˆçš„å¹³å‡æŠ˜æ‰£" #: resources/automagic_dashboards/table/GenericTable.yaml #: resources/automagic_dashboards/table/EventTable.yaml -#, fuzzy msgid "[[Timestamp]] by month of the year" msgstr "这些[[this.short-name]]çš„ä½ç½®" #: resources/automagic_dashboards/metric/GenericMetric.yaml -#, fuzzy msgid "[[this]] per [[GenericCategorySmall]] over time" msgstr "如何分å‘[[this]]" @@ -10964,12 +10897,10 @@ msgid "A closer look at the metrics and dimensions used in this saved question." msgstr "仔细查看æ¤å·²ä¿å˜é—®é¢˜ä¸ä½¿ç”¨çš„æŒ‡æ ‡å’Œç»´åº¦ã€‚" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[this.short-name]] per [[GenericCategoryMedium]]" msgstr "æ¯[[GenericCategoryMedium]] [[this.short-name]]" #: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -#, fuzzy msgid "Sales per product [[ProductCategoryLarge]]" msgstr "æ¯ä»¶äº§å“的销售[[ProductCategoryLarge]]" @@ -10978,12 +10909,10 @@ msgid "Average quantity per country" msgstr "æ¯ä¸ªå›½å®¶çš„å¹³å‡æ•°é‡" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[this.short-name]] per [[GenericCategoryLarge]]" msgstr "æ¯[[GenericCategoryLarge]] [[this.short-name]]" #: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -#, fuzzy msgid "Heres a closer look at your [[this]] per source" msgstr "下é¢ä»”ç»†çœ‹çœ‹ä½ çš„[[this]]æ¯ä¸ªæ¥æº" @@ -10996,7 +10925,6 @@ msgid "If youre into correlations, this is the x-ray for you." msgstr "如果您æ£åœ¨å…³æ³¨ç›¸å…³æ€§ï¼Œé‚£ä¹ˆè¿™å°±æ˜¯X-ray为您æ供的信æ¯ã€‚" #: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -#, fuzzy msgid "Sessions by Country" msgstr "总计[[this.short-name]]" @@ -11006,13 +10934,11 @@ msgstr "有关GA统计数æ®çš„ä¸€äº›æœ‰è¶£æŒ‡æ ‡å¯å¸®åŠ©æ‚¨å…¥é—¨ã€‚" #: resources/automagic_dashboards/table/TransactionTable/ByState.yaml #: resources/automagic_dashboards/metric/GenericMetric.yaml -#, fuzzy msgid "[[this]] per state" msgstr "[[this]]æ¯ä¸ªåŒºåŸŸ" #: resources/automagic_dashboards/table/GenericTable.yaml #: resources/automagic_dashboards/table/EventTable.yaml -#, fuzzy msgid "[[Timestamp]] by quarter of the year" msgstr "看起æ¥ä½ [[this]]有交易,所以看看他们" @@ -11025,7 +10951,6 @@ msgid "A look at your events over time and by several categories." msgstr "éšç€æ—¶é—´å’Œå‡ 个类别æ¥çœ‹ä½ 的事件。" #: resources/automagic_dashboards/field/State.yaml -#, fuzzy msgid "[[GenericTable]] per [[this]]" msgstr "[[时间戳]]按年份计算" @@ -11042,7 +10967,6 @@ msgid "Events per day of the week" msgstr "一周ä¸æ¯å¤©çš„活动" #: resources/automagic_dashboards/table/UserTable.yaml -#, fuzzy msgid "New [[this.short-name]] per month" msgstr "æ¯æœˆæ–°[[this.short-name]]" @@ -11055,12 +10979,10 @@ msgid "Transactions in the last 30 days" msgstr "过去30天的交易é‡" #: resources/automagic_dashboards/field/DateTime.yaml -#, fuzzy msgid "[[GenericTable]] by [[this]]" msgstr "[[this]]æ¯[[GenericCategorySmall]]éšç€æ—¶é—´çš„推移" #: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -#, fuzzy msgid "Overview of your [[this]] data from Google Analytics" msgstr "æ¯[[GenericCategoryMedium]] [[this.short-name]]" @@ -11073,12 +10995,10 @@ msgid "Sales by month" msgstr "按月销售" #: resources/automagic_dashboards/field/Number.yaml -#, fuzzy msgid "How the [[this]] is distributed across categories" msgstr "æ¯ä»¶äº§å“的销售[[ProductCategoryLarge]]" #: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -#, fuzzy msgid "[[Timestamp]] by month of year" msgstr "æ¯[[GenericCategoryLarge]] [[this.short-name]]" @@ -11094,6 +11014,7 @@ msgstr "è¯¥æŒ‡æ ‡å¦‚ä½•åˆ†å¸ƒåœ¨ä¸åŒçš„æ•°å—上" msgid "Sessions by page where the session began" msgstr "会è¯å¼€å§‹æ—¶çš„页é¢ä¼šè¯" +#: frontend/src/metabase/lib/schema_metadata.js:499 #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/field/State.yaml #: resources/automagic_dashboards/field/Number.yaml @@ -11103,18 +11024,15 @@ msgid "Distinct values" msgstr "ä¸é‡å¤çš„值" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "Hours when [[this.short-name]] were added" msgstr "下é¢ä»”ç»†çœ‹çœ‹ä½ çš„[[this]]æ¯ä¸ªæ¥æº" #: resources/automagic_dashboards/table/GenericTable.yaml #: resources/automagic_dashboards/table/EventTable.yaml -#, fuzzy msgid "[[Timestamp]] by day of the week" msgstr "国家会议" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[GenericNumber]] over time" msgstr "[[this]]æ¯å·ž" @@ -11124,17 +11042,14 @@ msgstr "[[this]]æ¯å·ž" #: resources/automagic_dashboards/comparison/FK.yaml #: resources/automagic_dashboards/comparison/Country.yaml #: resources/automagic_dashboards/comparison/GenericField.yaml -#, fuzzy msgid "Heres an overview of your [[this]]" msgstr "以下是[[this]]的概述" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[this.short-name]] by coordinates" msgstr "[[时间戳]]按å£åº¦è®¡ç®—" #: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -#, fuzzy msgid "Heres a closer look at your [[this]] per state" msgstr "继ç»ä»”ç»†çœ‹çœ‹ä½ çš„[[this]]æ¯ä¸ªå·ž" @@ -11147,7 +11062,6 @@ msgid "Sales by coordinates" msgstr "销售的åæ ‡" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "New [[this.short-name]] over time" msgstr "[[GenericTable]]æ¯[[this]]" @@ -11156,7 +11070,6 @@ msgid "Join date by hour of the day" msgstr "按照一天ä¸çš„å°æ—¶è¿›è¡Œæ—¥æœŸè¿žæŽ¥" #: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -#, fuzzy msgid "[[Timestamp]] by hour of day" msgstr "æ¯æœˆæ–°[[this.short-name]]" @@ -11165,7 +11078,6 @@ msgid "Sessions and unique users per day" msgstr "æ¯å¤©çš„会è¯å’Œå”¯ä¸€èº«ä»½ç”¨æˆ·" #: resources/automagic_dashboards/table/EventTable.yaml -#, fuzzy msgid "Events per [[GenericCategoryLarge]]" msgstr "[[GenericTable]] [[this]]" @@ -11183,22 +11095,18 @@ msgid "Income per country" msgstr "æ¯ä¸ªå›½å®¶çš„收入" #: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -#, fuzzy msgid "Heres a closer look at your [[this]] per country" msgstr "æ¥è‡ªGoogle Analyticsçš„[[this]]æ•°æ®æ¦‚è¿°" #: resources/automagic_dashboards/table/example.yaml -#, fuzzy msgid "Sales by product [[ProductCategory]]" msgstr "[[this]]如何跨类别分布" #: resources/automagic_dashboards/metric/GenericMetric.yaml -#, fuzzy msgid "[[this]] per [[GenericCategoryLarge]], bottom 5" msgstr "[[时间戳]]按年份计算" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[this.short-name]] added in the last 30 days" msgstr "æ·»åŠ [[this.short-name]]çš„å°æ—¶æ•°" @@ -11211,12 +11119,10 @@ msgid "Average item quantity per month" msgstr "æ¯æœˆå¹³å‡ç‰©å“æ•°é‡" #: resources/automagic_dashboards/field/Country.yaml -#, fuzzy msgid "The number of [[GenericTable]] per country, and how each country is represented in different categories." msgstr "[[时间戳]]æŒ‰æ˜ŸæœŸå‡ " #: resources/automagic_dashboards/metric/GenericMetric.yaml -#, fuzzy msgid "[[this]] per day of the week" msgstr "[[this]]æ¯å‘¨çš„æ¯ä¸€å¤©" @@ -11225,7 +11131,6 @@ msgid "Average qunatity per source" msgstr "æ¯ä¸ªæ¥æºçš„å¹³å‡æ•°é‡" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[this.short-name]] by [[Timestamp]]" msgstr "[[GenericNumber]]éšç€æ—¶é—´çš„推移" @@ -11238,12 +11143,10 @@ msgid "Sales per month" msgstr "æ¯æœˆé”€å”®" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[GenericNumber]] by join date" msgstr "以下是[[this]]的概述" #: resources/automagic_dashboards/field/Number.yaml -#, fuzzy msgid "Average of [[this]] by [[Country]]" msgstr "[[国家]]çš„[[this]]å¹³å‡å€¼" @@ -11256,12 +11159,10 @@ msgid "Join date by day of the week" msgstr "åŠ å…¥æ—¥æœŸ(æŒ‰å‘¨è®¡ç®—ï¼Œå‘¨å‡ )" #: resources/automagic_dashboards/field/Number.yaml -#, fuzzy msgid "We crunched the numbers for your [[this]]" msgstr "æˆ‘ä»¬ä¸ºä½ [[this]]打了个数å—" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "Months when [[this.short-name]] joined" msgstr "åŠ å…¥[[this.short-name]]çš„å‡ ä¸ªæœˆ" @@ -11462,15 +11363,15 @@ msgstr "是å¦åå¤è°ƒèµ·?" msgid "Triggers for {0}" msgstr "{0}的触å‘器" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:25 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:26 msgid "Tasks" msgstr "任务" -#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:30 +#: frontend/src/metabase/admin/tasks/containers/TroubleshootingApp.jsx:31 msgid "Jobs" msgstr "任务" -#: frontend/src/metabase/components/CollectionLanding.jsx:739 +#: frontend/src/metabase/components/CollectionLanding.jsx:735 msgid "Duplicated {0}" msgstr "å¤åˆ¶ {0}" @@ -11482,7 +11383,7 @@ msgstr "å¤åˆ¶è¯¥é¡¹ç›®" msgid "Archive this item" msgstr "归档该项目" -#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:319 +#: frontend/src/metabase/dashboard/components/DashboardHeader.jsx:336 msgid "Duplicate dashboard" msgstr "å¤åˆ¶ä»ªè¡¨æ¿" @@ -11509,11 +11410,11 @@ msgid "Next {0}" msgstr "下一个{0}" #: frontend/src/metabase/lib/query_time.js:135 +#: src/metabase/pulse/render/datetime.clj msgid "Previous {0}" msgstr "上一页{0}" #: frontend/src/metabase/lib/query_time.js:139 -#, fuzzy msgid "Previous {0} {1}" msgstr "上一页{0} {1}" @@ -11526,12 +11427,10 @@ msgid "Now" msgstr "现在" #: frontend/src/metabase/lib/query_time.js:174 -#, fuzzy msgid "{0} {1} ago" msgstr "{0} {1}å‰" #: frontend/src/metabase/lib/query_time.js:175 -#, fuzzy msgid "{0} {1} from now" msgstr "[[this.short-name]]按åæ ‡" @@ -11573,7 +11472,7 @@ msgstr[0] "一年的星期数" #: frontend/src/metabase/lib/query_time.js:218 msgid "Month of year" msgid_plural "Months of year" -msgstr[0] "月" +msgstr[0] "一年的月数" #: frontend/src/metabase/lib/query_time.js:220 msgid "Quarter of year" @@ -11584,13 +11483,11 @@ msgstr[0] "å£åº¦" #: frontend/src/metabase/parameters/components/widgets/CategoryWidget.jsx:62 #: frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget.jsx:58 #: frontend/src/metabase/query_builder/components/Filter.jsx:82 -#, fuzzy msgid "{0} selection" msgid_plural "{0} selections" -msgstr[0] "继ç»ä»”ç»†çœ‹çœ‹ä½ çš„[[this]]æ¯ä¸ªå·ž" +msgstr[0] "{0} 选择" #: frontend/src/metabase/parameters/components/widgets/DateQuarterYearWidget.jsx:11 -#, fuzzy msgid "[Q]Q" msgstr "æ–°çš„[[this.short-name]]éšç€æ—¶é—´çš„推移" @@ -11598,8 +11495,8 @@ msgstr "æ–°çš„[[this.short-name]]éšç€æ—¶é—´çš„推移" msgid "This" msgstr "这个" -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:99 -#: frontend/src/metabase/query_builder/components/AggregationName.jsx:139 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:97 +#: frontend/src/metabase/query_builder/components/AggregationName.jsx:137 msgid "Invalid" msgstr "æ— æ•ˆ" @@ -11607,12 +11504,11 @@ msgstr "æ— æ•ˆ" msgid "Add a time" msgstr "æ·»åŠ æ—¶é—´" -#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:189 +#: frontend/src/metabase/visualizations/visualizations/SmartScalar.jsx:184 msgid "Nothing to compare for the previous {0}." msgstr "æ— æ³•ä¸Žå‰{0}比较" -#: frontend/src/metabase-lib/lib/Dimension.js:678 -#, fuzzy +#: frontend/src/metabase-lib/lib/Dimension.js:710 msgid "by {0}" msgstr "[[时间戳]]按å°æ—¶è®¡ç®—" @@ -11665,51 +11561,46 @@ msgid "Error adding legacy SQL directive to BigQuery saved Question" msgstr "å°†é—ç•™SQLæŒ‡ä»¤æ·»åŠ åˆ°BigQueryä¿å˜é—®é¢˜æ—¶å‡ºé”™" #: src/metabase/driver.clj -#, fuzzy msgid "Failed to notify {0} Database {1} updated" msgstr "æ¯ä¸ª[[GenericCategoryLarge]]的事件" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Loading driver {0} {1}" msgstr "æ£åœ¨åŠ 载驱动 {0} {1}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Load driver {0}" msgstr "åŠ è½½é©±åŠ¨{0}" -#: src/metabase/driver.clj -#, fuzzy +#: src/metabase/driver/impl.clj msgid "Driver not registered after loading: {0}" msgstr "继ç»ä»”细看看æ¯ä¸ªå›½å®¶çš„[[this]]" -#: src/metabase/driver.clj -#, fuzzy +#: src/metabase/driver/impl.clj msgid "Error: attempting to change {0} property `:abstract?` from {1} to {2}." msgstr "按产å“销售[[ProductCategory]]" -#: src/metabase/driver.clj -#, fuzzy +#: src/metabase/driver/impl.clj msgid "Registered abstract driver {0}" msgstr "[[this]]æ¯[[GenericCategoryLarge]],底部5" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Registered driver {0}" msgstr "å·²æ³¨å†Œçš„é©±åŠ¨ç¨‹åº {0}" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "(parents: {0})" msgstr "(父节点: {0})" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Initializing driver {0}..." msgstr "åˆå§‹åŒ–驱动 {0}…" -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Reason:" msgstr "åŽŸå› : " #: src/metabase/driver.clj -#, fuzzy msgid "Invalid driver feature: {0}" msgstr "[[this.short-name]]在过去30å¤©å†…æ·»åŠ " @@ -11718,7 +11609,6 @@ msgid "Invalid HoneySQL form:" msgstr "æ— æ•ˆçš„HoneySQLå½¢å¼:" #: src/metabase/driver/sql_jdbc/connection.clj -#, fuzzy msgid "Closing connection pool for database {0} ..." msgstr "æ¯ä¸ªå›½å®¶/地区的[[GenericTable]]æ•°é‡ï¼Œä»¥åŠæ¯ä¸ªå›½å®¶/地区在ä¸åŒç±»åˆ«ä¸çš„表示方å¼ã€‚" @@ -11735,22 +11625,18 @@ msgid "Unexpected error listening on events" msgstr "监å¬äº‹ä»¶æ—¶å‡ºçŽ°æ„外错误" #: src/metabase/events/sync_database.clj -#, fuzzy msgid "Error syncing Database {0}" msgstr "[[this]]æ¯å‘¨çš„æ¯ä¸€å¤©" #: src/metabase/events/sync_database.clj -#, fuzzy msgid "Failed to process sync-database event." msgstr "[[this.short-name]]按[[Timestamp]]" #: src/metabase/mbql/util.clj -#, fuzzy msgid "Bad nested-query-level: query does not have a source query" msgstr "[[GenericNumber]]æŒ‰åŠ å…¥æ—¥æœŸ" #: src/metabase/metabot/command.clj -#, fuzzy msgid "I don''t know how to `{0}`." msgstr "[[国家]]çš„[[this]]å¹³å‡å€¼" @@ -11763,27 +11649,22 @@ msgid "Error in Metabot command" msgstr "Metabot命令错误" #: src/metabase/metabot/websocket.clj -#, fuzzy msgid "Websocket associated with this Slack event is different from the websocket we're currently using." msgstr "æˆ‘ä»¬ä¸ºä½ [[this]]打了个数å—" #: src/metabase/models/field_values.clj -#, fuzzy msgid "FieldValues for Field {0} remain unchanged. Skipping..." msgstr "åŠ å…¥[[this.short-name]]çš„å‡ ä¸ªæœˆ" #: src/metabase/models/interface.clj -#, fuzzy msgid "Unable to normalize:" msgstr "上一页{0} {1}" #: src/metabase/models/params.clj -#, fuzzy msgid "Could not find matching Field ID for target:" msgstr "{0} {1}å‰" #: src/metabase/plugins.clj -#, fuzzy msgid "Metabase does not have permissions to write to plugins directory {0}" msgstr "{0} {1}从现在开始" @@ -11824,7 +11705,6 @@ msgid "Using Clojure base loader as shared context classloader: {0}" msgstr "使用ClojureåŸºç¡€åŠ è½½ç¨‹åºä½œä¸ºå…±äº«ä¸Šä¸‹æ–‡ç±»åŠ 载器:{0}" #: src/metabase/plugins/classloader.clj -#, fuzzy msgid "Setting current thread context classloader to shared classloader {0}..." msgstr "{0}选择" @@ -11841,7 +11721,6 @@ msgid "Added URL {0} to classpath" msgstr "å°†{0}æ·»åŠ åˆ° classpath" #: src/metabase/plugins/dependencies.clj -#, fuzzy msgid "Plugin {0} declares a dependency that Metabase does not understand: {1}" msgstr "æ’件{0}声明了Metabaseä¸ç†è§£çš„ä¾èµ–项:{1}" @@ -11850,12 +11729,10 @@ msgid "Refer to the plugin manifest reference for a complete list of valid plugi msgstr "有关有效æ’件ä¾èµ–项的完整列表,请å‚阅æ’件清å•å¼•ç”¨ï¼š" #: src/metabase/plugins/dependencies.clj -#, fuzzy msgid "Metabase cannot initialize plugin {0} due to required dependencies." msgstr "由于所需的ä¾èµ–性,Metabaseæ— æ³•åˆå§‹åŒ–æ’件{0}。" #: src/metabase/plugins/dependencies.clj -#, fuzzy msgid "Class not found: {0}" msgstr "[Q]é—®" @@ -11864,21 +11741,18 @@ msgid "Plugin ''{0}'' depends on plugin ''{1}''" msgstr "æ’件\"{0}\" ä¾èµ–\"{1}\"" #: src/metabase/plugins/dependencies.clj -#, fuzzy msgid "{0} dependency {1} satisfied? {2}" msgstr "ç”±{0}" #: src/metabase/plugins/dependencies.clj -#, fuzzy msgid "Plugins with unsatisfied deps: {0}" msgstr "æ— æ³•é€šçŸ¥{0}æ•°æ®åº“{1}已更新" -#: src/metabase/plugins/files.clj -#, fuzzy +#: src/metabase/util/files.clj msgid "Extract file {0} -> {1}" msgstr "åŠ è½½åŽæœªæ³¨å†Œçš„驱动程åºï¼š{0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Resource does not exist." msgstr "资æºä¸å˜åœ¨" @@ -11887,7 +11761,6 @@ msgid "Loading plugin namespace {0}..." msgstr "åŠ è½½æ’件命å空间 {0}…" #: src/metabase/plugins/initialize.clj -#, fuzzy msgid "Dependencies satisfied; these plugins will now be loaded: {0}" msgstr "错误:å°è¯•å°†{0}属性`:abstract?`从{1}更改为{2}。" @@ -11896,23 +11769,19 @@ msgid "Registering JDBC proxy driver for {0}..." msgstr "æ£åœ¨ä¸º {0} 注册JDBC代ç†æœåŠ¡å™¨..." #: src/metabase/plugins/jdbc_proxy.clj -#, fuzzy msgid "Deregistering original JDBC driver {0}..." msgstr "注册抽象驱动程åº{0}" #: src/metabase/plugins/lazy_loaded_driver.clj -#, fuzzy msgid "Default connection property {0} does not exist." msgstr "æ— æ•ˆçš„é©±åŠ¨ç¨‹åºåŠŸèƒ½ï¼š{0}" #: src/metabase/plugins/lazy_loaded_driver.clj -#, fuzzy msgid "Invalid connection property {0}: not a string or map." msgstr "å…³é—æ•°æ®åº“{0}çš„è¿žæŽ¥æ± ..." #. ok, do the init steps listed in the plugin mainfest #: src/metabase/plugins/lazy_loaded_driver.clj -#, fuzzy msgid "Load lazy loading driver {0}" msgstr "åŒæ¥æ•°æ®åº“{0}时出错" @@ -11921,13 +11790,11 @@ msgid "Cannot initialize plugin: missing required property `driver-name`" msgstr "æ— æ³•åˆå§‹åŒ–æ’件:缺少必需的‘driver-name’属性" #: src/metabase/plugins/lazy_loaded_driver.clj -#, fuzzy msgid "Warning: plugin manifest for {0} does not include connection properties" msgstr "æ— æ³•å¤„ç†åŒæ¥æ•°æ®åº“事件。" #. finally, register the Metabase driver #: src/metabase/plugins/lazy_loaded_driver.clj -#, fuzzy msgid "Registering lazy loading driver {0}..." msgstr "错误的嵌套查询级别:查询没有æºæŸ¥è¯¢" @@ -11984,7 +11851,6 @@ msgid "Field" msgstr "å—段" #: src/metabase/sync/sync_metadata/fields/sync_instances.clj -#, fuzzy msgid "Error checking if Fields {0} need to be created or reactivated" msgstr "我ä¸çŸ¥é“如何`{0}`。" @@ -11997,17 +11863,14 @@ msgid "Error retiring {0}" msgstr "èŽ·å– {0} 失败" #: src/metabase/sync/sync_metadata/fields/sync_metadata.clj -#, fuzzy msgid "Database type of {0} has changed from ''{1}'' to ''{2}''." msgstr "与æ¤Slack事件关è”çš„Websocket与我们当å‰ä½¿ç”¨çš„websocketä¸åŒã€‚" #: src/metabase/sync/sync_metadata/fields/sync_metadata.clj -#, fuzzy msgid "Base type of {0} has changed from ''{1}'' to ''{2}''." msgstr "å—段{0}çš„FieldValuesä¿æŒä¸å˜ã€‚跳绳..." #: src/metabase/sync/sync_metadata/fields/sync_metadata.clj -#, fuzzy msgid "Special type of {0} has changed from ''{1}'' to ''{2}''." msgstr "æ— æ³•è§„èŒƒåŒ–ï¼š" @@ -12016,17 +11879,14 @@ msgid "Comment has been added for {0}." msgstr "为 {0} æ·»åŠ æ³¨é‡Š." #: src/metabase/task.clj -#, fuzzy msgid "Stopping Quartz Scheduler {0}" msgstr "找ä¸åˆ°åŒ¹é…çš„ç›®æ ‡å—段ID:" #: src/metabase/task.clj -#, fuzzy msgid "Starting Quartz Scheduler {0}" msgstr "Metabaseæ— æƒå†™å…¥æ’件目录{0}" #: src/metabase/task.clj -#, fuzzy msgid "Error loading tasks namespace {0}" msgstr "将当å‰çº¿ç¨‹ä¸Šä¸‹æ–‡ç±»åŠ è½½å™¨è®¾ç½®ä¸ºå…±äº«ç±»åŠ è½½å™¨{0} ..." @@ -12093,12 +11953,10 @@ msgid "Maximum memory available to JVM: {0}" msgstr "JVMå¯ç”¨çš„最大内å˜é‡: {0}" #: src/metabase/util.clj -#, fuzzy msgid "Not something with an ID: {0}" msgstr "将当å‰çº¿ç¨‹ä¸Šä¸‹æ–‡ç±»åŠ 载器设置为NEWLY CREATEDç±»åŠ è½½å™¨{0} ..." #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[CreateDate]] by month of the year" msgstr "[[CreateDate]]按年份计算" @@ -12107,7 +11965,6 @@ msgid "Here's a quick look at your [[this]]" msgstr "这里是 [[this]] 的速览" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[CreateTimestamp]] by hour of the day" msgstr "[[CreateTimestamp]]按å°æ—¶è®¡ç®—" @@ -12120,7 +11977,6 @@ msgid "How it's distributed across time and other categories." msgstr "在时间和其他分类维度上的分布." #: resources/automagic_dashboards/table/TransactionTable/BySource.yaml -#, fuzzy msgid "Here's a closer look at your [[this]] per source" msgstr "以下是您对[[this]]æ¯ä¸ªæ¥æºçš„详细介ç»" @@ -12129,17 +11985,14 @@ msgid "Here's a quick look at the [[this]]" msgstr "这里是 [[this]] 的速览" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[CreateTimestamp]] by day of the month" msgstr "æ’件{0}声明了Metabaseä¸ç†è§£çš„ä¾èµ–项:{1}" #: resources/automagic_dashboards/table/UserTable.yaml -#, fuzzy msgid "Here's an overview of the people in your [[this]]" msgstr "由于所需的ä¾èµ–性,Metabaseæ— æ³•åˆå§‹åŒ–æ’件{0}。" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[CreateTimestamp]] by quarter of the year" msgstr "找ä¸åˆ°ç±»ï¼š{0}" @@ -12150,33 +12003,27 @@ msgid "How they compare across location" msgstr "他们如何比较ä¸åŒçš„ä½ç½®" #: resources/automagic_dashboards/table/TransactionTable/ByProduct.yaml -#, fuzzy msgid "Here's a closer look at your [[this]] by products" msgstr "{0}ä¾èµ–{1}满æ„å—?{2}" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[CreateTimestamp]] by month of the year" msgstr "带有ä¸æ»¡æ„depsçš„æ’件:{0}" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "An overview of your [[this]] and how it's distributed across time, place, and categories." msgstr "æå–文件{0} - > {1}" #: resources/automagic_dashboards/field/DateTime.yaml #: resources/automagic_dashboards/question/GenericQuestion.yaml -#, fuzzy msgid "Here's a closer look at your [[this]]" msgstr "ä¾èµ–性满足;Â çŽ°åœ¨å°†åŠ è½½è¿™äº›æ’件:{0}" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[CreateTimestamp]] by day of the week" msgstr "å–消注册原始JDBC驱动程åº{0} ..." #: resources/automagic_dashboards/table/GoogleAnalyticsTable.yaml -#, fuzzy msgid "Here's an overview of your [[this]] data from Google Analytics" msgstr "默认连接属性{0}ä¸å˜åœ¨ã€‚" @@ -12186,17 +12033,14 @@ msgstr "默认连接属性{0}ä¸å˜åœ¨ã€‚" #: resources/automagic_dashboards/comparison/FK.yaml #: resources/automagic_dashboards/comparison/Country.yaml #: resources/automagic_dashboards/comparison/GenericField.yaml -#, fuzzy msgid "Here's an overview of your [[this]]" msgstr "æ— æ•ˆçš„è¿žæŽ¥å±žæ€§{0}:ä¸æ˜¯å—ç¬¦ä¸²æˆ–æ˜ å°„ã€‚" #: resources/automagic_dashboards/field/Country.yaml -#, fuzzy msgid "Here's a closer look at your [[this]] field" msgstr "åŠ è½½å»¶è¿ŸåŠ è½½é©±åŠ¨ç¨‹åº{0}" #: resources/automagic_dashboards/table/TransactionTable/ByCountry.yaml -#, fuzzy msgid "Here's a closer look at your [[this]] per country" msgstr "è¦å‘Šï¼š{0}çš„æ’件清å•ä¸åŒ…å«è¿žæŽ¥å±žæ€§" @@ -12205,42 +12049,35 @@ msgid "If you're into correlations, this is the x-ray for you." msgstr "如果您æ£åœ¨è¿›è¡Œç›¸å…³ï¼Œé‚£ä¹ˆè¿™å°±æ˜¯æ‚¨çš„X射线。" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[CreateDate]] by day of the week" msgstr "æ³¨å†Œå»¶è¿ŸåŠ è½½é©±åŠ¨ç¨‹åº{0} ..." #: resources/automagic_dashboards/table/TransactionTable.yaml -#, fuzzy msgid "It looks like your [[this]] has transactions, so here's a look at them" msgstr "检查是å¦éœ€è¦åˆ›å»ºæˆ–é‡æ–°æ¿€æ´»å—段{0}时出错" #: resources/automagic_dashboards/table/TransactionTable/ByState.yaml -#, fuzzy msgid "Here's a closer look at your [[this]] per state" msgstr "æ•°æ®åº“类型{0}已从“{1}â€æ›´æ”¹ä¸ºâ€œ{2}â€ã€‚" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[CreateDate]] by day of the month" msgstr "基本类型{0}已从“{1}â€æ›´æ”¹ä¸ºâ€œ{2}â€ã€‚" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[CreateTime]] by hour of the day" msgstr "特殊类型的{0}已从“{1}â€æ›´æ”¹ä¸ºâ€œ{2}â€ã€‚" #: resources/automagic_dashboards/table/TransactionTable/Seasonality.yaml -#, fuzzy msgid "Here's a closer look at your [[this]] over time" msgstr "åœæ¢Quartz Scheduler {0}" #: resources/automagic_dashboards/table/GenericTable.yaml -#, fuzzy msgid "[[CreateDate]] by quarter of the year" msgstr "å¯åŠ¨Quartz Scheduler {0}" #: frontend/src/metabase/admin/people/containers/EditUserModal.jsx:12 -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:204 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:202 msgid "Edit user" msgstr "编辑用户" @@ -12248,12 +12085,12 @@ msgstr "编辑用户" msgid "New user" msgstr "新增用户" -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:208 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:206 #: frontend/src/metabase/admin/people/containers/UserPasswordResetModal.jsx:69 msgid "Reset password" msgstr "é‡ç½®å¯†ç " -#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:212 +#: frontend/src/metabase/admin/people/containers/PeopleListingApp.jsx:210 msgid "Deactivate user" msgstr "åœç”¨ç”¨æˆ·" @@ -12331,11 +12168,9 @@ msgid "Card results metadata passed in to API is ISSING. Running query to fetch msgstr "ä¼ é€’ç»™APIçš„å¡ç‰‡ç»“果元数æ®æ˜¯ISSING。è¿è¡ŒæŸ¥è¯¢ä»¥èŽ·å–æ£ç¡®çš„元数æ®ã€‚" #: src/metabase/api/email.clj -#, fuzzy msgid "{0} was autocorrected to {1}" msgstr "åŠ è½½ä»»åŠ¡å称空间{0}时出错" -#. DELETE /api/metric/:id æ ·å¼ä½¿ç”¨çš„是Restfulé£Žæ ¼çš„æ•°æ®è®¿é—®æŽ¥å£ï¼ŒæŒ‰ç…§Metabase文档所述,‘:id’应当是URL路径å¯å˜å‚数。 #: src/metabase/api/metric.clj msgid "DELETE /api/metric/:id is deprecated. Instead, change its `archived` value via PUT /api/metric/:id." msgstr "DELETE /api/metric/:id 已弃用。请替代通过PUT /api/metric/:id修改其‘archived’的å–值。" @@ -12369,7 +12204,6 @@ msgid "Async response finished, closing channels." msgstr "异æ¥å“应完æˆï¼Œå…³é—通é“。" #: src/metabase/async/api_response.clj -#, fuzzy msgid "No response after waiting {0}. Canceling request." msgstr "ä¸æ˜¯å…·æœ‰ID的东西:{0}" @@ -12394,7 +12228,6 @@ msgid "Not running pending function call: output channel already closed." msgstr "ä¸èƒ½è¿è¡Œå¾…处ç†å‡½æ•°è°ƒç”¨ï¼šè¾“出通é“已关é—。" #: src/metabase/async/semaphore_channel.clj -#, fuzzy msgid "Current thread already has a permit for {0}, will not wait to acquire another" msgstr "[[CreateDate]]按年份计算" @@ -12407,22 +12240,18 @@ msgid "Running {0} on separate thread..." msgstr "在å•ç‹¬çº¿ç¨‹ä¸è¿è¡Œ {0} …" #: src/metabase/async/util.clj -#, fuzzy msgid "Caught error running {0}" msgstr "抓到错误è¿è¡Œ {0}" #: src/metabase/async/util.clj -#, fuzzy msgid "Request canceled, canceling future" msgstr "请求已å–消,å–消了未æ¥" #: src/metabase/driver/sql_jdbc/connection.clj -#, fuzzy msgid "Closing old connection pool for database {0} ..." msgstr "å…³é—æ•°æ®åº“çš„æ—§è¿žæŽ¥æ± {0}..." #: src/metabase/metabot/command.clj -#, fuzzy msgid "Here''s your {0} most recent cards:" msgstr "[[CreateTimestamp]]按å°æ—¶è®¡ç®—" @@ -12463,17 +12292,14 @@ msgid "Error unscheduling tasks for DB." msgstr "æ•°æ®åº“未安排任务出错。" #: src/metabase/models/database.clj -#, fuzzy msgid "{0} Database ''{1}'' sync/analyze schedules have changed!" msgstr "以下是您对[[this]]æ¯ä¸ªæ¥æºçš„详细介ç»" #: src/metabase/models/database.clj -#, fuzzy msgid "Sync metadata was: ''{0}'' is now: ''{1}''" msgstr "[[CreateTimestamp]]按月的日期" #: src/metabase/models/database.clj -#, fuzzy msgid "Cache FieldValues was: ''{0}'', is now: ''{1}''" msgstr "以下是[[this]]ä¸äººç‰©çš„概述" @@ -12506,22 +12332,18 @@ msgid "You cannot update the creator_id of a Segment." msgstr "您ä¸èƒ½æ›´æ–°åˆ’åˆ†çš„åˆ›å»ºè€…æ ‡è¯†(creator_id)" #: src/metabase/models/setting.clj -#, fuzzy msgid "Attempted to set Setting {0} to obfuscated value. Ignoring change." msgstr "[[CreateTimestamp]]按å£åº¦è®¡ç®—" #: src/metabase/models/setting.clj -#, fuzzy msgid "Using value of env var {0}" msgstr "以下是您的[[this]]产å“的详细介ç»" #: src/metabase/models/user.clj -#, fuzzy msgid "Adding User {0} to All Users permissions group..." msgstr "[[CreateTimestamp]]按年份的月份" #: src/metabase/models/user.clj -#, fuzzy msgid "Adding User {0} to Admin permissions group..." msgstr "您[[this]]的概述åŠå…¶åœ¨æ—¶é—´ï¼Œåœ°ç‚¹å’Œç±»åˆ«ä¸çš„分布情况。" @@ -12538,7 +12360,6 @@ msgid "Timed out after {0} milliseconds." msgstr "{0} ms åŽè¶…æ—¶." #: frontend/src/metabase/admin/tasks/containers/JobTriggersModal.jsx:27 -#, fuzzy msgid "Misfire Instruction" msgstr "失ç«æŒ‡ä»¤" @@ -12546,11 +12367,11 @@ msgstr "失ç«æŒ‡ä»¤" msgid "Archive this?" msgstr "将这个归档?" -#: frontend/src/metabase/components/BrowseApp.jsx:244 +#: frontend/src/metabase/components/BrowseApp.jsx:242 msgid "Learn about our data" msgstr "了解我们的数æ®" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:265 msgid "Use DNS SRV when connecting" msgstr "连接时使用DNS SRV(域åæœåŠ¡å™¨ï¼‰" @@ -12560,7 +12381,7 @@ msgid "Using this option requires that provided host is a FQDN. If connecting t "leave this disabled." msgstr "使用æ¤é€‰é¡¹è¦æ±‚æ供的主机是一个FQDN。 如果连接到一个Atlas集群,您å¯èƒ½éœ€è¦å¯ç”¨æ¤é€‰é¡¹ã€‚ å¦‚æžœä½ ä¸çŸ¥é“è¿™æ„味ç€ä»€ä¹ˆï¼Œè¯·ä¿æŒç¦ç”¨è¯¥é€‰é¡¹ã€‚" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:318 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:313 msgid "Automatically run queries when doing simple filtering and summarizing" msgstr "在进行简å•çš„过滤和汇总时自动è¿è¡ŒæŸ¥è¯¢" @@ -12568,7 +12389,7 @@ msgstr "在进行简å•çš„过滤和汇总时自动è¿è¡ŒæŸ¥è¯¢" msgid "When this is on Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "这个选项开å¯æ—¶ï¼Œå½“ç”¨æˆ·åœ¨æŸ¥çœ‹è¡¨æ ¼æˆ–å›¾è¡¨æ—¶ä½¿ç”¨â€œæ±‡æ€»â€å’Œâ€œè¿‡æ»¤â€æŒ‰é’®è¿›è¡Œç®€å•æ•°æ®æŽ¢ç´¢æ—¶ï¼ŒMetabase将自动è¿è¡ŒæŸ¥è¯¢ã€‚ 如果查询æ¤æ•°æ®åº“的速度很慢,å¯ä»¥å°†è¯¥é€‰é¡¹å…³é—。 æ¤è®¾ç½®ä¸ä¼šå½±å“æ•°æ®é’»æŽ¢æˆ–SQL查询。" -#: frontend/src/metabase/containers/Overworld.jsx:247 +#: frontend/src/metabase/containers/Overworld.jsx:329 msgid "Learn about this database" msgstr "了解这个数æ®åº“" @@ -12576,26 +12397,25 @@ msgstr "了解这个数æ®åº“" msgid "Archive this dashboard?" msgstr "是å¦å½’档该仪表æ¿?" -#: frontend/src/metabase/home/containers/SearchApp.jsx:113 +#: frontend/src/metabase/home/containers/SearchApp.jsx:112 msgid "All results" msgstr "所有结果" -#: frontend/src/metabase/home/containers/SearchApp.jsx:180 +#: frontend/src/metabase/home/containers/SearchApp.jsx:175 msgid "Our Analytics" msgstr "我们的分æž" -#: frontend/src/metabase/lib/schema_metadata.js:500 -#, fuzzy +#: frontend/src/metabase/lib/schema_metadata.js:509 msgid "Additive sum of all the values of a column.\\ne.x. total revenue over time." msgstr "这里仔细看看[[this]]" -#: frontend/src/metabase/lib/schema_metadata.js:508 +#: frontend/src/metabase/lib/schema_metadata.js:518 msgid "Additive count of the number of rows.\\ne.x. total number of sales over time." msgstr "è¡Œæ•°çš„é™„åŠ è®¡æ•°ã€‚\\ ne.x。总销售é¢éšç€æ—¶é—´çš„推移。" #: frontend/src/metabase/modes/components/drill/ColumnFilterDrill.jsx:42 #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:47 -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:91 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:98 msgid "Filter" msgstr "过滤器" @@ -12604,27 +12424,27 @@ msgid "record" msgid_plural "records" msgstr[0] "记录" -#: frontend/src/metabase/nav/containers/Navbar.jsx:346 +#: frontend/src/metabase/nav/containers/Navbar.jsx:340 msgid "Browse Data" -msgstr "æµé‡æ•°æ®" +msgstr "æµè§ˆæ•°æ®" -#: frontend/src/metabase/nav/containers/Navbar.jsx:376 +#: frontend/src/metabase/nav/containers/Navbar.jsx:373 msgid "Write SQL" msgstr "写SQL" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:147 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:60 msgid "Simple question" msgstr "简å•æŸ¥è¯¢" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:148 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:61 msgid "Pick some data, view it, and easily filter, summarize, and visualize it." msgstr "挑选并æµè§ˆæ•°æ®, æ·»åŠ ç®€å•çš„过滤或èšåˆ, 然åŽå°†æ•°æ®å¯è§†åŒ–." -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:156 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:72 msgid "Custom question" msgstr "自定义查询" -#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:157 +#: frontend/src/metabase/new_query/containers/NewQueryOptions.jsx:73 msgid "Use the advanced notebook editor to join data, create custom columns, do math, and more." msgstr "使用高级查询编辑器完æˆå…³è”, 创建自定义列, 实现数å¦è®¡ç®—ç‰æ›´å¤šé«˜çº§åŠŸèƒ½." @@ -12632,7 +12452,7 @@ msgstr "使用高级查询编辑器完æˆå…³è”, 创建自定义列, 实现数 msgid "Basic Metrics" msgstr "åŸºç¡€æŒ‡æ ‡" -#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:319 +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:322 msgid "Custom…" msgstr "自定义" @@ -12648,7 +12468,7 @@ msgstr "请选择一个记录行返回数é‡çš„é™å®šå€¼" msgid "Show maximum" msgstr "显示最大值" -#: frontend/src/metabase/query_builder/components/RunButton.jsx:47 +#: frontend/src/metabase/query_builder/components/RunButton.jsx:45 msgid "Get Preview" msgstr "预览" @@ -12677,7 +12497,7 @@ msgid "Custom column" msgstr "自定义列" #: frontend/src/metabase/query_builder/components/notebook/NotebookStep.jsx:54 -#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:61 +#: frontend/src/metabase/query_builder/components/view/QuestionSummaries.jsx:60 msgid "Summarize" msgstr "èšåˆ" @@ -12694,11 +12514,10 @@ msgid "Pick the metric you want to see" msgstr "é€‰æ‹©ä½ è¦æŸ¥çœ‹çš„æŒ‡æ ‡" #: frontend/src/metabase/query_builder/components/notebook/steps/BreakoutStep.jsx:18 -#: frontend/src/metabase/query_builder/components/view/sidebars/BreakoutSidebar.jsx:12 msgid "Pick a column to group by" msgstr "选择分组的列" -#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:24 +#: frontend/src/metabase/query_builder/components/notebook/steps/DataStep.jsx:28 msgid "Pick your starting data" msgstr "选择您的起始数æ®" @@ -12710,7 +12529,7 @@ msgstr "å…¨ä¸é€‰" msgid "Select All" msgstr "全选" -#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:148 +#: frontend/src/metabase/query_builder/components/notebook/steps/JoinStep.jsx:151 msgid "Pick a table..." msgstr "选择数æ®è¡¨â€¦" @@ -12719,7 +12538,6 @@ msgid "Enter a limit" msgstr "输入é™åˆ¶æ¡ä»¶" #: frontend/src/metabase/query_builder/components/template_tags/TagEditorHelp.jsx:159 -#, fuzzy msgid "Brackets around a {0} create an optional clause in the template. If \"variable\" is set, then the entire clause is placed into the template. If not, then the entire clause is ignored." msgstr "{0}周围的括å·åœ¨æ¨¡æ¿ä¸åˆ›å»ºå¯é€‰åå¥ã€‚ 如果设置了“variableâ€ï¼Œåˆ™å°†æ•´ä¸ªåå¥æ”¾å…¥æ¨¡æ¿ä¸ã€‚ 如果ä¸æ˜¯ï¼Œåˆ™å¿½ç•¥æ•´ä¸ªåå¥ã€‚" @@ -12752,20 +12570,19 @@ msgid "Get alerts" msgstr "获å–æ醒告è¦" #: frontend/src/metabase/query_builder/components/view/QuestionDescription.jsx:31 -#, fuzzy msgid "{0} breakout" msgid_plural "{0} breakouts" -msgstr[0] "[[CreateTimestamp]]æŒ‰æ˜ŸæœŸå‡ " +msgstr[0] "{0} 爆å‘" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:36 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Hide filters" msgstr "éšè—过滤器" -#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:70 +#: frontend/src/metabase/query_builder/components/view/QuestionFilters.jsx:41 msgid "Show filters" msgstr "显示过滤器" -#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:10 +#: frontend/src/metabase/query_builder/components/view/QuestionLineage.jsx:18 msgid "Started from" msgstr "从这开始" @@ -12794,11 +12611,11 @@ msgstr "展示 {0}" msgid "Summarized" msgstr "èšåˆ" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Hide editor" msgstr "éšè—编辑器" -#: frontend/src/metabase/query_builder/components/view/ViewHeader.jsx:216 +#: frontend/src/metabase/query_builder/components/view/QuestionNotebookButton.jsx:17 msgid "Show editor" msgstr "显示编辑器" @@ -12806,7 +12623,7 @@ msgstr "显示编辑器" msgid "Pick the metric you'd like to see" msgstr "é€‰æ‹©ä½ è¦æŸ¥çœ‹çš„æŒ‡æ ‡" -#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:21 +#: frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.jsx:29 msgid "{0} options" msgstr "选项" @@ -12834,7 +12651,7 @@ msgstr "æ·»åŠ æŒ‡æ ‡" msgid "Profile" msgstr "主页" -#: frontend/src/metabase/visualizations/components/Visualization.jsx:548 +#: frontend/src/metabase/visualizations/components/Visualization.jsx:550 msgid "This is usually pretty fast but seems to be taking a while right now." msgstr "这通常很快,但现在似乎需è¦ä¸€æ®µæ—¶é—´ã€‚" @@ -12862,19 +12679,19 @@ msgstr "未知的划分" msgid "Unknown Filter" msgstr "未知过滤器" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:22 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 msgid "Left outer join" msgstr "Left outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:23 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:26 msgid "Right outer join" msgstr "Right outer join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:24 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:27 msgid "Inner join" msgstr "Inner join" -#: frontend/src/metabase-lib/lib/queries/structured/Join.js:25 +#: frontend/src/metabase-lib/lib/queries/structured/Join.js:28 msgid "Full outer join" msgstr "Full outer join" @@ -12895,7 +12712,6 @@ msgid "Query failed" msgstr "查询失败" #: src/metabase/async/util.clj -#, fuzzy msgid "Warning: {0} returned `nil`" msgstr "以下是Google Analyticsä¸[[this]]æ•°æ®çš„概述" @@ -12927,7 +12743,7 @@ msgstr "应用数æ®åº“设置" msgid "Could not find {0} driver." msgstr "找ä¸åˆ°é©±åŠ¨ç¨‹åº {0}." -#: src/metabase/driver.clj +#: src/metabase/driver/impl.clj msgid "Abstract drivers cannot derive from concrete parent drivers." msgstr "抽象驱动程åºæ— 法从具体的父驱动程åºæ´¾ç”Ÿã€‚" @@ -12936,7 +12752,6 @@ msgid "You may need to add 'trustServerCertificate=true' to the additional conne msgstr "您å¯èƒ½éœ€è¦å°†å‚数“trustServerCertificate = trueâ€æ·»åŠ 到其他连接选项以连接SSL" #: src/metabase/driver/sql/util.clj -#, fuzzy msgid "Don't know how to alias {0}, expected an Identifer." msgstr "以下是您[[this]]的概述" @@ -12961,19 +12776,16 @@ msgid "Error destroying thread pool for DB." msgstr "销æ¯æ•°æ®åº“çº¿ç¨‹æ± æ—¶å‡ºé”™ã€‚" #: src/metabase/models/humanization.clj -#, fuzzy msgid "Updating display name for {0} ''{1}'': ''{2}'' -> ''{3}''" msgstr "æ›´æ–°{0}''{1}''的显示å称:''{2}'' - >''{3}''" #: src/metabase/models/humanization.clj -#, fuzzy msgid "Invalid humanization strategy ''{0}''. Valid strategies are: {1}" msgstr "æ— æ•ˆçš„éžäººåŒ–ç–略“{0}â€ã€‚ 有效的ç–略是:{1}" #. now rehumanize all the Tables and Fields using the new strategy. #. TODO: Should we do this in a background thread because it is potentially slow? #: src/metabase/models/humanization.clj -#, fuzzy msgid "Chaning Table & Field names humanization strategy from ''{0}'' to ''{1}''" msgstr "更改表和å—段将人性化ç–略从“{0}â€æ›´æ”¹ä¸ºâ€œ{1}â€" @@ -12986,11 +12798,10 @@ msgid "spark-deps.jar is no longer needed by Metabase 0.32.0+. You can delete it msgstr "0.32.0 åŠä»¥ä¸Šç‰ˆæœ¬çš„Metabaseä¸å†éœ€è¦spark-deps.jar了. 您å¯ä»¥ä»Žæ’件目录ä¸åˆ 除它." #: src/metabase/plugins/classloader.clj -#, fuzzy msgid "Using NEWLY CREATED classloader as shared context classloader: {0}" msgstr "使用NEWLY CREATEDç±»åŠ è½½å™¨ä½œä¸ºå…±äº«ä¸Šä¸‹æ–‡ç±»åŠ è½½å™¨ï¼š{0}" -#: src/metabase/plugins/files.clj +#: src/metabase/util/files.clj msgid "Failed to copy file" msgstr "å¤åˆ¶æ–‡ä»¶å¤±è´¥" @@ -13023,7 +12834,6 @@ msgid "An error occurred while displaying this card." msgstr "展示å¡ç‰‡å‘生错误" #: src/metabase/query_processor.clj -#, fuzzy msgid "Can only determine expected columns for MBQL queries." msgstr "åªèƒ½ç¡®å®šMBQL查询的预期列。" @@ -13036,17 +12846,14 @@ msgid "Warining: cannot determine fields for an explicit `source-query` unless y msgstr "è¦å‘Šï¼šæ— 法确定一个明确的‘source-query’(数æ®æºæŸ¥è¯¢ï¼‰å—段,除éžæ‚¨ä¹ŸåŒ…å«'source-metadata'(数æ®æºå…ƒæ•°æ®ï¼‰ã€‚" #: src/metabase/query_processor/middleware/add_implicit_joins.clj -#, fuzzy msgid "Cannot resolve {0}: Field does not exist, or its Table belongs to a different Database." msgstr "这里仔细看看[[this]]å—段" #: src/metabase/query_processor/middleware/add_implicit_joins.clj -#, fuzzy msgid "Cannot resolve :field-literal inside :fk-> unless inside join with explicit :alias." msgstr "以下是对æ¯ä¸ªå›½å®¶[[this]]的详细介ç»" #: src/metabase/query_processor/middleware/add_implicit_joins.clj -#, fuzzy msgid "Cannot find Table ID for {0}" msgstr "找ä¸åˆ°{0}的表ID" @@ -13063,7 +12870,6 @@ msgid "Invalid fk-> clause: nowhere to add corresponding join." msgstr "æ— æ•ˆçš„å¤–é”®åå¥ï¼šæ— å¤„æ·»åŠ ç›¸åº”çš„è¿žæŽ¥ã€‚" #: src/metabase/query_processor/middleware/add_implicit_joins.clj -#, fuzzy msgid "{0} driver does not support foreign keys." msgstr "[[CreateDate]]æŒ‰æ˜ŸæœŸå‡ " @@ -13076,17 +12882,14 @@ msgid "Query processor error: number of columns returned by driver does not matc msgstr "查询处ç†å™¨é”™è¯¯ï¼šé©±åŠ¨ç¨‹åºè¿”回的列数与结果ä¸åŒ¹é…。" #: src/metabase/query_processor/middleware/annotate.clj -#, fuzzy msgid "Expected {0} columns, but first row of resuls has {1} columns." msgstr "看起æ¥ä½ çš„[[this]]有交易,所以这里看看它们" #: src/metabase/query_processor/middleware/annotate.clj -#, fuzzy msgid "No expression named {0} found. Found: {1}" msgstr "è¿™é‡Œä»”ç»†çœ‹çœ‹ä½ çš„[[this]]æ¯ä¸ªå·ž" #: src/metabase/query_processor/middleware/annotate.clj -#, fuzzy msgid "Distinct values of {0}" msgstr "[[CreateDate]]按月份的日期" @@ -13099,7 +12902,6 @@ msgid "Sum of {0}" msgstr "{0}的总和" #: src/metabase/query_processor/middleware/annotate.clj -#, fuzzy msgid "SD of {0}" msgstr "SDçš„{0}" @@ -13113,12 +12915,10 @@ msgstr "{0}的最大值" #. until we have a way to generate good names for filters we'll just have to say 'matching condition' for now #: src/metabase/query_processor/middleware/annotate.clj -#, fuzzy msgid "Sum of {0} matching condition" msgstr "[[CreateTime]]按å°æ—¶è®¡ç®—" #: src/metabase/query_processor/middleware/annotate.clj -#, fuzzy msgid "Share of rows matching condition" msgstr "éšç€æ—¶é—´çš„推移,您å¯ä»¥ä»”细查看[[this]]" @@ -13127,7 +12927,6 @@ msgid "Count of rows matching condition" msgstr "符åˆæ¡ä»¶çš„行数" #: src/metabase/query_processor/middleware/async.clj -#, fuzzy msgid "Request already canceled, will not run synchronous QP code." msgstr "[[CreateDate]]按å£åº¦è®¡ç®—" @@ -13144,12 +12943,10 @@ msgid "Unhandled exception, exepected `catch-exceptions` middleware to handle it msgstr "未处ç†çš„异常,期望“catch-exceptionsâ€ä¸é—´ä»¶æ¥å¤„ç†å®ƒã€‚" #: src/metabase/query_processor/middleware/async.clj -#, fuzzy msgid "Query timed out after %s" msgstr "查询在%s秒åŽè¶…æ—¶" #: src/metabase/query_processor/middleware/async_wait.clj -#, fuzzy msgid "Creating new query thread pool for Database {0}" msgstr "{0}被自动更æ£ä¸º{1}" @@ -13166,12 +12963,10 @@ msgid "Cannot update binned field: query is missing source-metadata" msgstr "æ— æ³•æ›´æ–°åˆ†ç»„å—段: 查询缺少æºå—段的元数æ®" #: src/metabase/query_processor/middleware/binning.clj -#, fuzzy msgid "Cannot update binned field: could not find matching source metadata for Field ''{0}''" msgstr "ç‰å¾…{0}åŽæ²¡æœ‰å“应。å–消请求。" #: src/metabase/query_processor/middleware/cache.clj -#, fuzzy msgid "Using query processor cache backend: {0}" msgstr "当å‰çº¿ç¨‹å·²ç»æ‹¥æœ‰{0}的许å¯ï¼Œä¸ä¼šç‰å¾…获å–å¦ä¸€ä¸ª" @@ -13200,17 +12995,14 @@ msgid "Unable to resolve driver for query: Database {0} does not exist." msgstr "æ— æ³•è§£æžè¯¥æŸ¥è¯¢çš„连接驱动: æ•°æ®åº“ {0} ä¸å˜åœ¨." #: src/metabase/query_processor/middleware/resolve_joins.clj -#, fuzzy msgid "Cannot use :fields :all in join against source query unless it has :source-metadata." msgstr "è¿™æ˜¯ä½ æœ€è¿‘çš„{0}å¼ å¡ç‰‡ï¼š" #: src/metabase/query_processor/middleware/resolve_joins.clj -#, fuzzy msgid "Bad :joined-field clause: join with alias ''{0}'' does not exist. Found: {1}" msgstr "{0}æ•°æ®åº“''{1}''åŒæ¥/分æžæ—¶é—´è¡¨å·²æ›´æ”¹ï¼" #: src/metabase/query_processor/middleware/resolve_source_table.clj -#, fuzzy msgid "Invalid :source-table ''{0}'': should be resolved to a Table ID by now." msgstr "åŒæ¥å…ƒæ•°æ®æ˜¯ï¼š''{0}''现在是:''{1}''" @@ -13287,7 +13079,7 @@ msgctxt "Modal for selecting columns in source data or when doing a join." msgid "Pick the columns you want to include" msgstr "选择需è¦åŒ…å«çš„列" -#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:320 +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:315 msgid "When this is on, Metabase will automatically run queries when users do simple explorations with the Summarize and Filter buttons when viewing a table or chart. You can turn this off if querying this database is slow. This setting doesn’t affect drill-throughs or SQL queries." msgstr "这个选项开å¯æ—¶ï¼Œå½“ç”¨æˆ·åœ¨æŸ¥çœ‹è¡¨æ ¼æˆ–å›¾è¡¨æ—¶ä½¿ç”¨â€œæ±‡æ€»â€å’Œâ€œè¿‡æ»¤â€æŒ‰é’®è¿›è¡Œç®€å•æ•°æ®æŽ¢ç´¢æ—¶ï¼ŒMetabase将自动è¿è¡ŒæŸ¥è¯¢ã€‚ 如果查询æ¤æ•°æ®åº“的速度很慢,å¯ä»¥å°†è¯¥é€‰é¡¹å…³é—。 æ¤è®¾ç½®ä¸ä¼šå½±å“æ•°æ®é’»æŽ¢æˆ–SQL查询。" @@ -13325,3 +13117,439 @@ msgstr "确定查询的预期列时出错" msgid "Unhandled exception, expected `catch-exceptions` middleware to handle it." msgstr "æ— æ³•å¤„ç†çš„异常, 希望`catch-exceptions`能够处ç†å®ƒ." +#: frontend/src/metabase/admin/tasks/containers/Help.jsx:125 +msgid "Diagnostic Info" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:123 +msgid "Select Metabase process:" +msgstr "" + +#: frontend/src/metabase/admin/tasks/containers/Logs.jsx:133 +msgid "All Metabase processes" +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:21 +msgid "The window was closed before completing Google Authentication." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:94 +msgid "There was an issue signing in with Google. Pleast contact an administrator." +msgstr "" + +#: frontend/src/metabase/auth/containers/LoginApp.jsx:171 +msgid "Sign in with email" +msgstr "邮箱登录" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:267 +msgid "Using this option requires that provided host is a FQDN. If connecting to an Atlas cluster, you might need to enable this option. If you don't know what this means, leave this disabled." +msgstr "" + +#: frontend/src/metabase/components/DatabaseDetailsForm.jsx:292 +msgid "By default, Metabase does a lightweight hourly sync and an intensive daily scan of field values. If you have a large database, we recommend turning this on and reviewing when and how often the field value scans happen." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:126 +msgid "Remove these suggestions" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:135 +msgid "Remove these suggestions?" +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:151 +msgid "These won’t show up on the homepage for any of your users anymore, but you can always get to x-rays by clicking on Browse Data in the main navigation, then clicking on the lightning bolt icon on one of your tables." +msgstr "" + +#: frontend/src/metabase/containers/Overworld.jsx:274 +msgid "Hide this section" +msgstr "éšè—æ¤éƒ¨åˆ†" + +#: frontend/src/metabase/containers/Overworld.jsx:282 +msgid "Remove this section?" +msgstr "移除æ¤éƒ¨åˆ†ï¼Ÿ" + +#: frontend/src/metabase/containers/Overworld.jsx:298 +msgid "\"Our Data\" won’t show up on the homepage for any of your users anymore, but you can always browse through your databases and tables by clicking Browse Data in the main navigation." +msgstr "" + +#: frontend/src/metabase/entities/collections.js:95 +msgid "My new fantastic collection" +msgstr "" + +#: frontend/src/metabase/lib/core.js:145 +msgid "Cancelation timestamp" +msgstr "å–消时间戳" + +#: frontend/src/metabase/lib/core.js:150 +msgid "Cancelation time" +msgstr "å–消时间" + +#: frontend/src/metabase/lib/core.js:155 +msgid "Cancelation date" +msgstr "å–消日期" + +#: frontend/src/metabase/lib/core.js:160 +msgid "Deletion timestamp" +msgstr "åˆ é™¤æ—¶é—´æˆ³" + +#: frontend/src/metabase/lib/core.js:165 +msgid "Deletion time" +msgstr "åˆ é™¤æ—¶é—´" + +#: frontend/src/metabase/lib/core.js:170 +msgid "Deletion date" +msgstr "" + +#: frontend/src/metabase/lib/core.js:284 +msgid "Only in detail views" +msgstr "" + +#: frontend/src/metabase/lib/core.js:289 +msgid "Do not include" +msgstr "" + +#: frontend/src/metabase/lib/core.js:290 +msgid "This field won't be visible or selectable in questions created with the GUI interfaces. It will still be accessible in SQL/native queries." +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:508 +msgid "Cumulative sum" +msgstr "" + +#: frontend/src/metabase/lib/schema_metadata.js:526 +msgid "Standard deviation" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:120 +msgid "must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/lib/settings.js:121 +msgid "Must be at least {0} characters long" +msgstr "" + +#: frontend/src/metabase/query_builder/components/AggregationPopover.jsx:389 +msgid "Name (required)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:503 +msgid "Run selected text" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:504 +msgid "Run query" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(⌘ + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx:506 +msgid "(Ctrl + enter)" +msgstr "" + +#: frontend/src/metabase/query_builder/components/QueryVisualization.jsx:149 +msgid "Here's where your results will appear" +msgstr "" + +#: frontend/src/metabase/query_builder/components/SavedQuestionIntroModal.jsx:15 +msgid "You won't make any permanent changes to a saved question unless you click Save and choose to replace the original question." +msgstr "" + +#: frontend/src/metabase/query_builder/components/template_tags/TagEditorParam.jsx:209 +msgid "There aren't any filter widgets for this type of field yet." +msgstr "" + +#: frontend/src/metabase/reference/components/FieldToGroupBy.jsx:27 +msgid "Look up this field" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:218 +msgid "Why this metric is interesting" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:228 +msgid "Things to be aware of about this metric" +msgstr "" + +#: frontend/src/metabase/reference/metrics/MetricDetail.jsx:238 +msgid "How this metric is calculated" +msgstr "" + +#: frontend/src/metabase/reference/segments/SegmentDetail.jsx:215 +msgid "Table this is based on" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/renderer_utils.js:269 +msgid "(empty)" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:281 +msgid "Goal line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:303 +msgid "Trend line" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:320 +msgid "Show values on data points" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:334 +msgid "Values to show" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:342 +msgid "As many as can fit nicely" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/settings/graph.js:343 +msgid "All" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:9 +msgid "Data includes missing dimension values." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:17 +msgid "We encountered an invalid date: \"{0}\"" +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:38 +msgid "The query for this chart was run in {0} rather than {1} due to database or driver constraints." +msgstr "" + +#: frontend/src/metabase/visualizations/lib/warnings.js:47 +msgid "This chart contains queries run in multiple timezones: {0}" +msgstr "" + +#: src/metabase/api/public.clj +msgid "An error occurred while running the query." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Output H2 database already exists: %s, removing." +msgstr "" + +#: src/metabase/cmd/dump_to_h2.clj +msgid "Don't need to migrate, just use the existing H2 file" +msgstr "" + +#: src/metabase/cmd/load_from_h2.clj +msgid "Target DB is already populated!" +msgstr "" + +#: src/metabase/core.clj +msgid "System info:n {0}" +msgstr "" + +#: src/metabase/db.clj +msgid "Database setup" +msgstr "" + +#. 4. move everything not in this Collection to a new Collection +#: src/metabase/db/migrations.clj +msgid "Moving instances of {0} that aren''t in a Collection to {1} Collection {2}" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid '{{...}}' clause: expected a param name" +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'{{...}}' clauses cannot be empty." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "'[[...]]' clauses must contain at least one '{{...}}' clause." +msgstr "" + +#: src/metabase/driver/common/parameters/parse.clj +msgid "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'" +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "You''ll need to pick a value for ''{0}'' before this query can run." +msgstr "" + +#: src/metabase/driver/common/parameters/values.clj +msgid "Can''t find field with ID: {0}" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Error loading driver namespace" +msgstr "" + +#: src/metabase/driver/impl.clj +msgid "Could not load {0} driver." +msgstr "" + +#: src/metabase/driver/sql/parameters/substitute.clj +msgid "Cannot run query: missing required parameters: {0}" +msgstr "" + +#: src/metabase/driver/sql/parameters/substitution.clj +msgid "Don''t know how to parse {0} {1}" +msgstr "" + +#: src/metabase/driver/sql/util.clj +msgid "Don''t know how to alias {0}, expected an Identifier." +msgstr "" + +#. it's better return a slightly broken SQL query with a probably incorrect string representation of the value than +#. to have the entire QP run fail because of an unknown type. +#: src/metabase/driver/sql/util/unprepare.clj +msgid "Don''t know how to unprepare values of class {0}" +msgstr "" + +#: src/metabase/driver/sql_jdbc/connection.clj +msgid "Creating new connection pool for {0} database {1} ..." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Invalid timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Cannot set timezone: invalid or missing SQL format string for driver {0}." +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Did you implement set-timezone-sql?" +msgstr "" + +#: src/metabase/driver/sql_jdbc/execute.clj +msgid "Failed to set timezone ''{0}''" +msgstr "" + +#: src/metabase/driver/util.clj +msgid "Database connection error" +msgstr "" + +#: src/metabase/models/interface.clj +msgid "Error parsing JSON" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Identify the source of HTTP requests by this header's value, instead of its remote address." +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Could not resolve Setting {0}/{1}" +msgstr "" + +#: src/metabase/public_settings.clj +msgid "Invalid Setting: {0}/{1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "reached its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "gone below its goal" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Pulse: {0}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Pulse ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via email" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Metabase alert: {0} has {1}" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Sending Alert ({0}: {1}) via Slack" +msgstr "" + +#: src/metabase/pulse.clj +msgid "Alert: {0}" +msgstr "" + +#: src/metabase/pulse/render/color.clj +msgid "Can''t find JS color selector at ''{0}''" +msgstr "" + +#. TODO - there is code that calls this in `render.body` regardless of the types of values +#: src/metabase/pulse/render/datetime.clj +msgid "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attemping to format them as such?" +msgstr "" + +#: src/metabase/query_processor/middleware/add_implicit_joins.clj +msgid "No matching info found for join against Table {0} ''{1}'' on Field {2} ''{3}'' via FK {4} ''{5}''" +msgstr "" + +#: src/metabase/query_processor/middleware/annotate.clj +msgid "Don''t know how to get information about Field: {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/async.clj +msgid "Query timed out after {0}" +msgstr "" + +#: src/metabase/query_processor/middleware/format_rows.clj +msgid "Formatting rows with results timezone ID {0}" +msgstr "" + +#: src/metabase/query_processor/timezone.clj +msgid "Invalid timezone ID ''{0}''" +msgstr "" + +#: src/metabase/sync/analyze/fingerprint.clj +msgid "Saving fingerprint for {0}" +msgstr "" + +#: src/metabase/task/follow_up_emails.clj +msgid "Sending abandoment email!" +msgstr "" + +#: src/metabase/transforms/core.clj +msgid "Resulting transforms do not conform to expectations.nExpected: {0}" +msgstr "" + +#: src/metabase/util.clj +msgid "Timed out after {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "No temporal adjuster named {0}" +msgstr "" + +#: src/metabase/util/date_2.clj +msgid "Invalid unit: {0}" +msgstr "" + +#: src/metabase/util/date_2/parse.clj +msgid "Don''t know how to parse {0} using format {1}" +msgstr "" + +#: src/metabase/util/embed.clj +msgid "Token is missing value for keypath {0}" +msgstr "" + +#: src/metabase/util/stats.clj +msgid "Sending usage stats FAILED" +msgstr "" + diff --git a/modules/drivers/bigquery/project.clj b/modules/drivers/bigquery/project.clj index c52937f05e2e34e36252af0e0f3083e6ef90f039..354c8bf2c7ebfaa3c6e91200d4073521ad87e6cc 100644 --- a/modules/drivers/bigquery/project.clj +++ b/modules/drivers/bigquery/project.clj @@ -7,7 +7,8 @@ :profiles {:provided {:dependencies - [[metabase-core "1.0.0-SNAPSHOT"] + [[org.clojure/clojure "1.10.1"] + [metabase-core "1.0.0-SNAPSHOT"] [metabase/google-driver "1.0.0-SNAPSHOT-1.27.0"]]} :uberjar diff --git a/modules/drivers/bigquery/src/metabase/driver/bigquery.clj b/modules/drivers/bigquery/src/metabase/driver/bigquery.clj index 55626b993ee18927b51326ede57667d820925f31..745286e2dea5baade6fb83205a2f7b46a13dfc2d 100644 --- a/modules/drivers/bigquery/src/metabase/driver/bigquery.clj +++ b/modules/drivers/bigquery/src/metabase/driver/bigquery.clj @@ -1,32 +1,28 @@ (ns metabase.driver.bigquery - (:require [clj-time.core :as time] - [clojure + (:require [clojure [set :as set] [string :as str]] + [clojure.tools.logging :as log] [metabase [driver :as driver] [util :as u]] - [metabase.driver - [common :as driver.common] - [google :as google]] [metabase.driver.bigquery [common :as bigquery.common] [query-processor :as bigquery.qp]] + [metabase.driver.google :as google] [metabase.driver.sql.util.unprepare :as unprepare] [metabase.query-processor [store :as qp.store] + [timezone :as qp.timezone] [util :as qputil]] - [metabase.util - [date :as du] - [schema :as su]] + [metabase.util.schema :as su] [schema.core :as s]) (:import com.google.api.client.googleapis.auth.oauth2.GoogleCredential com.google.api.client.http.HttpRequestInitializer [com.google.api.services.bigquery Bigquery Bigquery$Builder BigqueryScopes] - [com.google.api.services.bigquery.model QueryRequest QueryResponse Table TableCell TableFieldSchema - TableList TableList$Tables TableReference TableRow TableSchema] - java.sql.Time - [java.util Collections Date])) + [com.google.api.services.bigquery.model QueryRequest QueryResponse Table TableCell TableFieldSchema TableList + TableList$Tables TableReference TableRow TableSchema] + java.util.Collections)) (driver/register! :bigquery, :parent #{:google :sql}) @@ -71,7 +67,8 @@ (google/execute (u/prog1 (.list (.tables client) project-id dataset-id) (.setPageToken <> page-token-or-nil))))) -(defmethod driver/describe-database :bigquery [_ database] +(defmethod driver/describe-database :bigquery + [_ database] ;; first page through all the 50-table pages until we stop getting "next page tokens" (let [tables (loop [tables [], ^TableList table-list (list-tables database)] (let [tables (concat tables (.getTables table-list))] @@ -83,7 +80,8 @@ :let [^TableReference tableref (.getTableReference table)]] {:schema nil, :name (.getTableId tableref)}))})) -(defmethod driver/can-connect? :bigquery [_ details-map] +(defmethod driver/can-connect? :bigquery + [_ details-map] ;; check whether we can connect by just fetching the first page of tables for the database. If that succeeds we're ;; g2g (boolean (list-tables {:details details-map}))) @@ -104,7 +102,7 @@ "STRING" :type/Text "DATE" :type/Date "DATETIME" :type/DateTime - "TIMESTAMP" :type/DateTime + "TIMESTAMP" :type/DateTimeWithLocalTZ "TIME" :type/Time "NUMERIC" :type/Decimal :type/*)) @@ -172,7 +170,7 @@ (for [^TableFieldSchema field (.getFields schema) :let [column-type (.getType field) method (get-method bigquery.qp/parse-result-of-type column-type)]] - (partial method column-type bigquery.common/*bigquery-timezone*))) + (partial method column-type bigquery.common/*bigquery-timezone-id*))) columns (for [column (table-schema->metabase-field-info schema)] @@ -210,16 +208,16 @@ (u/auto-retry 1 (post-process-native (execute-bigquery database query-string)))) -(defn- effective-query-timezone [database] - (if-let [^java.util.TimeZone jvm-tz (and (get-in database [:details :use-jvm-timezone]) - @du/jvm-timezone)] - (time/time-zone-for-id (.getID jvm-tz)) - time/utc)) +(defn- effective-query-timezone-id [database] + (if (get-in database [:details :use-jvm-timezone]) + (qp.timezone/system-timezone-id) + "UTC")) (defmethod driver/execute-query :bigquery [driver {{sql :query, params :params, :keys [table-name mbql?]} :native, :as outer-query}] (let [database (qp.store/database)] - (binding [bigquery.common/*bigquery-timezone* (effective-query-timezone database)] + (binding [bigquery.common/*bigquery-timezone-id* (effective-query-timezone-id database)] + (log/tracef "Running BigQuery query in %s timezone" bigquery.common/*bigquery-timezone-id*) (let [sql (str "-- " (qputil/query->remark outer-query) "\n" (if (seq params) (unprepare/unprepare driver (cons sql params)) sql))] @@ -234,12 +232,6 @@ (defmethod driver/supports? [:bigquery :foreign-keys] [_ _] true) -;; BigQuery doesn't return a timezone with it's time strings as it's always UTC, JodaTime parsing also defaults to UTC -(defmethod driver.common/current-db-time-date-formatters :bigquery [_] - (driver.common/create-db-time-formatters "yyyy-MM-dd HH:mm:ss.SSSSSS")) - -(defmethod driver.common/current-db-time-native-query :bigquery [_] - "select CAST(CURRENT_TIMESTAMP() AS STRING)") - -(defmethod driver/current-db-time :bigquery [& args] - (apply driver.common/current-db-time args)) +;; BigQuery is always in UTC +(defmethod driver/db-default-timezone :bigquery [_ _] + "UTC") diff --git a/modules/drivers/bigquery/src/metabase/driver/bigquery/common.clj b/modules/drivers/bigquery/src/metabase/driver/bigquery/common.clj index 945ad443835b4768e2ac656efba5abd82f724655..b1996d8eb314ae237ec0cda8f90f5478198f9839 100644 --- a/modules/drivers/bigquery/src/metabase/driver/bigquery/common.clj +++ b/modules/drivers/bigquery/src/metabase/driver/bigquery/common.clj @@ -1,10 +1,9 @@ -(ns metabase.driver.bigquery.common - (:require [clj-time.core :as time])) +(ns metabase.driver.bigquery.common) -(def ^:dynamic *bigquery-timezone* +(def ^:dynamic ^String *bigquery-timezone-id* "BigQuery stores all of it's timestamps in UTC. That timezone can be changed via a SQL function invocation in a native query, but that change in timezone is not conveyed through the BigQuery API. In most situations - `*bigquery-timezone*` will just be UTC. If the user is always changing the timezone via native SQL function + `*bigquery-timezone-id*` will just be UTC. If the user is always changing the timezone via native SQL function invocation, they can set their JVM TZ to the correct timezone, mark `use-jvm-timezone` to `true` and that will bind this dynamic var to the JVM TZ rather than UTC" - time/utc) + "UTC") diff --git a/modules/drivers/bigquery/src/metabase/driver/bigquery/query_processor.clj b/modules/drivers/bigquery/src/metabase/driver/bigquery/query_processor.clj index a394ba60041fb8629f9839362a45e54ffbe905d1..78f0ca0730ec58a80609825d926f379a46c9fe4a 100644 --- a/modules/drivers/bigquery/src/metabase/driver/bigquery/query_processor.clj +++ b/modules/drivers/bigquery/src/metabase/driver/bigquery/query_processor.clj @@ -1,28 +1,31 @@ (ns metabase.driver.bigquery.query-processor - (:require [clj-time - [coerce :as tcoerce] - [format :as tformat]] - [clojure.string :as str] + (:require [clojure.string :as str] + [clojure.tools.logging :as log] [honeysql [core :as hsql] [helpers :as h]] + [java-time :as t] [metabase [driver :as driver] [util :as u]] - [metabase.driver.bigquery.common :as bigquery.common] + [metabase.driver.sql :as sql] [metabase.driver.sql.query-processor :as sql.qp] [metabase.driver.sql.util.unprepare :as unprepare] [metabase.mbql.util :as mbql.u] - [metabase.models.table :as table] - [metabase.query-processor.store :as qp.store] + [metabase.models + [field :refer [Field]] + [table :as table]] + [metabase.query-processor + [error-type :as error-type] + [store :as qp.store]] [metabase.util - [date :as du] + [date-2 :as u.date] [honeysql-extensions :as hx] + [i18n :refer [tru]] [schema :as su]] [schema.core :as s] [toucan.db :as db]) - (:import java.sql.Time - java.util.Date + (:import [java.time LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime ZonedDateTime] metabase.util.honeysql_extensions.Identifier)) (defn- valid-bigquery-identifier? @@ -50,7 +53,7 @@ (defmulti parse-result-of-type "Parse the values that come back in results of a BigQuery query based on their column type." - {:arglists '([column-type timezone v])} + {:arglists '([column-type timezone-id v])} (fn [column-type _ _] column-type)) (defmethod parse-result-of-type :default @@ -73,54 +76,185 @@ [_ _ v] (bigdec v)) -(defn- parse-timestamp-str [timezone s] +(defn- parse-timestamp-str [timezone-id s] ;; Timestamp strings either come back as ISO-8601 strings or Unix timestamps in µs, e.g. "1.3963104E9" - (or - (du/->Timestamp s timezone) - ;; If parsing as ISO-8601 fails parse as a double then convert to ms. This is ms since epoch in UTC. By using - ;; `->Timestamp`, it will convert from ms in UTC to a timestamp object in the JVM timezone - (du/->Timestamp (* (Double/parseDouble s) 1000)))) + (log/tracef "Parse timestamp string '%s' (default timezone ID = %s)" s timezone-id) + (if-let [seconds (u/ignore-exceptions (Double/parseDouble s))] + (t/zoned-date-time (t/instant (* seconds 1000)) (t/zone-id timezone-id)) + (u.date/parse s timezone-id))) (defmethod parse-result-of-type "DATE" - [_ timezone s] - (parse-timestamp-str timezone s)) + [_ timezone-id s] + (parse-timestamp-str timezone-id s)) (defmethod parse-result-of-type "DATETIME" - [_ timezone s] - (parse-timestamp-str timezone s)) + [_ timezone-id s] + (parse-timestamp-str timezone-id s)) (defmethod parse-result-of-type "TIMESTAMP" - [_ timezone s] - (parse-timestamp-str timezone s)) - -(defn- bigquery-time-format [timezone] - (tformat/formatter "HH:mm:SS" timezone)) - -(defn- unparse-bigquery-time [timezone coercible-to-dt] - (->> coercible-to-dt - tcoerce/to-date-time - (tformat/unparse (bigquery-time-format timezone)))) + [_ timezone-id s] + (parse-timestamp-str timezone-id s)) (defmethod parse-result-of-type "TIME" - [_ timezone s] - (->> s - (tformat/parse (bigquery-time-format timezone)) - tcoerce/to-long - Time.)) + [_ timezone-id s] + (u.date/parse s timezone-id)) ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | SQL Driver Methods | ;;; +----------------------------------------------------------------------------------------------------------------+ +(def ^:private temporal-type-hierarchy + (-> (make-hierarchy) + (derive :date :temporal-type) + (derive :time :temporal-type) + (derive :datetime :temporal-type) + ;; timestamp = datetime with a timezone + (derive :timestamp :temporal-type))) + +(defmulti ^:private temporal-type + {:arglists '([x])} + mbql.u/dispatch-by-clause-name-or-class + :hierarchy #'temporal-type-hierarchy) + +(defmethod temporal-type LocalDate [_] :date) +(defmethod temporal-type LocalTime [_] :time) +(defmethod temporal-type OffsetTime [_] :time) +(defmethod temporal-type LocalDateTime [_] :datetime) +(defmethod temporal-type OffsetDateTime [_] :timestamp) +(defmethod temporal-type ZonedDateTime [_] :timestamp) + +(defn- base-type->temporal-type [base-type] + (condp #(isa? %2 %1) base-type + :type/Date :date + :type/Time :time + :type/DateTimeWithTZ :timestamp + :type/DateTime :datetime + nil)) + +(defmethod temporal-type (class Field) + [{base-type :base_type, database-type :database_type}] + (case database-type + "TIMESTAMP" :timestamp + "DATETIME" :datetime + "DATE" :date + "TIME" :time + (base-type->temporal-type base-type))) + +(defmethod temporal-type :absolute-datetime + [[_ t _]] + (temporal-type t)) + +(defmethod temporal-type :time + [_] + :time) + +(defmethod temporal-type :datetime-field + [[_ field unit]] + ;; date extraction operations result in integers, so the type of the expression shouldn't be a temporal type + (if (u.date/extract-units unit) + nil + (temporal-type field))) + +(defmethod temporal-type :default + [x] + (if (contains? (meta x) :bigquery/temporal-type) + (:bigquery/temporal-type (meta x)) + (mbql.u/match-one x + [:field-id id] (temporal-type (qp.store/field id)) + [:field-literal _ base-type] (base-type->temporal-type base-type)))) + +(defmulti ^:private ->temporal-type + {:arglists '([target-type x])} + (fn [target-type x] + [target-type (mbql.u/dispatch-by-clause-name-or-class x)]) + :hierarchy #'temporal-type-hierarchy) + +(defn- throw-unsupported-conversion [from to] + (throw (ex-info (tru "Cannot convert a {0} to a {1}" from to) + {:type error-type/invalid-query}))) + +(defmethod ->temporal-type [:date LocalTime] [_ t] (throw-unsupported-conversion "time" "date")) +(defmethod ->temporal-type [:date OffsetTime] [_ t] (throw-unsupported-conversion "time" "date")) +(defmethod ->temporal-type [:date LocalDate] [_ t] t) +(defmethod ->temporal-type [:date LocalDateTime] [_ t] (t/local-date t)) +(defmethod ->temporal-type [:date OffsetDateTime] [_ t] (t/local-date t)) +(defmethod ->temporal-type [:date ZonedDateTime] [_ t] (t/local-date t)) + +(defmethod ->temporal-type [:time LocalTime] [_ t] t) +(defmethod ->temporal-type [:time OffsetTime] [_ t] (t/local-time t)) +(defmethod ->temporal-type [:time LocalDate] [_ t] (throw-unsupported-conversion "date" "time")) +(defmethod ->temporal-type [:time LocalDateTime] [_ t] (t/local-time t)) +(defmethod ->temporal-type [:time OffsetDateTime] [_ t] (t/local-time t)) +(defmethod ->temporal-type [:time ZonedDateTime] [_ t] (t/local-time t)) + +(defmethod ->temporal-type [:datetime LocalTime] [_ t] (throw-unsupported-conversion "time" "datetime")) +(defmethod ->temporal-type [:datetime OffsetTime] [_ t] (throw-unsupported-conversion "time" "datetime")) +(defmethod ->temporal-type [:datetime LocalDate] [_ t] (t/local-date-time t (t/local-time 0))) +(defmethod ->temporal-type [:datetime LocalDateTime] [_ t] t) +(defmethod ->temporal-type [:datetime OffsetDateTime] [_ t] (t/local-date-time t)) +(defmethod ->temporal-type [:datetime ZonedDateTime] [_ t] (t/local-date-time t)) + +;; Not sure whether we should be converting local dates/datetimes to ones with UTC timezone or with the report timezone? +(defmethod ->temporal-type [:timestamp LocalTime] [_ t] (throw-unsupported-conversion "time" "timestamp")) +(defmethod ->temporal-type [:timestamp OffsetTime] [_ t] (throw-unsupported-conversion "time" "timestamp")) +(defmethod ->temporal-type [:timestamp LocalDate] [_ t] (t/zoned-date-time t (t/local-time 0) (t/zone-id "UTC"))) +(defmethod ->temporal-type [:timestamp LocalDateTime] [_ t] (t/zoned-date-time t (t/zone-id "UTC"))) +(defmethod ->temporal-type [:timestamp OffsetDateTime] [_ t] t) +(defmethod ->temporal-type [:timestamp ZonedDateTime] [_ t] t) + +(defmethod ->temporal-type :default + [target-type x] + (cond + (nil? x) + nil + + (= (temporal-type x) target-type) + (vary-meta x assoc :bigquery/temporal-type target-type) + + :else + (let [hsql-form (sql.qp/->honeysql :bigquery x) + bigquery-type (case target-type + :date :date + :time :time + :datetime :datetime + :timestamp :timestamp + nil)] + (cond + (nil? hsql-form) + nil + + (= (temporal-type hsql-form) target-type) + (vary-meta hsql-form assoc :bigquery/temporal-type target-type) + + bigquery-type + (do + (log/tracef "Casting %s (temporal type = %s) to %s" (binding [*print-meta* true] (pr-str x)) (temporal-type x) bigquery-type) + (with-meta (hx/cast bigquery-type (sql.qp/->honeysql :bigquery x)) + {:bigquery/temporal-type target-type})) + + :else + x)))) + +(defmethod ->temporal-type [:temporal-type :absolute-datetime] + [target-type [_ t unit]] + [:absolute-datetime (->temporal-type target-type t) unit]) + (defn- trunc - "Generate raw SQL along the lines of `timestamp_trunc(cast(<some-field> AS timestamp), day)`" + "Generate a SQL call an appropriate truncation function, depending on the temporal type of `expr`." [unit expr] - (hsql/call :timestamp_trunc (hx/->timestamp expr) (hsql/raw (name unit)))) + (let [expr-type (or (temporal-type expr) :datetime) + f (case expr-type + :date :date_trunc + :time :time_trunc + :datetime :datetime_trunc + :timestamp :timestamp_trunc)] + (with-meta (hsql/call f (->temporal-type expr-type expr) (hsql/raw (name unit))) + {:bigquery/temporal-type expr-type}))) (defn- extract [unit expr] - ;; implemenation of extract() in `metabase.util.honeysql-extensions` handles actual conversion to raw SQL (!) - (hsql/call :extract unit (hx/->timestamp expr))) + (with-meta (hsql/call :extract unit (->temporal-type :timestamp expr)) + {:bigquery/temporal-type nil})) (defmethod sql.qp/date [:bigquery :minute] [_ _ expr] (trunc :minute expr)) (defmethod sql.qp/date [:bigquery :minute-of-hour] [_ _ expr] (extract :minute expr)) @@ -139,11 +273,11 @@ (defmethod sql.qp/date [:bigquery :quarter-of-year] [_ _ expr] (extract :quarter expr)) (defmethod sql.qp/date [:bigquery :year] [_ _ expr] (trunc :year expr)) -(defmethod sql.qp/unix-timestamp->timestamp [:bigquery :seconds] [_ _ expr] - (hsql/call :timestamp_seconds expr)) - -(defmethod sql.qp/unix-timestamp->timestamp [:bigquery :milliseconds] [_ _ expr] - (hsql/call :timestamp_millis expr)) +(doseq [[unix-timestamp-type bigquery-fn] {:seconds :timestamp_seconds + :milliseconds :timestamp_millis}] + (defmethod sql.qp/unix-timestamp->timestamp [:bigquery unix-timestamp-type] + [_ _ expr] + (vary-meta (hsql/call bigquery-fn expr) assoc :bigquery/temporal-type :timestamp))) ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -157,8 +291,11 @@ table e.g. `table`.`field` -> `dataset.table`.`field`" - [{:keys [identifier-type components]}] + [{:keys [identifier-type components] :as identifier}] (cond + (::already-qualified? (meta identifier)) + false + ;; If we're currently using a Table alias, don't qualify the alias with the dataset name sql.qp/*table-alias* false @@ -173,13 +310,27 @@ (>= (count components) 2)) true)) +(defmethod sql.qp/->honeysql [:bigquery (class Field)] + [driver field] + (let [parent-method (get-method sql.qp/->honeysql [:sql (class Field)]) + identifier (parent-method driver field)] + (vary-meta identifier assoc :bigquery/temporal-type (temporal-type field)))) + (defmethod sql.qp/->honeysql [:bigquery Identifier] [_ identifier] - (cond-> identifier - (should-qualify-identifier? identifier) - (update :components (fn [[table & more]] - (cons (str (dataset-name-for-current-query) \. table) - more))))) + (if-not (should-qualify-identifier? identifier) + identifier + (-> identifier + (update :components (fn [[table & more]] + (cons (str (dataset-name-for-current-query) \. table) + more))) + (vary-meta assoc ::already-qualified? true)))) + +(doseq [clause-type [:datetime-field :field-literal :field-id]] + (defmethod sql.qp/->honeysql [:bigquery clause-type] + [driver clause] + (let [hsql-form ((get-method sql.qp/->honeysql [:sql clause-type]) driver clause)] + (vary-meta hsql-form assoc :bigquery/temporal-type (temporal-type clause))))) (s/defn ^:private honeysql-form->sql :- s/Str [driver, honeysql-form :- su/Map] @@ -199,6 +350,9 @@ ;; These provide implementations of `->honeysql` that prevent HoneySQL from converting forms to prepared statement ;; parameters (`?` symbols) +;; +;; TODO - these should probably be impls of `unprepare-value` instead, but it effectively ends up doing the same thing +;; either way (defmethod sql.qp/->honeysql [:bigquery String] [_ s] (hx/literal s)) @@ -207,17 +361,38 @@ [_ bool] (hsql/raw (if bool "TRUE" "FALSE"))) -(defmethod sql.qp/->honeysql [:bigquery Date] - [_ date] - (hsql/call :timestamp (hx/literal (du/date->iso-8601 date)))) +;; See: +;; +;; * https://cloud.google.com/bigquery/docs/reference/standard-sql/timestamp_functions +;; * https://cloud.google.com/bigquery/docs/reference/standard-sql/time_functions +;; * https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions +;; * https://cloud.google.com/bigquery/docs/reference/standard-sql/datetime_functions + +(defmethod unprepare/unprepare-value [:bigquery LocalTime] + [_ t] + (format "time \"%s\"" (u.date/format-sql t))) + +(defmethod unprepare/unprepare-value [:bigquery LocalDate] + [_ t] + (format "date \"%s\"" (u.date/format-sql t))) + +(defmethod unprepare/unprepare-value [:bigquery LocalDateTime] + [_ t] + (format "datetime \"%s\"" (u.date/format-sql t))) -(defmethod sql.qp/->honeysql [:bigquery :time] - [driver [_ value unit]] - (->> value - (unparse-bigquery-time bigquery.common/*bigquery-timezone*) - (sql.qp/->honeysql driver) - (sql.qp/date driver unit) - hx/->time)) +(defmethod unprepare/unprepare-value [:bigquery OffsetTime] + [_ t] + ;; convert to a LocalTime in UTC + (let [local-time (t/local-time (t/with-offset-same-instant t (t/zone-offset 0)))] + (format "time \"%s\"" (u.date/format-sql local-time)))) + +(defmethod unprepare/unprepare-value [:bigquery OffsetDateTime] + [_ t] + (format "timestamp \"%s\"" (u.date/format-sql t))) + +(defmethod unprepare/unprepare-value [:bigquery ZonedDateTime] + [_ t] + (format "timestamp \"%s %s\"" (u.date/format-sql (t/local-date-time t)) (.getId (t/zone-id t)))) (defmethod sql.qp/field->identifier :bigquery [_ {table-id :table_id, field-name :name, :as field}] @@ -226,7 +401,8 @@ ;; ;; TODO - we should make sure these are in the QP store somewhere and then could at least batch the calls (let [table-name (db/select-one-field :name table/Table :id (u/get-id table-id))] - (hx/identifier :field table-name field-name))) + (with-meta (hx/identifier :field table-name field-name) + {:bigquery/temporal-type (temporal-type field)}))) (defmethod sql.qp/apply-top-level-clause [:bigquery :breakout] [driver _ honeysql-form {breakouts :breakout, fields :fields}] @@ -253,14 +429,41 @@ (defmethod sql.qp/->honeysql [:bigquery :asc] [driver clause] (alias-order-by-field driver clause)) (defmethod sql.qp/->honeysql [:bigquery :desc] [driver clause] (alias-order-by-field driver clause)) +(defn- reconcile-temporal-types + "Make sure the temporal types of fields and values in filter clauses line up." + [[clause-type f & args :as clause]] + (if-let [target-type (or (temporal-type f) (some temporal-type args))] + (do + (log/tracef "Coercing args in %s to temporal type %s" (binding [*print-meta* true] (pr-str clause)) target-type) + (u/prog1 (into [clause-type] (map (partial ->temporal-type target-type) (cons f args))) + (when-not (= clause <>) + (log/tracef "Coerced -> %s" (binding [*print-meta* true] (pr-str <>)))))) + clause)) + +(doseq [filter-type [:between := :!= :> :>= :< :<=]] + (defmethod sql.qp/->honeysql [:bigquery filter-type] + [driver clause] + ((get-method sql.qp/->honeysql [:sql filter-type]) + driver + (reconcile-temporal-types clause)))) + ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | Other Driver / SQLDriver Method Implementations | ;;; +----------------------------------------------------------------------------------------------------------------+ (defmethod driver/date-add :bigquery - [_ dt amount unit] - (hsql/call :datetime_add (hx/->datetime dt) (hsql/raw (format "INTERVAL %d %s" (int amount) (name unit))))) + [driver expr amount unit] + (let [add-fn (case (temporal-type expr) + :timestamp :timestamp_add + :datetime :datetime_add + :date :date_add + :time :time_add + nil)] + (if-not add-fn + (driver/date-add driver (->temporal-type :datetime expr) amount unit) + (with-meta (hsql/call add-fn expr (hsql/raw (format "INTERVAL %d %s" (int amount) (name unit)))) + {:bigquery/temporal-type (temporal-type expr)})))) (defmethod driver/mbql->native :bigquery [driver @@ -280,7 +483,15 @@ :mbql? true}))) (defmethod sql.qp/current-datetime-fn :bigquery - [_] :%current_timestamp) + [_] + (with-meta (hsql/call :current_timestamp) {:bigquery/temporal-type :timestamp})) (defmethod sql.qp/quote-style :bigquery - [_] :mysql) + [_] + :mysql) + +;; TIMEZONE FIXME — Not working in all cases — see #11222 +(defmethod sql/->prepared-substitution [:bigquery LocalDate] + [_ t] + {:sql-string "?" + :param-values [(t/offset-date-time t (t/local-time 0) (t/zone-offset 0))]}) diff --git a/modules/drivers/bigquery/test/metabase/driver/bigquery/query_processor_test.clj b/modules/drivers/bigquery/test/metabase/driver/bigquery/query_processor_test.clj index 1a4b5c3705a07c0d8fa74edb06be6631d4f3ca42..caeb7bf28197dfae66e1a15a0822cef4a08ee0c8 100644 --- a/modules/drivers/bigquery/test/metabase/driver/bigquery/query_processor_test.clj +++ b/modules/drivers/bigquery/test/metabase/driver/bigquery/query_processor_test.clj @@ -1,28 +1,24 @@ (ns metabase.driver.bigquery.query-processor-test - (:require [clj-time.core :as time] - [clojure.test :refer :all] + (:require [clojure.test :refer :all] [honeysql.core :as hsql] + [java-time :as t] [metabase [driver :as driver] + [models :refer [Database Field]] [query-processor :as qp] [query-processor-test :as qp.test] + [test :as mt] [util :as u]] [metabase.driver.bigquery :as bigquery] + [metabase.driver.bigquery.query-processor :as bigquery.qp] [metabase.driver.sql.query-processor :as sql.qp] - [metabase.models - [database :refer [Database]] - [field :refer [Field]]] - [metabase.query-processor.test-util :as qp.test-util] - [metabase.test - [data :as data] - [util :as tu]] - [metabase.test.data.datasets :as datasets] + [metabase.query-processor.store :as qp.store] [metabase.test.util.timezone :as tu.tz] [metabase.util.honeysql-extensions :as hx] [toucan.util.test :as tt])) (deftest native-query-test - (datasets/test-driver :bigquery + (mt/test-driver :bigquery (is (= [[100] [99]] (get-in @@ -32,7 +28,7 @@ "ORDER BY `test_data.venues`.`id` DESC " "LIMIT 2;")} :type :native - :database (data/id)}) + :database (mt/id)}) [:data :rows]))) (is (= [{:name "venue_id" @@ -58,24 +54,24 @@ "FROM `test_data.checkins` " "LIMIT 2")} :type :native - :database (data/id)}))) + :database (mt/id)}))) (str "make sure that BigQuery native queries maintain the column ordering specified in the SQL -- " "post-processing ordering shouldn't apply (Issue #2821)")))) (deftest aggregations-test - (datasets/test-driver :bigquery + (mt/test-driver :bigquery (testing (str "make sure queries with two or more of the same aggregation type still work. Aggregations used to be " "deduplicated here in the BigQuery driver; now they are deduplicated as part of the main QP " "middleware, but no reason not to keep a few of these tests just to be safe") (let [{:keys [rows columns]} (qp.test/rows+column-names - (data/run-mbql-query checkins + (mt/run-mbql-query checkins {:aggregation [[:sum $user_id] [:sum $user_id]]}))] (is (= ["sum" "sum_2"] columns)) (is (= [[7929 7929]] rows))) (let [{:keys [rows columns]} (qp.test/rows+column-names - (data/run-mbql-query checkins + (mt/run-mbql-query checkins {:aggregation [[:sum $user_id] [:sum $user_id] [:sum $user_id]]}))] (is (= ["sum" "sum_2" "sum_3"] columns)) @@ -90,10 +86,10 @@ :from [(hx/identifier :table "test_data.venues")] :group-by [(hx/identifier :field-alias "price")] :order-by [[(hx/identifier :field-alias "avg") :asc]]} - (qp.test-util/with-everything-store + (mt/with-everything-store (#'sql.qp/mbql->honeysql :bigquery - (data/mbql-query venues + (mt/mbql-query venues {:aggregation [[:avg $category_id]] :breakout [$price] :order-by [[:asc [:aggregation 0]]]}))))) @@ -106,11 +102,11 @@ :table-name "venues" :mbql? true} (qp/query->native - (data/mbql-query venues + (mt/mbql-query venues {:aggregation [[:avg $category_id]], :breakout [$price], :order-by [[:asc [:aggregation 0]]]}))))))) (deftest join-alias-test - (datasets/test-driver :bigquery + (mt/test-driver :bigquery (is (= (str "SELECT `categories__via__category_id`.`name` AS `name`," " count(*) AS `count` " "FROM `test_data.venues` " @@ -121,9 +117,9 @@ ;; normally for test purposes BigQuery doesn't support foreign keys so override the function that checks ;; that and make it return `true` so this test proceeds as expected (with-redefs [driver/supports? (constantly true)] - (tu/with-temp-vals-in-db Field (data/id :venues :category_id) {:fk_target_field_id (data/id :categories :id) + (mt/with-temp-vals-in-db Field (mt/id :venues :category_id) {:fk_target_field_id (mt/id :categories :id) :special_type "type/FK"} - (let [results (data/run-mbql-query venues + (let [results (mt/run-mbql-query venues {:aggregation [:count] :breakout [$category_id->categories.name]})] (get-in results [:data :native_form :query] results))))) @@ -141,25 +137,25 @@ ffirst)) (deftest parsed-date-timezone-handling-test - (datasets/test-driver :bigquery - (is (= "2018-08-31T00:00:00.000Z" - (native-timestamp-query (data/id) "2018-08-31 00:00:00" "UTC")) + (mt/test-driver :bigquery + (is (= "2018-08-31T00:00:00Z" + (native-timestamp-query (mt/id) "2018-08-31 00:00:00" "UTC")) "A UTC date is returned, we should read/return it as UTC") - (is (= "2018-08-31T00:00:00.000-05:00" - (tu.tz/with-jvm-tz (time/time-zone-for-id "America/Chicago") + (is (= "2018-08-31T00:00:00-05:00" + (tu.tz/with-system-timezone-id "America/Chicago" (tt/with-temp* [Database [db {:engine :bigquery - :details (assoc (:details (data/db)) + :details (assoc (:details (mt/db)) :use-jvm-timezone true)}]] (native-timestamp-query db "2018-08-31 00:00:00-05" "America/Chicago")))) (str "This test includes a `use-jvm-timezone` flag of true that will assume that the date coming from BigQuery " "is already in the JVM's timezone. The test puts the JVM's timezone into America/Chicago an ensures that " "the correct date is compared")) - (is (= "2018-08-31T00:00:00.000+07:00" - (tu.tz/with-jvm-tz (time/time-zone-for-id "Asia/Jakarta") + (is (= "2018-08-31T00:00:00+07:00" + (tu.tz/with-system-timezone-id "Asia/Jakarta" (tt/with-temp* [Database [db {:engine :bigquery - :details (assoc (:details (data/db)) + :details (assoc (:details (mt/db)) :use-jvm-timezone true)}]] (native-timestamp-query db "2018-08-31 00:00:00+07" "Asia/Jakarta")))) "Similar to the above test, but covers a positive offset"))) @@ -171,16 +167,16 @@ (with-redefs [bigquery/process-native* (fn [_ sql] (reset! native-query sql) (throw (Exception. "Done.")))] - (qp/process-query {:database (data/id) + (qp/process-query {:database (mt/id) :type :query - :query {:source-table (data/id :venues) + :query {:source-table (mt/id :venues) :limit 1} :info {:executed-by 1000 :query-hash (byte-array [1 2 3 4])}}) @native-query))) (deftest remark-test - (datasets/test-driver :bigquery + (mt/test-driver :bigquery (is (= (str "-- Metabase:: userID: 1000 queryType: MBQL queryHash: 01020304\n" "SELECT `test_data.venues`.`id` AS `id`," @@ -192,20 +188,20 @@ "FROM `test_data.venues` " "LIMIT 1") (query->native - {:database (data/id) + {:database (mt/id) :type :query - :query {:source-table (data/id :venues) + :query {:source-table (mt/id :venues) :limit 1} :info {:executed-by 1000 :query-hash (byte-array [1 2 3 4])}})) "if I run a BigQuery query, does it get a remark added to it?"))) (deftest unprepare-params-test - (datasets/test-driver :bigquery + (mt/test-driver :bigquery (is (= [["Red Medicine"]] (qp.test/rows (qp/process-query - {:database (data/id) + {:database (mt/id) :type :native :native {:query (str "SELECT `test_data.venues`.`name` AS `name` " "FROM `test_data.venues` " @@ -213,3 +209,156 @@ :params ["Red Medicine"]}}))) (str "Do we properly unprepare, and can we execute, queries that still have parameters for one reason or " "another? (EE #277)")))) + +(def ^:private reconcile-test-values + [{:value (t/local-date "2019-12-10") + :type :date + :as {:datetime (t/local-date-time "2019-12-10T00:00:00") + :timestamp (t/zoned-date-time "2019-12-10T00:00:00Z[UTC]")}} + {:value (t/local-date-time "2019-12-10T14:47:00") + :type :datetime + :as {:date (t/local-date "2019-12-10") + :timestamp (t/zoned-date-time "2019-12-10T14:47:00Z[UTC]")}} + {:value (t/zoned-date-time "2019-12-10T14:47:00Z[UTC]") + :type :timestamp + :as {:date (t/local-date "2019-12-10") + :datetime (t/local-date-time "2019-12-10T14:47:00")}} + {:value (t/offset-date-time "2019-12-10T14:47:00Z") + :type :timestamp + :as {:date (t/local-date "2019-12-10") + :datetime (t/local-date-time "2019-12-10T14:47:00")}} + (let [unix-ts (sql.qp/unix-timestamp->timestamp :bigquery :seconds :some_field)] + {:value unix-ts + :type :timestamp + :as {:date (hx/cast :date unix-ts) + :datetime (hx/cast :datetime unix-ts)}}) + (let [unix-ts (sql.qp/unix-timestamp->timestamp :bigquery :milliseconds :some_field)] + {:value unix-ts + :type :timestamp + :as {:date (hx/cast :date unix-ts) + :datetime (hx/cast :datetime unix-ts)}})]) + +(deftest temporal-type-test + (testing "Make sure we can detect temporal types correctly" + (doseq [[expr expected-type] {[:field-literal "x" :type/DateTime] :datetime + [:datetime-field [:field-literal "x" :type/DateTime] :day-of-week] nil}] + (testing (format "\n(temporal-type %s)" (binding [*print-meta* true] (pr-str expr))) + (is (= expected-type + (#'bigquery.qp/temporal-type expr))))))) + +(deftest reconcile-temporal-types-test + (mt/with-everything-store + (tt/with-temp* [Field [date-field {:name "date", :base_type :type/Date}] + Field [datetime-field {:name "datetime", :base_type :type/DateTime}] + Field [timestamp-field {:name "timestamp", :base_type :type/DateTimeWithLocalTZ}]] + ;; bind `*table-alias*` so the BigQuery QP doesn't try to look up the current dataset name when converting + ;; `hx/identifier`s to SQL + (binding [sql.qp/*table-alias* "ABC" + *print-meta* true] + (let [fields {:date date-field + :datetime datetime-field + :timestamp timestamp-field}] + (doseq [clause [{:args 2, :mbql :=, :honeysql :=} + {:args 2, :mbql :!=, :honeysql :not=} + {:args 2, :mbql :>, :honeysql :>} + {:args 2, :mbql :>=, :honeysql :>=} + {:args 2, :mbql :<, :honeysql :<} + {:args 2, :mbql :<=, :honeysql :<=} + {:args 3, :mbql :between, :honeysql :between}]] + (testing (format "\n%s filter clause" (:mbql clause)) + (doseq [[temporal-type field] fields + field [field + [:field-id (:id field)] + [:datetime-field [:field-id (:id field)] :default] + [:field-literal (:name field) (:base_type field)] + [:datetime-field [:field-literal (:name field) (:base_type field)] :default]]] + (testing (format "\nField = %s %s" + temporal-type + (if (map? field) (format "<Field %s>" (pr-str (:name field))) field)) + (doseq [{filter-value :value, :as value} reconcile-test-values + filter-value (cons filter-value + (when (instance? java.time.temporal.Temporal filter-value) + [[:absolute-datetime filter-value :default]]))] + (testing (format "\nValue = %s %s" (:type value) (pr-str filter-value)) + (let [filter-clause (into [(:mbql clause) field] + (repeat (dec (:args clause)) filter-value)) + expected-identifier (hx/identifier :field "ABC" (name temporal-type)) + expected-value (get-in value [:as temporal-type] (:value value)) + expected-clause (into [(:honeysql clause) expected-identifier] + (repeat (dec (:args clause)) expected-value))] + (testing (format "\nreconcile %s -> %s" + (into [(:mbql clause) temporal-type] (repeat (dec (:args clause)) (:type value))) + (into [(:mbql clause) temporal-type] (repeat (dec (:args clause)) temporal-type))) + (testing (format "\ninferred field type = %s, inferred value type = %s" + (#'bigquery.qp/temporal-type field) + (#'bigquery.qp/temporal-type filter-value)) + (is (= expected-clause + (sql.qp/->honeysql :bigquery filter-clause)))))))))))) + (testing "\ndate extraction filters" + (doseq [[temporal-type field] fields + :let [identifier (hx/identifier :field "ABC" (name temporal-type)) + expected-identifier (if (= temporal-type :timestamp) + identifier + (hx/cast :timestamp identifier))]] + (is (= [:= (hsql/call :extract :dayofweek expected-identifier) 1] + (sql.qp/->honeysql :bigquery [:= [:datetime-field [:field-id (:id field)] :day-of-week] 1])))))))))) + +(deftest between-test + (testing "Make sure :between clauses reconcile the temporal types of their args" + (letfn [(between->sql [clause] + (sql.qp/format-honeysql :bigquery + {:where (sql.qp/->honeysql :bigquery clause)}))] + (testing "Should look for `:bigquery/temporal-type` metadata" + (is (= ["WHERE field BETWEEN ? AND ?" + (t/local-date-time "2019-11-11T00:00") + (t/local-date-time "2019-11-12T00:00")] + (between->sql [:between + (with-meta (hsql/raw "field") {:bigquery/temporal-type :datetime}) + (t/local-date "2019-11-11") + (t/local-date "2019-11-12")])))) + (testing "If first arg has no temporal-type info, should look at next arg" + (is (= ["WHERE CAST(field AS date) BETWEEN ? AND ?" + (t/local-date "2019-11-11") + (t/local-date "2019-11-12")] + (between->sql [:between + (hsql/raw "field") + (t/local-date "2019-11-11") + (t/local-date "2019-11-12")])))) + (testing "No need to cast if args agree on temporal type" + (is (= ["WHERE field BETWEEN ? AND ?" + (t/local-date "2019-11-11") + (t/local-date "2019-11-12")] + (between->sql [:between + (with-meta (hsql/raw "field") {:bigquery/temporal-type :date}) + (t/local-date "2019-11-11") + (t/local-date "2019-11-12")])))) + (mt/test-driver :bigquery + (mt/with-everything-store + (let [expected ["WHERE `test_data.checkins`.`date` BETWEEN ? AND ?" + (t/zoned-date-time "2019-11-11T00:00Z[UTC]") + (t/zoned-date-time "2019-11-12T00:00Z[UTC]")]] + (testing "Should be able to get temporal type from a FieldInstance" + (is (= expected + (between->sql [:between + (qp.store/field (mt/id :checkins :date)) + (t/local-date "2019-11-11") + (t/local-date "2019-11-12")])))) + (testing "Should be able to get temporal type from a :field-id" + (is (= expected + (between->sql [:between + [:field-id (mt/id :checkins :date)] + (t/local-date "2019-11-11") + (t/local-date "2019-11-12")])))) + (testing "Should be able to get temporal type from a wrapped field-id" + (is (= (cons "WHERE timestamp_trunc(`test_data.checkins`.`date`, day) BETWEEN ? AND ?" + (rest expected)) + (between->sql [:between + [:datetime-field [:field-id (mt/id :checkins :date)] :day] + (t/local-date "2019-11-11") + (t/local-date "2019-11-12")])))) + (testing "Should work with a field literal" + (is (= ["WHERE `date` BETWEEN ? AND ?" (t/local-date "2019-11-11") (t/local-date "2019-11-12")] + (between->sql [:between + [:field-literal "date" :type/Date] + (t/local-date-time "2019-11-11T12:00:00") + (t/local-date-time "2019-11-12T12:00:00")])))))))))) diff --git a/modules/drivers/bigquery/test/metabase/driver/bigquery_test.clj b/modules/drivers/bigquery/test/metabase/driver/bigquery_test.clj index 4a06a8c5dbcb500ca5559055e2c5bf9d9d37e9bf..6eb1fdc1d7d8e02ea62692d3197a2101a7d752d9 100644 --- a/modules/drivers/bigquery/test/metabase/driver/bigquery_test.clj +++ b/modules/drivers/bigquery/test/metabase/driver/bigquery_test.clj @@ -2,13 +2,11 @@ (:require [clojure.test :refer :all] [metabase [driver :as driver] + [models :refer [Field Table]] [query-processor :as qp] [query-processor-test :as qp.test] [sync :as sync]] [metabase.db.metadata-queries :as metadata-queries] - [metabase.models - [field :refer [Field]] - [table :refer [Table]]] [metabase.test [data :as data] [util :as tu]] @@ -61,13 +59,8 @@ (deftest sync-views-test (datasets/test-driver :bigquery (with-view [view-name] - (is (= {:tables - #{{:schema nil, :name "categories"} - {:schema nil, :name "checkins"} - {:schema nil, :name "users"} - {:schema nil, :name "venues"} - {:schema nil, :name view-name}}} - (driver/describe-database :bigquery (data/db))) + (is (contains? (:tables (driver/describe-database :bigquery (data/db))) + {:schema nil, :name view-name}) "`describe-database` should see the view") (is (= {:schema nil :name view-name @@ -93,9 +86,44 @@ (testing "BigQuery does not support report-timezone, so setting it should not affect results" (doseq [timezone ["UTC" "US/Pacific"]] (tu/with-temporary-setting-values [report-timezone timezone] - (is (= [[37 "2015-11-19T00:00:00.000Z"]] + (is (= [[37 "2015-11-19T00:00:00Z"]] (qp.test/rows (data/run-mbql-query checkins {:fields [$id $date] :filter [:= $date "2015-11-19"] :order-by [[:asc $id]]}))))))))) + +(defn- do-with-datetime-timestamp-table [f] + (driver/with-driver :bigquery + (let [table-name (name (munge (gensym "table_")))] + (data/with-temp-copy-of-db + (try + (bigquery.tx/execute! + (format "CREATE TABLE `test_data.%s` ( ts TIMESTAMP, dt DATETIME )" table-name)) + (bigquery.tx/execute! + (format "INSERT INTO `test_data.%s` (ts, dt) VALUES (TIMESTAMP \"2020-01-01 00:00:00 UTC\", DATETIME \"2020-01-01 00:00:00\")" + table-name)) + (sync/sync-database! (data/db)) + (f table-name) + (finally + (bigquery.tx/execute! "DROP TABLE IF EXISTS `test_data.%s`" table-name))))))) + +(deftest filter-by-datetime-timestamp-test + (datasets/test-driver :bigquery + ;; there are more tests in the `bigquery.query-processor-test` namespace + (testing "Make sure we can filter against different types of BigQuery temporal columns (#11222)" + (do-with-datetime-timestamp-table + (fn [table-name] + (doseq [column [:ts :dt]] + (testing (format "Filtering against %s column" column) + (doseq [s ["2020-01-01" "2020-01-01T00:00:00"] + field [[:field-id (data/id table-name column)] + [:datetime-field [:field-id (data/id table-name column)] :default] + [:datetime-field [:field-id (data/id table-name column)] :day]] + :let [filter-clause [:= field s]]] + (testing (format "\nMBQL filter clause = %s" (pr-str filter-clause)) + (is (= [["2020-01-01T00:00:00Z" "2020-01-01T00:00:00Z"]] + (qp.test/rows + (data/run-mbql-query nil + {:source-table (data/id table-name) + :filter filter-clause}))))))))))))) diff --git a/modules/drivers/bigquery/test/metabase/test/data/bigquery.clj b/modules/drivers/bigquery/test/metabase/test/data/bigquery.clj index a96396e209eb3323c6843362ef6b4280b1151992..34bc9b3ab04b0a035129a4c947a021119d4c98f3 100644 --- a/modules/drivers/bigquery/test/metabase/test/data/bigquery.clj +++ b/modules/drivers/bigquery/test/metabase/test/data/bigquery.clj @@ -1,8 +1,6 @@ (ns metabase.test.data.bigquery - (:require [clj-time - [coerce :as tcoerce] - [format :as tformat]] - [clojure.string :as str] + (:require [clojure.string :as str] + [java-time :as t] [medley.core :as m] [metabase [config :as config] @@ -11,19 +9,18 @@ [metabase.driver [bigquery :as bigquery] [google :as google]] - [metabase.driver.bigquery.query-processor :as bigquery.qp] [metabase.test.data :as data] [metabase.test.data [interface :as tx] [sql :as sql.tx]] [metabase.util - [date :as du] + [date-2 :as u.date] [schema :as su]] [schema.core :as s]) (:import com.google.api.client.util.DateTime com.google.api.services.bigquery.Bigquery - [com.google.api.services.bigquery.model Dataset DatasetReference QueryRequest QueryResponse Table - TableDataInsertAllRequest TableDataInsertAllRequest$Rows TableFieldSchema TableReference TableRow + [com.google.api.services.bigquery.model Dataset DatasetReference QueryRequest QueryResponse + Table TableDataInsertAllRequest TableDataInsertAllRequest$Rows TableFieldSchema TableReference TableRow TableSchema] java.sql.Time)) @@ -132,7 +129,7 @@ "Convert the HoneySQL form we normally use to wrap a `Timestamp` to a Google `DateTime`." [{[{s :literal}] :args}] {:pre [(string? s) (seq s)]} - (DateTime. (du/->Timestamp (str/replace s #"'" "")))) + (DateTime. (t/to-java-date (u.date/parse (str/replace s #"'" ""))))) (defn- insert-data! [^String dataset-id, ^String table-id, row-maps] @@ -191,13 +188,6 @@ (println (u/format-color 'red "Don't know what BigQuery type to use for base type: %s" base-type)) (throw (Exception. (format "Don't know what BigQuery type to use for base type: %s" base-type))))}))) -(defn- time->string - "Coerces `t` to a Joda DateTime object and returns it's String representation." - [t] - (->> t - tcoerce/to-date-time - (tformat/unparse #'bigquery.qp/bigquery-time-format))) - (defn- tabledef->prepared-rows "Convert `table-definition` to a format approprate for passing to `insert-data!`." [{:keys [field-definitions rows]}] @@ -207,7 +197,7 @@ :let [vs (for [v row] (u/prog1 (cond (instance? Time v) - (time->string v) + (u.date/format-sql (t/local-time v)) (instance? java.util.Date v) ;; convert to Google version of DateTime, otherwise it doesn't work (!) diff --git a/modules/drivers/druid/project.clj b/modules/drivers/druid/project.clj index 918859436011c02aba2975e1fa9d4b6d9498f07c..016a5898dc52f0f071c1f9272ea23e60b1b0cff4 100644 --- a/modules/drivers/druid/project.clj +++ b/modules/drivers/druid/project.clj @@ -3,7 +3,8 @@ :profiles {:provided - {:dependencies [[metabase-core "1.0.0-SNAPSHOT"]]} + {:dependencies [[org.clojure/clojure "1.10.1"] + [metabase-core "1.0.0-SNAPSHOT"]]} :uberjar {:auto-clean true diff --git a/modules/drivers/druid/src/metabase/driver/druid.clj b/modules/drivers/druid/src/metabase/driver/druid.clj index 1094f0224c1ecefdd4dd778100e937f84f2919f7..5701c7dd592a217ba4049f93cfee6e3b410b03d6 100644 --- a/modules/drivers/druid/src/metabase/driver/druid.clj +++ b/modules/drivers/druid/src/metabase/driver/druid.clj @@ -25,7 +25,7 @@ ;; TODO - Should this go somewhere more general, like util ? (defn- do-request - "Perform a JSON request using REQUEST-FN against URL. + "Perform a JSON request using `request-fn` against `url`. Tho (do-request http/get \"http://my-json-api.net\")" @@ -41,8 +41,8 @@ (catch Throwable _ (throw (Exception. (tru "Failed to parse body: {0}" body))))))) -(def ^:private ^{:arglists '([url & {:as options}])} GET (partial do-request http/get)) -(def ^:private ^{:arglists '([url & {:as options}])} POST (partial do-request http/post)) +(def ^:private ^{:arglists '([url & {:as options}])} GET (partial do-request http/get)) +(def ^:private ^{:arglists '([url & {:as options}])} POST (partial do-request http/post)) (def ^:private ^{:arglists '([url & {:as options}])} DELETE (partial do-request http/delete)) @@ -125,7 +125,8 @@ :base-type (druid-type->base-type field-type) :database-type field-type}) -(defmethod driver/describe-table :druid [_ database table] +(defmethod driver/describe-table :druid + [_ database table] (ssh/with-ssh-tunnel [details-with-tunnel (:details database)] (let [{:keys [columns]} (first (do-segment-metadata-query details-with-tunnel (:name table)))] {:schema nil @@ -134,22 +135,25 @@ ;; every Druid table is an event stream w/ a timestamp field [{:name "timestamp" :database-type "timestamp" - :base-type :type/DateTime + :base-type :type/Instant :pk? true}] (for [[field-name field-info] (dissoc columns :__time)] (describe-table-field field-name field-info))))}))) -(defmethod driver/describe-database :druid [_ database] +(defmethod driver/describe-database :druid + [_ database] {:pre [(map? (:details database))]} (ssh/with-ssh-tunnel [details-with-tunnel (:details database)] (let [druid-datasources (GET (details->url details-with-tunnel "/druid/v2/datasources"))] {:tables (set (for [table-name druid-datasources] {:schema nil, :name table-name}))}))) -(defmethod driver/mbql->native :druid [_ query] +(defmethod driver/mbql->native :druid + [_ query] (qp/mbql->native query)) -(defmethod driver/execute-query :druid [_ query] +(defmethod driver/execute-query :druid + [_ query] (qp/execute-query do-query-with-cancellation query)) (defmethod driver/supports? [:druid :set-timezone] [_ _] true) diff --git a/modules/drivers/druid/src/metabase/driver/druid/query_processor.clj b/modules/drivers/druid/src/metabase/driver/druid/query_processor.clj index 9ab2c434b0f84de8c5dde6abad0b168703b1ba91..322e87315dc37f6b444376b1cb04d15d53f8bc10 100644 --- a/modules/drivers/druid/src/metabase/driver/druid/query_processor.clj +++ b/modules/drivers/druid/src/metabase/driver/druid/query_processor.clj @@ -1,30 +1,27 @@ (ns metabase.driver.druid.query-processor (:require [cheshire.core :as json] - [clj-time - [coerce :as tcoerce] - [core :as time] - [format :as tformat]] [clojure.core.match :refer [match]] [clojure.math.numeric-tower :as math] [clojure.string :as str] [clojure.tools.logging :as log] [flatland.ordered.map :as ordered-map] + [java-time :as t] + [metabase + [types :as types] + [util :as u]] [metabase.driver.druid.js :as js] [metabase.mbql [schema :as mbql.s] [util :as mbql.u]] [metabase.query-processor [interface :as i] - [store :as qp.store]] + [store :as qp.store] + [timezone :as qp.timezone]] [metabase.query-processor.middleware.annotate :as annotate] - [metabase.util :as u] [metabase.util - [date :as du] + [date-2 :as u.date] [i18n :as ui18n :refer [tru]]] - [schema.core :as s]) - (:import java.sql.Timestamp - java.util.TimeZone - org.joda.time.DateTimeZone)) + [schema.core :as s])) (def ^:private ^:const topN-max-results "Maximum number of rows the topN query in Druid should return. Huge values cause significant issues with the engine. @@ -53,10 +50,6 @@ (`:settings` is merged in from the outer query as well so we can access timezone info)." nil) -(defn- get-timezone-id - [] - (or (get-in *query* [:settings :report-timezone]) "UTC")) - (defn- query-type-dispatch-fn [query-type & _] query-type) @@ -107,19 +100,20 @@ (->rvalue field)) (defmethod ->rvalue :absolute-datetime - [[_ timestamp unit]] - (du/date->iso-8601 (if (= unit :default) - timestamp - (du/date-trunc unit timestamp (get-timezone-id))))) + [[_ t unit]] + (u.date/format + (if (= unit :default) + t + (u.date/truncate t unit)))) ;; TODO - not 100% sure how to handle times here, just treating it exactly like a date will have to do for now (defmethod ->rvalue :time - [[_ time unit]] - (du/date->iso-8601 (du/date-trunc unit time (get-timezone-id)))) + [[_ t unit]] + (u.date/format (u.date/truncate t unit))) (defmethod ->rvalue :relative-datetime [[_ amount unit]] - (du/date->iso-8601 (du/date-trunc unit (du/relative-date unit amount) (get-timezone-id)))) + (u.date/format (u.date/truncate (u.date/add unit amount) unit))) (defmethod ->rvalue :value [[_ value]] @@ -337,22 +331,22 @@ milliseconds, because that is the smallest unit Druid supports." [clause n] (mbql.u/replace clause - [:absolute-datetime inst :default] - [:absolute-datetime (du/relative-date :millisecond n inst) :millisecond] + [:absolute-datetime t :default] + [:absolute-datetime (u.date/add t :millisecond n) :millisecond] _ (mbql.u/add-datetime-units clause n))) -(defn- ->absolute-timestamp ^Timestamp [clause] +(defn- ->absolute-timestamp ^java.time.temporal.Temporal [clause] (mbql.u/match-one clause - [:absolute-datetime inst :default] - inst + [:absolute-datetime t :default] + t - [:absolute-datetime inst unit] - (du/date-trunc unit inst (get-timezone-id)) + [:absolute-datetime t unit] + (u.date/truncate t unit) [:relative-datetime amount unit] - (du/date-trunc unit (du/relative-date unit amount) (get-timezone-id)) + (u.date/truncate (u.date/add unit amount) unit) _ nil)) @@ -360,7 +354,7 @@ (defmulti ^:private filter-clause->intervals "Generate query intervals as appropriate from a `filter-clause` containing a `:datetime-field`. `:intervals` are specified seperately from other things we think of as filter clauses in Druid. For temporal filter clauses, this - returns a sequence of min/max datetime tuples; like `[#inst 2019-01-01 #inst 2019-10-01]`; for irrelevant filter + returns a sequence of min/max datetime tuples; like `[#t 2019-01-01 #t 2019-10-01]`; for irrelevant filter clauses, the methods are skipped entirely." {:arglists '([filter-clause])} (fn [clause] @@ -450,8 +444,8 @@ (when-let [intervals (seq (filter some? intervals))] (for [[min-value max-value] intervals] (format "%s/%s" - (or (some-> min-value du/date->iso-8601) "-5000") - (or (some-> max-value du/date->iso-8601) "5000"))))) + (or (some-> min-value u.date/format) "-5000") + (or (some-> max-value u.date/format) "5000"))))) (defn- handle-filter [_ {filter-clause :filter} updated-query] @@ -584,6 +578,10 @@ [filtr aggregator] {:type :filtered, :filter filtr, :aggregator aggregator}) +(defn- hyper-unique? + [[_ field-id]] + (-> field-id qp.store/field :base_type (isa? :type/DruidHyperUnique))) + (defn- ag:distinct [field output-name] (cond @@ -593,7 +591,7 @@ :fieldNames (mapv ->rvalue (rest field)) :byRow true :round true} - (isa? (:base-type field) :type/DruidHyperUnique) + (hyper-unique? field) {:type :hyperUnique :name output-name :fieldName (->rvalue field)} @@ -608,7 +606,8 @@ ([output-name] {:type :count, :name output-name}) ([field output-name] - (if (isa? (:base-type field) :type/DruidHyperUnique) + (if (and (mbql.u/is-clause? #{:field-id} field) + (hyper-unique? field)) {:type :hyperUnique :name output-name :fieldName (->rvalue field)} @@ -869,7 +868,7 @@ :month "P1M" :quarter "P3M" :year "P1Y") - :timeZone (get-timezone-id)} + :timeZone (qp.timezone/results-timezone-id)} ;; Druid uses Monday for the start of its weekly calculations. Metabase uses Sundays. When grouping by week, ;; the origin keypair will use the date specified as it's start of the week. The below date is the first ;; Sunday after Epoch. The date itself isn't significant, it just uses it to figure out what day it should @@ -878,7 +877,7 @@ {:origin "1970-01-04T00:00:00Z"}))) (def ^:private units-that-need-post-processing-int-parsing - "`extract:timeFormat` always returns a string; there are cases where we'd like to return an integer instead, such as + "`extract:timeFormat` always returns a string; there are cases where we'd like to return an integer tead, such as `:day-of-month`. There's no simple way to do this in Druid -- Druid 0.9.0+ *does* let you combine extraction functions with `:cascade`, but we're still supporting 0.8.x. Instead, we will perform the conversions in Clojure-land during post-processing. If we need to perform the extra post-processing step, we'll name the resulting @@ -908,7 +907,7 @@ [[_ _ unit]] {:type :extraction :dimension :__time - ;; :timestamp is a special case, and we need to do an 'extraction' against the secret special value :__time to get + ;; :timestamp is a special case, and we need to do an 'extraction' agat the secret special value :__time to get ;; at it :outputName (if (contains? units-that-need-post-processing-int-parsing unit) :timestamp___int @@ -1007,12 +1006,12 @@ :desc :descending :asc :ascending)})))) (defn- datetime-field? - "Similar to `mbql.u/datetime-field?` but works on field ids wrapped in a datetime or on fields that happen to be a + "Similar to `types/temporal-field?` but works on field ids wrapped in a datetime or on fields that happen to be a datetime" [field] (when field (or (mbql.u/is-clause? :datetime-field field) - (mbql.u/datetime-field? (qp.store/field (second field)))))) + (types/temporal-field? (qp.store/field (second field)))))) ;; Handle order by timstamp field (defn- handle-order-by-timestamp @@ -1055,7 +1054,7 @@ (cond ;; If you specify nil or empty `:dimensions` or `:metrics` Druid will just return all of the ones available. ;; In cases where we don't want anything to be returned in one or the other, we'll ask for a `:___dummy` - ;; column instead. Druid happily returns `nil` for the column in every row, and it will get auto-filtered out + ;; column tead. Druid happily returns `nil` for the column in every row, and it will get auto-filtered out ;; of the results so the User will never see it. (nil? field) (-> updated-query @@ -1176,70 +1175,42 @@ {:arglists '([query-type projections timezone-and-middleware-settings results])} query-type-dispatch-fn) -(defn- post-process-map - [projections results] - {:projections projections - :results results}) - -(def ^:private druid-ts-format (tformat/formatters :date-time)) - -(def ^:private ^{:arglists '([timestamp])} parse-timestamp - (comp tcoerce/to-date (partial tformat/parse druid-ts-format))) - -(defn- reformat-timestamp - [timestamp target-formatter] - (->> timestamp - (tformat/parse druid-ts-format) - (tformat/unparse target-formatter))) - (defmethod post-process ::select - [_ projections {:keys [timezone middleware]} results] - (let [target-formater (some->> timezone (tformat/with-zone druid-ts-format)) - update-ts-fn (cond - (not (:format-rows? middleware true)) - #(update % :timestamp parse-timestamp) - - target-formater - #(update % :timestamp reformat-timestamp target-formater) - - :else - identity)] - (->> results - first - :result - :events - (map (comp update-ts-fn :event)) - (post-process-map projections)))) + [_ projections {:keys [middleware]} [{{:keys [events]} :result} first-result]] + {:projections projections + :results (for [event (map :event events)] + (update event :timestamp u.date/parse))}) (defmethod post-process ::total [_ projections _ results] - (post-process-map projections (map :result results))) + {:projections projections + :results (map :result results)}) (defmethod post-process ::topN [_ projections {:keys [middleware]} results] - (post-process-map projections - (let [results (-> results first :result)] - (if (:format-rows? middleware true) - results - (map #(u/update-when % :timestamp parse-timestamp) results))))) + {:projections projections + :results (let [results (-> results first :result)] + (if (:format-rows? middleware true) + results + (map #(u/update-when % :timestamp u.date/parse) results)))}) (defmethod post-process ::groupBy [_ projections {:keys [middleware]} results] - (post-process-map projections - (if (:format-rows? middleware true) - (map :event results) - (map (comp #(u/update-when % :timestamp parse-timestamp) - :event) - results)))) + {:projections projections + :results (if (:format-rows? middleware true) + (map :event results) + (map (comp #(u/update-when % :timestamp u.date/parse) + :event) + results))}) (defmethod post-process ::timeseries [_ projections {:keys [middleware]} results] - (post-process-map (conj projections :timestamp) - (let [ts-getter (if (:format-rows? middleware true) - :timestamp - (comp parse-timestamp :timestamp))] - (for [event results] - (merge {:timestamp (ts-getter event)} (:result event)))))) + {:projections (conj projections :timestamp) + :results (let [ts-getter (if (:format-rows? middleware true) + :timestamp + (comp u.date/parse :timestamp))] + (for [event results] + (merge {:timestamp (ts-getter event)} (:result event))))}) (defn- remove-bonus-keys "Remove keys that start with `___` from the results -- they were temporary, and we don't want to return them." @@ -1279,19 +1250,12 @@ k) k)]))) -(defn- utc? - "There are several timezone ids that mean UTC. This will create a TimeZone object from `TIMEZONE` and check to see if - it's a UTC timezone" - [^DateTimeZone timezone] - (.hasSameRules (TimeZone/getTimeZone "UTC") (.toTimeZone timezone))) - (defn- resolve-timezone "Returns the timezone object (either report-timezone or JVM timezone). Returns nil if the timezone is UTC as the timestamps from Druid are already in UTC and don't need to be converted" - [{:keys [settings]}] - (let [tz (time/time-zone-for-id (:report-timezone settings (System/getProperty "user.timezone")))] - (when-not (utc? tz) - tz))) + [_] + (when-not (= (t/zone-id (qp.timezone/results-timezone-id)) (t/zone-id "UTC")) + (qp.timezone/results-timezone-id))) (defn execute-query "Execute a query for a Druid DB." @@ -1321,14 +1285,14 @@ ;; Leave `:rows` as a sequence of maps and the `annotate` middleware will take care of converting them to vectors ;; in the correct column order {:rows (for [row (:results post-proc-map)] - ;; use ordered-map to preseve the column ordering because for native queries results are returned in whatever - ;; order the keys come out when calling `keys` + ;; use ordered-map to preseve the column ordering because for native queries results are returned in + ;; whatever order the keys come out when calling `keys` (into (ordered-map/ordered-map) (for [[column getter] column->getter] - ;; rename any occurances of `:timestamp___int` to `:timestamp` in the results so the user doesn't know about - ;; our behind-the-scenes conversion and apply any other post-processing on the value such as parsing some - ;; units to int and rounding up approximate cardinality values. + ;; rename any occurances of `:timestamp___int` to `:timestamp` in the results so the user doesn't know + ;; about our behind-the-scenes conversion and apply any other post-processing on the value such as + ;; parsing some units to int and rounding up approximate cardinality values. [(case column :timestamp___int :timestamp :distinct___count :count diff --git a/modules/drivers/druid/test/metabase/driver/druid/query_processor_test.clj b/modules/drivers/druid/test/metabase/driver/druid/query_processor_test.clj index 1b1d3b0d6410d2999a56122baa1b7a352dc6afc1..913765b72f4614624a3436830a3b356b33e022dc 100644 --- a/modules/drivers/druid/test/metabase/driver/druid/query_processor_test.clj +++ b/modules/drivers/druid/test/metabase/driver/druid/query_processor_test.clj @@ -8,70 +8,70 @@ [metabase.test.data :as data] [metabase.test.data.datasets :as datasets] [metabase.timeseries-query-processor-test.util :as tqpt] - [metabase.util.date :as du])) + [metabase.util.date-2 :as u.date])) (defn- str->absolute-dt [s] - [:absolute-datetime (du/->Timestamp s "UTC") :default]) + [:absolute-datetime (u.date/parse s "UTC") :default]) (deftest filter-intervals-test (let [dt-field [:datetime-field [:field-id 1] :default] filter-clause->intervals (comp (var-get #'druid.qp/compile-intervals) (var-get #'druid.qp/filter-clause->intervals))] (testing := - (is (= ["2015-10-04T00:00:00.000Z/2015-10-04T00:00:00.001Z"] - (filter-clause->intervals [:= dt-field (str->absolute-dt "2015-10-04T00:00:00.000Z")])) + (is (= ["2015-10-04T00:00:00Z/2015-10-04T00:00:00.001Z"] + (filter-clause->intervals [:= dt-field (str->absolute-dt "2015-10-04T00:00:00Z")])) ":= filters should get converted to intervals like `v/v+1`") (is (= nil (filter-clause->intervals [:= [:field-id 1] "toucan"])) "Non-temporal filter clauses should return `nil` intervals")) (testing :< - (is (= ["-5000/2015-10-11T00:00:00.000Z"] - (filter-clause->intervals [:< dt-field (str->absolute-dt "2015-10-11T00:00:00.000Z")])) + (is (= ["-5000/2015-10-11T00:00:00Z"] + (filter-clause->intervals [:< dt-field (str->absolute-dt "2015-10-11T00:00:00Z")])) ":<, :<=, :>, and :>= should return an interval with -5000 or 5000 as min or max")) (testing :between - (is (= ["2015-10-04T00:00:00.000Z/2015-10-20T00:00:00.001Z"] + (is (= ["2015-10-04T00:00:00Z/2015-10-20T00:00:00.001Z"] (filter-clause->intervals - [:between dt-field (str->absolute-dt "2015-10-04T00:00:00.000Z") (str->absolute-dt "2015-10-20T00:00:00.000Z")])))) + [:between dt-field (str->absolute-dt "2015-10-04T00:00:00Z") (str->absolute-dt "2015-10-20T00:00:00Z")])))) (testing :and - (is (= ["2015-10-04T00:00:00.000Z/2015-10-11T00:00:00.000Z"] + (is (= ["2015-10-04T00:00:00Z/2015-10-11T00:00:00Z"] (filter-clause->intervals [:and - [:>= dt-field (str->absolute-dt "2015-10-04T00:00:00.000Z")] - [:< dt-field (str->absolute-dt "2015-10-11T00:00:00.000Z")]])) + [:>= dt-field (str->absolute-dt "2015-10-04T00:00:00Z")] + [:< dt-field (str->absolute-dt "2015-10-11T00:00:00Z")]])) "The Druid QP should be able to combine compound `:and` filter clauses into a single datetime interval.") - (is (= ["2015-10-06T00:00:00.000Z/2015-10-20T00:00:00.001Z"] + (is (= ["2015-10-06T00:00:00Z/2015-10-20T00:00:00.001Z"] (filter-clause->intervals [:and - [:between dt-field (str->absolute-dt "2015-10-04T00:00:00.000Z") (str->absolute-dt "2015-10-20T00:00:00.000Z")] - [:between dt-field (str->absolute-dt "2015-10-06T00:00:00.000Z") (str->absolute-dt "2015-10-21T00:00:00.000Z")]])) + [:between dt-field (str->absolute-dt "2015-10-04T00:00:00Z") (str->absolute-dt "2015-10-20T00:00:00Z")] + [:between dt-field (str->absolute-dt "2015-10-06T00:00:00Z") (str->absolute-dt "2015-10-21T00:00:00Z")]])) "When two filters have overlapping intervals it should generate a single logically equivalent interval") (is (= nil (filter-clause->intervals [:and [:= [:field-id 1] "toucan"] [:= [:field-id 2] "threecan"]])) ":and clause should ignore non-temporal filters") - (is (= ["2015-10-04T00:00:00.000Z/2015-10-04T00:00:00.001Z"] + (is (= ["2015-10-04T00:00:00Z/2015-10-04T00:00:00.001Z"] (filter-clause->intervals [:and - [:= [:field-id 1] "toucan"] [:= dt-field (str->absolute-dt "2015-10-04T00:00:00.000Z")]])) + [:= [:field-id 1] "toucan"] [:= dt-field (str->absolute-dt "2015-10-04T00:00:00Z")]])) ":and clause with no temporal filters should be compiled to `nil` interval") - (is (= ["2015-10-04T00:00:00.000Z/2015-10-04T00:00:00.001Z"] + (is (= ["2015-10-04T00:00:00Z/2015-10-04T00:00:00.001Z"] (filter-clause->intervals [:and - [:= dt-field (str->absolute-dt "2015-10-04T00:00:00.000Z")] + [:= dt-field (str->absolute-dt "2015-10-04T00:00:00Z")] [:or - [:>= dt-field (str->absolute-dt "2015-10-03T00:00:00.000Z")] - [:< dt-field (str->absolute-dt "2015-10-11T00:00:00.000Z")]]])) + [:>= dt-field (str->absolute-dt "2015-10-03T00:00:00Z")] + [:< dt-field (str->absolute-dt "2015-10-11T00:00:00Z")]]])) ":and clause should ignore nested `:or` filters, since they can't be combined into a single filter")) (testing :or - (is (= ["2015-10-04T00:00:00.000Z/5000" "-5000/2015-10-11T00:00:00.000Z"] + (is (= ["2015-10-04T00:00:00Z/5000" "-5000/2015-10-11T00:00:00Z"] (filter-clause->intervals [:or - [:>= dt-field (str->absolute-dt "2015-10-04T00:00:00.000Z")] - [:< dt-field (str->absolute-dt "2015-10-11T00:00:00.000Z")]])) + [:>= dt-field (str->absolute-dt "2015-10-04T00:00:00Z")] + [:< dt-field (str->absolute-dt "2015-10-11T00:00:00Z")]])) ":or filters should be combined into multiple intervals") - (is (= ["2015-10-04T00:00:00.000Z/5000"] + (is (= ["2015-10-04T00:00:00Z/5000"] (filter-clause->intervals [:or - [:>= dt-field (str->absolute-dt "2015-10-04T00:00:00.000Z")] + [:>= dt-field (str->absolute-dt "2015-10-04T00:00:00Z")] [:= [:field-id 1] "toucan"]])) ":or clauses should ignore non-temporal filters") (is (= nil diff --git a/modules/drivers/druid/test/metabase/driver/druid_test.clj b/modules/drivers/druid/test/metabase/driver/druid_test.clj index 72ebd08a0c34ac9d968e49391ce9b1d92a4e6819..b047f3650fda9cc004bdfd3c980d9b715692b80b 100644 --- a/modules/drivers/druid/test/metabase/driver/druid_test.clj +++ b/modules/drivers/druid/test/metabase/driver/druid_test.clj @@ -1,8 +1,8 @@ (ns metabase.driver.druid-test (:require [cheshire.core :as json] - [clj-time.core :as time] [clojure.test :refer :all] [expectations :refer [expect]] + [java-time :as t] [medley.core :as m] [metabase [driver :as driver] @@ -28,7 +28,7 @@ [toucan.util.test :as tt])) ;;; table-rows-sample -(defn table-rows-sample [] +(defn- table-rows-sample [] (->> (metadata-queries/table-rows-sample (Table (data/id :checkins)) [(Field (data/id :checkins :id)) (Field (data/id :checkins :venue_name)) @@ -36,34 +36,23 @@ (sort-by first) (take 5))) -(datasets/expect-with-driver :druid - ;; druid returns a timestamp along with the query, but that shouldn't really matter here :D - [["1" "The Misfit Restaurant + Bar" #inst "2014-04-07T07:00:00.000Z"] - ["10" "Dal Rae Restaurant" #inst "2015-08-22T07:00:00.000Z"] - ["100" "PizzaHacker" #inst "2014-07-26T07:00:00.000Z"] - ["1000" "Tito's Tacos" #inst "2014-06-03T07:00:00.000Z"] - ["101" "Golden Road Brewing" #inst "2015-09-04T07:00:00.000Z"]] - (table-rows-sample)) - -(datasets/expect-with-driver :druid - ;; druid returns a timestamp along with the query, but that shouldn't really matter here :D - [["1" "The Misfit Restaurant + Bar" #inst "2014-04-07T00:00:00.000-07:00"] - ["10" "Dal Rae Restaurant" #inst "2015-08-22T00:00:00.000-07:00"] - ["100" "PizzaHacker" #inst "2014-07-26T00:00:00.000-07:00"] - ["1000" "Tito's Tacos" #inst "2014-06-03T00:00:00.000-07:00"] - ["101" "Golden Road Brewing" #inst "2015-09-04T00:00:00.000-07:00"]] - (tu/with-temporary-setting-values [report-timezone "America/Los_Angeles"] - (table-rows-sample))) - -(datasets/expect-with-driver :druid - ;; druid returns a timestamp along with the query, but that shouldn't really matter here :D - [["1" "The Misfit Restaurant + Bar" #inst "2014-04-07T02:00:00.000-05:00"] - ["10" "Dal Rae Restaurant" #inst "2015-08-22T02:00:00.000-05:00"] - ["100" "PizzaHacker" #inst "2014-07-26T02:00:00.000-05:00"] - ["1000" "Tito's Tacos" #inst "2014-06-03T02:00:00.000-05:00"] - ["101" "Golden Road Brewing" #inst "2015-09-04T02:00:00.000-05:00"]] - (tu.tz/with-jvm-tz (time/time-zone-for-id "America/Chicago") - (table-rows-sample))) +(deftest table-rows-sample-test + (datasets/test-driver :druid + (testing "Druid driver doesn't need to convert results to the expected timezone for us. QP middleware can handle that." + (let [expected [["1" "The Misfit Restaurant + Bar" (t/zoned-date-time "2014-04-07T07:00:00Z[UTC]")] + ["10" "Dal Rae Restaurant" (t/zoned-date-time "2015-08-22T07:00:00Z[UTC]")] + ["100" "PizzaHacker" (t/zoned-date-time "2014-07-26T07:00:00Z[UTC]")] + ["1000" "Tito's Tacos" (t/zoned-date-time "2014-06-03T07:00:00Z[UTC]")] + ["101" "Golden Road Brewing" (t/zoned-date-time "2015-09-04T07:00:00Z[UTC]")]]] + (testing "UTC timezone" + (is (= expected + (table-rows-sample)))) + (tu/with-temporary-setting-values [report-timezone "America/Los_Angeles"] + (is (= expected + (table-rows-sample)))) + (tu.tz/with-system-timezone-id "America/Chicago" + (is (= expected + (table-rows-sample)))))))) (def ^:private ^String native-query-1 (json/generate-string @@ -89,44 +78,43 @@ (def ^:private col-defaults {:base_type :type/Text}) -;; test druid native queries -(datasets/expect-with-driver :druid - {:row_count 2 - :status :completed - :data {:rows [["2013-01-03T08:00:00.000Z" "931" "Simcha Yan" "1" "Kinaree Thai Bistro" 1] - ["2013-01-10T08:00:00.000Z" "285" "Kfir Caj" "2" "Ruen Pair Thai Restaurant" 1]] - :cols (mapv #(merge col-defaults %) - [{:name "timestamp" - :source :native - :display_name "timestamp" - :field_ref [:field-literal "timestamp" :type/Text]} - {:name "id" - :source :native - :display_name "id" - :field_ref [:field-literal "id" :type/Text]} - {:name "user_name" - :source :native - :display_name "user_name" - :field_ref [:field-literal "user_name" :type/Text]} - {:name "venue_price" - :source :native - :display_name "venue_price" - :field_ref [:field-literal "venue_price" :type/Text]} - {:name "venue_name" - :source :native - :display_name "venue_name" - :field_ref [:field-literal "venue_name" :type/Text]} - {:name "count" - :source :native - :display_name "count" - :base_type :type/Integer - :field_ref [:field-literal "count" :type/Integer]}]) - :native_form {:query native-query-1} - :requested_timezone "UTC" - :results_timezone "UTC"}} - - (-> (process-native-query native-query-1) - (m/dissoc-in [:data :insights]))) +(deftest native-query-test + (datasets/test-driver :druid + (is (= {:row_count 2 + :status :completed + :data {:rows [["2013-01-03T08:00:00Z" "931" "Simcha Yan" "1" "Kinaree Thai Bistro" 1] + ["2013-01-10T08:00:00Z" "285" "Kfir Caj" "2" "Ruen Pair Thai Restaurant" 1]] + :cols (mapv #(merge col-defaults %) + [{:name "timestamp" + :source :native + :display_name "timestamp" + :field_ref [:field-literal "timestamp" :type/DateTimeWithZoneID] + :base_type :type/DateTimeWithZoneID} + {:name "id" + :source :native + :display_name "id" + :field_ref [:field-literal "id" :type/Text]} + {:name "user_name" + :source :native + :display_name "user_name" + :field_ref [:field-literal "user_name" :type/Text]} + {:name "venue_price" + :source :native + :display_name "venue_price" + :field_ref [:field-literal "venue_price" :type/Text]} + {:name "venue_name" + :source :native + :display_name "venue_name" + :field_ref [:field-literal "venue_name" :type/Text]} + {:name "count" + :source :native + :display_name "count" + :base_type :type/Integer + :field_ref [:field-literal "count" :type/Integer]}]) + :native_form {:query native-query-1} + :results_timezone "UTC"}} + (-> (process-native-query native-query-1) + (m/dissoc-in [:data :insights])))))) ;; make sure we can run a native :timeseries query. This was throwing an Exception -- see #3409 @@ -164,7 +152,6 @@ "default will use Monday. All of the below events should happen in one week. Using Druid's default " "grouping, 3 of the events would have counted for the previous week.")))) - ;; sum, * (datasets/expect-with-driver :druid [["1" 110688.0] @@ -419,7 +406,7 @@ "venue_name" "venue_price"] :rows [["931" - "2013-01-03T08:00:00.000Z" + "2013-01-03T08:00:00Z" 1 "2014-01-01T08:30:00.000Z" "Simcha Yan" @@ -468,7 +455,30 @@ ["Bar" "Felipinho Asklepios" 10] ["Bar" "Kaneonuskatew Eiran" 10]] (druid-query-returning-rows - {:aggregation [[:aggregation-options [:count $checkins.user_name] {:name "__count_0"}]] + {:aggregation [[:aggregation-options [:count $checkins.user_name] {:name "unique_users"}]] :breakout [$venue_category_name $user_name] :order-by [[:desc [:aggregation 0]] [:asc $checkins.venue_category_name]] :limit 5})) + +(deftest sync-test + (datasets/test-driver :druid + (tqpt/with-flattened-dbdef + (testing "describe-database" + (is (= {:tables #{{:schema nil, :name "checkins"}}} + (driver/describe-database :druid (data/db))))) + (testing "describe-table" + (is (= {:schema nil + :name "checkins" + :fields + #{{:name "count", :base-type :type/Integer, :database-type "LONG"} + {:name "id", :base-type :type/Text, :database-type "STRING"} + {:name "timestamp", :base-type :type/Instant, :database-type "timestamp", :pk? true} + {:name "user_last_login", :base-type :type/Text, :database-type "STRING"} + {:name "user_name", :base-type :type/Text, :database-type "STRING"} + {:name "user_password", :base-type :type/Text, :database-type "STRING"} + {:name "venue_category_name", :base-type :type/Text, :database-type "STRING"} + {:name "venue_latitude", :base-type :type/Text, :database-type "STRING"} + {:name "venue_longitude", :base-type :type/Text, :database-type "STRING"} + {:name "venue_name", :base-type :type/Text, :database-type "STRING"} + {:name "venue_price", :base-type :type/Text, :database-type "STRING"}}} + (driver/describe-table :druid (data/db) {:name "checkins"}))))))) diff --git a/modules/drivers/druid/test/metabase/test/data/druid.clj b/modules/drivers/druid/test/metabase/test/data/druid.clj index 6817517d2265fa4000199f58adb1b0ced53f218f..87865a09113a4a239decf457adff615aec7a127b 100644 --- a/modules/drivers/druid/test/metabase/test/data/druid.clj +++ b/modules/drivers/druid/test/metabase/test/data/druid.clj @@ -70,9 +70,7 @@ :format :auto} :dimensionsSpec {:dimensions ["id" "user_last_login" - {:name "user_name" - :type "string" - :isInputHyperUnique true} + "user_name" "user_password" "venue_category_name" {:name "venue_latitude" @@ -83,7 +81,11 @@ {:name "venue_price" :type "float"}]}}} :metricsSpec [{:type :count - :name :count}] + :name :count} + {:name :unique_users + :type :hyperUnique + :field_name "user_name" + :isInputHyperUnique false}] :granularitySpec {:type :uniform :segmentGranularity :DAY :queryGranularity :NONE diff --git a/modules/drivers/google/project.clj b/modules/drivers/google/project.clj index a4e2604841cbc300e472bcc21c0c7bfffb412994..c5f91e23a4734a342475bc73fb2f224bc4f91a31 100644 --- a/modules/drivers/google/project.clj +++ b/modules/drivers/google/project.clj @@ -10,7 +10,8 @@ :profiles {:provided {:dependencies - [[metabase-core "1.0.0-SNAPSHOT"]]} + [[org.clojure/clojure "1.10.1"] + [metabase-core "1.0.0-SNAPSHOT"]]} :install-for-building-drivers {:auto-clean true diff --git a/modules/drivers/googleanalytics/project.clj b/modules/drivers/googleanalytics/project.clj index 9df8eb935aaaaec90b3757968effb910009e00b7..2125154dc3c533a181dc8860f8d62175fd26df6f 100644 --- a/modules/drivers/googleanalytics/project.clj +++ b/modules/drivers/googleanalytics/project.clj @@ -7,7 +7,8 @@ :profiles {:provided {:dependencies - [[metabase-core "1.0.0-SNAPSHOT"] + [[org.clojure/clojure "1.10.1"] + [metabase-core "1.0.0-SNAPSHOT"] [metabase/google-driver "1.0.0-SNAPSHOT-1.27.0"]]} :uberjar diff --git a/modules/drivers/googleanalytics/src/metabase/driver/googleanalytics.clj b/modules/drivers/googleanalytics/src/metabase/driver/googleanalytics.clj index 56eb046dc21d27af22975992e7ca46a1f2f6294d..d925fd2209629d8377be832d8b6727c56bb9e5fa 100644 --- a/modules/drivers/googleanalytics/src/metabase/driver/googleanalytics.clj +++ b/modules/drivers/googleanalytics/src/metabase/driver/googleanalytics.clj @@ -88,7 +88,7 @@ (google/execute (.list (.columns (.metadata client)) "ga"))) (defn- column-attribute - "Get the value of ATTRIBUTE-NAME for COLUMN." + "Get the value of `attribute-name` for `column`." [^Column column, attribute-name] (get (.getAttributes column) (name attribute-name))) @@ -194,7 +194,8 @@ (defn- add-built-in-column-metadata [query results] (update-in results [:data :cols] (partial map (partial add-col-metadata query)))) -(defmethod driver/process-query-in-context :googleanalytics [_ qp] +(defmethod driver/process-query-in-context :googleanalytics + [_ qp] (fn [query] (let [results (qp query)] (add-built-in-column-metadata query results)))) @@ -204,6 +205,7 @@ (json/parse-string query keyword) query) client (database->client database)] + ;; `end-date` is inclusive!!! (u/prog1 (.get (.ga (.data client)) (:ids query) (:start-date query) diff --git a/modules/drivers/googleanalytics/src/metabase/driver/googleanalytics/query_processor.clj b/modules/drivers/googleanalytics/src/metabase/driver/googleanalytics/query_processor.clj index b56de772e5653e6ce0293ee04c4c846095d27f0d..b200e1a1a21d39ae73d0187c83156a4abb60f24b 100644 --- a/modules/drivers/googleanalytics/src/metabase/driver/googleanalytics/query_processor.clj +++ b/modules/drivers/googleanalytics/src/metabase/driver/googleanalytics/query_processor.clj @@ -2,15 +2,26 @@ "The Query Processor is responsible for translating the Metabase Query Language into Google Analytics request format. See https://developers.google.com/analytics/devguides/reporting/core/v3" (:require [clojure.string :as str] + [clojure.tools.logging :as log] [clojure.tools.reader.edn :as edn] + [java-time :as t] [metabase.mbql.util :as mbql.u] - [metabase.query-processor.store :as qp.store] + [metabase.query-processor + [store :as qp.store] + [timezone :as qp.timezone]] [metabase.util - [date :as du] + [date-2 :as u.date] [i18n :as ui18n :refer [deferred-tru tru]] [schema :as su]] + [metabase.util.date-2 + [common :as u.date.common] + [parse :as u.date.parse]] + [metabase.util.date-2.parse.builder :as u.date.builder] [schema.core :as s]) - (:import [com.google.api.services.analytics.model GaData GaData$ColumnHeaders])) + (:import [com.google.api.services.analytics.model GaData GaData$ColumnHeaders] + java.time.DayOfWeek + java.time.format.DateTimeFormatter + org.threeten.extra.YearWeek)) (def ^:private ^:const earliest-date "2005-01-01") (def ^:private ^:const latest-date "today") @@ -26,37 +37,44 @@ "CURRENCY" :type/Float "US_CURRENCY" :type/Float}) - (defmulti ^:private ->rvalue mbql.u/dispatch-by-clause-name-or-class) (defmethod ->rvalue nil [_] nil) (defmethod ->rvalue Object [this] this) -(defmethod ->rvalue :field-id [[_ field-id]] +(defmethod ->rvalue :field-id + [[_ field-id]] (:name (qp.store/field field-id))) -(defmethod ->rvalue :field-literal [[_ field-name]] +(defmethod ->rvalue :field-literal + [[_ field-name]] field-name) -(defmethod ->rvalue :datetime-field [[_ field]] +(defmethod ->rvalue :datetime-field + [[_ field]] (->rvalue field)) -(defmethod ->rvalue :absolute-datetime [[_ timestamp unit]] - (du/format-date "yyyy-MM-dd" (du/date-trunc unit timestamp))) +;; TODO - I think these next two methods are no longer used, since `->date-range` handles these clauses +(defmethod ->rvalue :absolute-datetime + [[_ t unit]] + (t/format "yyyy-MM-dd" (u.date/truncate t unit))) -(defmethod ->rvalue :relative-datetime [[_ amount unit]] +(defmethod ->rvalue :relative-datetime + [[_ amount unit]] (cond (and (= unit :day) (= amount 0)) "today" (and (= unit :day) (= amount -1)) "yesterday" (and (= unit :day) (< amount -1)) (str (- amount) "daysAgo") - :else (du/format-date - "yyyy-MM-dd" - (du/date-trunc unit (du/relative-date unit amount))))) -(defmethod ->rvalue :value [[_ value _]] - value) + :else + (t/format + "yyyy-MM-dd" + (u.date/truncate (u.date/add unit amount) unit)))) +(defmethod ->rvalue :value + [[_ value _]] + value) (defn- char-escape-map "Generate a map of characters to escape to their escaped versions." @@ -64,8 +82,11 @@ (into {} (for [c chars-to-escape] {c (str "\\" c)}))) -(def ^:private ^{:arglists '([s])} escape-for-regex #(str/escape % (char-escape-map ".\\+*?[^]$(){}=!<>|:-"))) -(def ^:private ^{:arglists '([s])} escape-for-filter-clause #(str/escape % (char-escape-map ",;\\"))) +(defn- escape-for-regex [s] + (str/escape s (char-escape-map ".\\+*?[^]$(){}=!<>|:-"))) + +(defn- escape-for-filter-clause [s] + (str/escape s (char-escape-map ",;\\"))) (defn- ga-filter ^String [& parts] (escape-for-filter-clause (apply str parts))) @@ -98,7 +119,8 @@ :day "ga:date" :day-of-week "ga:dayOfWeek" :day-of-month "ga:day" - :week "ga:isoYearIsoWeek" + :week "ga:yearWeek" + :iso-week "ga:isoYearIsoWeek" :week-of-year "ga:week" :month "ga:yearMonth" :month-of-year "ga:month" @@ -120,45 +142,58 @@ (defmethod parse-filter nil [& _] nil) -(defmethod parse-filter :contains [[_ field value {:keys [case-sensitive], :or {case-sensitive true}}]] +(defmethod parse-filter :contains + [[_ field value {:keys [case-sensitive], :or {case-sensitive true}}]] (ga-filter (->rvalue field) "=~" (if case-sensitive "(?-i)" "(?i)") (escape-for-regex (->rvalue value)))) -(defmethod parse-filter :starts-with [[_ field value {:keys [case-sensitive], :or {case-sensitive true}}]] +(defmethod parse-filter :starts-with + [[_ field value {:keys [case-sensitive], :or {case-sensitive true}}]] (ga-filter (->rvalue field) "=~" (if case-sensitive "(?-i)" "(?i)") \^ (escape-for-regex (->rvalue value)))) -(defmethod parse-filter :ends-with [[_ field value {:keys [case-sensitive], :or {case-sensitive true}}]] +(defmethod parse-filter :ends-with + [[_ field value {:keys [case-sensitive], :or {case-sensitive true}}]] (ga-filter (->rvalue field) "=~" (if case-sensitive "(?-i)" "(?i)") (escape-for-regex (->rvalue value)) \$)) -(defmethod parse-filter := [[_ field value]] +(defmethod parse-filter := + [[_ field value]] (ga-filter (->rvalue field) "==" (->rvalue value))) -(defmethod parse-filter :!= [[_ field value]] +(defmethod parse-filter :!= + [[_ field value]] (ga-filter (->rvalue field) "!=" (->rvalue value))) -(defmethod parse-filter :> [[_ field value]] +(defmethod parse-filter :> + [[_ field value]] (ga-filter (->rvalue field) ">" (->rvalue value))) -(defmethod parse-filter :< [[_ field value]] +(defmethod parse-filter :< + [[_ field value]] (ga-filter (->rvalue field) "<" (->rvalue value))) -(defmethod parse-filter :>= [[_ field value]] +(defmethod parse-filter :>= + [[_ field value]] (ga-filter (->rvalue field) ">=" (->rvalue value))) -(defmethod parse-filter :<= [[_ field value]] +(defmethod parse-filter :<= + [[_ field value]] (ga-filter (->rvalue field) "<=" (->rvalue value))) -(defmethod parse-filter :between [[_ field min-val max-val]] +(defmethod parse-filter :between + [[_ field min-val max-val]] (str (ga-filter (->rvalue field) ">=" (->rvalue min-val)) ";" (ga-filter (->rvalue field) "<=" (->rvalue max-val)))) -(defmethod parse-filter :and [[_ & clauses]] +(defmethod parse-filter :and + [[_ & clauses]] (str/join ";" (filter some? (map parse-filter clauses)))) -(defmethod parse-filter :or [[_ & clauses]] +(defmethod parse-filter :or + [[_ & clauses]] (str/join "," (filter some? (map parse-filter clauses)))) -(defmethod parse-filter :not [[_ clause]] +(defmethod parse-filter :not + [[_ clause]] (str "!" (parse-filter clause))) (defn- handle-filter:filters [{filter-clause :filter}] @@ -177,56 +212,90 @@ ;;; ----------------------------------------------- filter (intervals) ----------------------------------------------- -(defn- date-add-days - "Add `n-days` to a datetime clause (`:absolute-datetime` or `:relative-datetime`) Done to fix off-by-one issues with - GA. See #9904" - [[clause-name time-component unit, :as datetime-clause] n-days] - (case clause-name - :absolute-datetime - [:absolute-datetime (du/relative-date :day n-days (du/date-trunc unit time-component)) unit] - - :relative-datetime - (if (= unit :day) - [clause-name (+ time-component n-days) unit] - [:absolute-datetime - (du/relative-date :day n-days (du/date-trunc unit (du/relative-date unit time-component))) :day]) +(defn- format-range [{:keys [start end]}] + (merge + (when start + {:start-date (t/format "yyyy-MM-dd" start)}) + (when end + {:end-date (t/format "yyyy-MM-dd" end)}))) + +(defmulti ^:private ->date-range + {:arglists '([unit comparison-type x])} + (fn [_ _ x] + (mbql.u/dispatch-by-clause-name-or-class x))) + +(defmethod ->date-range :default + [_ _ x] + {:start-date (->rvalue x), :end-date (->rvalue x)}) + +(defmethod ->date-range :relative-datetime + [unit comparison-type [_ n relative-datetime-unit]] + (or (when (= relative-datetime-unit :day) + ;; since GA is normally inclusive add 1 to `:<` or `:>` filters so it starts and ends on the correct date + ;; e.g [:> ... [:relative-datetime -30 :day]] -> {:start-date "29daysago)} + ;; (include events whose day is > 30 days ago, i.e., >= 29 days ago) + (let [n (case comparison-type + (:< :>) (inc n) + n)] + (when-not (pos? n) + (let [special-amount (cond + (zero? n) "today" + (= n -1) "yesterday" + (neg? n) (format "%ddaysAgo" (- n)))] + (case comparison-type + (:< :<=) {:end-date special-amount} + (:> :>=) {:start-date special-amount} + := {:start-date special-amount, :end-date special-amount} + nil))))) + (let [now (qp.timezone/now :googleanalytics nil :use-report-timezone-id-if-unsupported? true) + t (u.date/add now relative-datetime-unit n)] + (format-range (u.date/comparison-range t unit comparison-type {:end :inclusive, :resolution :day}))))) + +(defmethod ->date-range :absolute-datetime + [unit comparison-type [_ t]] + (format-range (u.date/comparison-range t unit comparison-type {:end :inclusive, :resolution :day}))) + +(defn- field->unit [field] + (or (mbql.u/match-one field + [:datetime-field _ unit] unit) + :day)) + +(defmulti ^:private parse-filter:interval + {:arglists '([filter-clause])} + mbql.u/dispatch-by-clause-name-or-class) - datetime-clause)) - -(defn- date-sub-day [datetime-clause] - (date-add-days datetime-clause -1)) +(defmethod parse-filter:interval :default [_] nil) -(defn- date-add-day [datetime-clause] - (date-add-days datetime-clause 1)) +(defmethod parse-filter:interval :> + [[_ field x]] + (select-keys (->date-range (field->unit field) :> x) [:start-date])) +(defmethod parse-filter:interval :< + [[_ field x]] + (select-keys (->date-range (field->unit field) :< x) [:end-date])) -(defmulti ^:private parse-filter:interval mbql.u/dispatch-by-clause-name-or-class) +(defmethod parse-filter:interval :>= + [[_ field x]] + (select-keys (->date-range (field->unit field) :>= x) [:start-date])) -(defmethod parse-filter:interval :default [_] nil) +(defmethod parse-filter:interval :<= + [[_ field x]] + (select-keys (->date-range (field->unit field) :<= x) [:end-date])) -(defmethod parse-filter:interval :between [[_ field min-val max-val]] - {:start-date (->rvalue min-val), :end-date (->rvalue max-val)}) +(defmethod parse-filter:interval := + [[_ field x]] + (->date-range (field->unit field) := x)) -(defmethod parse-filter:interval :> [[_ field value]] - {:start-date (->rvalue (date-add-day value))}) -(defmethod parse-filter:interval :< [[_ field value]] - {:end-date (->rvalue (date-sub-day value))}) +;; MBQL :between is INCLUSIVE just like SQL !!! +(defmethod parse-filter:interval :between + [[_ field min-val max-val]] + (merge + (parse-filter:interval [:>= field min-val]) + (parse-filter:interval [:<= field max-val]))) -(defmethod parse-filter:interval :>= [[_ field value]] - {:start-date (->rvalue value)}) -(defmethod parse-filter:interval :<= [[_ field value]] - {:end-date (->rvalue value)}) - -(defmethod parse-filter:interval := [[_ field value]] - {:start-date (->rvalue value) - :end-date (->rvalue - (cond-> value - ;; for relative datetimes, inc the end date so we'll get a proper date range once everything is - ;; bucketed - (mbql.u/is-clause? :relative-datetime value) - (mbql.u/add-datetime-units 1)))}) +;;; Compound filters (defn- maybe-get-only-filter-or-throw [filters] (when-let [filters (seq (filter some? filters))] @@ -239,16 +308,19 @@ (fn [_ _] (throw (Exception. (str (deferred-tru "Multiple date filters are not supported in filters: ") filter1 filter2)))) filter1 filter2)) -(defmethod parse-filter:interval :and [[_ & subclauses]] +(defmethod parse-filter:interval :and + [[_ & subclauses]] (let [filters (map parse-filter:interval subclauses)] (if (= (count filters) 2) (try-reduce-filters filters) (maybe-get-only-filter-or-throw filters)))) -(defmethod parse-filter:interval :or [[_ & subclauses]] +(defmethod parse-filter:interval :or + [[_ & subclauses]] (maybe-get-only-filter-or-throw (map parse-filter:interval subclauses))) -(defmethod parse-filter:interval :not [[& _]] +(defmethod parse-filter:interval :not + [[& _]] (throw (Exception. (tru ":not is not yet implemented")))) (defn- remove-non-datetime-filter-clauses @@ -269,7 +341,6 @@ "Replace all unsupported datetime units with the default" [filter-clause] (mbql.u/replace filter-clause - [:datetime-field field unit] [:datetime-field field (normalize-unit unit)] [:absolute-datetime timestamp unit] [:absolute-datetime timestamp (normalize-unit unit)] [:relative-datetime amount unit] [:relative-datetime amount (normalize-unit unit)])) @@ -349,18 +420,41 @@ (defn- parse-number [s] (edn/read-string (str/replace s #"^0+(.+)$" "$1"))) +(def ^:private ^DateTimeFormatter iso-year-week-formatter + (u.date.builder/formatter + (u.date.builder/value :iso/week-based-year 4) + (u.date.builder/value :iso/week-of-week-based-year 2))) + +(defn- parse-iso-year-week [^String s] + (when s + (-> (YearWeek/from (.parse iso-year-week-formatter s)) + (.atDay DayOfWeek/MONDAY)))) + +(def ^:private ^DateTimeFormatter year-week + (u.date.builder/formatter + (u.date.builder/value :week-fields/week-based-year 4) + (u.date.builder/value :week-fields/week-of-week-based-year 2))) + +(defn- parse-year-week [^String s] + (when s + (let [parsed (.parse year-week s) + year (.getLong parsed (u.date.common/temporal-field :week-fields/week-based-year)) + week (.getLong parsed (u.date.common/temporal-field :week-fields/week-of-week-based-year))] + (t/adjust (t/local-date year 1 1) (u.date/adjuster :week-of-year week))))) + (def ^:private ga-dimension->date-format-fn - {"ga:minute" parse-number - "ga:dateHour" (partial du/parse-date "yyyyMMddHH") - "ga:hour" parse-number - "ga:date" (partial du/parse-date "yyyyMMdd") - "ga:dayOfWeek" (comp inc parse-number) + {"ga:date" "yyyyMMdd" + "ga:dateHour" "yyyyMMddHH" "ga:day" parse-number - "ga:isoYearIsoWeek" (partial du/parse-date "xxxxww") - "ga:week" parse-number - "ga:yearMonth" (partial du/parse-date "yyyyMM") + "ga:dayOfWeek" (comp inc parse-number) + "ga:hour" parse-number + "ga:isoYearIsoWeek" parse-iso-year-week + "ga:minute" parse-number "ga:month" parse-number - "ga:year" parse-number}) + "ga:week" parse-number + "ga:year" parse-number + "ga:yearMonth" "yyyyMM" + "ga:yearWeek" parse-year-week}) (defn- header->column [^GaData$ColumnHeaders header] (let [date-parser (ga-dimension->date-format-fn (.getName header))] @@ -372,11 +466,15 @@ (defn- header->getter-fn [^GaData$ColumnHeaders header] (let [date-parser (ga-dimension->date-format-fn (.getName header)) - base-type (ga-type->base-type (.getDataType header))] - (cond - date-parser date-parser - (isa? base-type :type/Number) edn/read-string - :else identity))) + base-type (ga-type->base-type (.getDataType header)) + parser (cond + date-parser date-parser + (isa? base-type :type/Number) edn/read-string + :else identity)] + (log/tracef "Parsing result column %s with %s" (.getName header) (pr-str parser)) + (if (string? parser) + (partial u.date.parse/parse-with-formatter parser) + parser))) (defn execute-query "Execute a `query` using the provided `do-query` function, and return the results in the usual format." diff --git a/modules/drivers/googleanalytics/test/metabase/driver/googleanalytics/query_processor_test.clj b/modules/drivers/googleanalytics/test/metabase/driver/googleanalytics/query_processor_test.clj index 1f7a55274079c7d0c1e372bbe66fed1a647c88eb..aeef64be35a5712e14f13a399ed891cdd7cbd5d8 100644 --- a/modules/drivers/googleanalytics/test/metabase/driver/googleanalytics/query_processor_test.clj +++ b/modules/drivers/googleanalytics/test/metabase/driver/googleanalytics/query_processor_test.clj @@ -1,27 +1,94 @@ (ns metabase.driver.googleanalytics.query-processor-test - (:require [expectations :refer [expect]] - [metabase.driver.googleanalytics.query-processor :as ga.qp])) + (:require [clojure.test :refer :all] + [java-time :as t] + [metabase.driver.googleanalytics.query-processor :as ga.qp] + [metabase.test :as mt])) -(expect - "ga::WOW" - (#'ga.qp/built-in-segment {:filter [:segment "ga::WOW"]})) +(deftest built-in-segment-test + (is (= "ga::WOW" + (#'ga.qp/built-in-segment {:filter [:segment "ga::WOW"]}))) + (testing "should work recursively" + (is (= "gaid::A" + (#'ga.qp/built-in-segment {:filter [:and [:= [:field-id 1] 2] [:segment "gaid::A"]]})))) + (testing "should throw Exception if more than one segment is matched" + (is (thrown? Exception + (#'ga.qp/built-in-segment {:filter [:and [:segment "gaid::A"] [:segment "ga::B"]]})))) + (testing "should ignore Metabase segments" + (is (= "ga::B" + (#'ga.qp/built-in-segment {:filter [:and [:segment 100] [:segment "ga::B"]]}))))) -;; should work recursively -(expect - "gaid::A" - (#'ga.qp/built-in-segment {:filter [:and [:= [:field-id 1] 2] [:segment "gaid::A"]]})) +(deftest parse-year-week-test + (testing "Make sure we properly parse isoYearIsoWeeks (#9244)" + (let [f (#'ga.qp/ga-dimension->date-format-fn "ga:isoYearIsoWeek")] + (is (= #t "2018-12-31" + (f "201901"))) + (is (= #t "2019-12-09" + (f "201950"))))) + (testing "Make sure we properly parse (non-ISO) yearWeeks" + (let [f (#'ga.qp/ga-dimension->date-format-fn "ga:yearWeek")] + (is (= #t "2018-12-30" + (f "201901"))) + (is (= #t "2019-12-08" + (f "201950")))))) -;; should throw Exception if more than one segment is matched -(expect - Exception - (#'ga.qp/built-in-segment {:filter [:and [:segment "gaid::A"] [:segment "ga::B"]]})) - -;; should ignore Metabase segments -(expect - "ga::B" - (#'ga.qp/built-in-segment {:filter [:and [:segment 100] [:segment "ga::B"]]})) - -;; Make sure we properly parse isoYearIsoWeeks (#9244) -(expect - #inst "2018-12-31T00:00:00.000000000-00:00" - ((#'ga.qp/ga-dimension->date-format-fn "ga:isoYearIsoWeek") "201901")) +(deftest filter-test + (mt/with-report-timezone-id nil + (testing "\nabsolute datetimes" + (doseq [[filter-type expected] {:= {:start-date "2019-11-18", :end-date "2019-11-18"} + :< {:end-date "2019-11-17"} + :<= {:end-date "2019-11-18"} + :> {:start-date "2019-11-19"} + :>= {:start-date "2019-11-18"}}] + (let [filter-clause [filter-type [:datetime-field 'field :day] [:absolute-datetime (t/local-date "2019-11-18") :day]]] + (testing filter-clause + (is (= expected + (#'ga.qp/parse-filter:interval filter-clause))))))) + (testing "\nrelative datetimes" + (mt/with-database-timezone-id "UTC" + (mt/with-clock (t/mock-clock (t/instant "2019-11-18T22:31:00Z") (t/zone-id "UTC")) + (doseq [[filter-type {:keys [expected message]}] + {:= {:message "`=` filter — Month is 4 months ago, i.e. July 2019" + :expected {:start-date "2019-07-01", :end-date "2019-07-31"}} + :< {:message "`<` filter — month is less than 4 months ago, i.e. before July 2019" + :expected {:end-date "2019-06-30"}} + :<= {:message "`<=` filter — month is less than or equal to 4 months ago, i.e. before August 2019" + :expected {:end-date "2019-07-31"}} + :> {:message "`>` filter — month is greater than 4 months ago, i.e. after July 2019" + :expected {:start-date "2019-08-01"}} + :>= {:message "`>=` filter — month is greater than or equal to 4 months ago, i.e. after June 2019" + :expected {:start-date "2019-07-01"}}}] + (testing (str "\n" message) + (let [filter-clause [filter-type [:datetime-field 'field :month] [:relative-datetime -4 :month]]] + (testing filter-clause + (is (= expected + (#'ga.qp/parse-filter:interval filter-clause))))))) + (testing "\ndatetime-field bucketing unit != relative-datetime bucketing unit" + (testing "Day == 4 months ago, i.e. July 18th" + (let [filter-clause [:= [:datetime-field 'field :day] [:relative-datetime -4 :month]]] + (testing filter-clause + (is (= {:start-date "2019-07-18", :end-date "2019-07-18"} + (#'ga.qp/parse-filter:interval filter-clause))))))) + (testing "\n:between filter" + (is (= {:start-date "2019-07-01", :end-date "2019-10-31"} + (#'ga.qp/parse-filter:interval [:between + [:datetime-field 'field :month] + [:relative-datetime -4 :month] + [:relative-datetime -1 :month]])) + ":between is inclusive!!!!"))) + (testing "\nthis week should be based on the report timezone — see #9467" + (testing "\nSanity check - with UTC timezone, current week *should* be different when going from 11 PM Sat -> 1 AM Sun" + (is (not= (mt/with-clock (t/mock-clock (t/instant "2019-11-30T23:00:00Z") (t/zone-id "UTC")) + (#'ga.qp/parse-filter:interval [:= [:datetime-field 'field :week] [:relative-datetime 0 :week]])) + (mt/with-clock (t/mock-clock (t/instant "2019-12-01T01:00:00Z") (t/zone-id "UTC")) + (#'ga.qp/parse-filter:interval [:= [:datetime-field 'field :week] [:relative-datetime 0 :week]]))))) + (testing (str "\nthis week at Saturday 6PM local time (Saturday 11PM UTC) should be the same as this week " + "Saturday 8PM local time (Sunday 1 AM UTC)") + (mt/with-report-timezone-id "US/Eastern" + (doseq [system-timezone ["US/Eastern" "UTC"]] + (testing "\nGoogle Analytics should prefer report timezone (if set) to system timezone" + (testing (format "\nSystem timezone = %s" system-timezone) + (is (= {:start-date "2019-11-24", :end-date "2019-11-30"} + (mt/with-clock (t/mock-clock (t/instant "2019-11-30T23:00:00Z") (t/zone-id system-timezone)) + (#'ga.qp/parse-filter:interval [:= [:datetime-field 'field :week] [:relative-datetime 0 :week]])) + (mt/with-clock (t/mock-clock (t/instant "2019-12-01T01:00:00Z") (t/zone-id system-timezone)) + (#'ga.qp/parse-filter:interval [:= [:datetime-field 'field :week] [:relative-datetime 0 :week]])))))))))))))) diff --git a/modules/drivers/googleanalytics/test/metabase/driver/googleanalytics_test.clj b/modules/drivers/googleanalytics/test/metabase/driver/googleanalytics_test.clj index 8249f0217ba54bc7912c8b87609cc6d4b18e1235..218b88a8b4e5ef5054cb0831430b0ed5eafb53f5 100644 --- a/modules/drivers/googleanalytics/test/metabase/driver/googleanalytics_test.clj +++ b/modules/drivers/googleanalytics/test/metabase/driver/googleanalytics_test.clj @@ -1,26 +1,26 @@ (ns metabase.driver.googleanalytics-test "Tests for the Google Analytics driver and query processor." - (:require [expectations :refer [expect]] + (:require [clojure.test :refer :all] + [java-time :as t] [medley.core :as m] [metabase + [models :refer [Card Database Field Table]] [query-processor :as qp] + [test :as mt] [util :as u]] [metabase.driver.googleanalytics :as ga] [metabase.driver.googleanalytics.query-processor :as ga.qp] - [metabase.models - [card :refer [Card]] - [database :refer [Database]] - [field :refer [Field]] - [table :refer [Table]]] [metabase.query-processor.store :as qp.store] - [metabase.test.data.users :as users] [metabase.test [data :as data] + [fixtures :as fixtures] [util :as tu]] - [metabase.util.date :as du] + [metabase.test.data.users :as users] [toucan.db :as db] [toucan.util.test :as tt])) +(use-fixtures :once (fixtures/initialize :db)) + ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | MBQL->NATIVE (QUERY -> GA QUERY) | ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -41,146 +41,129 @@ :id 1}}})] (ga.qp/mbql->native (update query :query (partial merge {:source-table 1}))))) -;; just check that a basic almost-empty MBQL query can be compiled -(expect - (ga-query {}) - (mbql->native {})) - - -;; try a basic query with a metric (aggregation) -(expect - (ga-query {:metrics "ga:users"}) - (mbql->native {:query {:aggregation [[:metric "ga:users"]]}})) - - -;; query with metric (aggregation) + breakout -(expect - (ga-query {:metrics "ga:users" - :dimensions "ga:browser"}) - (mbql->native {:query {:aggregation [[:metric "ga:users"]] - :breakout [[:field-literal "ga:browser"]]}})) +(deftest basic-compilation-test + (testing "just check that a basic almost-empty MBQL query can be compiled" + (is (= (ga-query {}) + (mbql->native {})))) + (testing "try a basic query with a metric (aggregation)" + (is (= (ga-query {:metrics "ga:users"}) + (mbql->native {:query {:aggregation [[:metric "ga:users"]]}})))) + (testing "query with metric (aggregation) + breakout" + (is (= (ga-query {:metrics "ga:users" + :dimensions "ga:browser"}) + (mbql->native {:query {:aggregation [[:metric "ga:users"]] + :breakout [[:field-literal "ga:browser"]]}})))) + (testing "query w/ segment (filter)" + (is (= (ga-query {:segment "gaid::-4"}) + (mbql->native {:query {:filter [:segment "gaid::-4"]}})))) + (testing "query w/ non-segment filter" + (is (= (ga-query {:filters "ga:continent==North America"}) + (mbql->native {:query {:filter [:= [:field-literal "ga:continent"] [:value "North America"]]}})))) + (testing "query w/ segment & non-segment filter" + (is (= (ga-query {:filters "ga:continent==North America" + :segment "gaid::-4"}) + (mbql->native {:query {:filter [:and + [:segment "gaid::-4"] + [:= [:field-literal "ga:continent"] [:value "North America"]]]}}))))) - -;; query w/ segment (filter) -(expect - (ga-query {:segment "gaid::-4"}) - (mbql->native {:query {:filter [:segment "gaid::-4"]}})) - - -;; query w/ non-segment filter -(expect - (ga-query {:filters "ga:continent==North America"}) - (mbql->native {:query {:filter [:= [:field-literal "ga:continent"] [:value "North America"]]}})) - -;; query w/ segment & non-segment filter -(expect - (ga-query {:filters "ga:continent==North America" - :segment "gaid::-4"}) - (mbql->native {:query {:filter [:and - [:segment "gaid::-4"] - [:= [:field-literal "ga:continent"] [:value "North America"]]]}})) - -;; query w/ date filter (defn- ga-date-field [unit] [:datetime-field [:field-literal "ga:date"] unit]) -;; absolute date -(expect - (ga-query {:start-date "2016-11-08", :end-date "2016-11-08"}) - (mbql->native {:query {:filter [:= (ga-date-field :day) [:absolute-datetime #inst "2016-11-08" :day]]}})) - -;; tests off by one day correction for gt/lt operators (GA doesn't support exclusive ranges) -(expect - (ga-query {:start-date "2016-11-09", :end-date "today"}) - (mbql->native {:query {:filter [:> (ga-date-field :day) [:absolute-datetime #inst "2016-11-08" :day]]}})) - -(expect - (ga-query {:start-date "2005-01-01", :end-date "2016-10-01"}) - (mbql->native {:query {:filter [:< (ga-date-field :day) [:absolute-datetime #inst "2016-10-02" :day]]}})) - -(expect - (ga-query {:start-date "2005-01-01", :end-date "2016-10-02"}) - (mbql->native {:query {:filter [:<= (ga-date-field :day) [:absolute-datetime #inst "2016-10-02" :day]]}})) - -(expect - (ga-query {:start-date "2016-09-10", :end-date "2016-10-01"}) - (mbql->native {:query {:filter [:and - [:< (ga-date-field :day) [:absolute-datetime #inst "2016-10-02" :day]] - [:> (ga-date-field :day) [:absolute-datetime #inst "2016-09-09" :day]]]}})) - -(expect - (ga-query {:start-date "2016-09-10", :end-date "2016-10-02"}) - (mbql->native {:query {:filter [:and - [:<= (ga-date-field :day) [:absolute-datetime #inst "2016-10-02" :day]] - [:> (ga-date-field :day) [:absolute-datetime #inst "2016-09-09" :day]]]}})) - -;; relative date -- last month -(expect - (ga-query {:start-date (du/format-date "yyyy-MM-01" (du/relative-date :month -1)) - :end-date (du/format-date "yyyy-MM-01")}) - (mbql->native {:query {:filter [:= (ga-date-field :month) [:relative-datetime -1 :month]]}})) - -;; relative date -- this month -(expect - (ga-query {:start-date (du/format-date "yyyy-MM-01") - :end-date (du/format-date "yyyy-MM-01" (du/relative-date :month 1))}) - (mbql->native {:query {:filter [:= (ga-date-field :month) [:relative-datetime 0 :month]]}})) - -;; relative date -- next month -(expect - (ga-query {:start-date (du/format-date "yyyy-MM-01" (du/relative-date :month 1)) - :end-date (du/format-date "yyyy-MM-01" (du/relative-date :month 2))}) - (mbql->native {:query {:filter [:= (ga-date-field :month) [:relative-datetime 1 :month]]}})) - -;; relative date -- 2 months from now -(expect - (ga-query {:start-date (du/format-date "yyyy-MM-01" (du/relative-date :month 2)) - :end-date (du/format-date "yyyy-MM-01" (du/relative-date :month 3))}) - (mbql->native {:query {:filter [:= (ga-date-field :month) [:relative-datetime 2 :month]]}})) - -;; relative date -- last year -(expect - (ga-query {:start-date (du/format-date "yyyy-01-01" (du/relative-date :year -1)) - :end-date (du/format-date "yyyy-01-01")}) - (mbql->native {:query {:filter [:= (ga-date-field :year) [:relative-datetime -1 :year]]}})) - -;; a range starting from 30 days ago excluding that first day until today -(expect - (ga-query {:start-date "29daysAgo" - :end-date "today"}) - (mbql->native {:query {:filter [:> (ga-date-field :day) [:relative-datetime -30 :day]]}})) - -(expect - (ga-query {:start-date "30daysAgo" - :end-date "today"}) - (mbql->native {:query {:filter [:>= (ga-date-field :day) [:relative-datetime -30 :day]]}})) - -;; last year excluding the first day of the range -(expect - (ga-query {:start-date (du/format-date "yyyy-MM-dd" (du/relative-date :day 1 (du/date-trunc :year (du/relative-date :year -1)))) - :end-date "today"}) - (mbql->native {:query {:filter [:> (ga-date-field :year) [:relative-datetime -1 :year]]}})) - -;; limit -(expect - (ga-query {:max-results 25}) - (mbql->native {:query {:limit 25}})) +(deftest filter-by-absolute-datetime-test + (is (= (ga-query {:start-date "2016-11-08", :end-date "2016-11-08"}) + (mbql->native {:query {:filter [:= (ga-date-field :day) [:absolute-datetime (t/local-date "2016-11-08") :day]]}}))) + (testing "tests off by one day correction for gt/lt operators (GA doesn't support exclusive ranges)" + (is (= (ga-query {:start-date "2016-11-09", :end-date "today"}) + (mbql->native {:query {:filter [:> (ga-date-field :day) [:absolute-datetime (t/local-date "2016-11-08") :day]]}}))) + (is (= (ga-query {:start-date "2005-01-01", :end-date "2016-10-01"}) + (mbql->native {:query {:filter [:< (ga-date-field :day) [:absolute-datetime (t/local-date "2016-10-02") :day]]}}))) + (is (= (ga-query {:start-date "2005-01-01", :end-date "2016-10-02"}) + (mbql->native {:query {:filter [:<= (ga-date-field :day) [:absolute-datetime (t/local-date "2016-10-02") :day]]}}))) + (is (= (ga-query {:start-date "2016-09-10", :end-date "2016-10-01"}) + (mbql->native {:query {:filter [:and + [:< (ga-date-field :day) [:absolute-datetime (t/local-date "2016-10-02") :day]] + [:> (ga-date-field :day) [:absolute-datetime (t/local-date "2016-09-09") :day]]]}}))) + (is (= (ga-query {:start-date "2016-09-10", :end-date "2016-10-02"}) + (mbql->native {:query {:filter [:and + [:<= (ga-date-field :day) [:absolute-datetime (t/local-date "2016-10-02") :day]] + [:> (ga-date-field :day) [:absolute-datetime (t/local-date "2016-09-09") :day]]]}}))))) + +(deftest filter-by-relative-date-test + (mt/with-database-timezone-id nil + (testing "\nsystem timezone should not affect the queries that get generated" + (doseq [system-timezone-id ["UTC" "US/Pacific"]] + (mt/with-system-timezone-id system-timezone-id + (mt/with-clock (t/mock-clock (t/instant (t/zoned-date-time + (t/local-date "2019-11-18") + (t/local-time 0) + (t/zone-id system-timezone-id))) + (t/zone-id system-timezone-id)) + (testing "last month" + (is (= (ga-query {:start-date "2019-10-01" + :end-date "2019-10-31"}) + (mbql->native {:query {:filter [:= (ga-date-field :month) [:relative-datetime -1 :month]]}})))) + (testing "this month" + (is (= (ga-query {:start-date "2019-11-01" + :end-date "2019-11-30"}) + (mbql->native {:query {:filter [:= (ga-date-field :month) [:relative-datetime 0 :month]]}})))) + (testing "next month" + (is (= (ga-query {:start-date "2019-12-01" + :end-date "2019-12-31"}) + (mbql->native {:query {:filter [:= (ga-date-field :month) [:relative-datetime 1 :month]]}})))) + (testing "month is 2 months from current month" + (is (= (ga-query {:start-date "2020-01-01" + :end-date "2020-01-31"}) + (mbql->native {:query {:filter [:= (ga-date-field :month) [:relative-datetime 2 :month]]}})))) + (testing "last year" + (is (= (ga-query {:start-date "2018-01-01" + :end-date "2018-12-31"}) + (mbql->native {:query {:filter [:= (ga-date-field :year) [:relative-datetime -1 :year]]}})))) + (testing "day is > yesterday (start-date should be today)" + (is (= (ga-query {:start-date "today", :end-date "today"}) + (mbql->native {:query {:filter [:> (ga-date-field :day) [:relative-datetime -1 :day]]}})))) + (testing "day is > 30 days ago (start-date should be 29 days ago)" + (is (= (ga-query {:start-date "29daysAgo" + :end-date "today"}) + (mbql->native {:query {:filter [:> (ga-date-field :day) [:relative-datetime -30 :day]]}})))) + (testing "day is >= 30 days ago (start-date should be 30 days ago)" + (is (= (ga-query {:start-date "30daysAgo" + :end-date "today"}) + (mbql->native {:query {:filter [:>= (ga-date-field :day) [:relative-datetime -30 :day]]}})))) + (testing "day is within last year" + (is (= (ga-query {:start-date "2018-11-19" + :end-date "today"}) + (mbql->native {:query {:filter [:> (ga-date-field :day) [:relative-datetime -1 :year]]}})))) + (testing "year > last year" + (is (= (ga-query {:start-date "2019-01-01" + :end-date "today"}) + (mbql->native {:query {:filter [:> (ga-date-field :year) [:relative-datetime -1 :year]]}})))) + (testing "month is between 4 months ago and 1 month ago (:between is inclusive) (i.e., July, August, September, or Octover)" + (is (= (ga-query {:start-date "2019-07-01", :end-date "2019-10-31"}) + (mbql->native + {:query {:filter [:between + (ga-date-field :month) + [:relative-datetime -4 :month] + [:relative-datetime -1 :month]]}})))))))))) + +(deftest limit-test + (is (= (ga-query {:max-results 25}) + (mbql->native {:query {:limit 25}})))) ;;; ----------------------------------------------- (Almost) E2E tests ----------------------------------------------- -(defn- do-with-some-fields [f] - (tt/with-temp* [Database [db {:engine :googleanalytics}] +(defn- do-with-some-fields [thunk] + (tt/with-temp* [Database [db {:engine "googleanalytics"}] Table [table {:name "98765432", :db_id (u/get-id db)}] Field [event-action-field {:name "ga:eventAction", :base_type "type/Text", :table_id (u/get-id table)}] Field [event-label-field {:name "ga:eventLabel", :base_type "type/Text", :table_id (u/get-id table)}] Field [date-field {:name "ga:date", :base_type "type/Date", :table_id (u/get-id table)}]] (data/with-db db - (f {:db db - :table table - :event-action-field event-action-field - :event-label-field event-label-field - :date-field date-field})))) + (thunk {:db db + :table table + :event-action-field event-action-field + :event-label-field event-label-field + :date-field date-field})))) ;; let's try a real-life GA query and see how it looks when it's all put together. This one has already been ;; preprocessed, so we're just checking it gets converted to the correct native query @@ -229,15 +212,23 @@ :order-by [[:asc [:field-id (u/get-id event-label-field)]]]}}) -(expect - expected-ga-query - (do-with-some-fields - (fn [{:keys [db table event-action-field event-label-field date-field], :as objects}] - (qp.store/with-store - (qp.store/fetch-and-store-database! (u/get-id db)) - (qp.store/fetch-and-store-tables! [(u/get-id table)]) - (qp.store/fetch-and-store-fields! (map u/get-id [event-action-field event-label-field date-field])) - (ga.qp/mbql->native (preprocessed-query-with-some-fields objects)))))) +(deftest almost-e2e-test-1 + ;; system timezone ID shouldn't affect generated query + (doseq [system-timezone-id ["UTC" "US/Pacific"]] + (mt/with-system-timezone-id system-timezone-id + (mt/with-clock (t/mock-clock (t/instant (t/zoned-date-time + (t/local-date "2019-11-18") + (t/local-time 0) + (t/zone-id system-timezone-id))) + (t/zone-id system-timezone-id)) + (is (= expected-ga-query + (do-with-some-fields + (fn [{:keys [db table event-action-field event-label-field date-field], :as objects}] + (qp.store/with-store + (qp.store/fetch-and-store-database! (u/get-id db)) + (qp.store/fetch-and-store-tables! [(u/get-id table)]) + (qp.store/fetch-and-store-fields! (map u/get-id [event-action-field event-label-field date-field])) + (ga.qp/mbql->native (preprocessed-query-with-some-fields objects))))))))))) ;; this was the above query before it was preprocessed. Make sure we actually handle everything correctly end-to-end ;; for the entire preprocessing process @@ -253,86 +244,128 @@ [:!= [:field-id (u/get-id event-label-field)] "(not set)" "url"]] :breakout [[:field-id (u/get-id event-label-field)]]}}) -(expect - expected-ga-query - (do-with-some-fields - (comp qp/query->native query-with-some-fields))) +(deftest almost-e2e-test-2 + (doseq [system-timezone-id ["UTC" "US/Pacific"]] + (mt/with-system-timezone-id system-timezone-id + (mt/with-clock (t/mock-clock (t/instant (t/zoned-date-time + (t/local-date "2019-11-18") + (t/local-time 0) + (t/zone-id system-timezone-id))) + (t/zone-id system-timezone-id)) + (is (= expected-ga-query + (do-with-some-fields + (comp qp/query->native query-with-some-fields)))))))) ;; ok, now do the same query again, but run the entire QP pipeline, swapping out a few things so nothing is actually ;; run externally. ;; TODO - Saw random test failure -(expect - {:row_count 1 - :status :completed - :data {:rows [["Toucan Sighting" 1000]] - :native_form expected-ga-query - :cols [{:description "This is ga:eventLabel" - :special_type nil - :name "ga:eventLabel" - :settings nil - :source :breakout - :parent_id nil - :visibility_type :normal - :display_name "ga:eventLabel" - :fingerprint nil - :base_type :type/Text} - {:name "metric" - :display_name "metric" - :source :aggregation - :description "This is metric" - :base_type :type/Text}] - :requested_timezone "UTC" - :results_timezone "UTC"}} - (with-redefs [ga/memoized-column-metadata (fn [_ column-name] - {:display_name column-name - :description (str "This is " column-name) - :base_type :type/Text})] - (do-with-some-fields - (fn [objects] - (let [results {:columns [:ga:eventLabel :ga:totalEvents] - :cols [{}, {:base_type :type/Text}] - :rows [["Toucan Sighting" 1000]]} - qp (#'metabase.query-processor/build-pipeline (constantly results)) - query (query-with-some-fields objects)] - (-> (tu/doall-recursive (qp query)) - (update-in [:data :cols] #(for [col %] - (dissoc col :table_id :id :field_ref))) - (m/dissoc-in [:data :results_metadata]) - (m/dissoc-in [:data :insights]))))))) +(deftest almost-e2e-test-3 + ;; system timezone ID shouldn't affect generated query + (doseq [system-timezone-id ["UTC" "US/Pacific"]] + (mt/with-system-timezone-id system-timezone-id + (mt/with-clock (t/mock-clock (t/instant (t/zoned-date-time + (t/local-date "2019-11-18") + (t/local-time 0) + (t/zone-id system-timezone-id))) + (t/zone-id system-timezone-id)) + (with-redefs [ga/memoized-column-metadata (fn [_ column-name] + {:display_name column-name + :description (str "This is " column-name) + :base_type :type/Text})] + (is (= {:row_count 1 + :status :completed + :data {:rows [["Toucan Sighting" 1000]] + :native_form expected-ga-query + :cols [{:description "This is ga:eventLabel" + :special_type nil + :name "ga:eventLabel" + :settings nil + :source :breakout + :parent_id nil + :visibility_type :normal + :display_name "ga:eventLabel" + :fingerprint nil + :base_type :type/Text} + {:name "metric" + :display_name "metric" + :source :aggregation + :description "This is metric" + :base_type :type/Text}] + :results_timezone system-timezone-id}} + (do-with-some-fields + (fn [objects] + (let [results {:columns [:ga:eventLabel :ga:totalEvents] + :cols [{}, {:base_type :type/Text}] + :rows [["Toucan Sighting" 1000]]} + qp (#'metabase.query-processor/build-pipeline (constantly results)) + query (query-with-some-fields objects)] + (-> (tu/doall-recursive (qp query)) + (update-in [:data :cols] #(for [col %] + (dissoc col :table_id :id :field_ref))) + (m/dissoc-in [:data :results_metadata]) + (m/dissoc-in [:data :insights])))))))))))) + +(deftest almost-e2e-time-interval-test + (testing "Make sure filtering by the previous 4 months actually filters against the right months (#10701)" + (doseq [system-timezone-id ["UTC" "US/Pacific"]] + (mt/with-system-timezone-id system-timezone-id + (mt/with-clock (t/mock-clock (t/instant (t/zoned-date-time + (t/local-date "2019-11-18") + (t/local-time 0) + (t/zone-id system-timezone-id))) + (t/zone-id system-timezone-id)) + (do-with-some-fields + (fn [{:keys [db table date-field]}] + (is (= {:metrics "ga:users" + :dimensions "ga:date" + :start-date "2019-07-01" + :end-date "2019-10-31" + :sort "ga:date"} + (-> {:query {:source-table (:id table) + :filter [:time-interval [:field-id (:id date-field)] -4 :month] + :aggregation [[:metric "ga:users"]] + :breakout [[:datetime-field [:field-id (:id date-field)] :day]]} + :type :query + :database (:id db)} + qp/query->native + :query + (select-keys [:start-date :end-date :dimensions :metrics :sort]))) + "Last 4 months should includy July, August, September, and October (July 1st - October 31st)")))))))) ;;; ------------------------------------------------ Saving GA Cards ------------------------------------------------- ;; Can we *save* a GA query that has two aggregations? -(expect - 1 +(deftest save-ga-query-test (tt/with-temp* [Database [db {:engine :googleanalytics}] Table [table {:db_id (u/get-id db)}] Field [field {:table_id (u/get-id table)}]] - (->> ((users/user->client :crowberto) :post 200 "card" - {:name "Metabase Websites, Sessions and 1 Day Active Users, Grouped by Date (day)" - :display :table - :visualization_settings {} - :dataset_query {:database (u/get-id db) - :type :query - :query {:source-table (u/get-id table) - :aggregation [[:METRIC "ga:sessions"] - [:METRIC "ga:1dayUsers"]] - :breakout [[:datetime-field [:field-id (u/get-id field)] :day]]}} - :result_metadata [{:base_type :type/Date - :display_name "Date" - :name "ga:date" - :description "The date of the session formatted as YYYYMMDD." - :unit :day} - {:base_type :type/Integer - :display_name "Ga:1day Users" - :name "ga:1dayUsers"} - {:base_type :type/Integer - :display_name "Ga:sessions" - :name "ga:sessions"}] - :metadata_checksum "i3uR1PM5q6uZfIpm0qZbb6Brcfw8S3/wejWolU0Bl1n1Dz/yqvLGxf/XXV6/uOBB75WhFE9V98pIw5Qm18VY6+rlzUnuaTfPvPbiJbh3D9w="}) - ;; just make sure the API call actually worked by checking that the created Card is actually successfully - ;; saved in the DB - u/get-id - (db/count Card :id)))) + (let [cnt (->> ((users/user->client :crowberto) :post 200 "card" + {:name "Metabase Websites, Sessions and 1 Day Active Users, Grouped by Date (day)" + :display :table + :visualization_settings {} + :dataset_query {:database (u/get-id db) + :type :query + :query {:source-table (u/get-id table) + :aggregation [[:METRIC "ga:sessions"] + [:METRIC "ga:1dayUsers"]] + :breakout [[:datetime-field [:field-id (u/get-id field)] :day]]}} + :result_metadata [{:base_type :type/Date + :display_name "Date" + :name "ga:date" + :description "The date of the session formatted as YYYYMMDD." + :unit :day} + {:base_type :type/Integer + :display_name "Ga:1day Users" + :name "ga:1dayUsers"} + {:base_type :type/Integer + :display_name "Ga:sessions" + :name "ga:sessions"}] + :metadata_checksum "i3uR1PM5q6uZfIpm0qZbb6Brcfw8S3/wejWolU0Bl1n1Dz/yqvLGxf/XXV6/uOBB75WhFE9V98pIw5Qm18VY6+rlzUnuaTfPvPbiJbh3D9w="}) + ;; just make sure the API call actually worked by checking that the created Card is actually + ;; successfully saved in the DB + u/get-id + (db/count Card :id))] + (is (= 1 + cnt))))) diff --git a/modules/drivers/mongo/project.clj b/modules/drivers/mongo/project.clj index fbf15d90adca9ca35122114dbf21edca6e0d68dd..04181d7ce742ebd91d4d023453433c9a070e6770 100644 --- a/modules/drivers/mongo/project.clj +++ b/modules/drivers/mongo/project.clj @@ -6,7 +6,8 @@ :profiles {:provided - {:dependencies [[metabase-core "1.0.0-SNAPSHOT"]]} + {:dependencies [[org.clojure/clojure "1.10.1"] + [metabase-core "1.0.0-SNAPSHOT"]]} :uberjar {:auto-clean true diff --git a/modules/drivers/mongo/src/metabase/driver/mongo.clj b/modules/drivers/mongo/src/metabase/driver/mongo.clj index 4cb53e3706123c9e59a2479901bee42c47086d8a..899e4a6ce576493ac30bb253d00aff36344f7fc4 100644 --- a/modules/drivers/mongo/src/metabase/driver/mongo.clj +++ b/modules/drivers/mongo/src/metabase/driver/mongo.clj @@ -3,42 +3,63 @@ (:require [cheshire [core :as json] [generate :as json.generate]] + [clojure.string :as str] [clojure.tools.logging :as log] + [java-time :as t] [metabase [driver :as driver] [util :as u]] [metabase.db.metadata-queries :as metadata-queries] [metabase.driver.common :as driver.common] [metabase.driver.mongo + [parameters :as parameters] [query-processor :as qp] [util :refer [with-mongo-connection]]] - [metabase.query-processor.store :as qp.store] + [metabase.plugins.classloader :as classloader] + [metabase.query-processor + [store :as qp.store] + [timezone :as qp.timezone]] [monger [collection :as mc] [command :as cmd] - [conversion :as conv] + [conversion :as m.conversion] [db :as mdb]] - [schema.core :as s]) + [schema.core :as s] + [taoensso.nippy :as nippy]) (:import com.mongodb.DB - org.bson.BsonUndefined)) + [java.time Instant LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime ZonedDateTime] + org.bson.BsonUndefined + org.bson.types.ObjectId)) + +;; See http://clojuremongodb.info/articles/integration.html Loading this namespace will load appropriate Monger +;; integrations with Cheshire. +(classloader/require 'monger.json) ;; JSON Encoding (etc.) ;; Encode BSON undefined like `nil` (json.generate/add-encoder org.bson.BsonUndefined json.generate/encode-nil) -(driver/register! :mongo) +(nippy/extend-freeze ObjectId :mongodb/ObjectId + [^ObjectId oid data-output] + (.writeUTF data-output (.toHexString oid))) -;;; ## MongoDriver +(nippy/extend-thaw :mongodb/ObjectId + [data-input] + (ObjectId. (.readUTF data-input))) + +(driver/register! :mongo) -(defmethod driver/can-connect? :mongo [_ details] +(defmethod driver/can-connect? :mongo + [_ details] (with-mongo-connection [^DB conn, details] (= (float (-> (cmd/db-stats conn) - (conv/from-db-object :keywordize) + (m.conversion/from-db-object :keywordize) :ok)) 1.0))) -(defmethod driver/humanize-connection-error-message :mongo [_ message] +(defmethod driver/humanize-connection-error-message :mongo + [_ message] (condp re-matches message #"^Timed out after \d+ ms while waiting for a server .*$" (driver.common/connection-error-messages :cannot-connect-check-host-and-port) @@ -58,7 +79,8 @@ #".*" ; default message)) -(defmethod driver/process-query-in-context :mongo [_ qp] +(defmethod driver/process-query-in-context :mongo + [_ qp] (fn [{database-id :database, :as query}] (with-mongo-connection [_ (qp.store/database)] (qp query)))) @@ -68,7 +90,8 @@ (declare update-field-attrs) -(defmethod driver/sync-in-context :mongo [_ database do-sync-fn] +(defmethod driver/sync-in-context :mongo + [_ database do-sync-fn] (with-mongo-connection [_ database] (do-sync-fn))) @@ -81,8 +104,8 @@ ;; 2. json? (and (string? field-value) - (or (.startsWith "{" field-value) - (.startsWith "[" field-value))) + (or (str/starts-with? "{" field-value) + (str/starts-with? "[" field-value))) (when-let [j (u/ignore-exceptions (json/parse-string field-value))] (when (or (map? j) (sequential? j)) @@ -112,6 +135,7 @@ (find-nested-fields field-value nested-fields) nested-fields))))) +;; TODO - use `driver.common/class->base-type` to implement this functionality (s/defn ^:private ^Class most-common-object-type :- (s/maybe Class) "Given a sequence of tuples like [Class <number-of-occurances>] return the Class with the highest number of occurances. The basic idea here is to take a sample of values for a Field and then determine the most common type @@ -142,7 +166,8 @@ (:nested-fields field-info) (assoc :nested-fields (set (for [field (keys (:nested-fields field-info))] (describe-table-field field (field (:nested-fields field-info))))))))) -(defmethod driver/describe-database :mongo [_ database] +(defmethod driver/describe-database :mongo + [_ database] (with-mongo-connection [^com.mongodb.DB conn database] {:tables (set (for [collection (disj (mdb/get-collection-names conn) "system.indexes")] {:schema nil, :name collection}))})) @@ -167,7 +192,8 @@ (catch Throwable t (log/error (format "Error introspecting collection: %s" (:name table)) t)))) -(defmethod driver/describe-table :mongo [_ database table] +(defmethod driver/describe-table :mongo + [_ database table] (with-mongo-connection [^com.mongodb.DB conn database] (let [column-info (table-sample-column-info conn table)] {:schema nil @@ -175,11 +201,59 @@ :fields (set (for [[field info] column-info] (describe-table-field field info)))}))) -(defmethod driver/supports? [:mongo :basic-aggregations] [_ _] true) -(defmethod driver/supports? [:mongo :nested-fields] [_ _] true) +(doseq [feature [:basic-aggregations + :nested-fields + :native-parameters]] + (defmethod driver/supports? [:mongo feature] [_ _] true)) -(defmethod driver/mbql->native :mongo [_ query] +(defmethod driver/mbql->native :mongo + [_ query] (qp/mbql->native query)) -(defmethod driver/execute-query :mongo [_ query] +(defmethod driver/execute-query :mongo + [_ query] (qp/execute-query query)) + +(defmethod driver/substitue-native-parameters :mongo + [driver inner-query] + (parameters/substitute-native-parameters driver inner-query)) + +;; It seems to be the case that the only thing BSON supports is DateTime which is basically the equivalent of Instant; +;; for the rest of the types, we'll have to fake it +(extend-protocol m.conversion/ConvertToDBObject + Instant + (to-db-object [t] + (org.bson.BsonDateTime. (t/to-millis-from-epoch t))) + + LocalDate + (to-db-object [t] + (m.conversion/to-db-object (t/local-date-time t (t/local-time 0)))) + + LocalDateTime + (to-db-object [t] + ;; QP store won't be bound when loading test data for example. + (m.conversion/to-db-object (t/instant t (t/zone-id (try + (qp.timezone/results-timezone-id) + (catch Throwable _ + "UTC")))))) + + LocalTime + (to-db-object [t] + (m.conversion/to-db-object (t/local-date-time (t/local-date "1970-01-01") t))) + + OffsetDateTime + (to-db-object [t] + (m.conversion/to-db-object (t/instant t))) + + OffsetTime + (to-db-object [t] + (m.conversion/to-db-object (t/offset-date-time (t/local-date "1970-01-01") t (t/zone-offset t)))) + + ZonedDateTime + (to-db-object [t] + (m.conversion/to-db-object (t/instant t)))) + +(extend-protocol m.conversion/ConvertFromDBObject + java.util.Date + (from-db-object [t _] + (t/instant t))) diff --git a/modules/drivers/mongo/src/metabase/driver/mongo/parameters.clj b/modules/drivers/mongo/src/metabase/driver/mongo/parameters.clj new file mode 100644 index 0000000000000000000000000000000000000000..a1e5e1a26aa7fb24bb03b5a7c69d297e74337d27 --- /dev/null +++ b/modules/drivers/mongo/src/metabase/driver/mongo/parameters.clj @@ -0,0 +1,131 @@ +(ns metabase.driver.mongo.parameters + (:require [clojure + [string :as str] + [walk :as walk]] + [clojure.tools.logging :as log] + [metabase.driver.common.parameters :as params] + [metabase.driver.common.parameters + [dates :as date-params] + [parse :as parse] + [values :as values]] + [metabase.driver.mongo.query-processor :as mongo.qp] + [metabase.query-processor.error-type :as error-type] + [metabase.util :as u] + [metabase.util + [date-2 :as u.date] + [i18n :refer [tru]]]) + (:import java.time.temporal.Temporal + [metabase.driver.common.parameters CommaSeparatedNumbers Date])) + +(defn- param-value->str [x] + ;; sequences get converted to `$in` + (if (sequential? x) + (format "{$in: [%s]}" (str/join ", " (map param-value->str x))) + (condp instance? x + ;; Date = the Parameters Date type, not an actual Temporal type + Date (param-value->str (u.date/parse (:s x))) + ;; convert temporal types to ISODate("2019-12-09T...") (etc.) + Temporal (format "ISODate(\"%s\")" (u.date/format x)) + ;; there's a special record type for sequences of numbers; pull the sequence it wraps out and recur + CommaSeparatedNumbers (param-value->str (:numbers x)) + ;; for everything else, splice it in as its string representation + (pr-str x)))) + +(defn- field->name [field] + (pr-str (mongo.qp/field->name field "."))) + +(defn- substitute-one-field-filter-relative-date [{field :field, {param-type :type, value :value} :value}] + (let [{:keys [start end]} (date-params/date-string->range value) + start-condition (when start + (format "{%s: {$gte: %s}}" (field->name field) (param-value->str (u.date/parse start)))) + end-condition (when end + (format "{%s: {$lt: %s}}" (field->name field) (param-value->str (u.date/parse end))))] + (if (and start-condition end-condition) + (format "{$and: [%s, %s]}" start-condition end-condition) + (or start-condition + end-condition)))) + +;; Field filter value is either params/no-value (handled in `substitute-param`, a map with `:type` and `:value`, or a +;; sequence of those maps. +(defn- substitute-one-field-filter [{field :field, {param-type :type, value :value} :value, :as field-filter}] + ;; convert relative dates to approprate date range representations + (if (date-params/relative-date-param-type? param-type) + (substitute-one-field-filter-relative-date field-filter) + (format "{%s: %s}" (field->name field) (param-value->str value)))) + +(defn- substitute-field-filter [{field :field, {:keys [value]} :value, :as field-filter}] + (if (sequential? value) + (format "{%s: %s}" (field->name field) (param-value->str value)) + (substitute-one-field-filter field-filter))) + +(defn- substitute-param [param->value [acc missing] in-optional? {:keys [k], :as param}] + (let [v (get param->value k)] + (cond + (not (contains? param->value k)) + [acc (conj missing k)] + + (params/FieldFilter? v) + (let [no-value? (= (:value v) params/no-value)] + (cond + ;; no-value field filters inside optional clauses are ignored and omitted entirely + (and no-value? in-optional?) [acc (conj missing k)] + ;; otherwise replace it with a {} which is the $match equivalent of 1 = 1, i.e. always true + no-value? [(conj acc "{}") missing] + :else [(conj acc (substitute-field-filter v)) + missing])) + + (= v params/no-value) + [acc (conj missing k)] + + :else + [(conj acc (param-value->str v)) missing]))) + +(declare substitute*) + +(defn- substitute-optional [param->value [acc missing] {subclauses :args}] + (let [[opt-acc opt-missing] (substitute* param->value subclauses true)] + (if (seq opt-missing) + [acc missing] + [(into acc opt-acc) missing]))) + +(defn- substitute* + "Returns a sequence of `[[replaced...] missing-parameters]`." + [param->value xs in-optional?] + (reduce + (fn [[acc missing] x] + (cond + (string? x) + [(conj acc x) missing] + + (params/Param? x) + (substitute-param param->value [acc missing] in-optional? x) + + (params/Optional? x) + (substitute-optional param->value [acc missing] x) + + :else + (throw (ex-info (tru "Don''t know how to substitute {0} {1}" (.getName (class x)) (pr-str x)) + {:type error-type/driver})))) + [[] nil] + xs)) + +(defn- substitute [param->value xs] + (let [[replaced missing] (substitute* param->value xs false)] + (when (seq missing) + (throw (ex-info (tru "Cannot run query: missing required parameters: {0}" (set missing)) + {:type error-type/invalid-query}))) + (when (seq replaced) + (str/join replaced)))) + +(defn- parse-and-substitute [param->value x] + (if-not (string? x) + x + (u/prog1 (substitute param->value (parse/parse x)) + (when-not (= x <>) + (log/debug (tru "Substituted {0} -> {1}" (pr-str x) (pr-str <>))))))) + +(defn substitute-native-parameters + "Implementation of `driver/substitue-native-parameters` for MongoDB." + [driver inner-query] + (let [param->value (values/query->params-map inner-query)] + (update inner-query :query (partial walk/postwalk (partial parse-and-substitute param->value))))) diff --git a/modules/drivers/mongo/src/metabase/driver/mongo/query_processor.clj b/modules/drivers/mongo/src/metabase/driver/mongo/query_processor.clj index ad29a6a492281a4831d972bd8f65db915a6f52d5..70fedb192ba79d93db8f8a81e34b9fb784598cd9 100644 --- a/modules/drivers/mongo/src/metabase/driver/mongo/query_processor.clj +++ b/modules/drivers/mongo/src/metabase/driver/mongo/query_processor.clj @@ -1,46 +1,34 @@ (ns metabase.driver.mongo.query-processor "Logic for translating MBQL queries into Mongo Aggregation Pipeline queries. See https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline/ for more details." - (:require [cheshire.core :as json] - [clojure + (:require [clojure [set :as set] [string :as str] [walk :as walk]] [clojure.tools.logging :as log] [flatland.ordered.map :as ordered-map] + [java-time :as t] [metabase.driver.mongo.util :refer [*mongo-connection*]] [metabase.mbql [schema :as mbql.s] [util :as mbql.u]] [metabase.models.field :refer [Field]] - [metabase.plugins.classloader :as classloader] [metabase.query-processor + [error-type :as error-type] [interface :as i] [store :as qp.store]] [metabase.query-processor.middleware.annotate :as annotate] [metabase.util :as u] [metabase.util - [date :as du] - [i18n :as ui18n :refer [deferred-tru tru]] + [date-2 :as u.date] + [i18n :as ui18n :refer [tru]] [schema :as su]] [monger [collection :as mc] [operators :refer :all]] [schema.core :as s]) - (:import java.sql.Timestamp - [java.util Date TimeZone] - metabase.models.field.FieldInstance - org.bson.types.ObjectId - org.joda.time.DateTime)) - -;; See http://clojuremongodb.info/articles/integration.html -;; Loading these namespaces will load appropriate Monger integrations with JODA Time and Cheshire respectively -;; -;; These are loaded here and not in the `:require` above because they tend to get automatically removed by -;; `cljr-clean-ns` and also cause Eastwood to complain about unused namespaces -(when-not *compile-files* - (classloader/require 'monger.joda-time - 'monger.json)) + (:import metabase.models.field.FieldInstance + org.bson.types.ObjectId)) ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | Schema | @@ -90,11 +78,8 @@ (defn- log-aggregation-pipeline [form] (when-not i/*disable-qp-logging* - (log/debug (u/format-color 'green (str "\n" (deferred-tru "MONGO AGGREGATION PIPELINE:") "\n%s\n") - (->> form - ;; strip namespace qualifiers from Monger form - (walk/postwalk #(if (symbol? %) (symbol (name %)) %)) - u/pprint-to-str) "\n")))) + (log/tracef "\nMongo aggregation pipeline:\n%s\n" + (u/pprint-to-str 'green (walk/postwalk #(if (symbol? %) (symbol (name %)) %) form))))) ;;; # STRUCTURED QUERY PROCESSOR @@ -125,9 +110,8 @@ {:arglists '([field])} mbql.u/dispatch-by-clause-name-or-class) - -(defn- field->name - "Return a single string name for FIELD. For nested fields, this creates a combined qualified name." +(defn field->name + "Return a single string name for `field`. For nested fields, this creates a combined qualified name." ^String [^FieldInstance field, ^String separator] (if-let [parent-id (:parent_id field)] (str/join separator [(field->name (qp.store/field parent-id) separator) @@ -142,9 +126,26 @@ ~@body)}}) -(defmethod ->lvalue (class Field) [this] (field->name this "___")) -(defmethod ->initial-rvalue (class Field) [this] (str \$ (field->name this "."))) -(defmethod ->rvalue (class Field) [this] (str \$ (->lvalue this))) +(defmethod ->lvalue (class Field) + [field] + (field->name field "___")) + +(defmethod ->initial-rvalue (class Field) + [{special-type :special_type, :as field}] + (let [field-name (str \$ (field->name field "."))] + (cond + ;; TIMEZONE FIXME — use `java.time` classes + (isa? (:special_type field) :type/UNIXTimestampMilliseconds) + {$add [(java.util.Date. 0) field-name]} + + (isa? (:special_type field) :type/UNIXTimestampSeconds) + {$add [(java.util.Date. 0) {$multiply [field-name 1000]}]} + + :else field-name))) + +(defmethod ->rvalue (class Field) + [field] + (str \$ (->lvalue field))) (defmethod ->lvalue :field-id [[_ field-id]] (->lvalue (qp.store/field field-id))) (defmethod ->initial-rvalue :field-id [[_ field-id]] (->initial-rvalue (qp.store/field field-id))) @@ -154,39 +155,33 @@ (defmethod ->initial-rvalue :field-literal [[_ field-name]] (str \$ (name field-name))) (defmethod ->rvalue :field-literal [[_ field-name]] (str \$ (name field-name))) ; TODO - not sure if right? - ;; Don't think this needs to implement `->lvalue` because you can't assign something to an aggregation e.g. ;; ;; aggregations[0] = 20 ;; ;; makes no sense. It doesn't have an initial projection either so no need to implement `->initial-rvalue` -(defmethod ->lvalue :aggregation [[_ index]] +(defmethod ->lvalue :aggregation + [[_ index]] (annotate/aggregation-name (mbql.u/aggregation-at-index *query* index))) ;; TODO - does this need to implement `->lvalue` and `->initial-rvalue` ? -(defmethod ->lvalue :datetime-field [[_ field-clause unit]] +(defmethod ->lvalue :datetime-field + [[_ field-clause unit]] (str (->lvalue field-clause) "~~~" (name unit))) -(defmethod ->initial-rvalue :datetime-field [[_ field-clause unit]] +(defmethod ->initial-rvalue :datetime-field + [[_ field-clause unit]] (let [field-id (mbql.u/field-clause->id-or-literal field-clause) field (when (integer? field-id) (qp.store/field field-id))] - (mongo-let [column (let [initial-rvalue (->initial-rvalue field-clause)] - (cond - (isa? (:special_type field) :type/UNIXTimestampMilliseconds) - {$add [(java.util.Date. 0) initial-rvalue]} - - (isa? (:special_type field) :type/UNIXTimestampSeconds) - {$add [(java.util.Date. 0) {$multiply [initial-rvalue 1000]}]} - - :else initial-rvalue))] - (let [stringify (fn stringify - ([format-string] - (stringify format-string column)) - ([format-string fld] - {:___date {:$dateToString {:format format-string - :date fld}}}))] + (mongo-let [column (->initial-rvalue field-clause)] + (letfn [(stringify + ([format-string] + (stringify format-string column)) + ([format-string fld] + {:___date {:$dateToString {:format format-string + :date fld}}}))] (case unit :default column :minute (stringify "%Y-%m-%dT%H:%M:00") @@ -221,30 +216,31 @@ :year (stringify "%Y")))))) -(defmethod ->rvalue :datetime-field [this] +(defmethod ->rvalue :datetime-field + [this] (str \$ (->lvalue this))) - ;; Values clauses below; they only need to implement `->rvalue` (defmethod ->rvalue nil [_] nil) - -(defmethod ->rvalue :value [[_ value {base-type :base_type}]] +(defmethod ->rvalue :value + [[_ value {base-type :base_type}]] (if (isa? base-type :type/MongoBSONID) (ObjectId. (str value)) value)) - -(defmethod ->rvalue :absolute-datetime [[_ ^java.sql.Timestamp value, unit]] - (let [stringify (fn stringify - ([format-string] - (stringify format-string value)) - ([format-string v] - {:___date (du/format-date format-string v)})) - extract #(du/date-extract % value)] +(defmethod ->rvalue :absolute-datetime + [[_ t unit]] + (letfn [(stringify + ([format-string] + (stringify format-string t)) + ([format-string t] + {:___date (t/format format-string t)})) + (extract [unit] + (u.date/extract t unit))] (case (or unit :default) - :default value + :default (t/to-java-date t) :minute (stringify "yyyy-MM-dd'T'HH:mm:00") :minute-of-hour (extract :minute) :hour (stringify "yyyy-MM-dd'T'HH:00:00") @@ -253,18 +249,18 @@ :day-of-week (extract :day-of-week) :day-of-month (extract :day-of-month) :day-of-year (extract :day-of-year) - :week (stringify "yyyy-MM-dd" (du/date-trunc :week value)) + :week (stringify "yyyy-MM-dd" (u.date/truncate t :week)) :week-of-year (extract :week-of-year) :month (stringify "yyyy-MM") :month-of-year (extract :month-of-year) - :quarter (stringify "yyyy-MM" (du/date-trunc :quarter value)) + :quarter (stringify "yyyy-MM" (u.date/truncate t :quarter)) :quarter-of-year (extract :quarter-of-year) :year (stringify "yyyy")))) - ;; TODO - where's the part where we handle include-current? -(defmethod ->rvalue :relative-datetime [[_ amount unit]] - (->rvalue [:absolute-datetime (du/relative-date (or unit :day) amount) unit])) +(defmethod ->rvalue :relative-datetime + [[_ amount unit]] + (->rvalue [:absolute-datetime (u.date/add (or unit :day) amount) unit])) ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -630,82 +626,10 @@ (for [[k v] row] [k (if (and (map? v) (contains? v :___date)) - (du/->Timestamp (:___date v) (TimeZone/getDefault)) + (u.date/parse (:___date v)) v)])))) -;;; --------------------------------- Handling ISODate(...) and ObjectId(...) forms ---------------------------------- - -;; In Mongo it's fairly common use ISODate(...) or ObjectId(...) forms in queries, which unfortunately are not valid -;; JSON, and thus cannot be parsed by Cheshire. But we are clever so we will: -;; -;; 1) Convert forms like ISODate(...) to valid JSON forms like ["___ISODate", ...] -;; 2) Parse Normally -;; 3) Walk the parsed JSON and convert forms like [:___ISODate ...] to JodaTime dates, and [:___ObjectId ...] to BSON -;; IDs - -;; See https://docs.mongodb.com/manual/core/shell-types/ for a list of different supported types -(def ^:private fn-name->decoder - {:ISODate (fn [arg] - (DateTime. arg)) - :ObjectId (fn [^String arg] - (ObjectId. arg)) - ;; it looks like Date() just ignores any arguments return a date string formatted the same way the Mongo console - ;; does - :Date (fn [& _] - (du/format-date "EEE MMM dd yyyy HH:mm:ss z")) - :NumberLong (fn [^String s] - (Long/parseLong s)) - :NumberInt (fn [^String s] - (Integer/parseInt s))}) -;; we're missing NumberDecimal but not sure how that's supposed to be converted to a Java type - -(defn- form->encoded-fn-name - "If `form` is an encoded fn call form return the key representing the fn call that was encoded. - If it doesn't represent an encoded fn, return `nil`. - - (form->encoded-fn-name [:___ObjectId \"583327789137b2700a1621fb\"]) -> :ObjectId" - [form] - (when (vector? form) - (when ((some-fn keyword? string?) (first form)) - (when-let [[_ k] (re-matches #"^___(\w+$)" (name (first form)))] - (let [k (keyword k)] - (when (contains? fn-name->decoder k) - k)))))) - -(defn- maybe-decode-fncall [form] - (if-let [fn-name (form->encoded-fn-name form)] - ((fn-name->decoder fn-name) (second form)) - form)) - -(defn- decode-fncalls [query] - (walk/postwalk maybe-decode-fncall query)) - -(defn- encode-fncalls-for-fn - "Walk `query-string` and replace fncalls to fn with `fn-name` with encoded forms that can be parsed as valid JSON. - - (encode-fncalls-for-fn \"ObjectId\" \"{\\\"$match\\\":ObjectId(\\\"583327789137b2700a1621fb\\\")}\") - ;; -> \"{\\\"$match\\\":[\\\"___ObjectId\\\", \\\"583327789137b2700a1621fb\\\"]}\"" - [fn-name query-string] - (-> query-string - ;; replace any forms WITH NO args like ISODate() with ones like ["___ISODate"] - (str/replace (re-pattern (format "%s\\(\\)" (name fn-name))) (format "[\"___%s\"]" (name fn-name))) - ;; now replace any forms WITH args like ISODate("2016-01-01") with ones like ["___ISODate", "2016-01-01"] - (str/replace (re-pattern (format "%s\\(([^)]*)\\)" (name fn-name))) (format "[\"___%s\", $1]" (name fn-name))))) - -(defn- encode-fncalls - "Replace occurances of `ISODate(...)` and similary function calls (invalid JSON, but legal in Mongo) - with legal JSON forms like `[:___ISODate ...]` that we can decode later. - - Walks `query-string` and encodes all the various fncalls we support." - [query-string] - (loop [query-string query-string, [fn-name & more] (keys fn-name->decoder)] - (if-not fn-name - query-string - (recur (encode-fncalls-for-fn fn-name query-string) - more)))) - - ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | Query Execution | ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -733,14 +657,24 @@ (when (seq not-in-expected) (throw (Exception. (tru "Unexpected columns in results: {0}" (sort not-in-expected)))))))) +(defn parse-query-string + "Parse a serialized native query. Like a normal JSON parse, but handles BSON/MongoDB extended JSON forms." + [^String s] + (try + (for [^org.bson.BsonValue v (org.bson.BsonArray/parse s)] + (com.mongodb.BasicDBObject. (.asDocument v))) + (catch Throwable e + (throw (ex-info (tru "Unable to parse query: {0}" (.getMessage e)) + {:type error-type/invalid-query + :query s} + e))))) + (defn execute-query "Process and run a native MongoDB query." [{{:keys [collection query mbql? projections]} :native}] {:pre [query (string? collection)]} - (let [query (if (string? query) - (decode-fncalls (json/parse-string (encode-fncalls query) keyword)) - query) - ;; query *secret-query* + (let [query (cond-> query + (string? query) parse-query-string) results (mc/aggregate *mongo-connection* collection query :allow-disk-use true ;; options that control the creation of the cursor object. Empty map means use default diff --git a/modules/drivers/mongo/test/metabase/driver/mongo/parameters_test.clj b/modules/drivers/mongo/test/metabase/driver/mongo/parameters_test.clj new file mode 100644 index 0000000000000000000000000000000000000000..60a834964e9010495e8f8578b0c5975c23960092 --- /dev/null +++ b/modules/drivers/mongo/test/metabase/driver/mongo/parameters_test.clj @@ -0,0 +1,158 @@ +(ns metabase.driver.mongo.parameters-test + (:require [cheshire + [core :as json] + [generate :as json.generate]] + [clojure.test :refer :all] + [metabase + [query-processor :as qp] + [test :as mt]] + [metabase.driver.common.parameters :as common.params] + [metabase.driver.mongo.parameters :as params]) + (:import com.fasterxml.jackson.core.JsonGenerator)) + +(defn- substitute [param->value xs] + (#'params/substitute param->value xs)) + +(defn- param [k] + (common.params/->Param k)) + +(defn- optional [& xs] + (common.params/->Optional xs)) + +(defn- field-filter [field-name value-type value] + (common.params/->FieldFilter {:name (name field-name)} {:type value-type, :value value})) + +(defn- comma-separated-numbers [nums] + (common.params/->CommaSeparatedNumbers nums)) + +(deftest substitute-test + (testing "non-parameterized strings should not be substituted" + (is (= "wow" + (substitute nil ["wow"])))) + (testing "non-optional-params" + (testing "single param with no string before or after" + (is (= "100" + (substitute {:x 100} [(param :x)])) + "\"{{x}}\" with x = 100 should be replaced with \"100\"")) + (testing "if a param is missing, an Exception should be thrown" + (is (thrown-with-msg? clojure.lang.ExceptionInfo + #"missing required parameters: #\{:x\}" + (substitute nil [(param :x)])))) + (testing "params preceeded or followed by strings should get combined into a single string" + (is (= "2100" + (substitute {:x 100} ["2" (param :x)])) + "\"2{{x}}\" with x = 100 should be replaced with string \"2100\"")) + (testing "temporal params" + (is (= "ISODate(\"2019-12-06T17:01:00-08:00\")" + (substitute {:written-at #t "2019-12-06T17:01:00-08:00[America/Los_Angeles]"} [(param :written-at)])))) + (testing "multiple params in one string" + (is (= "2019-12-10" + (substitute {:year 2019, :month 12, :day 10} [(param :year) "-" (param :month) "-" (param :day)])) + "\"{{year}}-{{month}}-{{day}}\" should be replaced with \"2019-12-09\"") + (testing "some params missing" + (is (thrown-with-msg? clojure.lang.ExceptionInfo + #"missing required parameters: #\{:day\}" + (substitute {:year 2019, :month 12} [(param :year) "-" (param :month) "-" (param :day)])))))) + (testing "optional params" + (testing "single optional param" + (is (= nil + (substitute nil [(optional (param :x))])) + "\"[[{{x}}]]\" with no value for x should be replaced with `nil`")) + (testing "{{year}}[[-{{month}}[[-{{day}}]]]]" + (let [params [(param :year) (optional "-" (param :month) (optional "-" (param :day)))]] + (testing "with all params present" + (is (= "2019-12-10" + (substitute {:year 2019, :month 12, :day 10} params)))) + (testing "with :year & :month present but not :day" + (is (= "2019-12" + (substitute {:year 2019, :month 12} params)))) + (testing "with :year present but not :month or :day" + (is (= "2019" + (substitute {:year 2019} params)))) + (testing "with no params present" + (is (thrown-with-msg? clojure.lang.ExceptionInfo + #"missing required parameters" + (substitute nil params))))))) + (testing "comma-separated numbers" + (is (= "{$in: [1, 2, 3]}" + (substitute {:id (comma-separated-numbers [1 2 3])} + [(param :id)]))))) + +(deftest field-filter-test + (testing "Date ranges" + (mt/with-clock #t "2019-12-13T12:00:00.000Z[UTC]" + (is (= "[{$match: {$and: [{\"date\": {$gte: ISODate(\"2019-12-08\")}}, {\"date\": {$lt: ISODate(\"2019-12-12\")}}]}}]" + (substitute {:date (field-filter "date" :date/range "past5days")} + ["[{$match: " (param :date) "}]"]))))) + (testing "multiple values" + (doseq [[message v] {"values are a vector of numbers" [1 2 3] + "comma-separated numbers" (comma-separated-numbers [1 2 3])}] + (testing message + (is (= "[{$match: {\"id\": {$in: [1, 2, 3]}}}]" + (substitute {:id (field-filter "id" :number v)} + ["[{$match: " (param :id) "}]"])))))) + (testing "parameter not supplied" + (is (= "[{$match: {}}]" + (substitute {:date (common.params/->FieldFilter {:name "date"} common.params/no-value)} ["[{$match: " (param :date) "}]"]))))) + +(defn- json-raw + "Wrap a string so it will be spliced directly into resulting JSON as-is. Analogous to HoneySQL `raw`." + [^String s] + (reify json.generate/JSONable + (to-json [_ generator] + (.writeRawValue ^JsonGenerator generator s)))) + +(deftest e2e-field-filter-test + (mt/test-driver :mongo + (testing "date ranges" + (is (= [[295 7 97 "2014-03-01T00:00:00Z"] + [642 8 9 "2014-03-02T00:00:00Z"] + [775 4 13 "2014-03-01T00:00:00Z"]] + (mt/rows + (qp/process-query + (mt/query checkins + {:type :native + :native {:query (json/generate-string + [{:$match (json-raw "{{date}}")} + {:$sort {:_id 1}}]) + :collection "checkins" + :template-tags {"date" {:name "date" + :display-name "Date" + :type :dimension + :dimension $date}}} + :parameters [{:type :date/range + :target [:dimension [:template-tag "date"]] + :value "2014-03-01~2014-03-03"}]})))))) + (testing "multiple values" + (is (= [[1 "African"] + [2 "American"] + [3 "Artisan"]] + (mt/rows + (qp/process-query + (mt/query categories + {:type :native + :native {:query (json/generate-string [{:$match (json-raw "{{id}}")} + {:$sort {:_id 1}}]) + :collection "categories" + :template-tags {"id" {:name "id" + :display-name "ID" + :type :dimension + :dimension $id}}} + :parameters [{:type :number + :target [:dimension [:template-tag "id"]] + :value "1,2,3"}]})))))) + (testing "param not supplied" + (is (= [[1 5 12 "2014-04-07T00:00:00Z"]] + (mt/rows + (qp/process-query + (mt/query checkins + {:type :native + :native {:query (json/generate-string + [{:$match (json-raw "{{date}}")} + {:$sort {:_id 1}} + {:$limit 1}]) + :collection "checkins" + :template-tags {"date" {:name "date" + :display-name "Date" + :type :dimension + :dimension $date}}}})))))))) diff --git a/modules/drivers/mongo/test/metabase/driver/mongo_test.clj b/modules/drivers/mongo/test/metabase/driver/mongo_test.clj index afe1794dd40e9325e7d8b87c392d761f653fc827..d043754b46f281f9c8a80461767f307c47571d67 100644 --- a/modules/drivers/mongo/test/metabase/driver/mongo_test.clj +++ b/modules/drivers/mongo/test/metabase/driver/mongo_test.clj @@ -2,11 +2,13 @@ "Tests for Mongo driver." (:require [clojure.test :refer :all] [expectations :refer [expect]] + [java-time :as t] [medley.core :as m] [metabase [driver :as driver] [query-processor :as qp] - [query-processor-test :as qp.t :refer [rows]]] + [query-processor-test :as qp.t :refer [rows]] + [test :as mt]] [metabase.automagic-dashboards.core :as magic] [metabase.db.metadata-queries :as metadata-queries] [metabase.driver @@ -20,10 +22,10 @@ [metabase.test.data [datasets :as datasets] [interface :as tx]] + [taoensso.nippy :as nippy] [toucan.db :as db] [toucan.util.test :as tt]) - (:import org.bson.types.ObjectId - org.joda.time.DateTime)) + (:import org.bson.types.ObjectId)) ;; ## Constants + Helper Fns/Macros ;; TODO - move these to metabase.test-data ? @@ -36,7 +38,7 @@ ;; ## Tests for connection functions (deftest can-connect-test? - (datasets/test-driver :mongo + (mt/test-driver :mongo (doseq [{:keys [details expected message]} [{:details {:host "localhost" :port 3000 :dbname "bad-db-name"} @@ -71,60 +73,58 @@ {\"$project\": {\"_id\": false, \"count\": true}}]") (deftest native-query-test - (datasets/test-driver :mongo - (is (= {:status :completed - :row_count 1 - :data {:rows [[1]] - :cols [{:name "count" - :display_name "count" - :base_type :type/Integer - :source :native - :field_ref [:field-literal "count" :type/Integer]}] - :native_form {:collection "venues" - :query native-query} - :requested_timezone "UTC" - :results_timezone "UTC"}} + (mt/test-driver :mongo + (is (= {:status :completed + :row_count 1 + :data {:rows [[1]] + :cols [{:name "count" + :display_name "count" + :base_type :type/Integer + :source :native + :field_ref [:field-literal "count" :type/Integer]}] + :native_form {:collection "venues" + :query native-query} + :results_timezone "UTC"}} (-> (qp/process-query {:native {:query native-query :collection "venues"} :type :native :database (data/id)}) - (m/dissoc-in [:data :results_metadata]) - (m/dissoc-in [:data :insights])))))) + (m/dissoc-in [:data :results_metadata] [:data :insights])))))) ;; ## Tests for individual syncing functions -;; DESCRIBE-DATABASE -(datasets/expect-with-driver :mongo - {:tables #{{:schema nil, :name "checkins"} - {:schema nil, :name "categories"} - {:schema nil, :name "users"} - {:schema nil, :name "venues"}}} - (driver/describe-database :mongo (data/db))) - -;; DESCRIBE-TABLE -(datasets/expect-with-driver :mongo - {:schema nil - :name "venues" - :fields #{{:name "name" - :database-type "java.lang.String" - :base-type :type/Text} - {:name "latitude" - :database-type "java.lang.Double" - :base-type :type/Float} - {:name "longitude" - :database-type "java.lang.Double" - :base-type :type/Float} - {:name "price" - :database-type "java.lang.Long" - :base-type :type/Integer} - {:name "category_id" - :database-type "java.lang.Long" - :base-type :type/Integer} - {:name "_id" - :database-type "java.lang.Long" - :base-type :type/Integer - :pk? true}}} - (driver/describe-table :mongo (data/db) (Table (data/id :venues)))) +(deftest describe-database-test + (mt/test-driver :mongo + (is (= {:tables #{{:schema nil, :name "checkins"} + {:schema nil, :name "categories"} + {:schema nil, :name "users"} + {:schema nil, :name "venues"}}} + (driver/describe-database :mongo (data/db)))))) + +(deftest describe-table-tets + (mt/test-driver :mongo + (is (= {:schema nil + :name "venues" + :fields #{{:name "name" + :database-type "java.lang.String" + :base-type :type/Text} + {:name "latitude" + :database-type "java.lang.Double" + :base-type :type/Float} + {:name "longitude" + :database-type "java.lang.Double" + :base-type :type/Float} + {:name "price" + :database-type "java.lang.Long" + :base-type :type/Integer} + {:name "category_id" + :database-type "java.lang.Long" + :base-type :type/Integer} + {:name "_id" + :database-type "java.lang.Long" + :base-type :type/Integer + :pk? true}}} + (driver/describe-table :mongo (data/db) (Table (data/id :venues))))))) ;; Make sure that all-NULL columns work and are synced correctly (#6875) (tx/defdataset ^:private all-null-columns @@ -161,7 +161,7 @@ ;; ## Big-picture tests for the way data should look post-sync (deftest table-sync-test - (datasets/test-driver :mongo + (mt/test-driver :mongo (is (= [{:active true, :name "categories"} {:active true, :name "checkins"} {:active true, :name "users"} @@ -177,11 +177,11 @@ [[{:special_type :type/PK, :base_type :type/Integer, :name "_id"} {:special_type :type/Name, :base_type :type/Text, :name "name"}] [{:special_type :type/PK, :base_type :type/Integer, :name "_id"} - {:special_type nil, :base_type :type/DateTime, :name "date"} + {:special_type nil, :base_type :type/Instant, :name "date"} {:special_type :type/Category, :base_type :type/Integer, :name "user_id"} {:special_type nil, :base_type :type/Integer, :name "venue_id"}] [{:special_type :type/PK, :base_type :type/Integer, :name "_id"} - {:special_type nil, :base_type :type/DateTime, :name "last_login"} + {:special_type nil, :base_type :type/Instant, :name "last_login"} {:special_type :type/Name, :base_type :type/Text, :name "name"} {:special_type :type/Category, :base_type :type/Text, :name "password"}] [{:special_type :type/PK, :base_type :type/Integer, :name "_id"} @@ -206,73 +206,39 @@ ["Lucky Pigeon" (ObjectId. "abcdefabcdefabcdefabcdef")]]]]) (deftest bson-ids-test - (datasets/test-driver :mongo + (mt/test-driver :mongo (is (= [[2 "Lucky Pigeon" (ObjectId. "abcdefabcdefabcdefabcdef")]] (rows (data/dataset with-bson-ids (data/run-mbql-query birds {:filter [:= $bird_id "abcdefabcdefabcdefabcdef"]})))) "Check that we support Mongo BSON ID and can filter by it (#1367)"))) - -;;; +----------------------------------------------------------------------------------------------------------------+ -;;; | ISODate(...) AND ObjectId(...) HANDLING (#3741, #4448) | -;;; +----------------------------------------------------------------------------------------------------------------+ - -(expect - "[{\"$match\":{\"date\":{\"$gte\":[\"___ISODate\", \"2012-01-01\"]}}}]" - (#'mongo-qp/encode-fncalls "[{\"$match\":{\"date\":{\"$gte\":ISODate(\"2012-01-01\")}}}]")) - -(expect - "[{\"$match\":{\"entityId\":{\"$eq\":[\"___ObjectId\", \"583327789137b2700a1621fb\"]}}}]" - (#'mongo-qp/encode-fncalls "[{\"$match\":{\"entityId\":{\"$eq\":ObjectId(\"583327789137b2700a1621fb\")}}}]")) - -;; make sure fn calls with no arguments work as well (#4996) -(expect - "[{\"$match\":{\"date\":{\"$eq\":[\"___ISODate\"]}}}]" - (#'mongo-qp/encode-fncalls "[{\"$match\":{\"date\":{\"$eq\":ISODate()}}}]")) - -(expect - (DateTime. "2012-01-01") - (#'mongo-qp/maybe-decode-fncall ["___ISODate" "2012-01-01"])) - -(expect - (ObjectId. "583327789137b2700a1621fb") - (#'mongo-qp/maybe-decode-fncall ["___ObjectId" "583327789137b2700a1621fb"])) - -(expect - [{:$match {:date {:$gte (DateTime. "2012-01-01")}}}] - (#'mongo-qp/decode-fncalls [{:$match {:date {:$gte ["___ISODate" "2012-01-01"]}}}])) - -(expect - [{:$match {:entityId {:$eq (ObjectId. "583327789137b2700a1621fb")}}}] - (#'mongo-qp/decode-fncalls [{:$match {:entityId {:$eq ["___ObjectId" "583327789137b2700a1621fb"]}}}])) - -(datasets/expect-with-driver :mongo - 5 - (count (rows (qp/process-query {:native {:query "[{\"$match\": {\"date\": {\"$gte\": ISODate(\"2015-12-20\")}}}]" - :collection "checkins"} - :type :native - :database (data/id)})))) - -(datasets/expect-with-driver :mongo - 0 - ;; this query shouldn't match anything, so we're just checking that it completes successfully - (count (rows (qp/process-query {:native {:query "[{\"$match\": {\"_id\": {\"$eq\": ObjectId(\"583327789137b2700a1621fb\")}}}]" - :collection "venues"} - :type :native - :database (data/id)})))) - - -;; tests for `most-common-object-type` -(expect - String - (#'mongo/most-common-object-type [[Float 20] [Integer 10] [String 30]])) - -;; make sure it handles `nil` types correctly as well (#6880) -(expect - nil - (#'mongo/most-common-object-type [[Float 20] [nil 40] [Integer 10] [String 30]])) - +(deftest bson-fn-call-forms-test + (mt/test-driver :mongo + (testing "Make sure we can handle arbitarty BSON fn-call forms like ISODate() (#3741, #4448)" + (letfn [(rows-count [query] + (count (rows (qp/process-query {:native query + :type :native + :database (data/id)}))))] + (data/dataset with-bson-ids + (is (= 1 + (rows-count {:query "[{\"$match\": {\"bird_id\": ObjectId(\"abcdefabcdefabcdefabcdef\")}}]" + :collection "birds"})))) + (is (= 22 + (rows-count {:query "[{$match: {price: {$numberInt: \"1\"}}}]" + :collection "venues"}) + (rows-count {:query "[{$match: {price: NumberInt(\"1\")}}]" + :collection "venues"}))) + (is (= 5 + (rows-count {:query "[{$match: {date: {$gte: ISODate(\"2015-12-20\")}}}]" + :collection "checkins"}))))))) + +(deftest most-common-object-type-test + (is (= String + (#'mongo/most-common-object-type [[Float 20] [Integer 10] [String 30]]))) + (testing "make sure it handles `nil` types correctly as well (#6880)" + (is (= nil + (#'mongo/most-common-object-type [[Float 20] [nil 40] [Integer 10] [String 30]]))))) ;; make sure x-rays don't use features that the driver doesn't support (datasets/expect-with-driver :mongo @@ -299,3 +265,24 @@ :limit 3}) qp.t/data (select-keys [:columns :rows])))) + +;; Make sure we correctly (un-)freeze BSON IDs +(deftest ObjectId-serialization + (let [oid (ObjectId. "012345678901234567890123")] + (is (= oid (nippy/thaw (nippy/freeze oid)))))) + +(deftest native-query-nil-test + (testing "Nil values (like {_id nil} below) should not get removed from native queries" + (mt/test-driver :mongo + (is (= [[22]] + (mt/rows + (qp/process-query + {:database (data/id) + :type :native + :native {:projections [:count] + :query [{"$project" {"price" "$price"}} + {"$match" {"price" {"$eq" 1}}} + {"$group" {"_id" nil, "count" {"$sum" 1}}} + {"$sort" {"_id" 1}} + {"$project" {"_id" false, "count" true}}] + :collection "venues"}}))))))) diff --git a/modules/drivers/mongo/test/metabase/test/data/mongo.clj b/modules/drivers/mongo/test/metabase/test/data/mongo.clj index 711a0ee53475ee959290a30bd74f48cb9fed1edf..a5496769c8ceb4b855fdf0e0e54b1168cd3bc952 100644 --- a/modules/drivers/mongo/test/metabase/test/data/mongo.clj +++ b/modules/drivers/mongo/test/metabase/test/data/mongo.clj @@ -1,14 +1,14 @@ (ns metabase.test.data.mongo (:require [metabase.driver.mongo.util :refer [with-mongo-connection]] [metabase.test.data.interface :as tx] - [metabase.util :as u] [monger [collection :as mc] [core :as mg]])) (tx/add-test-extensions! :mongo) -(defmethod tx/dbdef->connection-details :mongo [_ _ dbdef] +(defmethod tx/dbdef->connection-details :mongo + [_ _ dbdef] {:dbname (tx/escaped-name dbdef) :host "localhost"}) @@ -26,19 +26,12 @@ (keyword (:field-name field-definition)))] ;; Use map-indexed so we can get an ID for each row (index + 1) (doseq [[i row] (map-indexed (partial vector) rows)] - (let [row (for [v row] - ;; Conver all the java.sql.Timestamps to java.util.Date, because the Mongo driver insists on - ;; being obnoxious and going from using Timestamps in 2.x to Dates in 3.x - (if (instance? java.sql.Timestamp v) - (java.util.Date. (.getTime ^java.sql.Timestamp v)) - v))] - (try - ;; Insert each row - (mc/insert mongo-db (name table-name) (assoc (zipmap field-names row) - :_id (inc i))) - ;; If row already exists then nothing to do - (catch com.mongodb.MongoException _)))))))) - + (try + ;; Insert each row + (mc/insert mongo-db (name table-name) (assoc (zipmap field-names row) + :_id (inc i))) + ;; If row already exists then nothing to do + (catch com.mongodb.MongoException _))))))) (defmethod tx/format-name :mongo [_ table-or-field-name] diff --git a/modules/drivers/oracle/project.clj b/modules/drivers/oracle/project.clj index 651d4ba230909a77218d5102bccf0fd525df4b7c..eb975ad55e27c4f6adf51b881e45358e0bcaa92c 100644 --- a/modules/drivers/oracle/project.clj +++ b/modules/drivers/oracle/project.clj @@ -7,8 +7,8 @@ {:provided {:dependencies ;; can't ship it as part of MB! - ;; TODO - see whether we can add this to the `:dev` profile as well - [[com.oracle.ojdbc/ojdbc8 "19.3.0.0"] + [[org.clojure/clojure "1.10.1"] + [com.oracle.ojdbc/ojdbc8 "19.3.0.0"] [metabase-core "1.0.0-SNAPSHOT"]]} :uberjar diff --git a/modules/drivers/oracle/src/metabase/driver/oracle.clj b/modules/drivers/oracle/src/metabase/driver/oracle.clj index c61a7b6a3fbfe3810fbba0bc49885cfc53c845b2..1d52d362187bb7994eaf56717a69cc1606a67637 100644 --- a/modules/drivers/oracle/src/metabase/driver/oracle.clj +++ b/modules/drivers/oracle/src/metabase/driver/oracle.clj @@ -2,6 +2,7 @@ (:require [clojure.java.jdbc :as jdbc] [clojure.string :as str] [honeysql.core :as hsql] + [java-time :as t] [metabase.driver :as driver] [metabase.driver.common :as driver.common] [metabase.driver.sql @@ -13,13 +14,13 @@ [sync :as sql-jdbc.sync]] [metabase.driver.sql.util.unprepare :as unprepare] [metabase.util - [date :as du] [honeysql-extensions :as hx] [ssh :as ssh]]) - (:import com.mchange.v2.c3p0.impl.NewProxyConnection + (:import com.mchange.v2.c3p0.C3P0ProxyConnection [java.sql ResultSet Types] - java.util.Date - [oracle.jdbc OracleConnection OracleTypes])) + [java.time Instant OffsetDateTime ZonedDateTime] + [oracle.jdbc OracleConnection OracleTypes] + oracle.sql.TIMESTAMPTZ)) (driver/register! :oracle, :parent :sql-jdbc) @@ -73,12 +74,7 @@ (when sid (str ":" sid)) (when service-name - (str "/" service-name))) - ;; By default the Oracle JDBC driver isn't compliant with JDBC standards -- instead of returning types like - ;; java.sql.Timestamp it returns wacky types like oracle.sql.TIMESTAMPT. By setting this property the JDBC driver - ;; will return the appropriate types. See this page for more details: - ;; http://docs.oracle.com/database/121/JJDBC/datacc.htm#sthref437 - :oracle.jdbc.J2EE13Compliant true} + (str "/" service-name)))} (dissoc details :host :port :sid :service-name))) (defmethod driver/can-connect? :oracle @@ -128,9 +124,7 @@ (hx/inc (hx/- (sql.qp/date driver :day v) (sql.qp/date driver :week v)))) - -(def ^:private now (hsql/raw "SYSDATE")) -(def ^:private date-1970-01-01 (hsql/call :to_timestamp (hx/literal :1970-01-01) (hx/literal :YYYY-MM-DD))) +(def ^:private now (hsql/raw "SYSDATE")) (defmethod sql.qp/current-datetime-fn :oracle [_] now) @@ -151,7 +145,8 @@ (defmethod sql.qp/unix-timestamp->timestamp [:oracle :seconds] [_ _ field-or-value] - (hx/+ date-1970-01-01 (num-to-ds-interval :second field-or-value))) + (hx/+ (hsql/raw "timestamp '1970-01-01 00:00:00 UTC'") + (num-to-ds-interval :second field-or-value))) (defmethod sql.qp/unix-timestamp->timestamp [:oracle :milliseconds] [driver _ field-or-value] @@ -228,7 +223,8 @@ :rows (for [row rows] (butlast row))})) -(defmethod driver/humanize-connection-error-message :oracle [_ message] +(defmethod driver/humanize-connection-error-message :oracle + [_ message] ;; if the connection error message is caused by the assertion above checking whether sid or service-name is set, ;; return a slightly nicer looking version. Otherwise just return message as-is (if (str/includes? message "(or sid service-name)") @@ -238,10 +234,12 @@ (defmethod driver/execute-query :oracle [driver query] (remove-rownum-column ((get-method driver/execute-query :sql-jdbc) driver query))) -(defmethod driver.common/current-db-time-date-formatters :oracle [_] +(defmethod driver.common/current-db-time-date-formatters :oracle + [_] (driver.common/create-db-time-formatters "yyyy-MM-dd HH:mm:ss.SSS zzz")) -(defmethod driver.common/current-db-time-native-query :oracle [_] +(defmethod driver.common/current-db-time-native-query :oracle + [_] "select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS.FF3 TZD') FROM DUAL") (defmethod driver/current-db-time :oracle [& args] @@ -249,7 +247,8 @@ ;; don't redef if already definied -- test extensions override this impl (when-not (get (methods sql-jdbc.sync/excluded-schemas) :oracle) - (defmethod sql-jdbc.sync/excluded-schemas :oracle [_] + (defmethod sql-jdbc.sync/excluded-schemas :oracle + [_] #{"ANONYMOUS" ;; TODO - are there othere APEX tables we want to skip? Maybe we should make this a pattern instead? (#"^APEX_") "APEX_040200" @@ -283,22 +282,34 @@ ;; instead of returning a CLOB object, return the String. (#9026) (defmethod sql-jdbc.execute/read-column [:oracle Types/CLOB] - [_ _, ^ResultSet resultset, _, ^Integer i] - (.getString resultset i)) + [_ _ ^ResultSet rs _ ^Integer i] + (.getString rs i)) (defmethod sql-jdbc.execute/read-column [:oracle OracleTypes/TIMESTAMPTZ] - [driver calendar, ^ResultSet resultset, resultset-metadata i] - (let [m (get-method sql-jdbc.execute/read-column [:sql-jdbc Types/TIMESTAMP_WITH_TIMEZONE]) - v (m driver calendar resultset resultset-metadata i)] - (or - (when (instance? oracle.sql.TIMESTAMPTZ v) - (let [connection (.. resultset getStatement getConnection)] - (when (and (instance? NewProxyConnection connection) - (.isWrapperFor ^NewProxyConnection connection OracleConnection)) - (let [^OracleConnection oracle-connection (.unwrap ^NewProxyConnection connection OracleConnection)] - (.timestampValue ^oracle.sql.TIMESTAMPTZ v oracle-connection))))) - v))) - -(defmethod unprepare/unprepare-value [:oracle Date] - [_ value] - (format "timestamp '%s'" (du/format-date "yyyy-MM-dd HH:mm:ss.SSS ZZ" value))) + [driver _ ^ResultSet rs _ ^Integer i] + ;; Oracle `TIMESTAMPTZ` types can have either a zone offset *or* a zone ID; you could fetch either `OffsetDateTime` + ;; or `ZonedDateTime` using `.getObject`, but fetching the wrong type will result in an Exception, meaning we have + ;; try both and wrap the first in a try-catch. As far as I know there's now way to tell whether the value has a zone + ;; offset or ID without first fetching a `TIMESTAMPTZ` object. So to avoid the try-catch we can fetch the + ;; `TIMESTAMPTZ` and use `.offsetDateTimeValue` instead. + (let [^TIMESTAMPTZ t (.getObject rs i TIMESTAMPTZ) + ^C3P0ProxyConnection proxy-conn (.. rs getStatement getConnection) + conn (.unwrap proxy-conn OracleConnection)] + ;; TIMEZONE FIXME - we need to warn if the Oracle JDBC driver is `ojdbc7.jar`, which probably won't have this method + ;; I think we can call `(oracle.jdbc.OracleDriver/getJDBCVersion)` and check whether it returns 4.2+ + (.offsetDateTimeValue t conn))) + +(defmethod unprepare/unprepare-value [:oracle OffsetDateTime] + [_ t] + (let [s (-> (t/format "yyyy-MM-dd HH:mm:ss.SSS ZZZZZ" t) + ;; Oracle doesn't like `Z` to mean UTC + (str/replace #"Z$" "UTC"))] + (format "timestamp '%s'" s))) + +(defmethod unprepare/unprepare-value [:oracle ZonedDateTime] + [_ t] + (format "timestamp '%s'" (t/format "yyyy-MM-dd HH:mm:ss.SSS VV" t))) + +(defmethod unprepare/unprepare-value [:oracle Instant] + [driver t] + (unprepare/unprepare-value driver (t/zoned-date-time t (t/zone-id "UTC")))) diff --git a/modules/drivers/oracle/test/metabase/driver/oracle_test.clj b/modules/drivers/oracle/test/metabase/driver/oracle_test.clj index 5c144075d2dcc82f8530f2d4413e541c3ce37324..6acbea284b963687d05360cc468859e8acae8c4a 100644 --- a/modules/drivers/oracle/test/metabase/driver/oracle_test.clj +++ b/modules/drivers/oracle/test/metabase/driver/oracle_test.clj @@ -28,36 +28,32 @@ [toucan.util.test :as tt])) (deftest connection-details->spec-test - (are [message expected-spec details] (is (= expected-spec - (sql-jdbc.conn/connection-details->spec :oracle details)) - message) - "You should be able to connect with an SID" - {:classname "oracle.jdbc.OracleDriver" - :subprotocol "oracle:thin" - :subname "@localhost:1521:ORCL" - :oracle.jdbc.J2EE13Compliant true} - {:host "localhost" - :port 1521 - :sid "ORCL"} - - "You should be able to specify a Service Name with no SID" - {:classname "oracle.jdbc.OracleDriver" - :subprotocol "oracle:thin" - :subname "@localhost:1521/MyCoolService" - :oracle.jdbc.J2EE13Compliant true} - {:host "localhost" - :port 1521 - :service-name "MyCoolService"} - - "You should be able to specifiy a Service Name *and* an SID" - {:classname "oracle.jdbc.OracleDriver" - :subprotocol "oracle:thin" - :subname "@localhost:1521:ORCL/MyCoolService" - :oracle.jdbc.J2EE13Compliant true} - {:host "localhost" - :port 1521 - :service-name "MyCoolService" - :sid "ORCL"})) + (doseq [[message expected-spec details] + [["You should be able to connect with an SID" + {:classname "oracle.jdbc.OracleDriver" + :subprotocol "oracle:thin" + :subname "@localhost:1521:ORCL"} + {:host "localhost" + :port 1521 + :sid "ORCL"}] + ["You should be able to specify a Service Name with no SID" + {:classname "oracle.jdbc.OracleDriver" + :subprotocol "oracle:thin" + :subname "@localhost:1521/MyCoolService"} + {:host "localhost" + :port 1521 + :service-name "MyCoolService"}] + ["You should be able to specifiy a Service Name *and* an SID" + {:classname "oracle.jdbc.OracleDriver" + :subprotocol "oracle:thin" + :subname "@localhost:1521:ORCL/MyCoolService"} + {:host "localhost" + :port 1521 + :service-name "MyCoolService" + :sid "ORCL"}]]] + (is (= expected-spec + (sql-jdbc.conn/connection-details->spec :oracle details)) + message))) ;; no SID and not Service Name should throw an exception (expect diff --git a/modules/drivers/oracle/test/metabase/test/data/oracle.clj b/modules/drivers/oracle/test/metabase/test/data/oracle.clj index ac12b9a6ba50aa9c59e4f458f1e3a66ebb261d35..667e12be955e2290bb85679f0f4cbdf06034942c 100644 --- a/modules/drivers/oracle/test/metabase/test/data/oracle.clj +++ b/modules/drivers/oracle/test/metabase/test/data/oracle.clj @@ -46,15 +46,19 @@ (defmethod tx/sorts-nil-first? :oracle [_] false) -(doseq [[base-type sql-type] {:type/BigInteger "NUMBER(*,0)" - :type/Boolean "NUMBER(1)" - :type/Date "DATE" - :type/DateTime "TIMESTAMP" - :type/DateTimeWithTZ "TIMESTAMP WITH TIME ZONE" - :type/Decimal "DECIMAL" - :type/Float "BINARY_FLOAT" - :type/Integer "INTEGER" - :type/Text "VARCHAR2(4000)"}] +(doseq [[base-type sql-type] {:type/BigInteger "NUMBER(*,0)" + :type/Boolean "NUMBER(1)" + :type/Date "DATE" + :type/Temporal "TIMESTAMP" + :type/DateTime "TIMESTAMP" + :type/DateTimeWithTZ "TIMESTAMP WITH TIME ZONE" + :type/DateTimeWithLocalTZ "TIMESTAMP WITH LOCAL TIME ZONE" + :type/DateTimeWithZoneOffset "TIMESTAMP WITH TIME ZONE" + :type/DateTimeWithZoneID "TIMESTAMP WITH TIME ZONE" + :type/Decimal "DECIMAL" + :type/Float "BINARY_FLOAT" + :type/Integer "INTEGER" + :type/Text "VARCHAR2(4000)"}] (defmethod sql.tx/field-base-type->sql-type [:oracle base-type] [_ _] sql-type)) ;; If someone tries to run Time column tests with Oracle give them a heads up that Oracle does not support it @@ -169,9 +173,11 @@ (u/ignore-exceptions (execute! "DROP USER %s CASCADE" username))) -(defmethod tx/before-run :oracle [_] +(defmethod tx/before-run :oracle + [_] (drop-user! session-schema) (create-user! session-schema)) -(defmethod tx/after-run :oracle [_] +(defmethod tx/after-run :oracle + [_] (drop-user! session-schema)) diff --git a/modules/drivers/presto/project.clj b/modules/drivers/presto/project.clj index 3b1e234c857cab24c30a96eef549be4ce3cb77b8..037b559f262457a51e139b5aa6dc62f0798f94c4 100644 --- a/modules/drivers/presto/project.clj +++ b/modules/drivers/presto/project.clj @@ -3,7 +3,9 @@ :profiles {:provided - {:dependencies [[metabase-core "1.0.0-SNAPSHOT"]]} + {:dependencies + [[org.clojure/clojure "1.10.1"] + [metabase-core "1.0.0-SNAPSHOT"]]} :uberjar {:auto-clean true diff --git a/modules/drivers/presto/src/metabase/driver/presto.clj b/modules/drivers/presto/src/metabase/driver/presto.clj index 3449aa1dd4496b136f140216f75221a3cf92a6e3..a725a45aa8720116685dbe081c65fa49e8fc48ba 100644 --- a/modules/drivers/presto/src/metabase/driver/presto.clj +++ b/modules/drivers/presto/src/metabase/driver/presto.clj @@ -1,10 +1,6 @@ (ns metabase.driver.presto "Presto driver. See https://prestodb.io/docs/current/ for complete dox." (:require [clj-http.client :as http] - [clj-time - [coerce :as tcoerce] - [core :as time] - [format :as tformat]] [clojure [set :as set] [string :as str]] @@ -12,6 +8,7 @@ [honeysql [core :as hsql] [helpers :as h]] + [java-time :as t] [metabase [driver :as driver] [util :as u]] @@ -22,16 +19,17 @@ [metabase.driver.sql.util.unprepare :as unprepare] [metabase.query-processor [store :as qp.store] + [timezone :as qp.timezone] [util :as qputil]] [metabase.util - [date :as du] + [date-2 :as u.date] [honeysql-extensions :as hx] - [i18n :refer [trs]] + [i18n :refer [trs tru]] [schema :as su] [ssh :as ssh]] [schema.core :as s]) (:import java.sql.Time - java.util.Date)) + [java.time OffsetDateTime ZonedDateTime])) (driver/register! :presto, :parent :sql) @@ -48,12 +46,12 @@ (str (if ssl "https" "http") "://" host ":" port path)) -(defn- details->request [{:keys [user password catalog report-timezone]}] +(defn- details->request [{:keys [user password catalog]}] (merge {:headers (merge {"X-Presto-Source" "metabase" "X-Presto-User" user} (when catalog {"X-Presto-Catalog" catalog}) - (when report-timezone + (when-let [report-timezone (qp.timezone/report-timezone-id-if-supported)] {"X-Presto-Time-Zone" report-timezone}))} (when password {:basic-auth [user password]}))) @@ -63,59 +61,34 @@ ;; break SSH tunneling as the host in the cancel-uri is different if it's enabled (str/replace cancel-uri (str host ":" port) (get (str/split info-uri #"/") 2))) -(defn- parse-time-with-tz [s] - ;; Try parsing with offset first then with full ZoneId - (or (u/ignore-exceptions (du/parse-date "HH:mm:ss.SSS ZZ" s)) - (du/parse-date "HH:mm:ss.SSS ZZZ" s))) - -(defn- parse-timestamp-with-tz [s] - ;; Try parsing with offset first then with full ZoneId - (or (u/ignore-exceptions (du/parse-date "yyyy-MM-dd HH:mm:ss.SSS ZZ" s)) - (du/parse-date "yyyy-MM-dd HH:mm:ss.SSS ZZZ" s))) - -(def ^:private presto-date-time-formatter - (du/->DateTimeFormatter "yyyy-MM-dd HH:mm:ss.SSS")) - -(defn- parse-presto-time - "Parsing time from presto using a specific formatter rather than the utility functions as this will be called on each - row returned, so performance is important" - [time-str] - (->> time-str - (du/parse-date :hour-minute-second-ms) - tcoerce/to-long - Time.)) - -(defn- field-type->parser [report-timezone field-type] +(defn- field-type->parser [field-type] (condp re-matches field-type #"decimal.*" bigdec - #"time" parse-presto-time - #"time with time zone" parse-time-with-tz - #"timestamp" (partial du/parse-date - (if-let [report-tz (and report-timezone - (time/time-zone-for-id report-timezone))] - (tformat/with-zone presto-date-time-formatter report-tz) - presto-date-time-formatter)) - #"timestamp with time zone" parse-timestamp-with-tz + #"time" #(u.date/parse % (qp.timezone/results-timezone-id)) + #"time with time zone" #(u.date/parse % (qp.timezone/results-timezone-id)) + #"timestamp" #(u.date/parse % (qp.timezone/results-timezone-id)) + #"timestamp with time zone" #(u.date/parse % (qp.timezone/results-timezone-id)) #".*" identity)) -(defn- parse-presto-results [report-timezone columns data] - (let [parsers (map (comp #(field-type->parser report-timezone %) :type) columns)] +(defn- parse-presto-results [columns data] + (let [parsers (map (comp field-type->parser :type) columns)] (for [row data] (vec (for [[value parser] (partition 2 (interleave row parsers))] - (when (some? value) - (parser value))))))) + (u/prog1 (when (some? value) + (parser value)) + (log/tracef "Parse %s -> %s" (pr-str value) (pr-str <>)))))))) (defn- fetch-presto-results! [details {prev-columns :columns, prev-rows :rows} uri] (let [{{:keys [columns data nextUri error]} :body} (http/get uri (assoc (details->request details) :as :json))] (when error - (throw (ex-info (or (:message error) "Error running query.") error))) - (let [rows (parse-presto-results (:report-timezone details) columns data) + (throw (ex-info (or (:message error) (tru "Error running query.")) error))) + (let [rows (parse-presto-results columns data) results {:columns (or columns prev-columns) :rows (vec (concat prev-rows rows))}] (if (nil? nextUri) results - (do (Thread/sleep 100) ; Might not be the best way, but the pattern is that we poll Presto at intervals + (do (Thread/sleep 100) ; Might not be the best way, but the pattern is that we poll Presto at intervals (fetch-presto-results! details results nextUri)))))) (defn- execute-presto-query! @@ -129,7 +102,7 @@ :body query, :as :json, :redirect-strategy :lax))] (when error (throw (ex-info (or (:message error) "Error preparing query.") error))) - (let [rows (parse-presto-results (:report-timezone details) (or columns []) (or data [])) + (let [rows (parse-presto-results (or columns []) (or data [])) results {:columns (or columns []) :rows rows}] (if (nil? nextUri) @@ -147,7 +120,7 @@ (try (let [tunneledUri (details->uri details-with-tunnel (str "/v1/query/" id)) adjustedUri (create-cancel-url tunneledUri (get details :host) (get details :port) infoUri)] - (http/delete adjustedUri(details->request details-with-tunnel))) + (http/delete adjustedUri (details->request details-with-tunnel))) ;; If we fail to cancel the query, log it but propogate the interrupted exception, instead of ;; covering it up with a failed cancel (catch Exception e @@ -233,37 +206,35 @@ [_ bool] (hsql/raw (if bool "TRUE" "FALSE"))) -(defmethod sql.qp/->honeysql [:presto Date] - [_ date] - (hsql/call :from_iso8601_timestamp (hx/literal (du/date->iso-8601 date)))) - (defmethod sql.qp/->honeysql [:presto :stddev] [driver [_ field]] (hsql/call :stddev_samp (sql.qp/->honeysql driver field))) -(def ^:private time-format (tformat/formatter "HH:mm:SS.SSS")) - -(defn- time->str - ([t] - (time->str t nil)) - ([t tz-id] - (let [tz (time/time-zone-for-id tz-id)] - (tformat/unparse (tformat/with-zone time-format tz) (tcoerce/to-date-time t))))) - (defmethod sql.qp/->honeysql [:presto :time] - [_ [_ value]] - (hx/cast :time (time->str value (driver/report-timezone)))) - -(defmethod unprepare/unprepare-value [:presto Date] [_ value] - (unprepare/unprepare-date-with-iso-8601-fn :from_iso8601_timestamp value)) - -(prefer-method unprepare/unprepare-value [:sql Time] [:presto Date]) - -(defmethod driver/execute-query :presto [driver {database-id :database - :keys [settings] - {sql :query, params :params} :native - query-type :type - :as outer-query}] + [_ [_ t]] + (hx/cast :time (u.date/format-sql (t/local-time t)))) + +;; See https://prestodb.io/docs/current/functions/datetime.html + +;; This is only needed for test purposes, because some of the sample data still uses legacy types +(defmethod unprepare/unprepare-value [:presto Time] + [driver t] + (unprepare/unprepare-value driver (t/local-time t))) + +(defmethod unprepare/unprepare-value [:presto OffsetDateTime] + [_ t] + (format "timestamp '%s %s %s'" (t/local-date t) (t/local-time t) (t/zone-offset t))) + +(defmethod unprepare/unprepare-value [:presto ZonedDateTime] + [_ t] + (format "timestamp '%s %s %s'" (t/local-date t) (t/local-time t) (t/zone-id t))) + +(defmethod driver/execute-query :presto + [driver {database-id :database + :keys [settings] + {sql :query, params :params} :native + query-type :type + :as outer-query}] (let [sql (str "-- " (qputil/query->remark outer-query) "\n" (unprepare/unprepare driver (cons sql params))) @@ -282,8 +253,8 @@ (when (= query-type :native) {:cols columns})))) - -(defmethod driver/humanize-connection-error-message :presto [_ message] +(defmethod driver/humanize-connection-error-message :presto + [_ message] (condp re-matches message #"^java.net.ConnectException: Connection refused.*$" (driver.common/connection-error-messages :cannot-connect-check-host-and-port) @@ -297,10 +268,10 @@ #".*" ; default message)) +;;; `:sql-driver` methods -;;; ISQLDriver implementation - -(defmethod sql.qp/apply-top-level-clause [:presto :page] [_ _ honeysql-query {{:keys [items page]} :page}] +(defmethod sql.qp/apply-top-level-clause [:presto :page] + [_ _ honeysql-query {{:keys [items page]} :page}] (let [offset (* (dec page) items)] (if (zero? offset) ;; if there's no offset we can simply use limit @@ -327,14 +298,16 @@ (defmethod sql.qp/date [:presto :day-of-year] [_ _ expr] (hsql/call :day_of_year expr)) ;; Similar to DoW, sicne Presto is ISO compliant the week starts on Monday, we need to shift that to Sunday -(defmethod sql.qp/date [:presto :week] [_ _ expr] +(defmethod sql.qp/date [:presto :week] + [_ _ expr] (hsql/call :date_add (hx/literal :day) -1 (hsql/call :date_trunc (hx/literal :week) (hsql/call :date_add (hx/literal :day) 1 expr)))) ;; Offset by one day forward to "fake" a Sunday starting week -(defmethod sql.qp/date [:presto :week-of-year] [_ _ expr] +(defmethod sql.qp/date [:presto :week-of-year] + [_ _ expr] (hsql/call :week (hsql/call :date_add (hx/literal :day) 1 expr))) (defmethod sql.qp/date [:presto :month] [_ _ expr] (hsql/call :date_trunc (hx/literal :month) expr)) @@ -346,7 +319,6 @@ (defmethod sql.qp/unix-timestamp->timestamp [:presto :seconds] [_ _ expr] (hsql/call :from_unixtime expr)) - (defmethod driver.common/current-db-time-date-formatters :presto [_] (driver.common/create-db-time-formatters "yyyy-MM-dd'T'HH:mm:ss.SSSZ")) diff --git a/modules/drivers/presto/test/metabase/driver b/modules/drivers/presto/test/metabase/driver deleted file mode 100644 index 561b0716b5a3bd760949fe0f85c198a46f4a661e..0000000000000000000000000000000000000000 --- a/modules/drivers/presto/test/metabase/driver +++ /dev/null @@ -1,179 +0,0 @@ -(ns metabase.driver.presto-test - (:require [clj-http.client :as http] - [expectations :refer [expect]] - [metabase.db.metadata-queries :as metadata-queries] - [metabase.driver :as driver] - [metabase.driver - [presto :as presto] - [util :as driver.u]] - [metabase.driver.sql.query-processor :as sql.qp] - [metabase.models - [field :refer [Field]] - [table :as table :refer [Table]]] - [metabase.test - [data :as data] - [util :as tu]] - [metabase.test.data.datasets :as datasets] - [metabase.test.util.log :as tu.log] - [toucan.db :as db])) - -;;; HELPERS - -(expect - "http://localhost:8080/" - (#'presto/details->uri {:host "localhost", :port 8080, :catalog "Sears", :ssl false} "/")) - -(expect - "https://localhost:8443/" - (#'presto/details->uri {:host "localhost", :port 8443, :catalog "Sears", :ssl true} "/")) - -(expect - "http://localhost:8080/v1/statement" - (#'presto/details->uri {:host "localhost", :port 8080, :catalog "Sears", :ssl false} "/v1/statement")) - -(expect - {:headers {"X-Presto-Source" "metabase" - "X-Presto-User" "user"}} - (#'presto/details->request {:user "user"})) - -(expect - {:headers {"X-Presto-Source" "metabase" - "X-Presto-User" "user"} - :basic-auth ["user" "test"]} - (#'presto/details->request {:user "user", :password "test"})) - -(expect - {:headers {"X-Presto-Source" "metabase" - "X-Presto-User" "user" - "X-Presto-Catalog" "test_data" - "X-Presto-Time-Zone" "America/Toronto"}} - (#'presto/details->request {:user "user", :catalog "test_data", :report-timezone "America/Toronto"})) - -(expect - [["2017-04-03" - #inst "2017-04-03T14:19:17.417000000-00:00" - #inst "2017-04-03T10:19:17.417000000-00:00" - 3.1416M - "test"]] - (#'presto/parse-presto-results - nil - [{:type "date"} {:type "timestamp with time zone"} {:type "timestamp"} {:type "decimal(10,4)"} {:type "varchar(255)"}] - [["2017-04-03", "2017-04-03 10:19:17.417 America/Toronto", "2017-04-03 10:19:17.417", "3.1416", "test"]])) - -(expect - [[0, false, "", nil]] - (#'presto/parse-presto-results nil - [{:type "integer"} {:type "boolean"} {:type "varchar(255)"} {:type "date"}] - [[0, false, "", nil]])) - -(expect - "\"weird.table\"\" name\"" - (#'presto/quote-name "weird.table\" name")) - -(expect - "\"weird . \"\"schema\".\"weird.table\"\" name\"" - (#'presto/quote+combine-names "weird . \"schema" "weird.table\" name")) - -;; DESCRIBE-DATABASE -(datasets/expect-with-driver :presto - {:tables #{{:name "test_data_categories" :schema "default"} - {:name "test_data_venues" :schema "default"} - {:name "test_data_checkins" :schema "default"} - {:name "test_data_users" :schema "default"}}} - (-> (driver/describe-database :presto (data/db)) - (update :tables (comp set (partial filter (comp #{"test_data_categories" - "test_data_venues" - "test_data_checkins" - "test_data_users"} - :name)))))) - -;; DESCRIBE-TABLE -(datasets/expect-with-driver :presto - {:name "test_data_venues" - :schema "default" - :fields #{{:name "name", - :database-type "varchar(255)" - :base-type :type/Text} - {:name "latitude" - :database-type "double" - :base-type :type/Float} - {:name "longitude" - :database-type "double" - :base-type :type/Float} - {:name "price" - :database-type "integer" - :base-type :type/Integer} - {:name "category_id" - :database-type "integer" - :base-type :type/Integer} - {:name "id" - :database-type "integer" - :base-type :type/Integer}}} - (driver/describe-table :presto (data/db) (db/select-one 'Table :id (data/id :venues)))) - -;;; TABLE-ROWS-SAMPLE -(datasets/expect-with-driver :presto - [["Red Medicine"] - ["Stout Burgers & Beers"] - ["The Apple Pan"] - ["Wurstküche"] - ["Brite Spot Family Restaurant"]] - (take 5 (metadata-queries/table-rows-sample (Table (data/id :venues)) - [(Field (data/id :venues :name))]))) - - -;;; APPLY-PAGE -(expect - {:select ["name" "id"] - :from [{:select [[:default.categories.name "name"] - [:default.categories.id "id"] - [{:s "row_number() OVER (ORDER BY \"default\".\"categories\".\"id\" ASC)"} :__rownum__]] - :from [:default.categories] - :order-by [[:default.categories.id :asc]]}] - :where [:> :__rownum__ 5] - :limit 5} - (sql.qp/apply-top-level-clause :presto :page - {:select [[:default.categories.name "name"] [:default.categories.id "id"]] - :from [:default.categories] - :order-by [[:default.categories.id :asc]]} - {:page {:page 2 - :items 5}})) - -(expect - #"com.jcraft.jsch.JSchException:" - (try - (let [details {:ssl false - :password "changeme" - :tunnel-host "localhost" - :tunnel-pass "BOGUS-BOGUS" - :catalog "BOGUS" - :host "localhost" - :port 9999 - :tunnel-enabled true - :tunnel-port 22 - :tunnel-user "bogus"}] - (tu.log/suppress-output - (driver.u/can-connect-with-details? :presto details :throw-exceptions))) - (catch Exception e - (.getMessage e)))) - -(datasets/expect-with-driver :presto - "UTC" - (tu/db-timezone-id)) - -;; Query cancellation test, needs careful coordination between the query thread, cancellation thread to ensure -;; everything works correctly together -(datasets/expect-with-driver :presto - [false ;; Ensure the query promise hasn't fired yet - false ;; Ensure the cancellation promise hasn't fired yet - true ;; Was query called? - false ;; Cancel should not have been called yet - true ;; Cancel should have been called now - true ;; The paused query can proceed now - ] - (tu/call-with-paused-query - (fn [query-thunk called-query? called-cancel? pause-query] - (future - (with-redefs [presto/fetch-presto-results! (fn [_ _ _] (deliver called-query? true) @pause-query) - http/delete (fn [_ _] (deliver called-cancel? true))] - (query-thunk)))))) diff --git a/modules/drivers/presto/test/metabase/driver/presto_test.clj b/modules/drivers/presto/test/metabase/driver/presto_test.clj new file mode 100644 index 0000000000000000000000000000000000000000..bab4c54dc7094ea2755c29b50d721597cf06911d --- /dev/null +++ b/modules/drivers/presto/test/metabase/driver/presto_test.clj @@ -0,0 +1,185 @@ +(ns metabase.driver.presto-test + (:require [clj-http.client :as http] + [clojure.test :refer :all] + [expectations :refer [expect]] + [java-time :as t] + [metabase + [driver :as driver] + [query-processor :as qp] + [query-processor-test :as qp.test] + [test :as mt]] + [metabase.db.metadata-queries :as metadata-queries] + [metabase.driver + [presto :as presto] + [util :as driver.u]] + [metabase.driver.sql.query-processor :as sql.qp] + [metabase.models + [field :refer [Field]] + [table :as table :refer [Table]]] + [metabase.query-processor.test-util :as qp.test-util] + [metabase.test + [data :as data] + [util :as tu]] + [metabase.test.data.datasets :as datasets] + [metabase.test.util.log :as tu.log] + [toucan.db :as db])) + +(deftest details->uri-test + (is (= "http://localhost:8080/" + (#'presto/details->uri {:host "localhost", :port 8080, :catalog "Sears", :ssl false} "/"))) + (is (= "https://localhost:8443/" + (#'presto/details->uri {:host "localhost", :port 8443, :catalog "Sears", :ssl true} "/"))) + (is (= "http://localhost:8080/v1/statement" + (#'presto/details->uri {:host "localhost", :port 8080, :catalog "Sears", :ssl false} "/v1/statement")))) + +(deftest details->request-test + (driver/with-driver :presto + (is (= {:headers {"X-Presto-Source" "metabase" + "X-Presto-User" "user"}} + (mt/with-report-timezone-id nil + (#'presto/details->request {:user "user"})))) + (is (= {:headers {"X-Presto-Source" "metabase" + "X-Presto-User" "user"} + :basic-auth ["user" "test"]} + (mt/with-report-timezone-id nil + (#'presto/details->request {:user "user", :password "test"})))) + (is (= {:headers {"X-Presto-Source" "metabase" + "X-Presto-User" "user" + "X-Presto-Catalog" "test_data" + "X-Presto-Time-Zone" "America/Toronto"}} + (mt/with-report-timezone-id "America/Toronto" + (#'presto/details->request {:user "user", :catalog "test_data"})))))) + +(deftest parse-results-test + (driver/with-driver :presto + (qp.test-util/with-everything-store + (is (= [["2017-04-03" + (t/zoned-date-time "2017-04-03T10:19:17.417-04:00[America/Toronto]") + (t/zoned-date-time "2017-04-03T10:19:17.417Z[UTC]") + 3.1416M + "test"]] + (#'presto/parse-presto-results + [{:type "date"} {:type "timestamp with time zone"} {:type "timestamp"} {:type "decimal(10,4)"} {:type "varchar(255)"}] + [["2017-04-03", "2017-04-03 10:19:17.417 America/Toronto", "2017-04-03 10:19:17.417", "3.1416", "test"]]))) + (is (= + [[0, false, "", nil]] + (#'presto/parse-presto-results + [{:type "integer"} {:type "boolean"} {:type "varchar(255)"} {:type "date"}] + [[0, false, "", nil]])))))) + +(deftest describe-database-test + (datasets/test-driver :presto + (is (= {:tables #{{:name "test_data_categories" :schema "default"} + {:name "test_data_venues" :schema "default"} + {:name "test_data_checkins" :schema "default"} + {:name "test_data_users" :schema "default"}}} + (-> (driver/describe-database :presto (data/db)) + (update :tables (comp set (partial filter (comp #{"test_data_categories" + "test_data_venues" + "test_data_checkins" + "test_data_users"} + :name))))))))) + +(deftest describe-table-test + (datasets/test-driver :presto + (is (= {:name "test_data_venues" + :schema "default" + :fields #{{:name "name", + :database-type "varchar(255)" + :base-type :type/Text} + {:name "latitude" + :database-type "double" + :base-type :type/Float} + {:name "longitude" + :database-type "double" + :base-type :type/Float} + {:name "price" + :database-type "integer" + :base-type :type/Integer} + {:name "category_id" + :database-type "integer" + :base-type :type/Integer} + {:name "id" + :database-type "integer" + :base-type :type/Integer}}} + (driver/describe-table :presto (data/db) (db/select-one 'Table :id (data/id :venues))))))) + +;;; TABLE-ROWS-SAMPLE +(datasets/expect-with-driver :presto + [["Red Medicine"] + ["Stout Burgers & Beers"] + ["The Apple Pan"] + ["Wurstküche"] + ["Brite Spot Family Restaurant"]] + (take 5 (metadata-queries/table-rows-sample (Table (data/id :venues)) + [(Field (data/id :venues :name))]))) + + +;;; APPLY-PAGE +(expect + {:select ["name" "id"] + :from [{:select [[:default.categories.name "name"] + [:default.categories.id "id"] + [{:s "row_number() OVER (ORDER BY \"default\".\"categories\".\"id\" ASC)"} :__rownum__]] + :from [:default.categories] + :order-by [[:default.categories.id :asc]]}] + :where [:> :__rownum__ 5] + :limit 5} + (sql.qp/apply-top-level-clause :presto :page + {:select [[:default.categories.name "name"] [:default.categories.id "id"]] + :from [:default.categories] + :order-by [[:default.categories.id :asc]]} + {:page {:page 2 + :items 5}})) + +(expect + "Hmm, we couldn't connect to the database. Make sure your host and port settings are correct" + (try + (let [details {:ssl false + :password "changeme" + :tunnel-host "localhost" + :tunnel-pass "BOGUS-BOGUS" + :catalog "BOGUS" + :host "localhost" + :port 9999 + :tunnel-enabled true + :tunnel-port 22 + :tunnel-user "bogus"}] + (tu.log/suppress-output + (driver.u/can-connect-with-details? :presto details :throw-exceptions))) + (catch Exception e + (.getMessage e)))) + +(datasets/expect-with-driver :presto + "UTC" + (tu/db-timezone-id)) + +;; Query cancellation test, needs careful coordination between the query thread, cancellation thread to ensure +;; everything works correctly together +(deftest query-cancelation-test + (datasets/test-driver :presto + (let [called-cancel-promise (atom nil)] + (with-redefs [http/delete (fn [& _] + (deliver @called-cancel-promise true))] + (is (= ::tu/success + (tu/call-with-paused-query + (fn [query-thunk called-query? called-cancel? pause-query] + (reset! called-cancel-promise called-cancel?) + (future + (with-redefs [presto/fetch-presto-results! (fn [_ _ _] (deliver called-query? true) @pause-query)] + (query-thunk))))))))))) + +(deftest template-tag-timezone-test + (datasets/test-driver :presto + (testing "Make sure date params work correctly when report timezones are set (#10487)" + (tu/with-temporary-setting-values [report-timezone "Asia/Hong_Kong"] + (is (= [["2014-08-02T00:00:00+08:00" "2014-08-02"]] + (qp.test/rows + (qp/process-query + {:database (data/id) + :type :native + :native {:query "SELECT {{date}}, cast({{date}} AS date)" + :template-tags {:date {:name "date" :display_name "Date" :type "date"}}} + :parameters [{:type "date/single" + :target ["variable" ["template-tag" "date"]] + :value "2014-08-02"}]})))))))) diff --git a/modules/drivers/presto/test/metabase/test/data/presto.clj b/modules/drivers/presto/test/metabase/test/data/presto.clj index fa6762435860931e3023033396da001e2e6fadd7..a32106854f202aeeaed81b798a64a59c6b9fb553 100644 --- a/modules/drivers/presto/test/metabase/test/data/presto.clj +++ b/modules/drivers/presto/test/metabase/test/data/presto.clj @@ -1,6 +1,7 @@ (ns metabase.test.data.presto "Presto driver test extensions." (:require [clojure.string :as str] + [clojure.tools.logging :as log] [honeysql [core :as hsql] [helpers :as h]] @@ -12,8 +13,7 @@ [metabase.driver.sql.util.unprepare :as unprepare] [metabase.test.data [interface :as tx] - [sql :as sql.tx]]) - (:import java.util.Date)) + [sql :as sql.tx]])) (sql.tx/add-test-extensions! :presto) @@ -27,7 +27,8 @@ ;; `db-qualified-table-name` like everyone else. (def ^:private test-catalog-name "test-data") -(defmethod tx/dbdef->connection-details :presto [_ context {:keys [database-name]}] +(defmethod tx/dbdef->connection-details :presto + [_ context {:keys [database-name]}] (merge {:host (tx/db-test-env-var-or-throw :presto :host "localhost") :port (tx/db-test-env-var-or-throw :presto :port "8080") :user (tx/db-test-env-var-or-throw :presto :user "metabase") @@ -71,7 +72,8 @@ (str/join \, (for [column columns] (sql.u/quote-name driver :field (tx/format-name driver column))))))) -(defmethod sql.tx/drop-table-if-exists-sql :presto [driver {:keys [database-name]} {:keys [table-name]}] +(defmethod sql.tx/drop-table-if-exists-sql :presto + [driver {:keys [database-name]} {:keys [table-name]}] (str "DROP TABLE IF EXISTS " (sql.tx/qualify-and-quote driver database-name table-name))) (defn- insert-sql [driver {:keys [database-name]} {:keys [table-name], :as tabledef} rows] @@ -82,6 +84,9 @@ (sql.tx/qualified-name-components driver database-name table-name))) (h/values rows) (hsql/format :allow-dashed-names? true, :quoting :ansi))] + (log/trace "Inserting Presto rows") + (doseq [row rows] + (log/trace (str/join ", " (map #(format "^%s %s" (.getName (class %)) (pr-str %)) row)))) (if (nil? params) query (unprepare/unprepare :presto (cons query params))))) @@ -102,7 +107,8 @@ (doseq [batch batches] (execute! (insert-sql driver dbdef tabledef batch)))))) -(defmethod tx/format-name :presto [_ s] +(defmethod tx/format-name :presto + [_ s] (str/lower-case s)) ;; FIXME Presto actually has very good timezone support diff --git a/modules/drivers/redshift/project.clj b/modules/drivers/redshift/project.clj index d6f1a5a92f4e8a4f71313d22a1344fb3acfdbb78..fb0817be19f725059da62932246eaa837d512b0f 100644 --- a/modules/drivers/redshift/project.clj +++ b/modules/drivers/redshift/project.clj @@ -10,7 +10,9 @@ :profiles {:provided - {:dependencies [[metabase-core "1.0.0-SNAPSHOT"]]} + {:dependencies + [[org.clojure/clojure "1.10.1"] + [metabase-core "1.0.0-SNAPSHOT"]]} :uberjar {:auto-clean true diff --git a/modules/drivers/redshift/src/metabase/driver/redshift.clj b/modules/drivers/redshift/src/metabase/driver/redshift.clj index 148c058e4f77a5a265021631832b0754ac3882e6..7e40a31b6103e3973b18d53aaece93f4777a7bd8 100644 --- a/modules/drivers/redshift/src/metabase/driver/redshift.clj +++ b/modules/drivers/redshift/src/metabase/driver/redshift.clj @@ -8,10 +8,13 @@ [metabase.driver.sql-jdbc [connection :as sql-jdbc.conn] [execute :as sql-jdbc.execute]] + [metabase.driver.sql-jdbc.execute.legacy-impl :as legacy] [metabase.driver.sql.query-processor :as sql.qp] - [metabase.util.honeysql-extensions :as hx])) + [metabase.util.honeysql-extensions :as hx]) + (:import java.sql.Types + java.time.OffsetTime)) -(driver/register! :redshift, :parent :postgres) +(driver/register! :redshift, :parent #{:postgres ::legacy/use-legacy-classes-for-read-and-set}) ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | metabase.driver impls | @@ -78,25 +81,30 @@ ;;; | metabase.driver.sql impls | ;;; +----------------------------------------------------------------------------------------------------------------+ -(defmethod driver/date-add :redshift [_ dt amount unit] +(defmethod driver/date-add :redshift + [_ dt amount unit] (hsql/call :dateadd (hx/literal unit) amount (hx/->timestamp dt))) -(defmethod sql.qp/unix-timestamp->timestamp [:redshift :seconds] [_ _ expr] +(defmethod sql.qp/unix-timestamp->timestamp [:redshift :seconds] + [_ _ expr] (hx/+ (hsql/raw "TIMESTAMP '1970-01-01T00:00:00Z'") (hx/* expr (hsql/raw "INTERVAL '1 second'")))) -(defmethod sql.qp/current-datetime-fn :redshift [_] +(defmethod sql.qp/current-datetime-fn :redshift + [_] :%getdate) -(defmethod sql-jdbc.execute/set-timezone-sql :redshift [_] +(defmethod sql-jdbc.execute/set-timezone-sql :redshift + [_] "SET TIMEZONE TO %s;") ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | metabase.driver.sql-jdbc impls | ;;; +----------------------------------------------------------------------------------------------------------------+ -(defmethod sql-jdbc.conn/connection-details->spec :redshift [_ {:keys [host port db], :as opts}] +(defmethod sql-jdbc.conn/connection-details->spec :redshift + [_ {:keys [host port db], :as opts}] (merge {:classname "com.amazon.redshift.jdbc.Driver" :subprotocol "redshift" @@ -104,3 +112,13 @@ :ssl true :OpenSourceSubProtocolOverride false} (dissoc opts :host :port :db))) + +(prefer-method + sql-jdbc.execute/read-column + [::legacy/use-legacy-classes-for-read-and-set Types/TIMESTAMP] + [:postgres Types/TIMESTAMP]) + +(prefer-method + sql-jdbc.execute/set-parameter + [::legacy/use-legacy-classes-for-read-and-set OffsetTime] + [:postgres OffsetTime]) diff --git a/modules/drivers/snowflake/project.clj b/modules/drivers/snowflake/project.clj index 441c506de3402ce1473216e14b283d0f1b1b9469..ea44eaa8a5e3e2d0667a5747f055b1294559c4f1 100644 --- a/modules/drivers/snowflake/project.clj +++ b/modules/drivers/snowflake/project.clj @@ -1,12 +1,14 @@ -(defproject metabase/snowflake-driver "1.0.0-SNAPSHOT-3.6.27" +(defproject metabase/snowflake-driver "1.0.0-SNAPSHOT-3.10.2" :min-lein-version "2.5.0" :dependencies - [[net.snowflake/snowflake-jdbc "3.8.0"]] + [[net.snowflake/snowflake-jdbc "3.10.2"]] :profiles {:provided - {:dependencies [[metabase-core "1.0.0-SNAPSHOT"]]} + {:dependencies + [[org.clojure/clojure "1.10.1"] + [metabase-core "1.0.0-SNAPSHOT"]]} :uberjar {:auto-clean true diff --git a/modules/drivers/snowflake/resources/metabase-plugin.yaml b/modules/drivers/snowflake/resources/metabase-plugin.yaml index 2d9b314b873a482445cd7517f0c041d72d1a68d1..a2fcc5703a8fa18d0096bb8e8c7756ab1f606734 100644 --- a/modules/drivers/snowflake/resources/metabase-plugin.yaml +++ b/modules/drivers/snowflake/resources/metabase-plugin.yaml @@ -1,6 +1,6 @@ info: name: Metabase Snowflake Driver - version: 1.0.0-SNAPSHOT-3.6.27 + version: 1.0.0-SNAPSHOT-3.10.2 description: Allows Metabase to connect to Snowflake databases. driver: name: snowflake diff --git a/modules/drivers/snowflake/src/metabase/driver/snowflake.clj b/modules/drivers/snowflake/src/metabase/driver/snowflake.clj index 013e8ef828e4dc3f774fd98282757605b5ed2256..4c428ef9e79e466e41a51eb9019ad882a0b3fb15 100644 --- a/modules/drivers/snowflake/src/metabase/driver/snowflake.clj +++ b/modules/drivers/snowflake/src/metabase/driver/snowflake.clj @@ -6,6 +6,7 @@ [clojure.java.jdbc :as jdbc] [clojure.tools.logging :as log] [honeysql.core :as hsql] + [java-time :as t] [metabase [driver :as driver] [util :as u]] @@ -17,21 +18,23 @@ [connection :as sql-jdbc.conn] [execute :as sql-jdbc.execute] [sync :as sql-jdbc.sync]] + [metabase.driver.sql-jdbc.execute.legacy-impl :as legacy] [metabase.driver.sql.query-processor :as sql.qp] [metabase.driver.sql.util.unprepare :as unprepare] [metabase.query-processor.store :as qp.store] [metabase.util - [date :as du] + [date-2 :as u.date] [honeysql-extensions :as hx] [i18n :refer [tru]]]) - (:import java.sql.Time - java.util.Date + (:import [java.sql ResultSet Types] + [java.time OffsetDateTime ZonedDateTime] metabase.util.honeysql_extensions.Identifier net.snowflake.client.jdbc.SnowflakeSQLException)) -(driver/register! :snowflake, :parent :sql-jdbc) +(driver/register! :snowflake, :parent #{:sql-jdbc ::legacy/use-legacy-classes-for-read-and-set}) -(defmethod sql-jdbc.conn/connection-details->spec :snowflake [_ {:keys [account regionid], :as opts}] +(defmethod sql-jdbc.conn/connection-details->spec :snowflake + [_ {:keys [account regionid], :as opts}] (let [host (if regionid (str account "." regionid) account)] @@ -58,7 +61,8 @@ (dissoc :host :port :timezone))) (sql-jdbc.common/handle-additional-options opts)))) -(defmethod sql-jdbc.sync/database-type->base-type :snowflake [_ base-type] +(defmethod sql-jdbc.sync/database-type->base-type :snowflake + [_ base-type] ({:NUMBER :type/Number :DECIMAL :type/Decimal :NUMERIC :type/Number @@ -88,7 +92,7 @@ :TIMESTAMP :type/DateTime :TIMESTAMPLTZ :type/DateTime :TIMESTAMPNTZ :type/DateTime - :TIMESTAMPTZ :type/DateTime + :TIMESTAMPTZ :type/DateTimeWithTZ :VARIANT :type/* ;; Maybe also type * :OBJECT :type/Dictionary @@ -185,7 +189,8 @@ [driver [_ value unit]] (hx/->time (sql.qp/->honeysql driver value))) -(defmethod sql.qp/field->identifier :snowflake [driver {table-id :table_id, :as field}] +(defmethod sql.qp/field->identifier :snowflake + [driver {table-id :table_id, :as field}] ;; TODO - Making a DB call for each field to fetch its Table is inefficient and makes me cry, but this method is ;; currently only used for SQL params so it's not a huge deal at this point ;; @@ -194,47 +199,57 @@ (sql.qp/->honeysql driver field)) -(defmethod driver/table-rows-seq :snowflake [driver database table] +(defmethod driver/table-rows-seq :snowflake + [driver database table] (sql-jdbc/query driver database {:select [:*] :from [(qp.store/with-store (qp.store/fetch-and-store-database! (u/get-id database)) (sql.qp/->honeysql driver table))]})) -(defmethod driver/describe-database :snowflake [driver database] +(defmethod driver/describe-database :snowflake + [driver database] {:tables (jdbc/with-db-metadata [metadata (sql-jdbc.conn/db->pooled-connection-spec database)] (sql-jdbc.sync/fast-active-tables driver metadata (db-name database)))}) -(defmethod driver/describe-table :snowflake [driver database table] +(defmethod driver/describe-table :snowflake + [driver database table] (jdbc/with-db-metadata [metadata (sql-jdbc.conn/db->pooled-connection-spec database)] (->> (assoc (select-keys table [:name :schema]) :fields (sql-jdbc.sync/describe-table-fields metadata driver table (db-name database))) ;; find PKs and mark them (sql-jdbc.sync/add-table-pks metadata)))) -(defmethod driver/describe-table-fks :snowflake [driver database table] +(defmethod driver/describe-table-fks :snowflake + [driver database table] (sql-jdbc.sync/describe-table-fks driver database table (db-name database))) (defmethod sql-jdbc.execute/set-timezone-sql :snowflake [_] "ALTER SESSION SET TIMEZONE = %s;") (defmethod sql.qp/current-datetime-fn :snowflake [_] :%current_timestamp) -(defmethod driver/format-custom-field-name :snowflake [_ s] +(defmethod driver/format-custom-field-name :snowflake + [_ s] (str/lower-case s)) ;; See https://docs.snowflake.net/manuals/sql-reference/data-types-datetime.html#timestamp. -(defmethod driver.common/current-db-time-date-formatters :snowflake [_] +(defmethod driver.common/current-db-time-date-formatters :snowflake + [_] (driver.common/create-db-time-formatters "yyyy-MM-dd HH:mm:ss.SSSSSSSSS Z")) -(defmethod driver.common/current-db-time-native-query :snowflake [_] +(defmethod driver.common/current-db-time-native-query :snowflake + [_] "select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS.FF TZHTZM')") -(defmethod driver/current-db-time :snowflake [& args] +(defmethod driver/current-db-time :snowflake + [& args] (apply driver.common/current-db-time args)) -(defmethod sql-jdbc.sync/excluded-schemas :snowflake [_] +(defmethod sql-jdbc.sync/excluded-schemas :snowflake + [_] #{"INFORMATION_SCHEMA"}) -(defmethod driver/can-connect? :snowflake [driver {:keys [db], :as details}] +(defmethod driver/can-connect? :snowflake + [driver {:keys [db], :as details}] (and ((get-method driver/can-connect? :sql-jdbc) driver details) (let [spec (sql-jdbc.conn/details->connection-spec-for-testing-connection driver details) sql (format "SHOW OBJECTS IN DATABASE \"%s\";" db)] @@ -245,7 +260,26 @@ (log/error e (tru "Snowflake Database does not exist.")) false))))) -(defmethod unprepare/unprepare-value [:snowflake Date] [_ value] - (format "timestamp '%s'" (du/date->iso-8601 value))) - -(prefer-method unprepare/unprepare-value [:sql Time] [:snowflake Date]) +(defmethod unprepare/unprepare-value [:snowflake OffsetDateTime] + [_ t] + (format "timestamp '%s %s %s'" (t/local-date t) (t/local-time t) (t/zone-offset t))) + +(defmethod unprepare/unprepare-value [:snowflake ZonedDateTime] + [driver t] + (unprepare/unprepare-value driver (t/offset-date-time t))) + +;; Like Vertica, Snowflake doesn't seem to be able to return a LocalTime/OffsetTime like everyone else, but it can +;; return a String that we can parse +(defmethod sql-jdbc.execute/read-column [:snowflake Types/TIME] + [_ _ ^ResultSet rs _ ^Integer i] + (let [s (.getString rs i) + t (u.date/parse s)] + (log/tracef "(.getString rs %d) [TIME] -> %s -> %s" i s t) + t)) + +(defmethod sql-jdbc.execute/read-column [:snowflake Types/TIME_WITH_TIMEZONE] + [_ _ ^ResultSet rs _ ^Integer i] + (let [s (.getString rs i) + t (u.date/parse s)] + (log/tracef "(.getString rs %d) [TIME_WITH_TIMEZONE] -> %s -> %s" i s t) + t)) diff --git a/modules/drivers/snowflake/test/metabase/driver/snowflake_test.clj b/modules/drivers/snowflake/test/metabase/driver/snowflake_test.clj index b488424345d510acbb7e17bd998be8febc098791..d767ded567741b93982e2ea79b48f9e51bf9f68a 100644 --- a/modules/drivers/snowflake/test/metabase/driver/snowflake_test.clj +++ b/modules/drivers/snowflake/test/metabase/driver/snowflake_test.clj @@ -13,7 +13,8 @@ [datasets :as datasets :refer [expect-with-driver]] [interface :as tx] [sql :as sql.tx]] - [metabase.test.data.sql.ddl :as ddl])) + [metabase.test.data.sql.ddl :as ddl] + [metabase.test.util.log :as tu.log])) ;; make sure we didn't break the code that is used to generate DDL statements when we add new test datasets (deftest ddl-statements-test @@ -90,11 +91,12 @@ (deftest can-connect-test (datasets/test-driver :snowflake - (let [can-connect? (fn [details] - (driver/can-connect? :snowflake details))] + (letfn [(can-connect? [details] + (driver/can-connect? :snowflake details))] (is (= true (can-connect? (:details (data/db)))) "can-connect? should return true for normal Snowflake DB details") (is (= false - (can-connect? (assoc (:details (data/db)) :db (tu/random-name)))) + (tu.log/suppress-output + (can-connect? (assoc (:details (data/db)) :db (tu/random-name))))) "can-connect? should return false for Snowflake databases that don't exist (#9041)")))) diff --git a/modules/drivers/snowflake/test/metabase/test/data/snowflake.clj b/modules/drivers/snowflake/test/metabase/test/data/snowflake.clj index 44c011ed4fc65f607888864ee5b8757fdc768c58..f846a160215aaacc42253e3e4b39fa852f1343fe 100644 --- a/modules/drivers/snowflake/test/metabase/test/data/snowflake.clj +++ b/modules/drivers/snowflake/test/metabase/test/data/snowflake.clj @@ -111,5 +111,6 @@ (defmethod tx/id-field-type :snowflake [_] :type/Number) -(defmethod load-data/load-data! :snowflake [& args] +(defmethod load-data/load-data! :snowflake + [& args] (apply load-data/load-data-add-ids! args)) diff --git a/modules/drivers/sparksql/project.clj b/modules/drivers/sparksql/project.clj index e9ff7741c0d749a73e9374cbc3235daeac672ce7..6b5c3b52c40fd6f22d60fbd073b8782eccb55f07 100644 --- a/modules/drivers/sparksql/project.clj +++ b/modules/drivers/sparksql/project.clj @@ -37,7 +37,8 @@ :profiles {:provided {:dependencies - [[metabase-core "1.0.0-SNAPSHOT"]]} + [[org.clojure/clojure "1.10.1"] + [metabase-core "1.0.0-SNAPSHOT"]]} :uberjar {:auto-clean true diff --git a/modules/drivers/sparksql/src/metabase/driver/hive_like.clj b/modules/drivers/sparksql/src/metabase/driver/hive_like.clj index 63587440bae8e3549b8b01c834b2cde0b07c9ae2..f1ae2c197d406d2a8f3f8ab49da8fc85e265093f 100644 --- a/modules/drivers/sparksql/src/metabase/driver/hive_like.clj +++ b/modules/drivers/sparksql/src/metabase/driver/hive_like.clj @@ -2,23 +2,28 @@ (:require [clojure.java.jdbc :as jdbc] [clojure.string :as str] [honeysql.core :as hsql] + [java-time :as t] [metabase [driver :as driver] [util :as u]] [metabase.driver.sql-jdbc [connection :as sql-jdbc.conn] + [execute :as sql-jdbc.execute] [sync :as sql-jdbc.sync]] + [metabase.driver.sql-jdbc.execute.legacy-impl :as legacy] [metabase.driver.sql.query-processor :as sql.qp] [metabase.driver.sql.util.unprepare :as unprepare] [metabase.models.table :refer [Table]] [metabase.util - [date :as du] + [date-2 :as u.date] [honeysql-extensions :as hx]] [toucan.db :as db]) - (:import [java.sql PreparedStatement Time] - java.util.Date)) + (:import [java.sql PreparedStatement ResultSet Types] + [java.time LocalDate OffsetDateTime ZonedDateTime])) -(driver/register! :hive-like, :parent :sql-jdbc, :abstract? true) +(driver/register! :hive-like + :parent #{:sql-jdbc ::legacy/use-legacy-classes-for-read-and-set} + :abstract? true) (defmethod sql-jdbc.conn/data-warehouse-connection-pool-properties :hive-like [driver] @@ -123,11 +128,13 @@ (defn- run-query "Run the query itself." - [{sql :query, :keys [params remark max-rows]} connection] + [driver {sql :query, :keys [params remark max-rows]} connection] (let [sql (str "-- " remark "\n" sql) - options {:identifiers identity - :as-arrays? true - :max-rows max-rows}] + options {:identifiers identity + :as-arrays? true + :max-rows max-rows + :read-columns (partial sql-jdbc.execute/read-columns driver) + :set-parameters (partial sql-jdbc.execute/set-parameters driver)}] (with-open [connection (jdbc/get-connection connection)] (with-open [^PreparedStatement statement (jdbc/prepare-statement connection sql options)] (let [statement (into [statement] params) @@ -137,13 +144,40 @@ (defn run-query-without-timezone "Runs the given query without trying to set a timezone" - [_ _ connection query] - (run-query query connection)) + [driver _ connection query] + (run-query driver query connection)) -(defmethod unprepare/unprepare-value [:hive-like Date] [_ value] - (format "timestamp '%s'" (du/format-date "yyyy-MM-dd HH:mm:ss.SSS" value))) +(defmethod unprepare/unprepare-value [:hive-like String] + [_ value] + (str \' (str/replace value "'" "\\\\'") \')) -(prefer-method unprepare/unprepare-value [:sql Time] [:hive-like Date]) +;; Hive/Spark SQL doesn't seem to like DATEs so convert it to a DATETIME first +(defmethod unprepare/unprepare-value [:hive-like LocalDate] + [driver t] + (unprepare/unprepare-value driver (t/local-date-time t (t/local-time 0)))) -(defmethod unprepare/unprepare-value [:hive-like String] [_ value] - (str \' (str/replace value "'" "\\\\'") \')) +(defmethod unprepare/unprepare-value [:hive-like OffsetDateTime] + [_ t] + (format "to_utc_timestamp('%s', '%s')" (u.date/format-sql (t/local-date-time t)) (t/zone-offset t))) + +(defmethod unprepare/unprepare-value [:hive-like ZonedDateTime] + [_ t] + (format "to_utc_timestamp('%s', '%s')" (u.date/format-sql (t/local-date-time t)) (t/zone-id t))) + +;; Hive/Spark SQL doesn't seem to like DATEs so convert it to a DATETIME first +(defmethod sql-jdbc.execute/set-parameter [:hive-like LocalDate] + [driver ps i t] + (sql-jdbc.execute/set-parameter driver ps i (t/local-date-time t (t/local-time 0)))) + +;; TIMEZONE FIXME — not sure what timezone the results actually come back as +(defmethod sql-jdbc.execute/read-column [:hive-like Types/TIME] + [_ _ ^ResultSet rs rsmeta ^Integer i] + (t/offset-time (t/local-time (.getTimestamp rs i)) (t/zone-offset 0))) + +(defmethod sql-jdbc.execute/read-column [:hive-like Types/DATE] + [_ _ ^ResultSet rs rsmeta ^Integer i] + (t/zoned-date-time (t/local-date (.getDate rs i)) (t/local-time 0) (t/zone-id "UTC"))) + +(defmethod sql-jdbc.execute/read-column [:hive-like Types/TIMESTAMP] + [_ _ ^ResultSet rs rsmeta ^Integer i] + (t/zoned-date-time (t/local-date-time (.getTimestamp rs i)) (t/zone-id "UTC"))) diff --git a/modules/drivers/sparksql/src/metabase/driver/sparksql.clj b/modules/drivers/sparksql/src/metabase/driver/sparksql.clj index 59b507991d149fd092128d0c35323361df3416e3..2f5ec15fdb27fa43e6ecca44141d972d2417a51b 100644 --- a/modules/drivers/sparksql/src/metabase/driver/sparksql.clj +++ b/modules/drivers/sparksql/src/metabase/driver/sparksql.clj @@ -73,7 +73,8 @@ :subname (str "//" host ":" port "/" db jdbc-flags)} (dissoc opts :host :port :jdbc-flags))) -(defmethod sql-jdbc.conn/connection-details->spec :sparksql [_ details] +(defmethod sql-jdbc.conn/connection-details->spec :sparksql + [_ details] (-> details (update :port (fn [port] (if (string? port) @@ -139,6 +140,7 @@ (let [db-connection (sql-jdbc.conn/db->pooled-connection-spec database)] (hive-like/run-query-without-timezone driver settings db-connection query)))))) + (defmethod driver/supports? [:sparksql :basic-aggregations] [_ _] true) (defmethod driver/supports? [:sparksql :binning] [_ _] true) (defmethod driver/supports? [:sparksql :expression-aggregations] [_ _] true) diff --git a/modules/drivers/sqlite/project.clj b/modules/drivers/sqlite/project.clj index e4231c7ad4b099442a566e3fd3130f578e7920d4..2a78e44a5337ee5ee2d5b39761f3255ee5e56f35 100644 --- a/modules/drivers/sqlite/project.clj +++ b/modules/drivers/sqlite/project.clj @@ -6,7 +6,9 @@ :profiles {:provided - {:dependencies [[metabase-core "1.0.0-SNAPSHOT"]]} + {:dependencies + [[org.clojure/clojure "1.10.1"] + [metabase-core "1.0.0-SNAPSHOT"]]} :uberjar {:auto-clean true diff --git a/modules/drivers/sqlite/src/metabase/driver/sqlite.clj b/modules/drivers/sqlite/src/metabase/driver/sqlite.clj index b8267595a5dc24646ff46bb911458769a8d1bdd1..1c51ab662f13f52204f74714c56eab6f909e6611 100644 --- a/modules/drivers/sqlite/src/metabase/driver/sqlite.clj +++ b/modules/drivers/sqlite/src/metabase/driver/sqlite.clj @@ -1,11 +1,9 @@ (ns metabase.driver.sqlite - (:require [clj-time - [coerce :as tcoerce] - [format :as tformat]] - [clojure.string :as str] + (:require [clojure.string :as str] [honeysql [core :as hsql] [format :as hformat]] + [java-time :as t] [metabase [config :as config] [driver :as driver]] @@ -14,19 +12,25 @@ [sql :as sql]] [metabase.driver.sql-jdbc [connection :as sql-jdbc.conn] + [execute :as sql-jdbc.execute] [sync :as sql-jdbc.sync]] + [metabase.driver.sql.parameters.substitution :as params.substitution] [metabase.driver.sql.query-processor :as sql.qp] + [metabase.query-processor.timezone :as qp.timezone] [metabase.util - [date :as du] + [date-2 :as u.date] [honeysql-extensions :as hx]] [schema.core :as s]) - (:import [java.sql Time Timestamp])) + (:import [java.sql ResultSet Types] + [java.time LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime ZonedDateTime] + java.time.temporal.Temporal)) (driver/register! :sqlite, :parent :sql-jdbc) -(defmethod sql-jdbc.conn/connection-details->spec :sqlite [_ {:keys [db] - :or {db "sqlite.db"} - :as details}] +(defmethod sql-jdbc.conn/connection-details->spec :sqlite + [_ {:keys [db] + :or {db "sqlite.db"} + :as details}] (merge {:subprotocol "sqlite" :subname db} (dissoc details :db))) @@ -52,12 +56,14 @@ [#"DATE" :type/Date] [#"TIME" :type/Time]])) -(defmethod sql-jdbc.sync/database-type->base-type :sqlite [_ database-type] +(defmethod sql-jdbc.sync/database-type->base-type :sqlite + [_ database-type] (database-type->base-type database-type)) ;; register the SQLite concatnation operator `||` with HoneySQL as `sqlite-concat` ;; (hsql/format (hsql/call :sqlite-concat :a :b)) -> "(a || b)" -(defmethod hformat/fn-handler "sqlite-concat" [_ & args] +(defmethod hformat/fn-handler "sqlite-concat" + [_ & args] (str "(" (str/join " || " (map hformat/to-sql args)) ")")) (def ^:private ->date (partial hsql/call :date)) @@ -68,40 +74,74 @@ ;; See also the [SQLite Date and Time Functions Reference](http://www.sqlite.org/lang_datefunc.html). -(defn- ts->str - "Convert Timestamps to ISO 8601 strings before passing to SQLite, otherwise they don't seem to work correctly" - [expr] - ;; See https://github.com/xerial/sqlite-jdbc/issues/88 for more context - (if (instance? Timestamp expr) - (hx/literal (du/format-date "yyyy-MM-dd HH:mm:ss" expr)) - expr)) - -(defmethod sql.qp/date [:sqlite :default] [_ _ expr] (ts->str expr)) -(defmethod sql.qp/date [:sqlite :second] [_ _ expr] (->datetime (strftime "%Y-%m-%d %H:%M:%S" (ts->str expr)))) -(defmethod sql.qp/date [:sqlite :minute] [_ _ expr] (->datetime (strftime "%Y-%m-%d %H:%M" (ts->str expr)))) -(defmethod sql.qp/date [:sqlite :minute-of-hour] [_ _ expr] (hx/->integer (strftime "%M" (ts->str expr)))) -(defmethod sql.qp/date [:sqlite :hour] [_ _ expr] (->datetime (strftime "%Y-%m-%d %H:00" (ts->str expr)))) -(defmethod sql.qp/date [:sqlite :hour-of-day] [_ _ expr] (hx/->integer (strftime "%H" (ts->str expr)))) -(defmethod sql.qp/date [:sqlite :day] [_ _ expr] (->date (ts->str expr))) +(defmethod sql.qp/date [:sqlite :default] + [driver _ expr] + (sql.qp/->honeysql driver expr)) + +(defmethod sql.qp/date [:sqlite :second] + [driver _ expr] + (->datetime (strftime "%Y-%m-%d %H:%M:%S" (sql.qp/->honeysql driver expr)))) + +(defmethod sql.qp/date [:sqlite :minute] + [driver _ expr] + (->datetime (strftime "%Y-%m-%d %H:%M" (sql.qp/->honeysql driver expr)))) + +(defmethod sql.qp/date [:sqlite :minute-of-hour] + [driver _ expr] + (hx/->integer (strftime "%M" (sql.qp/->honeysql driver expr)))) + +(defmethod sql.qp/date [:sqlite :hour] + [driver _ expr] + (->datetime (strftime "%Y-%m-%d %H:00" (sql.qp/->honeysql driver expr)))) + +(defmethod sql.qp/date [:sqlite :hour-of-day] + [driver _ expr] + (hx/->integer (strftime "%H" (sql.qp/->honeysql driver expr)))) + +(defmethod sql.qp/date [:sqlite :day] + [driver _ expr] + (->date (sql.qp/->honeysql driver expr))) + ;; SQLite day of week (%w) is Sunday = 0 <-> Saturday = 6. We want 1 - 7 so add 1 -(defmethod sql.qp/date [:sqlite :day-of-week] [_ _ expr] (hx/->integer (hx/inc (strftime "%w" (ts->str expr))))) -(defmethod sql.qp/date [:sqlite :day-of-month] [_ _ expr] (hx/->integer (strftime "%d" (ts->str expr)))) -(defmethod sql.qp/date [:sqlite :day-of-year] [_ _ expr] (hx/->integer (strftime "%j" (ts->str expr)))) +(defmethod sql.qp/date [:sqlite :day-of-week] + [driver _ expr] + (hx/->integer (hx/inc (strftime "%w" (sql.qp/->honeysql driver expr))))) + +(defmethod sql.qp/date [:sqlite :day-of-month] + [driver _ expr] + (hx/->integer (strftime "%d" (sql.qp/->honeysql driver expr)))) + +(defmethod sql.qp/date [:sqlite :day-of-year] + [driver _ expr] + (hx/->integer (strftime "%j" (sql.qp/->honeysql driver expr)))) + ;; Move back 6 days, then forward to the next Sunday -(defmethod sql.qp/date [:sqlite :week] [_ _ expr] (->date (ts->str expr) (hx/literal "-6 days") (hx/literal "weekday 0"))) +(defmethod sql.qp/date [:sqlite :week] + [driver _ expr] + (->date (sql.qp/->honeysql driver expr) (hx/literal "-6 days") (hx/literal "weekday 0"))) + ;; SQLite first week of year is 0, so add 1 -(defmethod sql.qp/date [:sqlite :week-of-year] [_ _ expr] (hx/->integer (hx/inc (strftime "%W" (ts->str expr))))) -(defmethod sql.qp/date [:sqlite :month] [_ _ expr] (->date (ts->str expr) (hx/literal "start of month"))) -(defmethod sql.qp/date [:sqlite :month-of-year] [_ _ expr] (hx/->integer (strftime "%m" (ts->str expr)))) -(defmethod sql.qp/date [:sqlite :year] [_ _ expr] (->date (ts->str expr) (hx/literal "start of year"))) +(defmethod sql.qp/date [:sqlite :week-of-year] + [driver _ expr] + (hx/->integer (hx/inc (strftime "%W" (sql.qp/->honeysql driver expr))))) + +(defmethod sql.qp/date [:sqlite :month] + [driver _ expr] + (->date (sql.qp/->honeysql driver expr) (hx/literal "start of month"))) + +(defmethod sql.qp/date [:sqlite :month-of-year] + [driver _ expr] + (hx/->integer (strftime "%m" (sql.qp/->honeysql driver expr)))) + ;; DATE(DATE(%s, 'start of month'), '-' || ((STRFTIME('%m', %s) - 1) % 3) || ' months') ;; -> DATE(DATE('2015-11-16', 'start of month'), '-' || ((STRFTIME('%m', '2015-11-16') - 1) % 3) || ' months') ;; -> DATE('2015-11-01', '-' || ((11 - 1) % 3) || ' months') ;; -> DATE('2015-11-01', '-' || 1 || ' months') ;; -> DATE('2015-11-01', '-1 months') ;; -> '2015-10-01' -(defmethod sql.qp/date [:sqlite :quarter] [_ _ expr] - (let [v (ts->str expr)] +(defmethod sql.qp/date [:sqlite :quarter] + [driver _ expr] + (let [v (sql.qp/->honeysql driver expr)] (->date (->date v (hx/literal "start of month")) (hsql/call :sqlite-concat @@ -111,12 +151,18 @@ (hx/literal " months"))))) ;; q = (m + 2) / 3 -(defmethod sql.qp/date [:sqlite :quarter-of-year] [_ _ expr] - (hx// (hx/+ (strftime "%m" (ts->str expr)) +(defmethod sql.qp/date [:sqlite :quarter-of-year] + [driver _ expr] + (hx// (hx/+ (strftime "%m" (sql.qp/->honeysql driver expr)) 2) 3)) -(defmethod driver/date-add :sqlite [driver dt amount unit] +(defmethod sql.qp/date [:sqlite :year] + [driver _ expr] + (->date (sql.qp/->honeysql driver expr) (hx/literal "start of year"))) + +(defmethod driver/date-add :sqlite + [driver dt amount unit] (let [[multiplier sqlite-unit] (case unit :second [1 "seconds"] :minute [1 "minutes"] @@ -141,32 +187,70 @@ (->datetime (sql.qp/date driver unit dt) (hx/literal (format "%+d %s" (* amount multiplier) sqlite-unit))))) -(defmethod sql.qp/unix-timestamp->timestamp [:sqlite :seconds] [_ _ expr] +(defmethod sql.qp/unix-timestamp->timestamp [:sqlite :seconds] + [_ _ expr] (->datetime expr (hx/literal "unixepoch"))) -;; SQLite doesn't like things like Timestamps getting passed in as prepared statement args, so we need to convert them -;; to date literal strings instead to get things to work +;; SQLite doesn't like Temporal values getting passed in as prepared statement args, so we need to convert them to +;; date literal strings instead to get things to work ;; ;; TODO - not sure why this doesn't need to be done in `->honeysql` as well? I think it's because the MBQL date values ;; are funneled through the `date` family of functions above -(s/defmethod sql/->prepared-substitution [:sqlite java.util.Date] :- sql/PreparedStatementSubstitution +;; +;; TIMESTAMP FIXME — this doesn't seem like the correct thing to do for non-Dates. I think params only support dates +;; rn however +(s/defmethod sql/->prepared-substitution [:sqlite Temporal] :- sql/PreparedStatementSubstitution [_ date] - ;; for anything that's a Date (usually a java.sql.Timestamp) convert it to a yyyy-MM-dd formatted date literal + ;; for anything that's a Temporal value convert it to a yyyy-MM-dd formatted date literal ;; string For whatever reason the SQL generated from parameters ends up looking like `WHERE date(some_field) = ?` ;; sometimes so we need to use just the date rather than a full ISO-8601 string - (sql/make-stmt-subs "?" [(du/format-date "yyyy-MM-dd" date)])) + (params.substitution/make-stmt-subs "?" [(t/format "yyyy-MM-dd" date)])) ;; SQLite doesn't support `TRUE`/`FALSE`; it uses `1`/`0`, respectively; convert these booleans to numbers. (defmethod sql.qp/->honeysql [:sqlite Boolean] [_ bool] (if bool 1 0)) -(defmethod sql.qp/->honeysql [:sqlite Time] - [_ time-value] - (->> time-value - tcoerce/to-date-time - (tformat/unparse (tformat/formatters :hour-minute-second-ms)) - (hsql/call :time))) +;; See https://sqlite.org/lang_datefunc.html + +;; MEGA HACK +;; +;; if the time portion is zeroed out generate a date() instead, because SQLite isn't smart enough to compare DATEs +;; and DATETIMEs in a way that could be considered to make any sense whatsoever, e.g. +;; +;; date('2019-12-03') < datetime('2019-12-03 00:00') +(defn- zero-time? [t] + (= (t/local-time t) (t/local-time 0))) + +(defmethod sql.qp/->honeysql [:sqlite LocalDate] + [_ t] + (hsql/call :date (hx/literal (u.date/format-sql t)))) + +(defmethod sql.qp/->honeysql [:sqlite LocalDateTime] + [driver t] + (if (zero-time? t) + (sql.qp/->honeysql driver (t/local-date t)) + (hsql/call :datetime (hx/literal (u.date/format-sql t))))) + +(defmethod sql.qp/->honeysql [:sqlite LocalTime] + [_ t] + (hsql/call :time (hx/literal (u.date/format-sql t)))) + +(defmethod sql.qp/->honeysql [:sqlite OffsetDateTime] + [driver t] + (if (zero-time? t) + (sql.qp/->honeysql driver (t/local-date t)) + (hsql/call :datetime (hx/literal (u.date/format-sql t))))) + +(defmethod sql.qp/->honeysql [:sqlite OffsetTime] + [_ t] + (hsql/call :time (hx/literal (u.date/format-sql t)))) + +(defmethod sql.qp/->honeysql [:sqlite ZonedDateTime] + [driver t] + (if (zero-time? t) + (sql.qp/->honeysql driver (t/local-date t)) + (hsql/call :datetime (hx/literal (u.date/format-sql t))))) ;; SQLite `LIKE` clauses are case-insensitive by default, and thus cannot be made case-sensitive. So let people know ;; we have this 'feature' so the frontend doesn't try to present the option to you. @@ -180,17 +264,30 @@ (defmethod driver/supports? [:sqlite :foreign-keys] [_ _] (not config/is-test?)) ;; SQLite defaults everything to UTC -(defmethod driver.common/current-db-time-date-formatters :sqlite [_] +(defmethod driver.common/current-db-time-date-formatters :sqlite + [_] (driver.common/create-db-time-formatters "yyyy-MM-dd HH:mm:ss")) -(defmethod driver.common/current-db-time-native-query :sqlite [_] +(defmethod driver.common/current-db-time-native-query :sqlite + [_] "select cast(datetime('now') as text);") -(defmethod driver/current-db-time :sqlite [& args] +(defmethod driver/current-db-time :sqlite + [& args] (apply driver.common/current-db-time args)) -(defmethod sql-jdbc.sync/active-tables :sqlite [& args] +(defmethod sql-jdbc.sync/active-tables :sqlite + [& args] (apply sql-jdbc.sync/post-filtered-active-tables args)) (defmethod sql.qp/current-datetime-fn :sqlite [_] (hsql/call :datetime (hx/literal :now))) + +;; (.getObject rs i LocalDate) doesn't seem to work, nor does `(.getDate)`; and it seems to be the case that +;; timestamps come back as `Types/DATE` as well? Fetch them as a String and then parse them +(defmethod sql-jdbc.execute/read-column [:sqlite Types/DATE] + [_ _ ^ResultSet rs _ ^Integer i] + (try + (t/local-date (.getDate rs i)) + (catch Throwable _ + (u.date/parse (.getString rs i) (qp.timezone/results-timezone-id))))) diff --git a/modules/drivers/sqlite/test/metabase/driver/sqlite_test.clj b/modules/drivers/sqlite/test/metabase/driver/sqlite_test.clj index a07138f1291e2375ccf1662bc0b7ac14c0dcc0ff..33284517ea4223658abeb2797818e74312816b9f 100644 --- a/modules/drivers/sqlite/test/metabase/driver/sqlite_test.clj +++ b/modules/drivers/sqlite/test/metabase/driver/sqlite_test.clj @@ -1,8 +1,34 @@ (ns metabase.driver.sqlite-test - (:require [expectations :refer [expect]] - [metabase.test.data.datasets :refer [expect-with-driver]] - [metabase.test.util :as tu])) + (:require [clojure.test :refer :all] + [metabase.query-processor-test :as qp.test] + [metabase.test + [data :as data] + [util :as tu]] + [metabase.test.data.datasets :as datasets])) -(expect-with-driver :sqlite - "UTC" - (tu/db-timezone-id)) +(deftest timezone-id-test + (datasets/test-driver :sqlite + (is (= "UTC" + (tu/db-timezone-id))))) + +(deftest filter-by-date-test + "Make sure filtering against a LocalDate works correctly in SQLite" + (datasets/test-driver :sqlite + (is (= [[225 "2014-03-04T00:00:00Z"] + [409 "2014-03-05T00:00:00Z"] + [917 "2014-03-05T00:00:00Z"] + [995 "2014-03-05T00:00:00Z"] + [159 "2014-03-06T00:00:00Z"] + [951 "2014-03-06T00:00:00Z"]] + (qp.test/rows + (data/run-mbql-query checkins + {:fields [$id $date] + :filter [:and + [:>= $date "2014-03-04"] + [:<= $date "2014-03-06"]] + :order-by [[:asc $date]]})) + (qp.test/rows + (data/run-mbql-query checkins + {:fields [$id $date] + :filter [:between $date "2014-03-04" "2014-03-07"] + :order-by [[:asc $date]]})))))) diff --git a/modules/drivers/sqlite/test/metabase/test/data/sqlite.clj b/modules/drivers/sqlite/test/metabase/test/data/sqlite.clj index 0fd175f3870ed159f3da3f32ff4e740bcc90bbe0..805bdb14bed339c80b7854090f1a8240674b4171 100644 --- a/modules/drivers/sqlite/test/metabase/test/data/sqlite.clj +++ b/modules/drivers/sqlite/test/metabase/test/data/sqlite.clj @@ -1,56 +1,31 @@ (ns metabase.test.data.sqlite - (:require [honeysql.core :as hsql] - [metabase.test.data + (:require [metabase.test.data [interface :as tx] [sql :as sql.tx] [sql-jdbc :as sql-jdbc.tx]] - [metabase.test.data.sql-jdbc - [execute :as execute] - [load-data :as load-data]] - [metabase.util - [date :as du] - [honeysql-extensions :as hx]])) + [metabase.test.data.sql-jdbc.execute :as execute])) (sql-jdbc.tx/add-test-extensions! :sqlite) (defmethod tx/dbdef->connection-details :sqlite [_ context dbdef] {:db (str (tx/escaped-name dbdef) ".sqlite")}) -(defmethod sql.tx/field-base-type->sql-type [:sqlite :type/BigInteger] [_ _] "BIGINT") -(defmethod sql.tx/field-base-type->sql-type [:sqlite :type/Boolean] [_ _] "BOOLEAN") -(defmethod sql.tx/field-base-type->sql-type [:sqlite :type/Date] [_ _] "DATE") -(defmethod sql.tx/field-base-type->sql-type [:sqlite :type/DateTime] [_ _] "DATETIME") -(defmethod sql.tx/field-base-type->sql-type [:sqlite :type/Decimal] [_ _] "DECIMAL") -(defmethod sql.tx/field-base-type->sql-type [:sqlite :type/Float] [_ _] "DOUBLE") -(defmethod sql.tx/field-base-type->sql-type [:sqlite :type/Integer] [_ _] "INTEGER") -(defmethod sql.tx/field-base-type->sql-type [:sqlite :type/Text] [_ _] "TEXT") -(defmethod sql.tx/field-base-type->sql-type [:sqlite :type/Time] [_ _] "TIME") - -(defn- load-data-stringify-dates - "Our SQLite JDBC driver doesn't seem to like Dates/Timestamps so just convert them to strings before INSERTing them - into the Database." - [insert!] - (fn [rows] - (insert! (for [row rows] - (into {} (for [[k v] row] - [k (cond - (instance? java.sql.Time v) - (hsql/call :time (hx/literal (du/format-time v "UTC"))) - - (instance? java.util.Date v) - (hsql/call :datetime (hx/literal (du/date->iso-8601 v))) - - :else v)])))))) +(doseq [[base-type sql-type] {:type/BigInteger "BIGINT" + :type/Boolean "BOOLEAN" + :type/Date "DATE" + :type/DateTime "DATETIME" + :type/Decimal "DECIMAL" + :type/Float "DOUBLE" + :type/Integer "INTEGER" + :type/Text "TEXT" + :type/Time "TIME"}] + (defmethod sql.tx/field-base-type->sql-type [:sqlite base-type] [_ _] sql-type)) (defmethod sql.tx/pk-sql-type :sqlite [_] "INTEGER") (defmethod execute/execute-sql! :sqlite [& args] (apply execute/sequentially-execute-sql! args)) -(let [load-data! (load-data/make-load-data-fn load-data-stringify-dates load-data/load-data-chunked)] - (defmethod load-data/load-data! :sqlite [& args] - (apply load-data! args))) - (defmethod sql.tx/drop-db-if-exists-sql :sqlite [& _] nil) (defmethod sql.tx/create-db-sql :sqlite [& _] nil) (defmethod sql.tx/add-fk-sql :sqlite [& _] nil) ; TODO - fix me diff --git a/modules/drivers/sqlserver/project.clj b/modules/drivers/sqlserver/project.clj index ff030a0b2c11787eded931da089467c943379b8d..c5c1fef73486fe5eb988610d5cb3f7b57a4f3e82 100644 --- a/modules/drivers/sqlserver/project.clj +++ b/modules/drivers/sqlserver/project.clj @@ -1,12 +1,14 @@ -(defproject metabase/sqlserver-driver "1.0.0-SNAPSHOT" +(defproject metabase/sqlserver-driver "1.0.0-SNAPSHOT-7.4.1.jre8" :min-lein-version "2.5.0" :dependencies - [[com.microsoft.sqlserver/mssql-jdbc "7.0.0.jre8"]] + [[com.microsoft.sqlserver/mssql-jdbc "7.4.1.jre8"]] :profiles {:provided - {:dependencies [[metabase-core "1.0.0-SNAPSHOT"]]} + {:dependencies + [[org.clojure/clojure "1.10.1"] + [metabase-core "1.0.0-SNAPSHOT"]]} :uberjar {:auto-clean true diff --git a/modules/drivers/sqlserver/resources/metabase-plugin.yaml b/modules/drivers/sqlserver/resources/metabase-plugin.yaml index 496f714cd69400172f6964c8648d8c2f7af53dc2..3adf6e53616b6ae0b731264f2a1ee9702ce594c6 100644 --- a/modules/drivers/sqlserver/resources/metabase-plugin.yaml +++ b/modules/drivers/sqlserver/resources/metabase-plugin.yaml @@ -1,6 +1,6 @@ info: name: Metabase SQL Server Driver - version: 1.0.0-SNAPSHOT-7.0.0-jre8 + version: 1.0.0-SNAPSHOT-7.4.1-jre8 description: Allows Metabase to connect to SQL Server databases. driver: name: sqlserver diff --git a/modules/drivers/sqlserver/src/metabase/driver/sqlserver.clj b/modules/drivers/sqlserver/src/metabase/driver/sqlserver.clj index 305c5f37b6f042414b6cc24bc226650eb05fa795..27553336d106dd10a3ec4a459241879915eb81b4 100644 --- a/modules/drivers/sqlserver/src/metabase/driver/sqlserver.clj +++ b/modules/drivers/sqlserver/src/metabase/driver/sqlserver.clj @@ -1,6 +1,7 @@ (ns metabase.driver.sqlserver "Driver for SQLServer databases. Uses the official Microsoft JDBC driver under the hood (pre-0.25.0, used jTDS)." (:require [honeysql.core :as hsql] + [java-time :as t] [metabase [config :as config] [driver :as driver]] @@ -13,10 +14,9 @@ [metabase.driver.sql.query-processor :as sql.qp] [metabase.driver.sql.util.unprepare :as unprepare] [metabase.query-processor.interface :as qp.i] - [metabase.util - [date :as du] - [honeysql-extensions :as hx]]) + [metabase.util.honeysql-extensions :as hx]) (:import [java.sql ResultSet Time] + [java.time LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime ZonedDateTime] java.util.Date)) (driver/register! :sqlserver, :parent :sql-jdbc) @@ -32,7 +32,7 @@ :date :type/Date :datetime :type/DateTime :datetime2 :type/DateTime - :datetimeoffset :type/DateTime + :datetimeoffset :type/DateTimeWithZoneOffset :decimal :type/Decimal :float :type/Float :geography :type/* @@ -66,31 +66,33 @@ [_ {:keys [user password db host port instance domain ssl] :or {user "dbuser", password "dbpassword", db "", host "localhost"} :as details}] - (-> {:applicationName config/mb-app-id-string - :subprotocol "sqlserver" + (-> {:applicationName config/mb-app-id-string + :subprotocol "sqlserver" ;; it looks like the only thing that actually needs to be passed as the `subname` is the host; everything else ;; can be passed as part of the Properties - :subname (str "//" host) + :subname (str "//" host) ;; everything else gets passed as `java.util.Properties` to the JDBC connection. (passing these as Properties ;; instead of part of the `:subname` is preferable because they support things like passwords with special ;; characters) - :database db - :password password + :database db + :password password ;; Wait up to 10 seconds for connection success. If we get no response by then, consider the connection failed - :loginTimeout 10 + :loginTimeout 10 ;; apparently specifying `domain` with the official SQLServer driver is done like `user:domain\user` as opposed ;; to specifying them seperately as with jTDS see also: ;; https://social.technet.microsoft.com/Forums/sqlserver/en-US/bc1373f5-cb40-479d-9770-da1221a0bc95/connecting-to-sql-server-in-a-different-domain-using-jdbc-driver?forum=sqldataaccess - :user (str (when domain (str domain "\\")) - user) - :instanceName instance - :encrypt (boolean ssl)} + :user (str (when domain (str domain "\\")) + user) + :instanceName instance + :encrypt (boolean ssl) + ;; only crazy people would want this. See https://docs.microsoft.com/en-us/sql/connect/jdbc/configuring-how-java-sql-time-values-are-sent-to-the-server?view=sql-server-ver15 + :sendTimeAsDatetime false} ;; only include `port` if it is specified; leave out for dynamic port: see ;; https://github.com/metabase/metabase/issues/7597 (merge (when port {:port port})) (sql-jdbc.common/handle-additional-options details, :seperator-style :semicolon))) - +;; See https://docs.microsoft.com/en-us/sql/t-sql/functions/datepart-transact-sql?view=sql-server-ver15 (defn- date-part [unit expr] (hsql/call :datepart (hsql/raw (name unit)) expr)) @@ -120,15 +122,9 @@ [_ _ expr] (date-part :hour expr)) -;; jTDS is wack; I sense an ongoing theme here. It returns DATEs as strings instead of as java.sql.Dates like every -;; other SQL DB we support. Work around that by casting to DATE for truncation then back to DATETIME so we get the -;; type we want. -;; -;; TODO - I'm not sure we still need to do this now that we're using the official Microsoft JDBC driver. Maybe we can -;; simplify this now? (defmethod sql.qp/date [:sqlserver :day] [_ _ expr] - (hx/->datetime (hx/->date expr))) + (hx/->date expr)) (defmethod sql.qp/date [:sqlserver :day-of-week] [_ _ expr] @@ -181,8 +177,8 @@ [_ _ expr] (hsql/call :datefromparts (hx/year expr) 1 1)) - -(defmethod driver/date-add :sqlserver [_ dt amount unit] +(defmethod driver/date-add :sqlserver + [_ dt amount unit] (date-add unit amount dt)) (defmethod sql.qp/unix-timestamp->timestamp [:sqlserver :seconds] @@ -192,10 +188,12 @@ ;; Work around this by converting the timestamps to minutes instead before calling DATEADD(). (date-add :minute (hx// expr 60) (hx/literal "1970-01-01"))) -(defmethod sql.qp/apply-top-level-clause [:sqlserver :limit] [_ _ honeysql-form {value :limit}] +(defmethod sql.qp/apply-top-level-clause [:sqlserver :limit] + [_ _ honeysql-form {value :limit}] (assoc honeysql-form :modifiers [(format "TOP %d" value)])) -(defmethod sql.qp/apply-top-level-clause [:sqlserver :page] [_ _ honeysql-form {{:keys [items page]} :page}] +(defmethod sql.qp/apply-top-level-clause [:sqlserver :page] + [_ _ honeysql-form {{:keys [items page]} :page}] (assoc honeysql-form :offset (hsql/raw (format "%d ROWS FETCH NEXT %d ROWS ONLY" (* items (dec page)) items)))) @@ -252,13 +250,56 @@ [_] #{"sys" "INFORMATION_SCHEMA"}) -(defmethod unprepare/unprepare-value [:sqlserver Date] - [_ value] - (format "cast('%s' AS datetime)" (du/date->iso-8601 value))) - -(prefer-method unprepare/unprepare-value [:sqlserver Date] [:sql Time]) +(defmethod unprepare/unprepare-value [:sqlserver LocalDate] + [_ ^LocalDate t] + ;; datefromparts(year, month, day) + ;; See https://docs.microsoft.com/en-us/sql/t-sql/functions/datefromparts-transact-sql?view=sql-server-ver15 + (format "DateFromParts(%d, %d, %d)" (.getYear t) (.getMonthValue t) (.getDayOfMonth t))) + +(defmethod unprepare/unprepare-value [:sqlserver LocalTime] + [_ ^LocalTime t] + ;; timefromparts(hour, minute, seconds, fraction, precision) + ;; See https://docs.microsoft.com/en-us/sql/t-sql/functions/timefromparts-transact-sql?view=sql-server-ver15 + ;; precision = 7 which means the fraction is 100 nanoseconds, smallest supported by SQL Server + (format "TimeFromParts(%d, %d, %d, %d, 7)" (.getHour t) (.getMinute t) (.getSecond t) (long (/ (.getNano t) 100)))) + +(defmethod unprepare/unprepare-value [:sqlserver OffsetTime] + [driver t] + (unprepare/unprepare-value driver (t/local-time (t/with-offset-same-instant t (t/zone-offset 0))))) + +(defmethod unprepare/unprepare-value [:sqlserver OffsetDateTime] + [_ ^OffsetDateTime t] + ;; DateTimeOffsetFromParts(year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) + (let [offset-minutes (long (/ (.getTotalSeconds (.getOffset t)) 60)) + hour-offset (long (/ offset-minutes 60)) + minute-offset (mod offset-minutes 60)] + (format "DateTimeOffsetFromParts(%d, %d, %d, %d, %d, %d, %d, %d, %d, 7)" + (.getYear t) (.getMonthValue t) (.getDayOfMonth t) + (.getHour t) (.getMinute t) (.getSecond t) (long (/ (.getNano t) 100)) + hour-offset minute-offset))) + +(defmethod unprepare/unprepare-value [:sqlserver ZonedDateTime] + [driver t] + (unprepare/unprepare-value driver (t/offset-date-time t))) + +(defmethod unprepare/unprepare-value [:sqlserver LocalDateTime] + [_ ^LocalDateTime t] + ;; DateTime2FromParts(year, month, day, hour, minute, seconds, fractions, precision) + (format "DateTime2FromParts(%d, %d, %d, %d, %d, %d, %d, 7)" + (.getYear t) (.getMonthValue t) (.getDayOfMonth t) + (.getHour t) (.getMinute t) (.getSecond t) (long (/ (.getNano t) 100)))) + +;; SQL Server doesn't support TIME WITH TIME ZONE so convert OffsetTimes to LocalTimes in UTC. Otherwise SQL Server +;; will try to convert it to a `DATETIMEOFFSET` which of course is not comparable to `TIME` columns +;; +;; TIMEZONE FIXME — does it make sense to convert this to UTC? Shouldn't we convert it to the report timezone? Figure +;; this mystery out +(defmethod sql-jdbc.execute/set-parameter [:sqlserver OffsetTime] + [driver prepared-statement index t] + (sql-jdbc.execute/set-parameter driver prepared-statement index + (t/local-time (t/with-offset-same-instant t (t/zone-offset 0))))) ;; instead of default `microsoft.sql.DateTimeOffset` (defmethod sql-jdbc.execute/read-column [:sqlserver microsoft.sql.Types/DATETIMEOFFSET] - [_ _, ^ResultSet resultset, _, ^Integer i] - (.getTimestamp resultset i)) + [_ _^ResultSet rs _ ^Integer i] + (.getObject rs i OffsetDateTime)) diff --git a/modules/drivers/sqlserver/test/metabase/driver/sqlserver_test.clj b/modules/drivers/sqlserver/test/metabase/driver/sqlserver_test.clj index 559166fe452aeddbe9d73e96dacf200469b99633..2453675e06a919404a42d085c94898412a85f539 100644 --- a/modules/drivers/sqlserver/test/metabase/driver/sqlserver_test.clj +++ b/modules/drivers/sqlserver/test/metabase/driver/sqlserver_test.clj @@ -1,15 +1,21 @@ (ns metabase.driver.sqlserver-test - (:require [clojure.java.jdbc :as jdbc] - [clojure.string :as str] - [expectations :refer [expect]] + (:require [clojure + [string :as str] + [test :refer :all]] + [clojure.java.jdbc :as jdbc] + [colorize.core :as colorize] [honeysql.core :as hsql] + [java-time :as t] [medley.core :as m] [metabase [driver :as driver] [query-processor :as qp] [query-processor-test :as qp.test]] - [metabase.driver.sql-jdbc.connection :as sql-jdbc.conn] + [metabase.driver.sql-jdbc + [connection :as sql-jdbc.conn] + [execute :as sql-jdbc.execute]] [metabase.driver.sql.query-processor :as sql.qp] + [metabase.driver.sql.util.unprepare :as unprepare] [metabase.query-processor.test-util :as qp.test-util] [metabase.test [data :as data] @@ -36,28 +42,29 @@ (data/run-mbql-query genetic-data)) :data :rows obj->json->obj)) ; convert to JSON + back so the Clob gets stringified -;;; Test that additional connection string options work (#5296) -(expect - {:subprotocol "sqlserver" - :applicationName "Metabase <version>" - :subname "//localhost;trustServerCertificate=false" - :database "birddb" - :port 1433 - :instanceName nil - :user "cam" - :password "toucans" - :encrypt false - :loginTimeout 10} - (-> (sql-jdbc.conn/connection-details->spec - :sqlserver - {:user "cam" - :password "toucans" - :db "birddb" - :host "localhost" - :port 1433 - :additional-options "trustServerCertificate=false"}) - ;; the MB version Is subject to change between test runs, so replace the part like `v.0.25.0` with `<version>` - (update :applicationName #(str/replace % #"\s.*$" " <version>")))) +(deftest connection-spec-test + (testing "Test that additional connection string options work (#5296)" + (is (= {:applicationName "Metabase <version>" + :database "birddb" + :encrypt false + :instanceName nil + :loginTimeout 10 + :password "toucans" + :port 1433 + :sendTimeAsDatetime false + :subname "//localhost;trustServerCertificate=false" + :subprotocol "sqlserver" + :user "cam"} + (-> (sql-jdbc.conn/connection-details->spec :sqlserver + {:user "cam" + :password "toucans" + :db "birddb" + :host "localhost" + :port 1433 + :additional-options "trustServerCertificate=false"}) + ;; the MB version Is subject to change between test runs, so replace the part like `v.0.25.0` with + ;; `<version>` + (update :applicationName #(str/replace % #"\s.*$" " <version>"))))))) (datasets/expect-with-driver :sqlserver "UTC" @@ -138,21 +145,54 @@ :limit 5} :limit 3})))) -;; Make sure datetime bucketing functions work properly with languages that format dates like yyyy-dd-MM instead of -;; yyyy-MM-dd (i.e. not American English) (#9057) -(datasets/expect-with-driver :sqlserver - [{:my-date #inst "2019-02-01T00:00:00.000-00:00"}] - ;; we're doing things here with low-level calls to HoneySQL (emulating what the QP does) instead of using normal QP - ;; pathways because `SET LANGUAGE` doesn't seem to persist to subsequent executions so to test that things are - ;; working we need to add to in from of the query we're trying to check - (jdbc/with-db-transaction [t-conn (sql-jdbc.conn/connection-details->spec :sqlserver - (tx/dbdef->connection-details :sqlserver :db {:database-name "test-data"}))] - (try - (jdbc/execute! t-conn "CREATE TABLE temp (d DATETIME2);") - (jdbc/execute! t-conn ["INSERT INTO temp (d) VALUES (?)" #inst "2019-02-08T00:00:00Z"]) - (jdbc/query t-conn (let [[sql & args] (hsql/format {:select [[(sql.qp/date :sqlserver :month :temp.d) :my-date]] - :from [:temp]} - :quoting :ansi, :allow-dashed-names? true)] - (cons (str "SET LANGUAGE Italian; " sql) args))) - ;; rollback transaction so `temp` table gets discarded - (finally (.rollback (jdbc/get-connection t-conn)))))) +(deftest locale-bucketing-test + (datasets/test-driver :sqlserver + (testing (str "Make sure datetime bucketing functions work properly with languages that format dates like " + "yyyy-dd-MM instead of yyyy-MM-dd (i.e. not American English) (#9057)") + ;; we're doing things here with low-level calls to HoneySQL (emulating what the QP does) instead of using normal QP + ;; pathways because `SET LANGUAGE` doesn't seem to persist to subsequent executions so to test that things are + ;; working we need to add to in from of the query we're trying to check + (jdbc/with-db-transaction [t-conn (sql-jdbc.conn/connection-details->spec :sqlserver + (tx/dbdef->connection-details :sqlserver :db {:database-name "test-data"}))] + (try + (jdbc/execute! t-conn "CREATE TABLE temp (d DATETIME2);") + (jdbc/execute! t-conn ["INSERT INTO temp (d) VALUES (?)" #t "2019-02-08T00:00:00Z"]) + (let [[sql & args] (hsql/format {:select [[(sql.qp/date :sqlserver :month :temp.d) :my-date]] + :from [:temp]} + :quoting :ansi, :allow-dashed-names? true) + result (jdbc/query t-conn (cons (str "SET LANGUAGE Italian; " sql) args) + {:read-columns (partial sql-jdbc.execute/read-columns :sqlserver) + :set-parameters (partial sql-jdbc.execute/set-parameters :sqlserver)})] + (is (= [{:my-date #t "2019-02-01"}] + result))) + ;; rollback transaction so `temp` table gets discarded + (finally (.rollback (jdbc/get-connection t-conn)))))))) + +(defn- query [sql-args] + (jdbc/query + (sql-jdbc.conn/db->pooled-connection-spec (data/db)) + sql-args + {:read-columns (partial sql-jdbc.execute/read-columns driver/*driver*)})) + +(deftest unprepare-test + (datasets/test-driver :sqlserver + (let [date (t/local-date 2019 11 5) + time (t/local-time 19 27)] + ;; various types should come out the same as they went in (1 value per tuple) or something functionally + ;; equivalent (2 values) + (doseq [[t expected] [[date] + [time] + [(t/local-date-time date time)] + ;; SQL server doesn't support OffsetTime, so we should convert it to UTC and then to a + ;; LocalTime (?) + [(t/offset-time time (t/zone-offset -8)) (t/local-time 3 27)] + [(t/offset-date-time (t/local-date-time date time) (t/zone-offset -8))] + ;; since SQL Server doesn't support timezone IDs it should be converted to an offset in the literal + [(t/zoned-date-time date time (t/zone-id "America/Los_Angeles")) + (t/offset-date-time (t/local-date-time date time) (t/zone-offset -8))]]] + (let [expected (or expected t)] + (testing (format "Convert %s to SQL literal" (colorize/magenta (with-out-str (pr t)))) + (let [sql (format "SELECT %s AS t;" (unprepare/unprepare-value :sqlserver t))] + (is (= expected + (-> (query sql) first :t)) + (format "SQL %s should return %s" (colorize/blue sql) (colorize/green expected)))))))))) diff --git a/modules/drivers/sqlserver/test/metabase/test/data/sqlserver.clj b/modules/drivers/sqlserver/test/metabase/test/data/sqlserver.clj index 40a38f63a022f34709d382e5704fdc61438a643c..a4534ba0ffac7c79d38120a2fb45ceacec610a31 100644 --- a/modules/drivers/sqlserver/test/metabase/test/data/sqlserver.clj +++ b/modules/drivers/sqlserver/test/metabase/test/data/sqlserver.clj @@ -24,7 +24,8 @@ (defmethod sql.tx/field-base-type->sql-type [:sqlserver base-type] [_ _] database-type)) -(defmethod tx/dbdef->connection-details :sqlserver [_ context {:keys [database-name]}] +(defmethod tx/dbdef->connection-details :sqlserver + [_ context {:keys [database-name]}] {:host (tx/db-test-env-var-or-throw :sqlserver :host) :port (Integer/parseInt (tx/db-test-env-var-or-throw :sqlserver :port "1433")) :user (tx/db-test-env-var-or-throw :sqlserver :user) @@ -35,7 +36,6 @@ (defmethod sql.tx/drop-db-if-exists-sql :sqlserver [_ {:keys [database-name]}] ;; Kill all open connections to the DB & drop it - (println "database-name:" database-name) ; NOCOMMIT (apply format "IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'%s') BEGIN ALTER DATABASE \"%s\" SET SINGLE_USER WITH ROLLBACK IMMEDIATE; diff --git a/modules/drivers/vertica/project.clj b/modules/drivers/vertica/project.clj index c2525502881af00d131792c7dbf162374f494466..2db1314322677349f9fc50702e2a0900ea64c10c 100644 --- a/modules/drivers/vertica/project.clj +++ b/modules/drivers/vertica/project.clj @@ -5,7 +5,9 @@ :profiles {:provided - {:dependencies [[metabase-core "1.0.0-SNAPSHOT"]]} + {:dependencies + [[org.clojure/clojure "1.10.1"] + [metabase-core "1.0.0-SNAPSHOT"]]} :uberjar {:auto-clean true diff --git a/modules/drivers/vertica/src/metabase/driver/vertica.clj b/modules/drivers/vertica/src/metabase/driver/vertica.clj index 38966089610c2a2592ed7da6d8c273b5017228a2..66eff36421c51a19832fe714bcbb86c23d679a92 100644 --- a/modules/drivers/vertica/src/metabase/driver/vertica.clj +++ b/modules/drivers/vertica/src/metabase/driver/vertica.clj @@ -10,18 +10,18 @@ [connection :as sql-jdbc.conn] [execute :as sql-jdbc.execute] [sync :as sql-jdbc.sync]] + [metabase.driver.sql-jdbc.execute.legacy-impl :as legacy] [metabase.driver.sql.query-processor :as sql.qp] - [metabase.driver.sql.util.unprepare :as unprepare] [metabase.util - [date :as du] + [date-2 :as u.date] [honeysql-extensions :as hx] [i18n :refer [trs]]]) - (:import java.sql.Time - java.util.Date)) + (:import [java.sql ResultSet Types])) -(driver/register! :vertica, :parent :sql-jdbc) +(driver/register! :vertica, :parent #{:sql-jdbc ::legacy/use-legacy-classes-for-read-and-set}) -(defmethod sql-jdbc.sync/database-type->base-type :vertica [_ database-type] +(defmethod sql-jdbc.sync/database-type->base-type :vertica + [_ database-type] ({:Boolean :type/Boolean :Integer :type/Integer :Bigint :type/BigInteger @@ -35,31 +35,34 @@ :Float :type/Float :Date :type/Date :Time :type/Time - :TimeTz :type/Time + :TimeTz :type/TimeWithLocalTZ :Timestamp :type/DateTime - :TimestampTz :type/DateTime + :TimestampTz :type/DateTimeWithLocalTZ :AUTO_INCREMENT :type/Integer (keyword "Long Varchar") :type/Text (keyword "Long Varbinary") :type/*} database-type)) -(defmethod sql-jdbc.conn/connection-details->spec :vertica [_ {:keys [host port db dbname] - :or {host "localhost", port 5433, db ""} - :as details}] +(defmethod sql-jdbc.conn/connection-details->spec :vertica + [_ {:keys [host port db dbname] + :or {host "localhost", port 5433, db ""} + :as details}] (-> (merge {:classname "com.vertica.jdbc.Driver" :subprotocol "vertica" :subname (str "//" host ":" port "/" (or dbname db))} (dissoc details :host :port :dbname :db :ssl)) (sql-jdbc.common/handle-additional-options details))) -(defmethod sql.qp/unix-timestamp->timestamp [:vertica :seconds] [_ _ expr] +(defmethod sql.qp/unix-timestamp->timestamp [:vertica :seconds] + [_ _ expr] (hsql/call :to_timestamp expr)) +;; TODO - not sure if needed or not (defn- cast-timestamp "Vertica requires stringified timestamps (what Date/DateTime/Timestamps are converted to) to be cast as timestamps before date operations can be performed. This function will add that cast if it is a timestamp, otherwise this is a - noop." + no-op." [expr] - (if (du/is-temporal? expr) + (if (instance? java.time.temporal.Temporal expr) (hx/cast :timestamp expr) expr)) @@ -86,16 +89,18 @@ (defmethod sql.qp/date [:vertica :quarter-of-year] [_ _ expr] (extract-integer :quarter expr)) (defmethod sql.qp/date [:vertica :year] [_ _ expr] (date-trunc :year expr)) -(defmethod sql.qp/date [:vertica :week] [_ _ expr] +(defmethod sql.qp/date [:vertica :week] + [_ _ expr] (hx/- (date-trunc :week (hx/+ (cast-timestamp expr) one-day)) one-day)) -(defmethod driver/date-add :vertica [_ dt amount unit] +(defmethod driver/date-add :vertica + [_ dt amount unit] (hx/+ (hx/->timestamp dt) (hsql/raw (format "(INTERVAL '%d %s')" (int amount) (name unit))))) (defn- materialized-views - "Fetch the Materialized Views for a Vertica DATABASE. + "Fetch the Materialized Views for a Vertica `database`. These are returned as a set of maps, the same format as `:tables` returned by `describe-database`." [database] (try (set (jdbc/query (sql-jdbc.conn/db->pooled-connection-spec database) @@ -103,22 +108,35 @@ (catch Throwable e (log/error e (trs "Failed to fetch materialized views for this database"))))) -(defmethod driver/describe-database :vertica [driver database] +(defmethod driver/describe-database :vertica + [driver database] (-> ((get-method driver/describe-database :sql-jdbc) driver database) (update :tables set/union (materialized-views database)))) -(defmethod driver.common/current-db-time-date-formatters :vertica [_] +(defmethod driver.common/current-db-time-date-formatters :vertica + [_] (driver.common/create-db-time-formatters "yyyy-MM-dd HH:mm:ss z")) -(defmethod driver.common/current-db-time-native-query :vertica [_] +(defmethod driver.common/current-db-time-native-query :vertica + [_] "select to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS TZ')") -(defmethod driver/current-db-time :vertica [& args] +(defmethod driver/current-db-time :vertica + [& args] (apply driver.common/current-db-time args)) (defmethod sql-jdbc.execute/set-timezone-sql :vertica [_] "SET TIME ZONE TO %s;") -(defmethod unprepare/unprepare-value [:vertica Date] [_ value] - (format "timestamp '%s'" (du/date->iso-8601 value))) - -(prefer-method unprepare/unprepare-value [:sql Time] [:vertica Date]) +(defmethod sql-jdbc.execute/read-column [:vertica Types/TIME] + [_ _ ^ResultSet rs _ ^Integer i] + (let [s (.getString rs i) + t (u.date/parse s)] + (log/tracef "(.getString rs %d) [TIME] -> %s -> %s" i s t) + t)) + +(defmethod sql-jdbc.execute/read-column [:vertica Types/TIME_WITH_TIMEZONE] + [_ _ ^ResultSet rs _ ^Integer i] + (let [s (.getString rs i) + t (u.date/parse s)] + (log/tracef "(.getString rs %d) [TIME_WITH_TIMEZONE] -> %s -> %s" i s t) + t)) diff --git a/package.json b/package.json index 0466b3ed77a6664277c9674aee17ad0195d69a25..06828dea87f5303c815693b8ae5f5606cf068e41 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "yarn": ">=1.12.3" }, "dependencies": { - "ace-builds": "^1.2.2", + "ace-builds": "^1.4.7", "chevrotain": "0.21.0", "classlist-polyfill": "^1.2.0", "classnames": "^2.1.3", @@ -40,7 +40,6 @@ "mustache": "^2.3.2", "node-libs-browser": "^2.0.0", "normalizr": "^3.0.2", - "npm": "^5.8.0", "number-to-locale-string": "^1.0.1", "password-generator": "^2.0.1", "prop-types": "^15.5.7", @@ -53,13 +52,13 @@ "react-dnd": "3", "react-dnd-html5-backend": "3", "react-dom": "15", - "react-draggable": "^2.2.3", + "react-draggable": "^3.3.2", "react-element-to-jsx-string": "^13.1.0", "react-hot-loader": "^1.3.0", - "react-markdown": "^3.0.0-rc3", + "react-markdown": "^3.6.0", "react-motion": "^0.4.5", "react-redux": "^5.0.4", - "react-resizable": "^1.0.1", + "react-resizable": "^1.9.0", "react-retina-image": "^2.0.5", "react-router": "3", "react-router-redux": "^4.0.8", @@ -91,6 +90,7 @@ }, "devDependencies": { "@babel/standalone": "^7.4.5", + "@cypress/webpack-preprocessor": "^4.1.0", "@slack/client": "^3.5.4", "@testing-library/jest-dom": "^4.0.0", "@testing-library/react": "^8.0.6", @@ -113,6 +113,7 @@ "color-diff": "^1.1.0", "concurrently": "^3.1.0", "css-loader": "^0.28.7", + "cypress": "^3.7.0", "documentation": "^4.0.0-rc.1", "enzyme": "^3.8.0", "enzyme-2": "npm:enzyme@2", @@ -120,6 +121,7 @@ "eslint": "^3.5.0", "eslint-import-resolver-webpack": "^0.8.3", "eslint-loader": "^1.9.0", + "eslint-plugin-cypress": "^2.7.0", "eslint-plugin-flowtype": "^2.22.0", "eslint-plugin-import": "^2.2.0", "eslint-plugin-jasmine": "^2.2.0", @@ -152,6 +154,7 @@ "karma-webpack": "^2.0.5", "lint-staged": "^3.3.1", "mockdate": "^2.0.2", + "npm": "^5.8.0", "postcss-cssnext": "^2.4.0", "postcss-import": "^9.0.0", "postcss-loader": "^2.0.8", @@ -179,7 +182,7 @@ "lint-eslint": "yarn && eslint --ext .js --ext .jsx --rulesdir frontend/lint/eslint-rules --max-warnings 0 frontend/src frontend/test", "lint-prettier": "yarn && prettier -l 'frontend/**/*.{js,jsx,css}' || (echo '\nThese files are not formatted correctly. Did you forget to \"yarn prettier\"?' && false)", "flow": "yarn && flow check", - "test": "yarn test-unit && yarn test-integration && yarn test-e2e && yarn test-karma", + "test": "yarn test-unit && yarn test-timezones && yarn test-integration && yarn test-e2e && yarn test-karma", "test-unit": "yarn && jest --maxWorkers=8 --config jest.unit.conf.json", "test-unit-watch": "yarn test-unit --watch", "test-unit-update-snapshot": "yarn test-unit --updateSnapshot", @@ -191,6 +194,8 @@ "test-karma": "yarn && karma start frontend/test/karma.conf.js --single-run", "test-karma-watch": "yarn && karma start frontend/test/karma.conf.js --auto-watch --reporters nyan", "test-integrated": "echo 'test-integrated renamed to test-e2e'; exit 1", + "test-timezones-unit": "yarn && jest --maxWorkers=8 --config jest.tz.unit.conf.json", + "test-timezones": "yarn && ./frontend/test/__runner__/run_timezone_tests", "build": "yarn && webpack --bail", "build-watch": "yarn && webpack --watch", "build-hot": "yarn && NODE_ENV=hot webpack-dev-server --progress", @@ -204,7 +209,10 @@ "docs": "documentation serve --watch frontend/src/metabase-lib/lib/**", "ci": "yarn ci-frontend && yarn ci-backend", "ci-frontend": "yarn lint && yarn flow && yarn test", - "ci-backend": "lein docstring-checker && lein bikeshed && lein eastwood && lein test" + "ci-backend": "lein docstring-checker && lein bikeshed && lein eastwood && lein test", + "test-cypress-headless": "yarn build && ./bin/build-for-test && yarn test-cypress-no-build", + "test-cypress-open": "./bin/build-for-test && yarn test-cypress-no-build --open", + "test-cypress-no-build": "yarn && babel-node ./frontend/test/__runner__/run_cypress_tests.js" }, "lint-staged": { "frontend/**/*.{js,jsx,css}": [ diff --git a/project.clj b/project.clj index 3923e08db425db9dbc6e33050bd1aca9f1f581c9..238cdd983c4a723160c899f3e1844429c6fef42a 100644 --- a/project.clj +++ b/project.clj @@ -63,7 +63,7 @@ :exclusions [commons-codec commons-io slingshot]] - [clj-time "0.15.1"] ; library for dealing with date/time + [clojure.java-time "0.3.2"] ; Java 8 java.time wrapper [clojurewerkz/quartzite "2.1.0" ; scheduling library :exclusions [c3p0]] [colorize "0.1.1" :exclusions [org.clojure/clojure]] ; string output with ANSI color codes (for logging) @@ -106,8 +106,8 @@ com.sun.jmx/jmxri]] [me.raynes/fs "1.4.6"] ; Filesystem tools [medley "1.2.0"] ; lightweight lib of useful functions - [metabase/connection-pool "1.0.3"] ; simple wrapper around C3P0. JDBC connection pools - [metabase/mbql "1.3.6"] ; MBQL language schema & util fns + [metabase/connection-pool "1.1.1"] ; simple wrapper around C3P0. JDBC connection pools + [metabase/mbql "1.4.3"] ; MBQL language schema & util fns [metabase/throttle "1.0.2"] ; Tools for throttling access to API endpoints and other code pathways [net.sf.cssbox/cssbox "4.12" :exclusions [org.slf4j/slf4j-api]] ; HTML / CSS rendering [org.apache.commons/commons-lang3 "3.9"] ; helper methods for working with java.lang stuff @@ -117,9 +117,10 @@ [org.liquibase/liquibase-core "3.6.3" ; migration management (Java lib) :exclusions [ch.qos.logback/logback-classic]] [org.mariadb.jdbc/mariadb-java-client "2.5.1"] ; MySQL/MariaDB driver - [org.postgresql/postgresql "42.2.5"] ; Postgres driver + [org.postgresql/postgresql "42.2.8"] ; Postgres driver [org.slf4j/slf4j-log4j12 "1.7.25"] ; abstraction for logging frameworks -- allows end user to plug in desired logging framework at deployment time [org.tcrawley/dynapath "1.0.0"] ; Dynamically add Jars (e.g. Oracle or Vertica) to classpath + [org.threeten/threeten-extra "1.5.0"] ; extra Java 8 java.time classes like DayOfMonth and Quarter [org.yaml/snakeyaml "1.23"] ; YAML parser (required by liquibase) [potemkin "0.4.5"] ; utility macros & fns [pretty "1.0.1"] ; protocol for defining how custom types should be pretty printed @@ -164,6 +165,7 @@ :dependencies [[clj-http-fake "1.0.3" :exclusions [slingshot]] ; Library to mock clj-http responses + [jonase/eastwood "0.3.6" :exclusions [org.clojure/clojure]] ; to run Eastwood [methodical "0.9.4-alpha"] [pjstadig/humane-test-output "0.9.0"] [ring/ring-mock "0.3.2"]] @@ -179,9 +181,15 @@ (try (require 'metabase.test.redefs) (catch Throwable _))] - :env {:mb-run-mode "dev" - :mb-test-setting-1 "ABCDEFG"} - :jvm-opts ["-Dlogfile.path=target/log"]} + :env + {:mb-run-mode "dev" + :mb-test-setting-1 "ABCDEFG"} + + :jvm-opts + ["-Dlogfile.path=target/log"] + + :repl-options + {:init-ns user}} ; starting in the user namespace is a lot faster than metabase.core since it has less deps :ci {:jvm-opts ["-Xmx2500m"]} @@ -237,7 +245,9 @@ ["-Duser.timezone=UTC" "-Dmb.db.in.memory=true" "-Dmb.jetty.join=false" - "-Dmb.jetty.port=3010" + ;; use a random port between 3001 and 3501. That way if you run multiple sets of tests at the same time locally + ;; they won't stomp on each other + #=(eval (format "-Dmb.jetty.port=%d" (+ 3001 (rand-int 500)))) "-Dmb.api.key=test-api-key" "-Duser.language=en"]}] @@ -250,7 +260,8 @@ :repl [:include-all-drivers - {:jvm-opts ["-Duser.timezone=UTC"]}] ; so running the tests doesn't give you different answers + ;; so running the tests doesn't give you different answers + {:jvm-opts ["-Duser.timezone=UTC"]}] :bikeshed [:include-all-drivers @@ -292,7 +303,7 @@ :docstring-checker [:include-all-drivers {:plugins - [[docstring-checker "1.0.3"]] + [[docstring-checker "1.1.0"]] :docstring-checker {:include [#"^metabase"] @@ -310,21 +321,13 @@ {:auto-clean true :aot :all} - ;; generate sample dataset with `lein generate-sample-dataset` - :generate-sample-dataset - {:dependencies - [[faker "0.3.2"] ; Fake data generator -- port of Perl/Ruby library - [jdistlib "0.5.1" :exclusions [com.github.wendykierp/JTransforms]]] ; Distribution statistic tests - :source-paths ["lein-commands/sample-dataset"] - :main ^:skip-aot metabase.sample-dataset.generate} - ;; lein strip-and-compress my-plugin.jar [path/to/metabase.jar] ;; strips classes from my-plugin.jar that already exist in other JAR and recompresses with higher compression ratio. ;; Second arg (other JAR) is optional; defaults to target/uberjar/metabase.jar :strip-and-compress {:source-paths ["src" "lein-commands/strip-and-compress"] - :main ^:skip-aot metabase.strip-and-compress-module} + :main ^:skip-aot metabase.strip-and-compress-module} ;; Profile Metabase start time with `lein profile` :profile @@ -339,5 +342,5 @@ {:main metabase.automagic-dashboards.rules} :compare-h2-dbs - {:main ^:skip-aot metabase.cmd.compare-h2-dbs + {:main ^:skip-aot metabase.cmd.compare-h2-dbs :source-paths ["test"]}}) diff --git a/resources/data_readers.clj b/resources/data_readers.clj new file mode 100644 index 0000000000000000000000000000000000000000..ce21fdd84122b6fa6b6bd916356edf84c090443c --- /dev/null +++ b/resources/data_readers.clj @@ -0,0 +1 @@ +{t metabase.util.date-2/parse} diff --git a/resources/frontend_client/app/assets/geojson/us-states.json b/resources/frontend_client/app/assets/geojson/us-states.json index bcf051ce281720ed68cba30f3c514e8008e4e0ad..982c122c4c95d86181a2a138b64c096ac22f90d9 100644 --- a/resources/frontend_client/app/assets/geojson/us-states.json +++ b/resources/frontend_client/app/assets/geojson/us-states.json @@ -1,54 +1,52 @@ -{"type":"FeatureCollection","features":[ -{"type":"Feature","id":"01","properties":{"name":"AL"},"geometry":{"type":"Polygon","coordinates":[[[-87.359296,35.00118],[-85.606675,34.984749],[-85.431413,34.124869],[-85.184951,32.859696],[-85.069935,32.580372],[-84.960397,32.421541],[-85.004212,32.322956],[-84.889196,32.262709],[-85.058981,32.13674],[-85.053504,32.01077],[-85.141136,31.840985],[-85.042551,31.539753],[-85.113751,31.27686],[-85.004212,31.003013],[-85.497137,30.997536],[-87.600282,30.997536],[-87.633143,30.86609],[-87.408589,30.674397],[-87.446927,30.510088],[-87.37025,30.427934],[-87.518128,30.280057],[-87.655051,30.247195],[-87.90699,30.411504],[-87.934375,30.657966],[-88.011052,30.685351],[-88.10416,30.499135],[-88.137022,30.318396],[-88.394438,30.367688],[-88.471115,31.895754],[-88.241084,33.796253],[-88.098683,34.891641],[-88.202745,34.995703],[-87.359296,35.00118]]]}}, -{"type":"Feature","id":"02","properties":{"name":"AK"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-131.602021,55.117982],[-131.569159,55.28229],[-131.355558,55.183705],[-131.38842,55.01392],[-131.645836,55.035827],[-131.602021,55.117982]]],[[[-131.832052,55.42469],[-131.645836,55.304197],[-131.749898,55.128935],[-131.832052,55.189182],[-131.832052,55.42469]]],[[[-132.976733,56.437924],[-132.735747,56.459832],[-132.631685,56.421493],[-132.664547,56.273616],[-132.878148,56.240754],[-133.069841,56.333862],[-132.976733,56.437924]]],[[[-133.595627,56.350293],[-133.162949,56.317431],[-133.05341,56.125739],[-132.620732,55.912138],[-132.472854,55.780691],[-132.4619,55.671152],[-132.357838,55.649245],[-132.341408,55.506844],[-132.166146,55.364444],[-132.144238,55.238474],[-132.029222,55.276813],[-131.97993,55.178228],[-131.958022,54.789365],[-132.029222,54.701734],[-132.308546,54.718165],[-132.385223,54.915335],[-132.483808,54.898904],[-132.686455,55.046781],[-132.746701,54.997489],[-132.916486,55.046781],[-132.889102,54.898904],[-132.73027,54.937242],[-132.626209,54.882473],[-132.675501,54.679826],[-132.867194,54.701734],[-133.157472,54.95915],[-133.239626,55.090597],[-133.223195,55.22752],[-133.453227,55.216566],[-133.453227,55.320628],[-133.277964,55.331582],[-133.102702,55.42469],[-133.17938,55.588998],[-133.387503,55.62186],[-133.420365,55.884753],[-133.497042,56.0162],[-133.639442,55.923092],[-133.694212,56.070969],[-133.546335,56.142169],[-133.666827,56.311955],[-133.595627,56.350293]]],[[[-133.738027,55.556137],[-133.546335,55.490413],[-133.414888,55.572568],[-133.283441,55.534229],[-133.420365,55.386352],[-133.633966,55.430167],[-133.738027,55.556137]]],[[[-133.907813,56.930849],[-134.050213,57.029434],[-133.885905,57.095157],[-133.343688,57.002049],[-133.102702,57.007526],[-132.932917,56.82131],[-132.620732,56.667956],[-132.653593,56.55294],[-132.817901,56.492694],[-133.042456,56.520078],[-133.201287,56.448878],[-133.420365,56.492694],[-133.66135,56.448878],[-133.710643,56.684386],[-133.688735,56.837741],[-133.869474,56.843218],[-133.907813,56.930849]]],[[[-134.115936,56.48174],[-134.25286,56.558417],[-134.400737,56.722725],[-134.417168,56.848695],[-134.296675,56.908941],[-134.170706,56.848695],[-134.143321,56.952757],[-133.748981,56.772017],[-133.710643,56.596755],[-133.847566,56.574848],[-133.935197,56.377678],[-133.836612,56.322908],[-133.957105,56.092877],[-134.110459,56.142169],[-134.132367,55.999769],[-134.230952,56.070969],[-134.291198,56.350293],[-134.115936,56.48174]]],[[[-134.636246,56.28457],[-134.669107,56.169554],[-134.806031,56.235277],[-135.178463,56.67891],[-135.413971,56.810356],[-135.331817,56.914418],[-135.424925,57.166357],[-135.687818,57.369004],[-135.419448,57.566174],[-135.298955,57.48402],[-135.063447,57.418296],[-134.849846,57.407343],[-134.844369,57.248511],[-134.636246,56.728202],[-134.636246,56.28457]]],[[[-134.712923,58.223407],[-134.373353,58.14673],[-134.176183,58.157683],[-134.187137,58.081006],[-133.902336,57.807159],[-134.099505,57.850975],[-134.148798,57.757867],[-133.935197,57.615466],[-133.869474,57.363527],[-134.083075,57.297804],[-134.154275,57.210173],[-134.499322,57.029434],[-134.603384,57.034911],[-134.6472,57.226604],[-134.575999,57.341619],[-134.608861,57.511404],[-134.729354,57.719528],[-134.707446,57.829067],[-134.784123,58.097437],[-134.91557,58.212453],[-134.953908,58.409623],[-134.712923,58.223407]]],[[[-135.857603,57.330665],[-135.715203,57.330665],[-135.567326,57.149926],[-135.633049,57.023957],[-135.857603,56.996572],[-135.824742,57.193742],[-135.857603,57.330665]]],[[[-136.279328,58.206976],[-135.978096,58.201499],[-135.780926,58.28913],[-135.496125,58.168637],[-135.64948,58.037191],[-135.59471,57.987898],[-135.45231,58.135776],[-135.107263,58.086483],[-134.91557,57.976944],[-135.025108,57.779775],[-134.937477,57.763344],[-134.822462,57.500451],[-135.085355,57.462112],[-135.572802,57.675713],[-135.556372,57.456635],[-135.709726,57.369004],[-135.890465,57.407343],[-136.000004,57.544266],[-136.208128,57.637374],[-136.366959,57.829067],[-136.569606,57.916698],[-136.558652,58.075529],[-136.421728,58.130299],[-136.377913,58.267222],[-136.279328,58.206976]]],[[[-147.079854,60.200582],[-147.501579,59.948643],[-147.53444,59.850058],[-147.874011,59.784335],[-147.80281,59.937689],[-147.435855,60.09652],[-147.205824,60.271782],[-147.079854,60.200582]]],[[[-147.561825,60.578491],[-147.616594,60.370367],[-147.758995,60.156767],[-147.956165,60.227967],[-147.791856,60.474429],[-147.561825,60.578491]]],[[[-147.786379,70.245291],[-147.682318,70.201475],[-147.162008,70.15766],[-146.888161,70.185044],[-146.510252,70.185044],[-146.099482,70.146706],[-145.858496,70.168614],[-145.622988,70.08646],[-145.195787,69.993352],[-144.620708,69.971444],[-144.461877,70.026213],[-144.078491,70.059075],[-143.914183,70.130275],[-143.497935,70.141229],[-143.503412,70.091936],[-143.25695,70.119321],[-142.747594,70.042644],[-142.402547,69.916674],[-142.079408,69.856428],[-142.008207,69.801659],[-141.712453,69.790705],[-141.433129,69.697597],[-141.378359,69.63735],[-141.208574,69.686643],[-141.00045,69.648304],[-141.00045,60.304644],[-140.53491,60.22249],[-140.474664,60.310121],[-139.987216,60.184151],[-139.696939,60.342983],[-139.088998,60.359413],[-139.198537,60.091043],[-139.045183,59.997935],[-138.700135,59.910304],[-138.623458,59.767904],[-137.604747,59.242118],[-137.445916,58.908024],[-137.265177,59.001132],[-136.827022,59.159963],[-136.580559,59.16544],[-136.465544,59.285933],[-136.476498,59.466672],[-136.301236,59.466672],[-136.25742,59.625503],[-135.945234,59.663842],[-135.479694,59.800766],[-135.025108,59.565257],[-135.068924,59.422857],[-134.959385,59.280456],[-134.701969,59.247595],[-134.378829,59.033994],[-134.400737,58.973748],[-134.25286,58.858732],[-133.842089,58.727285],[-133.173903,58.152206],[-133.075318,57.998852],[-132.867194,57.845498],[-132.560485,57.505928],[-132.253777,57.21565],[-132.368792,57.095157],[-132.05113,57.051341],[-132.127807,56.876079],[-131.870391,56.804879],[-131.837529,56.602232],[-131.580113,56.613186],[-131.087188,56.405062],[-130.78048,56.366724],[-130.621648,56.268139],[-130.468294,56.240754],[-130.424478,56.142169],[-130.101339,56.114785],[-130.002754,55.994292],[-130.150631,55.769737],[-130.128724,55.583521],[-129.986323,55.276813],[-130.095862,55.200136],[-130.336847,54.920812],[-130.687372,54.718165],[-130.785957,54.822227],[-130.917403,54.789365],[-131.010511,54.997489],[-130.983126,55.08512],[-131.092665,55.189182],[-130.862634,55.298721],[-130.928357,55.337059],[-131.158389,55.200136],[-131.284358,55.287767],[-131.426759,55.238474],[-131.843006,55.457552],[-131.700606,55.698537],[-131.963499,55.616383],[-131.974453,55.49589],[-132.182576,55.588998],[-132.226392,55.704014],[-132.083991,55.829984],[-132.127807,55.955953],[-132.324977,55.851892],[-132.522147,56.076446],[-132.642639,56.032631],[-132.719317,56.218847],[-132.527624,56.339339],[-132.341408,56.339339],[-132.396177,56.487217],[-132.297592,56.67891],[-132.450946,56.673433],[-132.768609,56.837741],[-132.993164,57.034911],[-133.51895,57.177311],[-133.507996,57.577128],[-133.677781,57.62642],[-133.639442,57.790728],[-133.814705,57.834544],[-134.072121,58.053622],[-134.143321,58.168637],[-134.586953,58.206976],[-135.074401,58.502731],[-135.282525,59.192825],[-135.38111,59.033994],[-135.337294,58.891593],[-135.140124,58.617746],[-135.189417,58.573931],[-135.05797,58.349376],[-135.085355,58.201499],[-135.277048,58.234361],[-135.430402,58.398669],[-135.633049,58.426053],[-135.91785,58.382238],[-135.912373,58.617746],[-136.087635,58.814916],[-136.246466,58.75467],[-136.876314,58.962794],[-136.931084,58.902547],[-136.586036,58.836824],[-136.317666,58.672516],[-136.213604,58.667039],[-136.180743,58.535592],[-136.043819,58.382238],[-136.388867,58.294607],[-136.591513,58.349376],[-136.59699,58.212453],[-136.859883,58.316515],[-136.947514,58.393192],[-137.111823,58.393192],[-137.566409,58.590362],[-137.900502,58.765624],[-137.933364,58.869686],[-138.11958,59.02304],[-138.634412,59.132579],[-138.919213,59.247595],[-139.417615,59.379041],[-139.746231,59.505011],[-139.718846,59.641934],[-139.625738,59.598119],[-139.5162,59.68575],[-139.625738,59.88292],[-139.488815,59.992458],[-139.554538,60.041751],[-139.801,59.833627],[-140.315833,59.696704],[-140.92925,59.745996],[-141.444083,59.871966],[-141.46599,59.970551],[-141.706976,59.948643],[-141.964392,60.019843],[-142.539471,60.085566],[-142.873564,60.091043],[-143.623905,60.036274],[-143.892275,59.997935],[-144.231845,60.140336],[-144.65357,60.206059],[-144.785016,60.29369],[-144.834309,60.441568],[-145.124586,60.430614],[-145.223171,60.299167],[-145.738004,60.474429],[-145.820158,60.551106],[-146.351421,60.408706],[-146.608837,60.238921],[-146.718376,60.397752],[-146.608837,60.485383],[-146.455483,60.463475],[-145.951604,60.578491],[-146.017328,60.666122],[-146.252836,60.622307],[-146.345944,60.737322],[-146.565022,60.753753],[-146.784099,61.044031],[-146.866253,60.972831],[-147.172962,60.934492],[-147.271547,60.972831],[-147.375609,60.879723],[-147.758995,60.912584],[-147.775426,60.808523],[-148.032842,60.781138],[-148.153334,60.819476],[-148.065703,61.005692],[-148.175242,61.000215],[-148.350504,60.803046],[-148.109519,60.737322],[-148.087611,60.594922],[-147.939734,60.441568],[-148.027365,60.277259],[-148.219058,60.332029],[-148.273827,60.249875],[-148.087611,60.217013],[-147.983549,59.997935],[-148.251919,59.95412],[-148.399797,59.997935],[-148.635305,59.937689],[-148.755798,59.986981],[-149.067984,59.981505],[-149.05703,60.063659],[-149.204907,60.008889],[-149.287061,59.904827],[-149.418508,59.997935],[-149.582816,59.866489],[-149.511616,59.806242],[-149.741647,59.729565],[-149.949771,59.718611],[-150.031925,59.61455],[-150.25648,59.521442],[-150.409834,59.554303],[-150.579619,59.444764],[-150.716543,59.450241],[-151.001343,59.225687],[-151.308052,59.209256],[-151.406637,59.280456],[-151.592853,59.159963],[-151.976239,59.253071],[-151.888608,59.422857],[-151.636669,59.483103],[-151.47236,59.472149],[-151.423068,59.537872],[-151.127313,59.669319],[-151.116359,59.778858],[-151.505222,59.63098],[-151.828361,59.718611],[-151.8667,59.778858],[-151.702392,60.030797],[-151.423068,60.211536],[-151.379252,60.359413],[-151.297098,60.386798],[-151.264237,60.545629],[-151.406637,60.720892],[-151.06159,60.786615],[-150.404357,61.038554],[-150.245526,60.939969],[-150.042879,60.912584],[-149.741647,61.016646],[-150.075741,61.15357],[-150.207187,61.257632],[-150.47008,61.246678],[-150.656296,61.29597],[-150.711066,61.252155],[-151.023251,61.180954],[-151.165652,61.044031],[-151.477837,61.011169],[-151.800977,60.852338],[-151.833838,60.748276],[-152.080301,60.693507],[-152.13507,60.578491],[-152.310332,60.507291],[-152.392486,60.304644],[-152.732057,60.173197],[-152.567748,60.069136],[-152.704672,59.915781],[-153.022334,59.888397],[-153.049719,59.691227],[-153.345474,59.620026],[-153.438582,59.702181],[-153.586459,59.548826],[-153.761721,59.543349],[-153.72886,59.433811],[-154.117723,59.368087],[-154.1944,59.066856],[-153.750768,59.050425],[-153.400243,58.968271],[-153.301658,58.869686],[-153.444059,58.710854],[-153.679567,58.612269],[-153.898645,58.606793],[-153.920553,58.519161],[-154.062953,58.4863],[-153.99723,58.376761],[-154.145107,58.212453],[-154.46277,58.059098],[-154.643509,58.059098],[-154.818771,58.004329],[-154.988556,58.015283],[-155.120003,57.955037],[-155.081664,57.872883],[-155.328126,57.829067],[-155.377419,57.708574],[-155.547204,57.785251],[-155.73342,57.549743],[-156.045606,57.566174],[-156.023698,57.440204],[-156.209914,57.473066],[-156.34136,57.418296],[-156.34136,57.248511],[-156.549484,56.985618],[-156.883577,56.952757],[-157.157424,56.832264],[-157.20124,56.766541],[-157.376502,56.859649],[-157.672257,56.607709],[-157.754411,56.67891],[-157.918719,56.657002],[-157.957058,56.514601],[-158.126843,56.459832],[-158.32949,56.48174],[-158.488321,56.339339],[-158.208997,56.295524],[-158.510229,55.977861],[-159.375585,55.873799],[-159.616571,55.594475],[-159.676817,55.654722],[-159.643955,55.829984],[-159.813741,55.857368],[-160.027341,55.791645],[-160.060203,55.720445],[-160.394296,55.605429],[-160.536697,55.473983],[-160.580512,55.567091],[-160.668143,55.457552],[-160.865313,55.528752],[-161.232268,55.358967],[-161.506115,55.364444],[-161.467776,55.49589],[-161.588269,55.62186],[-161.697808,55.517798],[-161.686854,55.408259],[-162.053809,55.074166],[-162.179779,55.15632],[-162.218117,55.03035],[-162.470057,55.052258],[-162.508395,55.249428],[-162.661749,55.293244],[-162.716519,55.222043],[-162.579595,55.134412],[-162.645319,54.997489],[-162.847965,54.926289],[-163.00132,55.079643],[-163.187536,55.090597],[-163.220397,55.03035],[-163.034181,54.942719],[-163.373752,54.800319],[-163.14372,54.76198],[-163.138243,54.696257],[-163.329936,54.74555],[-163.587352,54.614103],[-164.085754,54.61958],[-164.332216,54.531949],[-164.354124,54.466226],[-164.638925,54.389548],[-164.847049,54.416933],[-164.918249,54.603149],[-164.710125,54.663395],[-164.551294,54.88795],[-164.34317,54.893427],[-163.894061,55.041304],[-163.532583,55.046781],[-163.39566,54.904381],[-163.291598,55.008443],[-163.313505,55.128935],[-163.105382,55.183705],[-162.880827,55.183705],[-162.579595,55.446598],[-162.245502,55.682106],[-161.807347,55.89023],[-161.292514,55.983338],[-161.078914,55.939523],[-160.87079,55.999769],[-160.816021,55.912138],[-160.931036,55.813553],[-160.805067,55.736876],[-160.766728,55.857368],[-160.509312,55.868322],[-160.438112,55.791645],[-160.27928,55.76426],[-160.273803,55.857368],[-160.536697,55.939523],[-160.558604,55.994292],[-160.383342,56.251708],[-160.147834,56.399586],[-159.830171,56.541986],[-159.326293,56.667956],[-158.959338,56.848695],[-158.784076,56.782971],[-158.641675,56.810356],[-158.701922,56.925372],[-158.658106,57.034911],[-158.378782,57.264942],[-157.995396,57.41282],[-157.688688,57.609989],[-157.705118,57.719528],[-157.458656,58.497254],[-157.07527,58.705377],[-157.119086,58.869686],[-158.039212,58.634177],[-158.32949,58.661562],[-158.40069,58.760147],[-158.564998,58.803962],[-158.619768,58.913501],[-158.767645,58.864209],[-158.860753,58.694424],[-158.701922,58.480823],[-158.893615,58.387715],[-159.0634,58.420577],[-159.392016,58.760147],[-159.616571,58.929932],[-159.731586,58.929932],[-159.808264,58.803962],[-159.906848,58.782055],[-160.054726,58.886116],[-160.235465,58.902547],[-160.317619,59.072332],[-160.854359,58.88064],[-161.33633,58.743716],[-161.374669,58.667039],[-161.752577,58.552023],[-161.938793,58.656085],[-161.769008,58.776578],[-161.829255,59.061379],[-161.955224,59.36261],[-161.703285,59.48858],[-161.911409,59.740519],[-162.092148,59.88292],[-162.234548,60.091043],[-162.448149,60.178674],[-162.502918,59.997935],[-162.760334,59.959597],[-163.171105,59.844581],[-163.66403,59.795289],[-163.9324,59.806242],[-164.162431,59.866489],[-164.189816,60.02532],[-164.386986,60.074613],[-164.699171,60.29369],[-164.962064,60.337506],[-165.268773,60.578491],[-165.060649,60.68803],[-165.016834,60.890677],[-165.175665,60.846861],[-165.197573,60.972831],[-165.120896,61.076893],[-165.323543,61.170001],[-165.34545,61.071416],[-165.591913,61.109754],[-165.624774,61.279539],[-165.816467,61.301447],[-165.920529,61.416463],[-165.915052,61.558863],[-166.106745,61.49314],[-166.139607,61.630064],[-165.904098,61.662925],[-166.095791,61.81628],[-165.756221,61.827233],[-165.756221,62.013449],[-165.674067,62.139419],[-165.044219,62.539236],[-164.912772,62.659728],[-164.819664,62.637821],[-164.874433,62.807606],[-164.633448,63.097884],[-164.425324,63.212899],[-164.036462,63.262192],[-163.73523,63.212899],[-163.313505,63.037637],[-163.039658,63.059545],[-162.661749,63.22933],[-162.272887,63.486746],[-162.075717,63.514131],[-162.026424,63.448408],[-161.555408,63.448408],[-161.13916,63.503177],[-160.766728,63.771547],[-160.766728,63.837271],[-160.952944,64.08921],[-160.974852,64.237087],[-161.26513,64.395918],[-161.374669,64.532842],[-161.078914,64.494503],[-160.79959,64.609519],[-160.783159,64.719058],[-161.144637,64.921705],[-161.413007,64.762873],[-161.664946,64.790258],[-161.900455,64.702627],[-162.168825,64.680719],[-162.234548,64.620473],[-162.541257,64.532842],[-162.634365,64.384965],[-162.787719,64.324718],[-162.858919,64.49998],[-163.045135,64.538319],[-163.176582,64.401395],[-163.253259,64.467119],[-163.598306,64.565704],[-164.304832,64.560227],[-164.80871,64.450688],[-165.000403,64.434257],[-165.411174,64.49998],[-166.188899,64.576658],[-166.391546,64.636904],[-166.484654,64.735489],[-166.413454,64.872412],[-166.692778,64.987428],[-166.638008,65.113398],[-166.462746,65.179121],[-166.517516,65.337952],[-166.796839,65.337952],[-167.026871,65.381768],[-167.47598,65.414629],[-167.711489,65.496784],[-168.072967,65.578938],[-168.105828,65.682999],[-167.541703,65.819923],[-166.829701,66.049954],[-166.3313,66.186878],[-166.046499,66.110201],[-165.756221,66.09377],[-165.690498,66.203309],[-165.86576,66.21974],[-165.88219,66.312848],[-165.186619,66.466202],[-164.403417,66.581218],[-163.981692,66.592172],[-163.751661,66.553833],[-163.872153,66.389525],[-163.828338,66.274509],[-163.915969,66.192355],[-163.768091,66.060908],[-163.494244,66.082816],[-163.149197,66.060908],[-162.749381,66.088293],[-162.634365,66.039001],[-162.371472,66.028047],[-162.14144,66.077339],[-161.840208,66.02257],[-161.549931,66.241647],[-161.341807,66.252601],[-161.199406,66.208786],[-161.128206,66.334755],[-161.528023,66.395002],[-161.911409,66.345709],[-161.87307,66.510017],[-162.174302,66.68528],[-162.502918,66.740049],[-162.601503,66.89888],[-162.344087,66.937219],[-162.015471,66.778388],[-162.075717,66.652418],[-161.916886,66.553833],[-161.571838,66.438817],[-161.489684,66.55931],[-161.884024,66.718141],[-161.714239,67.002942],[-161.851162,67.052235],[-162.240025,66.991988],[-162.639842,67.008419],[-162.700088,67.057712],[-162.902735,67.008419],[-163.740707,67.128912],[-163.757138,67.254881],[-164.009077,67.534205],[-164.211724,67.638267],[-164.534863,67.725898],[-165.192096,67.966884],[-165.493328,68.059992],[-165.794559,68.081899],[-166.243668,68.246208],[-166.681824,68.339316],[-166.703731,68.372177],[-166.375115,68.42147],[-166.227238,68.574824],[-166.216284,68.881533],[-165.329019,68.859625],[-164.255539,68.930825],[-163.976215,68.985595],[-163.532583,69.138949],[-163.110859,69.374457],[-163.023228,69.609966],[-162.842489,69.812613],[-162.470057,69.982398],[-162.311225,70.108367],[-161.851162,70.311014],[-161.779962,70.256245],[-161.396576,70.239814],[-160.837928,70.343876],[-160.487404,70.453415],[-159.649432,70.792985],[-159.33177,70.809416],[-159.298908,70.760123],[-158.975769,70.798462],[-158.658106,70.787508],[-158.033735,70.831323],[-157.420318,70.979201],[-156.812377,71.285909],[-156.565915,71.351633],[-156.522099,71.296863],[-155.585543,71.170894],[-155.508865,71.083263],[-155.832005,70.968247],[-155.979882,70.96277],[-155.974405,70.809416],[-155.503388,70.858708],[-155.476004,70.940862],[-155.262403,71.017539],[-155.191203,70.973724],[-155.032372,71.148986],[-154.566832,70.990155],[-154.643509,70.869662],[-154.353231,70.8368],[-154.183446,70.7656],[-153.931507,70.880616],[-153.487874,70.886093],[-153.235935,70.924431],[-152.589656,70.886093],[-152.26104,70.842277],[-152.419871,70.606769],[-151.817408,70.546523],[-151.773592,70.486276],[-151.187559,70.382214],[-151.182082,70.431507],[-150.760358,70.49723],[-150.355064,70.491753],[-150.349588,70.436984],[-150.114079,70.431507],[-149.867617,70.508184],[-149.462323,70.519138],[-149.177522,70.486276],[-148.78866,70.404122],[-148.607921,70.420553],[-148.350504,70.305537],[-148.202627,70.349353],[-147.961642,70.316491],[-147.786379,70.245291]]],[[[-152.94018,58.026237],[-152.945657,57.982421],[-153.290705,58.048145],[-153.044242,58.305561],[-152.819688,58.327469],[-152.666333,58.562977],[-152.496548,58.354853],[-152.354148,58.426053],[-152.080301,58.311038],[-152.080301,58.152206],[-152.480117,58.130299],[-152.655379,58.059098],[-152.94018,58.026237]]],[[[-153.958891,57.538789],[-153.67409,57.670236],[-153.931507,57.69762],[-153.936983,57.812636],[-153.723383,57.889313],[-153.570028,57.834544],[-153.548121,57.719528],[-153.46049,57.796205],[-153.455013,57.96599],[-153.268797,57.889313],[-153.235935,57.998852],[-153.071627,57.933129],[-152.874457,57.933129],[-152.721103,57.993375],[-152.469163,57.889313],[-152.469163,57.599035],[-152.151501,57.620943],[-152.359625,57.42925],[-152.74301,57.505928],[-152.60061,57.379958],[-152.710149,57.275896],[-152.907319,57.325188],[-152.912796,57.128019],[-153.214027,57.073249],[-153.312612,56.991095],[-153.498828,57.067772],[-153.695998,56.859649],[-153.849352,56.837741],[-154.013661,56.744633],[-154.073907,56.969187],[-154.303938,56.848695],[-154.314892,56.919895],[-154.523016,56.991095],[-154.539447,57.193742],[-154.742094,57.275896],[-154.627078,57.511404],[-154.227261,57.659282],[-153.980799,57.648328],[-153.958891,57.538789]]],[[[-154.53397,56.602232],[-154.742094,56.399586],[-154.807817,56.432447],[-154.53397,56.602232]]],[[[-155.634835,55.923092],[-155.476004,55.912138],[-155.530773,55.704014],[-155.793666,55.731399],[-155.837482,55.802599],[-155.634835,55.923092]]],[[[-159.890418,55.28229],[-159.950664,55.068689],[-160.257373,54.893427],[-160.109495,55.161797],[-160.005433,55.134412],[-159.890418,55.28229]]],[[[-160.520266,55.358967],[-160.33405,55.358967],[-160.339527,55.249428],[-160.525743,55.128935],[-160.690051,55.211089],[-160.794113,55.134412],[-160.854359,55.320628],[-160.79959,55.380875],[-160.520266,55.358967]]],[[[-162.256456,54.981058],[-162.234548,54.893427],[-162.349564,54.838658],[-162.437195,54.931766],[-162.256456,54.981058]]],[[[-162.415287,63.634624],[-162.563165,63.536039],[-162.612457,63.62367],[-162.415287,63.634624]]],[[[-162.80415,54.488133],[-162.590549,54.449795],[-162.612457,54.367641],[-162.782242,54.373118],[-162.80415,54.488133]]],[[[-165.548097,54.29644],[-165.476897,54.181425],[-165.630251,54.132132],[-165.685021,54.252625],[-165.548097,54.29644]]],[[[-165.73979,54.15404],[-166.046499,54.044501],[-166.112222,54.121178],[-165.980775,54.219763],[-165.73979,54.15404]]],[[[-166.364161,60.359413],[-166.13413,60.397752],[-166.084837,60.326552],[-165.88219,60.342983],[-165.685021,60.277259],[-165.646682,59.992458],[-165.750744,59.89935],[-166.00816,59.844581],[-166.062929,59.745996],[-166.440838,59.855535],[-166.6161,59.850058],[-166.994009,59.992458],[-167.125456,59.992458],[-167.344534,60.074613],[-167.421211,60.206059],[-167.311672,60.238921],[-166.93924,60.206059],[-166.763978,60.310121],[-166.577762,60.321075],[-166.495608,60.392275],[-166.364161,60.359413]]],[[[-166.375115,54.01164],[-166.210807,53.934962],[-166.5449,53.748746],[-166.539423,53.715885],[-166.117699,53.852808],[-166.112222,53.776131],[-166.282007,53.683023],[-166.555854,53.622777],[-166.583239,53.529669],[-166.878994,53.431084],[-167.13641,53.425607],[-167.306195,53.332499],[-167.623857,53.250345],[-167.793643,53.337976],[-167.459549,53.442038],[-167.355487,53.425607],[-167.103548,53.513238],[-167.163794,53.611823],[-167.021394,53.715885],[-166.807793,53.666592],[-166.785886,53.732316],[-167.015917,53.754223],[-167.141887,53.825424],[-167.032348,53.945916],[-166.643485,54.017116],[-166.561331,53.880193],[-166.375115,54.01164]]],[[[-168.790446,53.157237],[-168.40706,53.34893],[-168.385152,53.431084],[-168.237275,53.524192],[-168.007243,53.568007],[-167.886751,53.518715],[-167.842935,53.387268],[-168.270136,53.244868],[-168.500168,53.036744],[-168.686384,52.965544],[-168.790446,53.157237]]],[[[-169.74891,52.894344],[-169.705095,52.795759],[-169.962511,52.790282],[-169.989896,52.856005],[-169.74891,52.894344]]],[[[-170.148727,57.221127],[-170.28565,57.128019],[-170.313035,57.221127],[-170.148727,57.221127]]],[[[-170.669036,52.697174],[-170.603313,52.604066],[-170.789529,52.538343],[-170.816914,52.636928],[-170.669036,52.697174]]],[[[-171.742517,63.716778],[-170.94836,63.5689],[-170.488297,63.69487],[-170.280174,63.683916],[-170.093958,63.612716],[-170.044665,63.492223],[-169.644848,63.4265],[-169.518879,63.366254],[-168.99857,63.338869],[-168.686384,63.295053],[-168.856169,63.147176],[-169.108108,63.180038],[-169.376478,63.152653],[-169.513402,63.08693],[-169.639372,62.939052],[-169.831064,63.075976],[-170.055619,63.169084],[-170.263743,63.180038],[-170.362328,63.2841],[-170.866206,63.415546],[-171.101715,63.421023],[-171.463193,63.306007],[-171.73704,63.366254],[-171.852055,63.486746],[-171.742517,63.716778]]],[[[-172.432611,52.390465],[-172.41618,52.275449],[-172.607873,52.253542],[-172.569535,52.352127],[-172.432611,52.390465]]],[[[-173.626584,52.14948],[-173.495138,52.105664],[-173.122706,52.111141],[-173.106275,52.07828],[-173.549907,52.028987],[-173.626584,52.14948]]],[[[-174.322156,52.280926],[-174.327632,52.379511],[-174.185232,52.41785],[-173.982585,52.319265],[-174.059262,52.226157],[-174.179755,52.231634],[-174.141417,52.127572],[-174.333109,52.116618],[-174.738403,52.007079],[-174.968435,52.039941],[-174.902711,52.116618],[-174.656249,52.105664],[-174.322156,52.280926]]],[[[-176.469116,51.853725],[-176.288377,51.870156],[-176.288377,51.744186],[-176.518409,51.760617],[-176.80321,51.61274],[-176.912748,51.80991],[-176.792256,51.815386],[-176.775825,51.963264],[-176.627947,51.968741],[-176.627947,51.859202],[-176.469116,51.853725]]],[[[-177.153734,51.946833],[-177.044195,51.897541],[-177.120872,51.727755],[-177.274226,51.678463],[-177.279703,51.782525],[-177.153734,51.946833]]],[[[-178.123152,51.919448],[-177.953367,51.913971],[-177.800013,51.793479],[-177.964321,51.651078],[-178.123152,51.919448]]],[[[173.107557,52.992929],[173.293773,52.927205],[173.304726,52.823143],[172.90491,52.762897],[172.642017,52.927205],[172.642017,53.003883],[173.107557,52.992929]]]]}}, -{"type":"Feature","id":"04","properties":{"name":"AZ"},"geometry":{"type":"Polygon","coordinates":[[[-109.042503,37.000263],[-109.04798,31.331629],[-111.074448,31.331629],[-112.246513,31.704061],[-114.815198,32.492741],[-114.72209,32.717295],[-114.524921,32.755634],[-114.470151,32.843265],[-114.524921,33.029481],[-114.661844,33.034958],[-114.727567,33.40739],[-114.524921,33.54979],[-114.497536,33.697668],[-114.535874,33.933176],[-114.415382,34.108438],[-114.256551,34.174162],[-114.136058,34.305608],[-114.333228,34.448009],[-114.470151,34.710902],[-114.634459,34.87521],[-114.634459,35.00118],[-114.574213,35.138103],[-114.596121,35.324319],[-114.678275,35.516012],[-114.738521,36.102045],[-114.371566,36.140383],[-114.251074,36.01989],[-114.152489,36.025367],[-114.048427,36.195153],[-114.048427,37.000263],[-110.499369,37.00574],[-109.042503,37.000263]]]}}, -{"type":"Feature","id":"05","properties":{"name":"AR"},"geometry":{"type":"Polygon","coordinates":[[[-94.473842,36.501861],[-90.152536,36.496384],[-90.064905,36.304691],[-90.218259,36.184199],[-90.377091,35.997983],[-89.730812,35.997983],[-89.763673,35.811767],[-89.911551,35.756997],[-89.944412,35.603643],[-90.130628,35.439335],[-90.114197,35.198349],[-90.212782,35.023087],[-90.311367,34.995703],[-90.251121,34.908072],[-90.409952,34.831394],[-90.481152,34.661609],[-90.585214,34.617794],[-90.568783,34.420624],[-90.749522,34.365854],[-90.744046,34.300131],[-90.952169,34.135823],[-90.891923,34.026284],[-91.072662,33.867453],[-91.231493,33.560744],[-91.056231,33.429298],[-91.143862,33.347144],[-91.089093,33.13902],[-91.16577,33.002096],[-93.608485,33.018527],[-94.041164,33.018527],[-94.041164,33.54979],[-94.183564,33.593606],[-94.380734,33.544313],[-94.484796,33.637421],[-94.430026,35.395519],[-94.616242,36.501861],[-94.473842,36.501861]]]}}, -{"type":"Feature","id":"06","properties":{"name":"CA"},"geometry":{"type":"Polygon","coordinates":[[[-123.233256,42.006186],[-122.378853,42.011663],[-121.037003,41.995232],[-120.001861,41.995232],[-119.996384,40.264519],[-120.001861,38.999346],[-118.71478,38.101128],[-117.498899,37.21934],[-116.540435,36.501861],[-115.85034,35.970598],[-114.634459,35.00118],[-114.634459,34.87521],[-114.470151,34.710902],[-114.333228,34.448009],[-114.136058,34.305608],[-114.256551,34.174162],[-114.415382,34.108438],[-114.535874,33.933176],[-114.497536,33.697668],[-114.524921,33.54979],[-114.727567,33.40739],[-114.661844,33.034958],[-114.524921,33.029481],[-114.470151,32.843265],[-114.524921,32.755634],[-114.72209,32.717295],[-116.04751,32.624187],[-117.126467,32.536556],[-117.24696,32.668003],[-117.252437,32.876127],[-117.329114,33.122589],[-117.471515,33.297851],[-117.7837,33.538836],[-118.183517,33.763391],[-118.260194,33.703145],[-118.413548,33.741483],[-118.391641,33.840068],[-118.566903,34.042715],[-118.802411,33.998899],[-119.218659,34.146777],[-119.278905,34.26727],[-119.558229,34.415147],[-119.875891,34.40967],[-120.138784,34.475393],[-120.472878,34.448009],[-120.64814,34.579455],[-120.609801,34.858779],[-120.670048,34.902595],[-120.631709,35.099764],[-120.894602,35.247642],[-120.905556,35.450289],[-121.004141,35.461243],[-121.168449,35.636505],[-121.283465,35.674843],[-121.332757,35.784382],[-121.716143,36.195153],[-121.896882,36.315645],[-121.935221,36.638785],[-121.858544,36.6114],[-121.787344,36.803093],[-121.929744,36.978355],[-122.105006,36.956447],[-122.335038,37.115279],[-122.417192,37.241248],[-122.400761,37.361741],[-122.515777,37.520572],[-122.515777,37.783465],[-122.329561,37.783465],[-122.406238,38.15042],[-122.488392,38.112082],[-122.504823,37.931343],[-122.701993,37.893004],[-122.937501,38.029928],[-122.97584,38.265436],[-123.129194,38.451652],[-123.331841,38.566668],[-123.44138,38.698114],[-123.737134,38.95553],[-123.687842,39.032208],[-123.824765,39.366301],[-123.764519,39.552517],[-123.85215,39.831841],[-124.109566,40.105688],[-124.361506,40.259042],[-124.410798,40.439781],[-124.158859,40.877937],[-124.109566,41.025814],[-124.158859,41.14083],[-124.065751,41.442061],[-124.147905,41.715908],[-124.257444,41.781632],[-124.213628,42.000709],[-123.233256,42.006186]]]}}, -{"type":"Feature","id":"08","properties":{"name":"CO"},"geometry":{"type":"Polygon","coordinates":[[[-107.919731,41.003906],[-105.728954,40.998429],[-104.053011,41.003906],[-102.053927,41.003906],[-102.053927,40.001626],[-102.042974,36.994786],[-103.001438,37.000263],[-104.337812,36.994786],[-106.868158,36.994786],[-107.421329,37.000263],[-109.042503,37.000263],[-109.042503,38.166851],[-109.058934,38.27639],[-109.053457,39.125316],[-109.04798,40.998429],[-107.919731,41.003906]]]}}, -{"type":"Feature","id":"09","properties":{"name":"CT"},"geometry":{"type":"Polygon","coordinates":[[[-73.053528,42.039048],[-71.799309,42.022617],[-71.799309,42.006186],[-71.799309,41.414677],[-71.859555,41.321569],[-71.947186,41.338],[-72.385341,41.261322],[-72.905651,41.28323],[-73.130205,41.146307],[-73.371191,41.102491],[-73.655992,40.987475],[-73.727192,41.102491],[-73.48073,41.21203],[-73.55193,41.294184],[-73.486206,42.050002],[-73.053528,42.039048]]]}}, -{"type":"Feature","id":"10","properties":{"name":"DE"},"geometry":{"type":"Polygon","coordinates":[[[-75.414089,39.804456],[-75.507197,39.683964],[-75.611259,39.61824],[-75.589352,39.459409],[-75.441474,39.311532],[-75.403136,39.065069],[-75.189535,38.807653],[-75.09095,38.796699],[-75.047134,38.451652],[-75.693413,38.462606],[-75.786521,39.722302],[-75.616736,39.831841],[-75.414089,39.804456]]]}}, -{"type":"Feature","id":"11","properties":{"name":"DC"},"geometry":{"type":"Polygon","coordinates":[[[-77.035264,38.993869],[-76.909294,38.895284],[-77.040741,38.791222],[-77.117418,38.933623],[-77.035264,38.993869]]]}}, -{"type":"Feature","id":"12","properties":{"name":"FL"},"geometry":{"type":"Polygon","coordinates":[[[-85.497137,30.997536],[-85.004212,31.003013],[-84.867289,30.712735],[-83.498053,30.647012],[-82.216449,30.570335],[-82.167157,30.356734],[-82.046664,30.362211],[-82.002849,30.564858],[-82.041187,30.751074],[-81.948079,30.827751],[-81.718048,30.745597],[-81.444201,30.707258],[-81.383954,30.27458],[-81.257985,29.787132],[-80.967707,29.14633],[-80.524075,28.461713],[-80.589798,28.41242],[-80.56789,28.094758],[-80.381674,27.738757],[-80.091397,27.021277],[-80.03115,26.796723],[-80.036627,26.566691],[-80.146166,25.739673],[-80.239274,25.723243],[-80.337859,25.465826],[-80.304997,25.383672],[-80.49669,25.197456],[-80.573367,25.241272],[-80.759583,25.164595],[-81.077246,25.120779],[-81.170354,25.224841],[-81.126538,25.378195],[-81.351093,25.821827],[-81.526355,25.903982],[-81.679709,25.843735],[-81.800202,26.090198],[-81.833064,26.292844],[-82.041187,26.517399],[-82.09048,26.665276],[-82.057618,26.878877],[-82.172634,26.917216],[-82.145249,26.791246],[-82.249311,26.758384],[-82.566974,27.300601],[-82.692943,27.437525],[-82.391711,27.837342],[-82.588881,27.815434],[-82.720328,27.689464],[-82.851774,27.886634],[-82.676512,28.434328],[-82.643651,28.888914],[-82.764143,28.998453],[-82.802482,29.14633],[-82.994175,29.179192],[-83.218729,29.420177],[-83.399469,29.518762],[-83.410422,29.66664],[-83.536392,29.721409],[-83.640454,29.885717],[-84.02384,30.104795],[-84.357933,30.055502],[-84.341502,29.902148],[-84.451041,29.929533],[-84.867289,29.743317],[-85.310921,29.699501],[-85.299967,29.80904],[-85.404029,29.940487],[-85.924338,30.236241],[-86.29677,30.362211],[-86.630863,30.395073],[-86.910187,30.373165],[-87.518128,30.280057],[-87.37025,30.427934],[-87.446927,30.510088],[-87.408589,30.674397],[-87.633143,30.86609],[-87.600282,30.997536],[-85.497137,30.997536]]]}}, -{"type":"Feature","id":"13","properties":{"name":"GA"},"geometry":{"type":"Polygon","coordinates":[[[-83.109191,35.00118],[-83.322791,34.787579],[-83.339222,34.683517],[-83.005129,34.469916],[-82.901067,34.486347],[-82.747713,34.26727],[-82.714851,34.152254],[-82.55602,33.94413],[-82.325988,33.81816],[-82.194542,33.631944],[-81.926172,33.462159],[-81.937125,33.347144],[-81.761863,33.160928],[-81.493493,33.007573],[-81.42777,32.843265],[-81.416816,32.629664],[-81.279893,32.558464],[-81.121061,32.290094],[-81.115584,32.120309],[-80.885553,32.032678],[-81.132015,31.693108],[-81.175831,31.517845],[-81.279893,31.364491],[-81.290846,31.20566],[-81.400385,31.13446],[-81.444201,30.707258],[-81.718048,30.745597],[-81.948079,30.827751],[-82.041187,30.751074],[-82.002849,30.564858],[-82.046664,30.362211],[-82.167157,30.356734],[-82.216449,30.570335],[-83.498053,30.647012],[-84.867289,30.712735],[-85.004212,31.003013],[-85.113751,31.27686],[-85.042551,31.539753],[-85.141136,31.840985],[-85.053504,32.01077],[-85.058981,32.13674],[-84.889196,32.262709],[-85.004212,32.322956],[-84.960397,32.421541],[-85.069935,32.580372],[-85.184951,32.859696],[-85.431413,34.124869],[-85.606675,34.984749],[-84.319594,34.990226],[-83.618546,34.984749],[-83.109191,35.00118]]]}}, -{"type":"Feature","id":"15","properties":{"name":"HI"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.634835,18.948267],[-155.881297,19.035898],[-155.919636,19.123529],[-155.886774,19.348084],[-156.062036,19.73147],[-155.925113,19.857439],[-155.826528,20.032702],[-155.897728,20.147717],[-155.87582,20.26821],[-155.596496,20.12581],[-155.284311,20.021748],[-155.092618,19.868393],[-155.092618,19.736947],[-154.807817,19.523346],[-154.983079,19.348084],[-155.295265,19.26593],[-155.514342,19.134483],[-155.634835,18.948267]]],[[[-156.587823,21.029505],[-156.472807,20.892581],[-156.324929,20.952827],[-156.00179,20.793996],[-156.051082,20.651596],[-156.379699,20.580396],[-156.445422,20.60778],[-156.461853,20.783042],[-156.631638,20.821381],[-156.697361,20.919966],[-156.587823,21.029505]]],[[[-156.982162,21.210244],[-157.080747,21.106182],[-157.310779,21.106182],[-157.239579,21.221198],[-156.982162,21.210244]]],[[[-157.951581,21.697691],[-157.842042,21.462183],[-157.896811,21.325259],[-158.110412,21.303352],[-158.252813,21.582676],[-158.126843,21.588153],[-157.951581,21.697691]]],[[[-159.468693,22.228955],[-159.353678,22.218001],[-159.298908,22.113939],[-159.33177,21.966061],[-159.446786,21.872953],[-159.764448,21.987969],[-159.726109,22.152277],[-159.468693,22.228955]]]]}}, -{"type":"Feature","id":"16","properties":{"name":"ID"},"geometry":{"type":"Polygon","coordinates":[[[-116.04751,49.000239],[-116.04751,47.976051],[-115.724371,47.696727],[-115.718894,47.42288],[-115.527201,47.302388],[-115.324554,47.258572],[-115.302646,47.187372],[-114.930214,46.919002],[-114.886399,46.809463],[-114.623506,46.705401],[-114.612552,46.639678],[-114.322274,46.645155],[-114.464674,46.272723],[-114.492059,46.037214],[-114.387997,45.88386],[-114.568736,45.774321],[-114.497536,45.670259],[-114.546828,45.560721],[-114.333228,45.456659],[-114.086765,45.593582],[-113.98818,45.703121],[-113.807441,45.604536],[-113.834826,45.522382],[-113.736241,45.330689],[-113.571933,45.128042],[-113.45144,45.056842],[-113.456917,44.865149],[-113.341901,44.782995],[-113.133778,44.772041],[-113.002331,44.448902],[-112.887315,44.394132],[-112.783254,44.48724],[-112.471068,44.481763],[-112.241036,44.569394],[-112.104113,44.520102],[-111.868605,44.563917],[-111.819312,44.509148],[-111.616665,44.547487],[-111.386634,44.75561],[-111.227803,44.580348],[-111.047063,44.476286],[-111.047063,42.000709],[-112.164359,41.995232],[-114.04295,41.995232],[-117.027882,42.000709],[-117.027882,43.830007],[-116.896436,44.158624],[-116.97859,44.240778],[-117.170283,44.257209],[-117.241483,44.394132],[-117.038836,44.750133],[-116.934774,44.782995],[-116.830713,44.930872],[-116.847143,45.02398],[-116.732128,45.144473],[-116.671881,45.319735],[-116.463758,45.61549],[-116.545912,45.752413],[-116.78142,45.823614],[-116.918344,45.993399],[-116.92382,46.168661],[-117.055267,46.343923],[-117.038836,46.426077],[-117.044313,47.762451],[-117.033359,49.000239],[-116.04751,49.000239]]]}}, -{"type":"Feature","id":"17","properties":{"name":"IL"},"geometry":{"type":"Polygon","coordinates":[[[-90.639984,42.510065],[-88.788778,42.493634],[-87.802929,42.493634],[-87.83579,42.301941],[-87.682436,42.077386],[-87.523605,41.710431],[-87.529082,39.34987],[-87.63862,39.169131],[-87.512651,38.95553],[-87.49622,38.780268],[-87.62219,38.637868],[-87.655051,38.506421],[-87.83579,38.292821],[-87.950806,38.27639],[-87.923421,38.15042],[-88.000098,38.101128],[-88.060345,37.865619],[-88.027483,37.799896],[-88.15893,37.657496],[-88.065822,37.482234],[-88.476592,37.389126],[-88.514931,37.285064],[-88.421823,37.153617],[-88.547792,37.071463],[-88.914747,37.224817],[-89.029763,37.213863],[-89.183118,37.038601],[-89.133825,36.983832],[-89.292656,36.994786],[-89.517211,37.279587],[-89.435057,37.34531],[-89.517211,37.537003],[-89.517211,37.690357],[-89.84035,37.903958],[-89.949889,37.88205],[-90.059428,38.013497],[-90.355183,38.216144],[-90.349706,38.374975],[-90.179921,38.632391],[-90.207305,38.725499],[-90.10872,38.845992],[-90.251121,38.917192],[-90.470199,38.961007],[-90.585214,38.867899],[-90.661891,38.928146],[-90.727615,39.256762],[-91.061708,39.470363],[-91.368417,39.727779],[-91.494386,40.034488],[-91.50534,40.237135],[-91.417709,40.379535],[-91.401278,40.560274],[-91.121954,40.669813],[-91.09457,40.823167],[-90.963123,40.921752],[-90.946692,41.097014],[-91.111001,41.239415],[-91.045277,41.414677],[-90.656414,41.463969],[-90.344229,41.589939],[-90.311367,41.743293],[-90.179921,41.809016],[-90.141582,42.000709],[-90.168967,42.126679],[-90.393521,42.225264],[-90.420906,42.329326],[-90.639984,42.510065]]]}}, -{"type":"Feature","id":"18","properties":{"name":"IN"},"geometry":{"type":"Polygon","coordinates":[[[-85.990061,41.759724],[-84.807042,41.759724],[-84.807042,41.694001],[-84.801565,40.500028],[-84.817996,39.103408],[-84.894673,39.059592],[-84.812519,38.785745],[-84.987781,38.780268],[-85.173997,38.68716],[-85.431413,38.730976],[-85.42046,38.533806],[-85.590245,38.451652],[-85.655968,38.325682],[-85.83123,38.27639],[-85.924338,38.024451],[-86.039354,37.958727],[-86.263908,38.051835],[-86.302247,38.166851],[-86.521325,38.040881],[-86.504894,37.931343],[-86.729448,37.893004],[-86.795172,37.991589],[-87.047111,37.893004],[-87.129265,37.788942],[-87.381204,37.93682],[-87.512651,37.903958],[-87.600282,37.975158],[-87.682436,37.903958],[-87.934375,37.893004],[-88.027483,37.799896],[-88.060345,37.865619],[-88.000098,38.101128],[-87.923421,38.15042],[-87.950806,38.27639],[-87.83579,38.292821],[-87.655051,38.506421],[-87.62219,38.637868],[-87.49622,38.780268],[-87.512651,38.95553],[-87.63862,39.169131],[-87.529082,39.34987],[-87.523605,41.710431],[-87.42502,41.644708],[-87.118311,41.644708],[-86.822556,41.759724],[-85.990061,41.759724]]]}}, -{"type":"Feature","id":"19","properties":{"name":"IA"},"geometry":{"type":"Polygon","coordinates":[[[-91.368417,43.501391],[-91.215062,43.501391],[-91.204109,43.353514],[-91.056231,43.254929],[-91.176724,43.134436],[-91.143862,42.909881],[-91.067185,42.75105],[-90.711184,42.636034],[-90.639984,42.510065],[-90.420906,42.329326],[-90.393521,42.225264],[-90.168967,42.126679],[-90.141582,42.000709],[-90.179921,41.809016],[-90.311367,41.743293],[-90.344229,41.589939],[-90.656414,41.463969],[-91.045277,41.414677],[-91.111001,41.239415],[-90.946692,41.097014],[-90.963123,40.921752],[-91.09457,40.823167],[-91.121954,40.669813],[-91.401278,40.560274],[-91.417709,40.379535],[-91.527248,40.412397],[-91.729895,40.615043],[-91.833957,40.609566],[-93.257961,40.582182],[-94.632673,40.571228],[-95.7664,40.587659],[-95.881416,40.719105],[-95.826646,40.976521],[-95.925231,41.201076],[-95.919754,41.453015],[-96.095016,41.540646],[-96.122401,41.67757],[-96.062155,41.798063],[-96.127878,41.973325],[-96.264801,42.039048],[-96.44554,42.488157],[-96.631756,42.707235],[-96.544125,42.855112],[-96.511264,43.052282],[-96.434587,43.123482],[-96.560556,43.222067],[-96.527695,43.397329],[-96.582464,43.479483],[-96.451017,43.501391],[-91.368417,43.501391]]]}}, -{"type":"Feature","id":"20","properties":{"name":"KS"},"geometry":{"type":"Polygon","coordinates":[[[-101.90605,40.001626],[-95.306337,40.001626],[-95.207752,39.908518],[-94.884612,39.831841],[-95.109167,39.541563],[-94.983197,39.442978],[-94.824366,39.20747],[-94.610765,39.158177],[-94.616242,37.000263],[-100.087706,37.000263],[-102.042974,36.994786],[-102.053927,40.001626],[-101.90605,40.001626]]]}}, -{"type":"Feature","id":"21","properties":{"name":"KY"},"geometry":{"type":"Polygon","coordinates":[[[-83.903347,38.769315],[-83.678792,38.632391],[-83.519961,38.703591],[-83.142052,38.626914],[-83.032514,38.725499],[-82.890113,38.758361],[-82.846298,38.588575],[-82.731282,38.561191],[-82.594358,38.424267],[-82.621743,38.123036],[-82.50125,37.931343],[-82.342419,37.783465],[-82.293127,37.668449],[-82.101434,37.553434],[-81.969987,37.537003],[-82.353373,37.268633],[-82.720328,37.120755],[-82.720328,37.044078],[-82.868205,36.978355],[-82.879159,36.890724],[-83.070852,36.852385],[-83.136575,36.742847],[-83.673316,36.600446],[-83.689746,36.584015],[-84.544149,36.594969],[-85.289013,36.627831],[-85.486183,36.616877],[-86.592525,36.655216],[-87.852221,36.633308],[-88.071299,36.677123],[-88.054868,36.496384],[-89.298133,36.507338],[-89.418626,36.496384],[-89.363857,36.622354],[-89.215979,36.578538],[-89.133825,36.983832],[-89.183118,37.038601],[-89.029763,37.213863],[-88.914747,37.224817],[-88.547792,37.071463],[-88.421823,37.153617],[-88.514931,37.285064],[-88.476592,37.389126],[-88.065822,37.482234],[-88.15893,37.657496],[-88.027483,37.799896],[-87.934375,37.893004],[-87.682436,37.903958],[-87.600282,37.975158],[-87.512651,37.903958],[-87.381204,37.93682],[-87.129265,37.788942],[-87.047111,37.893004],[-86.795172,37.991589],[-86.729448,37.893004],[-86.504894,37.931343],[-86.521325,38.040881],[-86.302247,38.166851],[-86.263908,38.051835],[-86.039354,37.958727],[-85.924338,38.024451],[-85.83123,38.27639],[-85.655968,38.325682],[-85.590245,38.451652],[-85.42046,38.533806],[-85.431413,38.730976],[-85.173997,38.68716],[-84.987781,38.780268],[-84.812519,38.785745],[-84.894673,39.059592],[-84.817996,39.103408],[-84.43461,39.103408],[-84.231963,38.895284],[-84.215533,38.807653],[-83.903347,38.769315]]]}}, -{"type":"Feature","id":"22","properties":{"name":"LA"},"geometry":{"type":"Polygon","coordinates":[[[-93.608485,33.018527],[-91.16577,33.002096],[-91.072662,32.887081],[-91.143862,32.843265],[-91.154816,32.640618],[-91.006939,32.514649],[-90.985031,32.218894],[-91.105524,31.988862],[-91.341032,31.846462],[-91.401278,31.621907],[-91.499863,31.643815],[-91.516294,31.27686],[-91.636787,31.265906],[-91.565587,31.068736],[-91.636787,30.997536],[-89.747242,30.997536],[-89.845827,30.66892],[-89.681519,30.449842],[-89.643181,30.285534],[-89.522688,30.181472],[-89.818443,30.044549],[-89.84035,29.945964],[-89.599365,29.88024],[-89.495303,30.039072],[-89.287179,29.88024],[-89.30361,29.754271],[-89.424103,29.699501],[-89.648657,29.748794],[-89.621273,29.655686],[-89.69795,29.513285],[-89.506257,29.387316],[-89.199548,29.348977],[-89.09001,29.2011],[-89.002379,29.179192],[-89.16121,29.009407],[-89.336472,29.042268],[-89.484349,29.217531],[-89.851304,29.310638],[-89.851304,29.480424],[-90.032043,29.425654],[-90.021089,29.283254],[-90.103244,29.151807],[-90.23469,29.129899],[-90.333275,29.277777],[-90.563307,29.283254],[-90.645461,29.129899],[-90.798815,29.086084],[-90.963123,29.179192],[-91.09457,29.190146],[-91.220539,29.436608],[-91.445094,29.546147],[-91.532725,29.529716],[-91.620356,29.73784],[-91.883249,29.710455],[-91.888726,29.836425],[-92.146142,29.715932],[-92.113281,29.622824],[-92.31045,29.535193],[-92.617159,29.579009],[-92.97316,29.715932],[-93.2251,29.776178],[-93.767317,29.726886],[-93.838517,29.688547],[-93.926148,29.787132],[-93.690639,30.143133],[-93.767317,30.334826],[-93.696116,30.438888],[-93.728978,30.575812],[-93.630393,30.679874],[-93.526331,30.93729],[-93.542762,31.15089],[-93.816609,31.556184],[-93.822086,31.775262],[-94.041164,31.994339],[-94.041164,33.018527],[-93.608485,33.018527]]]}}, -{"type":"Feature","id":"23","properties":{"name":"ME"},"geometry":{"type":"Polygon","coordinates":[[[-70.703921,43.057759],[-70.824413,43.128959],[-70.807983,43.227544],[-70.966814,43.34256],[-71.032537,44.657025],[-71.08183,45.303304],[-70.649151,45.440228],[-70.720352,45.511428],[-70.556043,45.664782],[-70.386258,45.735983],[-70.41912,45.796229],[-70.260289,45.889337],[-70.309581,46.064599],[-70.210996,46.327492],[-70.057642,46.415123],[-69.997395,46.694447],[-69.225147,47.461219],[-69.044408,47.428357],[-69.033454,47.242141],[-68.902007,47.176418],[-68.578868,47.285957],[-68.376221,47.285957],[-68.233821,47.357157],[-67.954497,47.198326],[-67.790188,47.066879],[-67.779235,45.944106],[-67.801142,45.675736],[-67.456095,45.604536],[-67.505388,45.48952],[-67.417757,45.379982],[-67.488957,45.281397],[-67.346556,45.128042],[-67.16034,45.160904],[-66.979601,44.804903],[-67.187725,44.646072],[-67.308218,44.706318],[-67.406803,44.596779],[-67.549203,44.624164],[-67.565634,44.531056],[-67.75185,44.54201],[-68.047605,44.328409],[-68.118805,44.476286],[-68.222867,44.48724],[-68.173574,44.328409],[-68.403606,44.251732],[-68.458375,44.377701],[-68.567914,44.311978],[-68.82533,44.311978],[-68.830807,44.459856],[-68.984161,44.426994],[-68.956777,44.322932],[-69.099177,44.103854],[-69.071793,44.043608],[-69.258008,43.923115],[-69.444224,43.966931],[-69.553763,43.840961],[-69.707118,43.82453],[-69.833087,43.720469],[-69.986442,43.742376],[-70.030257,43.851915],[-70.254812,43.676653],[-70.194565,43.567114],[-70.358873,43.528776],[-70.369827,43.435668],[-70.556043,43.320652],[-70.703921,43.057759]]]}}, -{"type":"Feature","id":"24","properties":{"name":"MD"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-75.994645,37.95325],[-76.016553,37.95325],[-76.043938,37.95325],[-75.994645,37.95325]]],[[[-79.477979,39.722302],[-75.786521,39.722302],[-75.693413,38.462606],[-75.047134,38.451652],[-75.244304,38.029928],[-75.397659,38.013497],[-75.671506,37.95325],[-75.885106,37.909435],[-75.879629,38.073743],[-75.961783,38.139466],[-75.846768,38.210667],[-76.000122,38.374975],[-76.049415,38.303775],[-76.257538,38.320205],[-76.328738,38.500944],[-76.263015,38.500944],[-76.257538,38.736453],[-76.191815,38.829561],[-76.279446,39.147223],[-76.169907,39.333439],[-76.000122,39.366301],[-75.972737,39.557994],[-76.098707,39.536086],[-76.104184,39.437501],[-76.367077,39.311532],[-76.443754,39.196516],[-76.460185,38.906238],[-76.55877,38.769315],[-76.514954,38.539283],[-76.383508,38.380452],[-76.399939,38.259959],[-76.317785,38.139466],[-76.3616,38.057312],[-76.591632,38.216144],[-76.920248,38.292821],[-77.018833,38.446175],[-77.205049,38.358544],[-77.276249,38.479037],[-77.128372,38.632391],[-77.040741,38.791222],[-76.909294,38.895284],[-77.035264,38.993869],[-77.117418,38.933623],[-77.248864,39.026731],[-77.456988,39.076023],[-77.456988,39.223901],[-77.566527,39.306055],[-77.719881,39.322485],[-77.834897,39.601809],[-78.004682,39.601809],[-78.174467,39.694917],[-78.267575,39.61824],[-78.431884,39.623717],[-78.470222,39.514178],[-78.765977,39.585379],[-78.963147,39.437501],[-79.094593,39.470363],[-79.291763,39.300578],[-79.488933,39.20747],[-79.477979,39.722302]]]]}}, -{"type":"Feature","id":"25","properties":{"name":"MA"},"geometry":{"type":"Polygon","coordinates":[[[-70.917521,42.887974],[-70.818936,42.871543],[-70.780598,42.696281],[-70.824413,42.55388],[-70.983245,42.422434],[-70.988722,42.269079],[-70.769644,42.247172],[-70.638197,42.08834],[-70.660105,41.962371],[-70.550566,41.929509],[-70.539613,41.814493],[-70.260289,41.715908],[-69.937149,41.809016],[-70.008349,41.672093],[-70.484843,41.5516],[-70.660105,41.546123],[-70.764167,41.639231],[-70.928475,41.611847],[-70.933952,41.540646],[-71.120168,41.496831],[-71.196845,41.67757],[-71.22423,41.710431],[-71.328292,41.781632],[-71.383061,42.01714],[-71.530939,42.01714],[-71.799309,42.006186],[-71.799309,42.022617],[-73.053528,42.039048],[-73.486206,42.050002],[-73.508114,42.08834],[-73.267129,42.745573],[-72.456542,42.729142],[-71.29543,42.696281],[-71.185891,42.789389],[-70.917521,42.887974]]]}}, -{"type":"Feature","id":"26","properties":{"name":"MI"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-83.454238,41.732339],[-84.807042,41.694001],[-84.807042,41.759724],[-85.990061,41.759724],[-86.822556,41.759724],[-86.619909,41.891171],[-86.482986,42.115725],[-86.357016,42.252649],[-86.263908,42.444341],[-86.209139,42.718189],[-86.231047,43.013943],[-86.526801,43.594499],[-86.433693,43.813577],[-86.499417,44.07647],[-86.269385,44.34484],[-86.220093,44.569394],[-86.252954,44.689887],[-86.088646,44.73918],[-86.066738,44.903488],[-85.809322,44.947303],[-85.612152,45.128042],[-85.628583,44.766564],[-85.524521,44.750133],[-85.393075,44.930872],[-85.387598,45.237581],[-85.305444,45.314258],[-85.031597,45.363551],[-85.119228,45.577151],[-84.938489,45.75789],[-84.713934,45.768844],[-84.461995,45.653829],[-84.215533,45.637398],[-84.09504,45.494997],[-83.908824,45.484043],[-83.596638,45.352597],[-83.4871,45.358074],[-83.317314,45.144473],[-83.454238,45.029457],[-83.322791,44.88158],[-83.273499,44.711795],[-83.333745,44.339363],[-83.536392,44.246255],[-83.585684,44.054562],[-83.82667,43.988839],[-83.958116,43.758807],[-83.908824,43.671176],[-83.667839,43.589022],[-83.481623,43.714992],[-83.262545,43.972408],[-82.917498,44.070993],[-82.747713,43.994316],[-82.643651,43.851915],[-82.539589,43.435668],[-82.523158,43.227544],[-82.413619,42.975605],[-82.517681,42.614127],[-82.681989,42.559357],[-82.687466,42.690804],[-82.797005,42.652465],[-82.922975,42.351234],[-83.125621,42.236218],[-83.185868,42.006186],[-83.437807,41.814493],[-83.454238,41.732339]]],[[[-85.508091,45.730506],[-85.49166,45.610013],[-85.623106,45.588105],[-85.568337,45.75789],[-85.508091,45.730506]]],[[[-87.589328,45.095181],[-87.742682,45.199243],[-87.649574,45.341643],[-87.885083,45.363551],[-87.791975,45.500474],[-87.781021,45.675736],[-87.989145,45.796229],[-88.10416,45.922199],[-88.531362,46.020784],[-88.662808,45.987922],[-89.09001,46.135799],[-90.119674,46.338446],[-90.229213,46.508231],[-90.415429,46.568478],[-90.026566,46.672539],[-89.851304,46.793032],[-89.413149,46.842325],[-89.128348,46.990202],[-88.996902,46.995679],[-88.887363,47.099741],[-88.575177,47.247618],[-88.416346,47.373588],[-88.180837,47.455742],[-87.956283,47.384542],[-88.350623,47.077833],[-88.443731,46.973771],[-88.438254,46.787555],[-88.246561,46.929956],[-87.901513,46.908048],[-87.633143,46.809463],[-87.392158,46.535616],[-87.260711,46.486323],[-87.008772,46.530139],[-86.948526,46.469893],[-86.696587,46.437031],[-86.159846,46.667063],[-85.880522,46.68897],[-85.508091,46.678016],[-85.256151,46.754694],[-85.064458,46.760171],[-85.02612,46.480847],[-84.82895,46.442508],[-84.63178,46.486323],[-84.549626,46.4206],[-84.418179,46.502754],[-84.127902,46.530139],[-84.122425,46.179615],[-83.990978,46.031737],[-83.793808,45.993399],[-83.7719,46.091984],[-83.580208,46.091984],[-83.476146,45.987922],[-83.563777,45.911245],[-84.111471,45.976968],[-84.374364,45.933153],[-84.659165,46.053645],[-84.741319,45.944106],[-84.70298,45.850998],[-84.82895,45.872906],[-85.015166,46.00983],[-85.338305,46.091984],[-85.502614,46.097461],[-85.661445,45.966014],[-85.924338,45.933153],[-86.209139,45.960537],[-86.324155,45.905768],[-86.351539,45.796229],[-86.663725,45.703121],[-86.647294,45.834568],[-86.784218,45.861952],[-86.838987,45.725029],[-87.069019,45.719552],[-87.17308,45.659305],[-87.326435,45.423797],[-87.611236,45.122565],[-87.589328,45.095181]]],[[[-88.805209,47.976051],[-89.057148,47.850082],[-89.188594,47.833651],[-89.177641,47.937713],[-88.547792,48.173221],[-88.668285,48.008913],[-88.805209,47.976051]]]]}}, -{"type":"Feature","id":"27","properties":{"name":"MN"},"geometry":{"type":"Polygon","coordinates":[[[-92.014696,46.705401],[-92.091373,46.749217],[-92.29402,46.667063],[-92.29402,46.075553],[-92.354266,46.015307],[-92.639067,45.933153],[-92.869098,45.719552],[-92.885529,45.577151],[-92.770513,45.566198],[-92.644544,45.440228],[-92.75956,45.286874],[-92.737652,45.117088],[-92.808852,44.750133],[-92.545959,44.569394],[-92.337835,44.552964],[-92.233773,44.443425],[-91.927065,44.333886],[-91.877772,44.202439],[-91.592971,44.032654],[-91.43414,43.994316],[-91.242447,43.775238],[-91.269832,43.616407],[-91.215062,43.501391],[-91.368417,43.501391],[-96.451017,43.501391],[-96.451017,45.297827],[-96.681049,45.412843],[-96.856311,45.604536],[-96.582464,45.818137],[-96.560556,45.933153],[-96.598895,46.332969],[-96.719387,46.437031],[-96.801542,46.656109],[-96.785111,46.924479],[-96.823449,46.968294],[-96.856311,47.609096],[-97.053481,47.948667],[-97.130158,48.140359],[-97.16302,48.545653],[-97.097296,48.682577],[-97.228743,49.000239],[-95.152983,49.000239],[-95.152983,49.383625],[-94.955813,49.372671],[-94.824366,49.295994],[-94.69292,48.775685],[-94.588858,48.715438],[-94.260241,48.699007],[-94.221903,48.649715],[-93.838517,48.627807],[-93.794701,48.518268],[-93.466085,48.545653],[-93.466085,48.589469],[-93.208669,48.644238],[-92.984114,48.62233],[-92.726698,48.540176],[-92.655498,48.436114],[-92.50762,48.447068],[-92.370697,48.222514],[-92.304974,48.315622],[-92.053034,48.359437],[-92.009219,48.266329],[-91.713464,48.200606],[-91.713464,48.112975],[-91.565587,48.041775],[-91.264355,48.080113],[-91.083616,48.178698],[-90.837154,48.238944],[-90.749522,48.091067],[-90.579737,48.123929],[-90.377091,48.091067],[-90.141582,48.112975],[-89.873212,47.987005],[-89.615796,48.008913],[-89.637704,47.954144],[-89.971797,47.828174],[-90.437337,47.729589],[-90.738569,47.625527],[-91.171247,47.368111],[-91.357463,47.20928],[-91.642264,47.028541],[-92.091373,46.787555],[-92.014696,46.705401]]]}}, -{"type":"Feature","id":"28","properties":{"name":"MS"},"geometry":{"type":"Polygon","coordinates":[[[-88.471115,34.995703],[-88.202745,34.995703],[-88.098683,34.891641],[-88.241084,33.796253],[-88.471115,31.895754],[-88.394438,30.367688],[-88.503977,30.323872],[-88.744962,30.34578],[-88.843547,30.411504],[-89.084533,30.367688],[-89.418626,30.252672],[-89.522688,30.181472],[-89.643181,30.285534],[-89.681519,30.449842],[-89.845827,30.66892],[-89.747242,30.997536],[-91.636787,30.997536],[-91.565587,31.068736],[-91.636787,31.265906],[-91.516294,31.27686],[-91.499863,31.643815],[-91.401278,31.621907],[-91.341032,31.846462],[-91.105524,31.988862],[-90.985031,32.218894],[-91.006939,32.514649],[-91.154816,32.640618],[-91.143862,32.843265],[-91.072662,32.887081],[-91.16577,33.002096],[-91.089093,33.13902],[-91.143862,33.347144],[-91.056231,33.429298],[-91.231493,33.560744],[-91.072662,33.867453],[-90.891923,34.026284],[-90.952169,34.135823],[-90.744046,34.300131],[-90.749522,34.365854],[-90.568783,34.420624],[-90.585214,34.617794],[-90.481152,34.661609],[-90.409952,34.831394],[-90.251121,34.908072],[-90.311367,34.995703],[-88.471115,34.995703]]]}}, -{"type":"Feature","id":"29","properties":{"name":"MO"},"geometry":{"type":"Polygon","coordinates":[[[-91.833957,40.609566],[-91.729895,40.615043],[-91.527248,40.412397],[-91.417709,40.379535],[-91.50534,40.237135],[-91.494386,40.034488],[-91.368417,39.727779],[-91.061708,39.470363],[-90.727615,39.256762],[-90.661891,38.928146],[-90.585214,38.867899],[-90.470199,38.961007],[-90.251121,38.917192],[-90.10872,38.845992],[-90.207305,38.725499],[-90.179921,38.632391],[-90.349706,38.374975],[-90.355183,38.216144],[-90.059428,38.013497],[-89.949889,37.88205],[-89.84035,37.903958],[-89.517211,37.690357],[-89.517211,37.537003],[-89.435057,37.34531],[-89.517211,37.279587],[-89.292656,36.994786],[-89.133825,36.983832],[-89.215979,36.578538],[-89.363857,36.622354],[-89.418626,36.496384],[-89.484349,36.496384],[-89.539119,36.496384],[-89.533642,36.249922],[-89.730812,35.997983],[-90.377091,35.997983],[-90.218259,36.184199],[-90.064905,36.304691],[-90.152536,36.496384],[-94.473842,36.501861],[-94.616242,36.501861],[-94.616242,37.000263],[-94.610765,39.158177],[-94.824366,39.20747],[-94.983197,39.442978],[-95.109167,39.541563],[-94.884612,39.831841],[-95.207752,39.908518],[-95.306337,40.001626],[-95.552799,40.264519],[-95.7664,40.587659],[-94.632673,40.571228],[-93.257961,40.582182],[-91.833957,40.609566]]]}}, -{"type":"Feature","id":"30","properties":{"name":"MT"},"geometry":{"type":"Polygon","coordinates":[[[-104.047534,49.000239],[-104.042057,47.861036],[-104.047534,45.944106],[-104.042057,44.996596],[-104.058488,44.996596],[-105.91517,45.002073],[-109.080842,45.002073],[-111.05254,45.002073],[-111.047063,44.476286],[-111.227803,44.580348],[-111.386634,44.75561],[-111.616665,44.547487],[-111.819312,44.509148],[-111.868605,44.563917],[-112.104113,44.520102],[-112.241036,44.569394],[-112.471068,44.481763],[-112.783254,44.48724],[-112.887315,44.394132],[-113.002331,44.448902],[-113.133778,44.772041],[-113.341901,44.782995],[-113.456917,44.865149],[-113.45144,45.056842],[-113.571933,45.128042],[-113.736241,45.330689],[-113.834826,45.522382],[-113.807441,45.604536],[-113.98818,45.703121],[-114.086765,45.593582],[-114.333228,45.456659],[-114.546828,45.560721],[-114.497536,45.670259],[-114.568736,45.774321],[-114.387997,45.88386],[-114.492059,46.037214],[-114.464674,46.272723],[-114.322274,46.645155],[-114.612552,46.639678],[-114.623506,46.705401],[-114.886399,46.809463],[-114.930214,46.919002],[-115.302646,47.187372],[-115.324554,47.258572],[-115.527201,47.302388],[-115.718894,47.42288],[-115.724371,47.696727],[-116.04751,47.976051],[-116.04751,49.000239],[-111.50165,48.994762],[-109.453274,49.000239],[-104.047534,49.000239]]]}}, -{"type":"Feature","id":"31","properties":{"name":"NE"},"geometry":{"type":"Polygon","coordinates":[[[-103.324578,43.002989],[-101.626726,42.997512],[-98.499393,42.997512],[-98.466531,42.94822],[-97.951699,42.767481],[-97.831206,42.866066],[-97.688806,42.844158],[-97.217789,42.844158],[-96.692003,42.657942],[-96.626279,42.515542],[-96.44554,42.488157],[-96.264801,42.039048],[-96.127878,41.973325],[-96.062155,41.798063],[-96.122401,41.67757],[-96.095016,41.540646],[-95.919754,41.453015],[-95.925231,41.201076],[-95.826646,40.976521],[-95.881416,40.719105],[-95.7664,40.587659],[-95.552799,40.264519],[-95.306337,40.001626],[-101.90605,40.001626],[-102.053927,40.001626],[-102.053927,41.003906],[-104.053011,41.003906],[-104.053011,43.002989],[-103.324578,43.002989]]]}}, -{"type":"Feature","id":"32","properties":{"name":"NV"},"geometry":{"type":"Polygon","coordinates":[[[-117.027882,42.000709],[-114.04295,41.995232],[-114.048427,37.000263],[-114.048427,36.195153],[-114.152489,36.025367],[-114.251074,36.01989],[-114.371566,36.140383],[-114.738521,36.102045],[-114.678275,35.516012],[-114.596121,35.324319],[-114.574213,35.138103],[-114.634459,35.00118],[-115.85034,35.970598],[-116.540435,36.501861],[-117.498899,37.21934],[-118.71478,38.101128],[-120.001861,38.999346],[-119.996384,40.264519],[-120.001861,41.995232],[-118.698349,41.989755],[-117.027882,42.000709]]]}}, -{"type":"Feature","id":"33","properties":{"name":"NH"},"geometry":{"type":"Polygon","coordinates":[[[-71.08183,45.303304],[-71.032537,44.657025],[-70.966814,43.34256],[-70.807983,43.227544],[-70.824413,43.128959],[-70.703921,43.057759],[-70.818936,42.871543],[-70.917521,42.887974],[-71.185891,42.789389],[-71.29543,42.696281],[-72.456542,42.729142],[-72.544173,42.80582],[-72.533219,42.953697],[-72.445588,43.008466],[-72.456542,43.150867],[-72.379864,43.572591],[-72.204602,43.769761],[-72.116971,43.994316],[-72.02934,44.07647],[-72.034817,44.322932],[-71.700724,44.41604],[-71.536416,44.585825],[-71.629524,44.750133],[-71.4926,44.914442],[-71.503554,45.013027],[-71.361154,45.270443],[-71.131122,45.243058],[-71.08183,45.303304]]]}}, -{"type":"Feature","id":"34","properties":{"name":"NJ"},"geometry":{"type":"Polygon","coordinates":[[[-74.236547,41.14083],[-73.902454,40.998429],[-74.022947,40.708151],[-74.187255,40.642428],[-74.274886,40.489074],[-74.001039,40.412397],[-73.979131,40.297381],[-74.099624,39.760641],[-74.411809,39.360824],[-74.614456,39.245808],[-74.795195,38.993869],[-74.888303,39.158177],[-75.178581,39.240331],[-75.534582,39.459409],[-75.55649,39.607286],[-75.561967,39.629194],[-75.507197,39.683964],[-75.414089,39.804456],[-75.145719,39.88661],[-75.129289,39.963288],[-74.82258,40.127596],[-74.773287,40.215227],[-75.058088,40.417874],[-75.069042,40.543843],[-75.195012,40.576705],[-75.205966,40.691721],[-75.052611,40.866983],[-75.134765,40.971045],[-74.882826,41.179168],[-74.828057,41.288707],[-74.69661,41.359907],[-74.236547,41.14083]]]}}, -{"type":"Feature","id":"35","properties":{"name":"NM"},"geometry":{"type":"Polygon","coordinates":[[[-107.421329,37.000263],[-106.868158,36.994786],[-104.337812,36.994786],[-103.001438,37.000263],[-103.001438,36.501861],[-103.039777,36.501861],[-103.045254,34.01533],[-103.067161,33.002096],[-103.067161,31.999816],[-106.616219,31.999816],[-106.643603,31.901231],[-106.528588,31.786216],[-108.210008,31.786216],[-108.210008,31.331629],[-109.04798,31.331629],[-109.042503,37.000263],[-107.421329,37.000263]]]}}, -{"type":"Feature","id":"36","properties":{"name":"NY"},"geometry":{"type":"Polygon","coordinates":[[[-73.343806,45.013027],[-73.332852,44.804903],[-73.387622,44.618687],[-73.294514,44.437948],[-73.321898,44.246255],[-73.436914,44.043608],[-73.349283,43.769761],[-73.404052,43.687607],[-73.245221,43.523299],[-73.278083,42.833204],[-73.267129,42.745573],[-73.508114,42.08834],[-73.486206,42.050002],[-73.55193,41.294184],[-73.48073,41.21203],[-73.727192,41.102491],[-73.655992,40.987475],[-73.22879,40.905321],[-73.141159,40.965568],[-72.774204,40.965568],[-72.587988,40.998429],[-72.28128,41.157261],[-72.259372,41.042245],[-72.100541,40.992952],[-72.467496,40.845075],[-73.239744,40.625997],[-73.562884,40.582182],[-73.776484,40.593136],[-73.935316,40.543843],[-74.022947,40.708151],[-73.902454,40.998429],[-74.236547,41.14083],[-74.69661,41.359907],[-74.740426,41.431108],[-74.89378,41.436584],[-75.074519,41.60637],[-75.052611,41.754247],[-75.173104,41.869263],[-75.249781,41.863786],[-75.35932,42.000709],[-79.76278,42.000709],[-79.76278,42.252649],[-79.76278,42.269079],[-79.149363,42.55388],[-79.050778,42.690804],[-78.853608,42.783912],[-78.930285,42.953697],[-79.012439,42.986559],[-79.072686,43.260406],[-78.486653,43.375421],[-77.966344,43.369944],[-77.75822,43.34256],[-77.533665,43.233021],[-77.391265,43.276836],[-76.958587,43.271359],[-76.695693,43.34256],[-76.41637,43.523299],[-76.235631,43.528776],[-76.230154,43.802623],[-76.137046,43.961454],[-76.3616,44.070993],[-76.312308,44.196962],[-75.912491,44.366748],[-75.764614,44.514625],[-75.282643,44.848718],[-74.828057,45.018503],[-74.148916,44.991119],[-73.343806,45.013027]]]}}, -{"type":"Feature","id":"37","properties":{"name":"NC"},"geometry":{"type":"Polygon","coordinates":[[[-80.978661,36.562108],[-80.294043,36.545677],[-79.510841,36.5402],[-75.868676,36.551154],[-75.75366,36.151337],[-76.032984,36.189676],[-76.071322,36.140383],[-76.410893,36.080137],[-76.460185,36.025367],[-76.68474,36.008937],[-76.673786,35.937736],[-76.399939,35.987029],[-76.3616,35.943213],[-76.060368,35.992506],[-75.961783,35.899398],[-75.781044,35.937736],[-75.715321,35.696751],[-75.775568,35.581735],[-75.89606,35.570781],[-76.147999,35.324319],[-76.482093,35.313365],[-76.536862,35.14358],[-76.394462,34.973795],[-76.279446,34.940933],[-76.493047,34.661609],[-76.673786,34.694471],[-76.991448,34.667086],[-77.210526,34.60684],[-77.555573,34.415147],[-77.82942,34.163208],[-77.971821,33.845545],[-78.179944,33.916745],[-78.541422,33.851022],[-79.675149,34.80401],[-80.797922,34.820441],[-80.781491,34.935456],[-80.934845,35.105241],[-81.038907,35.044995],[-81.044384,35.149057],[-82.276696,35.198349],[-82.550543,35.160011],[-82.764143,35.066903],[-83.109191,35.00118],[-83.618546,34.984749],[-84.319594,34.990226],[-84.29221,35.225734],[-84.09504,35.247642],[-84.018363,35.41195],[-83.7719,35.559827],[-83.498053,35.565304],[-83.251591,35.718659],[-82.994175,35.773428],[-82.775097,35.997983],[-82.638174,36.063706],[-82.610789,35.965121],[-82.216449,36.156814],[-82.03571,36.118475],[-81.909741,36.304691],[-81.723525,36.353984],[-81.679709,36.589492],[-80.978661,36.562108]]]}}, -{"type":"Feature","id":"38","properties":{"name":"ND"},"geometry":{"type":"Polygon","coordinates":[[[-97.228743,49.000239],[-97.097296,48.682577],[-97.16302,48.545653],[-97.130158,48.140359],[-97.053481,47.948667],[-96.856311,47.609096],[-96.823449,46.968294],[-96.785111,46.924479],[-96.801542,46.656109],[-96.719387,46.437031],[-96.598895,46.332969],[-96.560556,45.933153],[-104.047534,45.944106],[-104.042057,47.861036],[-104.047534,49.000239],[-97.228743,49.000239]]]}}, -{"type":"Feature","id":"39","properties":{"name":"OH"},"geometry":{"type":"Polygon","coordinates":[[[-80.518598,41.978802],[-80.518598,40.636951],[-80.666475,40.582182],[-80.595275,40.472643],[-80.600752,40.319289],[-80.737675,40.078303],[-80.830783,39.711348],[-81.219646,39.388209],[-81.345616,39.344393],[-81.455155,39.410117],[-81.57017,39.267716],[-81.685186,39.273193],[-81.811156,39.0815],[-81.783771,38.966484],[-81.887833,38.873376],[-82.03571,39.026731],[-82.221926,38.785745],[-82.172634,38.632391],[-82.293127,38.577622],[-82.331465,38.446175],[-82.594358,38.424267],[-82.731282,38.561191],[-82.846298,38.588575],[-82.890113,38.758361],[-83.032514,38.725499],[-83.142052,38.626914],[-83.519961,38.703591],[-83.678792,38.632391],[-83.903347,38.769315],[-84.215533,38.807653],[-84.231963,38.895284],[-84.43461,39.103408],[-84.817996,39.103408],[-84.801565,40.500028],[-84.807042,41.694001],[-83.454238,41.732339],[-83.065375,41.595416],[-82.933929,41.513262],[-82.835344,41.589939],[-82.616266,41.431108],[-82.479343,41.381815],[-82.013803,41.513262],[-81.739956,41.485877],[-81.444201,41.672093],[-81.011523,41.852832],[-80.518598,41.978802],[-80.518598,41.978802]]]}}, -{"type":"Feature","id":"40","properties":{"name":"OK"},"geometry":{"type":"Polygon","coordinates":[[[-100.087706,37.000263],[-94.616242,37.000263],[-94.616242,36.501861],[-94.430026,35.395519],[-94.484796,33.637421],[-94.868182,33.74696],[-94.966767,33.861976],[-95.224183,33.960561],[-95.289906,33.87293],[-95.547322,33.878407],[-95.602092,33.933176],[-95.8376,33.834591],[-95.936185,33.889361],[-96.149786,33.840068],[-96.346956,33.686714],[-96.423633,33.774345],[-96.631756,33.845545],[-96.850834,33.845545],[-96.922034,33.960561],[-97.173974,33.736006],[-97.256128,33.861976],[-97.371143,33.823637],[-97.458774,33.905791],[-97.694283,33.982469],[-97.869545,33.851022],[-97.946222,33.987946],[-98.088623,34.004376],[-98.170777,34.113915],[-98.36247,34.157731],[-98.488439,34.064623],[-98.570593,34.146777],[-98.767763,34.135823],[-98.986841,34.223454],[-99.189488,34.2125],[-99.260688,34.404193],[-99.57835,34.415147],[-99.698843,34.382285],[-99.923398,34.573978],[-100.000075,34.563024],[-100.000075,36.501861],[-101.812942,36.501861],[-103.001438,36.501861],[-103.001438,37.000263],[-102.042974,36.994786],[-100.087706,37.000263]]]}}, -{"type":"Feature","id":"41","properties":{"name":"OR"},"geometry":{"type":"Polygon","coordinates":[[[-123.211348,46.174138],[-123.11824,46.185092],[-122.904639,46.08103],[-122.811531,45.960537],[-122.762239,45.659305],[-122.247407,45.549767],[-121.809251,45.708598],[-121.535404,45.725029],[-121.217742,45.670259],[-121.18488,45.604536],[-120.637186,45.746937],[-120.505739,45.697644],[-120.209985,45.725029],[-119.963522,45.823614],[-119.525367,45.911245],[-119.125551,45.933153],[-118.988627,45.998876],[-116.918344,45.993399],[-116.78142,45.823614],[-116.545912,45.752413],[-116.463758,45.61549],[-116.671881,45.319735],[-116.732128,45.144473],[-116.847143,45.02398],[-116.830713,44.930872],[-116.934774,44.782995],[-117.038836,44.750133],[-117.241483,44.394132],[-117.170283,44.257209],[-116.97859,44.240778],[-116.896436,44.158624],[-117.027882,43.830007],[-117.027882,42.000709],[-118.698349,41.989755],[-120.001861,41.995232],[-121.037003,41.995232],[-122.378853,42.011663],[-123.233256,42.006186],[-124.213628,42.000709],[-124.356029,42.115725],[-124.432706,42.438865],[-124.416275,42.663419],[-124.553198,42.838681],[-124.454613,43.002989],[-124.383413,43.271359],[-124.235536,43.55616],[-124.169813,43.8081],[-124.060274,44.657025],[-124.076705,44.772041],[-123.97812,45.144473],[-123.939781,45.659305],[-123.994551,45.944106],[-123.945258,46.113892],[-123.545441,46.261769],[-123.370179,46.146753],[-123.211348,46.174138]]]}}, -{"type":"Feature","id":"42","properties":{"name":"PA"},"geometry":{"type":"Polygon","coordinates":[[[-79.76278,42.252649],[-79.76278,42.000709],[-75.35932,42.000709],[-75.249781,41.863786],[-75.173104,41.869263],[-75.052611,41.754247],[-75.074519,41.60637],[-74.89378,41.436584],[-74.740426,41.431108],[-74.69661,41.359907],[-74.828057,41.288707],[-74.882826,41.179168],[-75.134765,40.971045],[-75.052611,40.866983],[-75.205966,40.691721],[-75.195012,40.576705],[-75.069042,40.543843],[-75.058088,40.417874],[-74.773287,40.215227],[-74.82258,40.127596],[-75.129289,39.963288],[-75.145719,39.88661],[-75.414089,39.804456],[-75.616736,39.831841],[-75.786521,39.722302],[-79.477979,39.722302],[-80.518598,39.722302],[-80.518598,40.636951],[-80.518598,41.978802],[-80.518598,41.978802],[-80.332382,42.033571],[-79.76278,42.269079],[-79.76278,42.252649]]]}}, -{"type":"Feature","id":"44","properties":{"name":"RI"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-71.196845,41.67757],[-71.120168,41.496831],[-71.317338,41.474923],[-71.196845,41.67757]]],[[[-71.530939,42.01714],[-71.383061,42.01714],[-71.328292,41.781632],[-71.22423,41.710431],[-71.344723,41.726862],[-71.448785,41.578985],[-71.481646,41.370861],[-71.859555,41.321569],[-71.799309,41.414677],[-71.799309,42.006186],[-71.530939,42.01714]]]]}}, -{"type":"Feature","id":"45","properties":{"name":"SC"},"geometry":{"type":"Polygon","coordinates":[[[-82.764143,35.066903],[-82.550543,35.160011],[-82.276696,35.198349],[-81.044384,35.149057],[-81.038907,35.044995],[-80.934845,35.105241],[-80.781491,34.935456],[-80.797922,34.820441],[-79.675149,34.80401],[-78.541422,33.851022],[-78.716684,33.80173],[-78.935762,33.637421],[-79.149363,33.380005],[-79.187701,33.171881],[-79.357487,33.007573],[-79.582041,33.007573],[-79.631334,32.887081],[-79.866842,32.755634],[-79.998289,32.613234],[-80.206412,32.552987],[-80.430967,32.399633],[-80.452875,32.328433],[-80.660998,32.246279],[-80.885553,32.032678],[-81.115584,32.120309],[-81.121061,32.290094],[-81.279893,32.558464],[-81.416816,32.629664],[-81.42777,32.843265],[-81.493493,33.007573],[-81.761863,33.160928],[-81.937125,33.347144],[-81.926172,33.462159],[-82.194542,33.631944],[-82.325988,33.81816],[-82.55602,33.94413],[-82.714851,34.152254],[-82.747713,34.26727],[-82.901067,34.486347],[-83.005129,34.469916],[-83.339222,34.683517],[-83.322791,34.787579],[-83.109191,35.00118],[-82.764143,35.066903]]]}}, -{"type":"Feature","id":"46","properties":{"name":"SD"},"geometry":{"type":"Polygon","coordinates":[[[-104.047534,45.944106],[-96.560556,45.933153],[-96.582464,45.818137],[-96.856311,45.604536],[-96.681049,45.412843],[-96.451017,45.297827],[-96.451017,43.501391],[-96.582464,43.479483],[-96.527695,43.397329],[-96.560556,43.222067],[-96.434587,43.123482],[-96.511264,43.052282],[-96.544125,42.855112],[-96.631756,42.707235],[-96.44554,42.488157],[-96.626279,42.515542],[-96.692003,42.657942],[-97.217789,42.844158],[-97.688806,42.844158],[-97.831206,42.866066],[-97.951699,42.767481],[-98.466531,42.94822],[-98.499393,42.997512],[-101.626726,42.997512],[-103.324578,43.002989],[-104.053011,43.002989],[-104.058488,44.996596],[-104.042057,44.996596],[-104.047534,45.944106]]]}}, -{"type":"Feature","id":"47","properties":{"name":"TN"},"geometry":{"type":"Polygon","coordinates":[[[-88.054868,36.496384],[-88.071299,36.677123],[-87.852221,36.633308],[-86.592525,36.655216],[-85.486183,36.616877],[-85.289013,36.627831],[-84.544149,36.594969],[-83.689746,36.584015],[-83.673316,36.600446],[-81.679709,36.589492],[-81.723525,36.353984],[-81.909741,36.304691],[-82.03571,36.118475],[-82.216449,36.156814],[-82.610789,35.965121],[-82.638174,36.063706],[-82.775097,35.997983],[-82.994175,35.773428],[-83.251591,35.718659],[-83.498053,35.565304],[-83.7719,35.559827],[-84.018363,35.41195],[-84.09504,35.247642],[-84.29221,35.225734],[-84.319594,34.990226],[-85.606675,34.984749],[-87.359296,35.00118],[-88.202745,34.995703],[-88.471115,34.995703],[-90.311367,34.995703],[-90.212782,35.023087],[-90.114197,35.198349],[-90.130628,35.439335],[-89.944412,35.603643],[-89.911551,35.756997],[-89.763673,35.811767],[-89.730812,35.997983],[-89.533642,36.249922],[-89.539119,36.496384],[-89.484349,36.496384],[-89.418626,36.496384],[-89.298133,36.507338],[-88.054868,36.496384]]]}}, -{"type":"Feature","id":"48","properties":{"name":"TX"},"geometry":{"type":"Polygon","coordinates":[[[-101.812942,36.501861],[-100.000075,36.501861],[-100.000075,34.563024],[-99.923398,34.573978],[-99.698843,34.382285],[-99.57835,34.415147],[-99.260688,34.404193],[-99.189488,34.2125],[-98.986841,34.223454],[-98.767763,34.135823],[-98.570593,34.146777],[-98.488439,34.064623],[-98.36247,34.157731],[-98.170777,34.113915],[-98.088623,34.004376],[-97.946222,33.987946],[-97.869545,33.851022],[-97.694283,33.982469],[-97.458774,33.905791],[-97.371143,33.823637],[-97.256128,33.861976],[-97.173974,33.736006],[-96.922034,33.960561],[-96.850834,33.845545],[-96.631756,33.845545],[-96.423633,33.774345],[-96.346956,33.686714],[-96.149786,33.840068],[-95.936185,33.889361],[-95.8376,33.834591],[-95.602092,33.933176],[-95.547322,33.878407],[-95.289906,33.87293],[-95.224183,33.960561],[-94.966767,33.861976],[-94.868182,33.74696],[-94.484796,33.637421],[-94.380734,33.544313],[-94.183564,33.593606],[-94.041164,33.54979],[-94.041164,33.018527],[-94.041164,31.994339],[-93.822086,31.775262],[-93.816609,31.556184],[-93.542762,31.15089],[-93.526331,30.93729],[-93.630393,30.679874],[-93.728978,30.575812],[-93.696116,30.438888],[-93.767317,30.334826],[-93.690639,30.143133],[-93.926148,29.787132],[-93.838517,29.688547],[-94.002825,29.68307],[-94.523134,29.546147],[-94.70935,29.622824],[-94.742212,29.787132],[-94.873659,29.672117],[-94.966767,29.699501],[-95.016059,29.557101],[-94.911997,29.496854],[-94.895566,29.310638],[-95.081782,29.113469],[-95.383014,28.867006],[-95.985477,28.604113],[-96.045724,28.647929],[-96.226463,28.582205],[-96.23194,28.642452],[-96.478402,28.598636],[-96.593418,28.724606],[-96.664618,28.697221],[-96.401725,28.439805],[-96.593418,28.357651],[-96.774157,28.406943],[-96.801542,28.226204],[-97.026096,28.039988],[-97.256128,27.694941],[-97.404005,27.333463],[-97.513544,27.360848],[-97.540929,27.229401],[-97.425913,27.262263],[-97.480682,26.99937],[-97.557359,26.988416],[-97.562836,26.840538],[-97.469728,26.758384],[-97.442344,26.457153],[-97.332805,26.353091],[-97.30542,26.161398],[-97.217789,25.991613],[-97.524498,25.887551],[-97.650467,26.018997],[-97.885976,26.06829],[-98.198161,26.057336],[-98.466531,26.221644],[-98.669178,26.238075],[-98.822533,26.369522],[-99.030656,26.413337],[-99.173057,26.539307],[-99.266165,26.840538],[-99.446904,27.021277],[-99.424996,27.174632],[-99.50715,27.33894],[-99.479765,27.48134],[-99.605735,27.640172],[-99.709797,27.656603],[-99.879582,27.799003],[-99.934351,27.979742],[-100.082229,28.14405],[-100.29583,28.280974],[-100.399891,28.582205],[-100.498476,28.66436],[-100.629923,28.905345],[-100.673738,29.102515],[-100.799708,29.244915],[-101.013309,29.370885],[-101.062601,29.458516],[-101.259771,29.535193],[-101.413125,29.754271],[-101.851281,29.803563],[-102.114174,29.792609],[-102.338728,29.869286],[-102.388021,29.765225],[-102.629006,29.732363],[-102.809745,29.524239],[-102.919284,29.190146],[-102.97953,29.184669],[-103.116454,28.987499],[-103.280762,28.982022],[-103.527224,29.135376],[-104.146119,29.381839],[-104.266611,29.513285],[-104.507597,29.639255],[-104.677382,29.924056],[-104.688336,30.181472],[-104.858121,30.389596],[-104.896459,30.570335],[-105.005998,30.685351],[-105.394861,30.855136],[-105.602985,31.085167],[-105.77277,31.167321],[-105.953509,31.364491],[-106.205448,31.468553],[-106.38071,31.731446],[-106.528588,31.786216],[-106.643603,31.901231],[-106.616219,31.999816],[-103.067161,31.999816],[-103.067161,33.002096],[-103.045254,34.01533],[-103.039777,36.501861],[-103.001438,36.501861],[-101.812942,36.501861]]]}}, -{"type":"Feature","id":"49","properties":{"name":"UT"},"geometry":{"type":"Polygon","coordinates":[[[-112.164359,41.995232],[-111.047063,42.000709],[-111.047063,40.998429],[-109.04798,40.998429],[-109.053457,39.125316],[-109.058934,38.27639],[-109.042503,38.166851],[-109.042503,37.000263],[-110.499369,37.00574],[-114.048427,37.000263],[-114.04295,41.995232],[-112.164359,41.995232]]]}}, -{"type":"Feature","id":"50","properties":{"name":"VT"},"geometry":{"type":"Polygon","coordinates":[[[-71.503554,45.013027],[-71.4926,44.914442],[-71.629524,44.750133],[-71.536416,44.585825],[-71.700724,44.41604],[-72.034817,44.322932],[-72.02934,44.07647],[-72.116971,43.994316],[-72.204602,43.769761],[-72.379864,43.572591],[-72.456542,43.150867],[-72.445588,43.008466],[-72.533219,42.953697],[-72.544173,42.80582],[-72.456542,42.729142],[-73.267129,42.745573],[-73.278083,42.833204],[-73.245221,43.523299],[-73.404052,43.687607],[-73.349283,43.769761],[-73.436914,44.043608],[-73.321898,44.246255],[-73.294514,44.437948],[-73.387622,44.618687],[-73.332852,44.804903],[-73.343806,45.013027],[-72.308664,45.002073],[-71.503554,45.013027]]]}}, -{"type":"Feature","id":"51","properties":{"name":"VA"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-78.349729,39.464886],[-77.82942,39.130793],[-77.719881,39.322485],[-77.566527,39.306055],[-77.456988,39.223901],[-77.456988,39.076023],[-77.248864,39.026731],[-77.117418,38.933623],[-77.040741,38.791222],[-77.128372,38.632391],[-77.248864,38.588575],[-77.325542,38.446175],[-77.281726,38.342113],[-77.013356,38.374975],[-76.964064,38.216144],[-76.613539,38.15042],[-76.514954,38.024451],[-76.235631,37.887527],[-76.3616,37.608203],[-76.246584,37.389126],[-76.383508,37.285064],[-76.399939,37.159094],[-76.273969,37.082417],[-76.410893,36.961924],[-76.619016,37.120755],[-76.668309,37.065986],[-76.48757,36.95097],[-75.994645,36.923586],[-75.868676,36.551154],[-79.510841,36.5402],[-80.294043,36.545677],[-80.978661,36.562108],[-81.679709,36.589492],[-83.673316,36.600446],[-83.136575,36.742847],[-83.070852,36.852385],[-82.879159,36.890724],[-82.868205,36.978355],[-82.720328,37.044078],[-82.720328,37.120755],[-82.353373,37.268633],[-81.969987,37.537003],[-81.986418,37.454849],[-81.849494,37.285064],[-81.679709,37.20291],[-81.55374,37.208387],[-81.362047,37.339833],[-81.225123,37.235771],[-80.967707,37.290541],[-80.513121,37.482234],[-80.474782,37.421987],[-80.29952,37.509618],[-80.294043,37.690357],[-80.184505,37.849189],[-79.998289,37.997066],[-79.921611,38.177805],[-79.724442,38.364021],[-79.647764,38.594052],[-79.477979,38.457129],[-79.313671,38.413313],[-79.209609,38.495467],[-78.996008,38.851469],[-78.870039,38.763838],[-78.404499,39.169131],[-78.349729,39.464886]]]]}}, -{"type":"Feature","id":"53","properties":{"name":"WA"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-117.033359,49.000239],[-117.044313,47.762451],[-117.038836,46.426077],[-117.055267,46.343923],[-116.92382,46.168661],[-116.918344,45.993399],[-118.988627,45.998876],[-119.125551,45.933153],[-119.525367,45.911245],[-119.963522,45.823614],[-120.209985,45.725029],[-120.505739,45.697644],[-120.637186,45.746937],[-121.18488,45.604536],[-121.217742,45.670259],[-121.535404,45.725029],[-121.809251,45.708598],[-122.247407,45.549767],[-122.762239,45.659305],[-122.811531,45.960537],[-122.904639,46.08103],[-123.11824,46.185092],[-123.211348,46.174138],[-123.370179,46.146753],[-123.545441,46.261769],[-123.72618,46.300108],[-123.874058,46.239861],[-124.065751,46.327492],[-124.027412,46.464416],[-123.895966,46.535616],[-124.098612,46.74374],[-124.235536,47.285957],[-124.31769,47.357157],[-124.427229,47.740543],[-124.624399,47.88842],[-124.706553,48.184175],[-124.597014,48.381345],[-124.394367,48.288237],[-123.983597,48.162267],[-123.704273,48.167744],[-123.424949,48.118452],[-123.162056,48.167744],[-123.036086,48.080113],[-122.800578,48.08559],[-122.636269,47.866512],[-122.515777,47.882943],[-122.493869,47.587189],[-122.422669,47.318818],[-122.324084,47.346203],[-122.422669,47.576235],[-122.395284,47.800789],[-122.230976,48.030821],[-122.362422,48.123929],[-122.373376,48.288237],[-122.471961,48.468976],[-122.422669,48.600422],[-122.488392,48.753777],[-122.647223,48.775685],[-122.795101,48.8907],[-122.756762,49.000239],[-117.033359,49.000239]]],[[[-122.718423,48.310145],[-122.586977,48.35396],[-122.608885,48.151313],[-122.767716,48.227991],[-122.718423,48.310145]]],[[[-123.025132,48.583992],[-122.915593,48.715438],[-122.767716,48.556607],[-122.811531,48.419683],[-123.041563,48.458022],[-123.025132,48.583992]]]]}}, -{"type":"Feature","id":"54","properties":{"name":"WV"},"geometry":{"type":"Polygon","coordinates":[[[-80.518598,40.636951],[-80.518598,39.722302],[-79.477979,39.722302],[-79.488933,39.20747],[-79.291763,39.300578],[-79.094593,39.470363],[-78.963147,39.437501],[-78.765977,39.585379],[-78.470222,39.514178],[-78.431884,39.623717],[-78.267575,39.61824],[-78.174467,39.694917],[-78.004682,39.601809],[-77.834897,39.601809],[-77.719881,39.322485],[-77.82942,39.130793],[-78.349729,39.464886],[-78.404499,39.169131],[-78.870039,38.763838],[-78.996008,38.851469],[-79.209609,38.495467],[-79.313671,38.413313],[-79.477979,38.457129],[-79.647764,38.594052],[-79.724442,38.364021],[-79.921611,38.177805],[-79.998289,37.997066],[-80.184505,37.849189],[-80.294043,37.690357],[-80.29952,37.509618],[-80.474782,37.421987],[-80.513121,37.482234],[-80.967707,37.290541],[-81.225123,37.235771],[-81.362047,37.339833],[-81.55374,37.208387],[-81.679709,37.20291],[-81.849494,37.285064],[-81.986418,37.454849],[-81.969987,37.537003],[-82.101434,37.553434],[-82.293127,37.668449],[-82.342419,37.783465],[-82.50125,37.931343],[-82.621743,38.123036],[-82.594358,38.424267],[-82.331465,38.446175],[-82.293127,38.577622],[-82.172634,38.632391],[-82.221926,38.785745],[-82.03571,39.026731],[-81.887833,38.873376],[-81.783771,38.966484],[-81.811156,39.0815],[-81.685186,39.273193],[-81.57017,39.267716],[-81.455155,39.410117],[-81.345616,39.344393],[-81.219646,39.388209],[-80.830783,39.711348],[-80.737675,40.078303],[-80.600752,40.319289],[-80.595275,40.472643],[-80.666475,40.582182],[-80.518598,40.636951]]]}}, -{"type":"Feature","id":"55","properties":{"name":"WI"},"geometry":{"type":"Polygon","coordinates":[[[-90.415429,46.568478],[-90.229213,46.508231],[-90.119674,46.338446],[-89.09001,46.135799],[-88.662808,45.987922],[-88.531362,46.020784],[-88.10416,45.922199],[-87.989145,45.796229],[-87.781021,45.675736],[-87.791975,45.500474],[-87.885083,45.363551],[-87.649574,45.341643],[-87.742682,45.199243],[-87.589328,45.095181],[-87.627666,44.974688],[-87.819359,44.95278],[-87.983668,44.722749],[-88.043914,44.563917],[-87.928898,44.536533],[-87.775544,44.640595],[-87.611236,44.837764],[-87.403112,44.914442],[-87.238804,45.166381],[-87.03068,45.22115],[-87.047111,45.089704],[-87.189511,44.969211],[-87.468835,44.552964],[-87.545512,44.322932],[-87.540035,44.158624],[-87.644097,44.103854],[-87.737205,43.8793],[-87.704344,43.687607],[-87.791975,43.561637],[-87.912467,43.249452],[-87.885083,43.002989],[-87.76459,42.783912],[-87.802929,42.493634],[-88.788778,42.493634],[-90.639984,42.510065],[-90.711184,42.636034],[-91.067185,42.75105],[-91.143862,42.909881],[-91.176724,43.134436],[-91.056231,43.254929],[-91.204109,43.353514],[-91.215062,43.501391],[-91.269832,43.616407],[-91.242447,43.775238],[-91.43414,43.994316],[-91.592971,44.032654],[-91.877772,44.202439],[-91.927065,44.333886],[-92.233773,44.443425],[-92.337835,44.552964],[-92.545959,44.569394],[-92.808852,44.750133],[-92.737652,45.117088],[-92.75956,45.286874],[-92.644544,45.440228],[-92.770513,45.566198],[-92.885529,45.577151],[-92.869098,45.719552],[-92.639067,45.933153],[-92.354266,46.015307],[-92.29402,46.075553],[-92.29402,46.667063],[-92.091373,46.749217],[-92.014696,46.705401],[-91.790141,46.694447],[-91.09457,46.864232],[-90.837154,46.95734],[-90.749522,46.88614],[-90.886446,46.754694],[-90.55783,46.584908],[-90.415429,46.568478]]]}}, -{"type":"Feature","id":"56","properties":{"name":"WY"},"geometry":{"type":"Polygon","coordinates":[[[-109.080842,45.002073],[-105.91517,45.002073],[-104.058488,44.996596],[-104.053011,43.002989],[-104.053011,41.003906],[-105.728954,40.998429],[-107.919731,41.003906],[-109.04798,40.998429],[-111.047063,40.998429],[-111.047063,42.000709],[-111.047063,44.476286],[-111.05254,45.002073],[-109.080842,45.002073]]]}}, -{"type":"Feature","id":"72","properties":{"name":"PR"},"geometry":{"type":"Polygon","coordinates":[[[-66.448338,17.984326],[-66.771478,18.006234],[-66.924832,17.929556],[-66.985078,17.973372],[-67.209633,17.956941],[-67.154863,18.19245],[-67.269879,18.362235],[-67.094617,18.515589],[-66.957694,18.488204],[-66.409999,18.488204],[-65.840398,18.433435],[-65.632274,18.367712],[-65.626797,18.203403],[-65.730859,18.186973],[-65.834921,18.017187],[-66.234737,17.929556],[-66.448338,17.984326]]]}} -]} +{"type":"FeatureCollection", "features": [ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-92.012,46.712],[-92.275,46.656],[-92.265,46.095],[-92.757,45.89],[-92.9,45.706],[-92.689,45.518],[-92.797,44.776],[-91.95,44.365],[-91.628,44.085],[-91.29,43.937],[-91.228,43.501],[-94.001,43.513],[-96.453,43.502],[-96.439,44.436],[-96.561,45.393],[-96.835,45.625],[-96.539,46.018],[-96.685,46.513],[-96.894,47.749],[-97.131,48.137],[-97.12,48.759],[-97.229,49.001],[-95.159,49],[-95.156,49.384],[-94.818,49.389],[-94.64,48.84],[-94.329,48.671],[-92.61,48.45],[-91.64,48.14],[-90.83,48.27],[-89.6,48.01],[-90.62,47.68],[-92.009,46.858],[-92.012,46.712]]]},"properties":{"STATE":"MN","NAME":"Minnesota"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-116.048,49],[-113.06,49.001],[-110.071,49.003],[-107.082,49.005],[-104.093,49.006],[-104.077,47.172],[-104.027,45.957],[-104.078,45.041],[-105.746,45.051],[-107.547,45.046],[-109.102,45.057],[-111.071,45.05],[-111.085,44.506],[-111.4,44.729],[-111.542,44.53],[-112.336,44.561],[-112.875,44.36],[-113.175,44.765],[-113.379,44.79],[-113.503,45.124],[-113.794,45.565],[-114.036,45.73],[-114.335,45.47],[-114.514,45.569],[-114.407,45.89],[-114.491,46.147],[-114.285,46.632],[-114.843,46.786],[-115.288,47.25],[-115.705,47.505],[-115.704,47.685],[-115.968,47.95],[-116.048,49]]]},"properties":{"STATE":"MT","NAME":"Montana"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-97.229,49.001],[-97.12,48.759],[-97.131,48.137],[-96.894,47.749],[-96.685,46.513],[-96.539,46.018],[-98.442,45.963],[-100.067,45.966],[-102.117,45.961],[-104.027,45.957],[-104.077,47.172],[-104.093,49.006],[-100.63,49.003],[-97.229,49.001]]]},"properties":{"STATE":"ND","NAME":"North Dakota"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-155.937,19.059],[-155.908,19.339],[-156.073,19.703],[-155.85,19.977],[-155.785,20.249],[-155.225,19.993],[-155.062,19.859],[-154.831,19.453],[-155.542,19.083],[-155.688,18.916],[-155.937,19.059]]],[[[-155.996,20.764],[-156.414,20.572],[-156.711,20.927],[-156.613,21.012],[-155.996,20.764]]],[[[-158.127,21.312],[-158.293,21.579],[-158.025,21.717],[-157.653,21.322],[-158.127,21.312]]],[[[-159.801,22.065],[-159.596,22.236],[-159.366,22.215],[-159.464,21.883],[-159.801,22.065]]]]},"properties":{"STATE":"HI","NAME":"Hawaii"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-116.048,49],[-115.968,47.95],[-115.704,47.685],[-115.705,47.505],[-115.288,47.25],[-114.843,46.786],[-114.285,46.632],[-114.491,46.147],[-114.407,45.89],[-114.514,45.569],[-114.335,45.47],[-114.036,45.73],[-113.794,45.565],[-113.503,45.124],[-113.379,44.79],[-113.175,44.765],[-112.875,44.36],[-112.336,44.561],[-111.542,44.53],[-111.4,44.729],[-111.085,44.506],[-111.05,44.488],[-111.05,42.002],[-114.034,41.993],[-117.028,42],[-117.014,43.797],[-116.927,44.081],[-117.192,44.439],[-116.836,44.864],[-116.559,45.444],[-116.511,45.726],[-116.915,46],[-116.998,46.33],[-117.027,47.723],[-117.031,48.999],[-116.048,49]]]},"properties":{"STATE":"ID","NAME":"Idaho"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-117.031,48.999],[-117.027,47.723],[-116.998,46.33],[-116.915,46],[-118.978,45.993],[-119.592,45.932],[-120.158,45.741],[-120.61,45.754],[-121.047,45.637],[-121.561,45.733],[-122.175,45.595],[-122.652,45.63],[-122.938,46.129],[-123.471,46.277],[-123.999,46.283],[-124.08,46.865],[-124.396,47.72],[-124.687,48.184],[-124.566,48.38],[-123.12,48.04],[-122.587,47.096],[-122.34,47.36],[-122.5,48.18],[-122.84,49],[-120.003,49.001],[-117.031,48.999]]]},"properties":{"STATE":"WA","NAME":"Washington"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-109.045,37],[-109.044,31.342],[-111.024,31.335],[-113.305,32.039],[-114.815,32.525],[-114.721,32.721],[-114.48,32.916],[-114.656,33.054],[-114.743,33.38],[-114.549,33.61],[-114.469,34.067],[-114.166,34.273],[-114.485,34.653],[-114.642,35.053],[-114.581,35.249],[-114.671,36.115],[-114.133,36.004],[-114.024,36.19],[-114.031,36.994],[-112.418,37.009],[-110.496,37.007],[-109.045,37]]]},"properties":{"STATE":"AZ","NAME":"Arizona"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-114.642,35.053],[-114.485,34.653],[-114.166,34.273],[-114.469,34.067],[-114.549,33.61],[-114.743,33.38],[-114.656,33.054],[-114.48,32.916],[-114.721,32.721],[-115.991,32.613],[-117.128,32.535],[-117.296,33.046],[-117.944,33.621],[-118.411,33.741],[-118.52,34.028],[-119.081,34.078],[-119.439,34.348],[-120.368,34.447],[-120.623,34.609],[-120.745,35.157],[-121.715,36.162],[-122.547,37.552],[-122.512,37.784],[-122.953,38.114],[-123.727,38.951],[-123.865,39.767],[-124.398,40.313],[-124.179,41.142],[-124.214,41.999],[-119.999,41.993],[-120,38.995],[-118.115,37.644],[-116.321,36.322],[-114.642,35.053]]]},"properties":{"STATE":"CA","NAME":"California"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-102.05,40.001],[-102.04,38.46],[-102.041,36.992],[-103.003,36.995],[-104.2,36.996],[-105.9,36.997],[-107.48,37],[-109.045,37],[-109.053,41.002],[-107.05,41.003],[-105.047,41.004],[-104.045,41.004],[-102.048,41.004],[-102.05,40.001]]]},"properties":{"STATE":"CO","NAME":"Colorado"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-117.028,42],[-114.034,41.993],[-114.031,36.994],[-114.024,36.19],[-114.133,36.004],[-114.671,36.115],[-114.581,35.249],[-114.642,35.053],[-116.321,36.322],[-118.115,37.644],[-120,38.995],[-119.999,41.993],[-117.028,42]]]},"properties":{"STATE":"NV","NAME":"Nevada"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-109.044,31.342],[-109.045,37],[-107.48,37],[-105.9,36.997],[-104.2,36.996],[-103.003,36.995],[-103.002,36.499],[-103.002,33.88],[-103.002,31.999],[-103.93,31.999],[-106.63,31.999],[-106.507,31.754],[-108.24,31.755],[-108.242,31.342],[-109.044,31.342]]]},"properties":{"STATE":"NM","NAME":"New Mexico"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-116.915,46],[-116.511,45.726],[-116.559,45.444],[-116.836,44.864],[-117.192,44.439],[-116.927,44.081],[-117.014,43.797],[-117.028,42],[-119.999,41.993],[-124.214,41.999],[-124.533,42.766],[-124.142,43.708],[-123.899,45.523],[-123.999,46.283],[-123.471,46.277],[-122.938,46.129],[-122.652,45.63],[-122.175,45.595],[-121.561,45.733],[-121.047,45.637],[-120.61,45.754],[-120.158,45.741],[-119.592,45.932],[-118.978,45.993],[-116.915,46]]]},"properties":{"STATE":"OR","NAME":"Oregon"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-114.034,41.993],[-111.05,42.002],[-111.054,41.028],[-109.053,41.002],[-109.045,37],[-110.496,37.007],[-112.418,37.009],[-114.031,36.994],[-114.034,41.993]]]},"properties":{"STATE":"UT","NAME":"Utah"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-111.085,44.506],[-111.071,45.05],[-109.102,45.057],[-107.547,45.046],[-105.746,45.051],[-104.078,45.041],[-104.053,43],[-104.045,41.004],[-105.047,41.004],[-107.05,41.003],[-109.053,41.002],[-111.054,41.028],[-111.05,42.002],[-111.05,44.488],[-111.085,44.506]]]},"properties":{"STATE":"WY","NAME":"Wyoming"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-89.663,36.023],[-90.147,35.405],[-90.249,35.021],[-90.447,34.867],[-90.584,34.454],[-90.876,34.261],[-91.201,33.706],[-91.108,33.207],[-91.156,33.01],[-92.001,33.044],[-93.094,33.011],[-94.06,33.012],[-94.002,33.58],[-94.48,33.636],[-94.43,35.483],[-94.629,36.541],[-93.413,36.526],[-91.251,36.523],[-90.112,36.462],[-90.029,36.338],[-90.315,36.023],[-89.663,36.023]]]},"properties":{"STATE":"AR","NAME":"Arkansas"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-96.453,43.502],[-94.001,43.513],[-91.228,43.501],[-91.084,43.288],[-91.17,43.002],[-91.065,42.754],[-90.641,42.505],[-90.157,42.104],[-90.21,41.835],[-90.462,41.536],[-91.034,41.43],[-91.123,41.258],[-90.957,41.025],[-91.154,40.7],[-91.41,40.551],[-91.43,40.369],[-91.758,40.614],[-94.002,40.585],[-95.796,40.584],[-95.856,41.116],[-96.097,41.557],[-96.167,41.953],[-96.349,42.142],[-96.455,42.489],[-96.616,42.692],[-96.46,43.124],[-96.587,43.257],[-96.453,43.502]]]},"properties":{"STATE":"IA","NAME":"Iowa"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-102.041,36.992],[-102.04,38.46],[-102.05,40.001],[-100.3,40.001],[-99,40.001],[-96.7,40.001],[-95.323,40.001],[-94.927,39.725],[-95.067,39.54],[-94.868,39.235],[-94.605,39.14],[-94.623,37],[-97.3,36.997],[-100.1,36.994],[-102.041,36.992]]]},"properties":{"STATE":"KS","NAME":"Kansas"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-89.663,36.023],[-90.315,36.023],[-90.029,36.338],[-90.112,36.462],[-91.251,36.523],[-93.413,36.526],[-94.629,36.541],[-94.623,37],[-94.605,39.14],[-94.868,39.235],[-95.067,39.54],[-94.927,39.725],[-95.323,40.001],[-95.796,40.584],[-94.002,40.585],[-91.758,40.614],[-91.43,40.369],[-91.518,40.12],[-91.428,39.821],[-91.072,39.445],[-90.749,39.265],[-90.65,38.908],[-90.347,38.93],[-90.156,38.769],[-90.37,38.264],[-90.03,37.972],[-89.554,37.719],[-89.516,37.327],[-89.388,37.081],[-89.103,36.952],[-89.115,36.695],[-89.498,36.506],[-89.663,36.023]]]},"properties":{"STATE":"MO","NAME":"Missouri"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-102.05,40.001],[-102.048,41.004],[-104.045,41.004],[-104.053,43],[-102.1,43],[-100.6,43],[-98.594,43],[-98.336,42.874],[-97.287,42.846],[-96.455,42.489],[-96.349,42.142],[-96.167,41.953],[-96.097,41.557],[-95.856,41.116],[-95.796,40.584],[-95.323,40.001],[-96.7,40.001],[-99,40.001],[-100.3,40.001],[-102.05,40.001]]]},"properties":{"STATE":"NE","NAME":"Nebraska"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-103.003,36.995],[-102.041,36.992],[-100.1,36.994],[-97.3,36.997],[-94.623,37],[-94.629,36.541],[-94.43,35.483],[-94.48,33.636],[-95.191,33.938],[-95.418,33.87],[-95.977,33.879],[-96.316,33.756],[-97.104,33.774],[-97.657,33.994],[-97.957,33.894],[-98.088,34.134],[-98.554,34.111],[-99.187,34.236],[-99.336,34.443],[-99.599,34.376],[-100,34.565],[-100,36.499],[-101.001,36.499],[-103.002,36.499],[-103.003,36.995]]]},"properties":{"STATE":"OK","NAME":"Oklahoma"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-96.539,46.018],[-96.835,45.625],[-96.561,45.393],[-96.439,44.436],[-96.453,43.502],[-96.587,43.257],[-96.46,43.124],[-96.616,42.692],[-96.455,42.489],[-97.287,42.846],[-98.336,42.874],[-98.594,43],[-100.6,43],[-102.1,43],[-104.053,43],[-104.078,45.041],[-104.027,45.957],[-102.117,45.961],[-100.067,45.966],[-98.442,45.963],[-96.539,46.018]]]},"properties":{"STATE":"SD","NAME":"South Dakota"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-94.06,33.012],[-93.094,33.011],[-92.001,33.044],[-91.156,33.01],[-91.176,32.808],[-90.943,32.307],[-91.321,31.86],[-91.584,31.047],[-90.702,31.016],[-89.759,31.013],[-89.854,30.683],[-89.659,30.441],[-89.594,30.16],[-89.414,29.894],[-89.43,29.489],[-89.218,29.291],[-89.408,29.16],[-89.779,29.307],[-90.155,29.117],[-90.88,29.149],[-91.627,29.677],[-92.499,29.552],[-93.226,29.784],[-93.848,29.714],[-93.918,29.822],[-93.667,30.101],[-93.738,30.367],[-93.49,31.08],[-93.835,31.83],[-93.999,31.943],[-94.06,33.012]]]},"properties":{"STATE":"LA","NAME":"Louisiana"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-106.507,31.754],[-106.63,31.999],[-103.93,31.999],[-103.002,31.999],[-103.002,33.88],[-103.002,36.499],[-101.001,36.499],[-100,36.499],[-100,34.565],[-99.599,34.376],[-99.336,34.443],[-99.187,34.236],[-98.554,34.111],[-98.088,34.134],[-97.957,33.894],[-97.657,33.994],[-97.104,33.774],[-96.316,33.756],[-95.977,33.879],[-95.418,33.87],[-95.191,33.938],[-94.48,33.636],[-94.002,33.58],[-94.06,33.012],[-93.999,31.943],[-93.835,31.83],[-93.49,31.08],[-93.738,30.367],[-93.667,30.101],[-93.918,29.822],[-93.848,29.714],[-94.69,29.48],[-95.6,28.739],[-96.594,28.307],[-97.14,27.83],[-97.37,27.38],[-97.38,26.69],[-97.33,26.21],[-97.14,25.87],[-97.53,25.84],[-98.24,26.06],[-99.02,26.37],[-99.3,26.84],[-99.52,27.54],[-100.11,28.11],[-100.456,28.696],[-100.957,29.381],[-101.662,29.779],[-102.48,29.76],[-103.11,28.97],[-103.94,29.27],[-104.457,29.572],[-104.706,30.122],[-105.037,30.644],[-105.632,31.084],[-106.143,31.4],[-106.507,31.754]]]},"properties":{"STATE":"TX","NAME":"Texas"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-73.498,42.055],[-71.801,42.013],[-71.854,41.32],[-72.876,41.221],[-73.648,40.955],[-73.553,41.29],[-73.498,42.055]]]},"properties":{"STATE":"CT","NAME":"Connecticut"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-71.801,42.013],[-73.498,42.055],[-73.282,42.743],[-72.457,42.727],[-71.249,42.718],[-70.815,42.865],[-70.825,42.335],[-70.495,41.805],[-70.08,41.78],[-69.965,41.637],[-70.64,41.475],[-71.12,41.495],[-71.379,42.024],[-71.801,42.013]]]},"properties":{"STATE":"MA","NAME":"Massachusetts"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-70.815,42.865],[-71.249,42.718],[-72.457,42.727],[-72.37,43.522],[-72.059,44.046],[-72.003,44.304],[-71.586,44.468],[-71.505,45.008],[-71.405,45.255],[-71.085,45.305],[-70.944,43.466],[-70.646,43.09],[-70.815,42.865]]]},"properties":{"STATE":"NH","NAME":"New Hampshire"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-71.854,41.32],[-71.801,42.013],[-71.379,42.024],[-71.12,41.495],[-71.854,41.32]]]},"properties":{"STATE":"RI","NAME":"Rhode Island"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-72.457,42.727],[-73.282,42.743],[-73.24,43.568],[-73.43,44.02],[-73.329,44.227],[-73.408,44.676],[-73.348,45.007],[-71.505,45.008],[-71.586,44.468],[-72.003,44.304],[-72.059,44.046],[-72.37,43.522],[-72.457,42.727]]]},"properties":{"STATE":"VT","NAME":"Vermont"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-88.167,35],[-85.625,34.986],[-85.366,33.744],[-85.13,32.751],[-84.899,32.259],[-85.064,32.083],[-85.118,31.236],[-85.005,30.991],[-87.046,30.985],[-87.617,30.928],[-87.405,30.609],[-87.53,30.274],[-88.418,30.385],[-88.45,31.912],[-88.273,33.51],[-88.096,34.806],[-88.167,35]]]},"properties":{"STATE":"AL","NAME":"Alabama"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-87.53,30.274],[-87.405,30.609],[-87.617,30.928],[-87.046,30.985],[-85.005,30.991],[-84.853,30.721],[-83.848,30.675],[-82.226,30.526],[-82.02,30.788],[-81.49,30.73],[-81.314,30.036],[-80.98,29.18],[-80.536,28.472],[-80.53,28.04],[-80.057,26.88],[-80.132,25.817],[-80.381,25.206],[-80.68,25.08],[-81.172,25.201],[-81.33,25.64],[-81.71,25.87],[-82.705,27.495],[-82.855,27.886],[-82.65,28.55],[-82.93,29.1],[-83.71,29.937],[-84.1,30.09],[-85.109,29.636],[-85.288,29.686],[-85.773,30.153],[-86.4,30.4],[-87.53,30.274]]]},"properties":{"STATE":"FL","NAME":"Florida"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-85.005,30.991],[-85.118,31.236],[-85.064,32.083],[-84.899,32.259],[-85.13,32.751],[-85.366,33.744],[-85.625,34.986],[-84.321,34.987],[-83.076,34.979],[-83.346,34.707],[-82.903,34.479],[-82.597,33.986],[-81.943,33.461],[-81.827,33.223],[-81.507,33.022],[-81.377,32.682],[-81.126,32.312],[-81.128,32.122],[-80.865,32.033],[-81.336,31.44],[-81.49,30.73],[-82.02,30.788],[-82.226,30.526],[-83.848,30.675],[-84.853,30.721],[-85.005,30.991]]]},"properties":{"STATE":"GA","NAME":"Georgia"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-91.156,33.01],[-91.108,33.207],[-91.201,33.706],[-90.876,34.261],[-90.584,34.454],[-90.447,34.867],[-90.249,35.021],[-88.167,35],[-88.096,34.806],[-88.273,33.51],[-88.45,31.912],[-88.418,30.385],[-89.18,30.316],[-89.594,30.16],[-89.659,30.441],[-89.854,30.683],[-89.759,31.013],[-90.702,31.016],[-91.584,31.047],[-91.321,31.86],[-90.943,32.307],[-91.176,32.808],[-91.156,33.01]]]},"properties":{"STATE":"MS","NAME":"Mississippi"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-80.865,32.033],[-81.128,32.122],[-81.126,32.312],[-81.377,32.682],[-81.507,33.022],[-81.827,33.223],[-81.943,33.461],[-82.597,33.986],[-82.903,34.479],[-83.346,34.707],[-83.076,34.979],[-82.437,35.18],[-81.514,35.172],[-80.937,35.103],[-80.784,34.818],[-79.673,34.808],[-78.554,33.861],[-79.061,33.494],[-79.204,33.158],[-80.301,32.509],[-80.865,32.033]]]},"properties":{"STATE":"SC","NAME":"South Carolina"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-91.43,40.369],[-91.41,40.551],[-91.154,40.7],[-90.957,41.025],[-91.123,41.258],[-91.034,41.43],[-90.462,41.536],[-90.21,41.835],[-90.157,42.104],[-90.641,42.505],[-87.803,42.497],[-87.796,42.234],[-87.526,41.709],[-87.528,39.392],[-87.642,39.114],[-87.515,38.735],[-87.879,38.291],[-88.051,37.82],[-88.072,37.512],[-88.474,37.355],[-88.566,37.054],[-89.074,37.2],[-89.103,36.952],[-89.388,37.081],[-89.516,37.327],[-89.554,37.719],[-90.03,37.972],[-90.37,38.264],[-90.156,38.769],[-90.347,38.93],[-90.65,38.908],[-90.749,39.265],[-91.072,39.445],[-91.428,39.821],[-91.518,40.12],[-91.43,40.369]]]},"properties":{"STATE":"IL","NAME":"Illinois"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-88.051,37.82],[-87.879,38.291],[-87.515,38.735],[-87.642,39.114],[-87.528,39.392],[-87.526,41.709],[-87.094,41.646],[-86.824,41.756],[-84.807,41.756],[-84.807,41.678],[-84.81,40.773],[-84.824,39.107],[-84.8,38.855],[-85.168,38.691],[-85.84,38.259],[-86.06,37.961],[-86.325,38.169],[-86.61,37.859],[-86.826,37.976],[-87.131,37.784],[-87.439,37.936],[-87.654,37.826],[-88.051,37.82]]]},"properties":{"STATE":"IN","NAME":"Indiana"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-89.498,36.506],[-89.115,36.695],[-89.103,36.952],[-89.074,37.2],[-88.566,37.054],[-88.474,37.355],[-88.072,37.512],[-88.051,37.82],[-87.654,37.826],[-87.439,37.936],[-87.131,37.784],[-86.826,37.976],[-86.61,37.859],[-86.325,38.169],[-86.06,37.961],[-85.84,38.259],[-85.168,38.691],[-84.8,38.855],[-84.824,39.107],[-84.481,39.083],[-84.039,38.761],[-83.673,38.609],[-83.259,38.579],[-82.855,38.651],[-82.589,38.415],[-82.581,38.113],[-82.167,37.554],[-81.973,37.536],[-82.373,37.238],[-82.685,37.121],[-82.816,36.935],[-83.179,36.718],[-83.673,36.6],[-84.35,36.567],[-85.231,36.61],[-87.217,36.639],[-87.842,36.611],[-88.07,36.497],[-89.498,36.506]]]},"properties":{"STATE":"KY","NAME":"Kentucky"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-83.076,34.979],[-84.321,34.987],[-84.299,35.199],[-83.876,35.49],[-83.438,35.563],[-82.224,36.126],[-82.051,36.106],[-81.694,36.317],[-81.679,36.586],[-79.992,36.542],[-78,36.537],[-75.868,36.551],[-75.727,35.551],[-76.363,34.809],[-77.398,34.512],[-78.055,33.925],[-78.554,33.861],[-79.673,34.808],[-80.784,34.818],[-80.937,35.103],[-81.514,35.172],[-82.437,35.18],[-83.076,34.979]]]},"properties":{"STATE":"NC","NAME":"North Carolina"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-84.824,39.107],[-84.81,40.773],[-84.807,41.678],[-83.463,41.694],[-82.846,41.487],[-82.347,41.436],[-81.624,41.569],[-81.031,41.846],[-80.517,41.98],[-80.519,40.641],[-80.879,39.654],[-81.151,39.426],[-81.522,39.372],[-82.054,39.018],[-82.341,38.441],[-82.589,38.415],[-82.855,38.651],[-83.259,38.579],[-83.673,38.609],[-84.039,38.761],[-84.481,39.083],[-84.824,39.107]]]},"properties":{"STATE":"OH","NAME":"Ohio"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-90.249,35.021],[-90.147,35.405],[-89.663,36.023],[-89.498,36.506],[-88.07,36.497],[-87.842,36.611],[-87.217,36.639],[-85.231,36.61],[-84.35,36.567],[-83.673,36.6],[-82.186,36.566],[-81.679,36.586],[-81.694,36.317],[-82.051,36.106],[-82.224,36.126],[-83.438,35.563],[-83.876,35.49],[-84.299,35.199],[-84.321,34.987],[-85.625,34.986],[-88.167,35],[-90.249,35.021]]]},"properties":{"STATE":"TN","NAME":"Tennessee"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-83.673,36.6],[-83.179,36.718],[-82.816,36.935],[-82.685,37.121],[-82.373,37.238],[-81.973,37.536],[-81.664,37.195],[-81.228,37.245],[-80.298,37.519],[-80.293,37.728],[-79.964,38.032],[-79.648,38.575],[-79.223,38.465],[-78.424,39.139],[-78.346,39.406],[-77.835,39.135],[-77.723,39.322],[-77.517,39.106],[-76.912,38.878],[-77.23,38.614],[-77.343,38.392],[-76.99,38.24],[-76.302,37.918],[-76.259,36.966],[-75.972,36.897],[-75.868,36.551],[-78,36.537],[-79.992,36.542],[-81.679,36.586],[-82.186,36.566],[-83.673,36.6]]],[[[-75.378,38.015],[-75.94,37.217],[-76.031,37.257],[-75.722,37.937],[-75.378,38.015]]]]},"properties":{"STATE":"VA","NAME":"Virginia"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-91.228,43.501],[-91.29,43.937],[-91.628,44.085],[-91.95,44.365],[-92.797,44.776],[-92.689,45.518],[-92.9,45.706],[-92.757,45.89],[-92.265,46.095],[-92.275,46.656],[-92.012,46.712],[-91.01,46.92],[-90.397,46.576],[-90.096,46.381],[-89.221,46.202],[-88.644,46.022],[-88.167,46.008],[-87.787,45.64],[-87.893,45.397],[-87.587,45.103],[-87.988,44.733],[-87.853,44.615],[-87.118,45.259],[-86.967,45.263],[-87.486,44.493],[-87.902,43.231],[-87.777,42.741],[-87.803,42.497],[-90.641,42.505],[-91.065,42.754],[-91.17,43.002],[-91.084,43.288],[-91.228,43.501]]]},"properties":{"STATE":"WI","NAME":"Wisconsin"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-81.973,37.536],[-82.167,37.554],[-82.581,38.113],[-82.589,38.415],[-82.341,38.441],[-82.054,39.018],[-81.522,39.372],[-81.151,39.426],[-80.879,39.654],[-80.519,40.641],[-80.519,39.721],[-79.478,39.721],[-79.486,39.213],[-78.829,39.563],[-78.534,39.522],[-78.232,39.672],[-77.923,39.593],[-77.723,39.322],[-77.835,39.135],[-78.346,39.406],[-78.424,39.139],[-79.223,38.465],[-79.648,38.575],[-79.964,38.032],[-80.293,37.728],[-80.298,37.519],[-81.228,37.245],[-81.664,37.195],[-81.973,37.536]]]},"properties":{"STATE":"WV","NAME":"West Virginia"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-75.048,38.449],[-75.715,38.449],[-75.788,39.724],[-75.406,39.796],[-75.528,39.499],[-75.32,38.96],[-75.072,38.782],[-75.048,38.449]]]},"properties":{"STATE":"DE","NAME":"Delaware"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-76.99,38.24],[-77.343,38.392],[-77.23,38.614],[-76.912,38.878],[-77.517,39.106],[-77.723,39.322],[-77.923,39.593],[-78.232,39.672],[-78.534,39.522],[-78.829,39.563],[-79.486,39.213],[-79.478,39.721],[-78.55,39.72],[-75.788,39.724],[-75.715,38.449],[-75.048,38.449],[-75.378,38.015],[-75.722,37.937],[-76.233,38.319],[-76.35,39.15],[-76.543,38.718],[-76.329,38.083],[-76.99,38.24]]]},"properties":{"STATE":"MD","NAME":"Maryland"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-75.528,39.499],[-75.406,39.796],[-74.763,40.191],[-75.204,40.587],[-75.136,41],[-74.679,41.355],[-73.913,40.96],[-73.952,40.751],[-74.257,40.473],[-73.962,40.428],[-74.178,39.709],[-74.906,38.939],[-74.981,39.196],[-75.528,39.499]]]},"properties":{"STATE":"NJ","NAME":"New Jersey"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-73.498,42.055],[-73.553,41.29],[-73.648,40.955],[-72.241,41.119],[-71.945,40.93],[-73.345,40.63],[-73.982,40.628],[-73.952,40.751],[-73.913,40.96],[-74.679,41.355],[-75.011,41.496],[-75.049,41.751],[-75.385,41.999],[-78.201,42],[-79.76,42],[-79.76,42.271],[-78.901,42.867],[-79.009,43.266],[-78.535,43.38],[-76.93,43.26],[-76.18,43.59],[-76.342,44.119],[-75.318,44.816],[-74.867,45],[-73.348,45.007],[-73.408,44.676],[-73.329,44.227],[-73.43,44.02],[-73.24,43.568],[-73.282,42.743],[-73.498,42.055]]]},"properties":{"STATE":"NY","NAME":"New York"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-80.519,40.641],[-80.517,41.98],[-79.76,42.271],[-79.76,42],[-78.201,42],[-75.385,41.999],[-75.049,41.751],[-75.011,41.496],[-74.679,41.355],[-75.136,41],[-75.204,40.587],[-74.763,40.191],[-75.406,39.796],[-75.788,39.724],[-78.55,39.72],[-79.478,39.721],[-80.519,39.721],[-80.519,40.641]]]},"properties":{"STATE":"PA","NAME":"Pennsylvania"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-70.646,43.09],[-70.944,43.466],[-71.085,45.305],[-70.66,45.46],[-70.305,45.915],[-70,46.693],[-69.237,47.448],[-68.905,47.185],[-68.234,47.355],[-67.79,47.066],[-67.791,45.703],[-67.137,45.137],[-66.965,44.81],[-68.033,44.325],[-69.06,43.98],[-70.116,43.684],[-70.646,43.09]]]},"properties":{"STATE":"ME","NAME":"Maine"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-84.807,41.678],[-84.807,41.756],[-86.824,41.756],[-86.622,41.894],[-86.216,42.382],[-86.188,43.041],[-86.52,43.66],[-86.47,44.084],[-85.96,44.911],[-85.07,45.41],[-84.93,45.79],[-84.08,45.59],[-83.34,45.2],[-83.259,44.746],[-83.35,44.29],[-83.9,43.89],[-83.65,43.63],[-83.03,44.07],[-82.66,43.97],[-82.48,43.39],[-82.43,42.98],[-83.463,41.694],[-84.807,41.678]]],[[[-87.587,45.103],[-87.893,45.397],[-87.787,45.64],[-88.167,46.008],[-88.644,46.022],[-89.221,46.202],[-90.096,46.381],[-90.397,46.576],[-89.625,46.831],[-87.94,47.486],[-88.261,46.959],[-87.694,46.831],[-86.99,46.45],[-86.103,46.673],[-85.12,46.76],[-84.91,46.48],[-84.337,46.409],[-83.839,46.01],[-84.72,45.92],[-85.54,46.03],[-86.32,45.83],[-87,45.74],[-87.587,45.103]]]]},"properties":{"STATE":"MI","NAME":"Michigan"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-153.229,57.969],[-152.565,57.901],[-152.141,57.591],[-153.006,57.116],[-154.005,56.735],[-154.516,56.993],[-154.671,57.461],[-153.229,57.969]]],[[[-166.468,60.384],[-165.674,60.294],[-165.579,59.91],[-166.193,59.754],[-166.848,59.941],[-167.455,60.213],[-166.468,60.384]]],[[[-171.732,63.783],[-171.114,63.592],[-170.491,63.695],[-169.683,63.431],[-168.689,63.298],[-169.529,62.977],[-170.671,63.376],[-171.553,63.318],[-171.791,63.406],[-171.732,63.783]]],[[[-140.986,69.712],[-140.992,66],[-140.998,60.306],[-140.013,60.277],[-139.039,60],[-137.453,58.905],[-136.48,59.464],[-135.476,59.788],[-134.945,59.271],[-134.271,58.861],[-133.356,58.41],[-132.73,57.693],[-131.708,56.552],[-130.008,55.916],[-129.98,55.285],[-130.536,54.803],[-131.086,55.179],[-131.967,55.498],[-132.25,56.37],[-133.539,57.179],[-134.078,58.123],[-135.038,58.188],[-136.628,58.212],[-137.8,58.5],[-139.868,59.538],[-142.574,60.084],[-143.959,59.999],[-145.926,60.459],[-147.114,60.885],[-148.224,60.673],[-148.018,59.978],[-149.728,59.706],[-150.608,59.368],[-151.716,59.156],[-151.859,59.745],[-151.41,60.726],[-150.347,61.034],[-150.621,61.284],[-151.896,60.727],[-152.578,60.062],[-154.019,59.35],[-153.288,58.865],[-154.232,58.146],[-155.307,57.728],[-156.308,57.423],[-156.556,56.98],[-158.117,56.464],[-158.433,55.994],[-159.603,55.567],[-160.29,55.644],[-162.238,55.024],[-163.069,54.69],[-164.786,54.404],[-164.942,54.572],[-163.848,55.039],[-162.87,55.348],[-161.804,55.895],[-160.564,56.008],[-160.071,56.418],[-158.684,57.017],[-158.461,57.217],[-157.723,57.57],[-157.55,58.328],[-157.042,58.919],[-158.195,58.616],[-158.517,58.788],[-159.059,58.424],[-159.712,58.931],[-159.981,58.573],[-160.355,59.071],[-161.355,58.671],[-161.969,58.672],[-162.055,59.267],[-161.874,59.634],[-162.518,59.99],[-163.818,59.798],[-164.662,60.267],[-165.346,60.507],[-165.351,61.074],[-166.121,61.5],[-165.734,62.075],[-164.919,62.633],[-164.563,63.146],[-163.753,63.219],[-163.067,63.059],[-162.261,63.542],[-161.534,63.456],[-160.773,63.766],[-160.958,64.223],[-161.518,64.403],[-160.778,64.789],[-161.392,64.777],[-162.453,64.559],[-162.758,64.339],[-163.546,64.559],[-164.961,64.447],[-166.425,64.687],[-166.845,65.089],[-168.111,65.67],[-166.705,66.088],[-164.475,66.577],[-163.653,66.577],[-163.789,66.077],[-161.678,66.116],[-162.49,66.736],[-163.72,67.116],[-164.431,67.616],[-165.39,68.043],[-166.764,68.359],[-166.205,68.883],[-164.431,68.916],[-163.169,69.371],[-162.931,69.858],[-161.909,70.333],[-160.935,70.448],[-159.039,70.892],[-158.12,70.825],[-156.581,71.358],[-155.068,71.148],[-154.344,70.696],[-153.9,70.89],[-152.21,70.83],[-152.27,70.6],[-150.74,70.43],[-149.72,70.53],[-147.613,70.214],[-145.69,70.12],[-144.92,69.99],[-143.589,70.153],[-142.073,69.852],[-140.986,69.712]]]]},"properties":{"STATE":"AK","NAME":"Alaska"}} +]} \ No newline at end of file diff --git a/resources/frontend_client/app/assets/geojson/world.json b/resources/frontend_client/app/assets/geojson/world.json index 875e85f58046635eb741fca9fed0543cd45858d4..273b87e2adfe078ee108ea90650d495721dddaa8 100644 --- a/resources/frontend_client/app/assets/geojson/world.json +++ b/resources/frontend_client/app/assets/geojson/world.json @@ -1 +1,252 @@ -{"type":"FeatureCollection","features":[{"geometry":{"type":"Polygon","coordinates":[[[-69.899139,12.452005],[-69.895676,12.423015],[-69.942159,12.438518],[-70.004145,12.500503],[-70.066131,12.546986],[-70.050861,12.597087],[-70.035125,12.614114],[-69.973139,12.567631],[-69.911799,12.480479],[-69.899139,12.452005]]]},"type":"Feature","properties":{"ISO_A2":"AW","NAME":"Aruba"}},{"geometry":{"type":"Polygon","coordinates":[[[74.891326,37.23163],[74.840218,37.225067],[74.767354,37.249174],[74.738984,37.285631],[74.726685,37.290747],[74.668962,37.266692],[74.558943,37.236616],[74.372133,37.157732],[74.376163,37.137372],[74.497913,37.057222],[74.526438,37.03066],[74.541373,37.022185],[74.431044,36.983712],[74.194676,36.89687],[74.038923,36.825711],[74.001819,36.823076],[73.907872,36.852945],[73.76912,36.888472],[73.73181,36.887775],[73.411158,36.881703],[73.116757,36.868551],[72.993715,36.851601],[72.766236,36.835013],[72.622834,36.829587],[72.531366,36.802018],[72.431166,36.765818],[72.326986,36.742409],[72.249833,36.734735],[72.156764,36.700887],[72.095579,36.633759],[71.920706,36.534204],[71.822211,36.486094],[71.772601,36.431833],[71.716377,36.426562],[71.620466,36.436484],[71.545845,36.377676],[71.463266,36.293263],[71.312578,36.171203],[71.232893,36.121801],[71.185092,36.042116],[71.22018,36.000697],[71.34286,35.93853],[71.397585,35.880187],[71.427558,35.83373],[71.483627,35.714616],[71.519025,35.597517],[71.571942,35.546823],[71.587393,35.460833],[71.600622,35.407917],[71.571942,35.370425],[71.545483,35.328542],[71.545483,35.288854],[71.577213,35.248004],[71.605221,35.211779],[71.620466,35.183021],[71.601656,35.150671],[71.545483,35.101424],[71.517061,35.051142],[71.455101,34.966936],[71.358105,34.909601],[71.294129,34.867717],[71.225813,34.779531],[71.113313,34.681604],[71.065668,34.59962],[71.016317,34.554635],[70.965622,34.530373],[70.978851,34.486293],[71.022931,34.431154],[71.095692,34.369427],[71.092436,34.273231],[71.089077,34.204062],[71.091299,34.120269],[71.051612,34.049731],[70.84842,33.981905],[70.654013,33.952295],[70.415733,33.950434],[70.325713,33.961157],[70.253624,33.975963],[69.994725,34.051824],[69.889667,34.007279],[69.868066,33.897647],[70.056634,33.719854],[70.134148,33.620739],[70.219725,33.454677],[70.284165,33.369049],[70.261169,33.289028],[70.090223,33.198103],[69.920105,33.112475],[69.703684,33.094724],[69.567723,33.064158],[69.501577,33.020052],[69.453156,32.832828],[69.404581,32.764279],[69.405407,32.682708],[69.359467,32.590311],[69.289911,32.530573],[69.241438,32.43355],[69.256579,32.249453],[69.279317,31.936811],[69.186919,31.838109],[69.083101,31.738451],[68.973392,31.66737],[68.869006,31.634245],[68.782293,31.646441],[68.713667,31.708039],[68.673256,31.759715],[68.597601,31.802969],[68.520655,31.794158],[68.443244,31.75447],[68.319789,31.767699],[68.213956,31.807387],[68.161039,31.802969],[68.130188,31.763281],[68.017172,31.677963],[67.739876,31.548178],[67.626705,31.538773],[67.578232,31.506475],[67.597559,31.4533],[67.647065,31.409969],[67.733468,31.379248],[67.737861,31.343953],[67.661483,31.312999],[67.59637,31.277678],[67.452865,31.234631],[67.287294,31.217836],[67.115935,31.242925],[67.027723,31.30026],[66.924318,31.305635],[66.829286,31.263673],[66.731359,31.194556],[66.624182,31.046064],[66.595811,31.019967],[66.566821,30.996558],[66.497368,30.96457],[66.397167,30.912196],[66.346886,30.802771],[66.28689,30.607925],[66.300946,30.502996],[66.305442,30.321147],[66.281825,30.193454],[66.238417,30.109635],[66.247202,30.043489],[66.313348,29.968533],[66.28689,29.920009],[66.231234,29.865723],[66.177077,29.835595],[65.961587,29.778906],[65.666256,29.701314],[65.47097,29.651575],[65.180446,29.577626],[65.09549,29.559488],[64.918911,29.55277],[64.827289,29.564165],[64.703575,29.567136],[64.521106,29.564501],[64.393724,29.544321],[64.266083,29.506933],[64.172135,29.460373],[64.117926,29.414277],[64.098755,29.391953],[63.97101,29.43009],[63.567624,29.497993],[62.476528,29.408334],[62.373485,29.425388],[62.001001,29.53042],[61.521444,29.665657],[61.224356,29.749425],[60.843398,29.858695],[61.104157,30.128394],[61.331688,30.363728],[61.559478,30.599373],[61.784219,30.831917],[61.810832,30.913307],[61.814294,31.072548],[61.755022,31.2853],[61.660195,31.382426],[61.346468,31.421648],[61.11072,31.45113],[60.854043,31.483247],[60.820763,31.495184],[60.791618,31.6606],[60.80433,31.734497],[60.787535,31.877176],[60.789913,31.987092],[60.827275,32.167959],[60.829342,32.249401],[60.710434,32.599974],[60.644495,32.794381],[60.576541,32.99486],[60.561968,33.058783],[60.560521,33.137823],[60.718031,33.323548],[60.766865,33.363829],[60.859262,33.456227],[60.917037,33.505242],[60.906908,33.538987],[60.806397,33.558675],[60.654572,33.560407],[60.573853,33.588312],[60.510808,33.638903],[60.4859,33.711896],[60.527035,33.841966],[60.485797,34.094793],[60.570184,34.219643],[60.642686,34.307157],[60.889493,34.31943],[60.803917,34.418003],[60.762627,34.47526],[60.736169,34.491797],[60.726247,34.518255],[60.739476,34.544713],[60.802315,34.554635],[60.84531,34.587708],[60.914763,34.63401],[60.951143,34.653854],[60.957758,34.710078],[60.990831,34.749766],[61.04044,34.799375],[61.080127,34.855599],[61.070206,34.921745],[61.106586,35.00112],[61.123122,35.050729],[61.149581,35.093724],[61.126429,35.156562],[61.106586,35.209479],[61.099971,35.272318],[61.139659,35.288854],[61.189268,35.312005],[61.19919,35.361614],[61.225648,35.424453],[61.245492,35.474062],[61.278565,35.51375],[61.281872,35.553437],[61.262028,35.619583],[61.344711,35.629505],[61.377784,35.593125],[61.421812,35.545789],[61.542735,35.457862],[61.620973,35.432334],[61.719778,35.419415],[61.841011,35.431481],[61.93806,35.447888],[61.983897,35.443703],[62.089678,35.379675],[62.213081,35.289965],[62.252821,35.250226],[62.271166,35.189119],[62.307856,35.170773],[62.386611,35.231235],[62.462834,35.251389],[62.533114,35.239891],[62.610577,35.233147],[62.688143,35.255342],[62.722714,35.271336],[62.858003,35.349677],[62.980218,35.409157],[63.056596,35.445821],[63.084139,35.568088],[63.119279,35.637541],[63.169716,35.678107],[63.150802,35.728259],[63.129976,35.766732],[63.108582,35.818693],[63.129976,35.84621],[63.178862,35.858432],[63.301646,35.858406],[63.516981,35.913131],[63.696609,35.967831],[63.86249,36.01235],[63.938092,36.01974],[64.009664,36.012117],[64.042376,36.025088],[64.051316,36.067644],[64.092243,36.11268],[64.184331,36.148905],[64.358067,36.226058],[64.511029,36.340676],[64.565858,36.427596],[64.6026,36.554539],[64.674327,36.750212],[64.753081,36.964798],[64.782382,37.059289],[64.816333,37.132101],[64.951622,37.193544],[65.089702,37.237934],[65.303591,37.246771],[65.554945,37.251163],[65.608016,37.368417],[65.641244,37.467843],[65.682947,37.519157],[65.743874,37.56086],[65.765009,37.569128],[65.900712,37.508098],[66.108451,37.414771],[66.350297,37.368159],[66.47184,37.344723],[66.522276,37.348496],[66.827684,37.371311],[67.068857,37.334827],[67.195465,37.235195],[67.319747,37.20959],[67.441703,37.257985],[67.517254,37.266666],[67.546503,37.23566],[67.607378,37.222509],[67.699982,37.227263],[67.752898,37.199797],[67.758996,37.172227],[67.766024,37.140111],[67.834444,37.064198],[67.95795,36.972007],[68.067815,36.949812],[68.212095,37.021513],[68.260981,37.01309],[68.284752,37.036344],[68.299532,37.088434],[68.386865,37.137475],[68.546545,37.183467],[68.636979,37.224472],[68.669173,37.258424],[68.723227,37.26801],[68.782086,37.257985],[68.823737,37.270723],[68.838465,37.30284],[68.855363,37.316844],[68.885284,37.328058],[68.911794,37.333949],[68.960473,37.325061],[69.049977,37.266511],[69.180201,37.158275],[69.264847,37.108407],[69.303915,37.116934],[69.353834,37.150058],[69.414502,37.207781],[69.429695,37.290851],[69.399206,37.39932],[69.420083,37.486704],[69.49212,37.553057],[69.625756,37.594036],[69.820886,37.609591],[69.94062,37.600289],[69.984959,37.566157],[70.044696,37.547218],[70.119834,37.543497],[70.188719,37.582487],[70.251454,37.664187],[70.254968,37.76537],[70.199467,37.886008],[70.21466,37.92443],[70.238741,37.941199],[70.313259,37.984814],[70.417749,38.075454],[70.518569,38.191984],[70.615824,38.33443],[70.73592,38.422565],[70.878857,38.456413],[71.05218,38.417862],[71.255889,38.306964],[71.332732,38.17028],[71.282812,38.007913],[71.278523,37.918409],[71.319967,37.901847],[71.389679,37.906317],[71.487761,37.931897],[71.551943,37.933137],[71.582225,37.910089],[71.580365,37.864252],[71.546155,37.795652],[71.505021,37.602925],[71.479648,37.436036],[71.454791,37.271834],[71.43288,37.127553],[71.471845,37.015105],[71.530859,36.84509],[71.597522,36.732926],[71.665631,36.696908],[71.733741,36.684014],[71.802057,36.694298],[71.941945,36.766438],[72.153508,36.900539],[72.358819,36.982937],[72.657405,37.029058],[72.757089,37.172693],[72.89553,37.267545],[73.21117,37.408518],[73.382942,37.462261],[73.481334,37.471667],[73.604634,37.446061],[73.632643,37.437224],[73.657137,37.43048],[73.720596,37.41875],[73.733825,37.375755],[73.717289,37.329453],[73.648818,37.291187],[73.627579,37.261576],[73.653468,37.239381],[73.749638,37.231785],[73.948799,37.283151],[74.077784,37.316224],[74.167081,37.329453],[74.203461,37.372448],[74.259685,37.415443],[74.348982,37.41875],[74.444893,37.395599],[74.524268,37.38237],[74.659402,37.394488],[74.73056,37.357022],[74.830503,37.285916],[74.875358,37.241965],[74.891326,37.23163]]]},"type":"Feature","properties":{"ISO_A2":"AF","NAME":"Afghanistan"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.190845,-5.876023],[14.398687,-5.892663],[14.657896,-5.888839],[14.749467,-5.880106],[15.089343,-5.874473],[15.425033,-5.86884],[15.726927,-5.863828],[16.060188,-5.864913],[16.315263,-5.865636],[16.431483,-5.900208],[16.53711,-5.965785],[16.585169,-6.025265],[16.608062,-6.051517],[16.639533,-6.11451],[16.697307,-6.164275],[16.717822,-6.241428],[16.700976,-6.346021],[16.709399,-6.471698],[16.742989,-6.618459],[16.813062,-6.772558],[16.919412,-6.933943],[16.965766,-7.062101],[16.95202,-7.157082],[16.984731,-7.257438],[17.063796,-7.363116],[17.12157,-7.41903],[17.155057,-7.461353],[17.245025,-7.623307],[17.41132,-7.881948],[17.536015,-8.075837],[17.579578,-8.09904],[17.643399,-8.09072],[17.778791,-8.071393],[17.913047,-8.067673],[18.008751,-8.107567],[18.047199,-8.100797],[18.191479,-8.023799],[18.33483,-8.000338],[18.484691,-7.968557],[18.562723,-7.935898],[18.653415,-7.936001],[18.898309,-7.998116],[18.944456,-8.001475],[19.142687,-8.001475],[19.340866,-7.966645],[19.369908,-7.706558],[19.371665,-7.655088],[19.419311,-7.557316],[19.479928,-7.472205],[19.487421,-7.390711],[19.483803,-7.279452],[19.527625,-7.144473],[19.66033,-7.037141],[19.875201,-6.986343],[19.997415,-6.976473],[20.190065,-6.946294],[20.482192,-6.915857],[20.590092,-6.919939],[20.598722,-6.935132],[20.536917,-7.121787],[20.535832,-7.182765],[20.558363,-7.244467],[20.607766,-7.277695],[20.9109,-7.281467],[21.190366,-7.28493],[21.510863,-7.29666],[21.751055,-7.305445],[21.781648,-7.314695],[21.806091,-7.328648],[21.841592,-7.420994],[21.833634,-7.601655],[21.780097,-7.865411],[21.800871,-8.111908],[21.895852,-8.341144],[21.905413,-8.693371],[21.871875,-8.903487],[21.829448,-9.168432],[21.81317,-9.468724],[21.856682,-9.594194],[21.948666,-9.725556],[22.089122,-9.862809],[22.197746,-10.040627],[22.274537,-10.259115],[22.302443,-10.396678],[22.281669,-10.453315],[22.283167,-10.551552],[22.307042,-10.691285],[22.28048,-10.783993],[22.203482,-10.829468],[22.177902,-10.892306],[22.21666,-11.012661],[22.226168,-11.122008],[22.256657,-11.163711],[22.278775,-11.194148],[22.314948,-11.198593],[22.392928,-11.159474],[22.486101,-11.086713],[22.561032,-11.055811],[22.666503,-11.059738],[22.814711,-11.080254],[23.076246,-11.08785],[23.156757,-11.074776],[23.400153,-10.976436],[23.463922,-10.969304],[23.559937,-10.978606],[23.696414,-11.007597],[23.833925,-11.013694],[23.901156,-10.983154],[23.907306,-10.943414],[23.9287,-10.89148],[23.966475,-10.871791],[23.988335,-11.002791],[24.010039,-11.184743],[24.025542,-11.31564],[24.041406,-11.374137],[24.046677,-11.40535],[24.029314,-11.439198],[24.01469,-11.517695],[23.986784,-11.587251],[23.970971,-11.635827],[23.98389,-11.72502],[23.9734,-11.852971],[23.962341,-11.987847],[23.958879,-12.117813],[23.996499,-12.350667],[23.991332,-12.422136],[23.94472,-12.543782],[23.909321,-12.636128],[23.886532,-12.743253],[23.882398,-12.799012],[23.968026,-12.956935],[23.963013,-12.988458],[23.897487,-12.998224],[23.843175,-13.000963],[23.63585,-13.000963],[23.33871,-13.000963],[23.041519,-13.000963],[22.74438,-13.000963],[22.471011,-13.000963],[22.20958,-13.000963],[21.978897,-13.000963],[21.979,-13.156819],[21.979052,-13.477782],[21.979155,-13.798692],[21.979258,-14.119603],[21.979362,-14.440514],[21.979465,-14.761424],[21.979568,-15.082335],[21.979672,-15.403246],[21.979775,-15.724156],[21.979827,-15.955563],[22.040185,-16.26278],[22.150669,-16.597178],[22.193922,-16.62808],[22.305026,-16.689575],[22.459436,-16.815149],[22.545994,-16.910234],[22.721952,-17.075288],[22.955839,-17.285766],[23.181614,-17.474385],[23.380671,-17.640628],[23.068236,-17.698868],[22.624077,-17.781602],[22.32425,-17.837516],[21.96081,-17.905212],[21.718447,-17.947741],[21.416864,-18.00071],[21.368805,-17.999469],[21.287931,-17.962986],[21.113471,-17.955751],[20.908316,-18.006084],[20.745535,-18.019778],[20.625129,-17.996679],[20.507617,-17.952547],[20.392998,-17.887435],[20.194354,-17.863664],[19.911788,-17.881337],[19.639349,-17.868625],[19.377143,-17.825475],[19.189454,-17.808473],[19.07649,-17.817672],[18.955308,-17.803564],[18.826014,-17.766305],[18.718062,-17.70326],[18.588147,-17.570038],[18.486655,-17.442811],[18.460403,-17.424621],[18.428261,-17.405191],[18.396428,-17.399403],[18.108797,-17.395992],[17.835377,-17.392788],[17.678849,-17.39253],[17.296237,-17.391961],[16.913624,-17.391393],[16.531012,-17.390824],[16.1484,-17.390256],[15.765787,-17.389688],[15.383175,-17.389119],[15.000563,-17.388551],[14.61795,-17.387982],[14.414707,-17.387672],[14.225881,-17.397749],[14.017522,-17.408911],[13.987395,-17.404157],[13.937992,-17.388757],[13.904196,-17.360697],[13.792006,-17.288402],[13.694389,-17.233521],[13.561736,-17.141227],[13.476005,-17.039993],[13.403709,-17.00785],[13.275707,-16.989557],[13.179485,-16.971677],[13.101144,-16.967698],[12.963168,-17.015447],[12.859246,-17.062576],[12.785142,-17.108258],[12.656571,-17.160503],[12.548154,-17.212696],[12.359277,-17.205875],[12.318453,-17.213419],[12.213343,-17.209957],[12.114331,-17.164533],[12.013923,-17.168512],[11.902561,-17.226597],[11.743036,-17.249231],[11.780088,-16.87127],[11.818948,-16.704148],[11.819878,-16.504264],[11.796934,-15.986466],[11.769442,-15.915359],[11.750839,-15.831953],[11.849747,-15.768391],[11.899873,-15.719815],[11.96788,-15.634032],[12.016145,-15.513626],[12.073196,-15.248216],[12.280419,-14.637504],[12.378914,-14.039091],[12.503661,-13.755491],[12.55048,-13.437784],[12.897642,-13.02768],[12.983218,-12.775706],[13.162742,-12.652096],[13.41699,-12.520424],[13.597961,-12.286123],[13.685501,-12.123859],[13.78534,-11.812767],[13.784306,-11.488032],[13.847455,-11.054364],[13.833606,-10.92972],[13.738934,-10.757121],[13.721364,-10.633614],[13.633514,-10.512278],[13.539463,-10.420707],[13.495435,-10.2571],[13.332241,-9.998924],[13.287489,-9.826738],[13.209354,-9.703232],[13.196849,-9.550683],[13.155714,-9.389659],[13.075926,-9.230392],[12.998514,-9.048078],[12.998514,-8.990975],[13.04678,-8.922297],[13.092772,-8.899715],[13.077269,-8.934286],[13.046574,-8.975214],[13.053808,-9.00684],[13.359009,-8.68717],[13.378336,-8.624745],[13.368104,-8.554775],[13.366451,-8.469199],[13.378543,-8.369773],[13.090809,-7.780145],[12.862295,-7.231858],[12.823435,-6.954769],[12.521334,-6.590347],[12.402168,-6.353462],[12.334266,-6.187271],[12.283313,-6.124329],[12.302536,-6.092599],[12.380361,-6.084279],[12.553477,-6.045884],[12.790672,-6.003923],[13.00978,-5.907598],[13.068174,-5.864861],[13.184343,-5.856283],[13.30263,-5.881863],[13.346452,-5.863414],[13.371515,-5.861812],[13.649017,-5.861761],[13.764514,-5.855198],[13.978506,-5.857265],[14.113795,-5.86512],[14.190845,-5.876023]]],[[[12.255304,-5.746471],[12.213704,-5.758718],[12.198977,-5.731898],[12.155465,-5.632679],[12.180063,-5.538628],[12.206521,-5.468245],[12.177169,-5.324791],[12.110507,-5.197202],[12.039917,-5.035196],[12.018316,-5.004294],[12.077537,-4.952101],[12.167092,-4.837689],[12.204351,-4.778623],[12.307911,-4.765549],[12.346668,-4.724104],[12.374056,-4.657752],[12.384598,-4.619098],[12.501491,-4.587523],[12.641689,-4.531144],[12.719462,-4.469753],[12.798217,-4.43053],[12.848136,-4.428928],[12.881054,-4.445155],[12.971384,-4.551763],[13.048072,-4.619201],[13.072722,-4.634807],[13.057322,-4.651034],[12.94751,-4.695269],[12.829636,-4.73661],[12.674762,-4.905385],[12.596162,-4.978404],[12.573527,-4.996542],[12.502731,-5.036902],[12.451468,-5.071525],[12.453225,-5.090593],[12.487383,-5.112711],[12.522368,-5.148936],[12.518905,-5.424578],[12.503764,-5.695776],[12.484541,-5.718772],[12.385994,-5.727764],[12.255304,-5.746471]]]]},"type":"Feature","properties":{"ISO_A2":"AO","NAME":"Angola"}},{"geometry":{"type":"Polygon","coordinates":[[[-63.001214,18.221782],[-63.160015,18.171398],[-63.153349,18.200285],[-63.026018,18.269738],[-62.979561,18.264777],[-63.001214,18.221782]]]},"type":"Feature","properties":{"ISO_A2":"AI","NAME":"Anguilla"}},{"geometry":{"type":"Polygon","coordinates":[[[20.063975,42.547274],[20.103559,42.524666],[20.185776,42.425886],[20.240501,42.338966],[20.348247,42.308813],[20.408295,42.274965],[20.485448,42.223366],[20.52281,42.171483],[20.575416,42.013095],[20.581411,41.917442],[20.566166,41.873698],[20.553144,41.862355],[20.505136,41.706499],[20.516609,41.627072],[20.516195,41.574775],[20.475577,41.554105],[20.448602,41.521264],[20.492424,41.391427],[20.48705,41.336082],[20.488962,41.272623],[20.567872,41.127826],[20.614484,41.083074],[20.656032,41.06168],[20.70931,40.928355],[20.740781,40.905255],[20.870179,40.917916],[20.933482,40.903137],[20.958545,40.871511],[20.964281,40.84991],[20.955755,40.775289],[20.987898,40.717773],[21.031099,40.658656],[21.030892,40.622482],[21.001902,40.56339],[20.950174,40.494402],[20.881651,40.467918],[20.8061,40.445439],[20.77003,40.391902],[20.751685,40.334903],[20.717888,40.292683],[20.697011,40.246381],[20.664972,40.151761],[20.657375,40.117397],[20.606267,40.08267],[20.527047,40.068511],[20.456044,40.065565],[20.408036,40.049442],[20.383697,40.01717],[20.338428,39.991048],[20.311143,39.97942],[20.31135,39.950766],[20.344268,39.89064],[20.38163,39.841806],[20.382456,39.802635],[20.36406,39.791732],[20.306182,39.796693],[20.293831,39.782223],[20.287579,39.738557],[20.272076,39.701195],[20.248201,39.678379],[20.20686,39.653497],[20.131102,39.66161],[20.059789,39.699128],[20.022582,39.710703],[20.001291,39.709411],[19.995607,39.801008],[19.964808,39.872244],[19.851843,40.043577],[19.484527,40.209949],[19.398124,40.28488],[19.360193,40.347693],[19.322263,40.407095],[19.358643,40.408748],[19.394506,40.39371],[19.440498,40.375675],[19.459205,40.405389],[19.439258,40.470243],[19.344587,40.622069],[19.337456,40.663823],[19.383861,40.79074],[19.461272,40.933316],[19.456105,41.106044],[19.480083,41.236372],[19.453418,41.321018],[19.440602,41.424759],[19.497343,41.562709],[19.545815,41.596841],[19.575684,41.640404],[19.577544,41.787475],[19.4683,41.856128],[19.342417,41.869073],[19.345466,41.918863],[19.361123,41.997747],[19.352132,42.024024],[19.361434,42.069112],[19.330841,42.129289],[19.280715,42.172568],[19.328981,42.249256],[19.399571,42.341912],[19.465096,42.41537],[19.544575,42.491954],[19.59744,42.565438],[19.654439,42.628587],[19.703376,42.647966],[19.727819,42.63453],[19.740739,42.606909],[19.737793,42.525157],[19.754484,42.496941],[19.788281,42.476167],[19.859801,42.486348],[19.939073,42.506708],[20.045733,42.54991],[20.063975,42.547274]]]},"type":"Feature","properties":{"ISO_A2":"AL","NAME":"Albania"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[20.61128,60.040677],[20.603425,60.016957],[20.521776,60.011686],[20.487463,60.03277],[20.411189,60.030135],[20.397959,60.040677],[20.429585,60.061735],[20.49015,60.074886],[20.569112,60.069615],[20.61128,60.040677]]],[[[19.662294,60.187179],[19.667461,60.164752],[19.629221,60.170359],[19.599765,60.162685],[19.579922,60.135038],[19.536513,60.14496],[19.519047,60.184595],[19.551396,60.243868],[19.628807,60.24609],[19.662294,60.187179]]],[[[19.989509,60.351149],[20.020205,60.35089],[20.033847,60.359313],[20.087384,60.353422],[20.167896,60.314717],[20.184122,60.293736],[20.239519,60.282987],[20.258846,60.261283],[20.194768,60.193561],[20.15508,60.192295],[20.125521,60.200874],[20.073225,60.193432],[20.042529,60.180642],[20.032297,60.152479],[20.033951,60.093542],[19.799856,60.081759],[19.74601,60.098968],[19.672216,60.23299],[19.686892,60.267639],[19.736501,60.282367],[19.778979,60.285545],[19.785284,60.213353],[19.847709,60.220562],[19.867139,60.268105],[19.871583,60.301617],[19.854633,60.318489],[19.812259,60.331589],[19.787764,60.354042],[19.823007,60.390164],[19.888326,60.405822],[19.94455,60.357505],[19.989509,60.351149]]]]},"type":"Feature","properties":{"ISO_A2":"-99","NAME":"Aland"}},{"geometry":{"type":"Polygon","coordinates":[[[1.706025,42.503297],[1.678482,42.496657],[1.586394,42.455962],[1.534046,42.441699],[1.486194,42.434464],[1.448832,42.437436],[1.428161,42.46131],[1.43028,42.497871],[1.42196,42.530815],[1.414829,42.548411],[1.428316,42.595902],[1.458857,42.621688],[1.501335,42.64272],[1.568153,42.634995],[1.709901,42.604428],[1.73946,42.575929],[1.740184,42.556731],[1.713932,42.525622],[1.706025,42.503297]]]},"type":"Feature","properties":{"ISO_A2":"AD","NAME":"Andorra"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.927799,24.177207],[53.928109,24.143385],[53.82641,24.1531],[53.799125,24.13553],[53.715822,24.145297],[53.634484,24.169791],[53.689674,24.210771],[53.833748,24.258933],[53.893693,24.215163],[53.927799,24.177207]]],[[[52.616871,24.288595],[52.600025,24.281309],[52.582248,24.335233],[52.583592,24.352364],[52.629377,24.376755],[52.657592,24.332624],[52.616871,24.288595]]],[[[53.332177,24.258571],[53.258279,24.252939],[53.190893,24.290921],[53.332487,24.341615],[53.370934,24.364456],[53.412378,24.411017],[53.445348,24.371174],[53.408968,24.307922],[53.382613,24.280844],[53.332177,24.258571]]],[[[54.465441,24.442772],[54.456604,24.423342],[54.428389,24.425099],[54.357747,24.442772],[54.334751,24.471039],[54.378934,24.504577],[54.398365,24.50636],[54.42658,24.471039],[54.465441,24.442772]]],[[[56.18363,25.644921],[56.249518,25.625387],[56.278508,25.627738],[56.297887,25.650683],[56.363516,25.569396],[56.372818,25.018318],[56.387959,24.979173],[56.352974,24.973308],[56.313597,24.931295],[56.267863,24.866725],[56.204714,24.833317],[56.154433,24.795515],[56.106529,24.748696],[56.063896,24.738749],[56.008396,24.798228],[55.970362,24.858948],[55.979715,24.872074],[56.006329,24.876415],[56.016664,24.907731],[56.000644,24.953206],[55.963075,24.970259],[55.915843,24.971784],[55.870678,24.951423],[55.822877,24.91127],[55.795695,24.868095],[55.791561,24.781304],[55.80417,24.68361],[55.803964,24.636248],[55.777557,24.577337],[55.768204,24.490598],[55.786807,24.423522],[55.804015,24.383551],[55.805669,24.34978],[55.760866,24.242681],[55.799726,24.22263],[55.928607,24.215137],[55.966331,24.142635],[55.992169,24.092948],[55.985141,24.063389],[55.894087,24.041427],[55.779159,24.017113],[55.69658,24.024141],[55.547855,23.991352],[55.46848,23.941097],[55.491786,23.909678],[55.51933,23.885493],[55.531629,23.819063],[55.508529,23.724599],[55.46631,23.632925],[55.413807,23.518771],[55.353242,23.387462],[55.270249,23.189954],[55.199866,23.03477],[55.192218,22.922942],[55.194078,22.849975],[55.185862,22.704093],[55.119406,22.623942],[55.104316,22.621462],[55.025045,22.631125],[54.998225,22.634381],[54.922519,22.643631],[54.804852,22.658023],[54.652251,22.676652],[54.471642,22.698718],[54.270104,22.723342],[54.054613,22.749671],[53.832094,22.776827],[53.609576,22.803983],[53.394033,22.830312],[53.192443,22.854936],[53.011886,22.877002],[52.859286,22.895631],[52.741618,22.910023],[52.665912,22.919273],[52.639144,22.922529],[52.555066,22.932812],[52.509591,22.986943],[52.454607,23.052443],[52.399572,23.117969],[52.344537,23.183469],[52.289553,23.248969],[52.234517,23.314469],[52.179482,23.379969],[52.124498,23.445468],[52.069463,23.510968],[52.014428,23.576468],[51.959444,23.641968],[51.904408,23.707494],[51.849373,23.772994],[51.794389,23.838494],[51.739354,23.904019],[51.684318,23.969519],[51.629335,24.035019],[51.592541,24.078841],[51.572181,24.128347],[51.568357,24.257925],[51.568357,24.286192],[51.60546,24.338437],[51.623134,24.301049],[51.664578,24.250432],[51.734755,24.262809],[51.767621,24.254385],[51.791702,24.074758],[51.843172,24.010886],[51.90601,23.985358],[52.118607,23.971095],[52.250899,23.995228],[52.511451,24.112482],[52.648291,24.15465],[53.026355,24.147312],[53.329593,24.098426],[53.801812,24.069487],[53.893383,24.077032],[54.147941,24.171186],[54.304314,24.254282],[54.397021,24.278157],[54.458413,24.358255],[54.498824,24.462719],[54.534687,24.530958],[54.580472,24.563514],[54.624087,24.621288],[54.659021,24.715546],[54.746767,24.810424],[55.098167,25.041624],[55.303529,25.236806],[55.321719,25.2998],[55.433444,25.394471],[55.522844,25.498134],[55.941216,25.793981],[56.025242,25.915989],[56.074645,26.052777],[56.080433,26.062647],[56.116503,26.068177],[56.167456,26.047454],[56.172572,25.945187],[56.154071,25.8485],[56.151953,25.746077],[56.144615,25.690525],[56.18363,25.644921]],[[56.210554,25.213268],[56.240216,25.208823],[56.281816,25.23554],[56.287758,25.278587],[56.27732,25.300859],[56.234273,25.30383],[56.216497,25.266701],[56.210554,25.213268]]]]},"type":"Feature","properties":{"ISO_A2":"AE","NAME":"United Arab Emirates"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.549181,-54.716195],[-64.438826,-54.739397],[-64.220519,-54.721983],[-64.105332,-54.721672],[-64.054948,-54.729889],[-64.032417,-54.742343],[-63.881935,-54.722913],[-63.815402,-54.725083],[-63.832584,-54.767923],[-63.971232,-54.810659],[-64.028334,-54.792624],[-64.32289,-54.796448],[-64.45327,-54.840322],[-64.508718,-54.839908],[-64.637341,-54.90254],[-64.73147,-54.862956],[-64.757334,-54.826576],[-64.689224,-54.774692],[-64.625068,-54.773607],[-64.58135,-54.75273],[-64.549181,-54.716195]]],[[[-68.278204,-52.983949],[-68.240119,-53.081876],[-68.332981,-53.019657],[-68.431141,-53.055314],[-68.479484,-53.113812],[-68.520799,-53.177271],[-68.520515,-53.221919],[-68.488527,-53.260935],[-68.393132,-53.294886],[-68.161157,-53.30641],[-68.144078,-53.319019],[-68.008505,-53.564017],[-67.940266,-53.618742],[-67.861098,-53.662202],[-67.678137,-53.787104],[-67.502593,-53.92198],[-67.294233,-54.049827],[-67.069467,-54.148064],[-66.865112,-54.22253],[-66.670085,-54.313584],[-66.461984,-54.441018],[-66.235667,-54.533467],[-65.992607,-54.598889],[-65.747067,-54.65346],[-65.369286,-54.632169],[-65.251981,-54.638112],[-65.178988,-54.678109],[-65.252342,-54.788852],[-65.346006,-54.87789],[-65.47114,-54.914632],[-65.603303,-54.928171],[-65.722753,-54.926363],[-65.841996,-54.909981],[-65.953772,-54.919283],[-66.060639,-54.956749],[-66.172028,-54.9753],[-66.286749,-54.977781],[-66.398681,-55.009407],[-66.511129,-55.032144],[-66.627685,-55.013231],[-66.930483,-54.924916],[-67.127112,-54.90378],[-67.793272,-54.868692],[-68.00711,-54.848435],[-68.220094,-54.817584],[-68.331689,-54.816344],[-68.491008,-54.836239],[-68.618648,-54.83381],[-68.653246,-54.853654],[-68.64751,-54.627828],[-68.63981,-54.323971],[-68.638234,-54.052979],[-68.636684,-53.788913],[-68.635056,-53.515441],[-68.633454,-53.241866],[-68.631697,-52.949533],[-68.62994,-52.652651],[-68.571184,-52.694974],[-68.338795,-52.900078],[-68.278204,-52.983949]]],[[[-61.875753,-39.171821],[-61.86596,-39.234866],[-61.918024,-39.227424],[-62.041582,-39.16686],[-62.083285,-39.110171],[-62.093026,-39.086244],[-61.966651,-39.112186],[-61.90712,-39.135647],[-61.875753,-39.171821]]],[[[-65.771044,-22.099581],[-65.686166,-22.110226],[-65.518812,-22.094517],[-65.484886,-22.098134],[-65.057832,-22.102785],[-64.992617,-22.109658],[-64.843039,-22.143919],[-64.758651,-22.171308],[-64.700102,-22.185519],[-64.605534,-22.228824],[-64.523653,-22.371606],[-64.477764,-22.485346],[-64.445492,-22.585339],[-64.373972,-22.761039],[-64.325293,-22.827599],[-64.30793,-22.795301],[-64.266382,-22.603323],[-64.209098,-22.491288],[-64.131842,-22.365818],[-63.976141,-22.072554],[-63.9217,-22.028578],[-63.861006,-22.007184],[-63.818657,-22.005427],[-63.775559,-22.027234],[-63.716958,-22.027492],[-63.675358,-22.00429],[-63.267166,-22.000569],[-62.843342,-21.997313],[-62.834299,-21.999122],[-62.815101,-22.049558],[-62.744563,-22.159836],[-62.665265,-22.218023],[-62.651002,-22.233733],[-62.625707,-22.261535],[-62.625965,-22.290474],[-62.541552,-22.349643],[-62.372492,-22.439147],[-62.214181,-22.612418],[-62.066594,-22.869456],[-61.928023,-23.059316],[-61.798522,-23.181996],[-61.679511,-23.268709],[-61.571017,-23.319403],[-61.513036,-23.360486],[-61.505517,-23.392009],[-61.403973,-23.457483],[-61.208377,-23.557063],[-61.084716,-23.656489],[-61.032936,-23.755707],[-60.839821,-23.85813],[-60.505345,-23.963602],[-60.262182,-24.013986],[-60.110305,-24.009232],[-59.892463,-24.093568],[-59.608578,-24.266839],[-59.435411,-24.386987],[-59.372934,-24.453959],[-59.18726,-24.562273],[-58.724007,-24.786652],[-58.519652,-24.842876],[-58.422811,-24.894139],[-58.365398,-24.959251],[-58.308709,-24.979147],[-58.252795,-24.953774],[-58.136472,-24.977131],[-57.959816,-25.049168],[-57.821659,-25.136398],[-57.643892,-25.328428],[-57.587151,-25.405116],[-57.563122,-25.473742],[-57.5717,-25.534152],[-57.625831,-25.598696],[-57.725463,-25.667219],[-57.754815,-25.697087],[-57.757063,-25.726026],[-57.782488,-25.783697],[-57.865222,-25.906945],[-57.886203,-25.964255],[-57.890647,-26.006578],[-57.943099,-26.052983],[-58.082392,-26.138559],[-58.111124,-26.18021],[-58.118075,-26.224911],[-58.135619,-26.251472],[-58.154714,-26.262583],[-58.181482,-26.307386],[-58.203031,-26.38149],[-58.205201,-26.476575],[-58.187941,-26.592537],[-58.1913,-26.630002],[-58.222048,-26.649949],[-58.23936,-26.676873],[-58.245561,-26.73103],[-58.271683,-26.770717],[-58.317701,-26.795935],[-58.334651,-26.824926],[-58.322559,-26.857637],[-58.356432,-26.889986],[-58.436298,-26.921974],[-58.485236,-26.968431],[-58.503245,-27.029513],[-58.547713,-27.084031],[-58.618613,-27.13209],[-58.641764,-27.196117],[-58.604841,-27.314353],[-58.168253,-27.273425],[-57.812228,-27.316627],[-57.391272,-27.430418],[-57.111831,-27.470106],[-56.973959,-27.435793],[-56.871743,-27.44065],[-56.805183,-27.484679],[-56.715706,-27.493774],[-56.603361,-27.467832],[-56.510524,-27.487883],[-56.437144,-27.553822],[-56.370481,-27.537389],[-56.310537,-27.43879],[-56.241729,-27.366805],[-56.164086,-27.321484],[-56.067347,-27.307739],[-55.951489,-27.325722],[-55.85904,-27.361947],[-55.79,-27.416362],[-55.71463,-27.414812],[-55.632929,-27.357141],[-55.59381,-27.288101],[-55.597247,-27.20759],[-55.564897,-27.150022],[-55.49671,-27.115296],[-55.450641,-27.068373],[-55.426663,-27.009255],[-55.345789,-26.973185],[-55.207994,-26.960163],[-55.135931,-26.931121],[-55.129627,-26.886059],[-55.088854,-26.844511],[-55.013613,-26.806684],[-54.962144,-26.759348],[-54.934471,-26.702504],[-54.888918,-26.666796],[-54.825511,-26.652223],[-54.755102,-26.532902],[-54.677716,-26.308833],[-54.631931,-26.005803],[-54.615886,-25.576061],[-54.537828,-25.576475],[-54.5015,-25.608307],[-54.443932,-25.624947],[-54.383367,-25.588619],[-54.331872,-25.571927],[-54.250094,-25.570429],[-54.206169,-25.529553],[-54.15457,-25.523093],[-54.119223,-25.54521],[-54.085014,-25.571927],[-54.012305,-25.577973],[-53.954763,-25.647685],[-53.891149,-25.668872],[-53.8642,-25.748867],[-53.823247,-25.959552],[-53.746921,-26.083731],[-53.671266,-26.225117],[-53.668527,-26.288214],[-53.710928,-26.351828],[-53.718137,-26.443192],[-53.744569,-26.666486],[-53.753328,-26.7486],[-53.727128,-26.80472],[-53.71731,-26.882855],[-53.758522,-26.978353],[-53.838155,-27.121135],[-53.915618,-27.159582],[-53.935333,-27.161184],[-54.040133,-27.243763],[-54.113823,-27.274666],[-54.156456,-27.253788],[-54.205239,-27.2896],[-54.260145,-27.382049],[-54.327014,-27.423494],[-54.448118,-27.446438],[-54.484343,-27.45729],[-54.554933,-27.454138],[-54.61542,-27.477186],[-54.665857,-27.526537],[-54.719729,-27.544933],[-54.77709,-27.532531],[-54.829077,-27.550618],[-54.875741,-27.599245],[-54.902767,-27.651904],[-54.910209,-27.708541],[-54.955891,-27.747143],[-55.039917,-27.767814],[-55.06901,-27.796288],[-55.063869,-27.835923],[-55.101515,-27.866774],[-55.243728,-27.898865],[-55.346513,-27.955916],[-55.409816,-28.037823],[-55.476686,-28.089345],[-55.58239,-28.120971],[-55.725508,-28.204118],[-55.745997,-28.255484],[-55.691531,-28.30282],[-55.671971,-28.344885],[-55.687267,-28.381678],[-55.731967,-28.386639],[-55.806045,-28.359767],[-55.858885,-28.354186],[-55.890511,-28.369999],[-55.905419,-28.399662],[-55.903662,-28.443276],[-55.930146,-28.472887],[-55.984923,-28.488597],[-56.019624,-28.524615],[-56.034223,-28.580839],[-56.102875,-28.651739],[-56.225555,-28.737212],[-56.322345,-28.85245],[-56.393245,-28.997248],[-56.476005,-29.092487],[-56.570676,-29.138066],[-56.63584,-29.203023],[-56.671522,-29.287359],[-56.772446,-29.417894],[-56.938612,-29.594834],[-57.089352,-29.71617],[-57.224641,-29.782109],[-57.300709,-29.856524],[-57.317504,-29.939413],[-57.405224,-30.033929],[-57.563871,-30.139969],[-57.608907,-30.187821],[-57.645752,-30.226992],[-57.650894,-30.294998],[-57.712725,-30.38445],[-57.831219,-30.495244],[-57.872509,-30.591052],[-57.818558,-30.711975],[-57.8106,-30.858633],[-57.834087,-30.917441],[-57.886306,-30.937388],[-57.898295,-30.975215],[-57.87008,-31.031025],[-57.868426,-31.104406],[-57.893334,-31.195357],[-57.94837,-31.299433],[-58.033429,-31.416583],[-58.053841,-31.494873],[-58.009658,-31.534354],[-57.987979,-31.576212],[-57.988884,-31.620602],[-58.006996,-31.684939],[-58.042343,-31.769275],[-58.095854,-31.831803],[-58.167503,-31.87268],[-58.189027,-31.924253],[-58.160398,-31.986574],[-58.156367,-32.051532],[-58.176986,-32.119021],[-58.16479,-32.184857],[-58.119754,-32.248936],[-58.123036,-32.321903],[-58.201145,-32.471661],[-58.219955,-32.563955],[-58.171017,-32.95928],[-58.200809,-33.014677],[-58.250392,-33.078291],[-58.308916,-33.082942],[-58.375966,-33.071831],[-58.424464,-33.111519],[-58.454824,-33.285978],[-58.547222,-33.663526],[-58.530582,-33.75303],[-58.456607,-33.898344],[-58.429477,-33.990948],[-58.409039,-34.060711],[-58.392477,-34.193003],[-58.435497,-34.252534],[-58.475262,-34.262973],[-58.525518,-34.296201],[-58.466193,-34.45738],[-58.418935,-34.531587],[-58.283362,-34.683516],[-57.763549,-34.894562],[-57.547825,-35.018999],[-57.30368,-35.188498],[-57.170639,-35.362544],[-57.158883,-35.505998],[-57.353884,-35.720352],[-57.375459,-35.900289],[-57.335461,-36.026793],[-57.264975,-36.144098],[-57.076175,-36.296751],[-56.937165,-36.352561],[-56.74945,-36.346463],[-56.717385,-36.389045],[-56.698084,-36.426458],[-56.668241,-36.735277],[-56.672039,-36.851239],[-56.727126,-36.957692],[-57.087724,-37.446344],[-57.395742,-37.744621],[-57.507259,-37.909314],[-57.546947,-38.085685],[-57.645623,-38.169608],[-58.179182,-38.435845],[-59.00722,-38.67335],[-59.676249,-38.79665],[-59.828332,-38.838198],[-60.903951,-38.9739],[-61.112233,-38.992917],[-61.382863,-38.980824],[-61.602565,-38.998808],[-61.847899,-38.961808],[-62.066904,-38.919123],[-62.189248,-38.813289],[-62.334768,-38.80006],[-62.374456,-38.852977],[-62.303608,-38.988059],[-62.338102,-39.150633],[-62.295081,-39.243237],[-62.209091,-39.261841],[-62.126435,-39.309797],[-62.053674,-39.373875],[-62.179352,-39.38049],[-62.130569,-39.431546],[-62.0768,-39.461519],[-62.082768,-39.568386],[-62.131525,-39.825424],[-62.253972,-39.880459],[-62.286942,-39.895291],[-62.323968,-39.950688],[-62.40187,-40.196564],[-62.427011,-40.355934],[-62.393602,-40.45877],[-62.24635,-40.674571],[-62.301851,-40.814614],[-62.395049,-40.890785],[-62.797996,-41.047158],[-62.95902,-41.109687],[-63.212829,-41.152475],[-63.621796,-41.159813],[-63.773001,-41.149994],[-64.123186,-41.007781],[-64.383455,-40.922411],[-64.621502,-40.854509],[-64.852961,-40.813788],[-64.819862,-40.79322],[-64.804411,-40.75653],[-64.869472,-40.735859],[-64.916885,-40.731312],[-65.069459,-40.805313],[-65.133383,-40.880657],[-65.151883,-40.947009],[-65.154958,-41.105656],[-65.12788,-41.238775],[-65.018274,-41.56692],[-65.007008,-41.7451],[-65.059072,-41.969893],[-64.986364,-42.102081],[-64.898049,-42.161819],[-64.699508,-42.220833],[-64.622458,-42.261038],[-64.537735,-42.25463],[-64.511742,-42.270236],[-64.524196,-42.299175],[-64.574115,-42.355967],[-64.570989,-42.415964],[-64.420429,-42.43374],[-64.264599,-42.421648],[-64.100862,-42.395086],[-64.062182,-42.353383],[-64.061175,-42.266102],[-64.252946,-42.250754],[-64.228503,-42.21825],[-64.083266,-42.1828],[-63.89289,-42.124612],[-63.795558,-42.113863],[-63.729464,-42.152931],[-63.684738,-42.188691],[-63.629857,-42.282742],[-63.59588,-42.406559],[-63.594407,-42.555593],[-63.617352,-42.695843],[-63.644482,-42.745711],[-63.692489,-42.805242],[-64.034742,-42.881258],[-64.130654,-42.861414],[-64.219951,-42.755581],[-64.247959,-42.64613],[-64.324285,-42.572233],[-64.487841,-42.513425],[-64.650467,-42.531409],[-64.811956,-42.633211],[-64.970706,-42.666284],[-65.026904,-42.758888],[-64.629228,-42.908957],[-64.441539,-42.950711],[-64.380354,-42.949264],[-64.319143,-42.968901],[-64.375703,-43.024557],[-64.432237,-43.059129],[-64.715217,-43.135506],[-64.839913,-43.188836],[-64.985537,-43.293533],[-65.189736,-43.522046],[-65.252342,-43.571862],[-65.283607,-43.629946],[-65.304716,-43.787456],[-65.238571,-44.048732],[-65.308411,-44.158183],[-65.26552,-44.279726],[-65.289859,-44.360754],[-65.361276,-44.477337],[-65.647589,-44.66146],[-65.69831,-44.79618],[-65.599091,-44.875555],[-65.605706,-44.945008],[-65.638779,-45.007847],[-65.757738,-45.007123],[-66.190166,-44.964749],[-66.347753,-45.033633],[-66.49361,-45.117556],[-66.533453,-45.15776],[-66.585077,-45.182927],[-66.882475,-45.227678],[-66.941386,-45.257341],[-67.257595,-45.577218],[-67.393013,-45.775552],[-67.556646,-45.970165],[-67.599563,-46.052538],[-67.608917,-46.166742],[-67.586102,-46.269579],[-67.563364,-46.34544],[-67.506468,-46.442798],[-67.386631,-46.553799],[-66.776849,-47.005864],[-66.650396,-47.045345],[-65.99855,-47.093714],[-65.853675,-47.15676],[-65.769107,-47.256702],[-65.738101,-47.344965],[-65.775411,-47.568311],[-65.814298,-47.638177],[-65.886335,-47.701532],[-66.04064,-47.783285],[-66.225254,-47.826744],[-66.172338,-47.857647],[-66.097381,-47.853203],[-65.934213,-47.826744],[-65.863674,-47.853203],[-65.810086,-47.941104],[-65.912173,-47.976709],[-65.943411,-48.019343],[-66.017179,-48.084248],[-66.393358,-48.342424],[-66.596265,-48.419525],[-66.782792,-48.522981],[-67.033086,-48.627781],[-67.130987,-48.687932],[-67.263331,-48.814229],[-67.466316,-48.951792],[-67.684881,-49.246709],[-67.693692,-49.304019],[-67.661963,-49.342208],[-67.783506,-49.85892],[-67.825984,-49.919588],[-67.913937,-49.984494],[-68.145654,-50.091361],[-68.257198,-50.10459],[-68.40463,-50.042682],[-68.487907,-49.977983],[-68.569297,-49.866982],[-68.667586,-49.752518],[-68.672676,-49.793498],[-68.638466,-49.862951],[-68.661643,-49.935711],[-68.912997,-49.968784],[-68.979608,-50.002994],[-68.752671,-49.987698],[-68.597926,-50.009505],[-68.532581,-50.03617],[-68.473722,-50.091412],[-68.421865,-50.15792],[-68.465402,-50.194765],[-68.589374,-50.225151],[-68.749855,-50.281117],[-68.939456,-50.382299],[-69.044772,-50.499088],[-69.09017,-50.583114],[-69.141381,-50.752509],[-69.154998,-50.86444],[-69.235148,-50.950636],[-69.358603,-51.028099],[-69.351756,-51.045824],[-69.267963,-51.006137],[-69.201042,-50.993631],[-69.1435,-51.096984],[-69.065727,-51.303483],[-69.029579,-51.446524],[-69.03529,-51.489002],[-69.058286,-51.547189],[-69.218069,-51.561194],[-69.360567,-51.559488],[-69.465444,-51.5845],[-69.409091,-51.610286],[-69.313051,-51.601036],[-69.180113,-51.662324],[-69.032525,-51.636228],[-68.96532,-51.677155],[-68.916821,-51.714621],[-68.69084,-52.013104],[-68.493488,-52.197589],[-68.393727,-52.307039],[-68.443362,-52.356649],[-68.460984,-52.290451],[-68.589787,-52.273346],[-68.71518,-52.255518],[-68.924547,-52.208131],[-69.206209,-52.136146],[-69.48844,-52.136146],[-69.712613,-52.075426],[-69.960272,-52.008246],[-70.482876,-52.002252],[-70.943184,-51.998118],[-71.414731,-51.993984],[-71.716573,-51.991296],[-71.91868,-51.989539],[-71.971105,-51.964166],[-71.953458,-51.880347],[-72.02844,-51.818646],[-72.136961,-51.744025],[-72.268994,-51.691108],[-72.33452,-51.620363],[-72.407668,-51.540833],[-72.366404,-51.470295],[-72.303204,-51.298936],[-72.301834,-51.223333],[-72.359169,-51.170416],[-72.376791,-51.095434],[-72.359169,-51.060139],[-72.30739,-51.033422],[-72.276332,-50.910226],[-72.30062,-50.789509],[-72.340256,-50.681867],[-72.392552,-50.634273],[-72.460145,-50.611742],[-72.509832,-50.607505],[-72.620394,-50.647709],[-72.803587,-50.637684],[-72.865909,-50.653135],[-72.955541,-50.69644],[-73.082355,-50.760312],[-73.152919,-50.738246],[-73.17452,-50.669982],[-73.221649,-50.610709],[-73.251621,-50.558516],[-73.274152,-50.472526],[-73.311721,-50.361939],[-73.386626,-50.231146],[-73.50127,-50.125312],[-73.507704,-50.030279],[-73.528917,-49.910907],[-73.470419,-49.794583],[-73.504526,-49.698],[-73.576253,-49.582916],[-73.554187,-49.463854],[-73.483649,-49.397708],[-73.461583,-49.313889],[-73.135272,-49.30066],[-73.148889,-49.188005],[-73.094577,-49.096848],[-73.03365,-49.014321],[-72.981741,-48.976803],[-72.865443,-48.943989],[-72.728475,-48.896292],[-72.651296,-48.841618],[-72.614399,-48.792835],[-72.591765,-48.729687],[-72.585926,-48.662507],[-72.608405,-48.519364],[-72.582877,-48.475439],[-72.498153,-48.417354],[-72.354751,-48.365833],[-72.293024,-48.229097],[-72.328293,-48.110035],[-72.407926,-48.01588],[-72.509083,-47.973351],[-72.517919,-47.876354],[-72.472212,-47.784215],[-72.412577,-47.685513],[-72.341522,-47.572083],[-72.34594,-47.492708],[-72.282895,-47.446251],[-72.103397,-47.342743],[-72.041669,-47.241354],[-71.978521,-47.213862],[-71.904959,-47.201666],[-71.900541,-47.144306],[-71.954233,-47.087461],[-71.962966,-47.015993],[-71.956662,-46.936825],[-71.940229,-46.83125],[-71.856461,-46.791562],[-71.732696,-46.705831],[-71.699675,-46.651364],[-71.695205,-46.578397],[-71.731301,-46.427863],[-71.7621,-46.319808],[-71.777655,-46.280017],[-71.834137,-46.20674],[-71.875659,-46.160593],[-71.809281,-46.102715],[-71.684482,-46.041892],[-71.631565,-45.953681],[-71.680064,-45.87875],[-71.750628,-45.839062],[-71.772668,-45.724392],[-71.746209,-45.578871],[-71.693293,-45.534791],[-71.508084,-45.512726],[-71.490437,-45.437743],[-71.349334,-45.33191],[-71.353753,-45.230521],[-71.443463,-45.16825],[-71.531287,-45.067895],[-71.59627,-44.979166],[-71.812355,-44.930642],[-72.041669,-44.904184],[-72.07252,-44.820416],[-72.063709,-44.771892],[-71.957049,-44.791478],[-71.782822,-44.774373],[-71.651667,-44.770445],[-71.560407,-44.76197],[-71.455168,-44.749826],[-71.358145,-44.785121],[-71.261149,-44.763056],[-71.221461,-44.630764],[-71.159708,-44.560226],[-71.150897,-44.49408],[-71.212624,-44.441163],[-71.325718,-44.424937],[-71.820003,-44.383079],[-71.835067,-44.330162],[-71.830778,-44.241382],[-71.812123,-44.150741],[-71.812355,-44.106041],[-71.767216,-44.066716],[-71.71616,-43.984447],[-71.680064,-43.929618],[-71.715953,-43.858356],[-71.794708,-43.753246],[-71.737399,-43.704722],[-71.732774,-43.646741],[-71.750628,-43.590104],[-71.832432,-43.527162],[-71.904959,-43.440139],[-71.904959,-43.347535],[-71.820236,-43.322988],[-71.763857,-43.294618],[-71.750628,-43.237309],[-71.781479,-43.166771],[-71.898577,-43.145273],[-72.054692,-43.101917],[-72.102389,-43.06564],[-72.146443,-42.990037],[-72.113629,-42.776768],[-72.130036,-42.648249],[-72.143705,-42.577194],[-72.105438,-42.522469],[-72.053478,-42.473273],[-72.078101,-42.358499],[-72.124584,-42.298348],[-72.108177,-42.251891],[-72.064407,-42.205382],[-72.026141,-42.14797],[-71.993326,-42.134275],[-71.944104,-42.16709],[-71.860802,-42.147815],[-71.760911,-42.101461],[-71.749982,-42.046787],[-71.770006,-41.968549],[-71.844472,-41.771972],[-71.91129,-41.650429],[-71.897621,-41.606659],[-71.871137,-41.560512],[-71.89217,-41.39339],[-71.885607,-41.292363],[-71.880697,-40.994603],[-71.873023,-40.893008],[-71.941366,-40.789138],[-71.932115,-40.691676],[-71.883772,-40.620569],[-71.838529,-40.5244],[-71.804656,-40.439133],[-71.769128,-40.400841],[-71.708977,-40.381721],[-71.695308,-40.335212],[-71.722645,-40.29971],[-71.800573,-40.244313],[-71.818324,-40.176669],[-71.801943,-40.124682],[-71.76365,-40.094607],[-71.704403,-40.094968],[-71.659755,-40.020813],[-71.64712,-39.92919],[-71.63787,-39.886816],[-71.672054,-39.833279],[-71.696833,-39.706982],[-71.719906,-39.635255],[-71.692569,-39.605179],[-71.654277,-39.594275],[-71.58702,-39.611122],[-71.539452,-39.60244],[-71.531236,-39.5642],[-71.525784,-39.523169],[-71.507749,-39.495212],[-71.465374,-39.402297],[-71.420028,-39.287214],[-71.409357,-39.205927],[-71.425583,-38.985682],[-71.401554,-38.935039],[-71.353184,-38.88884],[-71.285772,-38.845432],[-71.197277,-38.809414],[-71.087102,-38.757479],[-70.951607,-38.738462],[-70.896907,-38.681049],[-70.858641,-38.604517],[-70.847686,-38.541626],[-70.899646,-38.497857],[-70.967988,-38.445922],[-71.000519,-38.314819],[-71.018166,-38.193896],[-71.028165,-38.041244],[-71.096197,-37.909985],[-71.167588,-37.762346],[-71.186735,-37.631088],[-71.16286,-37.559206],[-71.1348,-37.445156],[-71.164875,-37.393221],[-71.200403,-37.300255],[-71.163506,-37.227443],[-71.118393,-37.114323],[-71.123844,-37.056911],[-71.159398,-36.920227],[-71.192212,-36.843642],[-71.159398,-36.761632],[-71.107437,-36.685047],[-71.066432,-36.644068],[-71.073227,-36.578025],[-71.055502,-36.523713],[-70.977936,-36.487282],[-70.905124,-36.419896],[-70.853163,-36.411679],[-70.790273,-36.411679],[-70.749268,-36.392559],[-70.73286,-36.340572],[-70.721931,-36.28316],[-70.62186,-36.211898],[-70.563362,-36.146424],[-70.456727,-36.13273],[-70.404767,-36.061674],[-70.403656,-35.970517],[-70.415722,-35.878482],[-70.380169,-35.771821],[-70.419753,-35.609144],[-70.415722,-35.522999],[-70.456727,-35.451944],[-70.448511,-35.37536],[-70.470396,-35.326164],[-70.53233,-35.30787],[-70.555171,-35.246841],[-70.52507,-35.216765],[-70.466572,-35.193665],[-70.393191,-35.146847],[-70.33813,-34.921744],[-70.312111,-34.854978],[-70.286764,-34.774518],[-70.289942,-34.732867],[-70.254698,-34.672664],[-70.210696,-34.581196],[-70.141269,-34.49283],[-70.101478,-34.432058],[-70.063005,-34.350048],[-70.052049,-34.3008],[-70.002853,-34.276254],[-69.946345,-34.269898],[-69.879812,-34.254395],[-69.852449,-34.224319],[-69.857358,-34.180446],[-69.861544,-34.083552],[-69.881491,-33.929763],[-69.894307,-33.731326],[-69.882551,-33.600946],[-69.838781,-33.469688],[-69.797775,-33.398633],[-69.808705,-33.343908],[-69.819635,-33.283756],[-69.896193,-33.250942],[-69.969031,-33.279415],[-70.019829,-33.271509],[-70.084864,-33.201746],[-70.103984,-33.1279],[-70.093055,-33.026769],[-70.042127,-32.963724],[-70.021974,-32.884556],[-70.052049,-32.859958],[-70.11618,-32.807455],[-70.176925,-32.62607],[-70.169613,-32.471713],[-70.229765,-32.430682],[-70.257799,-32.309914],[-70.319992,-32.266661],[-70.344615,-32.176434],[-70.363762,-32.083468],[-70.355545,-32.042437],[-70.290924,-32.031068],[-70.254388,-31.957687],[-70.281725,-31.916656],[-70.330947,-31.881103],[-70.393837,-31.883842],[-70.450139,-31.84188],[-70.525638,-31.666387],[-70.585221,-31.569442],[-70.566411,-31.4279],[-70.55468,-31.317416],[-70.529049,-31.222848],[-70.519592,-31.148383],[-70.473109,-31.112829],[-70.429365,-31.129262],[-70.38836,-31.121046],[-70.35061,-31.060429],[-70.309062,-31.022602],[-70.311801,-30.992527],[-70.336399,-30.959712],[-70.348129,-30.902351],[-70.319242,-30.833932],[-70.269375,-30.677249],[-70.193927,-30.504701],[-70.161448,-30.440209],[-70.169639,-30.385535],[-70.153232,-30.360937],[-70.101995,-30.388326],[-69.95637,-30.358198],[-69.907149,-30.281614],[-69.888028,-30.213298],[-69.844284,-30.175005],[-69.863405,-30.120332],[-69.923556,-30.103899],[-69.959962,-30.07837],[-69.945441,-30.01641],[-69.924124,-29.874042],[-69.927638,-29.76919],[-69.982622,-29.545431],[-70.026805,-29.323998],[-69.995593,-29.249997],[-69.900327,-29.148866],[-69.827877,-29.103185],[-69.814829,-29.045462],[-69.743179,-28.783928],[-69.734911,-28.641094],[-69.687911,-28.562029],[-69.656905,-28.413614],[-69.527146,-28.285663],[-69.48888,-28.200862],[-69.436893,-28.192697],[-69.409582,-28.165361],[-69.340723,-28.070793],[-69.25122,-27.973641],[-69.174428,-27.924703],[-69.155282,-27.848171],[-69.118489,-27.743578],[-69.042188,-27.569996],[-68.999426,-27.44897],[-68.942014,-27.4052],[-68.875093,-27.246709],[-68.846335,-27.153691],[-68.769776,-27.115399],[-68.709625,-27.104495],[-68.652212,-27.148368],[-68.592061,-27.140049],[-68.537361,-27.085323],[-68.40538,-27.048116],[-68.345978,-27.027911],[-68.318641,-26.973237],[-68.318641,-26.877532],[-68.373315,-26.806425],[-68.485091,-26.67031],[-68.581157,-26.518329],[-68.591596,-26.470374],[-68.592216,-26.418077],[-68.575757,-26.351983],[-68.529842,-26.277],[-68.414501,-26.153752],[-68.426774,-26.065385],[-68.510851,-25.740961],[-68.541909,-25.651612],[-68.600277,-25.485679],[-68.592061,-25.42005],[-68.54085,-25.236754],[-68.496356,-25.163012],[-68.430727,-25.149317],[-68.3952,-25.124719],[-68.384244,-25.091905],[-68.428014,-25.050925],[-68.447134,-24.998939],[-68.46628,-24.925145],[-68.527052,-24.899255],[-68.561985,-24.837657],[-68.561985,-24.747378],[-68.507286,-24.629814],[-68.447134,-24.597],[-68.422536,-24.545065],[-68.358122,-24.497264],[-68.299495,-24.460315],[-68.250273,-24.391948],[-68.047391,-24.308335],[-67.886213,-24.243378],[-67.571787,-24.118993],[-67.356193,-24.033778],[-67.3356,-23.974815],[-67.319115,-23.934663],[-67.219121,-23.633958],[-67.089775,-23.245092],[-67.008773,-23.001335],[-67.194885,-22.821707],[-67.161916,-22.773803],[-67.055411,-22.650917],[-67.033551,-22.552267],[-66.991125,-22.50984],[-66.80031,-22.40964],[-66.767469,-22.34308],[-66.750649,-22.269338],[-66.711736,-22.216318],[-66.639002,-22.205363],[-66.506969,-22.158389],[-66.365168,-22.11374],[-66.322458,-22.053124],[-66.282124,-21.947446],[-66.247605,-21.83045],[-66.220164,-21.802545],[-66.174663,-21.805645],[-66.09857,-21.835101],[-66.058624,-21.879439],[-65.860186,-22.019689],[-65.771044,-22.099581]]]]},"type":"Feature","properties":{"ISO_A2":"AR","NAME":"Argentina"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[45.552393,40.616074],[45.514359,40.599538],[45.478806,40.606979],[45.478806,40.64832],[45.504437,40.664857],[45.534203,40.66403],[45.562315,40.649147],[45.552393,40.616074]]],[[[45.084721,41.19547],[45.152314,41.175161],[45.188591,41.147411],[45.190193,41.126353],[45.070665,41.100825],[45.062604,41.088138],[45.070459,41.075581],[45.106115,41.069354],[45.273392,41.006257],[45.368942,41.004888],[45.419171,40.985716],[45.444234,40.947992],[45.523971,40.896729],[45.587533,40.846913],[45.59146,40.829756],[45.579368,40.804486],[45.401343,40.707154],[45.378967,40.67359],[45.376176,40.638088],[45.454415,40.532358],[45.569498,40.416861],[45.735689,40.329115],[45.964616,40.233772],[45.967561,40.174809],[45.931285,40.104684],[45.900124,40.05709],[45.885964,40.024844],[45.858111,40.011279],[45.630166,40.014199],[45.596008,40.002856],[45.58097,39.989032],[45.579782,39.97756],[45.661792,39.956192],[45.78964,39.881106],[45.863175,39.808371],[45.939966,39.776539],[46.025904,39.718532],[46.094789,39.664478],[46.202069,39.594483],[46.321648,39.617453],[46.481432,39.555157],[46.488047,39.512834],[46.478125,39.47511],[46.377666,39.433872],[46.36516,39.416793],[46.365263,39.402505],[46.378389,39.382273],[46.437249,39.348555],[46.50665,39.298558],[46.584733,39.223678],[46.549955,39.201432],[46.477091,39.198176],[46.42035,39.207375],[46.4003,39.192182],[46.401437,39.167687],[46.475437,39.110869],[46.489855,39.06945],[46.486755,38.997465],[46.49063,38.906669],[46.317721,38.912664],[46.170133,38.869049],[46.114426,38.877782],[46.077477,38.954884],[46.045903,39.017515],[45.951852,39.1781],[45.977432,39.243884],[45.92498,39.281944],[45.798683,39.350182],[45.766333,39.378449],[45.784162,39.417233],[45.796512,39.488133],[45.784472,39.545597],[45.75052,39.56296],[45.687424,39.564045],[45.610787,39.549783],[45.456843,39.494463],[45.349873,39.529887],[45.288326,39.56557],[45.252566,39.595465],[45.172571,39.570608],[45.152831,39.582675],[45.148593,39.656572],[45.124564,39.696337],[45.076453,39.74282],[45.03165,39.765118],[44.867164,39.719126],[44.768255,39.70352],[44.733838,39.746463],[44.560464,39.887591],[44.399595,39.99575],[44.289214,40.040399],[44.178058,40.035748],[44.005356,40.014121],[43.942052,40.023165],[43.791674,40.070242],[43.666255,40.126362],[43.683308,40.149643],[43.70987,40.166489],[43.678089,40.239301],[43.608429,40.356607],[43.615767,40.393323],[43.593753,40.444043],[43.569362,40.482387],[43.667857,40.574061],[43.712867,40.647778],[43.722634,40.71953],[43.696486,40.794125],[43.631683,40.929027],[43.591686,40.968197],[43.517478,41.004836],[43.45526,41.064677],[43.439447,41.107104],[43.49195,41.115527],[43.645016,41.116664],[43.793224,41.131081],[43.909186,41.158987],[44.077238,41.182499],[44.146536,41.203377],[44.227358,41.21335],[44.473027,41.191],[44.564856,41.208209],[44.841377,41.211361],[44.848508,41.220172],[44.81094,41.248594],[44.811353,41.259368],[44.975891,41.277481],[45.001419,41.290968],[45.022916,41.2457],[45.084721,41.19547]],[[44.969018,41.027238],[45.002039,41.015817],[45.023588,41.027238],[45.028652,41.053877],[45.021056,41.077984],[44.994391,41.085606],[44.961421,41.07925],[44.958889,41.052611],[44.969018,41.027238]]]]},"type":"Feature","properties":{"ISO_A2":"AM","NAME":"Armenia"}},{"geometry":{"type":"Polygon","coordinates":[[[-170.726292,-14.351217],[-170.769261,-14.359795],[-170.820524,-14.312149],[-170.72084,-14.275976],[-170.689137,-14.257476],[-170.56811,-14.266777],[-170.640457,-14.28228],[-170.726292,-14.351217]]]},"type":"Feature","properties":{"ISO_A2":"AS","NAME":"American Samoa"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-161.993776,-83.118699],[-162.30492,-83.141747],[-163.046554,-83.096788],[-163.242149,-83.059633],[-163.348396,-83.021547],[-163.552079,-82.987699],[-163.60174,-82.968527],[-163.602179,-82.927393],[-163.634348,-82.902278],[-163.70393,-82.879282],[-163.735323,-82.856803],[-163.795966,-82.842643],[-162.798481,-82.864864],[-162.410598,-82.899177],[-162.339801,-82.922742],[-161.635167,-83.026921],[-161.828205,-83.042528],[-161.993776,-83.118699]]],[[[-157.987483,-82.105014],[-158.076237,-82.112042],[-158.154088,-82.058453],[-158.545304,-81.948848],[-158.773171,-81.875467],[-158.92634,-81.818623],[-158.988714,-81.779349],[-158.913731,-81.779762],[-158.346712,-81.900479],[-158.260825,-81.947297],[-157.834572,-82.030755],[-157.987483,-82.105014]]],[[[-160.467151,-81.58949],[-160.57102,-81.597861],[-163.253079,-81.482468],[-163.766045,-81.444796],[-163.890146,-81.42366],[-163.939264,-81.404075],[-163.951227,-81.390949],[-163.930014,-81.352192],[-163.86901,-81.323976],[-163.200653,-81.281395],[-162.456487,-81.313228],[-161.558583,-81.396685],[-160.937871,-81.463503],[-160.616883,-81.522104],[-160.48547,-81.567011],[-160.467151,-81.58949]]],[[[-153.93047,-80.033306],[-154.11405,-80.035993],[-154.348842,-80.026071],[-154.529451,-80.000491],[-154.941674,-79.966281],[-155.044794,-79.899774],[-155.525333,-79.846444],[-155.751159,-79.829597],[-155.674291,-79.765518],[-155.162203,-79.850681],[-154.535084,-79.935534],[-154.025373,-79.987675],[-153.93047,-80.033306]]],[[[-59.733919,-80.344139],[-59.77371,-80.55808],[-59.771333,-80.656524],[-59.825516,-80.733263],[-59.926362,-80.774346],[-60.124671,-80.840698],[-60.268202,-80.881368],[-60.582808,-80.948185],[-62.023366,-80.889016],[-62.67051,-80.834239],[-62.940365,-80.765871],[-62.986098,-80.734607],[-63.06754,-80.627481],[-63.143996,-80.594822],[-63.714943,-80.616939],[-64.065025,-80.650426],[-64.126494,-80.667841],[-64.219951,-80.734038],[-64.268268,-80.748508],[-65.202836,-80.607431],[-66.183758,-80.442015],[-66.591434,-80.357627],[-66.733596,-80.31856],[-66.771138,-80.293858],[-66.681118,-80.260475],[-66.588411,-80.238565],[-66.482655,-80.224457],[-66.376976,-80.222286],[-66.295793,-80.23474],[-66.2174,-80.25815],[-66.167635,-80.346155],[-66.115494,-80.361244],[-65.980076,-80.384499],[-62.518814,-80.373337],[-62.231855,-80.368686],[-61.633287,-80.344088],[-61.312841,-80.306571],[-61.193985,-80.256651],[-61.484769,-80.243836],[-61.597475,-80.205853],[-61.694342,-80.134385],[-61.716848,-80.069324],[-61.684188,-80.019767],[-61.302351,-79.995789],[-61.24623,-79.978322],[-61.346224,-79.950623],[-61.343124,-79.886803],[-61.114998,-79.862205],[-61.026321,-79.808927],[-60.578829,-79.741024],[-59.873317,-79.776939],[-59.706324,-79.875279],[-59.75242,-79.937963],[-59.785648,-80.00106],[-59.787766,-80.101002],[-59.498172,-80.115058],[-59.407815,-80.150921],[-59.321697,-80.19619],[-59.4266,-80.197688],[-59.530082,-80.207972],[-59.612402,-80.255463],[-59.683277,-80.315304],[-59.733919,-80.344139]]],[[[-31.118819,-79.798385],[-30.985028,-79.818435],[-30.840799,-79.771306],[-30.86147,-79.725883],[-30.779924,-79.647334],[-30.660139,-79.733066],[-29.870884,-79.823189],[-29.61444,-79.909592],[-29.720764,-79.92985],[-29.800088,-79.925922],[-30.029014,-79.936154],[-30.422117,-80.010878],[-30.844417,-79.938428],[-31.594268,-79.887682],[-31.824098,-79.849544],[-32.000289,-79.732446],[-31.680412,-79.63426],[-31.604887,-79.644699],[-31.118819,-79.798385]]],[[[-32.342516,-79.673586],[-32.514883,-79.682836],[-32.583251,-79.658342],[-32.500827,-79.592299],[-32.376597,-79.534628],[-32.150022,-79.529874],[-31.933446,-79.567908],[-31.956752,-79.603771],[-32.001194,-79.607079],[-32.342516,-79.673586]]],[[[-66.17363,-80.077799],[-66.267164,-80.081468],[-66.319486,-80.075112],[-66.3669,-80.054338],[-66.410385,-79.973309],[-66.904179,-79.908921],[-66.962341,-79.872695],[-66.993631,-79.79332],[-67.077244,-79.761798],[-67.719168,-79.620256],[-67.770767,-79.589405],[-67.80875,-79.545894],[-67.68793,-79.528427],[-67.43823,-79.560363],[-66.978929,-79.568683],[-66.881287,-79.582274],[-66.78522,-79.608009],[-66.273779,-79.611988],[-66.014156,-79.62439],[-65.870289,-79.737717],[-65.579247,-79.770789],[-65.53956,-79.836935],[-65.504446,-79.954344],[-65.899021,-80.040489],[-65.989403,-80.053976],[-66.17363,-80.077799]]],[[[-67.261935,-79.452669],[-67.434328,-79.501142],[-68.161467,-79.478508],[-68.408119,-79.463935],[-68.548937,-79.437373],[-68.422278,-79.333245],[-68.324351,-79.29826],[-68.233013,-79.284928],[-68.03256,-79.227153],[-67.714156,-79.214028],[-67.474506,-79.222916],[-67.06864,-79.268495],[-67.172949,-79.311489],[-67.239508,-79.327612],[-67.304879,-79.394068],[-67.261935,-79.452669]]],[[[-33.934202,-79.320378],[-34.049957,-79.357171],[-36.481308,-79.294023],[-36.600758,-79.282706],[-36.565954,-79.208808],[-36.237783,-79.195682],[-36.048001,-79.181161],[-35.790239,-79.148915],[-35.597305,-79.091865],[-35.534647,-79.090004],[-34.391487,-79.222916],[-33.994715,-79.27852],[-33.947173,-79.305392],[-33.934202,-79.320378]]],[[[-159.052922,-79.807428],[-160.302096,-79.84448],[-160.806691,-79.812027],[-161.865515,-79.703507],[-163.317235,-79.504759],[-163.712405,-79.442024],[-163.97089,-79.388797],[-164.225758,-79.320791],[-164.281621,-79.24555],[-164.244853,-79.13765],[-164.199533,-79.05073],[-164.125532,-78.995333],[-163.814647,-78.928774],[-163.660237,-78.855755],[-163.345295,-78.779842],[-163.256102,-78.722068],[-163.12412,-78.719174],[-162.87274,-78.725169],[-162.621567,-78.741757],[-162.390031,-78.760153],[-162.160691,-78.793485],[-161.64297,-78.901023],[-161.283432,-79.007063],[-160.764419,-79.131604],[-160.249593,-79.271492],[-159.963512,-79.324357],[-159.684098,-79.40244],[-159.418817,-79.508067],[-159.366391,-79.545222],[-159.256113,-79.591007],[-159.189709,-79.637258],[-159.118757,-79.674516],[-159.051371,-79.694567],[-158.996594,-79.735184],[-159.009591,-79.780453],[-159.052922,-79.807428]]],[[[-70.334073,-79.679839],[-70.552536,-79.683043],[-70.98375,-79.674361],[-71.414008,-79.640255],[-71.525784,-79.623667],[-71.686652,-79.568063],[-71.735202,-79.538607],[-71.777732,-79.500573],[-71.783546,-79.444349],[-71.667506,-79.245654],[-71.454005,-79.128917],[-71.254508,-79.05967],[-70.62589,-78.901592],[-70.544009,-78.883712],[-69.971899,-78.809401],[-69.747675,-78.769145],[-69.398265,-78.686153],[-67.478485,-78.362503],[-67.038125,-78.315736],[-66.840204,-78.349688],[-66.728066,-78.383691],[-66.787029,-78.421725],[-67.04616,-78.514122],[-67.166386,-78.569571],[-67.48094,-78.68238],[-68.157023,-78.870844],[-68.637924,-79.013161],[-69.250884,-79.210307],[-69.394415,-79.27976],[-69.68649,-79.443368],[-69.634478,-79.517523],[-69.731733,-79.618344],[-70.116335,-79.66599],[-70.334073,-79.679839]]],[[[167.642719,-78.141432],[167.517455,-78.216052],[167.376998,-78.249022],[166.936198,-78.22246],[166.626036,-78.284265],[166.284869,-78.306486],[166.121881,-78.274653],[166.050568,-78.213365],[166.012534,-78.131303],[166.012844,-78.101951],[166.111132,-78.089652],[166.567125,-78.148046],[166.759878,-78.197966],[166.863645,-78.196415],[167.137943,-78.129959],[167.364079,-78.04583],[167.42237,-78.006453],[167.497818,-77.992397],[167.593833,-78.022266],[167.639825,-78.111666],[167.642719,-78.141432]]],[[[-45.222635,-78.810693],[-45.091609,-78.81431],[-44.566318,-78.804285],[-44.041156,-78.806662],[-43.72208,-78.818445],[-43.627357,-78.846143],[-43.544313,-78.901902],[-43.450624,-78.989649],[-43.363653,-79.084733],[-43.267224,-79.163126],[-43.210535,-79.300017],[-43.118706,-79.35004],[-42.965382,-79.477061],[-42.94466,-79.579122],[-42.98998,-79.801279],[-43.065945,-79.891402],[-43.267276,-79.978632],[-43.495789,-79.96933],[-43.600279,-79.97393],[-43.703658,-79.990156],[-43.742208,-80.002972],[-43.758228,-80.020542],[-43.490001,-80.095524],[-43.458841,-80.123016],[-43.453776,-80.155055],[-43.489381,-80.178],[-43.527932,-80.191384],[-49.187509,-80.642778],[-49.410467,-80.66691],[-49.629678,-80.712282],[-49.701302,-80.753262],[-49.773055,-80.784164],[-54.162528,-80.870102],[-54.202112,-80.863849],[-54.241335,-80.846951],[-54.350811,-80.760341],[-54.371611,-80.623657],[-54.347194,-80.569397],[-54.129585,-80.51648],[-54.044913,-80.48749],[-53.676098,-80.283678],[-53.482337,-80.188955],[-53.393893,-80.108805],[-53.346506,-80.114489],[-53.176413,-80.160895],[-53.053449,-80.175003],[-52.80721,-80.155986],[-52.566786,-80.099038],[-52.461004,-80.066585],[-52.357135,-80.077851],[-52.338092,-80.126065],[-52.297164,-80.141206],[-51.711334,-79.989898],[-51.183847,-79.819675],[-50.66437,-79.626716],[-50.401569,-79.511684],[-50.339247,-79.479541],[-50.294909,-79.429725],[-50.331341,-79.381459],[-50.378677,-79.338154],[-50.419553,-79.321256],[-50.463891,-79.313298],[-50.733073,-79.282757],[-50.649022,-79.232838],[-50.57329,-79.172221],[-50.520296,-79.10437],[-50.50239,-79.02174],[-50.513707,-78.97983],[-50.502493,-78.949909],[-50.379762,-78.922883],[-50.297777,-78.882265],[-50.241941,-78.833276],[-50.335423,-78.818289],[-50.377385,-78.780514],[-50.294186,-78.695971],[-50.219616,-78.605228],[-50.141637,-78.556703],[-49.939763,-78.462239],[-49.354165,-78.22246],[-49.143636,-78.093889],[-49.081236,-78.047484],[-47.69207,-77.840106],[-47.463454,-77.819074],[-47.02994,-77.790549],[-46.825663,-77.785278],[-46.257869,-77.804863],[-45.993182,-77.826825],[-45.530264,-77.881499],[-44.851934,-77.988418],[-44.594482,-78.035185],[-44.33982,-78.092856],[-44.093996,-78.167321],[-43.854501,-78.258479],[-43.808612,-78.286487],[-43.784583,-78.336355],[-43.776702,-78.385086],[-43.788278,-78.432577],[-43.852279,-78.529883],[-43.947234,-78.597528],[-45.067812,-78.661452],[-45.213075,-78.687031],[-45.294775,-78.739845],[-45.352342,-78.791211],[-45.222635,-78.810693]]],[[[-149.218096,-77.336313],[-148.928837,-77.386852],[-149.438651,-77.370626],[-149.662332,-77.300966],[-149.518672,-77.274714],[-149.375425,-77.279985],[-149.249127,-77.315022],[-149.218096,-77.336313]]],[[[-150.397093,-77.369179],[-150.474867,-77.373726],[-151.344478,-77.296315],[-151.511625,-77.273371],[-151.218025,-77.226449],[-151.021551,-77.220041],[-150.499103,-77.335073],[-150.356243,-77.349025],[-150.397093,-77.369179]]],[[[167.084096,-77.321637],[167.460921,-77.394294],[168.450731,-77.386129],[169.27559,-77.454652],[169.352795,-77.524725],[169.117254,-77.560588],[168.754589,-77.653296],[168.518841,-77.681201],[168.322574,-77.682545],[167.917637,-77.644098],[167.392295,-77.648645],[167.279537,-77.702595],[167.025082,-77.756442],[166.728976,-77.850958],[166.650428,-77.774012],[166.532502,-77.700425],[166.23681,-77.547411],[166.216759,-77.524622],[166.378403,-77.494029],[166.457985,-77.443696],[166.626346,-77.376724],[166.607123,-77.335589],[166.469043,-77.288874],[166.413026,-77.251977],[166.506354,-77.189345],[166.716367,-77.16175],[166.987255,-77.186554],[167.106834,-77.27058],[167.084923,-77.307374],[167.084096,-77.321637]]],[[[-148.595834,-77.006824],[-149.014671,-77.019123],[-149.244838,-76.993078],[-149.302535,-76.91577],[-149.238069,-76.900164],[-148.704096,-76.935614],[-148.50894,-76.954631],[-148.439771,-76.977162],[-148.474291,-76.997729],[-148.595834,-77.006824]]],[[[-149.230679,-77.120512],[-149.29344,-77.136635],[-149.728633,-77.12847],[-149.81687,-77.114156],[-149.856325,-77.099428],[-150.461792,-77.075657],[-150.735807,-77.004343],[-150.788542,-76.981606],[-150.680229,-76.948429],[-150.475771,-76.926105],[-150.393321,-76.898717],[-149.870614,-76.875049],[-149.789844,-76.889208],[-149.742586,-76.927035],[-149.505753,-77.001656],[-149.441725,-77.04925],[-149.41643,-77.078861],[-149.28835,-77.093123],[-149.230679,-77.120512]]],[[[-146.606756,-76.961297],[-146.981436,-77.005687],[-147.078924,-76.992768],[-147.044146,-76.929723],[-147.101481,-76.886469],[-147.11564,-76.866264],[-147.08665,-76.837325],[-146.866508,-76.837118],[-146.244375,-76.88311],[-146.163941,-76.948533],[-146.606756,-76.961297]]],[[[-149.333257,-76.717436],[-148.927907,-76.730045],[-148.662574,-76.720536],[-148.384193,-76.744411],[-148.320786,-76.771696],[-148.370964,-76.79495],[-148.669525,-76.802082],[-148.814606,-76.840736],[-148.983898,-76.845283],[-149.238482,-76.817791],[-149.468933,-76.757123],[-149.333257,-76.717436]]],[[[-150.23253,-76.77645],[-150.655166,-76.788956],[-150.830478,-76.761567],[-150.873524,-76.736763],[-150.837635,-76.714129],[-150.177391,-76.691288],[-150.103571,-76.718831],[-150.084787,-76.735109],[-150.23253,-76.77645]]],[[[-147.588299,-76.649843],[-147.578842,-76.662762],[-147.729659,-76.65346],[-147.954323,-76.597133],[-148.00109,-76.577186],[-147.899701,-76.557962],[-147.769683,-76.576876],[-147.649122,-76.610879],[-147.588299,-76.649843]]],[[[-146.790027,-76.6331],[-146.907797,-76.714025],[-147.221344,-76.670927],[-147.355315,-76.618837],[-147.278602,-76.552588],[-147.135303,-76.531556],[-146.947485,-76.555017],[-146.877877,-76.563233],[-146.790027,-76.6331]]],[[[-146.690136,-76.246353],[-146.894491,-76.260978],[-147.150909,-76.197468],[-147.345419,-76.14667],[-147.407767,-76.104605],[-147.420919,-76.090239],[-147.418051,-76.073444],[-147.360638,-76.062799],[-146.949009,-76.098145],[-146.690136,-76.246353]]],[[[162.968068,-75.567118],[162.788234,-75.696206],[162.661937,-75.691865],[162.591244,-75.668508],[162.720022,-75.596677],[162.842391,-75.566188],[162.917012,-75.5573],[162.968068,-75.567118]]],[[[-145.238106,-75.711192],[-145.348384,-75.716153],[-145.541162,-75.692692],[-146.04276,-75.61187],[-146.150815,-75.573526],[-146.075729,-75.533425],[-145.895508,-75.504797],[-145.760813,-75.513892],[-145.417397,-75.587996],[-145.315414,-75.641429],[-145.252265,-75.68277],[-145.238106,-75.711192]]],[[[163.975966,-74.832693],[163.844604,-74.832693],[163.763369,-74.802824],[163.73722,-74.733836],[163.741665,-74.711563],[164.002321,-74.628881],[164.20851,-74.607694],[164.098232,-74.731976],[164.059165,-74.752698],[163.975966,-74.832693]]],[[[-132.391242,-74.441916],[-132.546297,-74.49845],[-132.857182,-74.46176],[-132.83168,-74.421555],[-132.552472,-74.386622],[-132.362303,-74.40998],[-132.391242,-74.441916]]],[[[-131.066697,-74.583819],[-131.178913,-74.6048],[-131.597957,-74.553744],[-131.840862,-74.542581],[-131.952509,-74.514314],[-132.025088,-74.488631],[-132.049299,-74.463827],[-132.162651,-74.425793],[-131.937807,-74.349105],[-131.762701,-74.323783],[-131.594107,-74.329675],[-131.559613,-74.367295],[-131.233896,-74.413597],[-130.981121,-74.414114],[-130.956781,-74.456282],[-130.967298,-74.51509],[-131.066697,-74.583819]]],[[[-127.365812,-74.62268],[-127.517741,-74.64056],[-127.817076,-74.574621],[-127.915236,-74.542581],[-128.000063,-74.489458],[-128.070472,-74.478193],[-128.096258,-74.466204],[-128.133465,-74.327401],[-128.042877,-74.312208],[-127.852966,-74.331845],[-127.486451,-74.405226],[-127.229748,-74.425173],[-127.145179,-74.480156],[-127.231944,-74.578393],[-127.365812,-74.62268]]],[[[-116.738605,-74.165033],[-117.230307,-74.192732],[-117.363012,-74.160899],[-117.398307,-74.122452],[-117.376448,-74.082765],[-116.381314,-73.865517],[-116.202669,-73.895644],[-116.154972,-73.910475],[-116.451414,-74.017652],[-116.584558,-74.055583],[-116.608639,-74.068605],[-116.534199,-74.083281],[-116.514123,-74.095477],[-116.570915,-74.125656],[-116.738605,-74.165033]]],[[[-119.548899,-74.110256],[-119.758343,-74.122039],[-119.821001,-74.119662],[-119.887199,-74.097234],[-119.90513,-74.081524],[-119.796662,-74.029228],[-119.693774,-74.00618],[-119.661554,-73.989334],[-119.802578,-73.814667],[-119.669021,-73.809293],[-119.516369,-73.774876],[-119.216206,-73.777667],[-118.959297,-73.8095],[-118.909816,-73.834304],[-118.877338,-73.878023],[-118.989786,-73.967009],[-119.058567,-73.997705],[-119.448517,-74.07615],[-119.548899,-74.110256]]],[[[-120.556228,-73.756014],[-120.378125,-73.855853],[-120.312289,-73.921948],[-120.272446,-73.989127],[-120.989509,-74.157075],[-121.019068,-74.173457],[-121.054104,-74.259963],[-121.036431,-74.27929],[-121.004702,-74.292881],[-121.002428,-74.326419],[-121.062398,-74.337323],[-122.286639,-74.403107],[-122.859084,-74.342697],[-122.938408,-74.302028],[-122.956055,-74.240326],[-122.890633,-74.227045],[-122.764723,-74.218674],[-122.794179,-74.190458],[-122.875233,-74.141211],[-122.880737,-74.099043],[-122.709998,-73.993623],[-122.62468,-73.965511],[-122.951172,-73.86655],[-122.991557,-73.844123],[-123.034655,-73.837612],[-123.190821,-73.84929],[-123.346212,-73.843089],[-123.291797,-73.80304],[-123.249061,-73.738651],[-123.11217,-73.682221],[-123.012486,-73.67297],[-122.910477,-73.67974],[-122.435674,-73.6816],[-121.966684,-73.711831],[-121.497333,-73.732863],[-120.722212,-73.751932],[-120.556228,-73.756014]]],[[[-20.607419,-73.886601],[-20.654238,-74.104985],[-20.641267,-74.150564],[-20.600339,-74.196866],[-20.423347,-74.317376],[-20.41141,-74.408481],[-20.416655,-74.443363],[-20.489028,-74.492662],[-20.737023,-74.480983],[-20.81769,-74.454783],[-20.845647,-74.437782],[-20.97675,-74.225081],[-21.051216,-74.176092],[-21.166558,-74.132581],[-21.60989,-74.091756],[-22.035342,-74.106536],[-21.930387,-74.056616],[-21.288307,-73.989334],[-21.126354,-73.939828],[-21.024499,-73.88009],[-20.979179,-73.790483],[-20.867041,-73.676691],[-20.690153,-73.625221],[-20.580237,-73.619227],[-20.520732,-73.711831],[-20.520732,-73.797821],[-20.607419,-73.886601]]],[[[169.843618,-73.604964],[169.709156,-73.625325],[169.522397,-73.561504],[169.479506,-73.539439],[169.65934,-73.418102],[169.645387,-73.379138],[169.671845,-73.346065],[169.740058,-73.320434],[169.783156,-73.324258],[169.886509,-73.45872],[169.960407,-73.514324],[169.858811,-73.568067],[169.843618,-73.604964]]],[[[-126.329906,-73.286224],[-126.065271,-73.314853],[-125.975871,-73.356814],[-125.856653,-73.388233],[-125.735808,-73.405648],[-125.626822,-73.453191],[-125.561323,-73.53639],[-125.50391,-73.562486],[-125.326195,-73.617832],[-125.263951,-73.666459],[-125.276069,-73.690489],[-125.612379,-73.710694],[-125.723173,-73.702684],[-125.828438,-73.718342],[-125.859909,-73.748676],[-125.857041,-73.780147],[-125.798569,-73.801955],[-125.674391,-73.82216],[-125.552383,-73.820145],[-125.326867,-73.795547],[-125.224418,-73.800766],[-125.108766,-73.825933],[-124.993424,-73.829757],[-124.694399,-73.749555],[-124.617478,-73.735292],[-124.53999,-73.739736],[-124.12849,-73.833943],[-124.042035,-73.8804],[-124.100533,-73.906858],[-124.151796,-73.94422],[-124.129343,-73.971092],[-123.932326,-74.00804],[-123.851169,-74.056978],[-123.800422,-74.076253],[-123.811042,-74.117388],[-123.838792,-74.168237],[-123.836725,-74.225702],[-123.937391,-74.256139],[-123.982453,-74.256036],[-124.19939,-74.225598],[-124.873018,-74.208338],[-125.089568,-74.182397],[-125.420789,-74.069949],[-125.549308,-74.062714],[-125.682711,-74.035429],[-125.886884,-73.954607],[-126.244097,-73.89089],[-126.47168,-73.812135],[-126.465557,-73.746248],[-126.496072,-73.700204],[-126.538369,-73.680153],[-126.582656,-73.669973],[-126.710942,-73.653592],[-126.838247,-73.657364],[-126.90168,-73.676795],[-127.006402,-73.725835],[-127.12208,-73.734207],[-127.211609,-73.724389],[-127.231634,-73.713485],[-127.232926,-73.585534],[-127.332016,-73.567499],[-127.414336,-73.516288],[-127.429064,-73.446886],[-127.394337,-73.382239],[-127.267627,-73.304001],[-127.123527,-73.294286],[-126.977851,-73.30798],[-126.830005,-73.290772],[-126.596892,-73.278886],[-126.329906,-73.286224]]],[[[-73.878431,-73.356814],[-73.974833,-73.376038],[-74.038266,-73.365496],[-74.146631,-73.315473],[-74.134436,-73.276664],[-74.084491,-73.249327],[-74.048756,-73.220233],[-73.832103,-73.113263],[-73.674205,-73.100396],[-73.542431,-73.123857],[-73.682267,-73.225039],[-73.721412,-73.296249],[-73.878431,-73.356814]]],[[[-104.537929,-73.166335],[-104.659549,-73.21212],[-104.880983,-73.200545],[-105.05291,-73.125924],[-105.123423,-73.026395],[-105.131769,-72.991462],[-105.084562,-72.965934],[-104.972424,-72.941025],[-104.537929,-73.166335]]],[[[-74.354448,-73.098432],[-74.498936,-73.229225],[-74.522474,-73.243901],[-74.667685,-73.275269],[-74.615388,-73.31139],[-74.575468,-73.327772],[-74.550638,-73.369113],[-74.467129,-73.427094],[-74.366127,-73.464301],[-74.452117,-73.56538],[-74.574667,-73.611372],[-75.900814,-73.332629],[-76.003211,-73.287981],[-76.053104,-73.25465],[-76.09044,-73.202818],[-76.096357,-73.15047],[-76.062432,-73.108819],[-76.01768,-73.085461],[-75.897636,-73.056367],[-75.774646,-73.0543],[-75.505851,-73.108922],[-75.467584,-73.101067],[-75.417252,-73.05151],[-75.276227,-73.050373],[-75.243877,-73.009342],[-75.439447,-72.994201],[-75.600315,-72.952601],[-75.70173,-72.911053],[-75.731057,-72.879324],[-75.376841,-72.820413],[-74.473872,-72.893793],[-74.33556,-72.918908],[-74.275771,-72.951309],[-74.223888,-72.997043],[-74.354448,-73.098432]]],[[[-93.795613,-72.919735],[-93.965525,-72.920252],[-94.078128,-72.883871],[-94.113165,-72.8601],[-94.046967,-72.8231],[-94.004257,-72.819689],[-93.799566,-72.882011],[-93.755796,-72.907643],[-93.795613,-72.919735]]],[[[-91.160683,-73.182251],[-91.344186,-73.207159],[-91.510843,-73.19548],[-91.450407,-72.967897],[-91.356899,-72.909503],[-91.382143,-72.867852],[-91.551461,-72.753647],[-91.670006,-72.623732],[-91.612387,-72.593863],[-91.303517,-72.547354],[-90.947415,-72.556346],[-90.807139,-72.610606],[-90.763343,-72.681093],[-90.780164,-72.731736],[-90.895351,-72.823617],[-90.776237,-72.854002],[-90.750993,-72.916634],[-90.775591,-72.993012],[-90.893077,-73.083962],[-90.998445,-73.136569],[-91.160683,-73.182251]]],[[[-95.027037,-72.665073],[-95.219454,-72.669828],[-95.272939,-72.646883],[-95.21563,-72.599444],[-94.753022,-72.517175],[-94.566134,-72.468083],[-94.538384,-72.475783],[-94.51389,-72.491699],[-94.433946,-72.589161],[-94.426014,-72.61257],[-95.027037,-72.665073]]],[[[-16.10449,-72.679129],[-16.174821,-72.702797],[-16.317551,-72.702177],[-16.453047,-72.652361],[-16.509736,-72.582184],[-16.516557,-72.530818],[-16.455398,-72.47356],[-16.355844,-72.458574],[-16.302875,-72.478005],[-16.172496,-72.599961],[-16.10449,-72.679129]]],[[[68.461692,-72.300083],[68.408879,-72.300238],[68.436164,-72.260447],[68.566285,-72.190167],[68.667054,-72.103144],[68.729273,-72.089191],[68.840377,-72.165466],[68.817226,-72.228718],[68.669535,-72.27595],[68.461692,-72.300083]]],[[[-12.508895,-72.17332],[-12.588425,-72.196058],[-12.720148,-72.187686],[-12.888433,-72.137147],[-12.943701,-72.098906],[-12.963286,-72.06449],[-12.914788,-72.014674],[-12.875488,-72.000721],[-12.788878,-72.006509],[-12.636639,-72.071311],[-12.534759,-72.140041],[-12.508895,-72.17332]]],[[[69.918348,-71.917729],[69.79205,-72.046713],[69.743578,-72.044129],[69.692522,-71.968268],[69.737067,-71.921966],[69.796081,-71.893958],[69.895197,-71.907859],[69.918348,-71.917729]]],[[[-98.091087,-71.912458],[-98.175914,-72.018498],[-98.167956,-72.123039],[-97.923165,-72.11658],[-97.816014,-71.918866],[-97.584762,-71.882589],[-97.473476,-72.000256],[-97.581997,-72.095082],[-97.525644,-72.149188],[-97.460273,-72.188255],[-97.345215,-72.189082],[-97.241992,-72.131824],[-97.195509,-72.091],[-97.154788,-72.04537],[-97.088719,-71.944032],[-96.869431,-71.851014],[-96.383362,-71.836287],[-96.12498,-71.89556],[-96.298199,-72.045163],[-96.714918,-72.131669],[-96.978907,-72.221896],[-96.890153,-72.247011],[-96.798737,-72.259465],[-96.717605,-72.255486],[-96.482348,-72.207634],[-95.906363,-72.121954],[-95.68542,-72.056687],[-95.609378,-72.068417],[-95.609533,-72.174974],[-95.531063,-72.248768],[-95.575401,-72.409998],[-95.825696,-72.438937],[-96.078161,-72.45382],[-96.014289,-72.52472],[-96.029869,-72.554279],[-96.051754,-72.577275],[-96.692697,-72.547613],[-96.803931,-72.558],[-96.914777,-72.578309],[-97.027612,-72.573813],[-97.250286,-72.520844],[-97.365524,-72.521775],[-97.595614,-72.547664],[-97.828313,-72.557018],[-98.163434,-72.556088],[-98.407812,-72.547613],[-98.640666,-72.489735],[-98.88153,-72.473199],[-99.148852,-72.471959],[-99.434339,-72.406639],[-99.672386,-72.379871],[-100.014251,-72.312433],[-100.104039,-72.287009],[-100.195196,-72.272694],[-100.357435,-72.27812],[-101.601958,-72.175698],[-101.784789,-72.177713],[-101.903335,-72.190374],[-102.022139,-72.184999],[-102.264812,-72.135287],[-102.31362,-72.081078],[-102.288273,-72.03214],[-102.236545,-72.009248],[-102.128128,-71.985425],[-100.40092,-71.865691],[-100.218632,-71.832876],[-100.084609,-71.836907],[-99.985183,-71.939485],[-99.833177,-72.046093],[-99.784007,-72.044388],[-99.734915,-72.032967],[-99.563065,-71.944962],[-99.254091,-71.972196],[-99.082112,-71.932508],[-98.964574,-71.854322],[-98.615422,-71.763733],[-98.394273,-71.78151],[-98.189143,-71.82006],[-98.091087,-71.912458]]],[[[-2.954982,-71.213792],[-3.060583,-71.236633],[-3.201453,-71.230226],[-3.309353,-71.200873],[-3.385628,-71.142996],[-3.403844,-71.119845],[-3.391725,-71.081139],[-3.39896,-71.06207],[-3.263051,-71.051735],[-3.212822,-71.075971],[-3.19135,-71.094833],[-2.954982,-71.213792]]],[[[-60.552267,-71.052975],[-60.652158,-71.05866],[-60.789772,-71.04109],[-60.906354,-71.007397],[-60.946507,-70.967399],[-60.889043,-70.93443],[-60.782822,-70.914069],[-60.613142,-70.920167],[-60.533276,-70.962542],[-60.516301,-70.999542],[-60.535912,-71.040883],[-60.552267,-71.052975]]],[[[-2.532811,-70.767721],[-2.423412,-70.800433],[-2.255593,-70.796143],[-2.09227,-70.820845],[-2.119038,-70.855365],[-2.212676,-70.901563],[-2.293188,-70.997992],[-2.368945,-71.044397],[-2.60676,-71.141135],[-2.783494,-71.16749],[-2.825145,-71.112713],[-2.821864,-71.056696],[-2.805198,-71.014735],[-2.800547,-70.982179],[-2.963121,-70.940372],[-2.975007,-70.88327],[-3.006969,-70.851437],[-3.48898,-70.735889],[-3.57466,-70.703126],[-3.537065,-70.683282],[-3.040016,-70.674394],[-2.749801,-70.694186],[-2.532811,-70.767721]]],[[[-73.706632,-70.635171],[-73.550337,-70.723486],[-73.694514,-70.794283],[-74.205026,-70.924094],[-74.504749,-70.973394],[-74.805816,-71.012254],[-76.176301,-71.132402],[-76.271308,-71.132815],[-76.363938,-71.116847],[-76.42148,-71.090389],[-76.5115,-70.990809],[-76.50026,-70.941458],[-76.377606,-70.894174],[-76.24888,-70.863736],[-76.034578,-70.835883],[-75.210003,-70.772579],[-75.126959,-70.751805],[-75.059909,-70.705606],[-75.037559,-70.650623],[-75.007483,-70.60892],[-74.953585,-70.590213],[-74.898498,-70.590523],[-74.790494,-70.630934],[-74.589679,-70.792009],[-74.527125,-70.769685],[-74.468679,-70.72669],[-74.456173,-70.586699],[-74.400983,-70.575899],[-74.224973,-70.614656],[-74.11454,-70.655377],[-74.112654,-70.576725],[-74.038343,-70.552954],[-73.957832,-70.560912],[-73.879516,-70.578172],[-73.706632,-70.635171]]],[[[-60.740654,-70.710567],[-60.826049,-70.710567],[-60.896484,-70.68969],[-60.958031,-70.629022],[-60.975549,-70.599153],[-60.941804,-70.53249],[-60.883901,-70.517608],[-60.553663,-70.508823],[-60.45248,-70.544273],[-60.448966,-70.603287],[-60.487672,-70.646695],[-60.740654,-70.710567]]],[[[-5.894105,-70.552231],[-6.156104,-70.611555],[-6.180858,-70.585562],[-6.266124,-70.550164],[-6.437999,-70.452599],[-6.243644,-70.445674],[-6.06828,-70.404643],[-5.97162,-70.421438],[-5.949502,-70.432238],[-5.894105,-70.552231]]],[[[3.036952,-70.597396],[2.697748,-70.623544],[2.622714,-70.593365],[2.58468,-70.534557],[2.631499,-70.500348],[3.072195,-70.381595],[3.192808,-70.392654],[3.230532,-70.402679],[3.259884,-70.448775],[3.221333,-70.519158],[3.171104,-70.553884],[3.036952,-70.597396]]],[[[-3.280208,-70.533834],[-3.441877,-70.535488],[-3.490221,-70.507996],[-3.496835,-70.488359],[-3.287468,-70.344078],[-3.173237,-70.307284],[-2.949892,-70.279689],[-2.80512,-70.288474],[-2.713524,-70.320204],[-2.684353,-70.376117],[-2.682725,-70.46221],[-2.738044,-70.507066],[-3.280208,-70.533834]]],[[[-71.695024,-70.265116],[-71.647766,-70.295399],[-71.431603,-70.267287],[-71.354864,-70.297828],[-71.340265,-70.317516],[-71.437753,-70.391517],[-71.551234,-70.438853],[-71.684663,-70.442263],[-71.78197,-70.31886],[-71.79525,-70.288371],[-71.695024,-70.265116]]],[[[72.002251,-70.632639],[71.928974,-70.633001],[71.841228,-70.621942],[71.725783,-70.549078],[71.659327,-70.497454],[71.637106,-70.443504],[71.646614,-70.336327],[71.705112,-70.28434],[71.796579,-70.26429],[71.838024,-70.312245],[71.85115,-70.367643],[71.879985,-70.405573],[71.999978,-70.456836],[72.055685,-70.501019],[72.073462,-70.52448],[72.097336,-70.574607],[72.078112,-70.609075],[72.002251,-70.632639]]],[[[4.525853,-70.478747],[4.365243,-70.502621],[4.179725,-70.451255],[4.129598,-70.416942],[4.076165,-70.325268],[4.069757,-70.290231],[4.111718,-70.26677],[4.256102,-70.240829],[4.495054,-70.251371],[4.586211,-70.294262],[4.617527,-70.368676],[4.589932,-70.432548],[4.525853,-70.478747]]],[[[26.857203,-70.381182],[26.793021,-70.419319],[26.608846,-70.412394],[26.47025,-70.447948],[26.357596,-70.434305],[26.005369,-70.372914],[25.964235,-70.294572],[25.954106,-70.261396],[25.982528,-70.199901],[26.301062,-70.072467],[26.425602,-70.060581],[26.604816,-70.078254],[26.686258,-70.114428],[26.737417,-70.186052],[26.874773,-70.330022],[26.857203,-70.381182]]],[[[1.29928,-70.255195],[1.211534,-70.381388],[1.156343,-70.378081],[1.104563,-70.304184],[0.990359,-70.224292],[0.952531,-70.168998],[0.949637,-70.094067],[1.026739,-70.049832],[1.314887,-70.022754],[1.412245,-70.040737],[1.460924,-70.135615],[1.29928,-70.255195]]],[[[-61.158432,-69.975728],[-61.308655,-69.977899],[-61.37847,-69.949839],[-61.40436,-69.932527],[-61.38648,-69.893253],[-61.327156,-69.856356],[-61.151869,-69.883124],[-61.107892,-69.955265],[-61.158432,-69.975728]]],[[[-74.987097,-69.727837],[-74.810183,-69.752435],[-74.549708,-69.860903],[-74.465449,-69.916921],[-74.438009,-69.949632],[-74.460049,-69.971646],[-74.57844,-69.998001],[-74.671767,-70.13174],[-74.848837,-70.179334],[-75.268423,-70.149465],[-75.726742,-70.096083],[-75.764466,-70.085076],[-75.804153,-70.038154],[-75.812938,-69.983945],[-75.759505,-69.916094],[-75.68137,-69.881677],[-75.339969,-69.840233],[-75.313925,-69.816823],[-75.264548,-69.749334],[-75.178972,-69.735175],[-75.13639,-69.740652],[-74.987097,-69.727837]]],[[[16.222607,-70.007664],[16.159252,-70.07195],[15.844956,-69.982033],[15.663468,-69.955058],[15.613859,-69.939038],[15.570967,-69.884726],[15.562596,-69.862764],[15.596909,-69.828037],[15.699021,-69.77326],[15.909551,-69.728405],[16.246895,-69.704944],[16.573387,-69.723237],[16.625477,-69.750316],[16.315418,-69.84447],[16.222607,-70.007664]]],[[[-71.985342,-69.698433],[-72.202047,-69.740136],[-72.344571,-69.707011],[-72.776741,-69.644999],[-72.957298,-69.529141],[-72.936757,-69.468886],[-72.85733,-69.433126],[-72.72615,-69.413075],[-72.464305,-69.451833],[-72.331135,-69.49183],[-71.985342,-69.698433]]],[[[-61.997606,-69.721894],[-62.085145,-69.729439],[-62.17191,-69.636628],[-62.216042,-69.494931],[-62.496257,-69.288225],[-62.5677,-69.180428],[-62.515868,-69.15459],[-62.442126,-69.146012],[-62.238934,-69.175777],[-62.117908,-69.214741],[-61.978356,-69.300421],[-61.815963,-69.376178],[-61.783665,-69.441911],[-61.807178,-69.514671],[-61.911358,-69.533378],[-61.907818,-69.587638],[-61.970114,-69.691405],[-61.997606,-69.721894]]],[[[-70.051119,-69.189058],[-70.07936,-69.310963],[-69.913298,-69.267296],[-69.854955,-69.276598],[-69.707574,-69.320936],[-69.416946,-69.583246],[-69.352971,-69.66629],[-69.233779,-69.909118],[-69.091255,-70.090295],[-68.73058,-70.408105],[-68.55351,-70.58148],[-68.459459,-70.682869],[-68.450752,-70.817848],[-68.335978,-70.856088],[-68.314016,-70.911744],[-68.277946,-71.097107],[-68.252418,-71.313528],[-68.22782,-71.725234],[-68.240997,-71.822127],[-68.393908,-71.975141],[-68.460751,-72.085315],[-68.542581,-72.157611],[-68.640017,-72.209804],[-69.149262,-72.426535],[-69.20931,-72.534229],[-70.063056,-72.626161],[-70.543441,-72.664453],[-70.731362,-72.622957],[-70.922952,-72.613087],[-71.158597,-72.626936],[-71.846126,-72.63939],[-72.367464,-72.669724],[-72.433273,-72.658304],[-72.479886,-72.617324],[-72.530813,-72.589574],[-72.67021,-72.595879],[-72.780384,-72.580531],[-72.887639,-72.546631],[-73.007037,-72.484051],[-73.057396,-72.447567],[-73.086386,-72.407828],[-72.854824,-72.304165],[-72.737518,-72.280601],[-72.618223,-72.275071],[-72.376094,-72.29631],[-72.134971,-72.331347],[-71.60534,-72.358942],[-70.872594,-72.366435],[-70.671133,-72.356358],[-70.427685,-72.322562],[-70.205993,-72.227787],[-70.314204,-72.190994],[-70.424171,-72.167791],[-70.533209,-72.163347],[-70.641419,-72.1696],[-70.945173,-72.229079],[-71.177743,-72.264064],[-71.412535,-72.284476],[-71.66146,-72.249853],[-71.892195,-72.152857],[-71.89757,-72.120817],[-71.106636,-72.047075],[-71.034367,-72.034569],[-70.891094,-71.987389],[-70.844637,-71.945789],[-70.820995,-71.906515],[-71.354967,-71.836442],[-71.46465,-71.837889],[-71.574437,-71.850601],[-71.816179,-71.821921],[-72.045959,-71.7396],[-72.259098,-71.641157],[-72.336613,-71.632268],[-72.412215,-71.662344],[-72.927662,-71.921708],[-72.972052,-71.923672],[-73.166717,-71.904551],[-73.409984,-71.853133],[-73.632916,-71.834943],[-73.775956,-71.848947],[-73.829881,-71.870238],[-73.690561,-71.929408],[-73.5723,-71.980929],[-73.537108,-72.022322],[-73.899282,-72.15234],[-73.995607,-72.169806],[-74.152988,-72.158748],[-74.208953,-72.142315],[-74.321789,-72.072655],[-74.429276,-72.05555],[-74.663215,-72.069916],[-74.785869,-72.06356],[-74.908239,-72.033329],[-75.024097,-71.988525],[-75.12975,-71.963928],[-75.258863,-71.913956],[-75.353069,-71.878403],[-75.382732,-71.827967],[-75.373223,-71.780269],[-75.330823,-71.752313],[-75.32488,-71.725596],[-75.353121,-71.679707],[-75.335422,-71.645187],[-75.292582,-71.614905],[-75.099674,-71.555374],[-74.863151,-71.543385],[-74.636369,-71.617489],[-74.487463,-71.641518],[-74.418656,-71.643224],[-74.39181,-71.638159],[-74.373336,-71.618005],[-74.380054,-71.579403],[-74.420336,-71.507263],[-74.425374,-71.45693],[-74.375015,-71.414969],[-74.307888,-71.399879],[-74.236083,-71.388355],[-74.187223,-71.383033],[-74.040979,-71.410473],[-73.937109,-71.438223],[-73.72428,-71.516978],[-73.545376,-71.573099],[-73.478998,-71.57868],[-73.427166,-71.558888],[-73.380192,-71.527882],[-73.592195,-71.448093],[-73.617103,-71.396624],[-73.604468,-71.350787],[-73.473959,-71.324897],[-73.397427,-71.321176],[-73.019749,-71.368615],[-72.821053,-71.383549],[-72.621557,-71.388355],[-72.211685,-71.335025],[-72.430095,-71.274977],[-72.905467,-71.223146],[-72.994557,-71.186507],[-73.060419,-71.126976],[-72.71044,-71.072922],[-72.356353,-71.074783],[-71.718511,-71.145166],[-71.504519,-71.111576],[-71.307528,-71.010859],[-71.194047,-70.984814],[-70.741103,-70.992566],[-70.38066,-70.946419],[-70.322911,-70.951224],[-70.267695,-70.964764],[-69.91645,-71.133797],[-69.869787,-71.125684],[-69.835112,-71.09256],[-69.822864,-71.0337],[-69.822503,-70.973394],[-69.830409,-70.913656],[-69.875781,-70.875984],[-69.933194,-70.880376],[-69.993009,-70.897119],[-70.094011,-70.882598],[-70.196252,-70.85061],[-70.298675,-70.836141],[-70.660643,-70.817899],[-70.916958,-70.78586],[-71.049404,-70.762089],[-71.172653,-70.712996],[-71.190042,-70.659563],[-71.061083,-70.53709],[-70.562096,-70.404074],[-70.328079,-70.361235],[-70.090445,-70.350693],[-69.975284,-70.360149],[-69.702045,-70.414771],[-69.659877,-70.412343],[-69.618355,-70.398028],[-69.883016,-70.305217],[-70.117885,-70.234214],[-70.234054,-70.180419],[-70.327666,-70.159697],[-70.719554,-70.139491],[-70.926234,-70.192356],[-71.023747,-70.201399],[-71.120485,-70.196438],[-71.696083,-70.067764],[-71.728536,-70.053657],[-71.809978,-70.005184],[-71.853593,-69.969372],[-71.87925,-69.908962],[-71.867701,-69.847157],[-71.851991,-69.807057],[-71.766492,-69.649443],[-71.718201,-69.524025],[-71.742902,-69.422791],[-71.83362,-69.366773],[-71.96325,-69.32874],[-72.080659,-69.267141],[-72.114327,-69.225387],[-72.135178,-69.176604],[-72.137865,-69.114541],[-72.108642,-69.060022],[-72.05787,-69.001008],[-71.990122,-68.970777],[-71.868993,-68.941063],[-71.391554,-68.873574],[-70.417014,-68.788928],[-70.31193,-68.832181],[-70.154291,-68.922924],[-70.105457,-68.959408],[-70.052721,-69.139552],[-70.051119,-69.189058]]],[[[-90.536174,-68.797764],[-90.547155,-68.798333],[-90.566637,-68.798178],[-90.580848,-68.798643],[-90.595214,-68.800141],[-90.609115,-68.801847],[-90.617383,-68.803242],[-90.62038,-68.803242],[-90.623636,-68.801382],[-90.62839,-68.796937],[-90.638364,-68.788307],[-90.647045,-68.779677],[-90.652058,-68.770944],[-90.648027,-68.759575],[-90.637227,-68.754459],[-90.63671,-68.747276],[-90.63671,-68.737923],[-90.631439,-68.729758],[-90.62839,-68.721386],[-90.629165,-68.716425],[-90.625703,-68.713842],[-90.616763,-68.712136],[-90.600072,-68.712291],[-90.589633,-68.713015],[-90.570616,-68.713945],[-90.561676,-68.715082],[-90.548473,-68.718389],[-90.535424,-68.728414],[-90.525141,-68.73844],[-90.525141,-68.742935],[-90.522893,-68.748827],[-90.521188,-68.755855],[-90.519172,-68.764226],[-90.514702,-68.771254],[-90.51819,-68.783243],[-90.525916,-68.794974],[-90.532944,-68.797299],[-90.536174,-68.797764]]],[[[-60.655905,-68.767533],[-60.69337,-68.795025],[-60.820055,-68.778386],[-60.89403,-68.758852],[-61.014952,-68.709759],[-60.947179,-68.680614],[-60.813595,-68.687745],[-60.704816,-68.722058],[-60.655905,-68.767533]]],[[[-67.348933,-67.766251],[-67.544554,-67.785268],[-67.693382,-67.76346],[-67.689713,-67.687703],[-67.730692,-67.679486],[-67.743276,-67.661244],[-67.556749,-67.604504],[-67.417688,-67.590654],[-67.246743,-67.598768],[-67.174912,-67.624554],[-67.149384,-67.650186],[-67.27966,-67.711887],[-67.299711,-67.737209],[-67.348933,-67.766251]]],[[[164.833588,-67.540425],[164.746255,-67.568847],[164.692098,-67.560062],[164.638974,-67.500117],[164.696232,-67.407823],[164.675148,-67.288916],[164.684036,-67.259408],[164.825009,-67.326071],[164.850124,-67.363692],[164.907175,-67.418572],[164.918647,-67.447511],[164.860459,-67.50389],[164.833588,-67.540425]]],[[[-67.362394,-66.894573],[-67.409213,-66.901911],[-67.520783,-66.89726],[-67.593233,-66.875556],[-67.499492,-66.803622],[-67.510861,-66.756287],[-67.425956,-66.73696],[-67.331699,-66.753496],[-67.268731,-66.815198],[-67.256974,-66.840933],[-67.362394,-66.894573]]],[[[85.82239,-66.953277],[85.650101,-66.979736],[85.622299,-66.96537],[85.617441,-66.9509],[85.358749,-66.854265],[85.314514,-66.776027],[85.340352,-66.723317],[85.552845,-66.728485],[85.806267,-66.77458],[85.937732,-66.894159],[85.82239,-66.953277]]],[[[48.546009,-66.784192],[48.377957,-66.807343],[48.304473,-66.797835],[48.295998,-66.773857],[48.293931,-66.750137],[48.300752,-66.724247],[48.3577,-66.703783],[48.637786,-66.700993],[48.751061,-66.719648],[48.78248,-66.731172],[48.785581,-66.767552],[48.774729,-66.778301],[48.546009,-66.784192]]],[[[163.302002,-66.821192],[163.283605,-66.881964],[163.234616,-66.868011],[163.163922,-66.819125],[163.089611,-66.70058],[163.156171,-66.688487],[163.237923,-66.708744],[163.271099,-66.767552],[163.299108,-66.798403],[163.302002,-66.821192]]],[[[86.541829,-66.767449],[86.426694,-66.792047],[86.336984,-66.787603],[86.232287,-66.732929],[86.277762,-66.696652],[86.383286,-66.674845],[86.520642,-66.686885],[86.556712,-66.705747],[86.652003,-66.71815],[86.541829,-66.767449]]],[[[-67.988506,-67.474434],[-68.092531,-67.538668],[-68.17511,-67.558202],[-68.250402,-67.53965],[-68.3251,-67.532415],[-68.381299,-67.555411],[-68.439409,-67.656283],[-68.506717,-67.707133],[-68.580408,-67.732765],[-68.622369,-67.722584],[-68.664046,-67.722894],[-68.733706,-67.745684],[-68.8183,-67.753435],[-68.901344,-67.744237],[-68.982347,-67.680003],[-69.09756,-67.602747],[-69.120349,-67.577942],[-69.138048,-67.515207],[-69.132648,-67.452678],[-69.082419,-67.403172],[-68.819928,-67.233622],[-68.733577,-67.157192],[-68.656372,-67.070428],[-68.574594,-66.992603],[-68.416852,-66.853283],[-68.335927,-66.802072],[-67.937656,-66.656861],[-67.830531,-66.624305],[-67.711107,-66.632987],[-67.681135,-66.708951],[-67.740795,-66.746158],[-67.932385,-66.844498],[-67.969179,-66.982113],[-67.968404,-67.032187],[-67.948922,-67.044796],[-67.876084,-67.062366],[-67.827766,-67.081952],[-67.761181,-67.122931],[-67.687853,-67.147374],[-67.848075,-67.219153],[-67.956337,-67.255378],[-68.030106,-67.299974],[-68.175161,-67.344158],[-68.235106,-67.37196],[-68.144414,-67.38245],[-68.00698,-67.418003],[-67.969489,-67.450301],[-67.988506,-67.474434]]],[[[85.328466,-66.611903],[85.222426,-66.643425],[85.136127,-66.637121],[85.079593,-66.604255],[85.068741,-66.583791],[85.121037,-66.518575],[85.164755,-66.521572],[85.194004,-66.556092],[85.328466,-66.611903]]],[[[98.846091,-66.469793],[98.75173,-66.481678],[98.655095,-66.453359],[98.605175,-66.399926],[98.596494,-66.382666],[98.748629,-66.36923],[98.949857,-66.420493],[98.846091,-66.469793]]],[[[162.611398,-66.477337],[162.557137,-66.525086],[162.511352,-66.520125],[162.302786,-66.399719],[162.326247,-66.347423],[162.297308,-66.303705],[162.302063,-66.264689],[162.310538,-66.251305],[162.563235,-66.432586],[162.611398,-66.477337]]],[[[100.264712,-66.216578],[100.133144,-66.229497],[100.081984,-66.202729],[100.0763,-66.188053],[100.174382,-66.131002],[100.290551,-66.112398],[100.281559,-66.179991],[100.264712,-66.216578]]],[[[-66.595309,-66.200662],[-66.818629,-66.312696],[-66.850023,-66.305462],[-66.867541,-66.293886],[-66.866998,-66.274766],[-66.791525,-66.233631],[-66.778993,-66.110848],[-66.631354,-66.06682],[-66.575207,-66.082426],[-66.622853,-66.133896],[-66.592622,-66.178596],[-66.595309,-66.200662]]],[[[96.612636,-66.035814],[96.727357,-66.060825],[96.931582,-66.058345],[97.005583,-66.096792],[97.018812,-66.139477],[97.015608,-66.163971],[96.93396,-66.200765],[96.394561,-66.225053],[96.307021,-66.185882],[96.398798,-66.080152],[96.499774,-66.045942],[96.612636,-66.035814]]],[[[92.601408,-65.808334],[92.470563,-65.821667],[92.333,-65.807197],[92.262824,-65.760017],[92.248147,-65.739915],[92.301477,-65.706738],[92.496401,-65.702191],[92.633757,-65.730716],[92.664556,-65.76043],[92.66962,-65.774848],[92.601408,-65.808334]]],[[[-65.845278,-65.842441],[-66.063921,-65.880888],[-66.175309,-65.866522],[-66.181459,-65.826318],[-66.153476,-65.773711],[-66.049632,-65.744772],[-66.066944,-65.666121],[-65.999687,-65.632841],[-65.968319,-65.571036],[-65.833573,-65.527214],[-65.636892,-65.547782],[-65.667976,-65.626226],[-65.669681,-65.652892],[-65.783731,-65.674286],[-65.813858,-65.686585],[-65.840834,-65.738519],[-65.835743,-65.813812],[-65.845278,-65.842441]]],[[[100.981464,-65.67749],[100.546866,-65.701261],[100.512346,-65.675422],[100.350599,-65.672942],[100.292618,-65.651238],[100.270293,-65.603282],[100.32414,-65.520703],[100.409406,-65.465616],[100.545109,-65.408979],[100.606914,-65.39637],[100.883383,-65.378076],[101.07872,-65.402571],[101.220623,-65.472231],[101.258967,-65.527628],[101.2384,-65.564525],[100.981464,-65.67749]]],[[[103.397234,-65.445359],[103.337186,-65.46851],[103.175956,-65.454661],[103.138439,-65.435024],[103.124279,-65.338337],[103.112807,-65.312034],[103.054413,-65.285369],[102.788796,-65.235966],[102.759547,-65.167857],[102.796134,-65.136334],[102.892872,-65.129719],[103.136785,-65.190594],[103.190839,-65.237103],[103.181744,-65.307745],[103.186188,-65.330534],[103.261015,-65.377301],[103.378941,-65.426497],[103.397234,-65.445359]]],[[[-63.316181,-64.861105],[-63.474389,-64.90658],[-63.558363,-64.90596],[-63.459273,-64.796303],[-63.366902,-64.792066],[-63.219391,-64.729744],[-63.177223,-64.738735],[-63.25696,-64.790825],[-63.316181,-64.861105]]],[[[-57.24048,-64.566756],[-57.326263,-64.570684],[-57.433388,-64.540195],[-57.447909,-64.488466],[-57.44592,-64.459889],[-57.36564,-64.438805],[-57.314532,-64.435395],[-57.022535,-64.352299],[-56.894739,-64.332972],[-56.951712,-64.381755],[-56.945252,-64.42723],[-56.991038,-64.467951],[-57.24048,-64.566756]]],[[[-63.180557,-64.469553],[-63.276959,-64.573319],[-63.130508,-64.572337],[-63.032064,-64.534975],[-62.928246,-64.519317],[-62.836495,-64.571821],[-63.025579,-64.610888],[-63.202571,-64.680289],[-63.275435,-64.717341],[-63.354861,-64.733878],[-63.457827,-64.727367],[-63.558441,-64.734188],[-63.646859,-64.803021],[-63.739489,-64.834285],[-63.7699,-64.808395],[-63.804369,-64.791497],[-64.007095,-64.768501],[-64.099183,-64.732689],[-64.183725,-64.709538],[-64.272066,-64.697601],[-64.226203,-64.635383],[-64.171065,-64.581949],[-63.867156,-64.509809],[-63.896921,-64.487071],[-63.916145,-64.457202],[-63.674402,-64.42139],[-63.668305,-64.384028],[-63.68311,-64.342791],[-63.605569,-64.314162],[-63.534204,-64.272924],[-63.485603,-64.260522],[-63.333622,-64.266206],[-63.229649,-64.32367],[-63.270732,-64.380618],[-63.180557,-64.469553]]],[[[-62.325751,-64.424439],[-62.395927,-64.464644],[-62.455149,-64.471672],[-62.508117,-64.454102],[-62.579689,-64.514253],[-62.726993,-64.496011],[-62.781795,-64.47901],[-62.74681,-64.471723],[-62.720895,-64.44449],[-62.643018,-64.391625],[-62.504009,-64.25339],[-62.479747,-64.210602],[-62.590283,-64.139702],[-62.610721,-64.116344],[-62.585683,-64.075572],[-62.544962,-64.045703],[-62.451428,-64.012372],[-62.328774,-64.013508],[-62.267615,-64.039967],[-62.268752,-64.090093],[-62.05848,-64.1381],[-62.093853,-64.23458],[-62.174261,-64.295972],[-62.185708,-64.368836],[-62.303685,-64.401392],[-62.325751,-64.424439]]],[[[-61.95244,-64.077174],[-62.043908,-64.080378],[-62.020757,-64.027358],[-61.936266,-63.990254],[-61.798264,-63.966586],[-61.886243,-64.026996],[-61.911125,-64.054539],[-61.95244,-64.077174]]],[[[-57.845999,-64.053868],[-57.808559,-64.067562],[-57.773677,-64.061516],[-57.741173,-64.047873],[-57.710064,-64.015162],[-57.592913,-63.967103],[-57.479742,-63.961625],[-57.517104,-64.010615],[-57.249472,-64.097069],[-57.272804,-64.166264],[-57.222238,-64.221403],[-57.327606,-64.237784],[-57.413958,-64.29592],[-57.338407,-64.318296],[-57.294688,-64.366975],[-57.387861,-64.378861],[-57.580769,-64.350439],[-57.683218,-64.35726],[-57.670738,-64.310906],[-57.703294,-64.293233],[-57.822822,-64.302018],[-57.871501,-64.40103],[-57.909793,-64.410073],[-57.952245,-64.394054],[-57.920697,-64.331215],[-57.971081,-64.320415],[-58.021569,-64.321603],[-58.169467,-64.368525],[-58.214064,-64.369714],[-58.304446,-64.314575],[-58.019967,-64.242022],[-58.137712,-64.206158],[-58.162232,-64.160786],[-58.147091,-64.097328],[-58.250444,-64.106836],[-58.351988,-64.130711],[-58.397593,-64.134741],[-58.438107,-64.113451],[-58.424955,-64.067769],[-58.341911,-63.994285],[-58.274784,-63.916253],[-58.14567,-63.877599],[-58.070378,-63.84742],[-57.970694,-63.834656],[-57.925658,-63.806079],[-57.831348,-63.803805],[-57.779517,-63.868298],[-57.780679,-63.906848],[-57.82693,-63.949223],[-57.845999,-64.053868]]],[[[-57.374167,-63.807216],[-57.360214,-63.824786],[-57.160847,-63.815691],[-57.104002,-63.841219],[-57.218001,-63.875636],[-57.247766,-63.868401],[-57.343729,-63.87853],[-57.616348,-63.853622],[-57.683244,-63.812694],[-57.439331,-63.791403],[-57.374167,-63.807216]]],[[[-60.65314,-63.866644],[-60.77768,-63.902146],[-60.852456,-63.891035],[-60.97219,-63.849074],[-60.810029,-63.83662],[-60.796697,-63.716679],[-60.714841,-63.668827],[-60.562344,-63.695905],[-60.655905,-63.75895],[-60.688874,-63.80794],[-60.654974,-63.850108],[-60.65314,-63.866644]]],[[[-55.872553,-63.535605],[-55.956708,-63.579943],[-56.178374,-63.513281],[-56.235218,-63.468839],[-56.209845,-63.436903],[-55.857929,-63.407344],[-55.76181,-63.422123],[-55.719177,-63.492093],[-55.872553,-63.535605]]],[[[-57.020648,-63.372824],[-56.927372,-63.505529],[-56.781852,-63.571675],[-56.834768,-63.631206],[-56.973674,-63.624592],[-57.119195,-63.637821],[-57.152268,-63.571675],[-57.097698,-63.523512],[-57.152268,-63.479071],[-57.283862,-63.490646],[-57.460647,-63.513591],[-57.581493,-63.546612],[-57.736935,-63.616633],[-57.856747,-63.656838],[-58.262976,-63.763394],[-58.5319,-63.915427],[-58.72287,-64.077484],[-58.838987,-64.186831],[-59.005308,-64.194893],[-59.047321,-64.234477],[-58.977247,-64.265896],[-58.923013,-64.27928],[-58.799299,-64.292664],[-58.819143,-64.338967],[-58.905133,-64.352196],[-58.895443,-64.388886],[-58.805914,-64.4448],[-58.78607,-64.524175],[-58.891904,-64.537404],[-59.050654,-64.451414],[-59.229402,-64.44356],[-59.369678,-64.403562],[-59.460758,-64.345581],[-59.546747,-64.35881],[-59.61217,-64.440149],[-59.573206,-64.530789],[-59.645966,-64.583706],[-59.734385,-64.558901],[-59.765029,-64.451414],[-59.850166,-64.433638],[-59.963079,-64.431364],[-60.242467,-64.546861],[-60.340497,-64.550633],[-60.393672,-64.609389],[-60.555962,-64.676517],[-60.659935,-64.729227],[-60.915372,-64.906891],[-61.059833,-64.981305],[-61.331832,-65.023783],[-61.439474,-65.017685],[-61.503036,-64.999701],[-61.603237,-64.987816],[-61.703102,-64.987196],[-61.736174,-65.033498],[-61.577424,-65.185633],[-61.663414,-65.23855],[-61.855599,-65.235398],[-61.947841,-65.192248],[-62.024503,-65.232555],[-62.084655,-65.273225],[-62.145323,-65.331774],[-62.053674,-65.456831],[-61.903374,-65.513469],[-61.795706,-65.522977],[-61.756018,-65.569279],[-61.99143,-65.589123],[-62.150568,-65.69878],[-62.222424,-65.775055],[-62.305029,-65.840477],[-62.293272,-65.916441],[-62.16912,-66.03137],[-62.005047,-66.112915],[-61.839036,-66.119581],[-61.624786,-66.094725],[-61.574711,-66.071471],[-61.359143,-66.058758],[-61.2661,-65.980003],[-61.198171,-65.974526],[-61.137606,-65.988633],[-61.039266,-65.991992],[-60.988132,-65.940212],[-60.912788,-65.920886],[-60.812975,-65.934115],[-60.61831,-65.933081],[-60.565393,-65.979383],[-60.624924,-66.0323],[-60.743987,-66.10506],[-60.856435,-66.065373],[-60.955654,-66.071987],[-61.009294,-66.110538],[-60.902737,-66.19105],[-60.942424,-66.26381],[-61.028414,-66.336571],[-61.134247,-66.290269],[-61.14975,-66.21172],[-61.292997,-66.164592],[-61.431904,-66.144748],[-61.526136,-66.225673],[-61.675636,-66.249548],[-61.696487,-66.343185],[-61.756018,-66.429175],[-61.842008,-66.402717],[-61.875442,-66.296056],[-62.116487,-66.20893],[-62.24126,-66.197044],[-62.494139,-66.219369],[-62.582841,-66.217508],[-62.68206,-66.237352],[-62.75482,-66.310112],[-62.650305,-66.363649],[-62.615371,-66.435789],[-62.617929,-66.489636],[-62.637566,-66.511185],[-62.655059,-66.556092],[-62.543154,-66.620998],[-62.536539,-66.706987],[-62.628885,-66.706161],[-62.704772,-66.680116],[-62.996744,-66.452843],[-63.179523,-66.352539],[-63.257529,-66.26381],[-63.448551,-66.24376],[-63.586604,-66.241693],[-63.752511,-66.277763],[-63.687554,-66.319828],[-63.654404,-66.382873],[-63.755689,-66.409021],[-63.880411,-66.505966],[-63.964359,-66.588752],[-64.015028,-66.606632],[-64.077737,-66.654071],[-63.808761,-66.760938],[-63.769022,-66.803209],[-63.754733,-66.872972],[-63.839612,-66.912039],[-64.042597,-66.927232],[-64.400947,-66.853335],[-64.553987,-66.851785],[-64.606904,-66.799592],[-64.686279,-66.806206],[-64.735423,-66.894159],[-64.793378,-66.971984],[-64.878102,-67.024487],[-64.854072,-67.104793],[-64.785497,-67.123706],[-64.838724,-67.156056],[-64.950862,-67.183237],[-65.026904,-67.214037],[-64.858258,-67.242769],[-64.826477,-67.269124],[-64.819294,-67.307364],[-65.079588,-67.335373],[-65.248518,-67.341987],[-65.350114,-67.310982],[-65.443132,-67.326174],[-65.503154,-67.377231],[-65.523411,-67.444617],[-65.503877,-67.528229],[-65.470804,-67.587864],[-65.446749,-67.610188],[-65.418069,-67.659591],[-65.574054,-67.788368],[-65.589247,-67.816325],[-65.600047,-67.875702],[-65.527829,-67.929962],[-65.469435,-68.00944],[-65.551161,-68.048301],[-65.639502,-68.13057],[-65.546226,-68.146693],[-65.387476,-68.150414],[-65.218029,-68.140078],[-64.958846,-68.067525],[-64.884716,-68.056362],[-64.853452,-68.083131],[-64.829474,-68.127469],[-64.89593,-68.168397],[-65.365204,-68.287459],[-65.45202,-68.336759],[-65.331381,-68.364147],[-65.089717,-68.370245],[-64.996466,-68.407762],[-65.054525,-68.44931],[-65.140075,-68.489204],[-65.241619,-68.583255],[-65.158343,-68.617982],[-64.898281,-68.673327],[-64.428904,-68.746139],[-64.07846,-68.771202],[-64.156854,-68.686867],[-64.16923,-68.582532],[-63.924465,-68.497627],[-63.796488,-68.469774],[-63.216601,-68.418873],[-63.056533,-68.420733],[-62.933311,-68.442592],[-62.979716,-68.48631],[-63.114773,-68.470601],[-63.347497,-68.499436],[-63.70732,-68.592144],[-63.773466,-68.631831],[-63.747008,-68.704592],[-63.442737,-68.764123],[-63.343518,-68.810425],[-63.478239,-68.951192],[-63.455966,-69.041935],[-63.301479,-69.140999],[-63.094386,-69.253034],[-62.994108,-69.328946],[-62.839776,-69.371838],[-62.586794,-69.477206],[-62.450549,-69.584331],[-62.407141,-69.82721],[-62.202425,-70.027973],[-61.96107,-70.120112],[-61.934612,-70.199487],[-62.013987,-70.278862],[-62.217876,-70.23318],[-62.331487,-70.278862],[-62.377789,-70.364852],[-62.232268,-70.424383],[-62.000758,-70.497144],[-61.504664,-70.490529],[-61.491435,-70.569904],[-61.60533,-70.616671],[-61.696487,-70.675737],[-61.808935,-70.70881],[-61.994143,-70.728654],[-62.040445,-70.801414],[-61.96107,-70.900633],[-61.702171,-70.856708],[-61.513397,-70.851127],[-61.312841,-70.86756],[-61.251656,-71.002281],[-61.017252,-71.16687],[-60.962268,-71.244592],[-61.003067,-71.319316],[-61.148433,-71.341898],[-61.23729,-71.400551],[-61.369298,-71.452331],[-61.51593,-71.479099],[-61.789556,-71.616042],[-61.909549,-71.630873],[-61.958797,-71.657796],[-61.725452,-71.672576],[-61.5628,-71.675263],[-61.213571,-71.564055],[-61.081331,-71.58855],[-60.995341,-71.66131],[-60.949039,-71.7473],[-61.035029,-71.82006],[-61.644526,-71.862848],[-61.938901,-71.903621],[-62.25666,-72.017619],[-61.894046,-72.071001],[-61.628016,-72.052708],[-61.492675,-72.072706],[-61.310257,-72.112704],[-61.107479,-72.091465],[-60.951778,-72.050227],[-60.833232,-72.051519],[-60.719415,-72.072603],[-60.704299,-72.144175],[-60.69107,-72.269852],[-60.664612,-72.362456],[-60.730319,-72.426018],[-61.047509,-72.470512],[-61.279768,-72.468289],[-61.286124,-72.600788],[-60.939143,-72.699697],[-60.724143,-72.646883],[-60.53232,-72.673342],[-60.53232,-72.832092],[-60.384681,-73.007326],[-60.254508,-73.0173],[-60.148674,-72.937925],[-60.009768,-72.937925],[-59.956852,-73.030529],[-60.016383,-73.189279],[-60.122216,-73.275269],[-60.403749,-73.24018],[-60.560691,-73.211397],[-60.686626,-73.271031],[-60.895838,-73.320434],[-61.081331,-73.328185],[-61.242096,-73.250257],[-61.428415,-73.191449],[-61.726433,-73.160754],[-62.008303,-73.147628],[-61.914768,-73.215737],[-61.787593,-73.254908],[-61.737673,-73.375521],[-61.636956,-73.500164],[-61.405445,-73.467092],[-61.07978,-73.538715],[-60.878862,-73.612044],[-60.790289,-73.711831],[-60.902737,-73.870581],[-61.088255,-73.929441],[-61.20339,-73.956674],[-61.40405,-73.896006],[-61.545385,-73.895954],[-61.691707,-73.92386],[-61.741601,-73.996207],[-61.838235,-74.032018],[-61.319456,-74.035946],[-61.160706,-74.055789],[-61.041643,-74.121935],[-61.226852,-74.207925],[-61.57081,-74.194696],[-61.718243,-74.228079],[-61.842783,-74.289677],[-61.331781,-74.328641],[-61.120631,-74.306937],[-60.783674,-74.240998],[-60.704299,-74.307144],[-60.838477,-74.372928],[-61.010792,-74.478296],[-61.370176,-74.511782],[-61.640005,-74.513539],[-61.994557,-74.475816],[-62.08884,-74.45282],[-62.235317,-74.441296],[-62.225654,-74.505581],[-62.132739,-74.549971],[-61.894408,-74.713062],[-61.855237,-74.776779],[-61.927997,-74.862769],[-62.137804,-74.926382],[-62.372441,-74.952117],[-62.56677,-74.895842],[-62.708518,-74.737092],[-62.887112,-74.690789],[-63.07232,-74.67756],[-63.178154,-74.684175],[-63.167922,-74.764583],[-63.125237,-74.849539],[-63.197997,-74.909071],[-63.357006,-74.878323],[-63.558776,-74.90566],[-63.750884,-74.952376],[-63.924723,-75.004465],[-63.570998,-75.030304],[-63.336904,-75.034748],[-63.173193,-75.114743],[-63.23107,-75.15381],[-63.551413,-75.171484],[-63.857492,-75.206159],[-64.279559,-75.292872],[-63.972472,-75.329407],[-63.678433,-75.32796],[-63.474854,-75.33628],[-63.303831,-75.352248],[-63.257529,-75.39855],[-63.363362,-75.451467],[-64.052648,-75.579572],[-64.778289,-75.738167],[-65.04437,-75.787467],[-65.321744,-75.815165],[-65.965684,-75.951694],[-66.370439,-76.013396],[-67.518225,-76.109721],[-69.304421,-76.35074],[-69.915288,-76.521944],[-70.095535,-76.654546],[-70.210128,-76.674131],[-70.550753,-76.718056],[-70.894995,-76.739347],[-71.798687,-76.752782],[-72.7223,-76.689014],[-73.471763,-76.675475],[-73.8798,-76.696765],[-75.268346,-76.581423],[-75.443503,-76.586746],[-75.659278,-76.608192],[-75.831335,-76.608244],[-75.962825,-76.59212],[-76.244178,-76.585351],[-77.190012,-76.629793],[-77.28706,-76.701623],[-77.167997,-76.833914],[-76.823574,-76.99344],[-76.24857,-77.274921],[-75.937246,-77.334452],[-75.748136,-77.39848],[-75.386917,-77.474237],[-74.58061,-77.478061],[-73.478248,-77.535577],[-72.851982,-77.590251],[-72.875133,-77.69381],[-73.25157,-77.894212],[-73.484992,-77.970796],[-74.042142,-78.109392],[-74.812043,-78.177812],[-75.398467,-78.157865],[-76.437835,-78.044177],[-77.742148,-77.940307],[-79.678981,-77.842535],[-80.104123,-77.796543],[-80.601586,-77.751998],[-80.88852,-77.797628],[-81.103132,-77.841812],[-81.580932,-77.846049],[-81.441018,-77.885633],[-79.509663,-78.154351],[-77.85811,-78.350928],[-77.664789,-78.401467],[-77.432581,-78.434644],[-77.452424,-78.560321],[-77.545029,-78.659539],[-77.869143,-78.745529],[-78.711624,-78.752092],[-79.766573,-78.820667],[-80.292277,-78.822734],[-80.816328,-78.754314],[-81.929283,-78.55908],[-82.608466,-78.412423],[-83.082494,-78.246645],[-83.412061,-78.114663],[-83.779015,-77.983612],[-83.752092,-78.066294],[-83.687754,-78.148046],[-83.508256,-78.248092],[-83.245921,-78.357026],[-83.226956,-78.401571],[-83.354958,-78.407565],[-83.544456,-78.355269],[-83.705919,-78.404155],[-83.762737,-78.461102],[-83.696643,-78.537273],[-83.59515,-78.611067],[-83.260029,-78.774261],[-82.97077,-78.816739],[-82.589191,-78.916268],[-81.660876,-79.099823],[-81.502927,-79.162868],[-81.222169,-79.297898],[-81.163206,-79.400373],[-80.892008,-79.501814],[-80.704758,-79.517162],[-80.53482,-79.512821],[-80.478751,-79.426211],[-80.488518,-79.320998],[-80.415758,-79.294539],[-80.151174,-79.268081],[-79.455661,-79.30441],[-76.499124,-79.325649],[-76.217694,-79.387195],[-76.105142,-79.465123],[-76.031607,-79.627077],[-76.343965,-79.820916],[-76.557854,-79.903495],[-76.904008,-79.955326],[-77.222283,-79.994135],[-77.701867,-80.009535],[-78.692245,-79.995375],[-79.660403,-79.996874],[-78.907142,-80.089685],[-78.17605,-80.166838],[-77.160427,-80.152885],[-76.757144,-80.131233],[-76.40732,-80.094904],[-76.259603,-80.160016],[-75.985615,-80.294995],[-75.822421,-80.338197],[-75.709017,-80.38269],[-75.555021,-80.530898],[-75.494508,-80.617456],[-75.344569,-80.718949],[-75.236539,-80.802664],[-75.075593,-80.860025],[-74.806591,-80.886484],[-74.511131,-80.838011],[-73.937859,-80.815945],[-73.383345,-80.893615],[-73.029464,-80.917283],[-72.553214,-80.853101],[-72.173574,-80.763907],[-71.38003,-80.682258],[-71.230634,-80.646757],[-71.017649,-80.619006],[-70.687902,-80.626293],[-70.560029,-80.64655],[-70.392442,-80.735485],[-70.239118,-80.856615],[-70.012465,-80.917748],[-69.772247,-80.961518],[-69.633987,-80.965859],[-69.181586,-81.004926],[-68.589865,-80.967977],[-68.326573,-81.004048],[-68.284612,-81.073862],[-68.143742,-81.130396],[-67.965407,-81.148276],[-65.573692,-81.460505],[-64.750151,-81.52169],[-63.477748,-81.553213],[-62.490237,-81.556779],[-62.353708,-81.576622],[-62.165373,-81.636154],[-62.541862,-81.67827],[-62.945894,-81.683954],[-63.553971,-81.667211],[-63.768634,-81.6761],[-64.232663,-81.659718],[-64.475671,-81.671655],[-64.696123,-81.652328],[-65.021555,-81.69646],[-65.61971,-81.729275],[-65.486643,-81.775008],[-65.263763,-81.785654],[-64.81056,-81.802707],[-64.190185,-81.794852],[-64.137139,-81.869318],[-64.706122,-81.887456],[-65.916204,-81.902236],[-66.042268,-81.913914],[-66.133839,-81.953447],[-65.953049,-81.971017],[-65.843831,-81.993289],[-65.786625,-82.045534],[-65.913206,-82.1832],[-65.713994,-82.279164],[-65.571935,-82.294356],[-65.424425,-82.280352],[-65.170125,-82.318231],[-64.919598,-82.370527],[-64.396555,-82.374455],[-63.772872,-82.304278],[-63.466327,-82.306862],[-62.645318,-82.26304],[-61.901642,-82.271102],[-60.85907,-82.186766],[-60.687091,-82.188575],[-60.527721,-82.199892],[-60.817212,-82.275753],[-62.094525,-82.466646],[-62.552998,-82.503336],[-62.735648,-82.527314],[-62.630926,-82.620693],[-62.465561,-82.718206],[-62.128631,-82.822334],[-61.916964,-82.976692],[-61.708941,-83.009972],[-61.312841,-82.939175],[-61.218402,-82.991833],[-61.200393,-83.097925],[-61.303229,-83.184173],[-61.436322,-83.232439],[-61.53058,-83.279361],[-61.589827,-83.341218],[-61.425289,-83.395581],[-60.983223,-83.427517],[-60.397031,-83.440746],[-59.853809,-83.4424],[-59.516,-83.45842],[-58.289925,-83.120663],[-57.797733,-82.958554],[-57.557127,-82.890186],[-57.3536,-82.840266],[-56.317875,-82.633354],[-56.075047,-82.570205],[-55.800671,-82.478428],[-55.294681,-82.464837],[-54.601106,-82.316164],[-53.986079,-82.200615],[-53.739582,-82.178394],[-53.557578,-82.169403],[-53.33909,-82.144495],[-52.798865,-82.15359],[-52.41496,-82.134883],[-51.730635,-82.061502],[-51.209685,-82.015252],[-50.653027,-81.975461],[-50.029266,-81.967658],[-48.360789,-81.892314],[-47.886839,-81.92518],[-47.360282,-82.004038],[-47.019889,-82.003211],[-46.566687,-81.979233],[-46.258049,-81.946987],[-46.119143,-82.039592],[-46.046383,-82.158654],[-46.198518,-82.271102],[-46.448348,-82.339832],[-46.516742,-82.454553],[-46.175316,-82.511656],[-45.788569,-82.494964],[-45.043731,-82.437965],[-44.454904,-82.365928],[-44.291813,-82.317817],[-44.064204,-82.331408],[-43.669319,-82.270068],[-43.180382,-82.017164],[-42.564528,-81.761624],[-42.046265,-81.597861],[-41.711557,-81.407692],[-41.433848,-81.297725],[-41.125908,-81.214836],[-40.914526,-81.172358],[-40.440808,-81.165123],[-39.762322,-81.032004],[-38.771711,-80.88235],[-38.01093,-80.954283],[-37.209248,-81.063837],[-36.812424,-80.974695],[-36.499524,-80.959554],[-36.233984,-80.920487],[-35.965758,-80.890876],[-35.775899,-80.812741],[-35.520565,-80.745665],[-35.326985,-80.650684],[-34.349939,-80.603452],[-33.328735,-80.540407],[-33.191328,-80.518651],[-33.057202,-80.531673],[-32.706215,-80.513897],[-32.2557,-80.460773],[-31.634239,-80.44465],[-31.312114,-80.450076],[-31.01544,-80.308121],[-30.425321,-80.279647],[-29.797349,-80.223372],[-29.531499,-80.181824],[-29.329109,-80.172109],[-24.240272,-80.061883],[-24.01982,-80.008966],[-23.574447,-79.964834],[-23.40686,-79.859001],[-24.088266,-79.814818],[-24.299855,-79.770841],[-24.533897,-79.75787],[-24.670427,-79.774614],[-25.258659,-79.762521],[-29.949303,-79.599069],[-30.049091,-79.585374],[-30.211251,-79.485277],[-30.177946,-79.304306],[-30.315948,-79.163126],[-30.645256,-79.124162],[-30.985183,-79.127935],[-31.412806,-79.145195],[-32.541832,-79.222192],[-32.994208,-79.228807],[-34.19739,-79.110261],[-34.994939,-78.977556],[-35.515966,-78.933011],[-35.890104,-78.843508],[-36.239152,-78.774261],[-36.26561,-78.615511],[-36.180887,-78.468388],[-35.509248,-78.041179],[-35.087594,-77.837109],[-34.808361,-77.820573],[-34.551451,-77.728537],[-34.290201,-77.521831],[-34.075796,-77.425403],[-33.591174,-77.311198],[-33.376769,-77.281691],[-32.614076,-77.140769],[-32.405303,-77.136222],[-32.063386,-77.159838],[-31.675787,-77.033075],[-30.489193,-76.762291],[-30.221974,-76.660385],[-29.891555,-76.59796],[-28.933655,-76.370274],[-28.079417,-76.257826],[-27.653087,-76.226406],[-27.134514,-76.157367],[-26.560079,-76.054737],[-26.059334,-75.957172],[-24.269573,-75.767003],[-23.197287,-75.717704],[-22.465497,-75.661066],[-21.948112,-75.694139],[-21.433777,-75.68308],[-20.989023,-75.634401],[-20.783274,-75.59399],[-20.487529,-75.491981],[-19.493017,-75.539937],[-18.850937,-75.470173],[-18.585165,-75.462577],[-18.304562,-75.431364],[-18.41515,-75.396535],[-18.516952,-75.38992],[-18.617256,-75.342429],[-18.749238,-75.242125],[-18.617256,-75.115363],[-18.516952,-75.052008],[-18.221208,-74.974545],[-18.068246,-74.862975],[-17.922725,-74.699213],[-17.435829,-74.379129],[-17.299016,-74.333912],[-16.989242,-74.319804],[-16.727113,-74.327608],[-16.429534,-74.323887],[-15.672526,-74.407293],[-15.531243,-74.375615],[-15.289759,-74.280892],[-15.089177,-74.163276],[-14.658919,-73.98892],[-14.573808,-73.93745],[-14.611454,-73.851771],[-15.259632,-73.888875],[-15.748801,-73.945615],[-16.22009,-73.915746],[-16.281895,-73.867015],[-16.180867,-73.830222],[-16.003152,-73.815959],[-15.935663,-73.757616],[-16.097462,-73.709092],[-16.387728,-73.681342],[-16.518857,-73.644032],[-16.507023,-73.555975],[-16.435193,-73.425699],[-16.279104,-73.388492],[-16.149009,-73.33449],[-15.802828,-73.152175],[-15.596019,-73.096778],[-15.007037,-73.047479],[-14.320981,-73.12303],[-14.164711,-73.102411],[-14.00007,-73.000557],[-14.168329,-72.843254],[-14.298243,-72.784601],[-14.297752,-72.732976],[-13.938937,-72.756231],[-13.602859,-72.792094],[-13.208594,-72.785066],[-12.746917,-72.6289],[-12.094734,-72.498158],[-11.777363,-72.444053],[-11.496993,-72.412944],[-11.346485,-72.281686],[-11.121383,-72.03152],[-10.958111,-71.901967],[-10.961031,-71.822334],[-11.009219,-71.757945],[-11.179364,-71.776859],[-11.333049,-71.78554],[-11.696877,-71.719291],[-12.148194,-71.613665],[-12.284516,-71.495119],[-12.351334,-71.389751],[-12.207828,-71.332235],[-12.073676,-71.296888],[-11.92614,-71.288672],[-11.663055,-71.331305],[-11.328089,-71.439722],[-11.16014,-71.481166],[-10.969816,-71.560076],[-10.825432,-71.553307],[-10.659499,-71.442667],[-10.520076,-71.295493],[-10.40662,-71.250328],[-10.230584,-71.201028],[-10.033516,-71.130645],[-10.122322,-71.060934],[-10.330992,-71.023985],[-10.359956,-70.982385],[-10.270582,-70.935722],[-10.098732,-70.92642],[-9.887996,-71.027344],[-9.599357,-71.09535],[-9.402315,-71.117571],[-9.230646,-71.174053],[-8.965933,-71.36138],[-8.646495,-71.672731],[-8.497719,-71.674798],[-8.216444,-71.647048],[-7.91579,-71.635369],[-7.713736,-71.546434],[-7.66901,-71.324277],[-7.590125,-71.223714],[-7.617979,-71.121498],[-7.756885,-71.017215],[-7.873493,-70.940372],[-7.854916,-70.884614],[-7.752725,-70.842756],[-7.619788,-70.82901],[-7.388148,-70.786945],[-7.031607,-70.835108],[-6.838156,-70.844513],[-6.547502,-70.816917],[-6.245221,-70.755784],[-5.936299,-70.712738],[-5.694737,-70.745294],[-5.58787,-70.85676],[-5.708664,-70.968278],[-5.903794,-71.05189],[-6.080295,-71.154106],[-6.126752,-71.265572],[-6.117476,-71.325982],[-5.950045,-71.34164],[-4.450162,-71.327687],[-4.253223,-71.338436],[-3.994841,-71.338901],[-3.713205,-71.374558],[-3.239642,-71.36045],[-2.812019,-71.320969],[-2.610274,-71.320763],[-2.261329,-71.357091],[-2.0146,-71.433366],[-1.500626,-71.412333],[-1.354253,-71.386805],[-1.216354,-71.284176],[-1.067759,-71.265624],[-0.895857,-71.349236],[-0.840098,-71.539716],[-0.759871,-71.630304],[-0.543165,-71.712677],[-0.326925,-71.641932],[-0.184583,-71.558888],[0.154208,-71.397967],[0.5385,-71.274254],[0.834916,-71.20232],[1.552288,-71.080261],[1.908649,-71.003573],[2.609484,-70.900116],[3.506897,-70.844409],[5.113104,-70.655687],[5.643925,-70.63636],[6.507955,-70.586441],[6.950925,-70.535229],[7.40113,-70.494405],[7.676772,-70.356325],[8.306708,-70.46159],[8.523025,-70.473786],[8.817478,-70.390845],[9.141592,-70.183726],[9.613501,-70.269044],[9.885526,-70.402886],[10.217702,-70.507892],[10.968871,-70.687726],[11.203482,-70.728757],[11.701229,-70.766585],[11.833624,-70.736561],[12.067925,-70.616516],[12.308841,-70.443297],[12.461596,-70.370123],[12.681945,-70.30868],[12.929371,-70.213388],[12.864569,-70.162332],[12.723389,-70.143677],[12.595128,-70.117425],[12.626237,-70.065594],[13.06559,-70.053605],[13.297928,-70.229615],[13.532642,-70.287544],[13.82265,-70.343148],[14.491757,-70.299636],[15.063918,-70.294779],[15.562906,-70.330746],[15.806922,-70.323976],[16.025203,-70.193441],[16.381047,-70.145124],[16.584859,-70.203828],[16.709192,-70.397253],[17.166735,-70.450842],[18.12461,-70.540345],[18.231993,-70.518279],[18.351366,-70.415495],[18.432601,-70.289921],[18.627318,-70.269457],[18.877225,-70.201348],[19.009414,-70.212096],[19.196379,-70.293125],[19.1323,-70.491924],[19.02657,-70.674032],[19.152971,-70.820845],[19.265109,-70.90239],[19.409286,-70.916963],[19.651855,-70.92058],[19.94424,-70.910142],[20.128105,-70.917583],[21.070787,-70.843427],[21.186025,-70.680595],[21.337334,-70.495077],[21.70496,-70.258502],[21.84893,-70.276744],[21.962308,-70.30036],[22.215833,-70.417304],[22.366005,-70.475129],[22.396494,-70.561377],[22.233713,-70.642716],[22.277845,-70.695633],[22.44538,-70.739713],[22.978991,-70.810303],[23.149936,-70.796247],[23.406871,-70.72328],[23.66484,-70.574968],[23.803643,-70.404591],[24.024095,-70.413376],[24.235761,-70.448671],[24.385726,-70.536883],[24.385726,-70.704418],[24.588401,-70.820431],[24.756763,-70.892055],[25.187435,-70.971017],[25.650145,-70.990654],[25.974157,-71.037369],[26.498879,-71.019489],[26.754367,-70.967296],[26.917975,-70.953705],[27.206846,-70.910917],[27.508637,-70.8133],[27.697772,-70.772476],[28.386412,-70.682042],[28.911548,-70.583133],[29.463866,-70.406296],[30.003368,-70.30005],[30.834118,-70.246255],[31.062838,-70.224705],[31.378788,-70.225739],[32.159515,-70.099855],[32.456552,-70.025958],[32.621296,-70.000636],[32.809812,-69.909324],[32.911511,-69.733728],[32.989336,-69.624174],[32.976003,-69.516945],[32.903139,-69.378711],[32.737981,-69.254842],[32.567553,-69.074181],[32.641553,-68.868923],[32.776119,-68.783088],[33.121524,-68.689192],[33.465586,-68.670692],[33.853469,-68.682991],[34.19288,-68.702421],[34.219338,-68.790633],[34.074231,-68.885356],[33.884888,-68.979303],[33.772027,-69.020025],[33.813678,-69.099296],[34.058624,-69.110562],[34.595852,-69.094542],[34.749538,-69.167716],[35.131324,-69.486921],[35.224755,-69.637299],[35.357046,-69.681379],[35.567679,-69.660089],[36.017781,-69.661846],[36.331147,-69.639315],[36.585912,-69.63792],[36.71872,-69.652234],[36.855766,-69.725563],[37.114872,-69.810467],[37.374494,-69.747887],[37.559806,-69.718328],[37.787079,-69.725666],[38.14437,-69.824265],[38.499387,-70.056137],[38.885513,-70.171892],[38.911661,-70.097892],[38.859262,-70.006011],[39.018735,-69.924259],[39.211385,-69.785973],[39.487027,-69.607999],[39.705101,-69.425633],[39.762255,-69.173348],[39.863851,-68.967004],[40.041722,-68.867786],[40.215665,-68.804844],[40.483865,-68.738905],[40.817075,-68.723608],[41.132714,-68.57509],[41.35637,-68.514939],[41.824662,-68.43267],[42.408812,-68.351848],[42.819537,-68.123232],[42.960923,-68.095275],[43.170936,-68.059721],[43.554065,-68.045614],[44.177593,-67.97244],[44.372827,-67.961278],[44.699835,-67.90433],[44.989533,-67.769248],[45.196963,-67.731111],[45.569343,-67.736434],[45.88767,-67.659797],[46.153907,-67.657007],[46.39906,-67.617629],[46.436473,-67.533345],[46.319685,-67.476553],[46.317308,-67.401932],[46.454043,-67.303643],[46.55967,-67.268193],[46.883888,-67.274808],[47.154362,-67.357232],[47.35156,-67.361883],[47.402926,-67.409167],[47.23136,-67.468285],[47.117155,-67.572619],[47.314146,-67.664913],[47.489846,-67.727959],[47.703476,-67.716176],[47.958551,-67.660056],[48.209905,-67.69933],[48.32163,-67.785216],[48.32163,-67.917508],[48.374546,-67.988046],[48.55097,-67.926344],[48.648018,-67.794053],[48.620009,-67.625226],[48.630345,-67.520633],[49.052955,-67.352478],[49.219353,-67.226852],[48.92304,-67.199722],[48.713647,-67.21693],[48.598409,-67.171248],[48.46529,-67.043453],[48.830229,-66.938291],[49.247051,-66.941547],[49.48869,-67.030947],[50.006178,-67.175176],[50.292982,-67.172127],[50.553018,-67.194296],[50.605935,-67.150216],[50.508886,-66.938549],[50.520875,-66.820055],[50.306005,-66.753341],[50.244303,-66.603376],[50.332463,-66.444626],[50.588261,-66.356466],[50.936871,-66.315383],[51.687522,-66.072142],[51.884513,-66.020001],[52.37823,-65.969151],[52.955249,-65.945483],[53.671794,-65.858667],[54.947892,-65.916338],[55.290403,-65.954165],[55.504447,-66.002638],[55.710326,-66.079946],[55.974082,-66.209395],[56.361552,-66.372796],[56.859403,-66.42349],[57.000273,-66.474857],[57.185481,-66.613246],[56.986527,-66.704352],[56.823643,-66.712672],[56.51007,-66.659238],[56.294476,-66.603428],[56.145855,-66.626062],[56.291893,-66.721147],[56.453226,-66.779799],[56.479685,-66.859174],[56.391421,-66.973844],[55.802723,-67.199309],[56.154847,-67.264576],[56.365893,-67.212486],[56.56216,-67.115955],[56.760081,-67.073322],[56.891649,-67.056217],[57.361078,-67.052599],[57.627418,-67.014049],[57.82813,-67.041334],[58.026774,-67.103397],[58.317505,-67.163084],[58.737428,-67.229591],[59.250782,-67.484976],[59.650241,-67.458569],[59.867592,-67.403172],[60.482024,-67.385189],[61.012121,-67.499497],[61.309054,-67.540218],[62.173911,-67.575462],[62.687885,-67.64755],[63.017684,-67.561819],[63.237618,-67.526886],[63.698986,-67.508282],[63.93122,-67.526059],[64.573661,-67.62042],[65.707545,-67.716435],[66.488376,-67.765527],[67.174846,-67.768008],[67.502474,-67.810176],[68.09851,-67.854101],[68.327954,-67.889551],[68.899495,-67.862059],[69.167179,-67.824852],[69.416466,-67.742997],[69.559196,-67.763202],[69.655935,-67.864591],[69.603018,-68.040963],[69.704511,-68.160852],[69.78864,-68.27945],[69.907392,-68.379443],[69.98222,-68.464296],[69.927959,-68.535403],[69.761975,-68.598552],[69.534185,-68.736941],[69.546897,-68.856675],[69.645599,-68.932226],[69.530774,-69.024055],[69.614697,-69.153763],[69.629476,-69.231588],[69.549378,-69.293703],[69.371818,-69.331478],[69.064963,-69.337421],[68.906213,-69.372716],[68.879755,-69.469713],[68.95913,-69.540251],[69.135553,-69.577975],[69.18847,-69.654921],[69.162011,-69.769591],[69.082636,-69.866588],[68.920476,-69.911805],[68.743742,-69.921365],[68.415287,-69.902141],[68.178092,-69.837287],[68.027197,-69.894441],[67.917023,-69.952681],[67.575338,-70.087866],[67.416588,-70.177163],[67.267967,-70.273178],[67.658951,-70.325991],[67.940794,-70.422833],[68.559361,-70.412446],[68.757385,-70.369916],[69.020935,-70.325216],[69.162011,-70.334001],[69.250171,-70.431049],[69.196635,-70.585252],[69.188366,-70.704573],[68.872727,-71.035199],[68.767927,-71.090699],[68.62375,-71.181391],[68.447533,-71.251568],[68.31059,-71.286553],[68.037429,-71.391043],[67.873304,-71.579765],[67.693574,-71.736706],[67.432194,-72.002943],[67.281093,-72.290574],[67.214843,-72.461468],[67.113351,-72.641095],[66.892072,-72.948674],[66.746448,-72.999833],[66.497678,-73.12551],[66.569095,-73.209174],[66.764742,-73.216926],[67.003177,-73.236408],[67.32202,-73.30028],[67.748661,-73.168143],[67.971386,-73.085668],[68.015518,-72.918133],[67.971386,-72.750546],[68.106882,-72.650656],[68.419834,-72.515057],[69.15705,-72.41868],[69.309496,-72.40881],[69.554649,-72.374497],[69.769726,-72.253574],[69.962169,-72.132909],[70.294345,-72.055395],[70.572881,-71.930958],[70.616186,-71.842074],[70.731631,-71.822231],[71.078794,-71.736706],[71.167884,-71.671542],[71.276714,-71.623897],[71.349268,-71.513877],[71.378827,-71.309187],[71.464817,-71.154571],[71.633902,-70.949261],[71.771361,-70.801311],[71.904893,-70.706692],[72.262597,-70.656772],[72.417937,-70.598636],[72.622369,-70.472029],[72.760345,-70.395754],[72.744325,-70.239123],[72.822046,-70.095928],[73.041464,-70.00968],[73.324755,-69.848966],[73.676051,-69.825763],[73.942185,-69.743133],[74.226715,-69.800339],[74.571087,-69.87961],[75.147796,-69.855426],[75.423851,-69.893046],[75.635518,-69.848966],[75.820726,-69.725511],[75.891213,-69.575546],[76.111768,-69.487386],[76.359712,-69.490228],[76.770126,-69.339695],[77.192012,-69.205956],[77.540931,-69.174382],[77.817504,-69.06891],[78.015114,-68.891919],[78.228538,-68.756113],[78.488987,-68.625785],[78.563505,-68.393758],[78.726285,-68.277848],[79.035104,-68.175425],[79.287802,-68.119304],[80.363085,-67.946912],[81.187427,-67.83126],[82.017041,-67.69008],[82.273252,-67.691733],[82.606979,-67.613082],[83.15785,-67.610498],[83.304301,-67.603057],[83.493643,-67.441258],[83.903747,-67.291965],[84.160786,-67.244112],[84.48521,-67.114508],[84.748347,-67.102209],[85.1168,-67.125618],[85.429029,-67.160965],[85.710769,-67.161275],[86.118392,-67.054976],[86.750188,-67.037096],[86.946559,-66.985575],[87.084845,-66.940151],[87.980294,-66.788429],[88.314124,-66.817472],[88.789444,-66.791943],[89.076558,-66.799385],[89.351787,-66.818195],[89.698432,-66.823001],[90.293021,-66.769619],[90.547269,-66.734273],[91.021659,-66.602808],[91.546071,-66.572112],[91.777065,-66.537489],[92.073481,-66.507878],[92.31233,-66.558573],[92.485859,-66.604255],[92.592002,-66.614487],[92.730599,-66.624408],[93.074867,-66.571078],[93.358054,-66.585444],[93.721649,-66.643012],[93.964218,-66.689676],[94.088759,-66.688901],[94.313448,-66.647146],[94.586816,-66.543587],[94.839824,-66.501419],[95.083943,-66.527463],[95.247964,-66.571182],[95.54097,-66.630971],[95.991381,-66.621205],[96.423706,-66.599655],[96.788852,-66.550563],[97.100564,-66.499455],[97.388505,-66.578623],[97.719855,-66.607304],[98.2576,-66.467467],[98.461722,-66.498576],[98.603108,-66.534802],[98.720104,-66.553147],[98.858907,-66.670814],[99.37009,-66.648283],[99.824326,-66.548651],[100.211692,-66.473927],[100.591204,-66.425196],[100.889067,-66.357965],[101.32718,-66.100461],[101.320875,-66.020931],[101.381337,-65.973079],[101.474458,-65.951168],[102.174157,-65.954165],[102.392231,-65.932564],[102.674178,-65.865178],[103.166551,-65.916855],[103.63877,-65.998917],[103.763517,-65.989719],[103.951206,-65.988065],[104.289066,-66.039121],[104.667028,-66.13679],[105.000444,-66.164075],[106.386923,-66.410675],[107.170854,-66.470413],[107.565559,-66.552372],[107.667258,-66.58038],[107.78508,-66.664044],[107.991683,-66.672106],[108.157874,-66.639085],[108.376155,-66.765795],[108.910076,-66.861913],[109.462807,-66.908732],[109.823715,-66.833698],[110.437011,-66.621049],[110.62222,-66.524001],[110.586976,-66.312334],[110.90675,-66.076638],[111.453073,-65.960883],[112.130241,-65.900112],[112.54789,-65.84797],[113.099381,-65.799911],[113.367995,-65.848694],[113.502147,-65.886366],[113.709783,-65.929567],[113.954523,-66.060464],[114.336928,-66.360187],[114.618565,-66.467984],[114.869506,-66.476924],[115.082413,-66.492944],[115.310409,-66.560846],[115.63535,-66.77117],[115.441874,-66.95798],[115.273719,-67.027898],[114.570609,-67.108513],[114.259724,-67.172282],[113.991213,-67.211918],[113.912458,-67.367671],[114.02656,-67.441258],[114.319048,-67.405653],[114.657942,-67.387928],[114.925833,-67.356508],[115.171916,-67.307778],[115.384203,-67.238118],[115.885258,-67.201944],[116.214643,-67.142723],[116.509095,-67.107893],[116.713527,-67.047173],[116.923644,-67.055442],[117.1319,-67.114353],[117.297885,-67.109237],[117.744782,-67.128564],[117.951901,-67.085362],[118.13866,-67.082417],[118.325832,-67.115025],[118.518999,-67.160913],[118.713922,-67.171662],[118.964656,-67.14479],[119.318226,-67.070841],[119.768018,-66.991466],[120.187321,-66.966196],[120.289227,-66.966558],[120.374803,-66.983766],[119.953743,-67.075854],[119.280606,-67.199257],[118.921661,-67.319715],[119.133018,-67.370719],[120.400331,-67.236051],[120.978693,-67.135695],[121.487603,-67.090737],[121.613177,-67.057044],[122.033099,-66.901704],[122.182754,-66.859433],[122.633063,-66.804863],[123.221657,-66.745073],[123.666591,-66.67686],[123.969312,-66.608079],[124.196172,-66.600741],[124.370528,-66.65221],[124.597801,-66.708228],[124.82156,-66.694585],[125.095135,-66.641152],[125.286338,-66.515785],[125.397959,-66.424421],[125.603011,-66.393363],[125.86563,-66.364424],[126.07709,-66.395534],[126.423736,-66.462403],[126.664755,-66.497543],[126.873631,-66.759336],[127.365384,-66.989606],[127.541187,-67.051049],[127.968034,-67.027898],[128.430538,-67.119159],[128.627839,-67.10717],[128.816458,-67.08035],[128.982443,-67.098281],[129.236897,-67.041644],[129.500034,-66.752979],[129.741156,-66.468604],[129.975767,-66.344787],[130.120461,-66.291509],[130.300605,-66.268461],[130.578521,-66.208568],[130.951728,-66.19136],[131.232021,-66.215545],[131.830848,-66.235802],[132.320327,-66.165418],[132.874298,-66.178027],[133.148287,-66.094828],[133.444496,-66.081496],[133.842818,-66.153636],[133.95754,-66.204331],[134.178921,-66.277091],[134.231838,-66.347629],[134.289509,-66.476717],[134.398133,-66.479921],[134.769686,-66.353314],[134.971431,-66.330163],[135.351976,-66.127126],[135.554755,-66.180043],[136.009404,-66.266756],[136.193992,-66.292232],[136.55335,-66.438942],[136.739592,-66.407678],[136.889144,-66.33962],[137.336248,-66.346493],[137.753794,-66.406437],[137.925773,-66.456925],[138.13992,-66.543948],[138.270971,-66.564464],[138.376495,-66.540383],[139.241661,-66.574024],[139.613215,-66.637638],[139.900123,-66.715101],[140.901612,-66.751946],[141.285981,-66.831838],[141.517181,-66.794011],[141.972864,-66.806723],[142.159003,-66.873592],[142.326641,-66.948368],[142.687549,-67.012809],[142.888364,-67.000096],[143.168967,-66.948626],[143.448226,-66.876796],[143.73038,-66.876796],[143.862671,-66.938549],[143.911144,-67.090685],[144.117643,-67.087739],[144.34781,-67.017924],[144.550588,-67.035546],[144.621178,-67.141379],[144.515345,-67.282508],[144.25965,-67.478672],[144.153713,-67.644088],[143.942046,-67.794001],[143.977393,-67.864591],[144.18906,-67.899834],[144.40424,-67.794208],[144.879147,-67.720879],[145.127917,-67.625949],[145.556418,-67.590913],[145.975204,-67.624244],[146.276374,-67.750903],[146.827865,-67.964688],[146.852463,-68.040963],[146.896595,-68.120338],[146.878198,-68.191238],[146.797686,-68.273662],[147.093689,-68.368643],[147.353828,-68.384249],[147.568595,-68.375103],[148.456189,-68.466983],[148.880556,-68.43112],[149.262755,-68.431327],[149.716888,-68.417787],[150.065497,-68.419906],[150.342172,-68.435771],[150.671971,-68.402905],[150.935935,-68.358463],[151.068226,-68.384921],[151.121143,-68.623046],[151.138816,-68.764174],[151.288781,-68.817091],[151.447531,-68.764174],[151.56215,-68.693636],[152.265259,-68.725572],[152.545449,-68.729603],[152.814166,-68.767688],[153.08185,-68.85683],[153.339922,-68.81797],[153.495675,-68.76433],[153.705275,-68.728879],[153.766976,-68.640668],[153.792401,-68.493338],[153.78465,-68.349626],[153.908053,-68.323168],[154.03156,-68.349626],[154.199715,-68.417891],[154.576333,-68.63426],[154.866031,-68.774355],[154.98747,-68.841327],[155.163997,-68.894606],[155.520254,-69.024469],[156.010974,-69.077799],[156.488671,-69.183012],[157.046363,-69.176242],[157.481375,-69.308689],[157.775827,-69.204664],[157.93251,-69.180738],[158.157819,-69.208902],[158.432635,-69.299387],[158.647195,-69.320161],[159.386272,-69.468369],[159.783973,-69.521906],[159.930941,-69.630582],[160.125761,-69.734296],[160.125761,-69.840129],[160.209684,-69.974902],[160.651827,-70.080528],[160.8267,-70.182021],[161.037024,-70.317155],[161.424493,-70.826736],[161.625101,-70.916084],[161.916143,-70.907299],[162.189511,-71.039591],[162.277775,-71.021918],[162.28656,-70.969001],[162.03965,-70.625043],[162.021976,-70.439834],[162.21597,-70.334001],[162.674753,-70.304597],[163.026463,-70.501381],[163.348717,-70.620857],[163.566482,-70.642303],[163.998393,-70.636515],[164.403226,-70.510424],[164.716075,-70.55652],[165.209379,-70.570834],[165.853887,-70.645352],[166.13201,-70.632846],[166.626967,-70.664214],[167.22879,-70.771287],[167.569441,-70.810251],[167.640031,-70.854383],[167.798781,-70.924921],[167.878156,-71.013133],[167.966316,-71.092508],[168.172609,-71.1832],[168.382828,-71.197359],[168.797894,-71.274771],[169.663784,-71.511345],[169.976943,-71.580695],[170.162358,-71.630459],[170.250518,-71.568758],[170.276873,-71.443908],[170.435726,-71.418793],[170.603365,-71.604001],[170.779685,-71.745129],[170.85906,-71.868584],[170.675402,-71.968578],[170.409268,-71.947959],[170.22406,-71.947959],[170.030066,-72.115546],[169.953482,-72.402867],[170.127115,-72.397751],[170.259406,-72.371293],[170.285865,-72.477126],[170.20649,-72.565338],[170.04774,-72.600633],[169.774888,-72.533815],[169.440335,-72.48679],[169.072399,-72.468703],[168.718829,-72.38447],[168.576202,-72.379148],[168.428407,-72.383385],[168.621677,-72.472682],[168.820011,-72.552419],[169.269493,-72.621252],[169.828632,-72.728842],[169.844858,-72.794626],[169.712153,-72.876947],[169.545031,-73.050424],[169.033435,-73.200338],[168.735882,-73.091197],[168.381381,-73.065927],[168.204441,-73.129799],[167.853042,-73.12241],[167.155616,-73.147318],[166.882765,-73.011202],[166.452817,-72.936013],[166.466976,-72.997508],[166.833982,-73.224316],[167.225586,-73.275734],[167.615847,-73.336815],[167.709071,-73.394228],[167.534198,-73.447299],[167.296486,-73.440013],[166.996143,-73.544296],[166.428839,-73.526933],[166.159398,-73.533754],[166.001062,-73.576646],[165.860192,-73.592665],[165.970573,-73.630803],[166.106068,-73.735137],[165.913315,-73.822832],[165.733688,-73.866705],[165.548893,-73.846087],[165.346941,-73.879418],[165.249893,-73.782421],[165.244519,-73.57122],[165.129487,-73.382652],[165.004843,-73.374487],[164.81302,-73.396812],[164.749665,-73.558766],[164.887745,-73.837715],[164.979935,-73.925875],[164.905935,-74.002924],[164.77571,-74.028504],[165.037193,-74.263529],[165.263122,-74.426206],[165.399858,-74.479174],[165.408643,-74.558549],[165.30281,-74.593793],[165.001123,-74.562684],[164.853018,-74.578342],[164.688997,-74.568368],[164.410771,-74.533383],[164.17399,-74.523254],[163.935865,-74.567334],[163.735257,-74.563769],[163.55656,-74.417421],[163.39781,-74.382126],[163.265518,-74.426258],[163.167333,-74.601958],[162.961247,-74.656063],[162.752061,-74.736161],[162.60406,-74.823133],[162.533573,-75.167091],[162.410066,-75.237629],[162.225581,-75.234581],[162.087812,-75.261607],[161.910355,-75.233857],[161.679568,-75.217734],[160.910726,-75.334626],[161.032889,-75.395914],[161.227296,-75.386148],[161.903534,-75.404183],[162.189615,-75.466918],[162.239121,-75.621637],[162.351982,-75.686491],[162.577601,-75.757959],[162.754025,-75.793254],[162.815726,-75.846171],[162.745136,-75.952004],[162.648191,-76.049001],[162.436525,-76.154834],[162.498226,-76.207751],[162.727566,-76.225424],[162.824615,-76.463549],[162.67465,-76.569383],[162.74524,-76.657543],[162.76281,-76.745754],[162.609537,-76.828695],[162.489441,-76.869209],[162.450271,-76.955612],[162.679094,-77.006772],[162.850143,-77.023567],[163.086924,-77.032352],[163.249912,-77.126455],[163.458478,-77.26934],[163.607616,-77.387834],[163.619088,-77.582344],[163.766263,-77.699908],[164.045212,-77.774581],[164.036427,-77.853025],[164.231971,-77.877055],[164.4209,-77.883463],[164.49149,-77.954001],[164.429685,-78.042213],[164.107844,-78.146806],[163.977619,-78.223804],[164.297393,-78.236206],[164.628122,-78.315581],[165.050525,-78.226078],[165.273974,-78.128616],[165.417531,-78.042213],[165.523985,-78.063607],[165.534217,-78.153834],[165.662994,-78.305659],[166.208594,-78.451645],[166.510385,-78.497379],[166.80122,-78.521615],[167.057948,-78.518463],[167.130295,-78.606158],[167.04906,-78.686049],[166.850002,-78.679848],[166.524647,-78.694938],[166.286522,-78.62781],[166.116817,-78.571069],[164.634737,-78.603212],[164.300597,-78.630084],[163.901758,-78.717107],[163.503126,-78.758552],[162.895101,-78.844799],[162.639406,-78.897716],[161.974537,-78.694266],[161.757393,-78.544921],[161.669233,-78.536084],[161.510483,-78.571379],[161.501698,-78.677213],[161.81341,-78.907431],[161.95149,-78.968254],[161.95149,-79.030008],[161.86426,-79.06091],[161.737343,-79.059928],[161.546036,-79.015073],[161.190503,-78.978693],[160.873519,-79.049697],[160.482742,-79.20147],[160.567388,-79.302291],[160.670224,-79.358928],[160.646143,-79.426883],[160.209167,-79.554369],[160.067987,-79.561242],[159.9759,-79.585633],[160.083593,-79.632555],[160.322752,-79.635501],[160.346316,-79.691466],[160.264874,-79.73658],[159.871927,-79.789806],[159.896525,-79.859001],[160.111395,-79.892487],[160.387347,-79.879517],[160.557983,-79.929591],[160.55881,-80.010568],[160.381766,-80.054493],[160.179401,-80.088031],[158.767498,-80.293342],[158.560379,-80.348894],[158.573608,-80.423463],[159.065154,-80.442531],[160.54217,-80.424961],[160.637358,-80.449921],[160.603355,-80.507592],[160.521293,-80.583453],[160.601391,-80.636525],[160.823186,-80.67399],[160.830318,-80.729904],[160.72004,-80.753107],[160.502586,-80.779307],[160.26012,-80.786748],[160.275726,-80.846796],[160.607282,-80.90116],[160.716836,-80.907413],[160.727895,-81.11293],[160.716733,-81.199591],[160.54,-81.241707],[160.478608,-81.270129],[160.469823,-81.340668],[160.907832,-81.390277],[161.582107,-81.609747],[161.730211,-81.61047],[161.996138,-81.653052],[162.425259,-81.764983],[162.576671,-81.832059],[162.821204,-81.866165],[162.85438,-81.920736],[163.004345,-81.96895],[163.602345,-82.12062],[163.680066,-82.187334],[162.426603,-82.314407],[161.166525,-82.407838],[161.28321,-82.489952],[162.643747,-82.481528],[163.011787,-82.534962],[163.174671,-82.51889],[163.268515,-82.463287],[164.00139,-82.396779],[164.747185,-82.354404],[164.980039,-82.384997],[165.981631,-82.629633],[166.445892,-82.722134],[166.742205,-82.757067],[166.956766,-82.764612],[167.116342,-82.801302],[167.271268,-82.879385],[167.232614,-82.952301],[167.297417,-82.985839],[167.40449,-82.99881],[167.601998,-83.047489],[167.827513,-83.030746],[168.091787,-82.974728],[168.275962,-82.987234],[168.607311,-83.065317],[168.481634,-83.12676],[168.408357,-83.155131],[168.31999,-83.210735],[168.240201,-83.229855],[167.973034,-83.243136],[167.825343,-83.242929],[167.674448,-83.231405],[167.657601,-83.272126],[167.84281,-83.316258],[168.11008,-83.361991],[169.837933,-83.399043],[170.332063,-83.47878],[170.817512,-83.435785],[171.035793,-83.448446],[171.220691,-83.475008],[171.289318,-83.555468],[171.537158,-83.581306],[171.917186,-83.644041],[172.450074,-83.675409],[172.873924,-83.673187],[173.397303,-83.758763],[173.661783,-83.760985],[173.822393,-83.810129],[175.011054,-83.839068],[175.187374,-83.877412],[175.32287,-83.940044],[175.605747,-83.967536],[175.911258,-83.973117],[177.581027,-84.07492],[178.208585,-84.129903],[178.352659,-84.126699],[178.49601,-84.135691],[178.944458,-84.181425],[179.403034,-84.206178],[179.620282,-84.268344],[180,-84.351595],[180,-89.998899],[178.593781,-89.998899],[177.187511,-89.998899],[175.78124,-89.998899],[174.375021,-89.998899],[172.968698,-89.998899],[171.562479,-89.998899],[170.15626,-89.998899],[168.749989,-89.998899],[167.343719,-89.998899],[165.9375,-89.998899],[164.531177,-89.998899],[163.124958,-89.998899],[161.718739,-89.998899],[160.312468,-89.998899],[158.906198,-89.998899],[157.499978,-89.998899],[156.093759,-89.998899],[154.687489,-89.998899],[153.281218,-89.998899],[151.874999,-89.998899],[150.46878,-89.998899],[149.062509,-89.998899],[147.656238,-89.998899],[146.250019,-89.998899],[144.8438,-89.998899],[143.437529,-89.998899],[142.031259,-89.998899],[140.62504,-89.998899],[139.218769,-89.998899],[137.812498,-89.998899],[136.406279,-89.998899],[135.000008,-89.998899],[133.593737,-89.998899],[132.187518,-89.998899],[130.781248,-89.998899],[129.374977,-89.998899],[127.968758,-89.998899],[126.562435,-89.998899],[125.156216,-89.998899],[123.749997,-89.998899],[122.343778,-89.998899],[120.937507,-89.998899],[119.531237,-89.998899],[118.125018,-89.998899],[116.718798,-89.998899],[115.312476,-89.998899],[113.906257,-89.998899],[112.500038,-89.998899],[111.093819,-89.998899],[109.687496,-89.998899],[108.281277,-89.998899],[106.875058,-89.998899],[105.468787,-89.998899],[104.062517,-89.998899],[102.656298,-89.998899],[101.250027,-89.998899],[99.843756,-89.998899],[98.437537,-89.998899],[97.031266,-89.998899],[95.624996,-89.998899],[94.218776,-89.998899],[92.812506,-89.998899],[91.406235,-89.998899],[90.000016,-89.998899],[88.593797,-89.998899],[87.187526,-89.998899],[85.781255,-89.998899],[84.375036,-89.998899],[82.968765,-89.998899],[81.562495,-89.998899],[80.156276,-89.998899],[78.750005,-89.998899],[77.343734,-89.998899],[75.937515,-89.998899],[74.531244,-89.998899],[73.124974,-89.998899],[71.718755,-89.998899],[70.312484,-89.998899],[68.906213,-89.998899],[67.499994,-89.998899],[66.093775,-89.998899],[64.687504,-89.998899],[63.281233,-89.998899],[61.875014,-89.998899],[60.468744,-89.998899],[59.062473,-89.998899],[57.656254,-89.998899],[56.249983,-89.998899],[54.843712,-89.998899],[53.437493,-89.998899],[52.031222,-89.998899],[50.624952,-89.998899],[49.218733,-89.998899],[47.812462,-89.998899],[46.406191,-89.998899],[44.999972,-89.998899],[43.593753,-89.998899],[42.187482,-89.998899],[40.781211,-89.998899],[39.374992,-89.998899],[37.968722,-89.998899],[36.562451,-89.998899],[35.156232,-89.998899],[33.749961,-89.998899],[32.34369,-89.998899],[30.937471,-89.998899],[29.5312,-89.998899],[28.12493,-89.998899],[26.718711,-89.998899],[25.31244,-89.998899],[23.906169,-89.998899],[22.49995,-89.998899],[21.093731,-89.998899],[19.68746,-89.998899],[18.281189,-89.998899],[16.87497,-89.998899],[15.468751,-89.998899],[14.062481,-89.998899],[12.65621,-89.998899],[11.249991,-89.998899],[9.843772,-89.998899],[8.437501,-89.998899],[7.03123,-89.998899],[5.625011,-89.998899],[4.21874,-89.998899],[2.81247,-89.998899],[1.40625,-89.998899],[-2e-05,-89.998899],[-1.406265,-89.998899],[-2.81251,-89.998899],[-4.218781,-89.998899],[-5.625052,-89.998899],[-7.031271,-89.998899],[-8.437541,-89.998899],[-9.843786,-89.998899],[-11.250031,-89.998899],[-12.656276,-89.998899],[-14.062521,-89.998899],[-15.468766,-89.998899],[-16.875011,-89.998899],[-18.281256,-89.998899],[-19.687501,-89.998899],[-21.093772,-89.998899],[-22.500016,-89.998899],[-23.906261,-89.998899],[-25.312532,-89.998899],[-26.718777,-89.998899],[-28.125022,-89.998899],[-29.531267,-89.998899],[-30.937512,-89.998899],[-32.343757,-89.998899],[-33.750002,-89.998899],[-35.156247,-89.998899],[-36.562491,-89.998899],[-37.968762,-89.998899],[-39.375007,-89.998899],[-40.781252,-89.998899],[-42.187523,-89.998899],[-43.593794,-89.998899],[-45.000013,-89.998899],[-46.406257,-89.998899],[-47.812502,-89.998899],[-49.218773,-89.998899],[-50.625018,-89.998899],[-52.031263,-89.998899],[-53.437534,-89.998899],[-54.843779,-89.998899],[-56.250024,-89.998899],[-57.656268,-89.998899],[-59.062513,-89.998899],[-60.468758,-89.998899],[-61.875003,-89.998899],[-63.281248,-89.998899],[-64.687493,-89.998899],[-66.093764,-89.998899],[-67.500009,-89.998899],[-68.906254,-89.998899],[-70.312524,-89.998899],[-71.718769,-89.998899],[-73.125014,-89.998899],[-74.531259,-89.998899],[-75.937504,-89.998899],[-77.343749,-89.998899],[-78.749994,-89.998899],[-80.156239,-89.998899],[-81.562484,-89.998899],[-82.968754,-89.998899],[-84.374999,-89.998899],[-85.781244,-89.998899],[-87.187515,-89.998899],[-88.59376,-89.998899],[-90.000005,-89.998899],[-91.40625,-89.998899],[-92.812495,-89.998899],[-94.218765,-89.998899],[-95.62501,-89.998899],[-97.031255,-89.998899],[-98.437526,-89.998899],[-99.843771,-89.998899],[-101.250016,-89.998899],[-102.656261,-89.998899],[-104.062506,-89.998899],[-105.468751,-89.998899],[-106.874995,-89.998899],[-108.28124,-89.998899],[-109.687485,-89.998899],[-111.093756,-89.998899],[-112.500001,-89.998899],[-113.906246,-89.998899],[-115.312517,-89.998899],[-116.718762,-89.998899],[-118.125006,-89.998899],[-119.531251,-89.998899],[-120.937496,-89.998899],[-122.343741,-89.998899],[-123.749986,-89.998899],[-125.156231,-89.998899],[-126.562476,-89.998899],[-127.968747,-89.998899],[-129.374992,-89.998899],[-130.781237,-89.998899],[-132.187507,-89.998899],[-133.593752,-89.998899],[-134.999997,-89.998899],[-136.406242,-89.998899],[-137.812487,-89.998899],[-139.218758,-89.998899],[-140.625003,-89.998899],[-142.031248,-89.998899],[-143.437518,-89.998899],[-144.843763,-89.998899],[-146.250008,-89.998899],[-147.656253,-89.998899],[-149.062498,-89.998899],[-150.468769,-89.998899],[-151.875014,-89.998899],[-153.281259,-89.998899],[-154.687529,-89.998899],[-156.093774,-89.998899],[-157.500019,-89.998899],[-158.906264,-89.998899],[-160.312509,-89.998899],[-161.71878,-89.998899],[-163.125025,-89.998899],[-164.531269,-89.998899],[-165.93754,-89.998899],[-167.343785,-89.998899],[-168.75003,-89.998899],[-170.156275,-89.998899],[-171.56252,-89.998899],[-172.968765,-89.998899],[-174.37501,-89.998899],[-175.781255,-89.998899],[-177.1875,-89.998899],[-178.59377,-89.998899],[-180,-89.998899],[-180,-89.582943],[-179.999989,-89.292999],[-179.999989,-88.587047],[-179.999989,-87.881095],[-179.999989,-87.175195],[-179.999989,-86.469295],[-179.999989,-85.763395],[-179.999989,-85.057495],[-179.999989,-84.351543],[-178.389519,-84.337539],[-178.069022,-84.352319],[-177.730412,-84.39521],[-176.985548,-84.399344],[-176.289001,-84.418361],[-176.107359,-84.475309],[-175.874608,-84.510345],[-175.381021,-84.479753],[-174.986704,-84.465387],[-174.663183,-84.462699],[-171.703674,-84.542385],[-168.667787,-84.683565],[-168.0486,-84.728626],[-167.4922,-84.833685],[-166.911098,-84.819267],[-163.463738,-84.900916],[-162.933408,-84.901226],[-160.820876,-84.986595],[-157.12751,-85.185653],[-156.81032,-85.192164],[-156.459127,-85.186066],[-156.642759,-85.079354],[-156.988293,-84.982254],[-157.453898,-84.912388],[-157.149627,-84.891304],[-156.489667,-84.889237],[-156.620977,-84.839679],[-156.98633,-84.811102],[-158.303433,-84.778029],[-163.568512,-84.52869],[-163.685455,-84.513084],[-163.758965,-84.492827],[-163.897019,-84.470451],[-164.114137,-84.44544],[-164.916853,-84.431384],[-165.135341,-84.409886],[-165.240451,-84.381206],[-165.184821,-84.369579],[-165.125135,-84.374643],[-163.899189,-84.352629],[-163.765166,-84.324207],[-163.757596,-84.3055],[-163.82139,-84.290565],[-164.032127,-84.273977],[-164.528324,-84.190985],[-164.685059,-84.154553],[-164.602816,-84.096675],[-164.502537,-84.071612],[-164.12393,-84.053525],[-164.011327,-84.015647],[-164.082925,-83.946142],[-164.950856,-83.805892],[-165.536324,-83.756593],[-165.921779,-83.790286],[-166.649461,-83.792043],[-167.552868,-83.810853],[-167.801225,-83.790803],[-168.052734,-83.735457],[-168.347341,-83.636807],[-168.497281,-83.611382],[-168.784989,-83.52932],[-169.167679,-83.449841],[-171.187866,-83.256468],[-171.539421,-83.203707],[-174.065985,-82.900108],[-174.171999,-82.847759],[-174.235923,-82.793447],[-173.071136,-82.915817],[-172.851537,-82.916851],[-172.592922,-82.884191],[-172.392056,-82.89308],[-172.124346,-82.862435],[-171.82129,-82.847449],[-171.031312,-82.942999],[-169.440789,-83.096013],[-169.016086,-83.150273],[-168.790157,-83.187894],[-168.60376,-83.201536],[-168.417673,-83.22877],[-168.190994,-83.213318],[-168.05475,-83.226599],[-167.724279,-83.217401],[-166.216903,-83.200761],[-165.619188,-83.21554],[-164.915613,-83.290058],[-164.644338,-83.412479],[-164.445564,-83.46767],[-164.058378,-83.424727],[-163.733411,-83.37305],[-163.111072,-83.329125],[-162.91204,-83.347109],[-162.57418,-83.410671],[-162.197252,-83.518984],[-160.594714,-83.489529],[-159.923515,-83.494697],[-159.444371,-83.543169],[-157.699283,-83.381215],[-157.428447,-83.346385],[-157.0278,-83.234351],[-157.35579,-83.198487],[-157.589213,-83.187428],[-157.679491,-83.129448],[-157.521852,-83.106607],[-157.01824,-83.075187],[-156.037008,-83.026818],[-155.45942,-82.980723],[-155.150266,-82.858353],[-153.822285,-82.669321],[-153.398642,-82.586225],[-153.009854,-82.449644],[-153.882591,-82.176534],[-154.717424,-81.940735],[-154.451445,-81.867561],[-154.188464,-81.810562],[-154.061392,-81.765396],[-153.956644,-81.700232],[-154.232079,-81.623235],[-154.485164,-81.566235],[-154.9078,-81.510322],[-156.492561,-81.376996],[-157.032502,-81.31917],[-156.815074,-81.230959],[-156.528218,-81.162332],[-155.921123,-81.133394],[-152.034745,-81.029007],[-148.122736,-80.900746],[-148.023414,-80.835737],[-148.542943,-80.760083],[-148.984182,-80.741531],[-149.14717,-80.71869],[-149.207424,-80.670373],[-149.214039,-80.604227],[-149.264424,-80.593065],[-149.428625,-80.586244],[-150.132769,-80.510434],[-150.2817,-80.480514],[-150.51613,-80.40951],[-150.575403,-80.353751],[-150.435463,-80.211073],[-150.220696,-80.150043],[-149.845344,-80.117642],[-149.577634,-80.105963],[-148.766082,-80.108133],[-148.448013,-80.090512],[-148.317117,-80.070978],[-148.339803,-80.002765],[-148.430263,-79.971294],[-148.433518,-79.929539],[-148.296421,-79.906543],[-148.129299,-79.90768],[-148.082945,-79.856779],[-148.176531,-79.775905],[-148.417473,-79.731412],[-149.051413,-79.656895],[-150.490602,-79.545584],[-151.048449,-79.459697],[-151.368275,-79.393345],[-151.636139,-79.317691],[-151.903565,-79.280587],[-152.091383,-79.241623],[-152.053401,-79.192737],[-152.137685,-79.115946],[-152.243518,-79.102717],[-152.701346,-79.134859],[-153.517575,-79.117289],[-154.517721,-79.046596],[-155.2099,-78.964844],[-156.114548,-78.744599],[-156.469358,-78.635303],[-156.207902,-78.558667],[-155.91978,-78.510401],[-154.716416,-78.39816],[-154.537642,-78.358886],[-154.293006,-78.259047],[-154.695048,-78.216983],[-155.036604,-78.220807],[-155.34152,-78.191971],[-156.569249,-78.186183],[-157.266778,-78.199774],[-157.848034,-78.07389],[-158.285888,-77.950746],[-158.40694,-77.887752],[-158.500397,-77.778353],[-158.351414,-77.614797],[-158.229975,-77.497647],[-158.246485,-77.354348],[-158.213567,-77.157099],[-158.003089,-77.09116],[-157.84204,-77.079171],[-157.46537,-77.231203],[-157.139292,-77.242107],[-156.667693,-77.212961],[-156.368228,-77.134723],[-156.211209,-77.105629],[-155.919573,-77.098084],[-155.358832,-77.133328],[-155.101742,-77.119478],[-154.814938,-77.12692],[-153.909954,-77.226965],[-153.712576,-77.274198],[-153.606122,-77.310164],[-153.573049,-77.363081],[-153.460602,-77.415998],[-153.076956,-77.442456],[-151.998391,-77.412587],[-151.719002,-77.42592],[-150.956413,-77.573508],[-150.305549,-77.731431],[-150.084348,-77.771015],[-149.717703,-77.797473],[-149.588486,-77.774271],[-149.474023,-77.714791],[-149.125957,-77.642651],[-148.339958,-77.551183],[-148.155706,-77.4623],[-148.259834,-77.412587],[-148.559273,-77.361376],[-148.744404,-77.343237],[-148.843622,-77.283706],[-148.839023,-77.202367],[-148.777477,-77.124956],[-148.572424,-77.105112],[-148.196349,-77.211307],[-147.730228,-77.309751],[-147.566388,-77.325306],[-147.442287,-77.320706],[-147.207236,-77.285877],[-146.927589,-77.259832],[-146.390646,-77.47248],[-146.073611,-77.486691],[-145.677149,-77.488086],[-145.600642,-77.455272],[-145.649657,-77.398376],[-145.713839,-77.33838],[-145.794299,-77.330008],[-145.807968,-77.273268],[-145.634568,-77.221281],[-145.515738,-77.199267],[-145.563202,-77.161698],[-145.753113,-77.103304],[-145.864295,-77.094157],[-145.967002,-77.068784],[-145.933955,-77.029045],[-145.806366,-77.012095],[-145.629245,-76.953752],[-145.685676,-76.884454],[-145.675702,-76.796707],[-145.750478,-76.749062],[-146.166447,-76.657594],[-146.776643,-76.507009],[-147.340407,-76.438383],[-148.601053,-76.493263],[-149.045858,-76.45802],[-149.339664,-76.418953],[-149.654245,-76.365313],[-149.284939,-76.311259],[-148.894834,-76.271778],[-148.78037,-76.23824],[-148.631775,-76.168012],[-148.458995,-76.117938],[-148.320295,-76.104502],[-147.86022,-76.130908],[-146.817338,-76.318029],[-146.597403,-76.337821],[-145.885767,-76.424275],[-145.686864,-76.428823],[-145.442099,-76.409186],[-145.642319,-76.325677],[-145.860394,-76.266611],[-146.382997,-76.099696],[-146.323466,-76.020321],[-145.98775,-75.888753],[-145.10553,-75.878934],[-144.72129,-75.832115],[-144.220597,-75.731449],[-143.57428,-75.563604],[-143.022143,-75.543451],[-142.329834,-75.490947],[-142.094189,-75.529808],[-141.505724,-75.690418],[-141.13461,-75.746022],[-141.008959,-75.750828],[-140.874341,-75.745867],[-141.223364,-75.545879],[-140.998727,-75.51999],[-140.709261,-75.497665],[-140.471007,-75.447281],[-140.293808,-75.405888],[-139.691158,-75.212825],[-139.148814,-75.160115],[-137.618184,-75.075572],[-137.090128,-75.152673],[-136.649871,-75.161768],[-136.549515,-75.139496],[-136.461923,-75.035833],[-136.227855,-74.836052],[-136.030063,-74.765307],[-135.362042,-74.690479],[-134.840394,-74.694097],[-134.465094,-74.776159],[-134.117131,-74.829696],[-133.79635,-74.854604],[-133.474871,-74.851813],[-132.991644,-74.806131],[-132.351244,-74.789388],[-132.04935,-74.76572],[-131.706555,-74.810886],[-130.857459,-74.825975],[-130.195613,-74.890674],[-129.790806,-74.891397],[-129.238256,-74.828869],[-128.9406,-74.820187],[-127.863378,-74.719212],[-127.0202,-74.697817],[-126.383986,-74.742569],[-125.353428,-74.714664],[-124.312458,-74.735748],[-123.889435,-74.773058],[-121.543919,-74.750011],[-119.677005,-74.654616],[-119.422214,-74.621595],[-119.022419,-74.51788],[-118.802924,-74.422279],[-118.655775,-74.392823],[-118.342022,-74.381558],[-117.806189,-74.402952],[-117.068327,-74.473232],[-116.432991,-74.447083],[-115.222625,-74.487443],[-115.105191,-74.455093],[-114.991012,-74.275053],[-114.791024,-73.98861],[-114.623721,-73.902931],[-114.345961,-73.925048],[-113.508518,-74.088862],[-113.489398,-74.158419],[-113.574664,-74.207925],[-113.71357,-74.227769],[-113.753258,-74.366675],[-113.64081,-74.406362],[-113.454258,-74.39427],[-113.332973,-74.454163],[-113.597298,-74.558756],[-113.783101,-74.618132],[-113.903481,-74.644436],[-113.984768,-74.842925],[-114.097216,-74.909071],[-114.110445,-74.981831],[-113.931852,-74.981831],[-113.752534,-74.952117],[-113.593397,-74.943694],[-113.091515,-74.891707],[-112.170047,-74.83228],[-111.868231,-74.801222],[-111.696252,-74.792179],[-111.584424,-74.750837],[-111.73873,-74.653427],[-111.788727,-74.571727],[-111.69589,-74.504083],[-111.722271,-74.386622],[-111.806374,-74.269678],[-111.629977,-74.181467],[-111.466808,-74.200742],[-111.180185,-74.188081],[-111.019833,-74.230456],[-110.770417,-74.268903],[-110.533919,-74.28885],[-110.30706,-74.366675],[-110.229804,-74.536277],[-110.300445,-74.710633],[-110.531956,-74.83631],[-110.967588,-74.951239],[-111.463139,-75.13345],[-111.358779,-75.219956],[-111.104195,-75.190862],[-109.989973,-75.199079],[-109.272162,-75.185023],[-108.822267,-75.206624],[-108.254472,-75.252512],[-107.804732,-75.321552],[-107.26678,-75.334471],[-106.932124,-75.309356],[-106.618861,-75.34398],[-105.399349,-75.197632],[-104.901834,-75.115156],[-104.617821,-75.156291],[-104.159683,-75.120737],[-103.901327,-75.15257],[-103.424922,-75.101307],[-103.121064,-75.095209],[-102.771344,-75.117017],[-101.708102,-75.127352],[-101.627848,-75.221765],[-101.303708,-75.365787],[-101.039331,-75.421908],[-100.706328,-75.398136],[-100.463449,-75.353385],[-100.0828,-75.370438],[-99.531361,-75.308943],[-98.980232,-75.327443],[-98.752339,-75.317108],[-98.645705,-75.27711],[-98.557855,-75.189777],[-98.72725,-75.140788],[-99.208151,-75.078569],[-99.651896,-74.94881],[-99.848603,-74.92168],[-100.164036,-74.937906],[-100.312993,-74.914342],[-100.473345,-74.87238],[-100.264882,-74.822926],[-100.012675,-74.662161],[-100.118586,-74.514986],[-100.238114,-74.484187],[-100.530861,-74.488838],[-100.881847,-74.541135],[-101.02313,-74.504961],[-101.251695,-74.485737],[-101.342749,-74.350087],[-101.586714,-74.096407],[-101.71544,-74.02375],[-102.105132,-73.957708],[-102.440822,-73.925772],[-102.766435,-73.88381],[-102.862734,-73.78361],[-102.799508,-73.645685],[-102.410669,-73.616436],[-102.036609,-73.630596],[-101.828378,-73.655504],[-101.587411,-73.666769],[-101.310736,-73.695243],[-101.13023,-73.734827],[-100.985458,-73.757203],[-100.7178,-73.757823],[-99.781087,-73.720099],[-99.65616,-73.694158],[-99.540999,-73.645117],[-99.343336,-73.634161],[-99.1619,-73.640828],[-98.896154,-73.611165],[-99.200348,-73.570961],[-99.52795,-73.4951],[-100.020789,-73.402548],[-100.436396,-73.353093],[-101.189451,-73.31785],[-101.573743,-73.329632],[-101.81595,-73.311235],[-102.675045,-73.320951],[-102.908778,-73.285191],[-103.076158,-73.184577],[-103.307694,-72.945315],[-103.374977,-72.818862],[-103.216614,-72.772095],[-103.110109,-72.721194],[-102.855861,-72.716233],[-102.484747,-72.735663],[-102.362868,-72.760158],[-102.272021,-72.834985],[-102.362945,-72.911467],[-102.482008,-72.951154],[-102.409273,-72.987431],[-102.028857,-72.998128],[-101.841504,-73.020917],[-101.681204,-73.029909],[-101.331845,-72.995389],[-100.820507,-72.981126],[-100.563572,-73.015543],[-100.258784,-73.041329],[-99.810724,-72.999937],[-98.208599,-73.022261],[-98.01241,-73.033216],[-97.818494,-73.101739],[-97.651037,-73.144424],[-97.476448,-73.126234],[-96.955756,-73.206436],[-96.675825,-73.268551],[-96.394214,-73.30121],[-96.152162,-73.309272],[-95.88055,-73.293872],[-95.529228,-73.241369],[-95.23661,-73.220078],[-95.029594,-73.238992],[-94.586469,-73.249482],[-94.24618,-73.312992],[-93.984645,-73.286741],[-93.70598,-73.215014],[-92.828359,-73.164681],[-92.241031,-73.178427],[-91.168642,-73.306998],[-90.920931,-73.31909],[-90.430909,-73.243229],[-90.273787,-73.118637],[-90.295413,-72.977922],[-90.152424,-72.944539],[-90.035222,-72.960197],[-89.817665,-72.862632],[-89.52236,-72.870901],[-89.34126,-72.889556],[-89.22938,-72.825787],[-89.127164,-72.693185],[-88.779976,-72.683057],[-88.526891,-72.702384],[-88.194094,-72.787546],[-88.194508,-72.85855],[-88.33176,-72.934411],[-88.560739,-73.120756],[-88.419404,-73.228967],[-88.204972,-73.21951],[-87.936332,-73.240955],[-87.608445,-73.19455],[-87.401016,-73.191966],[-87.037938,-73.353869],[-86.791028,-73.363687],[-86.602124,-73.353713],[-85.980741,-73.208503],[-85.801424,-73.192121],[-85.582161,-73.258991],[-85.260578,-73.413245],[-84.98119,-73.502025],[-84.571292,-73.556699],[-84.214182,-73.572718],[-83.796275,-73.645169],[-83.564842,-73.705992],[-83.041902,-73.70718],[-82.81525,-73.732295],[-82.183505,-73.856835],[-81.606124,-73.79565],[-81.308727,-73.738289],[-81.163206,-73.632456],[-81.235966,-73.473706],[-81.262424,-73.314956],[-81.176435,-73.24881],[-81.024299,-73.235581],[-80.336383,-73.414175],[-80.379817,-73.308135],[-80.43878,-73.224987],[-80.614195,-73.083446],[-80.587737,-72.977612],[-80.442216,-72.944539],[-80.151769,-73.000092],[-79.807991,-73.028152],[-79.52173,-73.089544],[-78.963728,-73.312372],[-78.786219,-73.506779],[-78.40787,-73.555768],[-78.144139,-73.547087],[-77.84563,-73.514996],[-77.444053,-73.488021],[-77.135545,-73.495772],[-76.850497,-73.460477],[-76.764508,-73.56631],[-77.033019,-73.718497],[-77.134924,-73.817664],[-77.048935,-73.844123],[-76.887498,-73.820455],[-76.754974,-73.789449],[-76.291203,-73.805365],[-75.916188,-73.736429],[-75.594993,-73.711211],[-75.293073,-73.638761],[-75.043579,-73.645065],[-74.855477,-73.657984],[-74.59402,-73.715242],[-74.34525,-73.683926],[-74.1973,-73.695501],[-73.996046,-73.699842],[-72.929212,-73.447971],[-72.687392,-73.452364],[-72.380796,-73.438411],[-71.994205,-73.37919],[-71.69753,-73.35299],[-71.452713,-73.35454],[-71.017158,-73.262763],[-70.322627,-73.274028],[-69.968618,-73.226486],[-69.2822,-73.169642],[-68.820962,-73.10546],[-68.00034,-72.935548],[-67.667079,-72.834572],[-67.306713,-72.611175],[-67.079543,-72.387571],[-66.82775,-72.09038],[-66.95167,-71.897317],[-67.084143,-71.812205],[-67.195764,-71.718981],[-67.460347,-71.526745],[-67.529929,-71.284537],[-67.504582,-71.057833],[-67.598401,-70.844616],[-67.692193,-70.686176],[-67.88846,-70.421696],[-68.125707,-70.249872],[-68.403339,-70.019705],[-68.403674,-69.809227],[-68.46982,-69.643862],[-68.637562,-69.526402],[-68.707945,-69.432196],[-68.58002,-69.412662],[-68.461552,-69.384033],[-68.140874,-69.34755],[-67.371799,-69.412352],[-67.304362,-69.317577],[-67.110446,-69.248073],[-66.974924,-69.160998],[-67.021227,-69.028706],[-67.187625,-68.974446],[-67.390506,-68.861223],[-67.299039,-68.770737],[-67.133674,-68.770737],[-67.054299,-68.671519],[-67.116905,-68.574832],[-67.041019,-68.453082],[-66.893508,-68.29764],[-66.793334,-68.240382],[-66.977586,-68.146796],[-67.149849,-68.024581],[-67.106699,-67.930065],[-67.021278,-67.831467],[-66.915393,-67.69256],[-66.769872,-67.593342],[-66.677268,-67.560269],[-66.704993,-67.527144],[-66.923119,-67.491591],[-67.124347,-67.485028],[-67.486935,-67.546936],[-67.544502,-67.534637],[-67.564733,-67.502959],[-67.585792,-67.435108],[-67.550393,-67.269227],[-67.493342,-67.112751],[-67.440477,-67.090737],[-67.299039,-67.070789],[-67.160133,-66.951727],[-67.034456,-66.945112],[-66.955081,-66.9848],[-66.928622,-67.14355],[-66.886119,-67.179982],[-66.902164,-67.255998],[-66.836018,-67.282456],[-66.757315,-67.232537],[-66.610011,-67.208559],[-66.551591,-67.262612],[-66.498674,-67.289071],[-66.472216,-67.242769],[-66.490949,-67.114301],[-66.515159,-67.062521],[-66.533272,-66.979322],[-66.502085,-66.940151],[-66.464697,-66.875246],[-66.526812,-66.74068],[-66.503584,-66.689831],[-66.370879,-66.608906],[-66.306567,-66.591956],[-66.181898,-66.592472],[-65.953772,-66.645596],[-65.847474,-66.649833],[-65.766394,-66.624925],[-65.717947,-66.573249],[-65.678466,-66.402717],[-65.775773,-66.342565],[-65.774507,-66.287995],[-65.717508,-66.254509],[-65.617281,-66.135239],[-65.465094,-66.129245],[-65.316344,-66.13989],[-65.172037,-66.116843],[-65.222086,-66.068473],[-65.267458,-65.994266],[-65.105064,-65.957886],[-64.99874,-65.94631],[-64.721677,-65.992819],[-64.613518,-66.019071],[-64.514299,-65.959539],[-64.547372,-65.900008],[-64.653206,-65.866935],[-64.673049,-65.814019],[-64.646591,-65.747873],[-64.474612,-65.780946],[-64.435338,-65.768337],[-64.390044,-65.708495],[-64.416812,-65.679918],[-64.438929,-65.640593],[-64.213465,-65.632944],[-64.180005,-65.61739],[-64.13223,-65.570519],[-64.065929,-65.553673],[-63.862195,-65.555947],[-63.818115,-65.531504],[-63.797961,-65.480396],[-63.90798,-65.467373],[-64.051279,-65.417144],[-64.071122,-65.278237],[-64.038049,-65.179019],[-63.912372,-65.093029],[-63.760237,-65.033498],[-63.48214,-65.084968],[-63.264143,-65.073185],[-63.178154,-65.126102],[-63.059091,-65.139331],[-63.032633,-65.0798],[-63.085705,-65.027917],[-63.119888,-64.942444],[-62.774664,-64.841675],[-62.66449,-64.85754],[-62.527547,-64.833407],[-62.576227,-64.755685],[-62.503466,-64.656467],[-62.404247,-64.643237],[-62.338102,-64.729227],[-62.243327,-64.7469],[-62.139664,-64.726747],[-61.882522,-64.625357],[-61.75638,-64.609854],[-61.631788,-64.604738],[-61.500478,-64.545569],[-61.470041,-64.475599],[-61.395963,-64.427127],[-61.173599,-64.362531],[-61.082158,-64.314782],[-60.88664,-64.149727],[-60.92209,-64.10787],[-60.864161,-64.073453],[-60.277245,-63.923901],[-59.989873,-63.909535],[-59.510186,-63.820652],[-59.217594,-63.713888],[-59.036417,-63.670274],[-58.87206,-63.551831],[-58.673519,-63.534365],[-58.215563,-63.451269],[-57.868064,-63.31877],[-57.389644,-63.22627],[-57.168236,-63.234745],[-57.076691,-63.262546],[-57.020648,-63.372824]]],[[[-55.528026,-63.17356],[-55.466273,-63.199605],[-55.215539,-63.198674],[-55.156266,-63.204772],[-55.106476,-63.249317],[-55.075186,-63.324351],[-55.156783,-63.353084],[-55.593681,-63.335824],[-55.750209,-63.296653],[-55.830488,-63.29841],[-56.009134,-63.341508],[-56.083005,-63.382643],[-56.378543,-63.437316],[-56.462853,-63.418093],[-56.499001,-63.357631],[-56.505331,-63.334273],[-56.475359,-63.318254],[-56.460528,-63.301976],[-56.465954,-63.283527],[-56.385106,-63.234124],[-56.042207,-63.157127],[-55.589625,-63.128291],[-55.528698,-63.156868],[-55.528026,-63.17356]]],[[[-56.059983,-63.078475],[-56.258989,-63.173146],[-56.354126,-63.168805],[-56.545845,-63.098319],[-56.600519,-63.061629],[-56.614162,-63.045092],[-56.488588,-62.982254],[-56.140392,-63.00525],[-56.061766,-63.012743],[-56.058433,-63.01853],[-56.051043,-63.054704],[-56.059983,-63.078475]]],[[[-60.504854,-62.967371],[-60.554696,-62.977499],[-60.619705,-62.969024],[-60.617741,-62.986646],[-60.563688,-63.009022],[-60.621669,-63.018014],[-60.692931,-62.995689],[-60.740447,-62.948664],[-60.70585,-62.905566],[-60.63743,-62.89523],[-60.504854,-62.967371]]],[[[-62.615087,-63.06938],[-62.655266,-63.073824],[-62.638858,-63.031966],[-62.527031,-62.923859],[-62.317431,-62.874146],[-62.344044,-62.917761],[-62.411482,-62.971608],[-62.615087,-63.06938]]],[[[-60.624976,-62.560057],[-60.576323,-62.572666],[-60.139889,-62.548688],[-60.002714,-62.618451],[-59.849571,-62.614937],[-60.220944,-62.745369],[-60.321584,-62.707542],[-60.353778,-62.679223],[-60.378014,-62.616488],[-60.619602,-62.633438],[-60.69691,-62.620725],[-60.79587,-62.662273],[-60.995057,-62.67912],[-61.063321,-62.678913],[-61.149802,-62.634161],[-61.152386,-62.589099],[-60.974722,-62.591683],[-60.837728,-62.533702],[-60.799281,-62.475204],[-60.731843,-62.491017],[-60.624976,-62.560057]]],[[[-59.389031,-62.444302],[-59.52525,-62.451433],[-59.619404,-62.395003],[-59.660694,-62.354282],[-59.478535,-62.352111],[-59.395852,-62.367304],[-59.353374,-62.412883],[-59.389031,-62.444302]]],[[[-58.837953,-62.302502],[-59.059439,-62.34777],[-59.174574,-62.301778],[-59.202427,-62.283071],[-59.063831,-62.239043],[-58.990631,-62.249172],[-58.96208,-62.263848],[-58.878674,-62.267879],[-58.837953,-62.302502]]],[[[-57.978394,-61.911931],[-57.849332,-61.93994],[-57.737995,-61.921233],[-57.676577,-61.94211],[-57.636554,-61.998283],[-57.639577,-62.020452],[-57.806699,-62.011873],[-57.962736,-62.077503],[-58.147556,-62.063447],[-58.172232,-62.11781],[-58.133087,-62.145819],[-58.182981,-62.170003],[-58.341446,-62.119464],[-58.466632,-62.13724],[-58.507353,-62.225659],[-58.56195,-62.243952],[-58.594041,-62.247725],[-58.643986,-62.225194],[-58.745685,-62.217856],[-58.755323,-62.206074],[-58.81904,-62.171244],[-59.003731,-62.209794],[-58.955207,-62.164216],[-58.709538,-62.04474],[-58.683622,-62.008256],[-58.399453,-61.938286],[-58.265172,-61.953272],[-57.978394,-61.911931]]],[[[-54.070699,-61.299152],[-54.115425,-61.308454],[-54.183871,-61.269748],[-54.192242,-61.246546],[-54.121962,-61.201794],[-54.049925,-61.142056],[-54.024345,-61.135234],[-54.041295,-61.25533],[-54.070699,-61.299152]]],[[[-55.165413,-61.220397],[-55.297033,-61.248509],[-55.346926,-61.211612],[-55.369147,-61.146397],[-55.440228,-61.106192],[-55.387001,-61.072706],[-54.670973,-61.116941],[-54.709963,-61.139782],[-55.057616,-61.168617],[-55.165413,-61.220397]]],[[[-45.717772,-60.520905],[-45.499698,-60.546537],[-45.386268,-60.58271],[-45.357433,-60.623844],[-45.228138,-60.639761],[-45.210982,-60.648132],[-45.186384,-60.671904],[-45.172844,-60.698724],[-45.173671,-60.732985],[-45.39805,-60.649683],[-45.709194,-60.645445],[-45.780042,-60.586017],[-45.937294,-60.619917],[-45.954786,-60.597438],[-45.956285,-60.568396],[-45.934813,-60.526589],[-45.834174,-60.543436],[-45.717772,-60.520905]]]]},"type":"Feature","properties":{"ISO_A2":"AQ","NAME":"Antarctica"}},{"geometry":{"type":"Polygon","coordinates":[[[123.594503,-12.425701],[123.595226,-12.435933],[123.573109,-12.434176],[123.572489,-12.423944],[123.594503,-12.425701]]]},"type":"Feature","properties":{"ISO_A2":"AU","NAME":"Ashmore and Cartier Is."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[69.282417,-49.058917],[69.220612,-49.066772],[69.201595,-49.034319],[69.203869,-48.99117],[69.169556,-48.957063],[69.150126,-48.919081],[69.167179,-48.882907],[69.266398,-48.878773],[69.368717,-48.890452],[69.394762,-48.951172],[69.321175,-49.034319],[69.282417,-49.058917]]],[[[69.184852,-49.10956],[69.265158,-49.1154],[69.31425,-49.106201],[69.534908,-48.974323],[69.592786,-48.971016],[69.587308,-49.07194],[69.644049,-49.117363],[69.572322,-49.128991],[69.436206,-49.123978],[69.405097,-49.181701],[69.54235,-49.25565],[69.610769,-49.265778],[69.66658,-49.2649],[69.77076,-49.248105],[69.854372,-49.221543],[69.983977,-49.159893],[70.061388,-49.136019],[70.208356,-49.134985],[70.28494,-49.076436],[70.320184,-49.058556],[70.406276,-49.061088],[70.484308,-49.083929],[70.530817,-49.136949],[70.555415,-49.201441],[70.536811,-49.26552],[70.485031,-49.327635],[70.389843,-49.365617],[70.411444,-49.410937],[70.386123,-49.433933],[70.338374,-49.435277],[70.297653,-49.424786],[70.237811,-49.37156],[70.165774,-49.342983],[69.993175,-49.344946],[69.91566,-49.348564],[69.902121,-49.389233],[69.861193,-49.420497],[69.818302,-49.437654],[69.760011,-49.430212],[69.749262,-49.447576],[69.780268,-49.490157],[69.855922,-49.544056],[69.986457,-49.581676],[70.062835,-49.589324],[70.07348,-49.517804],[70.165774,-49.509329],[70.247733,-49.53062],[70.307161,-49.583485],[70.258792,-49.600796],[70.216211,-49.628805],[70.207426,-49.665082],[70.12433,-49.704408],[70.075134,-49.708542],[69.918968,-49.689318],[69.826054,-49.644876],[69.803936,-49.613612],[69.746679,-49.601778],[69.682083,-49.642241],[69.612837,-49.650974],[69.477651,-49.617385],[69.352697,-49.563176],[69.274563,-49.542815],[69.153123,-49.529741],[69.085944,-49.652938],[68.992926,-49.704976],[68.872623,-49.709834],[68.814746,-49.699602],[68.78281,-49.651284],[68.791181,-49.59966],[68.810508,-49.550153],[68.848335,-49.499562],[68.872107,-49.444372],[68.861875,-49.39223],[68.818466,-49.353886],[68.841411,-49.285312],[68.798829,-49.23162],[68.813609,-49.192087],[68.883372,-49.164906],[68.853813,-49.14129],[68.816709,-49.135088],[68.790148,-49.103669],[68.769581,-49.065894],[68.796556,-48.994735],[68.836863,-48.926212],[68.832006,-48.848698],[68.900322,-48.775627],[68.958716,-48.693823],[69.002435,-48.661216],[69.057212,-48.65641],[69.081293,-48.679302],[69.093075,-48.723899],[69.071578,-48.752838],[69.122737,-48.766067],[69.136173,-48.861048],[69.104134,-48.899909],[69.09938,-48.937633],[69.032717,-49.017628],[69.052147,-49.081913],[69.184852,-49.10956]]],[[[51.834594,-46.439904],[51.76173,-46.448689],[51.696617,-46.428122],[51.659307,-46.373655],[51.741886,-46.326836],[51.784157,-46.358875],[51.815473,-46.394687],[51.834594,-46.439904]]]]},"type":"Feature","properties":{"ISO_A2":"TF","NAME":"Fr. S. and Antarctic Lands"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.716072,17.036997],[-61.748163,16.997154],[-61.859655,17.013329],[-61.882057,17.063145],[-61.887121,17.09813],[-61.817255,17.168926],[-61.738577,17.138489],[-61.708218,17.105054],[-61.686048,17.09844],[-61.686488,17.069811],[-61.694988,17.048934],[-61.716072,17.036997]]],[[[-61.747104,17.574948],[-61.762013,17.548697],[-61.843816,17.596136],[-61.86875,17.685432],[-61.866167,17.70432],[-61.852446,17.714061],[-61.819916,17.696853],[-61.77674,17.690497],[-61.749585,17.661351],[-61.747104,17.574948]]]]},"type":"Feature","properties":{"ISO_A2":"AG","NAME":"Antigua and Barb."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[158.878809,-54.709735],[158.845219,-54.749268],[158.835918,-54.703999],[158.896999,-54.506078],[158.958908,-54.472385],[158.945575,-54.575015],[158.878809,-54.709735]]],[[[147.355998,-43.396989],[147.308869,-43.500755],[147.231458,-43.483134],[147.15384,-43.500187],[147.104954,-43.431147],[147.104644,-43.412905],[147.163142,-43.430269],[147.184639,-43.407789],[147.198488,-43.379212],[147.219676,-43.371358],[147.234042,-43.33043],[147.283858,-43.27896],[147.312487,-43.280304],[147.342459,-43.346243],[147.355998,-43.396989]]],[[[147.434546,-43.240719],[147.371915,-43.240823],[147.348867,-43.232451],[147.337601,-43.183307],[147.296054,-43.161758],[147.319101,-43.145325],[147.327369,-43.114629],[147.352588,-43.080316],[147.397236,-43.118246],[147.434546,-43.240719]]],[[[148.104273,-42.710416],[148.048152,-42.719201],[148.029652,-42.71486],[148.030892,-42.663339],[148.022727,-42.640446],[148.072544,-42.59311],[148.142824,-42.615951],[148.169489,-42.651712],[148.100552,-42.680599],[148.104273,-42.710416]]],[[[145.042961,-40.786709],[145.158716,-40.790636],[145.224345,-40.76516],[145.28305,-40.769914],[145.349402,-40.826397],[145.429397,-40.858229],[145.485105,-40.85239],[145.533474,-40.863965],[145.576469,-40.904066],[145.686023,-40.939103],[145.733772,-40.962047],[145.775423,-40.997136],[145.821518,-41.024627],[146.111113,-41.118058],[146.317509,-41.163482],[146.574444,-41.142398],[146.650615,-41.116198],[146.723479,-41.078009],[146.786007,-41.113666],[146.848122,-41.168081],[146.83603,-41.109377],[146.856597,-41.05832],[146.919436,-41.017754],[146.989819,-40.992381],[147.105781,-40.994242],[147.218849,-40.983441],[147.268975,-40.959722],[147.320548,-40.956466],[147.387727,-40.985508],[147.454804,-41.001683],[147.500796,-40.964166],[147.579344,-40.875541],[147.621718,-40.84469],[147.817675,-40.871717],[147.872969,-40.872595],[147.968777,-40.779629],[148.032856,-40.780921],[148.215274,-40.854922],[148.292892,-40.947113],[148.28545,-41.11532],[148.291548,-41.174592],[148.306224,-41.233142],[148.312219,-41.349672],[148.289895,-41.465066],[148.286897,-41.554983],[148.296613,-41.646192],[148.287621,-41.81569],[148.315733,-41.927725],[148.301677,-42.004206],[148.30147,-42.039966],[148.328032,-42.073762],[148.340848,-42.111124],[148.331029,-42.159183],[148.342605,-42.215356],[148.331236,-42.261606],[148.290308,-42.25494],[148.276976,-42.219438],[148.284624,-42.173394],[148.277182,-42.136394],[148.255788,-42.102649],[148.183131,-42.064771],[148.204422,-42.042033],[148.241629,-42.021827],[148.213724,-41.969996],[148.167215,-42.012267],[148.14117,-42.069835],[148.156259,-42.088335],[148.127527,-42.103735],[148.066549,-42.170294],[148.022727,-42.259436],[148.004847,-42.345167],[148.009395,-42.435911],[147.973532,-42.505881],[147.924439,-42.57244],[147.91214,-42.658533],[147.915034,-42.816404],[147.957719,-42.960478],[147.98087,-43.157055],[147.94542,-43.18186],[147.838553,-43.195089],[147.785843,-43.220049],[147.698923,-43.122587],[147.64797,-43.020578],[147.687347,-42.979909],[147.773957,-43.003421],[147.800415,-42.980219],[147.807443,-42.95407],[147.800002,-42.928077],[147.693445,-42.872008],[147.573866,-42.845705],[147.535832,-42.878003],[147.549061,-42.974483],[147.536762,-42.996445],[147.452323,-43.033394],[147.407985,-42.893816],[147.297914,-42.790876],[147.301945,-42.840486],[147.347627,-42.926527],[147.342666,-42.964406],[147.324992,-43.013498],[147.280757,-43.03174],[147.259777,-43.071117],[147.259777,-43.126463],[147.244997,-43.215915],[147.172857,-43.255912],[146.99695,-43.156384],[146.984858,-43.189818],[146.987545,-43.218757],[147.077359,-43.275911],[147.035914,-43.319009],[147.004702,-43.369652],[146.954679,-43.502461],[146.87396,-43.61248],[146.834273,-43.619353],[146.699191,-43.601989],[146.548502,-43.508869],[146.413213,-43.519566],[146.186767,-43.512796],[146.043107,-43.547161],[146.013134,-43.444841],[145.981715,-43.408358],[145.994428,-43.37606],[146.108736,-43.354408],[146.226351,-43.355286],[146.208058,-43.316167],[146.176432,-43.301801],[146.125066,-43.311206],[145.975307,-43.277203],[145.873298,-43.292396],[145.802708,-43.244027],[145.681578,-43.075975],[145.609955,-42.998254],[145.567373,-42.967971],[145.517557,-42.951331],[145.487585,-42.92663],[145.268167,-42.54438],[145.237058,-42.455599],[145.198817,-42.230807],[145.372967,-42.338501],[145.434875,-42.406507],[145.468258,-42.492858],[145.527273,-42.388213],[145.516627,-42.354469],[145.360358,-42.2275],[145.339687,-42.190758],[145.331109,-42.147039],[145.294419,-42.190964],[145.234887,-42.196959],[145.258969,-42.1073],[145.238195,-42.019605],[145.055363,-41.826749],[144.915527,-41.644021],[144.777964,-41.418815],[144.766079,-41.390083],[144.764322,-41.341507],[144.697762,-41.190715],[144.662416,-41.078939],[144.646086,-40.980806],[144.709648,-40.782885],[144.718536,-40.672297],[144.818582,-40.721648],[145.042961,-40.786709]]],[[[148.236875,-40.515098],[148.187782,-40.592612],[148.127011,-40.543985],[148.117295,-40.521506],[148.193156,-40.50316],[148.218374,-40.505073],[148.236875,-40.515098]]],[[[144.784372,-40.506726],[144.747992,-40.589408],[144.710165,-40.485229],[144.751196,-40.470243],[144.783442,-40.434844],[144.79078,-40.440374],[144.784372,-40.506726]]],[[[148.326275,-40.306945],[148.420739,-40.3672],[148.474173,-40.432415],[148.403996,-40.486572],[148.352733,-40.497218],[148.319454,-40.434586],[148.214034,-40.45753],[148.102516,-40.451639],[148.020144,-40.4042],[148.010429,-40.380532],[148.058798,-40.356865],[148.198117,-40.357898],[148.326275,-40.306945]]],[[[148.000403,-39.757625],[148.177963,-39.938492],[148.270051,-39.966707],[148.297336,-39.985724],[148.289895,-40.065409],[148.250827,-40.099516],[148.323278,-40.144474],[148.313562,-40.173517],[148.299403,-40.172483],[148.210313,-40.233668],[148.105616,-40.26209],[148.07368,-40.240799],[148.046912,-40.212791],[148.024795,-40.171966],[147.890539,-40.01456],[147.905939,-39.971358],[147.876276,-39.905523],[147.812301,-39.910483],[147.767239,-39.870279],[147.839173,-39.831522],[147.933017,-39.725999],[148.000403,-39.757625]]],[[[143.92799,-40.116104],[143.898741,-40.120186],[143.875797,-40.063962],[143.887579,-39.983554],[143.83859,-39.904076],[143.865255,-39.824184],[143.861845,-39.737988],[143.879415,-39.699954],[143.939359,-39.658096],[143.948868,-39.583682],[144.000751,-39.580168],[144.091288,-39.638045],[144.12095,-39.78522],[144.106067,-39.874],[144.141001,-39.953788],[144.111958,-40.022105],[144.035064,-40.078225],[143.92799,-40.116104]]],[[[145.314469,-38.490829],[145.349196,-38.538216],[145.355087,-38.557078],[145.270957,-38.519767],[145.128434,-38.527622],[145.217834,-38.458582],[145.287907,-38.472173],[145.314469,-38.490829]]],[[[145.486552,-38.35492],[145.335863,-38.420962],[145.280259,-38.390576],[145.28584,-38.341019],[145.295349,-38.318953],[145.426504,-38.314199],[145.486552,-38.35492]]],[[[137.596491,-35.738645],[137.835959,-35.762106],[137.928873,-35.726036],[138.046592,-35.755182],[138.123487,-35.852333],[138.066539,-35.900599],[138.011866,-35.907627],[137.835546,-35.867733],[137.670905,-35.897912],[137.622225,-35.938116],[137.590289,-36.027103],[137.448386,-36.074852],[137.38224,-36.020902],[137.209537,-35.982455],[137.147732,-36.039092],[137.025879,-36.023899],[136.912708,-36.046637],[136.755095,-36.033097],[136.589317,-35.935326],[136.540638,-35.89016],[136.579085,-35.808718],[136.63872,-35.748877],[137.091818,-35.663818],[137.334078,-35.592504],[137.530448,-35.605062],[137.584915,-35.620203],[137.635455,-35.65648],[137.598144,-35.722212],[137.596491,-35.738645]]],[[[153.538773,-27.436413],[153.45268,-27.711745],[153.426532,-27.706474],[153.395836,-27.665081],[153.400901,-27.505659],[153.43542,-27.405407],[153.521823,-27.42246],[153.538773,-27.436413]]],[[[153.442448,-27.316058],[153.420848,-27.330993],[153.376509,-27.235392],[153.365037,-27.13886],[153.37992,-27.04946],[153.43232,-27.029926],[153.46684,-27.038091],[153.426325,-27.201492],[153.442448,-27.316058]]],[[[113.182994,-26.053138],[113.156432,-26.094479],[112.964299,-25.783077],[112.908178,-25.56986],[112.947039,-25.531516],[112.982386,-25.520251],[113.096281,-25.815065],[113.131524,-25.882606],[113.131834,-25.952007],[113.14837,-25.973866],[113.182994,-26.053138]]],[[[153.077406,-25.750831],[153.051981,-25.778271],[153.006919,-25.72892],[152.976637,-25.55136],[152.999065,-25.448421],[153.051568,-25.354266],[153.060766,-25.30228],[153.038132,-25.193139],[153.189234,-25.070562],[153.227578,-25.00576],[153.242047,-24.922561],[153.18634,-24.832644],[153.143759,-24.814867],[153.180966,-24.764845],[153.223134,-24.739523],[153.25693,-24.728878],[153.282148,-24.738283],[153.297961,-24.915223],[153.359249,-24.977752],[153.350154,-25.063121],[153.141381,-25.512809],[153.083814,-25.682515],[153.077406,-25.750831]]],[[[151.146568,-23.490814],[151.180778,-23.516239],[151.21199,-23.513138],[151.240102,-23.529726],[151.228837,-23.59489],[151.274312,-23.668477],[151.295809,-23.720361],[151.261496,-23.76227],[151.238242,-23.775758],[151.184188,-23.740721],[151.033293,-23.530191],[151.059958,-23.460532],[151.146568,-23.490814]]],[[[150.516735,-22.322565],[150.488417,-22.324735],[150.462372,-22.307734],[150.484696,-22.267839],[150.488417,-22.210737],[150.52149,-22.228359],[150.548775,-22.306907],[150.516735,-22.322565]]],[[[149.928348,-22.193064],[149.893621,-22.223191],[149.86954,-22.150431],[149.875431,-22.074001],[149.912328,-22.048731],[149.927934,-22.149294],[149.928348,-22.193064]]],[[[115.446215,-20.787826],[115.38813,-20.865961],[115.318057,-20.850562],[115.308549,-20.811081],[115.354334,-20.746279],[115.434536,-20.667937],[115.457583,-20.716306],[115.446215,-20.787826]]],[[[149.04375,-20.291526],[149.019876,-20.302585],[148.987423,-20.301758],[148.938847,-20.283671],[148.981015,-20.15355],[149.004373,-20.221453],[149.045301,-20.277573],[149.04375,-20.291526]]],[[[148.93554,-20.149933],[148.913422,-20.154325],[148.886861,-20.143525],[148.906394,-20.101977],[148.931613,-20.068904],[148.967889,-20.044306],[148.956211,-20.134636],[148.93554,-20.149933]]],[[[146.278338,-18.23129],[146.298802,-18.326065],[146.342003,-18.400065],[146.327017,-18.448641],[146.298802,-18.484815],[146.235653,-18.45076],[146.191315,-18.362858],[146.116177,-18.292372],[146.098814,-18.251754],[146.186664,-18.255164],[146.230899,-18.241419],[146.249089,-18.225916],[146.278338,-18.23129]]],[[[139.459219,-17.114562],[139.421702,-17.131615],[139.408163,-17.090584],[139.459219,-17.04914],[139.492809,-16.990435],[139.560092,-17.042009],[139.570944,-17.094408],[139.459219,-17.114562]]],[[[139.507795,-16.572993],[139.43059,-16.66105],[139.391523,-16.648648],[139.354316,-16.696603],[139.283003,-16.719444],[139.239078,-16.718669],[139.159599,-16.741665],[139.14761,-16.713863],[139.1627,-16.62591],[139.228742,-16.527518],[139.292924,-16.467263],[139.458909,-16.438531],[139.587894,-16.395226],[139.604533,-16.403185],[139.697758,-16.514909],[139.559678,-16.529482],[139.507795,-16.572993]]],[[[137.093679,-15.778106],[137.050891,-15.824408],[136.996527,-15.775833],[136.985055,-15.726017],[136.94268,-15.711754],[136.963351,-15.665762],[136.985778,-15.652429],[137.00955,-15.594862],[137.064533,-15.662868],[137.071045,-15.738109],[137.093679,-15.778106]]],[[[136.59097,-15.628245],[136.531129,-15.632379],[136.514283,-15.627315],[136.502707,-15.58308],[136.522551,-15.543185],[136.58601,-15.533729],[136.612365,-15.544115],[136.59097,-15.628245]]],[[[136.862685,-15.619873],[136.846769,-15.627315],[136.845632,-15.544012],[136.876845,-15.502568],[136.890177,-15.588867],[136.862685,-15.619873]]],[[[124.597284,-15.401954],[124.55956,-15.430169],[124.524213,-15.421539],[124.523697,-15.382368],[124.482769,-15.340355],[124.50406,-15.292451],[124.519356,-15.26744],[124.550879,-15.270334],[124.564521,-15.310848],[124.605035,-15.35653],[124.597284,-15.401954]]],[[[125.198798,-14.579523],[125.134822,-14.641742],[125.091207,-14.591719],[125.117356,-14.491983],[125.159937,-14.456017],[125.198178,-14.474827],[125.193527,-14.552651],[125.198798,-14.579523]]],[[[136.714684,-13.80386],[136.757989,-13.845408],[136.804498,-13.842514],[136.845322,-13.750943],[136.870643,-13.763656],[136.890797,-13.7866],[136.905577,-13.826908],[136.842945,-13.896567],[136.814936,-13.907316],[136.788168,-13.945763],[136.745276,-14.072629],[136.749927,-14.11521],[136.787031,-14.157844],[136.885423,-14.197221],[136.933895,-14.179031],[136.950742,-14.184302],[136.931311,-14.246004],[136.894311,-14.293029],[136.763156,-14.273392],[136.649675,-14.28042],[136.460539,-14.234531],[136.363284,-14.22895],[136.335482,-14.211794],[136.392223,-14.175517],[136.427776,-14.126424],[136.411137,-14.011186],[136.424676,-13.86489],[136.533816,-13.793731],[136.582806,-13.721126],[136.655669,-13.675909],[136.701971,-13.681645],[136.695977,-13.72619],[136.714684,-13.80386]]],[[[136.2374,-13.824531],[136.213733,-13.835899],[136.122679,-13.816572],[136.122265,-13.780606],[136.134358,-13.753165],[136.159576,-13.736681],[136.21549,-13.664747],[136.257451,-13.706605],[136.275331,-13.791148],[136.2374,-13.824531]]],[[[136.338686,-11.602341],[136.180246,-11.676755],[136.267373,-11.576502],[136.449274,-11.487102],[136.479349,-11.465915],[136.470564,-11.509323],[136.379407,-11.58322],[136.338686,-11.602341]]],[[[130.459252,-11.679338],[130.541831,-11.70311],[130.579865,-11.737113],[130.602706,-11.773286],[130.60622,-11.816591],[130.502557,-11.835608],[130.317452,-11.771736],[130.13121,-11.824549],[130.076536,-11.825479],[130.043256,-11.787342],[130.072092,-11.680785],[130.139065,-11.697115],[130.197562,-11.658254],[130.187124,-11.541259],[130.152811,-11.47749],[130.251202,-11.360598],[130.294921,-11.336827],[130.339259,-11.337034],[130.376776,-11.420078],[130.385665,-11.50984],[130.432793,-11.59216],[130.459252,-11.679338]]],[[[130.618829,-11.376101],[130.752257,-11.384421],[130.912764,-11.309232],[130.987385,-11.339876],[131.023042,-11.334347],[131.140657,-11.263136],[131.217242,-11.242569],[131.268298,-11.189859],[131.320491,-11.24691],[131.436866,-11.313159],[131.47335,-11.382509],[131.522236,-11.415272],[131.538566,-11.436873],[131.467872,-11.50953],[131.458571,-11.587871],[131.382813,-11.582497],[131.292069,-11.710964],[130.951005,-11.926455],[130.644873,-11.742384],[130.511962,-11.617895],[130.422768,-11.445761],[130.404785,-11.304994],[130.368611,-11.214974],[130.384631,-11.192236],[130.402924,-11.180454],[130.426696,-11.183141],[130.519196,-11.279466],[130.559711,-11.305925],[130.618829,-11.376101]]],[[[136.598515,-11.378892],[136.526582,-11.438836],[136.521621,-11.393878],[136.559758,-11.357911],[136.649055,-11.211667],[136.688019,-11.177664],[136.71055,-11.15844],[136.727293,-11.104748],[136.731737,-11.024598],[136.780313,-11.012454],[136.741452,-11.194665],[136.598515,-11.378892]]],[[[132.593385,-11.302824],[132.573645,-11.318327],[132.493753,-11.163711],[132.516284,-11.116065],[132.483831,-11.03731],[132.537781,-11.028422],[132.578812,-10.968839],[132.593282,-10.997675],[132.596899,-11.106402],[132.629145,-11.169189],[132.593385,-11.302824]]],[[[143.178889,-11.954515],[143.152947,-12.075903],[143.104681,-12.169644],[143.098997,-12.225972],[143.110262,-12.303538],[143.190671,-12.361209],[143.25413,-12.397641],[143.289683,-12.498823],[143.401614,-12.6399],[143.397583,-12.736173],[143.457735,-12.855752],[143.511995,-13.094549],[143.529462,-13.303839],[143.586616,-13.443624],[143.548479,-13.74097],[143.5892,-13.862771],[143.643357,-13.963695],[143.707229,-14.164561],[143.756321,-14.34884],[143.822364,-14.401033],[143.961787,-14.462889],[144.105861,-14.394573],[144.209834,-14.301969],[144.321661,-14.279386],[144.473073,-14.231844],[144.586451,-14.354679],[144.64805,-14.4925],[144.915734,-14.674349],[145.064458,-14.790983],[145.180007,-14.856922],[145.287701,-14.94317],[145.276952,-15.029418],[145.25163,-15.097424],[145.276125,-15.20393],[145.293075,-15.327281],[145.271578,-15.476626],[145.349506,-15.701522],[145.375447,-15.881046],[145.458026,-16.056436],[145.451825,-16.23689],[145.436425,-16.304999],[145.42609,-16.40613],[145.490479,-16.532117],[145.549907,-16.625083],[145.638274,-16.726111],[145.754752,-16.879538],[145.837848,-16.910389],[145.912159,-16.912456],[145.901927,-17.070224],[146.049825,-17.381006],[146.125892,-17.635254],[146.074009,-17.977352],[146.02285,-18.175738],[146.032255,-18.272838],[146.223044,-18.509826],[146.333218,-18.553751],[146.311721,-18.666716],[146.296838,-18.841175],[146.383344,-18.977033],[146.481116,-19.078732],[146.58726,-19.139503],[146.691956,-19.187407],[146.829002,-19.235776],[147.002635,-19.256034],[147.092758,-19.33267],[147.13875,-19.393183],[147.278173,-19.414164],[147.341529,-19.402898],[147.418527,-19.378145],[147.470927,-19.419383],[147.509787,-19.474108],[147.586062,-19.62273],[147.742331,-19.770162],[147.853229,-19.794709],[147.915654,-19.869278],[148.004434,-19.889587],[148.081019,-19.898682],[148.189642,-19.955888],[148.366893,-20.087507],[148.526779,-20.10885],[148.60047,-20.145178],[148.759323,-20.289511],[148.821025,-20.366405],[148.884794,-20.480817],[148.805109,-20.49172],[148.729971,-20.467743],[148.683669,-20.580191],[148.789502,-20.735633],[148.912389,-20.845239],[149.060494,-20.961098],[149.204878,-21.125067],[149.241361,-21.250175],[149.280325,-21.299526],[149.329314,-21.476053],[149.454061,-21.578683],[149.460056,-21.765441],[149.524031,-22.023617],[149.595655,-22.257608],[149.645264,-22.328353],[149.703865,-22.440542],[149.771561,-22.426228],[149.822411,-22.389796],[149.920286,-22.501417],[149.974443,-22.550665],[150.005552,-22.521622],[149.941887,-22.308147],[149.981264,-22.184279],[150.020642,-22.168414],[150.076142,-22.164435],[150.143012,-22.265462],[150.234892,-22.372949],[150.405114,-22.468912],[150.541333,-22.559088],[150.579574,-22.555729],[150.564381,-22.486172],[150.568515,-22.384008],[150.622879,-22.367265],[150.672488,-22.418166],[150.763852,-22.576141],[150.782869,-22.902891],[150.782972,-23.176518],[150.843124,-23.457999],[150.931077,-23.531897],[150.988748,-23.601763],[151.087657,-23.696073],[151.153803,-23.784078],[151.236278,-23.825005],[151.500758,-24.012436],[151.575379,-24.033623],[151.690927,-24.038377],[151.831694,-24.12292],[151.902697,-24.200951],[152.05535,-24.494474],[152.129867,-24.597516],[152.282002,-24.699319],[152.353109,-24.732495],[152.456359,-24.802413],[152.493152,-24.904009],[152.502041,-24.964006],[152.563226,-25.072061],[152.654279,-25.201976],[152.789155,-25.274116],[152.913488,-25.432142],[152.920516,-25.688613],[152.985009,-25.816253],[153.02821,-25.870307],[153.125465,-25.922655],[153.164946,-25.964151],[153.084124,-26.303769],[153.162052,-26.982694],[153.116783,-27.194412],[153.197915,-27.404735],[153.385708,-27.768537],[153.428392,-27.897677],[153.454851,-28.048313],[153.57567,-28.240498],[153.569159,-28.5334],[153.616908,-28.67303],[153.604609,-28.854466],[153.462189,-29.050216],[153.348087,-29.29046],[153.34695,-29.496546],[153.27233,-29.89249],[153.223857,-29.998634],[153.1882,-30.163895],[153.030587,-30.563354],[153.023766,-30.72014],[153.047847,-30.907157],[153.021595,-31.086629],[152.982218,-31.208792],[152.943977,-31.434825],[152.785848,-31.786328],[152.559298,-32.045744],[152.545345,-32.243045],[152.516613,-32.330171],[152.470415,-32.439105],[152.331198,-32.557496],[152.247483,-32.608707],[152.215753,-32.678108],[152.136482,-32.678108],[152.134518,-32.699864],[152.188055,-32.721672],[152.164283,-32.75738],[151.95427,-32.82027],[151.812884,-32.901092],[151.668396,-33.0986],[151.607728,-33.201849],[151.53011,-33.300964],[151.483808,-33.347422],[151.463344,-33.397393],[151.432028,-33.521623],[151.357511,-33.543947],[151.292089,-33.580999],[151.322784,-33.699286],[151.288368,-33.834885],[151.280306,-33.926663],[151.24465,-33.985057],[151.201655,-33.964076],[151.167859,-33.973482],[151.124864,-34.005314],[151.191216,-34.015184],[151.231524,-34.029654],[151.08993,-34.162462],[150.960326,-34.297079],[150.92746,-34.386583],[150.871339,-34.499134],[150.821833,-34.749248],[150.781112,-34.892237],[150.809121,-34.993884],[150.804573,-35.012901],[150.774601,-35.020394],[150.756101,-35.007165],[150.697396,-35.041892],[150.680963,-35.07667],[150.705665,-35.119716],[150.722201,-35.134599],[150.714656,-35.155218],[150.690368,-35.177697],[150.634454,-35.177646],[150.567482,-35.214233],[150.374109,-35.584133],[150.29215,-35.682318],[150.195308,-35.833575],[150.158514,-35.970621],[150.128852,-36.120431],[150.095366,-36.372663],[150.06281,-36.550379],[149.988189,-36.722771],[149.960284,-36.845503],[149.950568,-37.08032],[149.986329,-37.258397],[149.962867,-37.353069],[149.962351,-37.443864],[149.932688,-37.52851],[149.809388,-37.547889],[149.708929,-37.61698],[149.565372,-37.729945],[149.48083,-37.771183],[149.298412,-37.802188],[148.943912,-37.788442],[148.262506,-37.830714],[148.130628,-37.856035],[147.876793,-37.93417],[147.631434,-38.055713],[147.395582,-38.219114],[146.856804,-38.663428],[146.435744,-38.711797],[146.356266,-38.711797],[146.292601,-38.699756],[146.217463,-38.727403],[146.216223,-38.782749],[146.285573,-38.840265],[146.336629,-38.894215],[146.426959,-38.819594],[146.466647,-38.840368],[146.481633,-38.977931],[146.483803,-39.065057],[146.456622,-39.112289],[146.399984,-39.145466],[146.34004,-39.123865],[146.332081,-39.076633],[146.254257,-38.964495],[146.158345,-38.865741],[146.069978,-38.834115],[146.018199,-38.867085],[145.93531,-38.90176],[145.865547,-38.775979],[145.790822,-38.666994],[145.691914,-38.655625],[145.606338,-38.656813],[145.535334,-38.609633],[145.397255,-38.535322],[145.42423,-38.477341],[145.46278,-38.416311],[145.542155,-38.393884],[145.518384,-38.311408],[145.475803,-38.243712],[145.366352,-38.225677],[145.292765,-38.237562],[145.248943,-38.291254],[145.191169,-38.383548],[144.959555,-38.50075],[144.847314,-38.43631],[144.717813,-38.340295],[144.780238,-38.347323],[144.911393,-38.344016],[145.02012,-38.258388],[145.066939,-38.204851],[145.119959,-38.091318],[145.049576,-38.010961],[144.984877,-37.952257],[144.891342,-37.899857],[144.538496,-38.077107],[144.465322,-38.102584],[144.395559,-38.136897],[144.517825,-38.166404],[144.589449,-38.157619],[144.665206,-38.209967],[144.543663,-38.284071],[144.447855,-38.30376],[144.328689,-38.348202],[144.10152,-38.462303],[143.811718,-38.698775],[143.686661,-38.766884],[143.53897,-38.820938],[143.338466,-38.757789],[143.226431,-38.743113],[143.082564,-38.645858],[142.840201,-38.580849],[142.612102,-38.451658],[142.455832,-38.386339],[142.344521,-38.372179],[142.187735,-38.399465],[141.924702,-38.283813],[141.725024,-38.27141],[141.593973,-38.387786],[141.491757,-38.379776],[141.424267,-38.363498],[141.213841,-38.171985],[141.010959,-38.0769],[140.62721,-38.028376],[140.390429,-37.896653],[140.212145,-37.642198],[139.874801,-37.352087],[139.784264,-37.24584],[139.742303,-37.14166],[139.738479,-37.059546],[139.783851,-36.902605],[139.846586,-36.748093],[139.857334,-36.662103],[139.72897,-36.371371],[139.548723,-36.096711],[139.465937,-36.01036],[139.244865,-35.827374],[139.037746,-35.689242],[138.985036,-35.617619],[138.968913,-35.580774],[139.066892,-35.598447],[139.11247,-35.542275],[139.177996,-35.523051],[139.230603,-35.59762],[139.28941,-35.611366],[139.292098,-35.485896],[139.325067,-35.426623],[139.302536,-35.399441],[139.282486,-35.37536],[139.192776,-35.347248],[139.093763,-35.389571],[139.017696,-35.443263],[138.915273,-35.488893],[138.875276,-35.536849],[138.770992,-35.538347],[138.729651,-35.550801],[138.521912,-35.642424],[138.389207,-35.644749],[138.184362,-35.612658],[138.252161,-35.486567],[138.33288,-35.41174],[138.399852,-35.32575],[138.511163,-35.024373],[138.489976,-34.763614],[138.436233,-34.656231],[138.264357,-34.440326],[138.186222,-34.30726],[138.089277,-34.169852],[138.041321,-34.249795],[138.012279,-34.33408],[137.919262,-34.456036],[137.874096,-34.727441],[137.691679,-35.143023],[137.566415,-35.148035],[137.459548,-35.131344],[137.272376,-35.178679],[137.144425,-35.236454],[137.02991,-35.236557],[136.966555,-35.254902],[136.883562,-35.239761],[137.0142,-34.915853],[137.128405,-34.924741],[137.252015,-34.911512],[137.308446,-34.916938],[137.391025,-34.913321],[137.454277,-34.764441],[137.492931,-34.597785],[137.46854,-34.490194],[137.459031,-34.378883],[137.483629,-34.252173],[137.493861,-34.16117],[137.650337,-33.85907],[137.780872,-33.70311],[137.931871,-33.579087],[137.913991,-33.461368],[137.866035,-33.31409],[137.852289,-33.200816],[137.924326,-33.165159],[137.992539,-33.094207],[137.913164,-32.770661],[137.863141,-32.673716],[137.783146,-32.578166],[137.781802,-32.701931],[137.790897,-32.823216],[137.680206,-32.977987],[137.536236,-33.089194],[137.442288,-33.193581],[137.354231,-33.430156],[137.237339,-33.629523],[137.130266,-33.703007],[137.034458,-33.719492],[136.936582,-33.750239],[136.783517,-33.829666],[136.635516,-33.896587],[136.525858,-33.98423],[136.43067,-34.030016],[136.121128,-34.428751],[135.979638,-34.561869],[135.950596,-34.615716],[135.891065,-34.660985],[135.90264,-34.723823],[135.950596,-34.766818],[135.998552,-34.943758],[135.969716,-34.981792],[135.919177,-34.961948],[135.792363,-34.863246],[135.712471,-34.899265],[135.647566,-34.939624],[135.480857,-34.75824],[135.411714,-34.715503],[135.324174,-34.64264],[135.23064,-34.579749],[135.190849,-34.57267],[135.12305,-34.585692],[135.129561,-34.536496],[135.175966,-34.496602],[135.216791,-34.487352],[135.292445,-34.545591],[135.378745,-34.597629],[135.427321,-34.60197],[135.449955,-34.581093],[135.367996,-34.375628],[135.311979,-34.195483],[135.286347,-34.142257],[135.218961,-33.959787],[135.185475,-33.906716],[135.042124,-33.777783],[134.888749,-33.626371],[134.846684,-33.444625],[134.790977,-33.328353],[134.719043,-33.255179],[134.607732,-33.19017],[134.301291,-33.165055],[134.173547,-32.979124],[134.100373,-32.748647],[134.158457,-32.733351],[134.227187,-32.73056],[134.249201,-32.65873],[134.234215,-32.548504],[133.930151,-32.411716],[133.786697,-32.268883],[133.665361,-32.207181],[133.551363,-32.182893],[133.400571,-32.188526],[133.212159,-32.183772],[132.757406,-31.95624],[132.648575,-31.949316],[132.323634,-32.020009],[132.2147,-32.00709],[131.72119,-31.696308],[131.393148,-31.548513],[131.284938,-31.521021],[131.143654,-31.4957],[131.029346,-31.531822],[130.948111,-31.565773],[130.783056,-31.604014],[130.129763,-31.579106],[129.568867,-31.627216],[129.187701,-31.659928],[128.946166,-31.702612],[128.546087,-31.887717],[128.067666,-32.066518],[127.678026,-32.151267],[127.319805,-32.264025],[127.084057,-32.296891],[126.77927,-32.310947],[126.136518,-32.25679],[125.917203,-32.296995],[125.567457,-32.505871],[125.463691,-32.556514],[125.266597,-32.614495],[124.758824,-32.882695],[124.524627,-32.94016],[124.373215,-32.958453],[124.243714,-33.015194],[124.126098,-33.129399],[123.967245,-33.446279],[123.868336,-33.596347],[123.650365,-33.836332],[123.506808,-33.916224],[123.365421,-33.905372],[123.207601,-33.988313],[123.067558,-33.900618],[122.955627,-33.883771],[122.77755,-33.890799],[122.151025,-33.991775],[122.061108,-33.874366],[121.946386,-33.856744],[121.729655,-33.862481],[121.405127,-33.82672],[120.814569,-33.871266],[120.530555,-33.919738],[120.418418,-33.963043],[120.209335,-33.935448],[119.854111,-33.97467],[119.729157,-34.041488],[119.635106,-34.101122],[119.450621,-34.368289],[119.247636,-34.456449],[119.081342,-34.459395],[118.895306,-34.479859],[118.520136,-34.737156],[118.13556,-34.98665],[118.006472,-35.013315],[117.863121,-35.054966],[117.675433,-35.074861],[117.581898,-35.097754],[117.143889,-35.033675],[116.865456,-35.026544],[116.517157,-34.98789],[116.217124,-34.86583],[115.98675,-34.795033],[115.726301,-34.526109],[115.56507,-34.425754],[115.277646,-34.303901],[115.19486,-34.3085],[115.127888,-34.341831],[115.008825,-34.255842],[115.005621,-34.145099],[114.973479,-34.051203],[114.975649,-33.80419],[114.993839,-33.515318],[115.098949,-33.580276],[115.181631,-33.643476],[115.358778,-33.63991],[115.515358,-33.531338],[115.604448,-33.372278],[115.682996,-33.192857],[115.670904,-33.002171],[115.618607,-32.666998],[115.654264,-32.596563],[115.707904,-32.567934],[115.725371,-32.401071],[115.738083,-31.887924],[115.698396,-31.694551],[115.454586,-31.302533],[115.294389,-30.961779],[115.176877,-30.80799],[115.077968,-30.56046],[114.994563,-30.216192],[114.968828,-30.042249],[114.942059,-29.721545],[114.971412,-29.539747],[114.959009,-29.433604],[114.856897,-29.142975],[114.628383,-28.871777],[114.59066,-28.771732],[114.591797,-28.666209],[114.537433,-28.542909],[114.353465,-28.294965],[114.165156,-28.080715],[114.13353,-27.976432],[114.09839,-27.54421],[114.02811,-27.347219],[113.70937,-26.847715],[113.333062,-26.417354],[113.231053,-26.241395],[113.184751,-26.182174],[113.210796,-26.174164],[113.25317,-26.197264],[113.300092,-26.240258],[113.323243,-26.243876],[113.345361,-26.208322],[113.34288,-26.126105],[113.356006,-26.080475],[113.388976,-26.105538],[113.427423,-26.198091],[113.546589,-26.436732],[113.581626,-26.55812],[113.733658,-26.595121],[113.780373,-26.563288],[113.83639,-26.500553],[113.852824,-26.332087],[113.775826,-26.255916],[113.706476,-26.22367],[113.589067,-26.098613],[113.513413,-25.898316],[113.39528,-25.713262],[113.397347,-25.647168],[113.451401,-25.599109],[113.539458,-25.625154],[113.62121,-25.731607],[113.71309,-25.830723],[113.697898,-26.004201],[113.683635,-26.051691],[113.691696,-26.09174],[113.723736,-26.129774],[113.7658,-26.159798],[113.811792,-26.11577],[113.85396,-26.014432],[113.879902,-26.027662],[113.942327,-26.258707],[113.99204,-26.321494],[114.090328,-26.393634],[114.176008,-26.337462],[114.215695,-26.289506],[114.203293,-26.126415],[114.228511,-25.968802],[114.214248,-25.8516],[113.992763,-25.544849],[113.792362,-25.16575],[113.670819,-24.977028],[113.569223,-24.693014],[113.503491,-24.594622],[113.417708,-24.435614],[113.412954,-24.253971],[113.421325,-24.132325],[113.489848,-23.869602],[113.552894,-23.732763],[113.757015,-23.418209],[113.767041,-23.282506],[113.76487,-23.180445],[113.794946,-23.023659],[113.795153,-22.914518],[113.767867,-22.812922],[113.682808,-22.637791],[113.795049,-22.332125],[113.95845,-21.939177],[114.022839,-21.881403],[114.123918,-21.82859],[114.142625,-21.909773],[114.092809,-22.181333],[114.163812,-22.32334],[114.141591,-22.483072],[114.205153,-22.45589],[114.303545,-22.425401],[114.377753,-22.34153],[114.417027,-22.261018],[114.602855,-21.942175],[114.709309,-21.823422],[114.859067,-21.735986],[115.161684,-21.630566],[115.456137,-21.491659],[115.596076,-21.358128],[115.771466,-21.242269],[115.893526,-21.116695],[116.010935,-21.030396],[116.605834,-20.713412],[116.706706,-20.653829],[116.836311,-20.647112],[116.995371,-20.657602],[117.139031,-20.64091],[117.292717,-20.713102],[117.406302,-20.721164],[117.683908,-20.642719],[117.832322,-20.572542],[118.087294,-20.419063],[118.199225,-20.375242],[118.458331,-20.326666],[118.751439,-20.261864],[119.104493,-19.995317],[119.358844,-20.012318],[119.58591,-20.03826],[119.767811,-19.95842],[120.196312,-19.90943],[120.433714,-19.841941],[120.878441,-19.665001],[120.997917,-19.604436],[121.179818,-19.477932],[121.337638,-19.319906],[121.493597,-19.106482],[121.589406,-18.915176],[121.630643,-18.816629],[121.722007,-18.659998],[121.784846,-18.535923],[121.833835,-18.477063],[122.006228,-18.393657],[122.262129,-18.159098],[122.345432,-18.111866],[122.360935,-18.036883],[122.305744,-17.994974],[122.237428,-17.968515],[122.191333,-17.720313],[122.147511,-17.549058],[122.14317,-17.428445],[122.160223,-17.31362],[122.260992,-17.13575],[122.332719,-17.059372],[122.432041,-16.970385],[122.522579,-16.942841],[122.597923,-16.864913],[122.720396,-16.787657],[122.772072,-16.710194],[122.848037,-16.552426],[122.916766,-16.43264],[122.970717,-16.436774],[123.07438,-16.71531],[123.142076,-16.863105],[123.265892,-17.036841],[123.383198,-17.292743],[123.478799,-17.409945],[123.525205,-17.485702],[123.563135,-17.520946],[123.571507,-17.472267],[123.561792,-17.415422],[123.607887,-17.219879],[123.586286,-17.08273],[123.593521,-17.03033],[123.617706,-17.008316],[123.664008,-17.023198],[123.753821,-17.099783],[123.798986,-17.127171],[123.831026,-17.120763],[123.829476,-16.996843],[123.874434,-16.918657],[123.856347,-16.864707],[123.778109,-16.867756],[123.745036,-16.800938],[123.680441,-16.723682],[123.607164,-16.668026],[123.51797,-16.540747],[123.490375,-16.490724],[123.525101,-16.467573],[123.581325,-16.470881],[123.625974,-16.41631],[123.646541,-16.343085],[123.60706,-16.224074],[123.647471,-16.179839],[123.728913,-16.192448],[123.859138,-16.382307],[123.915258,-16.363549],[123.961354,-16.286964],[124.044449,-16.26495],[124.129819,-16.278851],[124.186043,-16.333628],[124.300351,-16.38825],[124.452693,-16.382049],[124.530001,-16.395226],[124.692369,-16.386131],[124.77195,-16.402668],[124.757067,-16.373316],[124.669218,-16.338796],[124.570309,-16.331819],[124.45445,-16.335282],[124.404841,-16.298901],[124.388304,-16.20299],[124.416416,-16.133537],[124.434607,-16.103771],[124.509951,-16.116277],[124.57682,-16.113693],[124.585088,-16.020159],[124.608653,-15.937476],[124.648547,-15.870245],[124.64834,-15.805443],[124.606586,-15.822651],[124.504266,-15.97241],[124.455277,-15.850557],[124.38169,-15.758159],[124.396573,-15.625868],[124.439567,-15.493576],[124.505713,-15.475386],[124.561627,-15.496263],[124.64431,-15.418852],[124.690922,-15.359631],[124.680173,-15.311055],[124.692575,-15.273641],[124.750453,-15.285217],[124.972041,-15.404279],[125.01638,-15.466497],[125.062992,-15.442313],[125.077875,-15.374513],[125.072914,-15.306714],[125.024028,-15.316946],[124.909203,-15.310021],[124.882745,-15.271987],[124.892666,-15.240568],[124.839026,-15.16078],[124.914164,-15.10993],[124.978656,-15.106623],[125.023304,-15.071896],[125.024028,-15.024457],[125.038187,-15.004097],[125.072914,-15.032312],[125.188669,-15.045438],[125.302357,-15.106881],[125.355687,-15.119852],[125.375531,-15.086779],[125.383799,-15.015672],[125.243239,-14.944566],[125.239415,-14.874596],[125.180401,-14.794084],[125.178747,-14.714709],[125.266494,-14.648408],[125.284581,-14.584071],[125.33543,-14.557922],[125.435889,-14.556786],[125.503689,-14.502215],[125.579756,-14.483198],[125.59836,-14.361604],[125.59712,-14.278146],[125.627712,-14.256649],[125.704607,-14.291375],[125.681249,-14.387959],[125.680939,-14.480201],[125.661612,-14.5295],[125.690551,-14.525366],[125.708431,-14.504851],[125.738506,-14.444338],[125.819535,-14.469142],[125.839585,-14.533893],[125.850127,-14.5973],[125.890642,-14.61797],[125.946039,-14.520405],[126.020763,-14.494515],[126.016629,-14.371267],[126.044844,-14.283056],[126.053629,-14.216703],[126.100861,-14.184405],[126.1113,-14.114074],[126.073473,-14.065549],[126.053939,-13.977286],[126.119052,-13.957752],[126.184267,-14.002039],[126.228192,-14.11335],[126.258475,-14.16358],[126.298782,-14.136191],[126.32307,-14.062139],[126.403065,-14.018989],[126.48244,-14.078882],[126.569773,-14.160944],[126.679121,-14.089321],[126.780717,-13.955169],[126.76449,-13.873003],[126.775549,-13.78846],[126.90319,-13.744174],[127.006026,-13.77673],[127.09925,-13.86737],[127.293037,-13.934808],[127.457574,-14.031443],[127.531058,-14.094592],[127.672859,-14.195154],[127.763499,-14.299437],[127.887626,-14.485162],[128.180424,-14.711608],[128.199441,-14.751709],[128.159857,-14.827363],[128.124407,-14.924102],[128.080482,-15.088019],[128.069423,-15.329348],[128.111695,-15.312037],[128.155516,-15.225634],[128.201715,-15.243359],[128.254632,-15.298497],[128.258973,-15.245581],[128.227243,-15.213541],[128.172983,-15.102282],[128.174947,-15.043112],[128.218355,-14.995674],[128.285121,-14.938881],[128.358191,-14.901674],[128.403253,-14.869118],[128.409868,-14.828862],[128.477461,-14.787986],[128.575749,-14.77455],[128.635487,-14.780958],[129.0582,-14.884414],[129.165171,-14.987612],[129.175196,-15.114994],[129.215813,-15.160263],[129.237931,-15.080216],[129.23359,-14.906015],[129.267593,-14.871443],[129.381281,-14.898418],[129.459003,-14.933197],[129.56711,-15.047402],[129.587677,-15.103367],[129.634806,-15.139747],[129.650309,-15.086831],[129.628191,-15.011848],[129.612688,-14.925859],[129.63708,-14.850928],[129.76348,-14.845037],[129.848746,-14.828862],[129.808439,-14.799665],[129.753455,-14.789588],[129.663021,-14.72091],[129.60473,-14.647116],[129.698678,-14.575286],[129.697955,-14.557457],[129.607934,-14.559628],[129.483911,-14.489761],[129.378698,-14.392455],[129.459209,-14.213447],[129.619613,-14.038368],[129.70984,-13.979973],[129.718418,-13.920907],[129.761723,-13.811921],[129.789318,-13.719937],[129.797173,-13.648417],[129.838928,-13.57297],[129.93794,-13.501656],[130.072712,-13.47618],[130.135964,-13.448326],[130.199319,-13.382645],[130.259781,-13.302237],[130.13493,-13.145502],[130.145266,-13.059151],[130.168107,-12.9574],[130.317968,-12.882883],[130.399927,-12.687907],[130.454187,-12.658555],[130.571906,-12.664395],[130.617485,-12.646825],[130.60963,-12.491279],[130.622653,-12.431076],[130.672365,-12.406891],[130.736134,-12.427768],[130.776545,-12.495258],[130.867392,-12.557838],[130.898191,-12.52368],[130.882895,-12.455105],[130.8738,-12.367152],[130.956586,-12.348238],[131.023455,-12.342864],[131.03007,-12.271085],[131.019528,-12.213879],[131.045676,-12.189695],[131.219929,-12.177913],[131.265404,-12.119002],[131.291656,-12.067842],[131.313773,-12.095902],[131.342092,-12.210055],[131.438313,-12.276925],[131.726255,-12.278165],[131.888002,-12.231966],[131.956731,-12.259303],[132.064115,-12.280749],[132.182351,-12.226902],[132.253251,-12.186078],[132.372107,-12.239201],[132.411071,-12.295167],[132.44156,-12.176362],[132.510496,-12.134866],[132.583773,-12.110217],[132.676377,-12.13006],[132.712758,-12.123446],[132.630489,-12.035182],[132.635243,-11.954671],[132.629869,-11.835866],[132.644751,-11.727191],[132.674207,-11.649056],[132.475253,-11.491546],[132.277952,-11.467672],[132.133568,-11.500641],[132.0729,-11.4747],[131.944639,-11.348506],[131.822476,-11.302462],[131.811831,-11.271353],[131.961486,-11.180816],[132.018536,-11.196422],[132.105766,-11.28112],[132.155479,-11.311144],[132.19775,-11.304994],[132.225035,-11.238745],[132.262656,-11.204019],[132.333969,-11.223552],[132.557315,-11.366903],[132.682785,-11.505602],[132.747071,-11.468964],[132.857142,-11.391139],[132.961011,-11.407314],[133.024883,-11.452789],[133.114387,-11.621771],[133.185287,-11.705693],[133.356129,-11.728224],[133.443152,-11.760315],[133.533173,-11.816178],[133.654509,-11.81132],[133.904209,-11.831991],[134.139441,-11.940098],[134.237109,-12.007742],[134.351107,-12.025829],[134.417356,-12.052752],[134.538073,-12.060814],[134.730309,-11.984333],[134.816402,-12.054664],[134.854746,-12.102568],[135.029722,-12.193777],[135.217928,-12.221683],[135.352286,-12.129233],[135.54876,-12.060607],[135.685599,-11.956117],[135.788436,-11.907025],[135.885277,-11.821655],[135.922484,-11.825789],[135.843523,-11.905475],[135.834014,-11.95064],[135.895819,-11.969553],[135.889411,-11.992808],[135.804248,-12.054819],[135.702549,-12.151558],[135.70441,-12.209849],[135.74389,-12.241681],[135.790813,-12.227574],[135.857372,-12.178533],[135.93778,-12.152178],[136.008474,-12.1914],[136.031418,-12.330875],[136.081854,-12.422446],[136.192649,-12.435106],[136.260655,-12.433814],[136.328558,-12.305605],[136.291867,-12.196413],[136.249906,-12.173055],[136.270163,-12.131662],[136.443383,-11.951467],[136.540224,-11.957668],[136.609781,-12.133574],[136.719438,-12.226489],[136.836434,-12.219099],[136.897412,-12.243542],[136.947435,-12.349892],[136.53702,-12.784284],[136.517797,-12.83286],[136.572987,-12.911615],[136.594381,-13.003805],[136.461056,-13.225187],[136.41186,-13.236091],[136.364524,-13.176353],[136.294141,-13.137957],[136.232336,-13.164933],[136.166087,-13.181056],[135.927342,-13.304252],[135.929202,-13.621546],[135.98956,-13.810164],[135.954524,-13.93486],[135.883417,-14.153089],[135.806316,-14.234221],[135.744511,-14.286621],[135.538838,-14.585001],[135.473209,-14.656624],[135.405203,-14.758169],[135.428044,-14.85563],[135.453262,-14.923171],[135.530777,-15.000376],[135.832567,-15.16016],[135.96951,-15.27023],[136.205361,-15.403452],[136.259311,-15.495178],[136.291351,-15.57016],[136.461883,-15.655323],[136.583632,-15.706535],[136.618772,-15.693357],[136.644094,-15.67558],[136.674583,-15.675374],[136.704865,-15.685296],[136.700111,-15.751906],[136.686779,-15.788493],[136.698147,-15.83495],[136.784654,-15.894223],[136.92263,-15.892415],[137.002108,-15.878359],[137.089855,-15.941301],[137.16892,-15.982125],[137.299351,-16.066306],[137.526314,-16.167127],[137.703771,-16.232962],[137.912854,-16.476565],[138.071604,-16.617022],[138.24503,-16.718307],[138.505686,-16.789518],[138.625678,-16.777839],[138.820292,-16.860624],[139.009841,-16.899278],[139.110403,-17.014103],[139.14451,-17.101075],[139.154122,-17.167789],[139.248483,-17.328606],[139.440512,-17.380593],[139.689593,-17.540686],[139.894541,-17.611379],[139.946011,-17.653651],[140.035825,-17.70264],[140.209664,-17.704397],[140.511145,-17.624505],[140.648397,-17.543787],[140.830505,-17.414492],[140.915874,-17.192594],[140.966001,-17.014517],[141.219112,-16.646167],[141.291459,-16.463439],[141.355641,-16.221077],[141.411865,-16.069561],[141.393158,-15.904714],[141.451552,-15.6053],[141.581467,-15.195403],[141.625495,-15.0566],[141.603481,-14.852788],[141.522969,-14.470073],[141.558936,-14.337884],[141.594386,-14.152831],[141.535475,-14.018627],[141.480698,-13.926747],[141.472533,-13.797555],[141.534131,-13.553849],[141.588805,-13.425123],[141.645442,-13.259087],[141.61361,-12.943447],[141.734533,-12.83348],[141.782282,-12.778755],[141.875816,-12.778186],[141.920361,-12.802939],[141.929766,-12.739842],[141.892869,-12.681344],[141.878296,-12.613287],[141.852148,-12.578663],[141.794581,-12.566623],[141.746728,-12.529364],[141.677792,-12.491434],[141.68854,-12.35108],[141.805743,-12.080089],[141.870545,-11.975599],[141.913023,-12.019214],[141.961185,-12.054303],[141.9678,-11.976271],[141.951574,-11.896173],[142.04056,-11.631693],[142.138952,-11.273265],[142.168304,-10.946567],[142.326434,-10.884142],[142.406843,-10.802234],[142.456452,-10.707305],[142.544819,-10.707305],[142.605074,-10.748233],[142.565386,-10.819443],[142.552777,-10.874375],[142.723103,-11.010439],[142.779637,-11.115342],[142.803304,-11.213941],[142.836791,-11.306958],[142.852914,-11.432222],[142.85064,-11.632365],[142.872551,-11.821397],[142.933942,-11.880773],[142.988513,-11.919014],[143.066441,-11.92413],[143.178889,-11.954515]]],[[[142.274861,-10.704824],[142.191456,-10.761978],[142.137195,-10.731903],[142.125516,-10.668496],[142.130994,-10.640642],[142.197967,-10.591963],[142.274861,-10.704824]]],[[[142.33894,-10.192194],[142.279409,-10.254206],[142.216157,-10.235602],[142.195176,-10.199325],[142.218741,-10.149406],[142.298736,-10.140414],[142.33894,-10.192194]]],[[[142.167581,-10.154057],[142.141949,-10.181239],[142.097611,-10.121811],[142.148874,-10.051738],[142.191972,-10.085224],[142.167581,-10.154057]]]]},"type":"Feature","properties":{"ISO_A2":"AU","NAME":"Australia"}},{"geometry":{"type":"Polygon","coordinates":[[[16.953105,48.598843],[16.948868,48.588559],[16.94339,48.550939],[16.904478,48.503525],[16.862671,48.44141],[16.865462,48.386918],[16.972639,48.198092],[17.067878,48.083267],[17.085965,48.039574],[17.147357,48.005959],[17.089066,47.963636],[17.077749,47.900901],[17.039922,47.872944],[17.030103,47.837132],[17.045864,47.804524],[17.045606,47.763752],[17.066638,47.707553],[16.973414,47.695332],[16.862671,47.69727],[16.823087,47.693988],[16.785984,47.67864],[16.747588,47.686263],[16.647491,47.738999],[16.590957,47.750548],[16.551011,47.74737],[16.521142,47.724477],[16.46962,47.695074],[16.421303,47.674455],[16.432103,47.656316],[16.639739,47.608877],[16.676533,47.536013],[16.636639,47.476611],[16.622996,47.447569],[16.57442,47.424651],[16.514786,47.404549],[16.442904,47.399536],[16.434325,47.367445],[16.462592,47.273135],[16.439751,47.252749],[16.416859,47.223423],[16.438356,47.145908],[16.48285,47.140379],[16.492668,47.12268],[16.484813,47.09126],[16.476958,47.057851],[16.461249,47.022479],[16.453394,47.006769],[16.423887,46.996951],[16.331851,47.002196],[16.252579,46.971914],[16.093054,46.86329],[16.037192,46.844841],[15.976834,46.801381],[15.980451,46.705857],[15.972286,46.697202],[15.957662,46.677616],[15.766924,46.711258],[15.760258,46.710767],[15.632669,46.698442],[15.545336,46.65462],[15.439296,46.629661],[15.217035,46.642993],[15.000666,46.625992],[14.949455,46.613227],[14.893283,46.605915],[14.840573,46.58049],[14.8106,46.544601],[14.756753,46.499126],[14.680169,46.463443],[14.59697,46.436081],[14.577126,46.41293],[14.549841,46.3997],[14.503539,46.417064],[14.465918,46.416108],[14.419926,46.427916],[14.267274,46.440732],[14.099533,46.461919],[14.019641,46.482176],[13.928794,46.498196],[13.831383,46.511218],[13.743999,46.514319],[13.69997,46.520262],[13.490061,46.555557],[13.351568,46.557934],[13.168737,46.572661],[12.805555,46.625888],[12.699825,46.647437],[12.598642,46.654104],[12.479166,46.6725],[12.388319,46.702654],[12.330131,46.759833],[12.268016,46.835875],[12.154122,46.935275],[12.130764,46.984781],[12.16549,47.028189],[12.20125,47.0609],[12.197168,47.074982],[12.169418,47.082139],[11.969482,47.039713],[11.775643,46.986073],[11.699369,46.984678],[11.625523,46.996563],[11.527545,46.997416],[11.433184,46.983076],[11.24441,46.975686],[11.133925,46.936179],[11.06349,46.85913],[11.025095,46.796989],[10.993262,46.77699],[10.927323,46.769497],[10.828931,46.775233],[10.759788,46.79332],[10.689301,46.846392],[10.579747,46.85373],[10.479392,46.855125],[10.45283,46.864943],[10.454587,46.899437],[10.4149,46.964395],[10.349425,46.984781],[10.179772,46.862334],[10.13347,46.851507],[9.996889,46.88533],[9.877723,46.937678],[9.864649,46.97597],[9.845322,47.007364],[9.745018,47.037129],[9.619961,47.05749],[9.580222,47.057386],[9.595725,47.075835],[9.610504,47.107151],[9.601202,47.132059],[9.57185,47.157923],[9.555779,47.185492],[9.551076,47.212235],[9.542136,47.234146],[9.536814,47.254635],[9.527512,47.270758],[9.609057,47.391785],[9.625904,47.467025],[9.554384,47.511157],[9.523998,47.524205],[9.548906,47.53405],[9.650605,47.525885],[9.715097,47.550767],[9.748894,47.575546],[9.839172,47.552292],[9.971619,47.505318],[10.034096,47.473588],[10.059831,47.449094],[10.074248,47.428527],[10.066342,47.393335],[10.096469,47.379589],[10.158791,47.374266],[10.200287,47.363414],[10.185766,47.317164],[10.183027,47.27882],[10.240595,47.284143],[10.312787,47.313443],[10.369114,47.36605],[10.403944,47.416977],[10.430351,47.541052],[10.439446,47.551568],[10.482854,47.541801],[10.658709,47.547227],[10.741598,47.524102],[10.873063,47.520201],[10.870582,47.50077],[10.89394,47.470436],[10.952128,47.426718],[10.98086,47.398167],[11.041941,47.393102],[11.136044,47.408864],[11.191183,47.425193],[11.211957,47.413644],[11.297946,47.424909],[11.374117,47.460256],[11.392928,47.487179],[11.469926,47.506093],[11.573899,47.549734],[11.716836,47.583478],[12.185644,47.619523],[12.203834,47.64673],[12.19691,47.709078],[12.209312,47.718276],[12.268326,47.702748],[12.363204,47.688201],[12.435758,47.666109],[12.482887,47.637299],[12.526605,47.636137],[12.594198,47.65629],[12.685872,47.669313],[12.771397,47.639392],[12.79615,47.607017],[12.781163,47.590455],[12.782817,47.564177],[12.809379,47.542163],[12.878935,47.506455],[12.968025,47.475681],[13.014327,47.478084],[13.031536,47.508005],[13.047917,47.579163],[13.054067,47.655128],[13.033551,47.698743],[12.985492,47.709414],[12.928131,47.712824],[12.897642,47.721894],[12.908287,47.74582],[12.954176,47.80778],[12.953556,47.890617],[12.849893,47.984823],[12.760028,48.075981],[12.760389,48.106986],[12.814236,48.160859],[12.897435,48.203699],[13.082127,48.27509],[13.14047,48.289921],[13.215245,48.30191],[13.322836,48.331262],[13.374564,48.361364],[13.409342,48.394152],[13.45983,48.56453],[13.471716,48.571816],[13.48665,48.581841],[13.675166,48.523033],[13.692167,48.532774],[13.723948,48.54236],[13.78534,48.587474],[13.798879,48.621684],[13.797484,48.686434],[13.80291,48.747516],[13.814744,48.766946],[13.843114,48.759866],[13.924349,48.728034],[13.988738,48.692429],[14.049148,48.602512],[14.189863,48.578586],[14.36763,48.576208],[14.431088,48.616258],[14.488708,48.625559],[14.553872,48.613312],[14.691331,48.599204],[14.706679,48.671913],[14.785951,48.747361],[14.821866,48.774],[14.922531,48.77139],[14.947336,48.827743],[14.972141,48.983935],[14.993431,49.001118],[15.066812,48.997836],[15.139779,48.969337],[15.16169,48.946263],[15.19962,48.948124],[15.252744,48.963885],[15.310931,48.974014],[15.402915,48.957374],[15.599441,48.886396],[15.700778,48.860429],[15.765012,48.865441],[15.825215,48.86446],[16.057242,48.754802],[16.2193,48.739403],[16.367301,48.738989],[16.414843,48.772088],[16.477889,48.800122],[16.543518,48.796247],[16.600982,48.781881],[16.712706,48.734235],[16.764486,48.722039],[16.833216,48.714288],[16.883652,48.703694],[16.9283,48.620909],[16.953105,48.598843]]]},"type":"Feature","properties":{"ISO_A2":"AT","NAME":"Austria"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[45.152831,39.582675],[45.172571,39.570608],[45.252566,39.595465],[45.288326,39.56557],[45.349873,39.529887],[45.456843,39.494463],[45.610787,39.549783],[45.687424,39.564045],[45.75052,39.56296],[45.784472,39.545597],[45.796512,39.488133],[45.784162,39.417233],[45.766333,39.378449],[45.798683,39.350182],[45.92498,39.281944],[45.977432,39.243884],[45.951852,39.1781],[46.045903,39.017515],[46.077477,38.954884],[46.114426,38.877782],[45.92188,38.90791],[45.575027,38.972815],[45.479633,39.00625],[45.389199,39.095909],[45.335507,39.139136],[45.255925,39.194662],[45.190658,39.215643],[45.141255,39.254297],[45.113092,39.311554],[45.071647,39.362895],[45.000179,39.423537],[44.838173,39.62908],[44.817141,39.650422],[44.783344,39.684658],[44.768255,39.70352],[44.867164,39.719126],[45.03165,39.765118],[45.076453,39.74282],[45.124564,39.696337],[45.148593,39.656572],[45.152831,39.582675]]],[[[45.023588,41.027238],[45.002039,41.015817],[44.969018,41.027238],[44.958889,41.052611],[44.961421,41.07925],[44.994391,41.085606],[45.021056,41.077984],[45.028652,41.053877],[45.023588,41.027238]]],[[[46.552125,41.81228],[46.571246,41.800085],[46.615997,41.806958],[46.690308,41.831349],[46.749323,41.81259],[46.825597,41.743421],[46.930914,41.670428],[46.987758,41.621387],[47.010185,41.587488],[47.063929,41.554699],[47.142632,41.516045],[47.205315,41.455609],[47.261178,41.315075],[47.31766,41.282442],[47.520593,41.22906],[47.591855,41.218105],[47.791016,41.199269],[47.861089,41.21273],[47.963719,41.333963],[48.056064,41.45871],[48.142312,41.484755],[48.298117,41.54501],[48.391393,41.601905],[48.430719,41.663349],[48.51862,41.779336],[48.57288,41.844475],[48.664658,41.786623],[48.823925,41.629604],[49.050887,41.373987],[49.106595,41.301717],[49.143285,41.217795],[49.174704,41.116095],[49.226484,41.026204],[49.456754,40.799836],[49.55618,40.716301],[49.71834,40.608116],[49.776011,40.583983],[49.851769,40.577213],[49.990675,40.5768],[50.119143,40.534529],[50.182498,40.504763],[50.248024,40.461768],[50.306831,40.412185],[50.365949,40.279506],[50.143224,40.323224],[49.918845,40.316402],[49.792031,40.287877],[49.669041,40.249016],[49.551115,40.194162],[49.477321,40.087243],[49.415103,39.839842],[49.324463,39.608358],[49.327563,39.501233],[49.367354,39.398371],[49.362806,39.349562],[49.321155,39.328892],[49.269375,39.285173],[49.199819,39.07268],[49.165299,39.030254],[49.120961,39.003899],[49.108662,39.029039],[49.111349,39.084695],[49.013474,39.133994],[48.961694,39.078752],[48.926141,38.961756],[48.854517,38.838818],[48.8509,38.815357],[48.868728,38.43551],[48.840358,38.437267],[48.635512,38.398742],[48.592673,38.411067],[48.417438,38.58625],[48.381264,38.605628],[48.305558,38.613483],[48.261272,38.642293],[48.225253,38.689215],[48.204686,38.724148],[48.02325,38.819052],[47.996482,38.853753],[47.992658,38.884294],[48.019323,38.911837],[48.05007,38.934988],[48.13854,38.95863],[48.241996,38.978939],[48.275121,38.993615],[48.292071,39.018859],[48.291037,39.05927],[48.274087,39.099112],[48.125466,39.171614],[48.109136,39.202827],[48.104382,39.241093],[48.112857,39.281091],[48.136008,39.312355],[48.257241,39.354962],[48.322146,39.399094],[48.281735,39.448342],[48.151097,39.560531],[47.995861,39.683935],[47.89225,39.685072],[47.772878,39.648588],[47.581778,39.543375],[47.476152,39.498365],[47.338434,39.423899],[47.188366,39.340958],[47.065479,39.252902],[46.988894,39.180193],[46.852572,39.148412],[46.783171,39.087408],[46.554812,38.904396],[46.49063,38.906669],[46.486755,38.997465],[46.489855,39.06945],[46.475437,39.110869],[46.401437,39.167687],[46.4003,39.192182],[46.42035,39.207375],[46.477091,39.198176],[46.549955,39.201432],[46.584733,39.223678],[46.50665,39.298558],[46.437249,39.348555],[46.378389,39.382273],[46.365263,39.402505],[46.36516,39.416793],[46.377666,39.433872],[46.478125,39.47511],[46.488047,39.512834],[46.481432,39.555157],[46.321648,39.617453],[46.202069,39.594483],[46.094789,39.664478],[46.025904,39.718532],[45.939966,39.776539],[45.863175,39.808371],[45.78964,39.881106],[45.661792,39.956192],[45.579782,39.97756],[45.58097,39.989032],[45.596008,40.002856],[45.630166,40.014199],[45.858111,40.011279],[45.885964,40.024844],[45.900124,40.05709],[45.931285,40.104684],[45.967561,40.174809],[45.964616,40.233772],[45.735689,40.329115],[45.569498,40.416861],[45.454415,40.532358],[45.376176,40.638088],[45.378967,40.67359],[45.401343,40.707154],[45.579368,40.804486],[45.59146,40.829756],[45.587533,40.846913],[45.523971,40.896729],[45.444234,40.947992],[45.419171,40.985716],[45.368942,41.004888],[45.273392,41.006257],[45.106115,41.069354],[45.070459,41.075581],[45.062604,41.088138],[45.070665,41.100825],[45.190193,41.126353],[45.188591,41.147411],[45.152314,41.175161],[45.084721,41.19547],[45.022916,41.2457],[45.001419,41.290968],[45.217168,41.423208],[45.280988,41.449563],[45.422323,41.425275],[45.715587,41.337658],[45.695692,41.289005],[45.725509,41.261616],[45.792792,41.224409],[45.921983,41.186737],[46.031227,41.167281],[46.086521,41.183843],[46.170753,41.197847],[46.279997,41.154439],[46.380766,41.0993],[46.430944,41.077054],[46.457919,41.070207],[46.534349,41.088552],[46.626333,41.159684],[46.662403,41.245493],[46.672583,41.286834],[46.618891,41.34373],[46.508769,41.405587],[46.385004,41.459847],[46.305422,41.507699],[46.254727,41.602138],[46.203516,41.612602],[46.190545,41.62485],[46.182122,41.657096],[46.184241,41.702158],[46.201862,41.736884],[46.251834,41.751767],[46.302528,41.75709],[46.348262,41.790163],[46.405468,41.855068],[46.429911,41.890958],[46.537656,41.87039],[46.552125,41.81228]],[[45.478806,40.606979],[45.514359,40.599538],[45.552393,40.616074],[45.562315,40.649147],[45.534203,40.66403],[45.504437,40.664857],[45.478806,40.64832],[45.478806,40.606979]]]]},"type":"Feature","properties":{"ISO_A2":"AZ","NAME":"Azerbaijan"}},{"geometry":{"type":"Polygon","coordinates":[[[30.553619,-2.400112],[30.533723,-2.42626],[30.441998,-2.613432],[30.424221,-2.641596],[30.434349,-2.658855],[30.473365,-2.694306],[30.450472,-2.753268],[30.441274,-2.769081],[30.424014,-2.824065],[30.433471,-2.874501],[30.455537,-2.893208],[30.515068,-2.917548],[30.604262,-2.935273],[30.709475,-2.977234],[30.780271,-2.984882],[30.796911,-3.015164],[30.793604,-3.069321],[30.811122,-3.116399],[30.811432,-3.20058],[30.790245,-3.27458],[30.681776,-3.30941],[30.626069,-3.347341],[30.610979,-3.366358],[30.624622,-3.388682],[30.631908,-3.418654],[30.529899,-3.492448],[30.425048,-3.588876],[30.400036,-3.653885],[30.379159,-3.73078],[30.348463,-3.779821],[30.268571,-3.850514],[30.187129,-3.992883],[30.147132,-4.085383],[29.947299,-4.307282],[29.76948,-4.418076],[29.717804,-4.455852],[29.403198,-4.449289],[29.379168,-4.299737],[29.331368,-4.095409],[29.223261,-3.910872],[29.21184,-3.833823],[29.216749,-3.684943],[29.217163,-3.475705],[29.210083,-3.363309],[29.212305,-3.281298],[29.226051,-3.138723],[29.224397,-3.053508],[29.153187,-2.955271],[29.064717,-2.850782],[29.016606,-2.799622],[29.014126,-2.758281],[29.014384,-2.720195],[29.028647,-2.664592],[29.063167,-2.602528],[29.102028,-2.595655],[29.197577,-2.620305],[29.297054,-2.673015],[29.349764,-2.791509],[29.390227,-2.808562],[29.463711,-2.808355],[29.6514,-2.792801],[29.698064,-2.794713],[29.783381,-2.766394],[29.868182,-2.716371],[29.892574,-2.664643],[29.912417,-2.54863],[29.930194,-2.339547],[29.973447,-2.337066],[30.09189,-2.411532],[30.117314,-2.416596],[30.142274,-2.413961],[30.183305,-2.377012],[30.233845,-2.347092],[30.271,-2.347867],[30.408511,-2.312985],[30.482202,-2.37603],[30.528866,-2.395564],[30.553619,-2.400112]]]},"type":"Feature","properties":{"ISO_A2":"BI","NAME":"Burundi"}},{"geometry":{"type":"Polygon","coordinates":[[[4.816068,51.43283],[4.820667,51.412056],[4.848056,51.403271],[4.943916,51.407767],[4.992595,51.445361],[5.030939,51.469107],[5.059464,51.453139],[5.073417,51.406811],[5.099875,51.346479],[5.214183,51.278963],[5.31087,51.259714],[5.429777,51.272995],[5.476855,51.285035],[5.508739,51.27501],[5.540417,51.239302],[5.608785,51.198451],[5.752393,51.169487],[5.796473,51.153054],[5.827118,51.125639],[5.818281,51.086417],[5.749758,50.988748],[5.740818,50.959913],[5.749965,50.950224],[5.736632,50.932137],[5.647542,50.866663],[5.63948,50.843615],[5.669091,50.805943],[5.693587,50.774742],[5.694567,50.781035],[5.830993,50.809147],[5.892488,50.752561],[5.797404,50.754525],[5.993929,50.750443],[6.00597,50.732227],[6.119451,50.679232],[6.154488,50.637271],[6.235981,50.596705],[6.16844,50.545339],[6.178672,50.522498],[6.203064,50.499114],[6.294944,50.485498],[6.340936,50.451753],[6.343623,50.400257],[6.364501,50.316154],[6.175055,50.232645],[6.121311,50.139369],[6.116506,50.120972],[6.110046,50.123763],[6.089065,50.154588],[6.054752,50.154303],[5.976307,50.167171],[5.866908,50.082835],[5.817402,50.012684],[5.788102,49.96124],[5.744074,49.919641],[5.735289,49.875638],[5.740766,49.857164],[5.72578,49.833341],[5.724953,49.808278],[5.787998,49.758875],[5.803708,49.732159],[5.880396,49.644774],[5.856573,49.612838],[5.837608,49.578344],[5.815439,49.553823],[5.789704,49.538269],[5.710484,49.539199],[5.610077,49.528243],[5.542432,49.511035],[5.507292,49.51088],[5.434635,49.554469],[5.353503,49.61984],[5.301982,49.651001],[5.278779,49.677924],[5.21501,49.689241],[5.124111,49.721461],[5.061066,49.75655],[5.006909,49.778357],[4.930583,49.789261],[4.86759,49.788124],[4.849141,49.847139],[4.841545,49.914499],[4.790023,49.959586],[4.860562,50.135906],[4.818652,50.153192],[4.772867,50.139059],[4.706617,50.097046],[4.675095,50.046894],[4.656181,50.002452],[4.545025,49.960258],[4.368705,49.944962],[4.176056,49.960258],[4.149339,49.971575],[4.13704,49.984469],[4.136833,49.999997],[4.150321,50.023872],[4.183859,50.052811],[4.192179,50.094152],[4.15771,50.129886],[4.135283,50.143813],[4.14412,50.17841],[4.169596,50.221767],[4.174557,50.246494],[4.044126,50.321347],[3.949713,50.335946],[3.85809,50.338556],[3.788586,50.346953],[3.74802,50.343491],[3.718874,50.321657],[3.689315,50.306077],[3.667301,50.324784],[3.626787,50.457334],[3.595367,50.477359],[3.476925,50.49945],[3.316211,50.507357],[3.27332,50.531541],[3.249755,50.591176],[3.234976,50.662954],[3.182008,50.731684],[3.154878,50.748944],[3.10687,50.779433],[3.022896,50.766876],[2.921972,50.727033],[2.862441,50.716],[2.839755,50.711789],[2.759398,50.750649],[2.669119,50.811421],[2.596772,50.875913],[2.579254,50.911776],[2.601423,50.955288],[2.57481,50.988568],[2.536052,51.049494],[2.524942,51.09714],[2.960161,51.26545],[3.225158,51.351595],[3.350111,51.377691],[3.380083,51.291133],[3.402821,51.263641],[3.432483,51.245761],[3.471964,51.242247],[3.517129,51.263641],[3.580278,51.286172],[3.681822,51.275682],[3.755668,51.254856],[3.781919,51.233204],[3.830754,51.212585],[3.902067,51.207676],[4.039991,51.247079],[4.172593,51.307101],[4.211454,51.348752],[4.22613,51.386476],[4.304471,51.361516],[4.373718,51.355987],[4.404,51.367097],[4.384777,51.427611],[4.440897,51.459805],[4.503426,51.474688],[4.531693,51.448591],[4.588795,51.421926],[4.63396,51.421719],[4.755658,51.491095],[4.784184,51.477375],[4.81059,51.452725],[4.816068,51.43283]]]},"type":"Feature","properties":{"ISO_A2":"BE","NAME":"Belgium"}},{"geometry":{"type":"Polygon","coordinates":[[[3.595419,11.696289],[3.553923,11.6319],[3.490568,11.499195],[3.487829,11.395429],[3.638879,11.176837],[3.656242,11.154591],[3.695361,11.120329],[3.716394,11.079608],[3.73417,10.971915],[3.744867,10.850449],[3.756805,10.768723],[3.82972,10.653769],[3.834474,10.607441],[3.783831,10.435901],[3.771791,10.417607],[3.758458,10.412698],[3.68022,10.427788],[3.646579,10.409003],[3.604152,10.350686],[3.577901,10.292499],[3.576557,10.26834],[3.645907,10.16013],[3.602085,10.004558],[3.55723,9.907303],[3.476718,9.851905],[3.404785,9.838625],[3.354452,9.812812],[3.325203,9.778473],[3.329544,9.667033],[3.223401,9.565644],[3.164696,9.494666],[3.136171,9.45162],[3.148056,9.320594],[3.110436,9.188277],[3.044962,9.083839],[2.898097,9.061359],[2.774849,9.048544],[2.732888,8.782539],[2.734645,8.614022],[2.723586,8.441914],[2.703071,8.371841],[2.711494,8.27301],[2.702347,8.049819],[2.686017,7.873757],[2.707721,7.826603],[2.720434,7.723095],[2.719349,7.616254],[2.751026,7.541917],[2.785133,7.476857],[2.783944,7.443396],[2.765806,7.422519],[2.750509,7.395053],[2.750613,7.143234],[2.756762,7.067915],[2.747719,7.01983],[2.721416,6.980272],[2.731751,6.852838],[2.752938,6.771628],[2.774642,6.711735],[2.753662,6.661764],[2.735678,6.595722],[2.708031,6.42767],[2.706481,6.36925],[2.28692,6.32809],[1.818112,6.260652],[1.62262,6.216778],[1.610889,6.250833],[1.777907,6.294655],[1.743129,6.426249],[1.639311,6.581562],[1.598538,6.610217],[1.577558,6.687396],[1.602931,6.73809],[1.590787,6.772274],[1.582002,6.876997],[1.530946,6.992442],[1.624687,6.997299],[1.624687,7.369189],[1.624583,7.725885],[1.624583,8.030208],[1.624583,8.270994],[1.6066,8.559271],[1.603809,8.771015],[1.600192,9.050042],[1.566292,9.137246],[1.424286,9.285015],[1.385735,9.361651],[1.378914,9.462989],[1.347081,9.56753],[1.345066,9.750206],[1.342843,9.962958],[1.330028,9.996987],[1.176187,10.098402],[0.958319,10.242037],[0.792179,10.351539],[0.779984,10.359575],[0.763344,10.386653],[0.787477,10.710277],[0.821842,10.7526],[0.874758,10.885744],[0.900493,10.993257],[0.924626,10.992818],[0.958009,11.027803],[0.985036,11.079014],[1.01382,11.06811],[1.062292,11.058188],[1.084565,11.076378],[1.081516,11.116014],[1.097535,11.156374],[1.135569,11.174357],[1.145491,11.210401],[1.145801,11.251923],[1.178667,11.262724],[1.234685,11.261018],[1.28047,11.273989],[1.317367,11.29528],[1.364806,11.378892],[1.391523,11.407986],[1.399739,11.428708],[1.426714,11.447105],[1.501335,11.45558],[1.561383,11.449146],[1.600037,11.400648],[1.857644,11.443333],[1.980376,11.418425],[2.230851,11.629161],[2.28723,11.691276],[2.363246,11.840104],[2.389188,11.897052],[2.412649,11.99932],[2.363298,12.188429],[2.365985,12.221942],[2.469338,12.262818],[2.598426,12.29434],[2.648449,12.296769],[2.681366,12.312815],[2.728547,12.353639],[2.805235,12.383844],[2.850193,12.373664],[2.87815,12.367721],[3.149555,12.118072],[3.267377,11.991878],[3.299106,11.927128],[3.35993,11.880464],[3.449847,11.851938],[3.531702,11.787446],[3.595419,11.696289]]]},"type":"Feature","properties":{"ISO_A2":"BJ","NAME":"Benin"}},{"geometry":{"type":"Polygon","coordinates":[[[0.217486,14.911493],[0.203817,14.865062],[0.202784,14.782793],[0.185059,14.652956],[0.16382,14.497203],[0.25061,14.396434],[0.354583,14.288017],[0.382489,14.245823],[0.354842,14.139034],[0.374065,14.07635],[0.429204,13.972119],[0.522325,13.839724],[0.618185,13.703402],[0.684537,13.685392],[0.747789,13.674514],[0.78603,13.650046],[0.842254,13.626404],[0.897909,13.610927],[0.946589,13.581135],[0.977749,13.551938],[1.01785,13.46786],[1.125957,13.41236],[1.201198,13.357531],[1.170916,13.329574],[1.076865,13.340788],[0.988446,13.364843],[0.976716,13.32451],[0.973099,13.170359],[0.987258,13.041892],[1.007877,13.024813],[1.096812,13.001119],[1.308685,12.834256],[1.500508,12.676462],[1.564949,12.635405],[1.67104,12.619798],[1.789793,12.613261],[1.840953,12.62786],[1.956191,12.707442],[2.017376,12.716227],[2.073807,12.713953],[2.104606,12.701292],[2.159745,12.636438],[2.211576,12.538408],[2.226252,12.466061],[2.221394,12.427226],[2.203824,12.412576],[2.10936,12.393869],[2.068536,12.379141],[2.058407,12.357954],[2.07298,12.309352],[2.091377,12.277959],[2.194419,12.136469],[2.343351,11.945989],[2.389188,11.897052],[2.363246,11.840104],[2.28723,11.691276],[2.230851,11.629161],[1.980376,11.418425],[1.857644,11.443333],[1.600037,11.400648],[1.561383,11.449146],[1.501335,11.45558],[1.426714,11.447105],[1.399739,11.428708],[1.391523,11.407986],[1.364806,11.378892],[1.317367,11.29528],[1.28047,11.273989],[1.234685,11.261018],[1.178667,11.262724],[1.145801,11.251923],[1.145491,11.210401],[1.135569,11.174357],[1.097535,11.156374],[1.081516,11.116014],[1.084565,11.076378],[1.062292,11.058188],[1.01382,11.06811],[0.985036,11.079014],[0.958009,11.027803],[0.924626,10.992818],[0.900493,10.993257],[0.64299,10.983051],[0.549145,10.955404],[0.492714,10.954991],[0.490699,10.978193],[0.484136,10.991965],[0.159272,11.069609],[-0.068621,11.115601],[-0.299459,11.16689],[-0.312559,11.118882],[-0.345736,11.087928],[-0.395603,11.085706],[-0.43033,11.093277],[-0.453533,11.056302],[-0.491722,11.007597],[-0.545233,10.983671],[-0.597658,10.953673],[-0.627165,10.927395],[-0.648534,10.926775],[-0.701425,10.988942],[-0.771601,10.995272],[-0.902911,10.984704],[-0.961822,11.001706],[-1.042489,11.010052],[-1.232607,10.997236],[-1.536774,11.022635],[-1.586487,11.008889],[-1.599664,10.997649],[-1.900628,10.994678],[-2.231951,10.991422],[-2.509169,10.988735],[-2.751687,10.986358],[-2.7521,10.996978],[-2.829925,10.998373],[-2.838555,10.97747],[-2.907336,10.727976],[-2.914881,10.592325],[-2.878398,10.507938],[-2.837211,10.454659],[-2.791168,10.432438],[-2.78662,10.401898],[-2.823466,10.362934],[-2.820313,10.322833],[-2.777112,10.281595],[-2.766518,10.238161],[-2.788481,10.192582],[-2.78321,10.08308],[-2.750731,9.909654],[-2.749827,9.797232],[-2.780522,9.74584],[-2.76595,9.658067],[-2.706186,9.53394],[-2.695851,9.481334],[-2.717193,9.457149],[-2.766621,9.424722],[-2.816748,9.425833],[-2.875142,9.500945],[-2.900877,9.534612],[-2.948135,9.610732],[-2.988262,9.687342],[-3.042625,9.72088],[-3.095826,9.752118],[-3.160706,9.849167],[-3.223544,9.895469],[-3.28969,9.882239],[-3.386274,9.900275],[-3.581145,9.924304],[-3.790642,9.917199],[-3.877665,9.8949],[-3.963473,9.859631],[-4.18116,9.781755],[-4.267176,9.743256],[-4.332211,9.645716],[-4.406211,9.648016],[-4.480264,9.679229],[-4.526617,9.723489],[-4.625836,9.713568],[-4.721748,9.756562],[-4.814481,9.841157],[-4.88272,9.868933],[-4.969898,9.930066],[-4.994031,10.046493],[-5.049325,10.128323],[-5.099864,10.241623],[-5.175312,10.292628],[-5.262283,10.31968],[-5.382276,10.313996],[-5.461289,10.359549],[-5.523559,10.426005],[-5.507023,10.483443],[-5.479014,10.565092],[-5.475655,10.64395],[-5.457077,10.77141],[-5.468575,10.931039],[-5.490486,11.042375],[-5.424237,11.088729],[-5.347394,11.130277],[-5.299852,11.205931],[-5.250242,11.375766],[-5.229365,11.522475],[-5.244765,11.576761],[-5.270293,11.61986],[-5.29055,11.683318],[-5.301996,11.760471],[-5.288121,11.827909],[-5.230192,11.890282],[-5.157535,11.942372],[-5.10591,11.967539],[-4.968993,11.993299],[-4.79797,12.032108],[-4.699346,12.076188],[-4.627231,12.120191],[-4.586924,12.155021],[-4.546048,12.226463],[-4.479902,12.281783],[-4.428691,12.337593],[-4.421559,12.493088],[-4.421921,12.581584],[-4.459851,12.630392],[-4.480625,12.672224],[-4.227101,12.793716],[-4.22524,12.879473],[-4.260639,12.975332],[-4.310248,13.052485],[-4.328697,13.119045],[-4.258675,13.197334],[-4.196198,13.256168],[-4.151033,13.306217],[-4.051194,13.382439],[-3.947299,13.40218],[-3.85348,13.373551],[-3.575771,13.194208],[-3.527609,13.18271],[-3.469938,13.196404],[-3.396712,13.243714],[-3.301731,13.28074],[-3.266746,13.400759],[-3.270182,13.577466],[-3.248608,13.65834],[-3.19843,13.672861],[-3.038698,13.63909],[-2.997228,13.637101],[-2.950848,13.648444],[-2.917103,13.679475],[-2.918499,13.736371],[-2.925888,13.786756],[-2.873953,13.950725],[-2.778843,14.073715],[-2.586736,14.227581],[-2.526894,14.258303],[-2.457235,14.274116],[-2.113225,14.168438],[-2.057156,14.194638],[-1.973026,14.456534],[-1.879776,14.481494],[-1.767794,14.486041],[-1.695059,14.508469],[-1.657335,14.526788],[-1.493676,14.626058],[-1.20496,14.761528],[-1.049569,14.819509],[-1.019183,14.841342],[-0.907975,14.937409],[-0.760439,15.047764],[-0.666465,15.069778],[-0.536551,15.077866],[-0.454463,15.05965],[-0.432294,15.02854],[-0.405422,15.012521],[-0.235872,15.059417],[0.007318,14.984822],[0.217486,14.911493]]]},"type":"Feature","properties":{"ISO_A2":"BF","NAME":"Burkina Faso"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[91.949251,21.508041],[91.888893,21.503339],[91.859437,21.53295],[91.873287,21.574394],[91.85706,21.708804],[91.907703,21.722964],[91.933955,21.722189],[91.948631,21.682553],[91.961963,21.609767],[91.949251,21.508041]]],[[[91.873803,21.832104],[91.83763,21.750223],[91.81975,21.809806],[91.835149,21.885331],[91.850652,21.92706],[91.861298,21.926672],[91.882485,21.883626],[91.873803,21.832104]]],[[[91.150747,22.175184],[91.044707,22.105163],[91.079433,22.519711],[91.158291,22.365405],[91.178239,22.283033],[91.150747,22.175184]]],[[[91.556717,22.3822],[91.510415,22.352796],[91.466903,22.378428],[91.411299,22.475683],[91.438894,22.598828],[91.456051,22.616501],[91.483956,22.576555],[91.523024,22.490746],[91.548345,22.425376],[91.556717,22.3822]]],[[[90.777643,22.089324],[90.603597,22.05421],[90.515023,22.065139],[90.680491,22.327475],[90.67491,22.444987],[90.649175,22.540692],[90.564943,22.617638],[90.560395,22.67257],[90.522568,22.747527],[90.502931,22.835376],[90.596465,22.863514],[90.672223,22.813181],[90.682972,22.785302],[90.699198,22.713523],[90.736922,22.638722],[90.86818,22.484881],[90.865803,22.390572],[90.829939,22.15994],[90.777643,22.089324]]],[[[90.641837,22.962991],[90.659614,22.919997],[90.603907,22.945551],[90.562255,22.975445],[90.536314,23.014875],[90.579929,23.035442],[90.641837,22.962991]]],[[[88.761952,26.279378],[88.827994,26.252196],[88.896517,26.260516],[88.940752,26.245349],[88.970415,26.250904],[88.981525,26.286122],[88.948194,26.338005],[88.924113,26.375083],[88.951915,26.412135],[88.983385,26.41955],[89.018629,26.410275],[89.066791,26.376917],[89.101983,26.308343],[89.108287,26.202225],[89.186422,26.105952],[89.289207,26.03761],[89.36977,26.006113],[89.466922,25.983531],[89.549914,26.005261],[89.59141,26.072414],[89.572755,26.132307],[89.585726,26.186051],[89.619057,26.215687],[89.67094,26.213827],[89.709853,26.171219],[89.822921,25.941414],[89.799615,25.839586],[89.824884,25.560146],[89.796307,25.375816],[89.800907,25.336154],[89.814084,25.305355],[89.833308,25.292798],[89.866277,25.293159],[90.00384,25.258355],[90.119595,25.21996],[90.25044,25.184975],[90.439369,25.157715],[90.555331,25.166578],[90.613053,25.167741],[90.730204,25.159472],[91.038299,25.174071],[91.293115,25.177973],[91.396623,25.151618],[91.479719,25.142135],[91.763526,25.160635],[92.04971,25.169472],[92.204636,25.110948],[92.373411,25.01514],[92.468341,24.944137],[92.485446,24.903312],[92.475059,24.868508],[92.443174,24.849388],[92.384987,24.848768],[92.251248,24.89507],[92.228304,24.881324],[92.230577,24.786239],[92.22665,24.771021],[92.198073,24.685755],[92.117509,24.493957],[92.102006,24.408045],[92.085057,24.38616],[92.064128,24.374352],[92.001082,24.370916],[91.951628,24.356756],[91.931009,24.325544],[91.899021,24.26069],[91.876904,24.195319],[91.846208,24.175269],[91.772518,24.210667],[91.726526,24.205086],[91.6687,24.190074],[91.611132,24.152841],[91.571393,24.106591],[91.526383,24.090752],[91.392644,24.10008],[91.367064,24.093517],[91.350218,24.060496],[91.33642,24.018818],[91.231982,23.920478],[91.192501,23.762891],[91.160462,23.660623],[91.165526,23.581042],[91.25379,23.373638],[91.315233,23.104378],[91.338849,23.07699],[91.359364,23.068386],[91.368666,23.074561],[91.366754,23.130475],[91.37063,23.19799],[91.399465,23.213855],[91.436259,23.199902],[91.471399,23.141275],[91.511241,23.033711],[91.553564,22.991569],[91.619555,22.979683],[91.6949,23.004849],[91.75102,23.053529],[91.773861,23.106083],[91.757945,23.209798],[91.754224,23.287313],[91.790088,23.361029],[91.919175,23.471048],[91.937882,23.50469],[91.929511,23.59825],[91.929614,23.685996],[91.978551,23.692017],[92.044077,23.67778],[92.127018,23.721007],[92.152339,23.72186],[92.187066,23.675532],[92.24608,23.683619],[92.289385,23.492494],[92.33424,23.323822],[92.333827,23.242406],[92.341268,23.069807],[92.361629,22.929014],[92.393151,22.897026],[92.430462,22.821811],[92.464465,22.734427],[92.491388,22.685386],[92.50963,22.525705],[92.531851,22.410312],[92.561255,22.048034],[92.574897,21.97809],[92.582804,21.940315],[92.584251,21.609017],[92.593449,21.467346],[92.625282,21.350738],[92.63169,21.306193],[92.599857,21.270149],[92.568541,21.263328],[92.539189,21.31981],[92.471855,21.362986],[92.372636,21.409029],[92.330571,21.439777],[92.279722,21.427581],[92.208253,21.35787],[92.179573,21.293119],[92.192027,21.202272],[92.214764,21.112691],[92.264425,21.061454],[92.268456,21.004687],[92.286233,20.931591],[92.311916,20.864437],[92.324112,20.791832],[92.307782,20.790437],[92.248147,20.883583],[92.194611,20.984301],[92.056014,21.174832],[92.010953,21.516258],[92.008059,21.684775],[91.913181,21.883057],[91.850032,22.157356],[91.824814,22.228669],[91.857784,22.317346],[91.863365,22.350497],[91.845381,22.343133],[91.797012,22.297477],[91.73407,22.406695],[91.692936,22.504777],[91.529638,22.707658],[91.482096,22.79742],[91.480029,22.884805],[91.409542,22.797007],[91.313734,22.73515],[91.216169,22.642236],[91.151367,22.614046],[90.945591,22.597019],[90.826735,22.721404],[90.656203,23.025468],[90.633569,23.09425],[90.6561,23.27305],[90.615586,23.442342],[90.616102,23.531639],[90.60401,23.591377],[90.573418,23.578148],[90.561635,23.537091],[90.568043,23.474278],[90.555641,23.421516],[90.40795,23.431903],[90.269147,23.455881],[90.391517,23.366946],[90.522775,23.346146],[90.590884,23.266384],[90.599256,23.204165],[90.595122,23.133937],[90.527736,23.084948],[90.466034,23.05389],[90.477506,22.986763],[90.55223,22.904907],[90.46159,22.881808],[90.436888,22.828193],[90.435028,22.751919],[90.480607,22.684662],[90.498487,22.634794],[90.487428,22.588725],[90.531766,22.539296],[90.595535,22.435866],[90.616102,22.36215],[90.589437,22.258435],[90.55285,22.218153],[90.494146,22.178905],[90.355756,22.048267],[90.288164,21.899387],[90.230596,21.829779],[90.158766,21.81686],[90.130757,21.847401],[90.071226,21.887269],[90.069986,21.9599],[90.087866,22.017468],[90.209512,22.156581],[90.14347,22.1379],[90.068539,22.098212],[89.954231,22.022868],[89.918057,22.116144],[89.894079,22.202573],[89.893873,22.308406],[89.985133,22.466381],[89.88178,22.387574],[89.853255,22.288976],[89.865864,22.173065],[89.852531,22.0909],[89.811914,21.983516],[89.756827,21.919024],[89.667736,21.877683],[89.628152,21.814173],[89.568518,21.767431],[89.566657,21.860578],[89.547434,21.983697],[89.483148,22.27554],[89.469299,22.21296],[89.502579,22.031885],[89.500615,21.914373],[89.451936,21.821097],[89.35375,21.721103],[89.278613,21.706996],[89.234275,21.722369],[89.167095,21.784304],[89.093921,21.872774],[89.081622,22.014936],[89.051443,22.093174],[89.055836,22.186243],[89.049945,22.274636],[88.971448,22.510926],[88.920702,22.632004],[88.926955,22.671149],[88.923492,22.687556],[88.899721,22.84349],[88.866958,22.938859],[88.850629,23.040506],[88.928092,23.186595],[88.897034,23.210418],[88.807582,23.229694],[88.724435,23.254963],[88.703971,23.292842],[88.740868,23.436606],[88.697666,23.493037],[88.635758,23.549984],[88.616431,23.572773],[88.595967,23.602177],[88.567338,23.674421],[88.622529,23.82635],[88.699837,24.002515],[88.71379,24.069642],[88.726605,24.186224],[88.733582,24.230924],[88.723505,24.274901],[88.642321,24.325957],[88.498557,24.346628],[88.396961,24.389261],[88.337533,24.453857],[88.287149,24.479746],[88.225034,24.460626],[88.145452,24.485793],[88.079048,24.549923],[88.023392,24.627851],[88.030317,24.664438],[88.045096,24.71304],[88.149793,24.914655],[88.18886,24.920598],[88.279501,24.881944],[88.313349,24.881841],[88.372932,24.961526],[88.456286,25.188437],[88.57385,25.187869],[88.677513,25.180479],[88.747586,25.168955],[88.817297,25.176241],[88.890109,25.19438],[88.929797,25.223009],[88.951656,25.25926],[88.944163,25.290782],[88.854763,25.333544],[88.820346,25.365506],[88.795387,25.456276],[88.769187,25.490486],[88.593487,25.495292],[88.502433,25.53702],[88.452307,25.574434],[88.363113,25.698173],[88.252887,25.789796],[88.147416,25.811448],[88.106591,25.841136],[88.084629,25.888239],[88.097393,25.956349],[88.129019,26.018231],[88.150723,26.087142],[88.235162,26.178092],[88.333968,26.257519],[88.377996,26.312038],[88.44037,26.369502],[88.447811,26.401024],[88.436752,26.437095],[88.386264,26.471537],[88.351434,26.48257],[88.345853,26.504791],[88.369935,26.564115],[88.418149,26.571531],[88.518246,26.517762],[88.620152,26.430661],[88.680613,26.352991],[88.682835,26.291703],[88.722161,26.281833],[88.761952,26.279378]]]]},"type":"Feature","properties":{"ISO_A2":"BD","NAME":"Bangladesh"}},{"geometry":{"type":"Polygon","coordinates":[[[28.585315,43.74224],[28.561802,43.501324],[28.465374,43.38929],[28.319646,43.426859],[28.133715,43.395594],[28.035116,43.268264],[27.979305,43.23054],[27.928869,43.18615],[27.89652,43.020682],[27.888872,42.749691],[27.818385,42.716669],[27.753686,42.706541],[27.484762,42.468054],[27.639585,42.400978],[27.708211,42.349948],[27.821382,42.208018],[27.982716,42.047408],[28.014445,41.969066],[27.879208,41.986636],[27.831924,41.981288],[27.801642,41.956535],[27.738907,41.961522],[27.661185,41.961315],[27.579847,41.932893],[27.534836,41.920775],[27.47484,41.946897],[27.362909,42.025032],[27.294903,42.079551],[27.244363,42.093245],[27.193359,42.077096],[27.011716,42.058648],[26.968721,42.026841],[26.88485,41.991856],[26.800359,41.975164],[26.67923,41.96333],[26.615358,41.964881],[26.579701,41.947957],[26.549729,41.896719],[26.529316,41.846671],[26.511436,41.826362],[26.360386,41.801583],[26.32721,41.772799],[26.318012,41.744687],[26.320905,41.716575],[26.200603,41.743783],[26.107378,41.72567],[26.085571,41.704173],[26.065986,41.673219],[26.076993,41.640198],[26.111202,41.60821],[26.143604,41.521549],[26.155179,41.434887],[26.135335,41.385743],[26.066347,41.35068],[25.923307,41.311897],[25.784917,41.330423],[25.723939,41.31505],[25.621517,41.310089],[25.527052,41.299805],[25.381945,41.264355],[25.251152,41.243529],[25.133381,41.315773],[24.993545,41.364969],[24.846887,41.394218],[24.795831,41.372901],[24.773713,41.356081],[24.651033,41.419953],[24.595998,41.442742],[24.569281,41.467392],[24.518225,41.552554],[24.487942,41.555242],[24.38676,41.523538],[24.289401,41.525037],[24.230387,41.530799],[24.056031,41.527233],[24.03288,41.469097],[24.011382,41.460054],[23.973503,41.452302],[23.880899,41.455945],[23.762302,41.412976],[23.635178,41.386776],[23.535804,41.386053],[23.433433,41.398714],[23.372041,41.389644],[23.239853,41.384968],[23.155982,41.322078],[23.025603,41.325643],[22.915997,41.336289],[22.929691,41.356081],[22.951499,41.605626],[23.005656,41.716963],[23.00364,41.73983],[22.991961,41.757193],[22.943954,41.775099],[22.909176,41.835199],[22.836777,41.993613],[22.796056,42.025704],[22.682316,42.059138],[22.582736,42.10482],[22.498245,42.165101],[22.344042,42.313955],[22.422074,42.328864],[22.44569,42.35912],[22.523514,42.440976],[22.532403,42.48118],[22.524238,42.503892],[22.472045,42.543295],[22.436233,42.629104],[22.46326,42.709486],[22.465637,42.750776],[22.43923,42.791652],[22.466774,42.842502],[22.522791,42.870303],[22.558086,42.878468],[22.706191,42.88392],[22.79988,42.985749],[22.856879,43.018253],[22.915222,43.075976],[22.9423,43.09706],[22.967983,43.142018],[22.97682,43.18801],[22.859618,43.252347],[22.819672,43.300716],[22.767531,43.35415],[22.696941,43.391047],[22.554624,43.454506],[22.499123,43.518843],[22.474112,43.602248],[22.436285,43.6655],[22.39484,43.706635],[22.386882,43.740121],[22.369622,43.781281],[22.365385,43.862103],[22.399078,43.969539],[22.420833,44.007443],[22.469047,44.018037],[22.597412,44.075295],[22.603406,44.148572],[22.626557,44.194099],[22.667485,44.220195],[22.705105,44.237791],[22.775179,44.195236],[22.945401,44.127281],[23.028497,44.077982],[23.024466,44.047234],[22.985398,44.017003],[22.911294,43.987186],[22.8683,43.947886],[22.856414,43.899026],[22.867679,43.864558],[22.919046,43.834456],[23.224609,43.873886],[23.534564,43.853577],[23.950766,43.786656],[24.22677,43.763479],[24.430581,43.794381],[24.808181,43.738416],[25.159633,43.686326],[25.49708,43.670797],[25.686112,43.711751],[25.818817,43.766838],[25.933435,43.870552],[26.215796,44.007288],[26.489216,44.083976],[26.847747,44.146195],[27.086905,44.167408],[27.12065,44.146143],[27.425334,44.020517],[27.561036,44.020052],[27.670901,43.99778],[27.710795,43.964604],[27.738597,43.95631],[27.884272,43.987341],[27.94892,43.918612],[28.049999,43.82239],[28.221978,43.772832],[28.375199,43.744798],[28.423464,43.740483],[28.585315,43.74224]]]},"type":"Feature","properties":{"ISO_A2":"BG","NAME":"Bulgaria"}},{"geometry":{"type":"Polygon","coordinates":[[[50.607278,25.883123],[50.574929,25.806797],[50.544026,25.833514],[50.465892,25.965547],[50.489456,26.058461],[50.452456,26.190805],[50.469922,26.228942],[50.564077,26.246434],[50.585884,26.240724],[50.557772,26.198298],[50.609759,26.124452],[50.61751,26.002341],[50.607278,25.883123]]]},"type":"Feature","properties":{"ISO_A2":"BH","NAME":"Bahrain"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-73.026829,21.192402],[-73.058739,21.119021],[-73.164521,20.979133],[-73.400785,20.94389],[-73.661028,20.937379],[-73.68113,20.975568],[-73.686789,21.009131],[-73.667823,21.061583],[-73.66958,21.082202],[-73.680355,21.103312],[-73.585064,21.125946],[-73.523104,21.1908],[-73.424505,21.201755],[-73.301567,21.156177],[-73.235369,21.154471],[-73.137287,21.204804],[-73.058481,21.313376],[-73.011662,21.299527],[-73.026829,21.192402]]],[[[-72.916112,21.506698],[-73.049334,21.457605],[-73.062718,21.515328],[-72.99479,21.56163],[-72.916112,21.506698]]],[[[-73.041014,22.429045],[-72.978951,22.414601],[-72.945206,22.415635],[-72.830743,22.385611],[-72.762607,22.344373],[-72.747285,22.327371],[-72.783872,22.290629],[-72.889163,22.360238],[-72.98107,22.369229],[-73.110209,22.367576],[-73.161885,22.380701],[-73.127391,22.455322],[-73.041014,22.429045]]],[[[-74.206731,22.213787],[-74.276908,22.183711],[-74.261301,22.235568],[-74.126788,22.323392],[-74.052374,22.400649],[-74.010076,22.427985],[-73.994961,22.449224],[-73.935998,22.47775],[-73.906388,22.527462],[-73.914553,22.568028],[-73.976358,22.635053],[-73.975479,22.682285],[-73.954214,22.715513],[-73.849957,22.731068],[-73.877501,22.680735],[-73.836521,22.538418],[-73.974601,22.361168],[-74.092914,22.306236],[-74.206731,22.213787]]],[[[-74.057541,22.723497],[-74.034752,22.705591],[-74.098572,22.665439],[-74.242233,22.7151],[-74.274608,22.711689],[-74.303108,22.764451],[-74.313986,22.803544],[-74.307009,22.839588],[-74.221459,22.811579],[-74.175364,22.759903],[-74.057541,22.723497]]],[[[-74.840465,22.894339],[-74.846899,22.868682],[-74.973325,23.068566],[-75.132127,23.117091],[-75.22331,23.165356],[-75.204422,23.192719],[-75.141093,23.20463],[-75.130577,23.267934],[-75.157577,23.33638],[-75.241242,23.474588],[-75.288216,23.568252],[-75.309816,23.589827],[-75.315966,23.668375],[-75.216592,23.54678],[-75.175302,23.438673],[-75.108795,23.332788],[-75.064198,23.150215],[-74.937126,23.088152],[-74.845581,22.999888],[-74.840465,22.894339]]],[[[-75.664575,23.450145],[-75.70633,23.444228],[-75.781002,23.470661],[-75.955978,23.592307],[-76.03711,23.602797],[-76.010445,23.671372],[-75.94864,23.647394],[-75.807512,23.542543],[-75.754234,23.489988],[-75.664575,23.450145]]],[[[-74.429431,24.06804],[-74.508702,23.959726],[-74.550922,23.968925],[-74.526918,24.105092],[-74.472038,24.126641],[-74.450489,24.125504],[-74.429431,24.06804]]],[[[-77.657735,24.249476],[-77.656133,24.226584],[-77.755248,24.163487],[-77.683263,24.118451],[-77.615386,24.216352],[-77.561513,24.136822],[-77.532006,23.987632],[-77.536838,23.961664],[-77.531877,23.939418],[-77.521335,23.910841],[-77.518725,23.869448],[-77.573709,23.739171],[-77.771294,23.752556],[-77.775764,23.862368],[-77.806305,23.883555],[-77.852245,24.040393],[-77.91405,24.090933],[-77.99991,24.219814],[-77.950069,24.253068],[-77.883587,24.241983],[-77.849558,24.257512],[-77.757419,24.269914],[-77.701453,24.287562],[-77.657735,24.249476]]],[[[-75.308421,24.200022],[-75.301755,24.149172],[-75.368779,24.159456],[-75.467636,24.139612],[-75.503215,24.139044],[-75.481046,24.173874],[-75.41242,24.220951],[-75.408932,24.265754],[-75.493914,24.330402],[-75.592771,24.49127],[-75.639047,24.529407],[-75.661009,24.589817],[-75.744002,24.654671],[-75.72669,24.689346],[-75.709637,24.697511],[-75.653542,24.680871],[-75.526444,24.449516],[-75.51815,24.427347],[-75.308421,24.200022]]],[[[-77.347547,25.013874],[-77.460486,24.993126],[-77.541205,25.013564],[-77.561927,25.030023],[-77.527329,25.05767],[-77.451262,25.080717],[-77.329099,25.083017],[-77.275614,25.055784],[-77.269154,25.043846],[-77.347547,25.013874]]],[[[-77.743854,24.707433],[-77.746024,24.586355],[-77.73512,24.495766],[-77.745223,24.463468],[-77.853434,24.402904],[-77.881184,24.369107],[-77.983193,24.334949],[-78.044946,24.287458],[-78.075849,24.364663],[-78.135742,24.41236],[-78.145819,24.493441],[-78.191578,24.466052],[-78.257621,24.482744],[-78.366529,24.544187],[-78.43531,24.627593],[-78.338908,24.642062],[-78.318987,24.590231],[-78.242712,24.653793],[-78.260075,24.687305],[-78.273821,24.69162],[-78.298833,24.75389],[-78.184059,24.917084],[-78.159306,25.022349],[-78.21137,25.191279],[-78.162795,25.202338],[-78.033319,25.143117],[-77.975312,25.084826],[-77.9734,25.004779],[-77.918959,24.942819],[-77.840153,24.794404],[-77.743854,24.707433]]],[[[-76.648856,25.487385],[-76.484215,25.374627],[-76.34381,25.332046],[-76.191985,25.190814],[-76.126614,25.140533],[-76.114935,25.094748],[-76.140515,24.885665],[-76.174673,24.759781],[-76.169557,24.6494],[-76.205162,24.68206],[-76.241181,24.754355],[-76.300273,24.795903],[-76.319987,24.817659],[-76.213792,24.822465],[-76.204361,24.936204],[-76.152556,25.025966],[-76.16041,25.119346],[-76.28433,25.22213],[-76.369286,25.312615],[-76.499924,25.341554],[-76.620718,25.431626],[-76.692781,25.442737],[-76.780683,25.426872],[-76.748927,25.480564],[-76.726939,25.551593],[-76.710868,25.5649],[-76.648856,25.487385]]],[[[-78.492878,26.729066],[-78.371748,26.697957],[-78.306843,26.702195],[-78.26793,26.722659],[-78.088665,26.714287],[-77.943971,26.744259],[-77.922473,26.69111],[-77.926142,26.663386],[-78.233875,26.637341],[-78.516236,26.559361],[-78.670955,26.506548],[-78.743663,26.500657],[-78.799216,26.528459],[-78.985664,26.689482],[-78.935796,26.673411],[-78.798027,26.582435],[-78.712503,26.599049],[-78.633231,26.6592],[-78.621139,26.704624],[-78.632973,26.726198],[-78.597135,26.797951],[-78.492878,26.729066]]],[[[-77.225642,25.904181],[-77.246442,25.895474],[-77.333259,25.995623],[-77.403177,26.024717],[-77.293959,26.095513],[-77.246752,26.156337],[-77.24776,26.289042],[-77.221095,26.36175],[-77.230112,26.424718],[-77.206057,26.488978],[-77.238613,26.561118],[-77.329926,26.618376],[-77.510612,26.845984],[-77.795969,26.901278],[-77.943764,26.903552],[-77.862529,26.940087],[-77.787546,26.935669],[-77.672127,26.913913],[-77.533892,26.903397],[-77.449401,26.836398],[-77.36876,26.747618],[-77.295897,26.711677],[-77.265924,26.688811],[-77.269283,26.663024],[-77.257191,26.638814],[-77.162106,26.59724],[-77.06635,26.530164],[-77.038264,26.333432],[-77.167274,26.240311],[-77.191045,25.95547],[-77.225642,25.904181]]]]},"type":"Feature","properties":{"ISO_A2":"BS","NAME":"Bahamas"}},{"geometry":{"type":"Polygon","coordinates":[[[16.918689,45.276565],[17.125394,45.171765],[17.21066,45.156055],[17.25872,45.170576],[17.324142,45.163962],[17.469146,45.133318],[17.502632,45.120347],[17.546247,45.122569],[17.653476,45.163497],[17.690114,45.158381],[17.812794,45.078102],[17.874393,45.077249],[17.9486,45.111872],[17.996297,45.141819],[18.137219,45.119365],[18.217937,45.13293],[18.284962,45.1343],[18.357567,45.120554],[18.42392,45.102002],[18.488309,45.085853],[18.662561,45.077456],[18.746071,45.026503],[18.779402,44.977229],[18.780177,44.947205],[18.788342,44.914881],[18.836401,44.883256],[18.941304,44.865169],[19.00714,44.8692],[19.042073,44.871318],[19.131525,44.899585],[19.23679,44.914261],[19.312703,44.897441],[19.348618,44.88093],[19.356886,44.858554],[19.33451,44.780678],[19.291877,44.696755],[19.223147,44.609551],[19.151317,44.527334],[19.132404,44.483797],[19.127339,44.414576],[19.118451,44.35998],[19.128373,44.330266],[19.151834,44.302516],[19.231519,44.280553],[19.338903,44.225828],[19.430215,44.154514],[19.547159,44.073486],[19.583746,44.043462],[19.583694,44.011087],[19.549536,43.987135],[19.449387,43.978014],[19.345207,43.985093],[19.305313,43.993362],[19.268106,43.983465],[19.245058,43.965017],[19.257254,43.943313],[19.364017,43.844766],[19.488144,43.70356],[19.495069,43.642866],[19.479979,43.595169],[19.451247,43.562044],[19.399622,43.567574],[19.360297,43.593463],[19.300765,43.59181],[19.254463,43.584368],[19.194364,43.533312],[19.16434,43.535431],[19.112767,43.527757],[19.080055,43.517706],[19.028327,43.532511],[18.97417,43.542355],[18.950709,43.526672],[18.940219,43.496725],[18.97386,43.442387],[19.036699,43.357302],[19.026674,43.292448],[18.978666,43.28542],[18.93469,43.339448],[18.895622,43.348207],[18.851077,43.346347],[18.749223,43.283534],[18.67424,43.230824],[18.656877,43.193927],[18.630005,43.153645],[18.62184,43.124603],[18.623597,43.027684],[18.488464,43.012155],[18.460145,42.997893],[18.443867,42.968437],[18.455029,42.844104],[18.466036,42.777234],[18.543292,42.674191],[18.545928,42.641584],[18.534921,42.620138],[18.48004,42.579184],[18.453944,42.564482],[18.436374,42.559728],[18.346612,42.586652],[18.303979,42.599416],[18.123886,42.690573],[18.044511,42.741267],[17.918834,42.807413],[17.841268,42.84506],[17.801994,42.902239],[17.740241,42.915469],[17.667583,42.897124],[17.585108,42.938361],[17.643451,42.959755],[17.657765,42.980064],[17.65053,43.006574],[17.624795,43.042748],[17.402225,43.198914],[17.293033,43.305626],[17.275256,43.343866],[17.273809,43.445772],[17.248074,43.470215],[17.084622,43.516569],[16.901894,43.649016],[16.71343,43.778827],[16.687695,43.815052],[16.590492,43.913186],[16.472049,44.002586],[16.377533,44.059637],[16.300122,44.12449],[16.214235,44.215131],[16.169845,44.352022],[16.130313,44.47372],[16.103441,44.521004],[16.049078,44.537592],[15.880044,44.68195],[15.736642,44.765795],[15.737985,44.85641],[15.761498,45.007512],[15.788112,45.178948],[15.82289,45.202771],[15.888261,45.215742],[15.963191,45.210807],[16.028355,45.189593],[16.157288,45.072236],[16.23103,45.026606],[16.293404,45.008829],[16.365027,45.058335],[16.453497,45.161998],[16.530702,45.216724],[16.790789,45.196854],[16.918689,45.276565]]]},"type":"Feature","properties":{"ISO_A2":"BA","NAME":"Bosnia and Herz."}},{"geometry":{"type":"Polygon","coordinates":[[[-62.831922,17.87648],[-62.846908,17.875188],[-62.858948,17.883663],[-62.869387,17.898598],[-62.875433,17.913584],[-62.874245,17.922266],[-62.86546,17.918286],[-62.799727,17.908675],[-62.807014,17.897668],[-62.818176,17.885472],[-62.831922,17.87648]]]},"type":"Feature","properties":{"ISO_A2":"BL","NAME":"St. Barthelemy"}},{"geometry":{"type":"Polygon","coordinates":[[[28.147926,56.14293],[28.2843,56.055907],[28.316339,56.052548],[28.392097,56.086706],[28.407083,56.089031],[28.563973,56.092003],[28.636888,56.061746],[28.690787,56.002628],[28.740809,55.955396],[28.79476,55.94258],[28.947412,56.002112],[29.031748,56.021775],[29.087403,56.021129],[29.282998,55.96785],[29.375034,55.938705],[29.396118,55.912195],[29.397927,55.88106],[29.373174,55.834732],[29.353382,55.784373],[29.413016,55.724868],[29.482263,55.68456],[29.630057,55.751171],[29.684576,55.769749],[29.744159,55.77042],[29.823947,55.795096],[29.881618,55.832303],[29.937015,55.845274],[30.042642,55.836437],[30.233638,55.845222],[30.45626,55.786802],[30.47538,55.768793],[30.586692,55.70027],[30.625604,55.666267],[30.662346,55.655492],[30.721619,55.622135],[30.800735,55.601103],[30.855926,55.60751],[30.882229,55.5964],[30.906879,55.570045],[30.908739,55.525345],[30.900574,55.397394],[30.861817,55.360394],[30.820992,55.330266],[30.810554,55.30696],[30.814481,55.278719],[30.877475,55.223451],[30.958865,55.137617],[30.977675,55.087801],[30.977675,55.05049],[30.866829,54.940729],[30.829932,54.914995],[30.804456,54.860941],[30.791072,54.806009],[30.798875,54.783271],[30.984187,54.695887],[31.121284,54.648499],[31.152135,54.625348],[31.154926,54.610956],[31.081907,54.517086],[31.074827,54.491816],[31.184795,54.452956],[31.245566,54.391642],[31.299103,54.291699],[31.403593,54.195943],[31.628385,54.111194],[31.792044,54.0559],[31.825944,54.030708],[31.837778,54.000787],[31.825272,53.935029],[31.783053,53.854956],[31.754217,53.810463],[31.820828,53.791937],[31.992135,53.796872],[32.200443,53.78124],[32.450144,53.692899],[32.45097,53.65334],[32.425236,53.61727],[32.442392,53.579262],[32.469626,53.546964],[32.685685,53.448159],[32.706459,53.419427],[32.710283,53.37142],[32.704288,53.336331],[32.644447,53.32889],[32.578043,53.312405],[32.469367,53.270289],[32.426269,53.210603],[32.250673,53.128385],[32.141997,53.091152],[32.055439,53.089473],[31.849715,53.106216],[31.77742,53.146885],[31.747448,53.184196],[31.668279,53.200913],[31.562963,53.202489],[31.417855,53.19603],[31.3884,53.184816],[31.364525,53.138979],[31.302927,53.060896],[31.258795,53.016713],[31.295175,52.989789],[31.353001,52.933462],[31.442815,52.861838],[31.535161,52.798225],[31.564823,52.759235],[31.563479,52.731459],[31.519451,52.698747],[31.526169,52.632989],[31.615931,52.546199],[31.585545,52.532453],[31.576502,52.426025],[31.577329,52.312311],[31.601513,52.284819],[31.649882,52.262185],[31.690603,52.220637],[31.75861,52.125811],[31.763364,52.101084],[31.573711,52.108086],[31.346025,52.105373],[31.217971,52.050234],[31.168465,52.062921],[31.079323,52.076977],[30.980673,52.046177],[30.845642,51.953082],[30.755312,51.895179],[30.667307,51.814099],[30.639505,51.77007],[30.583901,51.68899],[30.532948,51.596334],[30.56075,51.53148],[30.602401,51.471225],[30.611703,51.406372],[30.632529,51.355419],[30.576925,51.318341],[30.544524,51.265062],[30.449542,51.274338],[30.333374,51.32555],[30.308982,51.399602],[30.21953,51.451201],[30.160774,51.477892],[30.063778,51.482026],[29.9088,51.457996],[29.706022,51.439548],[29.553163,51.434587],[29.469654,51.408335],[29.346509,51.382549],[29.298811,51.413038],[29.230495,51.497012],[29.17422,51.580624],[29.135617,51.617289],[29.102079,51.627521],[29.06079,51.625428],[29.013144,51.598918],[28.977694,51.571788],[28.927568,51.562176],[28.849537,51.540188],[28.793261,51.510345],[28.731301,51.433424],[28.69027,51.438876],[28.64774,51.456524],[28.599009,51.542642],[28.532088,51.562434],[28.42455,51.563623],[28.291638,51.581839],[28.183737,51.607858],[28.144412,51.601657],[28.080281,51.565018],[28.010776,51.559747],[27.858538,51.592407],[27.828824,51.577421],[27.788878,51.529155],[27.741284,51.482568],[27.700046,51.477995],[27.676792,51.489932],[27.689711,51.572434],[27.601344,51.601605],[27.452309,51.606101],[27.347613,51.594138],[27.29635,51.597394],[27.27015,51.613568],[27.141992,51.752035],[27.074141,51.76082],[26.952805,51.753999],[26.773488,51.77069],[26.566885,51.801903],[26.453404,51.813427],[26.394389,51.844433],[26.267059,51.855026],[25.925271,51.913524],[25.785796,51.923808],[25.580279,51.924738],[25.267223,51.93776],[25.066718,51.9305],[24.973804,51.911147],[24.866369,51.899106],[24.68514,51.888306],[24.611294,51.88952],[24.495177,51.883035],[24.361904,51.867532],[24.323766,51.838438],[24.280048,51.774721],[24.126827,51.664625],[23.978309,51.591322],[23.951179,51.585069],[23.864311,51.623981],[23.791706,51.637133],[23.706801,51.641318],[23.646702,51.628864],[23.608564,51.610493],[23.613784,51.525382],[23.605257,51.517915],[23.539628,51.618917],[23.544847,51.710229],[23.581331,51.762396],[23.625721,51.809344],[23.607428,51.879779],[23.651094,51.972978],[23.652438,52.04039],[23.633266,52.069587],[23.597971,52.103073],[23.501129,52.140384],[23.458444,52.169529],[23.327135,52.208441],[23.196962,52.256914],[23.175103,52.286602],[23.181252,52.306988],[23.204093,52.337891],[23.303312,52.428376],[23.410902,52.516226],[23.47958,52.551573],[23.844726,52.664228],[23.90126,52.703605],[23.915471,52.770242],[23.916298,52.81874],[23.909373,52.904885],[23.8871,53.027565],[23.859144,53.112107],[23.789225,53.270961],[23.598901,53.599209],[23.484644,53.939809],[23.55911,53.91981],[23.733673,53.912265],[23.872528,53.9357],[23.944461,53.938982],[24.008488,53.931644],[24.103935,53.945028],[24.19132,53.950454],[24.236588,53.919965],[24.317927,53.89299],[24.478537,53.93185],[24.620751,53.979832],[24.768184,53.974639],[24.789216,53.998229],[24.825648,54.118997],[24.869521,54.145171],[25.046048,54.133079],[25.111418,54.154938],[25.179528,54.214262],[25.283656,54.251263],[25.370576,54.251211],[25.461165,54.292785],[25.505606,54.264957],[25.527362,54.215141],[25.49739,54.175246],[25.510412,54.159614],[25.573044,54.139874],[25.680531,54.140468],[25.749261,54.156979],[25.765177,54.179794],[25.765074,54.221187],[25.748124,54.259686],[25.702597,54.292991],[25.616866,54.310096],[25.557541,54.31069],[25.547361,54.331826],[25.567618,54.377069],[25.620328,54.460397],[25.685182,54.535793],[25.724766,54.564241],[25.731691,54.590363],[25.723939,54.636019],[25.722492,54.717875],[25.780835,54.833268],[25.85928,54.919284],[25.964441,54.947163],[26.093012,54.962304],[26.175178,55.003284],[26.215847,55.050387],[26.231298,55.090152],[26.25078,55.124491],[26.29176,55.13958],[26.601198,55.130201],[26.648431,55.204202],[26.675044,55.224898],[26.73442,55.246757],[26.77571,55.273112],[26.760207,55.293344],[26.681297,55.306444],[26.495313,55.318019],[26.457641,55.342462],[26.469578,55.371943],[26.51924,55.44814],[26.566575,55.546481],[26.590863,55.622652],[26.59355,55.667507],[26.620215,55.679651],[26.771834,55.694017],[26.822477,55.70921],[26.953063,55.812924],[27.05254,55.830546],[27.309217,55.803907],[27.427091,55.805948],[27.45913,55.803493],[27.576746,55.798791],[27.589458,55.809204],[27.642272,55.91173],[27.694207,55.941547],[27.896313,56.076164],[28.032015,56.133292],[28.117902,56.145824],[28.147926,56.14293]]]},"type":"Feature","properties":{"ISO_A2":"BY","NAME":"Belarus"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-87.852952,17.422839],[-87.929976,17.283028],[-87.934885,17.322922],[-87.90282,17.426482],[-87.859412,17.46281],[-87.832514,17.501051],[-87.826417,17.546268],[-87.788615,17.524202],[-87.79815,17.479605],[-87.852952,17.422839]]],[[[-87.950595,17.924953],[-87.998112,17.906349],[-87.959018,17.963994],[-87.953334,18.001072],[-87.89835,18.154913],[-87.858921,18.154034],[-87.848534,18.140392],[-87.950595,17.924953]]],[[[-88.349253,18.358828],[-88.295664,18.344074],[-88.247269,18.354694],[-88.130248,18.350715],[-88.085238,18.226123],[-88.097201,18.121633],[-88.207479,17.846094],[-88.221431,17.751372],[-88.271712,17.609881],[-88.203448,17.516606],[-88.267165,17.392582],[-88.288817,17.31269],[-88.293985,17.192129],[-88.261816,16.963048],[-88.313415,16.632784],[-88.404547,16.488606],[-88.461158,16.433803],[-88.562315,16.290453],[-88.695149,16.247639],[-88.879117,16.016645],[-88.911699,15.956003],[-88.894052,15.890607],[-88.937176,15.889831],[-89.113599,15.900658],[-89.232817,15.888695],[-89.237493,15.894431],[-89.227649,16.142839],[-89.21243,16.527131],[-89.201268,16.809],[-89.190364,17.084694],[-89.182174,17.291193],[-89.171089,17.572287],[-89.161477,17.81483],[-89.162356,17.901957],[-89.133546,17.97079],[-89.050425,17.999729],[-88.942628,17.939629],[-88.897824,17.91454],[-88.857387,17.928828],[-88.806331,17.965519],[-88.743596,18.071636],[-88.586189,18.290512],[-88.522989,18.445903],[-88.461262,18.476779],[-88.37243,18.482309],[-88.295664,18.472413],[-88.349253,18.358828]]]]},"type":"Feature","properties":{"ISO_A2":"BZ","NAME":"Belize"}},{"geometry":{"type":"Polygon","coordinates":[[[-64.730255,32.293456],[-64.820146,32.259633],[-64.845054,32.262295],[-64.862857,32.27387],[-64.771183,32.307692],[-64.69465,32.386912],[-64.668321,32.381926],[-64.730255,32.293456]]]},"type":"Feature","properties":{"ISO_A2":"BM","NAME":"Bermuda"}},{"geometry":{"type":"Polygon","coordinates":[[[-58.159778,-20.164609],[-58.139934,-19.998882],[-58.160036,-19.854912],[-58.180164,-19.81786],[-58.474203,-19.646139],[-58.741138,-19.490231],[-59.090522,-19.286213],[-59.540882,-19.291794],[-60.007365,-19.297581],[-60.451628,-19.38879],[-60.888759,-19.478501],[-61.096007,-19.52103],[-61.511821,-19.6064],[-61.756819,-19.645261],[-61.820898,-19.809437],[-61.916939,-20.055365],[-62.011791,-20.199025],[-62.121629,-20.34992],[-62.276322,-20.562466],[-62.276529,-20.820796],[-62.276684,-21.066052],[-62.385463,-21.411768],[-62.477835,-21.705238],[-62.566951,-21.988683],[-62.628497,-22.18402],[-62.651002,-22.233733],[-62.665265,-22.218023],[-62.744563,-22.159836],[-62.815101,-22.049558],[-62.834299,-21.999122],[-62.843342,-21.997313],[-63.267166,-22.000569],[-63.675358,-22.00429],[-63.716958,-22.027492],[-63.775559,-22.027234],[-63.818657,-22.005427],[-63.861006,-22.007184],[-63.9217,-22.028578],[-63.976141,-22.072554],[-64.131842,-22.365818],[-64.209098,-22.491288],[-64.266382,-22.603323],[-64.30793,-22.795301],[-64.325293,-22.827599],[-64.373972,-22.761039],[-64.445492,-22.585339],[-64.477764,-22.485346],[-64.523653,-22.371606],[-64.605534,-22.228824],[-64.700102,-22.185519],[-64.758651,-22.171308],[-64.843039,-22.143919],[-64.992617,-22.109658],[-65.057832,-22.102785],[-65.484886,-22.098134],[-65.518812,-22.094517],[-65.686166,-22.110226],[-65.771044,-22.099581],[-65.860186,-22.019689],[-66.058624,-21.879439],[-66.09857,-21.835101],[-66.174663,-21.805645],[-66.220164,-21.802545],[-66.247605,-21.83045],[-66.282124,-21.947446],[-66.322458,-22.053124],[-66.365168,-22.11374],[-66.506969,-22.158389],[-66.639002,-22.205363],[-66.711736,-22.216318],[-66.750649,-22.269338],[-66.767469,-22.34308],[-66.80031,-22.40964],[-66.991125,-22.50984],[-67.033551,-22.552267],[-67.055411,-22.650917],[-67.161916,-22.773803],[-67.194885,-22.821707],[-67.362265,-22.855194],[-67.579926,-22.891677],[-67.707309,-22.889197],[-67.794435,-22.879482],[-67.82048,-22.857674],[-67.879443,-22.822948],[-67.889158,-22.784139],[-67.889985,-22.729207],[-67.873759,-22.630608],[-67.881743,-22.493407],[-67.950369,-22.333675],[-67.944943,-22.282205],[-67.953934,-22.204019],[-67.988351,-22.057103],[-68.076769,-21.982844],[-68.101807,-21.860629],[-68.112142,-21.752987],[-68.186401,-21.618577],[-68.198545,-21.447218],[-68.19702,-21.300302],[-68.313887,-21.129718],[-68.435507,-20.948282],[-68.533822,-20.923632],[-68.558265,-20.901928],[-68.568936,-20.849838],[-68.571029,-20.76912],[-68.563174,-20.72013],[-68.487416,-20.640704],[-68.484316,-20.628456],[-68.49987,-20.612023],[-68.695827,-20.492961],[-68.745178,-20.458596],[-68.760552,-20.41617],[-68.759234,-20.378032],[-68.712312,-20.338965],[-68.688592,-20.310078],[-68.734559,-20.225225],[-68.730037,-20.148434],[-68.759338,-20.115568],[-68.755798,-20.090815],[-68.727505,-20.069627],[-68.600174,-20.044874],[-68.560693,-19.967101],[-68.559401,-19.902299],[-68.578263,-19.856514],[-68.696189,-19.740759],[-68.698308,-19.721122],[-68.575266,-19.560201],[-68.487029,-19.454419],[-68.46287,-19.432767],[-68.470182,-19.409926],[-68.492015,-19.381917],[-68.547878,-19.341093],[-68.62056,-19.296651],[-68.680686,-19.242391],[-68.759079,-19.162189],[-68.857962,-19.093356],[-68.931007,-19.025143],[-68.968317,-18.967989],[-68.969092,-18.909698],[-68.978859,-18.81296],[-69.026789,-18.656277],[-69.039398,-18.550134],[-69.060146,-18.432983],[-69.080972,-18.356605],[-69.092289,-18.28245],[-69.126344,-18.202403],[-69.145464,-18.14406],[-69.118075,-18.102719],[-69.090454,-18.07068],[-69.093917,-18.050526],[-69.282329,-17.964898],[-69.313361,-17.943142],[-69.358009,-17.771731],[-69.495003,-17.619544],[-69.51092,-17.506011],[-69.511075,-17.504926],[-69.510971,-17.460381],[-69.521927,-17.388964],[-69.56381,-17.332947],[-69.6259,-17.294396],[-69.645692,-17.248508],[-69.624866,-17.20019],[-69.503349,-17.104744],[-69.43834,-17.088414],[-69.42108,-17.040045],[-69.381573,-17.001339],[-69.267239,-16.860883],[-69.199827,-16.768434],[-69.132519,-16.713088],[-69.054539,-16.674331],[-69.020717,-16.642188],[-69.03839,-16.542711],[-69.032913,-16.475997],[-69.006222,-16.433674],[-68.928035,-16.389025],[-68.857833,-16.354815],[-68.842743,-16.337865],[-68.848841,-16.312802],[-68.913462,-16.261901],[-69.046245,-16.217666],[-69.134198,-16.222007],[-69.187968,-16.182836],[-69.217552,-16.149143],[-69.391909,-15.736869],[-69.420873,-15.640647],[-69.418522,-15.60344],[-69.301888,-15.399421],[-69.25432,-15.332914],[-69.172491,-15.236641],[-69.187089,-15.19871],[-69.330724,-15.038927],[-69.3747,-14.963014],[-69.373719,-14.887463],[-69.359482,-14.795324],[-69.276024,-14.745921],[-69.252331,-14.671094],[-69.234916,-14.597093],[-69.199259,-14.572599],[-69.162672,-14.530999],[-69.119703,-14.470279],[-69.052782,-14.417569],[-69.013146,-14.377262],[-69.004516,-14.26502],[-68.971779,-14.234428],[-68.880338,-14.198875],[-68.870881,-14.169781],[-68.891681,-14.094385],[-68.937466,-14.0147],[-68.97426,-13.975942],[-69.023068,-13.780296],[-69.074099,-13.682782],[-69.05286,-13.643921],[-69.017513,-13.594415],[-68.983432,-13.496385],[-68.972296,-13.382335],[-68.980513,-12.962568],[-68.978601,-12.88004],[-68.933745,-12.822059],[-68.867703,-12.755138],[-68.811789,-12.72961],[-68.759053,-12.687184],[-68.762877,-12.607706],[-68.728125,-12.560732],[-68.685234,-12.501976],[-68.818714,-12.270414],[-68.936019,-12.066808],[-69.046168,-11.875657],[-69.173705,-11.654327],[-69.257705,-11.5086],[-69.36204,-11.327577],[-69.453585,-11.168775],[-69.578616,-10.951786],[-69.46255,-10.948117],[-69.228508,-10.955662],[-69.001648,-10.994316],[-68.848324,-11.011162],[-68.784091,-11.044597],[-68.769931,-11.097669],[-68.727505,-11.122422],[-68.678361,-11.112758],[-68.622628,-11.109141],[-68.49832,-11.054777],[-68.39799,-11.018707],[-68.311122,-10.975195],[-68.266577,-10.933131],[-68.158651,-10.785026],[-68.071653,-10.703119],[-67.991684,-10.674387],[-67.835027,-10.66276],[-67.785676,-10.686014],[-67.721804,-10.683069],[-67.666639,-10.598888],[-67.582433,-10.505973],[-67.416939,-10.389856],[-67.332732,-10.35792],[-67.280487,-10.317251],[-67.190467,-10.311463],[-67.111531,-10.268934],[-66.730004,-9.975463],[-66.575336,-9.899912],[-66.478934,-9.886166],[-66.399223,-9.868183],[-66.263573,-9.826067],[-65.924679,-9.785449],[-65.706785,-9.768499],[-65.637099,-9.809117],[-65.558706,-9.79749],[-65.491992,-9.731757],[-65.436775,-9.710415],[-65.396132,-9.71243],[-65.337893,-9.790255],[-65.309316,-9.872627],[-65.328126,-9.935569],[-65.32456,-10.026985],[-65.298593,-10.146771],[-65.313062,-10.253069],[-65.39546,-10.392285],[-65.436905,-10.449026],[-65.447137,-10.50742],[-65.440005,-10.586227],[-65.402307,-10.714746],[-65.334017,-10.892823],[-65.323785,-11.024753],[-65.37156,-11.110381],[-65.3936,-11.184278],[-65.389879,-11.24629],[-65.372826,-11.289905],[-65.342388,-11.315071],[-65.325464,-11.364784],[-65.322028,-11.439146],[-65.282263,-11.51108],[-65.206195,-11.580533],[-65.17537,-11.646886],[-65.189736,-11.710086],[-65.185731,-11.749515],[-65.163381,-11.765121],[-65.142659,-11.752357],[-65.115167,-11.735046],[-65.090285,-11.741247],[-65.037136,-11.829407],[-65.030263,-11.84739],[-65.001221,-11.919996],[-64.992513,-11.975186],[-64.914353,-12.005985],[-64.829913,-12.030325],[-64.783456,-12.059367],[-64.690025,-12.146493],[-64.611658,-12.203906],[-64.513421,-12.250983],[-64.480787,-12.326121],[-64.420533,-12.439705],[-64.255039,-12.483269],[-64.06164,-12.505076],[-63.938547,-12.529726],[-63.788116,-12.469471],[-63.688588,-12.477998],[-63.585674,-12.518977],[-63.541904,-12.546727],[-63.465242,-12.605173],[-63.34667,-12.680104],[-63.249751,-12.707906],[-63.180686,-12.666203],[-63.116814,-12.651682],[-63.067463,-12.669149],[-63.04134,-12.750436],[-63.015192,-12.805575],[-62.957935,-12.847019],[-62.835151,-12.953679],[-62.765466,-12.997243],[-62.687073,-12.994349],[-62.525532,-13.064267],[-62.352804,-13.132376],[-62.26392,-13.143642],[-62.17607,-13.133668],[-62.118012,-13.159817],[-62.094757,-13.242034],[-61.944715,-13.40621],[-61.874125,-13.470444],[-61.789918,-13.525634],[-61.575693,-13.524807],[-61.511563,-13.54124],[-61.416065,-13.526513],[-61.129157,-13.498556],[-61.07699,-13.489771],[-60.914519,-13.561394],[-60.72236,-13.664334],[-60.59534,-13.745311],[-60.506585,-13.789856],[-60.460128,-13.862409],[-60.422353,-13.93796],[-60.404964,-14.019196],[-60.428063,-14.100018],[-60.462996,-14.13247],[-60.474649,-14.184715],[-60.460128,-14.263108],[-60.396256,-14.332768],[-60.372718,-14.418706],[-60.338043,-14.570532],[-60.298872,-14.618591],[-60.27337,-15.088743],[-60.402018,-15.092774],[-60.583222,-15.098355],[-60.53046,-15.14321],[-60.380469,-15.318289],[-60.242338,-15.479572],[-60.220427,-15.738677],[-60.20663,-15.901975],[-60.187199,-16.13209],[-60.175572,-16.269343],[-59.831149,-16.281745],[-59.434299,-16.296008],[-58.957274,-16.313216],[-58.537946,-16.328254],[-58.496553,-16.326652],[-58.423663,-16.307945],[-58.375398,-16.283554],[-58.345632,-16.284329],[-58.340594,-16.339933],[-58.3508,-16.410264],[-58.35036,-16.490828],[-58.470586,-16.65025],[-58.478105,-16.700686],[-58.459811,-16.910699],[-58.417385,-17.080559],[-58.396017,-17.234245],[-58.347751,-17.282097],[-58.205563,-17.363126],[-57.990899,-17.512884],[-57.905039,-17.532366],[-57.832459,-17.512057],[-57.788896,-17.573036],[-57.780189,-17.671738],[-57.661669,-17.94738],[-57.586479,-18.122253],[-57.552063,-18.183128],[-57.495658,-18.214598],[-57.506174,-18.237284],[-57.553096,-18.246535],[-57.574025,-18.279246],[-57.639138,-18.475048],[-57.724972,-18.733171],[-57.783082,-18.914297],[-57.730838,-18.917191],[-57.72859,-18.967421],[-57.716807,-19.044057],[-57.781429,-19.053462],[-57.80042,-19.080954],[-57.874524,-19.229524],[-57.971676,-19.424189],[-58.072005,-19.625262],[-58.131511,-19.744583],[-58.029915,-19.832743],[-57.860726,-19.979607],[-57.887598,-20.02038],[-57.960178,-20.04074],[-58.021156,-20.05521],[-58.067613,-20.1104],[-58.093735,-20.151069],[-58.159778,-20.164609]]]},"type":"Feature","properties":{"ISO_A2":"BO","NAME":"Bolivia"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-48.485898,-27.767039],[-48.554602,-27.812204],[-48.542199,-27.574802],[-48.505199,-27.495531],[-48.464762,-27.436361],[-48.414895,-27.399619],[-48.37792,-27.451502],[-48.409598,-27.566327],[-48.49675,-27.706991],[-48.485898,-27.767039]]],[[[-48.584419,-26.401541],[-48.603074,-26.413736],[-48.665758,-26.289661],[-48.539719,-26.17034],[-48.497603,-26.218709],[-48.531089,-26.313174],[-48.568064,-26.379733],[-48.584419,-26.401541]]],[[[-45.260281,-23.889136],[-45.260901,-23.941329],[-45.302552,-23.914767],[-45.41283,-23.934921],[-45.451406,-23.895647],[-45.302346,-23.727492],[-45.272296,-23.751987],[-45.249067,-23.782579],[-45.233125,-23.825367],[-45.250307,-23.853066],[-45.260281,-23.889136]]],[[[-44.129291,-23.141895],[-44.098026,-23.169283],[-44.155749,-23.166596],[-44.220499,-23.190781],[-44.320054,-23.212278],[-44.360129,-23.172074],[-44.27414,-23.11616],[-44.242849,-23.074095],[-44.220422,-23.082932],[-44.191612,-23.113266],[-44.129291,-23.141895]]],[[[-38.903563,-13.473441],[-38.937902,-13.532352],[-38.977589,-13.523515],[-38.993196,-13.484086],[-39.022186,-13.445587],[-39.006606,-13.415563],[-38.980122,-13.398407],[-38.907129,-13.401094],[-38.903563,-13.473441]]],[[[-38.743857,-13.097081],[-38.783002,-13.11863],[-38.786955,-13.055068],[-38.684868,-12.974867],[-38.668099,-12.880195],[-38.614537,-12.924017],[-38.6003,-12.97249],[-38.601153,-12.99254],[-38.743857,-13.097081]]],[[[-44.499294,-2.939614],[-44.597737,-3.037592],[-44.565336,-2.923904],[-44.581873,-2.845562],[-44.569109,-2.784998],[-44.501929,-2.726293],[-44.481465,-2.717612],[-44.487331,-2.789752],[-44.482551,-2.811869],[-44.499294,-2.939614]]],[[[-44.88312,-1.317904],[-44.947122,-1.366014],[-44.967896,-1.390871],[-45.020864,-1.372371],[-45.011201,-1.344724],[-44.99562,-1.347566],[-44.978644,-1.267261],[-44.888262,-1.276873],[-44.88312,-1.317904]]],[[[-51.832541,-1.433762],[-51.9384,-1.452676],[-51.802052,-1.20251],[-51.680018,-1.086083],[-51.678287,-0.85509],[-51.546047,-0.649624],[-51.424478,-0.565908],[-51.254024,-0.541362],[-51.160748,-0.666677],[-51.276322,-1.021798],[-51.310093,-1.023865],[-51.465122,-1.21114],[-51.637721,-1.341933],[-51.832541,-1.433762]]],[[[-49.628645,-0.229185],[-49.535214,-0.233629],[-49.402896,-0.214612],[-49.314271,-0.167896],[-49.215104,-0.158698],[-49.116971,-0.163607],[-48.786577,-0.21549],[-48.588036,-0.231665],[-48.515405,-0.248253],[-48.444479,-0.271869],[-48.392648,-0.297346],[-48.379703,-0.352795],[-48.428046,-0.441471],[-48.463961,-0.534799],[-48.497448,-0.664972],[-48.523338,-0.691379],[-48.566642,-0.684454],[-48.539693,-0.800933],[-48.549486,-0.847545],[-48.570957,-0.892865],[-48.624055,-0.986916],[-48.704593,-1.10665],[-48.728519,-1.131765],[-48.789833,-1.173313],[-48.839701,-1.22654],[-48.82903,-1.276563],[-48.804044,-1.326947],[-48.833603,-1.390044],[-48.92892,-1.482286],[-48.985919,-1.504662],[-49.0385,-1.514067],[-49.086869,-1.505127],[-49.172704,-1.412575],[-49.181695,-1.484974],[-49.204795,-1.558974],[-49.233966,-1.59954],[-49.344838,-1.595251],[-49.406591,-1.555564],[-49.506663,-1.511587],[-49.525654,-1.630494],[-49.587898,-1.712402],[-49.650556,-1.738136],[-49.748792,-1.755396],[-49.80512,-1.790226],[-49.911341,-1.762993],[-50.009991,-1.708474],[-50.06575,-1.703823],[-50.109287,-1.747852],[-50.338421,-1.755965],[-50.443479,-1.800717],[-50.507609,-1.788004],[-50.602048,-1.697777],[-50.617163,-1.637678],[-50.673387,-1.516031],[-50.723849,-1.371441],[-50.75979,-1.240286],[-50.729508,-1.126804],[-50.668323,-1.130525],[-50.595924,-1.147423],[-50.580525,-1.139413],[-50.576959,-1.103085],[-50.592927,-1.072957],[-50.709612,-1.077712],[-50.783303,-1.010377],[-50.796119,-0.906301],[-50.780978,-0.689828],[-50.771366,-0.645387],[-50.719896,-0.583427],[-50.703075,-0.528495],[-50.715814,-0.470255],[-50.693696,-0.364422],[-50.645482,-0.272851],[-50.461566,-0.157406],[-50.248245,-0.116375],[-49.628645,-0.229185]]],[[[-50.652872,-0.13162],[-50.926343,-0.32737],[-51.018999,-0.263084],[-51.038068,-0.225877],[-51.022358,-0.18836],[-51.025717,-0.172341],[-50.995073,-0.105265],[-50.842214,-0.050178],[-50.765268,-0.040876],[-50.667005,-0.058032],[-50.650572,-0.105885],[-50.652872,-0.13162]]],[[[-49.443902,-0.112396],[-49.708847,-0.143712],[-49.83008,-0.093896],[-49.802691,-0.051831],[-49.712309,0.015142],[-49.602186,0.062684],[-49.503484,0.083664],[-49.400493,0.057206],[-49.372304,0.001086],[-49.380882,-0.055449],[-49.443902,-0.112396]]],[[[-49.738225,0.268149],[-49.697271,0.215956],[-49.838968,0.006873],[-49.917077,-0.023202],[-50.002472,-0.0293],[-50.113137,0.033022],[-50.285607,0.028577],[-50.339454,0.043357],[-50.345139,0.134462],[-50.272662,0.231717],[-50.127994,0.226498],[-49.879017,0.30453],[-49.738225,0.268149]]],[[[-50.426141,0.139268],[-50.443944,-0.007648],[-50.623933,0.054416],[-50.610445,0.204794],[-50.526213,0.24691],[-50.451592,0.326905],[-50.426064,0.424936],[-50.424565,0.558261],[-50.396867,0.581412],[-50.372734,0.590869],[-50.350978,0.581722],[-50.342529,0.381579],[-50.332271,0.259054],[-50.426141,0.139268]]],[[[-50.152902,0.393],[-50.261319,0.359203],[-50.281551,0.390829],[-50.281706,0.516506],[-50.251191,0.585443],[-50.112801,0.604718],[-50.098616,0.625027],[-50.058825,0.638049],[-50.036811,0.594848],[-50.040041,0.522811],[-50.152902,0.393]]],[[[-50.298991,1.938538],[-50.398779,1.892856],[-50.456088,1.910478],[-50.509004,2.029541],[-50.491021,2.128604],[-50.418752,2.16147],[-50.362657,2.154442],[-50.341986,2.14173],[-50.292067,1.979569],[-50.298991,1.938538]]],[[[-60.241666,5.257974],[-60.181722,5.238802],[-60.142034,5.238802],[-60.105964,5.194231],[-60.078084,5.144002],[-59.990674,5.082843],[-59.999381,4.989851],[-60.015478,4.907504],[-60.026744,4.812704],[-60.031782,4.740512],[-60.068964,4.666666],[-60.124567,4.597652],[-60.140923,4.569644],[-60.148649,4.533238],[-60.111157,4.511198],[-60.045012,4.504583],[-59.962355,4.501689],[-59.906105,4.480321],[-59.833345,4.475929],[-59.745805,4.416656],[-59.703275,4.381102],[-59.69971,4.353533],[-59.727486,4.287646],[-59.738544,4.226771],[-59.716892,4.188168],[-59.691209,4.160392],[-59.620205,4.023166],[-59.586409,3.975417],[-59.557754,3.959991],[-59.55114,3.933533],[-59.575402,3.883458],[-59.604444,3.819664],[-59.670202,3.752717],[-59.679013,3.6998],[-59.73162,3.666547],[-59.854403,3.587482],[-59.833061,3.46214],[-59.828823,3.398578],[-59.831149,3.349227],[-59.873032,3.283082],[-59.945664,3.087822],[-59.972303,2.990464],[-59.995919,2.765413],[-59.994317,2.689991],[-59.960779,2.588369],[-59.889646,2.362957],[-59.849132,2.327042],[-59.75521,2.274125],[-59.743505,2.121628],[-59.751774,1.962387],[-59.756192,1.900634],[-59.740741,1.874175],[-59.698547,1.861463],[-59.668523,1.842343],[-59.663769,1.79524],[-59.666611,1.746302],[-59.596615,1.718035],[-59.535689,1.7],[-59.479439,1.632407],[-59.377688,1.527349],[-59.337251,1.508177],[-59.316968,1.464614],[-59.231185,1.376015],[-59.100392,1.343665],[-58.968514,1.304572],[-58.916631,1.248865],[-58.862526,1.203596],[-58.821753,1.201219],[-58.787233,1.208505],[-58.730337,1.247521],[-58.684604,1.281059],[-58.605074,1.279147],[-58.511875,1.284676],[-58.495675,1.312272],[-58.486864,1.347773],[-58.506062,1.438646],[-58.472963,1.466267],[-58.395784,1.481719],[-58.380359,1.530217],[-58.362711,1.556675],[-58.340671,1.587552],[-58.314213,1.591944],[-58.28114,1.574323],[-58.230419,1.56329],[-58.173084,1.547864],[-58.142234,1.516988],[-58.091332,1.514378],[-58.034669,1.520243],[-58.011776,1.539958],[-57.995137,1.574323],[-57.982838,1.648427],[-57.946354,1.650597],[-57.873413,1.667263],[-57.795666,1.700026],[-57.691744,1.704806],[-57.594412,1.704108],[-57.545758,1.726071],[-57.500438,1.77382],[-57.412717,1.908928],[-57.366777,1.94014],[-57.317504,1.963472],[-57.275568,1.959235],[-57.189604,1.981611],[-57.118911,2.01396],[-57.092685,2.005821],[-57.037598,1.936471],[-57.010029,1.921253],[-56.96954,1.916395],[-56.836732,1.881229],[-56.766245,1.892185],[-56.689816,1.914302],[-56.616461,1.922674],[-56.563544,1.907248],[-56.525511,1.927273],[-56.4828,1.94213],[-56.452802,1.932337],[-56.385855,1.923862],[-56.227131,1.885363],[-56.019908,1.842239],[-55.963323,1.857096],[-55.92963,1.887508],[-55.92162,1.976676],[-55.915315,2.03954],[-55.961979,2.095144],[-56.020063,2.158163],[-56.073652,2.236763],[-56.137679,2.259036],[-56.129411,2.299498],[-56.087785,2.341304],[-56.045101,2.364404],[-56.020348,2.392774],[-55.993502,2.497522],[-55.975596,2.515971],[-55.957483,2.520467],[-55.935934,2.516591],[-55.89374,2.489487],[-55.730572,2.406158],[-55.658949,2.418767],[-55.385374,2.440627],[-55.343981,2.488789],[-55.286051,2.499641],[-55.187711,2.547493],[-55.14885,2.550801],[-55.114124,2.539225],[-55.070302,2.54832],[-55.00581,2.592969],[-54.97868,2.597671],[-54.968396,2.548346],[-54.92659,2.497341],[-54.876076,2.450393],[-54.851685,2.439567],[-54.766832,2.454734],[-54.72221,2.44166],[-54.702935,2.397942],[-54.697405,2.359805],[-54.661852,2.327558],[-54.616273,2.326783],[-54.591959,2.313761],[-54.550515,2.29309],[-54.515091,2.245445],[-54.43308,2.207514],[-54.293037,2.154236],[-54.227976,2.153306],[-54.167386,2.137079],[-54.13005,2.121059],[-54.089768,2.150489],[-53.946417,2.232551],[-53.876603,2.278259],[-53.829525,2.312934],[-53.79423,2.346007],[-53.767772,2.354844],[-53.75015,2.335],[-53.734699,2.308542],[-53.683669,2.292935],[-53.563986,2.261929],[-53.509002,2.253144],[-53.431823,2.279448],[-53.365988,2.3242],[-53.334439,2.339754],[-53.285502,2.295209],[-53.252196,2.232267],[-53.229794,2.204904],[-53.180056,2.211338],[-53.082258,2.201726],[-53.00973,2.181728],[-52.964849,2.183562],[-52.903458,2.211519],[-52.870385,2.266658],[-52.783413,2.317172],[-52.700628,2.363654],[-52.653189,2.425744],[-52.583012,2.52889],[-52.559499,2.573125],[-52.554694,2.647642],[-52.455888,2.864167],[-52.418397,2.903854],[-52.396357,2.972196],[-52.356669,3.051571],[-52.356669,3.117717],[-52.327886,3.181718],[-52.271223,3.237115],[-52.229442,3.271687],[-52.162624,3.364679],[-52.116142,3.452296],[-51.999482,3.646884],[-51.990645,3.702022],[-51.944343,3.735095],[-51.928918,3.776979],[-51.879489,3.828552],[-51.827503,3.869583],[-51.805282,3.929941],[-51.767093,3.992676],[-51.683455,4.039702],[-51.652552,4.061277],[-51.557804,4.233773],[-51.547081,4.3109],[-51.46153,4.313794],[-51.327094,4.224755],[-51.219917,4.093601],[-51.076283,3.671663],[-51.052408,3.281815],[-50.994143,3.077539],[-50.827202,2.65188],[-50.816531,2.573022],[-50.789711,2.477782],[-50.736975,2.376754],[-50.678762,2.210356],[-50.676591,2.179454],[-50.714418,2.13403],[-50.658944,2.130981],[-50.608688,2.10411],[-50.5759,1.998586],[-50.534429,1.927273],[-50.458904,1.829604],[-50.304288,1.797668],[-50.187577,1.785989],[-50.054717,1.730696],[-49.957152,1.659847],[-49.881575,1.419914],[-49.906225,1.269018],[-49.898887,1.162978],[-49.937928,1.121431],[-50.047224,1.051977],[-50.070969,1.01508],[-50.294444,0.835763],[-50.343278,0.751014],[-50.462961,0.637326],[-50.581558,0.420491],[-50.755062,0.222571],[-50.81635,0.172548],[-50.910169,0.160972],[-50.967064,0.130277],[-51.10194,-0.031264],[-51.282911,-0.085214],[-51.299576,-0.178852],[-51.404144,-0.392689],[-51.496283,-0.509478],[-51.555013,-0.549165],[-51.702653,-0.762279],[-51.72154,-0.855503],[-51.720584,-1.01849],[-51.819157,-1.117813],[-51.921631,-1.180858],[-51.934447,-1.320333],[-51.980801,-1.367927],[-52.020463,-1.399036],[-52.229261,-1.362449],[-52.553427,-1.514067],[-52.66417,-1.551791],[-52.31029,-1.559594],[-52.196679,-1.640158],[-51.947547,-1.586725],[-51.646299,-1.394385],[-51.53119,-1.354077],[-51.297354,-1.223543],[-51.202321,-1.136519],[-51.028973,-1.032133],[-50.99205,-0.986348],[-50.89495,-0.937565],[-50.842266,-0.999577],[-50.838158,-1.038851],[-50.917843,-1.11528],[-50.897198,-1.164476],[-50.844591,-1.22623],[-50.825548,-1.311444],[-50.818676,-1.376298],[-50.786145,-1.489986],[-50.678968,-1.643879],[-50.675299,-1.694728],[-50.690053,-1.761753],[-50.63879,-1.817046],[-50.585589,-1.849861],[-50.403223,-2.015484],[-50.260467,-1.922931],[-50.17272,-1.896163],[-50.116574,-1.857509],[-49.999216,-1.831878],[-49.902995,-1.870635],[-49.719544,-1.926394],[-49.58534,-1.867224],[-49.313651,-1.731729],[-49.398633,-1.971559],[-49.460154,-2.191546],[-49.506973,-2.280222],[-49.553378,-2.519898],[-49.599293,-2.583873],[-49.6365,-2.656892],[-49.575883,-2.631415],[-49.523948,-2.596895],[-49.457492,-2.504601],[-49.407651,-2.344301],[-49.211022,-1.916524],[-49.154772,-1.87849],[-48.991319,-1.82981],[-48.709993,-1.487712],[-48.599974,-1.488746],[-48.52959,-1.567501],[-48.462928,-1.61401],[-48.445849,-1.520372],[-48.349808,-1.482131],[-48.451456,-1.435829],[-48.468044,-1.393816],[-48.477759,-1.323847],[-48.408564,-1.229227],[-48.449776,-1.145459],[-48.306503,-1.039833],[-48.317588,-0.96051],[-48.266454,-0.895087],[-48.201755,-0.827959],[-48.128478,-0.795248],[-48.115094,-0.737526],[-48.068818,-0.713651],[-48.032566,-0.705125],[-47.960917,-0.769617],[-47.883428,-0.693342],[-47.807671,-0.663473],[-47.773745,-0.676806],[-47.7315,-0.710447],[-47.687135,-0.724762],[-47.651091,-0.718767],[-47.557298,-0.669933],[-47.470714,-0.748533],[-47.41865,-0.765948],[-47.432913,-0.721868],[-47.460328,-0.68094],[-47.439063,-0.647609],[-47.398083,-0.626628],[-47.268608,-0.645387],[-47.200524,-0.680423],[-47.126911,-0.745381],[-47.024618,-0.750238],[-46.944313,-0.743365],[-46.893644,-0.779849],[-46.81122,-0.779642],[-46.76993,-0.836486],[-46.644408,-0.91643],[-46.617252,-0.970638],[-46.516328,-0.996838],[-46.421735,-1.030066],[-46.320836,-1.039161],[-46.219111,-1.031203],[-46.214977,-1.099778],[-46.140382,-1.118381],[-46.0446,-1.103033],[-45.972279,-1.187421],[-45.778828,-1.250828],[-45.644779,-1.347824],[-45.556904,-1.330616],[-45.458615,-1.356248],[-45.353014,-1.567398],[-45.329166,-1.717311],[-45.282114,-1.696589],[-45.238577,-1.629513],[-45.182069,-1.507039],[-45.076365,-1.466422],[-45.025799,-1.513447],[-44.919759,-1.588895],[-44.828369,-1.671681],[-44.78987,-1.724804],[-44.721141,-1.733537],[-44.778527,-1.798856],[-44.720934,-1.792242],[-44.6513,-1.745785],[-44.591665,-1.841748],[-44.546784,-1.946289],[-44.537767,-2.052691],[-44.580012,-2.113876],[-44.617271,-2.152168],[-44.658638,-2.227512],[-44.70755,-2.241155],[-44.756358,-2.265494],[-44.700651,-2.320375],[-44.66241,-2.37324],[-44.579005,-2.23051],[-44.520378,-2.190357],[-44.435473,-2.168033],[-44.39129,-2.269629],[-44.381859,-2.365488],[-44.520119,-2.405486],[-44.520636,-2.481244],[-44.562003,-2.524238],[-44.589004,-2.573486],[-44.610786,-2.676839],[-44.638975,-2.762467],[-44.721399,-3.142289],[-44.723053,-3.204817],[-44.622671,-3.137844],[-44.43754,-2.944471],[-44.381161,-2.738334],[-44.308169,-2.535142],[-44.228638,-2.471322],[-44.179365,-2.471167],[-44.105545,-2.493491],[-44.101359,-2.56005],[-44.112651,-2.598549],[-44.191586,-2.699628],[-44.225176,-2.754974],[-44.192672,-2.809596],[-44.013225,-2.642164],[-43.932894,-2.58346],[-43.864475,-2.595449],[-43.728643,-2.518141],[-43.45512,-2.502018],[-43.43463,-2.413651],[-43.380086,-2.37603],[-43.229681,-2.386056],[-42.936702,-2.465017],[-42.83229,-2.529613],[-42.675865,-2.589661],[-42.59357,-2.661078],[-42.249612,-2.792026],[-41.99986,-2.80603],[-41.876198,-2.74655],[-41.721892,-2.808872],[-41.640166,-2.878635],[-41.479943,-2.916462],[-41.318222,-2.936203],[-41.19456,-2.88618],[-40.875587,-2.869644],[-40.474578,-2.795643],[-40.235368,-2.813213],[-39.964687,-2.861479],[-39.77183,-2.985812],[-39.609437,-3.056299],[-39.511174,-3.125545],[-39.352683,-3.197376],[-39.014357,-3.390232],[-38.895967,-3.50175],[-38.686212,-3.653678],[-38.47576,-3.717447],[-38.361942,-3.876507],[-38.27187,-3.948027],[-38.048835,-4.216435],[-37.795672,-4.40433],[-37.626328,-4.592122],[-37.30149,-4.713045],[-37.17465,-4.912413],[-36.954871,-4.936701],[-36.861155,-4.96657],[-36.747338,-5.050699],[-36.590707,-5.097518],[-36.386714,-5.084289],[-36.161767,-5.093797],[-35.979891,-5.05442],[-35.549401,-5.129351],[-35.481679,-5.166041],[-35.392563,-5.250894],[-35.235466,-5.56674],[-35.141751,-5.91721],[-35.095449,-6.185307],[-34.988169,-6.39377],[-34.929594,-6.785064],[-34.879855,-6.908157],[-34.876005,-7.002931],[-34.833863,-7.024429],[-34.805467,-7.288392],[-34.816577,-7.394794],[-34.857763,-7.533338],[-34.860812,-7.594988],[-34.854766,-7.634314],[-34.872982,-7.692088],[-34.878589,-7.747485],[-34.836938,-7.871819],[-34.834664,-7.971451],[-34.890552,-8.092167],[-34.966646,-8.4076],[-35.157771,-8.930566],[-35.340861,-9.230702],[-35.597098,-9.540658],[-35.763987,-9.702508],[-35.830133,-9.719045],[-35.890801,-9.687057],[-35.847755,-9.772478],[-35.885427,-9.847616],[-36.054951,-10.075819],[-36.22352,-10.22506],[-36.398341,-10.484063],[-36.411596,-10.489954],[-36.635743,-10.589896],[-36.768293,-10.671648],[-36.937766,-10.820373],[-37.093389,-11.054777],[-37.125506,-11.084956],[-37.182841,-11.06842],[-37.181188,-11.187482],[-37.315133,-11.375998],[-37.356009,-11.403903],[-37.354898,-11.35047],[-37.331643,-11.309852],[-37.320791,-11.266599],[-37.321799,-11.215129],[-37.359213,-11.252491],[-37.438484,-11.393775],[-37.411819,-11.497231],[-37.469335,-11.653604],[-37.688728,-12.099985],[-37.957342,-12.475466],[-38.01925,-12.591324],[-38.239753,-12.844229],[-38.401733,-12.966185],[-38.447312,-12.967063],[-38.498911,-12.956625],[-38.52493,-12.76227],[-38.653992,-12.644603],[-38.690966,-12.623932],[-38.743883,-12.748524],[-38.787963,-12.782682],[-38.851783,-12.790175],[-38.78357,-12.844435],[-38.763727,-12.907274],[-38.833154,-13.032951],[-38.835298,-13.147156],[-38.959167,-13.27304],[-39.030894,-13.365179],[-39.067377,-13.480469],[-39.08934,-13.588163],[-39.034924,-13.55881],[-39.009086,-13.581496],[-38.988622,-13.615034],[-39.001231,-13.664592],[-39.041126,-13.758126],[-39.034924,-13.99098],[-39.048154,-14.043897],[-39.008466,-14.101206],[-38.966505,-14.003383],[-38.94232,-14.030668],[-39.059574,-14.654764],[-39.013375,-14.935677],[-38.996193,-15.253797],[-38.943225,-15.564373],[-38.88527,-15.841978],[-38.880619,-15.864303],[-38.960795,-16.186557],[-39.063243,-16.504367],[-39.125048,-16.763576],[-39.163986,-17.043559],[-39.202873,-17.178124],[-39.215224,-17.31579],[-39.170601,-17.642075],[-39.153987,-17.703932],[-39.278372,-17.849453],[-39.412602,-17.919991],[-39.486783,-17.990168],[-39.650778,-18.252374],[-39.739791,-18.639844],[-39.741961,-18.846033],[-39.699871,-19.277841],[-39.731471,-19.453954],[-39.783328,-19.571777],[-39.84472,-19.649085],[-40.001351,-19.741999],[-40.141679,-19.968238],[-40.20276,-20.206053],[-40.298878,-20.292715],[-40.318567,-20.425781],[-40.395953,-20.569442],[-40.59656,-20.783796],[-40.727069,-20.846221],[-40.789288,-20.906062],[-40.828743,-21.031326],[-40.954523,-21.237928],[-41.047256,-21.505715],[-41.023124,-21.596873],[-41.021599,-21.610825],[-40.987829,-21.920264],[-41.000308,-21.999019],[-41.122497,-22.084388],[-41.582908,-22.243655],[-41.705511,-22.309697],[-41.980429,-22.580689],[-41.997534,-22.644664],[-41.986114,-22.735821],[-41.940923,-22.788324],[-41.987509,-22.845169],[-42.042364,-22.947074],[-42.122462,-22.940873],[-42.581039,-22.940977],[-42.829267,-22.973326],[-42.958328,-22.967125],[-43.016232,-22.94263],[-43.081137,-22.902529],[-43.100697,-22.850078],[-43.065402,-22.770703],[-43.086279,-22.723316],[-43.154285,-22.725176],[-43.228984,-22.747707],[-43.241929,-22.795094],[-43.236632,-22.828839],[-43.20883,-22.878138],[-43.193585,-22.9386],[-43.224152,-22.991206],[-43.369466,-22.998079],[-43.532789,-23.046397],[-43.73655,-23.066602],[-43.898839,-23.101432],[-43.973822,-23.057352],[-43.898839,-23.035286],[-43.791378,-23.046035],[-43.675959,-23.009448],[-43.70296,-22.966298],[-43.866154,-22.910591],[-44.047461,-22.944697],[-44.147997,-23.01105],[-44.367932,-23.004952],[-44.63727,-23.055492],[-44.681143,-23.106961],[-44.673831,-23.206594],[-44.621121,-23.228504],[-44.569677,-23.27398],[-44.61908,-23.316354],[-44.667216,-23.335164],[-44.951643,-23.381467],[-45.215426,-23.575563],[-45.325393,-23.599748],[-45.423294,-23.685324],[-45.433423,-23.758498],[-45.464299,-23.802578],[-45.527112,-23.8048],[-45.664649,-23.764802],[-45.843139,-23.763665],[-45.972098,-23.795498],[-46.630792,-24.110311],[-46.867289,-24.236298],[-47.137221,-24.49313],[-47.592206,-24.781071],[-47.831132,-24.952947],[-47.876581,-24.997492],[-47.914305,-24.999869],[-47.989184,-25.035784],[-47.959393,-25.065395],[-47.908362,-25.068185],[-47.929369,-25.168231],[-48.02435,-25.236754],[-48.202737,-25.416536],[-48.242424,-25.403307],[-48.185968,-25.309824],[-48.273482,-25.30631],[-48.402492,-25.272049],[-48.458509,-25.310703],[-48.427633,-25.403307],[-48.476131,-25.442994],[-48.564136,-25.447439],[-48.644002,-25.436535],[-48.731749,-25.368735],[-48.692216,-25.491519],[-48.507008,-25.521284],[-48.429855,-25.550171],[-48.401174,-25.597352],[-48.545171,-25.815943],[-48.665758,-25.844314],[-48.678987,-25.875164],[-48.612841,-25.874958],[-48.576332,-25.935419],[-48.619456,-26.179435],[-48.678987,-26.225737],[-48.713765,-26.226978],[-48.748285,-26.268681],[-48.700691,-26.348314],[-48.651598,-26.40645],[-48.658161,-26.519105],[-48.676507,-26.61238],[-48.677721,-26.702918],[-48.615658,-26.878101],[-48.593411,-27.058038],[-48.568374,-27.123409],[-48.554163,-27.195962],[-48.595478,-27.263814],[-48.571991,-27.372747],[-48.642607,-27.557904],[-48.605684,-27.825175],[-48.620773,-28.075547],[-48.648446,-28.207219],[-48.693224,-28.310158],[-48.797274,-28.442708],[-48.799651,-28.575258],[-49.023591,-28.698661],[-49.271302,-28.871157],[-49.499893,-29.075383],[-49.746002,-29.36322],[-50.033349,-29.801023],[-50.299508,-30.425791],[-50.61998,-30.8977],[-50.748137,-31.068026],[-50.921382,-31.258402],[-51.151782,-31.480404],[-51.460393,-31.702406],[-51.798125,-31.900326],[-51.920184,-31.98952],[-52.039195,-32.114887],[-52.068935,-32.063107],[-52.043174,-31.977531],[-52.059582,-31.913504],[-52.063225,-31.830408],[-51.995089,-31.81506],[-51.893158,-31.867822],[-51.841223,-31.832062],[-51.803447,-31.796664],[-51.680638,-31.774649],[-51.446208,-31.557298],[-51.272162,-31.476993],[-51.174339,-31.33974],[-51.157544,-31.266773],[-51.161419,-31.118875],[-51.105971,-31.081358],[-50.980087,-31.094277],[-50.954404,-31.052161],[-50.965307,-31.005497],[-50.940813,-30.903695],[-50.770151,-30.813364],[-50.689304,-30.704224],[-50.716279,-30.425998],[-50.68504,-30.413492],[-50.614864,-30.456849],[-50.58192,-30.438814],[-50.546522,-30.316857],[-50.563523,-30.253605],[-50.646205,-30.23681],[-50.931873,-30.374321],[-51.024968,-30.368637],[-51.040393,-30.260633],[-51.179299,-30.211024],[-51.233611,-30.121365],[-51.249864,-30.059974],[-51.298052,-30.034859],[-51.295003,-30.141054],[-51.2818,-30.244097],[-51.157259,-30.364244],[-51.187542,-30.411942],[-51.246556,-30.467597],[-51.287717,-30.591259],[-51.283066,-30.751559],[-51.316397,-30.702725],[-51.359108,-30.67451],[-51.376471,-30.846851],[-51.459127,-30.91279],[-51.485276,-30.977592],[-51.463675,-31.052626],[-51.506282,-31.104509],[-51.716889,-31.243726],[-51.926799,-31.338914],[-51.972481,-31.383769],[-51.994857,-31.489964],[-52.026948,-31.599001],[-52.119836,-31.694964],[-52.193527,-31.885547],[-52.191563,-31.967609],[-52.167069,-32.088429],[-52.127381,-32.167804],[-52.190194,-32.220824],[-52.274581,-32.323763],[-52.341657,-32.439725],[-52.508521,-32.875254],[-52.652233,-33.13777],[-52.762872,-33.266445],[-52.920847,-33.40194],[-53.370613,-33.742178],[-53.397536,-33.73732],[-53.463553,-33.70988],[-53.518847,-33.677221],[-53.531326,-33.655465],[-53.537631,-33.622857],[-53.530396,-33.500332],[-53.531352,-33.170947],[-53.51187,-33.108728],[-53.482854,-33.068524],[-53.395237,-33.010388],[-53.3101,-32.927034],[-53.214085,-32.821045],[-53.125563,-32.736709],[-53.157292,-32.680124],[-53.231241,-32.625398],[-53.362758,-32.581112],[-53.489417,-32.503184],[-53.60171,-32.403035],[-53.653593,-32.2987],[-53.701135,-32.186304],[-53.746585,-32.09742],[-53.7617,-32.056803],[-53.80609,-32.039904],[-53.876525,-31.994584],[-53.920605,-31.952313],[-53.985149,-31.928128],[-54.100439,-31.901515],[-54.220561,-31.855161],[-54.369932,-31.745039],[-54.477703,-31.622772],[-54.530904,-31.542002],[-54.587644,-31.485158],[-54.895998,-31.39121],[-55.036041,-31.278969],[-55.091154,-31.314006],[-55.173552,-31.279589],[-55.254632,-31.225639],[-55.278972,-31.184143],[-55.313285,-31.141665],[-55.345531,-31.092986],[-55.366072,-31.046218],[-55.449556,-30.964415],[-55.557353,-30.875945],[-55.603009,-30.850778],[-55.627142,-30.858116],[-55.650474,-30.892068],[-55.665227,-30.924882],[-55.705948,-30.946586],[-55.756359,-30.987101],[-55.807777,-31.03671],[-55.873664,-31.069628],[-55.952006,-31.080842],[-56.004716,-31.07924],[-56.015516,-31.059654],[-56.018436,-30.991855],[-55.998979,-30.837187],[-56.044816,-30.777604],[-56.105846,-30.713732],[-56.176178,-30.628414],[-56.407249,-30.447495],[-56.7217,-30.186943],[-56.832727,-30.107206],[-56.937243,-30.101056],[-57.032715,-30.109945],[-57.120513,-30.144465],[-57.186943,-30.264871],[-57.214461,-30.283371],[-57.383856,-30.280684],[-57.552295,-30.261202],[-57.608907,-30.187821],[-57.563871,-30.139969],[-57.405224,-30.033929],[-57.317504,-29.939413],[-57.300709,-29.856524],[-57.224641,-29.782109],[-57.089352,-29.71617],[-56.938612,-29.594834],[-56.772446,-29.417894],[-56.671522,-29.287359],[-56.63584,-29.203023],[-56.570676,-29.138066],[-56.476005,-29.092487],[-56.393245,-28.997248],[-56.322345,-28.85245],[-56.225555,-28.737212],[-56.102875,-28.651739],[-56.034223,-28.580839],[-56.019624,-28.524615],[-55.984923,-28.488597],[-55.930146,-28.472887],[-55.903662,-28.443276],[-55.905419,-28.399662],[-55.890511,-28.369999],[-55.858885,-28.354186],[-55.806045,-28.359767],[-55.731967,-28.386639],[-55.687267,-28.381678],[-55.671971,-28.344885],[-55.691531,-28.30282],[-55.745997,-28.255484],[-55.725508,-28.204118],[-55.58239,-28.120971],[-55.476686,-28.089345],[-55.409816,-28.037823],[-55.346513,-27.955916],[-55.243728,-27.898865],[-55.101515,-27.866774],[-55.063869,-27.835923],[-55.06901,-27.796288],[-55.039917,-27.767814],[-54.955891,-27.747143],[-54.910209,-27.708541],[-54.902767,-27.651904],[-54.875741,-27.599245],[-54.829077,-27.550618],[-54.77709,-27.532531],[-54.719729,-27.544933],[-54.665857,-27.526537],[-54.61542,-27.477186],[-54.554933,-27.454138],[-54.484343,-27.45729],[-54.448118,-27.446438],[-54.327014,-27.423494],[-54.260145,-27.382049],[-54.205239,-27.2896],[-54.156456,-27.253788],[-54.113823,-27.274666],[-54.040133,-27.243763],[-53.935333,-27.161184],[-53.915618,-27.159582],[-53.838155,-27.121135],[-53.758522,-26.978353],[-53.71731,-26.882855],[-53.727128,-26.80472],[-53.753328,-26.7486],[-53.744569,-26.666486],[-53.718137,-26.443192],[-53.710928,-26.351828],[-53.668527,-26.288214],[-53.671266,-26.225117],[-53.746921,-26.083731],[-53.823247,-25.959552],[-53.8642,-25.748867],[-53.891149,-25.668872],[-53.954763,-25.647685],[-54.012305,-25.577973],[-54.085014,-25.571927],[-54.119223,-25.54521],[-54.15457,-25.523093],[-54.206169,-25.529553],[-54.250094,-25.570429],[-54.331872,-25.571927],[-54.383367,-25.588619],[-54.443932,-25.624947],[-54.5015,-25.608307],[-54.537828,-25.576475],[-54.615886,-25.576061],[-54.610563,-25.432711],[-54.473155,-25.220217],[-54.436258,-25.121309],[-54.454087,-25.06524],[-54.412978,-24.867474],[-54.312933,-24.528167],[-54.280996,-24.306061],[-54.317273,-24.201261],[-54.318255,-24.128088],[-54.266915,-24.065869],[-54.241826,-24.047266],[-54.37081,-23.971198],[-54.440263,-23.901745],[-54.52956,-23.852136],[-54.625472,-23.812448],[-54.671774,-23.828984],[-54.721383,-23.852136],[-54.817294,-23.888516],[-54.926435,-23.951354],[-54.982659,-23.974505],[-55.081878,-23.997656],[-55.194326,-24.0175],[-55.28693,-24.004271],[-55.366305,-23.991042],[-55.415914,-23.951354],[-55.442373,-23.865365],[-55.442373,-23.792604],[-55.458909,-23.686771],[-55.51844,-23.62724],[-55.538284,-23.580938],[-55.541591,-23.524714],[-55.534977,-23.461875],[-55.51844,-23.415573],[-55.528362,-23.359349],[-55.554821,-23.319662],[-55.548206,-23.250208],[-55.561435,-23.154297],[-55.601123,-23.094766],[-55.620966,-23.025313],[-55.620966,-22.955859],[-55.650732,-22.886406],[-55.654039,-22.810339],[-55.627581,-22.740886],[-55.617659,-22.671432],[-55.647425,-22.621823],[-55.703649,-22.592057],[-55.746643,-22.512682],[-55.753258,-22.410156],[-55.79956,-22.353932],[-55.849169,-22.30763],[-55.905393,-22.30763],[-55.991383,-22.281172],[-56.067451,-22.284479],[-56.189821,-22.281172],[-56.246044,-22.264636],[-56.27581,-22.228255],[-56.351878,-22.178646],[-56.394873,-22.092656],[-56.447789,-22.07612],[-56.523857,-22.102578],[-56.550315,-22.135651],[-56.580081,-22.181953],[-56.632998,-22.23487],[-56.702451,-22.231563],[-56.775211,-22.261328],[-56.844664,-22.264636],[-56.937268,-22.27125],[-57.029873,-22.244792],[-57.142321,-22.215026],[-57.238232,-22.195182],[-57.330836,-22.215026],[-57.393675,-22.19849],[-57.476357,-22.188568],[-57.568961,-22.181953],[-57.641722,-22.129037],[-57.721097,-22.099271],[-57.764091,-22.109193],[-57.820315,-22.142266],[-57.879847,-22.135651],[-57.955914,-22.109193],[-57.98568,-22.046354],[-57.979065,-22.006667],[-57.962529,-21.966979],[-57.932763,-21.910755],[-57.9493,-21.851224],[-57.942685,-21.798307],[-57.929456,-21.752005],[-57.916227,-21.699089],[-57.926149,-21.649479],[-57.929456,-21.596563],[-57.936071,-21.546953],[-57.945992,-21.494037],[-57.906305,-21.417969],[-57.873232,-21.35513],[-57.893076,-21.302214],[-57.886461,-21.265833],[-57.860003,-21.206302],[-57.82693,-21.133542],[-57.830237,-20.997943],[-57.860003,-20.918568],[-57.892249,-20.89707],[-57.900517,-20.873093],[-57.884808,-20.841673],[-57.901887,-20.809427],[-57.908501,-20.776354],[-57.891422,-20.747415],[-57.915116,-20.690365],[-57.962529,-20.673828],[-57.979065,-20.657292],[-57.995602,-20.594453],[-58.008831,-20.521693],[-58.002216,-20.465469],[-58.025367,-20.415859],[-58.05844,-20.386094],[-58.091513,-20.333177],[-58.124586,-20.29349],[-58.137815,-20.237266],[-58.159778,-20.164609],[-58.093735,-20.151069],[-58.067613,-20.1104],[-58.021156,-20.05521],[-57.960178,-20.04074],[-57.887598,-20.02038],[-57.860726,-19.979607],[-58.029915,-19.832743],[-58.131511,-19.744583],[-58.072005,-19.625262],[-57.971676,-19.424189],[-57.874524,-19.229524],[-57.80042,-19.080954],[-57.781429,-19.053462],[-57.716807,-19.044057],[-57.72859,-18.967421],[-57.730838,-18.917191],[-57.783082,-18.914297],[-57.724972,-18.733171],[-57.639138,-18.475048],[-57.574025,-18.279246],[-57.553096,-18.246535],[-57.506174,-18.237284],[-57.495658,-18.214598],[-57.552063,-18.183128],[-57.586479,-18.122253],[-57.661669,-17.94738],[-57.780189,-17.671738],[-57.788896,-17.573036],[-57.832459,-17.512057],[-57.905039,-17.532366],[-57.990899,-17.512884],[-58.205563,-17.363126],[-58.347751,-17.282097],[-58.396017,-17.234245],[-58.417385,-17.080559],[-58.459811,-16.910699],[-58.478105,-16.700686],[-58.470586,-16.65025],[-58.35036,-16.490828],[-58.3508,-16.410264],[-58.340594,-16.339933],[-58.345632,-16.284329],[-58.375398,-16.283554],[-58.423663,-16.307945],[-58.496553,-16.326652],[-58.537946,-16.328254],[-58.957274,-16.313216],[-59.434299,-16.296008],[-59.831149,-16.281745],[-60.175572,-16.269343],[-60.187199,-16.13209],[-60.20663,-15.901975],[-60.220427,-15.738677],[-60.242338,-15.479572],[-60.380469,-15.318289],[-60.53046,-15.14321],[-60.583222,-15.098355],[-60.402018,-15.092774],[-60.27337,-15.088743],[-60.298872,-14.618591],[-60.338043,-14.570532],[-60.372718,-14.418706],[-60.396256,-14.332768],[-60.460128,-14.263108],[-60.474649,-14.184715],[-60.462996,-14.13247],[-60.428063,-14.100018],[-60.404964,-14.019196],[-60.422353,-13.93796],[-60.460128,-13.862409],[-60.506585,-13.789856],[-60.59534,-13.745311],[-60.72236,-13.664334],[-60.914519,-13.561394],[-61.07699,-13.489771],[-61.129157,-13.498556],[-61.416065,-13.526513],[-61.511563,-13.54124],[-61.575693,-13.524807],[-61.789918,-13.525634],[-61.874125,-13.470444],[-61.944715,-13.40621],[-62.094757,-13.242034],[-62.118012,-13.159817],[-62.17607,-13.133668],[-62.26392,-13.143642],[-62.352804,-13.132376],[-62.525532,-13.064267],[-62.687073,-12.994349],[-62.765466,-12.997243],[-62.835151,-12.953679],[-62.957935,-12.847019],[-63.015192,-12.805575],[-63.04134,-12.750436],[-63.067463,-12.669149],[-63.116814,-12.651682],[-63.180686,-12.666203],[-63.249751,-12.707906],[-63.34667,-12.680104],[-63.465242,-12.605173],[-63.541904,-12.546727],[-63.585674,-12.518977],[-63.688588,-12.477998],[-63.788116,-12.469471],[-63.938547,-12.529726],[-64.06164,-12.505076],[-64.255039,-12.483269],[-64.420533,-12.439705],[-64.480787,-12.326121],[-64.513421,-12.250983],[-64.611658,-12.203906],[-64.690025,-12.146493],[-64.783456,-12.059367],[-64.829913,-12.030325],[-64.914353,-12.005985],[-64.992513,-11.975186],[-65.001221,-11.919996],[-65.030263,-11.84739],[-65.037136,-11.829407],[-65.090285,-11.741247],[-65.115167,-11.735046],[-65.142659,-11.752357],[-65.163381,-11.765121],[-65.185731,-11.749515],[-65.189736,-11.710086],[-65.17537,-11.646886],[-65.206195,-11.580533],[-65.282263,-11.51108],[-65.322028,-11.439146],[-65.325464,-11.364784],[-65.342388,-11.315071],[-65.372826,-11.289905],[-65.389879,-11.24629],[-65.3936,-11.184278],[-65.37156,-11.110381],[-65.323785,-11.024753],[-65.334017,-10.892823],[-65.402307,-10.714746],[-65.440005,-10.586227],[-65.447137,-10.50742],[-65.436905,-10.449026],[-65.39546,-10.392285],[-65.313062,-10.253069],[-65.298593,-10.146771],[-65.32456,-10.026985],[-65.328126,-9.935569],[-65.309316,-9.872627],[-65.337893,-9.790255],[-65.396132,-9.71243],[-65.436775,-9.710415],[-65.491992,-9.731757],[-65.558706,-9.79749],[-65.637099,-9.809117],[-65.706785,-9.768499],[-65.924679,-9.785449],[-66.263573,-9.826067],[-66.399223,-9.868183],[-66.478934,-9.886166],[-66.575336,-9.899912],[-66.730004,-9.975463],[-67.111531,-10.268934],[-67.190467,-10.311463],[-67.280487,-10.317251],[-67.332732,-10.35792],[-67.416939,-10.389856],[-67.582433,-10.505973],[-67.666639,-10.598888],[-67.721804,-10.683069],[-67.785676,-10.686014],[-67.835027,-10.66276],[-67.991684,-10.674387],[-68.071653,-10.703119],[-68.158651,-10.785026],[-68.266577,-10.933131],[-68.311122,-10.975195],[-68.39799,-11.018707],[-68.49832,-11.054777],[-68.622628,-11.109141],[-68.678361,-11.112758],[-68.727505,-11.122422],[-68.769931,-11.097669],[-68.784091,-11.044597],[-68.848324,-11.011162],[-69.001648,-10.994316],[-69.228508,-10.955662],[-69.46255,-10.948117],[-69.578616,-10.951786],[-69.674036,-10.95406],[-69.839788,-10.933441],[-69.960375,-10.929875],[-70.066286,-10.98243],[-70.220075,-11.047646],[-70.290381,-11.064234],[-70.342006,-11.066714],[-70.392287,-11.058549],[-70.450862,-11.024805],[-70.53326,-10.946877],[-70.596538,-10.976849],[-70.642323,-11.010284],[-70.641548,-10.840837],[-70.64036,-10.586072],[-70.639326,-10.361279],[-70.638525,-10.181549],[-70.637595,-9.971742],[-70.636923,-9.823741],[-70.593799,-9.767466],[-70.567238,-9.704627],[-70.599174,-9.620498],[-70.592249,-9.5435],[-70.570157,-9.489808],[-70.541115,-9.437511],[-70.607907,-9.463711],[-70.636923,-9.478233],[-70.672451,-9.51792],[-70.758518,-9.571715],[-70.816266,-9.625304],[-70.884531,-9.669022],[-70.970753,-9.765709],[-71.041731,-9.818729],[-71.115266,-9.852473],[-71.237946,-9.966006],[-71.339413,-9.988589],[-71.608001,-10.006004],[-71.887441,-10.005539],[-72.142955,-10.005177],[-72.181609,-10.00373],[-72.179103,-9.910144],[-72.172876,-9.84405],[-72.259977,-9.774338],[-72.265842,-9.688452],[-72.289019,-9.629179],[-72.318061,-9.556626],[-72.379039,-9.510169],[-72.46477,-9.492185],[-72.605485,-9.452084],[-72.814284,-9.410381],[-73.013781,-9.407384],[-73.209428,-9.411415],[-73.089848,-9.265739],[-72.970347,-9.120167],[-72.974042,-8.993146],[-73.070496,-8.882765],[-73.122534,-8.814087],[-73.203097,-8.719364],[-73.302419,-8.654045],[-73.356731,-8.56697],[-73.351693,-8.514157],[-73.3604,-8.479327],[-73.39815,-8.459018],[-73.4359,-8.427082],[-73.488144,-8.392201],[-73.549123,-8.345795],[-73.549123,-8.299338],[-73.572351,-8.249935],[-73.610101,-8.191903],[-73.610101,-8.145446],[-73.644931,-8.07284],[-73.68268,-8.020595],[-73.72043,-7.985765],[-73.775595,-7.936414],[-73.772701,-7.895745],[-73.732031,-7.875436],[-73.714616,-7.828979],[-73.72043,-7.782522],[-73.766887,-7.75348],[-73.822052,-7.738959],[-73.894631,-7.654778],[-73.946902,-7.611215],[-73.981732,-7.585066],[-74.002067,-7.556024],[-73.981732,-7.535715],[-73.958503,-7.506673],[-73.95269,-7.460216],[-73.964317,-7.416705],[-73.964317,-7.378929],[-73.929461,-7.367302],[-73.891737,-7.373141],[-73.853988,-7.349887],[-73.804637,-7.341205],[-73.749472,-7.335366],[-73.72043,-7.309269],[-73.723324,-7.262812],[-73.75818,-7.172792],[-73.79301,-7.135068],[-73.804637,-7.079878],[-73.776241,-6.973579],[-73.758102,-6.905728],[-73.694514,-6.833743],[-73.499875,-6.679489],[-73.325519,-6.57474],[-73.240304,-6.564095],[-73.177466,-6.525234],[-73.137365,-6.465807],[-73.126306,-6.400901],[-73.135349,-6.344315],[-73.167725,-6.260651],[-73.206508,-6.156471],[-73.23555,-6.098439],[-73.209402,-6.028727],[-73.162919,-5.933384],[-73.068093,-5.789569],[-72.979855,-5.63485],[-72.970243,-5.589684],[-72.958926,-5.49522],[-72.918283,-5.302518],[-72.895778,-5.198287],[-72.907456,-5.157669],[-72.88707,-5.122788],[-72.831905,-5.093746],[-72.698735,-5.067236],[-72.608353,-5.009565],[-72.469008,-4.901251],[-72.352839,-4.786012],[-72.256798,-4.748909],[-72.082494,-4.6423],[-71.982448,-4.574604],[-71.943148,-4.553313],[-71.844756,-4.504376],[-71.668359,-4.487323],[-71.521339,-4.469753],[-71.43827,-4.43761],[-71.316804,-4.424329],[-71.235,-4.388207],[-71.144257,-4.387174],[-70.973698,-4.350483],[-70.91564,-4.295293],[-70.866031,-4.229561],[-70.799497,-4.173337],[-70.721569,-4.158919],[-70.634572,-4.168686],[-70.530651,-4.167601],[-70.404638,-4.150134],[-70.343659,-4.193697],[-70.316917,-4.246976],[-70.239144,-4.301133],[-70.183979,-4.298187],[-70.128815,-4.286611],[-70.053315,-4.333069],[-70.003964,-4.327229],[-69.972028,-4.301133],[-69.965931,-4.235969],[-69.94818,-4.200622],[-69.91105,-3.996552],[-69.849762,-3.65988],[-69.794158,-3.354575],[-69.732637,-3.016715],[-69.669049,-2.66764],[-69.604661,-2.314225],[-69.551847,-2.024269],[-69.50645,-1.77493],[-69.478596,-1.621968],[-69.434929,-1.42167],[-69.417876,-1.24566],[-69.400229,-1.194966],[-69.411442,-1.152229],[-69.44914,-1.091561],[-69.448753,-1.064896],[-69.444334,-1.029601],[-69.448753,-0.99875],[-69.48844,-0.965677],[-69.519291,-0.945833],[-69.543553,-0.917153],[-69.554586,-0.877466],[-69.57443,-0.837778],[-69.583241,-0.795868],[-69.611895,-0.762796],[-69.620732,-0.720938],[-69.600888,-0.68125],[-69.592052,-0.639341],[-69.600888,-0.599653],[-69.611895,-0.553351],[-69.633961,-0.509271],[-69.667473,-0.482399],[-69.747443,-0.45253],[-69.827954,-0.381372],[-69.922781,-0.317448],[-70.044065,-0.196163],[-70.070524,-0.138854],[-70.070937,0.018552],[-70.065744,0.189343],[-70.057889,0.447363],[-70.053884,0.578621],[-69.985438,0.585856],[-69.925106,0.589422],[-69.862061,0.598465],[-69.807129,0.607457],[-69.756719,0.62637],[-69.718891,0.64978],[-69.67383,0.665076],[-69.638715,0.65965],[-69.603601,0.680372],[-69.56487,0.700216],[-69.527043,0.716391],[-69.472136,0.72993],[-69.420796,0.698407],[-69.391986,0.666885],[-69.358655,0.651588],[-69.327132,0.655154],[-69.305532,0.652467],[-69.283026,0.627249],[-69.254191,0.62544],[-69.212772,0.629936],[-69.174067,0.635362],[-69.156058,0.642545],[-69.153344,0.658771],[-69.163241,0.686677],[-69.176754,0.712825],[-69.165954,0.753339],[-69.165049,0.801967],[-69.163241,0.864082],[-69.193859,0.898292],[-69.224477,0.963146],[-69.258713,1.015391],[-69.311836,1.050479],[-69.361368,1.064018],[-69.402787,1.042366],[-69.441518,1.0388],[-69.470328,1.058592],[-69.517147,1.059471],[-69.567583,1.065775],[-69.620887,1.073268],[-69.717005,1.059109],[-69.751318,1.076627],[-69.798137,1.078436],[-69.852165,1.059522],[-69.850795,1.308809],[-69.849478,1.543885],[-69.848573,1.708759],[-69.799946,1.705168],[-69.739614,1.734881],[-69.650033,1.739455],[-69.581277,1.770745],[-69.542933,1.773225],[-69.470173,1.757903],[-69.394363,1.725786],[-69.319743,1.721239],[-69.124276,1.721291],[-68.913178,1.721394],[-68.678464,1.721497],[-68.44344,1.721601],[-68.239576,1.721704],[-68.176557,1.719844],[-68.213273,1.774543],[-68.255932,1.845521],[-68.239473,1.901357],[-68.218389,1.957633],[-68.193816,1.986985],[-68.130254,1.955747],[-68.077079,1.860119],[-68.032844,1.788057],[-67.989772,1.752529],[-67.936209,1.748498],[-67.875541,1.760591],[-67.81508,1.790098],[-67.711882,1.922105],[-67.609227,2.03507],[-67.556052,2.073],[-67.499647,2.107908],[-67.457763,2.121137],[-67.400428,2.116719],[-67.35193,2.085842],[-67.320614,2.032073],[-67.205815,1.844823],[-67.119231,1.703591],[-67.090137,1.615586],[-67.088277,1.400612],[-67.093651,1.210004],[-67.082282,1.185406],[-67.065255,1.178378],[-66.876042,1.223026],[-66.619055,0.992136],[-66.429247,0.821656],[-66.347133,0.767189],[-66.301658,0.751944],[-66.191226,0.763261],[-66.060071,0.785327],[-65.996354,0.80977],[-65.925867,0.863152],[-65.8113,0.937256],[-65.718102,0.978028],[-65.681438,0.983454],[-65.644696,0.97038],[-65.565992,0.926094],[-65.522998,0.843411],[-65.562685,0.7475],[-65.556071,0.687969],[-65.473388,0.691276],[-65.407242,0.790495],[-65.360863,0.868629],[-65.263995,0.931881],[-65.169634,1.022212],[-65.103747,1.108098],[-65.026542,1.158431],[-64.910115,1.219719],[-64.81795,1.257133],[-64.731573,1.253309],[-64.667443,1.293823],[-64.584347,1.369891],[-64.526288,1.431024],[-64.486058,1.45278],[-64.405133,1.446889],[-64.304209,1.455286],[-64.205042,1.529519],[-64.114841,1.619281],[-64.06704,1.770512],[-64.035466,1.904432],[-64.008516,1.931588],[-63.975805,1.953008],[-63.937151,1.967012],[-63.844495,1.976701],[-63.682154,2.048118],[-63.570249,2.120491],[-63.463898,2.13602],[-63.432505,2.155553],[-63.393929,2.2225],[-63.37486,2.340426],[-63.389252,2.41192],[-63.584615,2.433934],[-63.712565,2.434012],[-63.924155,2.452435],[-64.024898,2.48189],[-64.046602,2.502406],[-64.048824,2.525117],[-64.028696,2.576096],[-64.009033,2.671879],[-64.037817,2.801535],[-64.143547,3.004881],[-64.218839,3.204663],[-64.228761,3.343982],[-64.227056,3.491234],[-64.221113,3.587378],[-64.27527,3.662671],[-64.567914,3.899814],[-64.668993,4.011797],[-64.702583,4.089286],[-64.817873,4.232274],[-64.788701,4.276044],[-64.722245,4.274416],[-64.665505,4.237132],[-64.613647,4.157705],[-64.576363,4.139877],[-64.525539,4.140006],[-64.255685,4.140342],[-64.192485,4.126829],[-64.154296,4.100163],[-64.121714,4.067013],[-64.073396,3.974435],[-64.021487,3.929114],[-63.91462,3.930639],[-63.746982,3.932577],[-63.652931,3.940845],[-63.596629,3.915058],[-63.526789,3.893716],[-63.379795,3.94286],[-63.338661,3.943894],[-63.29471,3.922242],[-63.136218,3.756438],[-63.045319,3.686494],[-62.968632,3.593967],[-62.856985,3.59345],[-62.764587,3.672954],[-62.739912,3.940328],[-62.71211,4.01792],[-62.665343,4.03965],[-62.609739,4.042312],[-62.543955,4.084325],[-62.472538,4.138533],[-62.410629,4.156723],[-62.1531,4.098381],[-62.081606,4.126312],[-61.820846,4.197005],[-61.554248,4.287801],[-61.479368,4.402238],[-61.367541,4.433011],[-61.280104,4.516908],[-61.209411,4.508071],[-61.102441,4.504687],[-61.036269,4.519311],[-61.00286,4.535279],[-60.966428,4.574708],[-60.906251,4.686794],[-60.833387,4.729221],[-60.741739,4.774128],[-60.679159,4.827096],[-60.627586,4.892544],[-60.603866,4.949362],[-60.604486,4.994579],[-60.635027,5.08199],[-60.672002,5.164362],[-60.711973,5.19157],[-60.742127,5.202034],[-60.651357,5.221154],[-60.5764,5.1925],[-60.459534,5.188082],[-60.408814,5.210147],[-60.335201,5.199295],[-60.241666,5.257974]]]]},"type":"Feature","properties":{"ISO_A2":"BR","NAME":"Brazil"}},{"geometry":{"type":"Polygon","coordinates":[[[-59.493314,13.081967],[-59.521865,13.0622],[-59.611343,13.102095],[-59.642788,13.150309],[-59.64669,13.303116],[-59.591603,13.317689],[-59.487888,13.196818],[-59.427633,13.152789],[-59.493314,13.081967]]]},"type":"Feature","properties":{"ISO_A2":"BB","NAME":"Barbados"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[115.026809,4.899727],[115.13998,4.899753],[115.168454,4.866706],[115.227933,4.750563],[115.266691,4.633981],[115.2793,4.456369],[115.326739,4.380767],[115.319246,4.365289],[115.290617,4.352603],[115.246692,4.347229],[115.170573,4.364204],[115.107011,4.39043],[115.051562,4.582666],[115.026757,4.691368],[115.028824,4.821127],[115.026809,4.899727]]],[[[115.026809,4.899727],[114.944747,4.856241],[114.864545,4.801774],[114.78424,4.754826],[114.746722,4.718084],[114.7599,4.666486],[114.779279,4.553004],[114.790131,4.463914],[114.818294,4.428774],[114.840257,4.393221],[114.83111,4.354515],[114.783516,4.280747],[114.810439,4.26651],[114.776178,4.168816],[114.725018,4.096546],[114.654067,4.037661],[114.608333,4.023992],[114.571746,4.049055],[114.512215,4.113548],[114.447102,4.203568],[114.416562,4.255839],[114.322976,4.262815],[114.289593,4.304182],[114.287629,4.354747],[114.261016,4.414253],[114.224119,4.477867],[114.168825,4.526933],[114.095134,4.565251],[114.063818,4.592692],[114.177972,4.59096],[114.299411,4.607161],[114.424365,4.660388],[114.544668,4.72457],[114.645953,4.798131],[114.740831,4.880994],[114.84067,4.946365],[114.995389,5.022381],[115.047686,5.016361],[115.047066,4.962436],[115.026809,4.899727]]]]},"type":"Feature","properties":{"ISO_A2":"BN","NAME":"Brunei"}},{"geometry":{"type":"Polygon","coordinates":[[[91.631906,27.75996],[91.62586,27.737325],[91.597644,27.677019],[91.579351,27.611442],[91.594751,27.557646],[91.658106,27.493619],[91.743062,27.442511],[91.851272,27.438636],[91.951008,27.458298],[91.990799,27.450211],[92.044956,27.364712],[92.083455,27.290608],[92.031158,27.214308],[92.002581,27.147387],[91.992297,27.099897],[91.998654,27.079278],[92.0309,27.04083],[92.068107,26.975201],[92.073378,26.914843],[92.04971,26.874846],[91.998344,26.854976],[91.943773,26.860816],[91.898608,26.860066],[91.842074,26.852987],[91.753759,26.830766],[91.671593,26.802008],[91.517546,26.807305],[91.455844,26.866888],[91.426802,26.867094],[91.286552,26.789915],[91.1339,26.803403],[90.855778,26.77772],[90.739661,26.7717],[90.62034,26.780226],[90.559878,26.796556],[90.447637,26.850764],[90.345886,26.890323],[90.242327,26.854149],[90.206102,26.847509],[90.122954,26.754595],[89.943172,26.723951],[89.763855,26.701549],[89.710886,26.713899],[89.609962,26.719455],[89.606138,26.741133],[89.609187,26.762191],[89.586088,26.778934],[89.54516,26.79622],[89.47457,26.803429],[89.384188,26.82658],[89.332098,26.848646],[89.148233,26.816141],[89.040953,26.865027],[88.919152,26.932207],[88.857657,26.961481],[88.835177,27.065583],[88.813577,27.099018],[88.765673,27.13421],[88.738801,27.175603],[88.760402,27.218132],[88.881686,27.297481],[88.89135,27.316059],[88.947574,27.464009],[89.025502,27.517856],[89.102396,27.592554],[89.160481,27.71128],[89.272618,27.833159],[89.395918,27.958139],[89.480668,28.059941],[89.536892,28.107432],[89.652699,28.158307],[89.749799,28.188176],[89.816926,28.256286],[89.897903,28.294139],[89.981102,28.311192],[90.104506,28.302045],[90.220778,28.277757],[90.348212,28.243935],[90.362991,28.216495],[90.352139,28.168178],[90.333742,28.119137],[90.333122,28.093996],[90.352759,28.080224],[90.477299,28.070845],[90.630055,28.078545],[90.715734,28.071724],[90.906627,28.026532],[90.962541,27.994571],[91.02078,27.970076],[91.07778,27.974468],[91.14992,28.026765],[91.225884,28.071258],[91.273013,28.07839],[91.30681,28.064024],[91.367581,28.021649],[91.493361,27.981781],[91.605603,27.951705],[91.64188,27.923257],[91.629374,27.800862],[91.631906,27.75996]]]},"type":"Feature","properties":{"ISO_A2":"BT","NAME":"Bhutan"}},{"geometry":{"type":"Polygon","coordinates":[[[25.2588,-17.793591],[25.239008,-17.843097],[25.22397,-17.915237],[25.242263,-17.969084],[25.282416,-18.041224],[25.34019,-18.104476],[25.384322,-18.141941],[25.436722,-18.234907],[25.489277,-18.351283],[25.558316,-18.441768],[25.76125,-18.649249],[25.783677,-18.72356],[25.811893,-18.797044],[25.939327,-18.938637],[25.95917,-18.985663],[25.950695,-19.081729],[26.081902,-19.369928],[26.168098,-19.53829],[26.241014,-19.569296],[26.474591,-19.748613],[26.678248,-19.892791],[26.916735,-19.990149],[27.091814,-20.054176],[27.178217,-20.100943],[27.221522,-20.145798],[27.256766,-20.232046],[27.274646,-20.381856],[27.280743,-20.478698],[27.468949,-20.474822],[27.62465,-20.483556],[27.679324,-20.502986],[27.699581,-20.530685],[27.694827,-20.594557],[27.696997,-20.689745],[27.704283,-20.766432],[27.688057,-20.84834],[27.676895,-20.944819],[27.669454,-21.064295],[27.693431,-21.111011],[27.84412,-21.261493],[27.907475,-21.359058],[27.974551,-21.506749],[28.014032,-21.554188],[28.045606,-21.573101],[28.181619,-21.589328],[28.532037,-21.651236],[28.747734,-21.707615],[28.9193,-21.766061],[28.990717,-21.781461],[29.025547,-21.79686],[29.037329,-21.811382],[29.015831,-21.939901],[29.023376,-21.981242],[29.042393,-22.018397],[29.071539,-22.047491],[29.106885,-22.065681],[29.237213,-22.079479],[29.315245,-22.157717],[29.364802,-22.19389],[29.129881,-22.213269],[29.013506,-22.278433],[28.94581,-22.39517],[28.839821,-22.48085],[28.695541,-22.53542],[28.542889,-22.572937],[28.381762,-22.593401],[28.210196,-22.693653],[28.027985,-22.873694],[27.93507,-22.98702],[27.93135,-23.033581],[27.890525,-23.073888],[27.812597,-23.107995],[27.768517,-23.148923],[27.758285,-23.196775],[27.716738,-23.219616],[27.643874,-23.217652],[27.592662,-23.252637],[27.563207,-23.324622],[27.498715,-23.368341],[27.399186,-23.383637],[27.313403,-23.424255],[27.241159,-23.490039],[27.185555,-23.523422],[27.146385,-23.524404],[27.08551,-23.57794],[26.987015,-23.704548],[26.970581,-23.76351],[26.835086,-24.240794],[26.761137,-24.297173],[26.617735,-24.395462],[26.501515,-24.513284],[26.45175,-24.582685],[26.39718,-24.613536],[26.130839,-24.671465],[26.031879,-24.70242],[25.912093,-24.747481],[25.881862,-24.787996],[25.852407,-24.935274],[25.76988,-25.146527],[25.702649,-25.302331],[25.65924,-25.43793],[25.583793,-25.60624],[25.518164,-25.662774],[25.443646,-25.714451],[25.346185,-25.739979],[25.213376,-25.756257],[25.092505,-25.751451],[24.998919,-25.754035],[24.869211,-25.813463],[24.748185,-25.81739],[24.555845,-25.783077],[24.400196,-25.749797],[24.330588,-25.742873],[24.192973,-25.632905],[24.104503,-25.634869],[23.969524,-25.626084],[23.893715,-25.600918],[23.823487,-25.544642],[23.670731,-25.433951],[23.52149,-25.344396],[23.389301,-25.291376],[23.266001,-25.266623],[23.148696,-25.288689],[23.057487,-25.312305],[23.022037,-25.324087],[22.95124,-25.370286],[22.878842,-25.457929],[22.818897,-25.59513],[22.796056,-25.679156],[22.72898,-25.857284],[22.6402,-26.071225],[22.597618,-26.13272],[22.548629,-26.178402],[22.470908,-26.219019],[22.217538,-26.388828],[22.090879,-26.580134],[22.010988,-26.635842],[21.914559,-26.661938],[21.833221,-26.678268],[21.788262,-26.710049],[21.738033,-26.806787],[21.694728,-26.840945],[21.646255,-26.854174],[21.501406,-26.842651],[21.454949,-26.832832],[21.070993,-26.851746],[20.953894,-26.821102],[20.87085,-26.808751],[20.739851,-26.848852],[20.685022,-26.822445],[20.641459,-26.742192],[20.619961,-26.580806],[20.626783,-26.443812],[20.697889,-26.340149],[20.757007,-26.264133],[20.81504,-26.164966],[20.822636,-26.120628],[20.811009,-26.080527],[20.799382,-25.999033],[20.793181,-25.915575],[20.710705,-25.733158],[20.609316,-25.491157],[20.473149,-25.221303],[20.430619,-25.147095],[20.345249,-25.029841],[20.028576,-24.807013],[19.980466,-24.776782],[19.980466,-24.751977],[19.980207,-24.535711],[19.979897,-24.249062],[19.979587,-23.962413],[19.979277,-23.675816],[19.978915,-23.389166],[19.978554,-23.102517],[19.978243,-22.81592],[19.977933,-22.529271],[19.977623,-22.242621],[19.977365,-22.000156],[20.205361,-22.000156],[20.487515,-22.000156],[20.82274,-22.000156],[20.970999,-22.000156],[20.979526,-21.961967],[20.979268,-21.784045],[20.978699,-21.376111],[20.978079,-20.968177],[20.977459,-20.560243],[20.976839,-20.15231],[20.976219,-19.744376],[20.975599,-19.336442],[20.974978,-18.928508],[20.974358,-18.520523],[20.9741,-18.31883],[21.232534,-18.306841],[21.529673,-18.265603],[22.011401,-18.19863],[22.460056,-18.11569],[22.752751,-18.067166],[23.099913,-18.009598],[23.219389,-17.999728],[23.251532,-18.007479],[23.298661,-18.027375],[23.459788,-18.231032],[23.560144,-18.386423],[23.580608,-18.452879],[23.599728,-18.459958],[23.647167,-18.449468],[23.700497,-18.424353],[23.864311,-18.269479],[23.898366,-18.229223],[24.002597,-18.154137],[24.129308,-18.077501],[24.243926,-18.023447],[24.358958,-17.97823],[24.412185,-17.989444],[24.474868,-18.028512],[24.530524,-18.052748],[24.792213,-17.864594],[24.909105,-17.821393],[25.21596,-17.787596],[25.2588,-17.793591]]]},"type":"Feature","properties":{"ISO_A2":"BW","NAME":"Botswana"}},{"geometry":{"type":"Polygon","coordinates":[[[22.860083,10.91967],[22.930725,10.795336],[22.964366,10.751799],[23.255873,10.457786],[23.312355,10.387945],[23.456636,10.174263],[23.545054,10.030086],[23.646288,9.822915],[23.65621,9.710364],[23.642774,9.61391],[23.622672,9.340619],[23.59611,9.261916],[23.468263,9.114767],[23.462785,9.048466],[23.489089,8.993327],[23.528001,8.97059],[23.551875,8.943201],[23.537303,8.815793],[23.583191,8.765822],[23.67931,8.732491],[23.92193,8.709701],[24.048176,8.69133],[24.147403,8.66564],[24.194782,8.653374],[24.220879,8.60826],[24.179951,8.461112],[24.208373,8.369128],[24.291365,8.291432],[24.375494,8.258463],[24.456058,8.239446],[24.736713,8.191542],[24.853295,8.13754],[25.007187,7.964863],[25.200354,7.807896],[25.247379,7.724568],[25.238698,7.648991],[25.181337,7.557213],[25.190122,7.519335],[25.278953,7.427506],[25.380653,7.333377],[25.566636,7.228706],[25.888994,7.064918],[26.03653,6.955235],[26.086915,6.872139],[26.169287,6.781757],[26.284525,6.699023],[26.361833,6.635306],[26.308606,6.455317],[26.324626,6.396251],[26.353358,6.34491],[26.420538,6.274191],[26.447513,6.182982],[26.514279,6.069242],[26.593654,6.017514],[26.726307,5.998239],[26.796432,5.945529],[26.942314,5.85494],[27.083443,5.776831],[27.143904,5.722958],[27.181215,5.675158],[27.213357,5.618805],[27.229067,5.562503],[27.232529,5.440753],[27.256714,5.289652],[27.332472,5.18635],[27.40332,5.109197],[27.114965,5.197848],[27.071816,5.199735],[27.020604,5.184387],[26.870071,5.075659],[26.822063,5.062379],[26.767545,5.071939],[26.632566,5.08522],[26.173524,5.171158],[25.819954,5.253711],[25.713914,5.283709],[25.525088,5.312131],[25.400135,5.255907],[25.283139,5.062689],[25.249343,5.024551],[25.06522,4.967423],[24.978403,4.982952],[24.765496,4.930087],[24.437093,5.009979],[24.319787,4.994166],[24.2277,4.953858],[23.991694,4.866267],[23.848446,4.816347],[23.68179,4.77082],[23.523608,4.70129],[23.417155,4.663127],[23.312924,4.66354],[23.218821,4.702969],[23.115881,4.73692],[22.992891,4.743871],[22.864579,4.723872],[22.755748,4.646693],[22.711668,4.591761],[22.617204,4.445569],[22.505634,4.207676],[22.461813,4.159746],[22.449669,4.155121],[22.422125,4.134942],[21.908151,4.253901],[21.686976,4.281393],[21.537631,4.244806],[21.350201,4.311365],[21.268397,4.323096],[21.229743,4.302218],[21.125564,4.332191],[20.955755,4.413116],[20.792974,4.4473],[20.647453,4.435621],[20.558105,4.462699],[20.486481,4.541532],[20.393515,4.686174],[20.226342,4.829628],[20.002376,4.944711],[19.862488,5.031295],[19.806574,5.089328],[19.686065,5.121393],[19.50096,5.127491],[19.3234,5.07075],[19.068532,4.891407],[18.83175,4.523445],[18.699924,4.382601],[18.594194,4.346221],[18.567477,4.25757],[18.619877,4.116622],[18.633726,3.954281],[18.596726,3.67869],[18.610317,3.478444],[18.553834,3.510199],[18.499781,3.604096],[18.474459,3.622983],[18.31819,3.580789],[18.237058,3.542678],[18.19396,3.505419],[18.16099,3.499787],[18.111277,3.551076],[18.072262,3.5603],[18.010715,3.550843],[17.94798,3.551747],[17.907155,3.558388],[17.880335,3.55384],[17.806593,3.584174],[17.537721,3.661637],[17.491574,3.687295],[17.437985,3.684633],[17.298459,3.61717],[17.224716,3.598411],[17.002508,3.556682],[16.764331,3.53627],[16.673381,3.535185],[16.610697,3.505368],[16.570389,3.463071],[16.543104,3.36951],[16.496285,3.208823],[16.476803,3.165156],[16.480059,3.101],[16.46621,2.993228],[16.459595,2.896516],[16.468587,2.831714],[16.401252,2.701024],[16.319655,2.542765],[16.251753,2.406804],[16.183436,2.270068],[16.136101,2.363758],[16.106748,2.473467],[16.095483,2.599196],[16.101891,2.632682],[16.083494,2.670018],[16.082151,2.678183],[16.05931,2.773009],[16.082461,2.839104],[16.063495,2.908608],[16.00815,2.97664],[15.957972,3.028704],[15.928723,3.075782],[15.904849,3.095832],[15.849297,3.103067],[15.774986,3.1272],[15.676542,3.229674],[15.580889,3.329306],[15.458364,3.456844],[15.360127,3.567121],[15.239825,3.702152],[15.12872,3.826899],[15.062058,3.947201],[15.034876,4.016344],[15.067329,4.022933],[15.115439,4.024483],[15.135852,4.036912],[15.136937,4.069132],[15.087483,4.163984],[15.063608,4.284855],[15.022784,4.358546],[14.893541,4.471872],[14.770396,4.55812],[14.731225,4.602407],[14.709004,4.665555],[14.661669,5.065531],[14.640636,5.179064],[14.601724,5.228803],[14.573509,5.251721],[14.563018,5.279936],[14.568031,5.351095],[14.584361,5.41476],[14.583637,5.439668],[14.616917,5.495505],[14.616917,5.86512],[14.59883,5.884008],[14.577281,5.916022],[14.542503,5.913593],[14.503125,5.9169],[14.463903,5.970695],[14.43114,6.038701],[14.4407,6.086709],[14.475013,6.12681],[14.512065,6.161898],[14.559401,6.191199],[14.699496,6.250265],[14.739287,6.279798],[14.764091,6.316359],[14.78037,6.36571],[14.861915,6.555724],[14.982734,6.745299],[15.034566,6.784418],[15.086346,6.909914],[15.157142,7.063548],[15.185874,7.134914],[15.2067,7.20615],[15.245922,7.263588],[15.379144,7.358156],[15.480068,7.523779],[15.589261,7.515045],[15.701295,7.488432],[15.845059,7.475306],[15.95761,7.507552],[16.030681,7.572122],[16.191084,7.623437],[16.378877,7.683562],[16.404353,7.772368],[16.459388,7.819006],[16.523261,7.859934],[16.545275,7.865463],[16.550184,7.835904],[16.588941,7.743352],[16.668368,7.651755],[16.784743,7.550961],[16.818126,7.557317],[16.89037,7.633669],[17.072013,7.680823],[17.117953,7.701907],[17.246937,7.812986],[17.402122,7.884558],[17.436383,7.890914],[17.49271,7.909828],[17.649393,7.983596],[17.760808,7.973829],[17.940125,7.985456],[18.238918,8.020363],[18.455029,8.032017],[18.56417,8.045917],[18.59161,8.0608],[18.633623,8.167745],[18.666231,8.197717],[18.747414,8.243787],[18.906474,8.405095],[19.010861,8.54121],[19.039799,8.586918],[19.042435,8.590277],[19.063881,8.598829],[19.108684,8.656139],[19.064191,8.715437],[18.88601,8.83605],[18.888594,8.852509],[18.878362,8.87318],[18.888284,8.889742],[18.95629,8.938886],[19.047861,8.995007],[19.145529,9.015987],[19.400294,9.011595],[19.61749,9.023584],[19.668392,9.020897],[19.837735,9.049345],[19.953542,9.075157],[20.072708,9.13319],[20.342097,9.127092],[20.56689,9.274938],[20.631434,9.301345],[20.659649,9.324496],[20.668124,9.34713],[20.773234,9.405679],[20.891056,9.527171],[20.984177,9.63626],[21.009447,9.713232],[21.26385,9.974585],[21.352423,9.969159],[21.396038,10.00138],[21.496859,10.17571],[21.52802,10.207827],[21.575769,10.21855],[21.632716,10.238264],[21.682687,10.289837],[21.725785,10.366551],[21.726147,10.461636],[21.70651,10.53791],[21.70651,10.574781],[21.730695,10.608707],[21.771519,10.642813],[21.964789,10.736658],[22.013778,10.78203],[22.04313,10.822725],[22.097132,10.830089],[22.156302,10.826058],[22.193612,10.851379],[22.235883,10.894167],[22.369829,10.951528],[22.493852,10.996228],[22.624077,10.977366],[22.730168,10.954035],[22.817347,10.927189],[22.860083,10.91967]]]},"type":"Feature","properties":{"ISO_A2":"CF","NAME":"Central African Rep."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.787585,43.939592],[-59.92228,43.903884],[-60.037751,43.906623],[-60.114284,43.939127],[-60.117462,43.953364],[-59.936026,43.939592],[-59.866366,43.947163],[-59.727124,44.002844],[-59.787585,43.939592]]],[[[-66.273779,44.29231],[-66.324111,44.257299],[-66.311942,44.291586],[-66.250498,44.378997],[-66.210372,44.392019],[-66.273779,44.29231]]],[[[-66.762483,44.681769],[-66.897048,44.628904],[-66.8447,44.763935],[-66.80217,44.805379],[-66.745429,44.791401],[-66.753362,44.709804],[-66.762483,44.681769]]],[[[-60.961571,45.489937],[-61.002886,45.48172],[-61.012524,45.496035],[-61.076163,45.537324],[-61.081744,45.557788],[-61.025985,45.577322],[-60.912452,45.567296],[-60.953018,45.515517],[-60.961571,45.489937]]],[[[-73.695341,45.585487],[-73.815928,45.564894],[-73.857709,45.573601],[-73.724642,45.671838],[-73.572351,45.694472],[-73.695341,45.585487]]],[[[-73.566512,45.469111],[-73.643561,45.449112],[-73.775336,45.467613],[-73.920237,45.441929],[-73.960545,45.441413],[-73.852903,45.515723],[-73.687435,45.561405],[-73.522483,45.70119],[-73.476078,45.704756],[-73.538839,45.546419],[-73.551655,45.489859],[-73.566512,45.469111]]],[[[-71.025737,46.872953],[-71.116636,46.86484],[-71.094983,46.899567],[-70.970856,46.961423],[-70.879647,46.996098],[-70.825801,46.995375],[-70.91347,46.919514],[-71.025737,46.872953]]],[[[-61.105179,45.944741],[-61.071331,45.937093],[-60.936559,45.985565],[-60.865246,45.983498],[-60.868398,45.948643],[-60.984282,45.910686],[-61.037561,45.882213],[-60.970614,45.855806],[-60.971518,45.838003],[-61.051953,45.795034],[-61.092105,45.748371],[-61.059032,45.703361],[-60.930384,45.747699],[-60.877596,45.748112],[-60.806102,45.738061],[-60.737915,45.75142],[-60.699054,45.77333],[-60.472376,45.946524],[-60.460593,45.968693],[-60.704894,45.932907],[-60.73329,45.956575],[-60.573196,46.061427],[-60.585754,46.116669],[-60.504932,46.203847],[-60.430879,46.255627],[-60.376516,46.284565],[-60.297942,46.311256],[-60.243837,46.270096],[-60.226448,46.195553],[-60.092451,46.206017],[-59.961399,46.190979],[-59.865048,46.159508],[-59.849985,46.141422],[-59.84877,46.112948],[-59.880913,46.061633],[-59.934036,46.019414],[-59.828022,45.965153],[-59.842182,45.941537],[-60.015814,45.880456],[-60.114465,45.818909],[-60.205079,45.742996],[-60.386102,45.654655],[-60.672958,45.590809],[-60.763727,45.590809],[-60.871602,45.610679],[-60.978624,45.606157],[-61.083708,45.582386],[-61.186441,45.585021],[-61.236308,45.57249],[-61.28367,45.573859],[-61.323409,45.598509],[-61.408339,45.669073],[-61.449784,45.716228],[-61.495311,45.941434],[-61.480609,46.059773],[-61.408649,46.17036],[-61.302196,46.243844],[-61.24052,46.302549],[-60.9825,46.650486],[-60.931986,46.729422],[-60.870155,46.796782],[-60.759697,46.863393],[-60.616656,46.975789],[-60.571052,46.998811],[-60.489067,47.009715],[-60.408219,47.00354],[-60.431345,46.962922],[-60.425453,46.923183],[-60.331764,46.767843],[-60.332927,46.736992],[-60.384086,46.613331],[-60.482401,46.413524],[-60.507696,46.303376],[-60.494545,46.270277],[-60.534413,46.214544],[-60.576865,46.172169],[-60.744814,46.092691],[-60.830571,46.074139],[-60.912194,46.04458],[-61.105179,45.944741]]],[[[-63.811267,46.468688],[-63.784241,46.454658],[-63.737008,46.480497],[-63.68143,46.561913],[-63.534359,46.540622],[-63.456483,46.503932],[-63.413152,46.512019],[-63.368659,46.508247],[-63.28608,46.460214],[-63.129371,46.422206],[-62.964007,46.427735],[-62.712032,46.450292],[-62.681905,46.459438],[-62.423109,46.478249],[-62.163564,46.487189],[-62.074268,46.465743],[-62.040885,46.445692],[-62.023728,46.42156],[-62.171755,46.355388],[-62.319989,46.278312],[-62.526049,46.202865],[-62.55199,46.165942],[-62.539226,46.097936],[-62.543257,46.028664],[-62.502588,46.022928],[-62.478093,45.999725],[-62.53132,45.977297],[-62.743193,45.966884],[-62.804895,45.973215],[-62.878353,46.001378],[-62.903545,46.068248],[-62.994599,46.058429],[-63.022091,46.066594],[-62.894553,46.123593],[-62.952664,46.195165],[-63.015063,46.189946],[-63.056326,46.223949],[-63.052916,46.269812],[-62.995142,46.292136],[-62.978476,46.316346],[-63.056869,46.295366],[-63.11702,46.252836],[-63.194716,46.236713],[-63.270809,46.199997],[-63.152781,46.188344],[-63.2135,46.159844],[-63.276597,46.153281],[-63.568879,46.209221],[-63.640994,46.23046],[-63.731789,46.289061],[-63.800545,46.367325],[-63.763234,46.370374],[-63.750548,46.384353],[-63.758661,46.397608],[-63.860541,46.408175],[-64.019704,46.404816],[-64.11081,46.425435],[-64.106572,46.562119],[-64.136054,46.599688],[-64.235634,46.631443],[-64.388054,46.640874],[-64.403143,46.691621],[-64.354619,46.769239],[-64.279999,46.835746],[-64.223232,46.901246],[-64.156905,46.954886],[-63.993582,47.061572],[-63.997277,46.981732],[-63.98149,46.913002],[-64.087866,46.77544],[-63.903045,46.639117],[-63.879325,46.608964],[-63.863719,46.572351],[-63.87563,46.538658],[-63.905551,46.508764],[-63.833618,46.493881],[-63.811267,46.468688]]],[[[-61.914096,47.284504],[-61.878698,47.265539],[-61.815472,47.267554],[-61.772555,47.259803],[-61.83374,47.222596],[-61.950813,47.218979],[-62.008277,47.234275],[-61.92469,47.425168],[-61.827306,47.469093],[-61.627861,47.593839],[-61.548021,47.63177],[-61.474072,47.646756],[-61.395523,47.637661],[-61.475544,47.56397],[-61.582256,47.560017],[-61.684085,47.498755],[-61.750902,47.4308],[-61.831259,47.392043],[-61.886605,47.344604],[-61.914096,47.284504]]],[[[-54.227124,47.441342],[-54.276061,47.406538],[-54.325955,47.408114],[-54.320141,47.438526],[-54.258698,47.49767],[-54.227382,47.539993],[-54.226245,47.565521],[-54.214954,47.585106],[-54.168368,47.607094],[-54.128163,47.646808],[-54.147542,47.573117],[-54.227124,47.441342]]],[[[-64.508563,47.886741],[-64.533911,47.813774],[-64.62127,47.751918],[-64.664626,47.747603],[-64.684573,47.753597],[-64.660492,47.793569],[-64.663283,47.863022],[-64.591091,47.872479],[-64.564865,47.866278],[-64.508563,47.886741]]],[[[-64.476085,47.958882],[-64.591297,47.907205],[-64.540706,47.984978],[-64.51957,48.00508],[-64.500192,48.013762],[-64.481278,48.006941],[-64.476085,47.958882]]],[[[-123.43538,48.75444],[-123.477264,48.728757],[-123.499614,48.732168],[-123.51752,48.750151],[-123.582348,48.925799],[-123.554675,48.922079],[-123.467859,48.867405],[-123.487547,48.845727],[-123.422745,48.793353],[-123.406803,48.756068],[-123.43538,48.75444]]],[[[-123.372361,48.886112],[-123.384815,48.875208],[-123.541032,48.945953],[-123.645626,49.038609],[-123.68924,49.095091],[-123.482328,48.954712],[-123.377916,48.908229],[-123.372361,48.886112]]],[[[-74.708871,45.003868],[-74.566296,45.041592],[-74.269053,45.188302],[-74.04979,45.241425],[-73.764665,45.395472],[-73.558089,45.425083],[-73.518814,45.458983],[-73.484191,45.586778],[-73.465278,45.632305],[-73.368849,45.757827],[-73.253017,45.863661],[-73.15956,46.010034],[-72.989958,46.103594],[-72.733436,46.181858],[-72.49619,46.352675],[-72.366172,46.404791],[-72.240133,46.442101],[-72.187216,46.511528],[-72.109288,46.551216],[-71.900929,46.631908],[-71.671279,46.653768],[-71.4392,46.720766],[-71.261174,46.756268],[-71.152008,46.819106],[-70.993258,46.852205],[-70.519488,47.03253],[-70.388101,47.116943],[-70.217776,47.289827],[-70.069593,47.37778],[-70.017142,47.471418],[-69.80222,47.62345],[-69.58107,47.823696],[-69.471051,47.967305],[-69.306333,48.047042],[-68.987076,48.274986],[-68.815691,48.36604],[-68.746057,48.376427],[-68.552012,48.457301],[-68.431502,48.541689],[-68.238207,48.626438],[-67.889003,48.730902],[-67.560884,48.855933],[-67.1175,48.964143],[-66.5981,49.126356],[-66.178177,49.21312],[-65.882795,49.225678],[-65.523385,49.26614],[-65.396158,49.262058],[-64.836347,49.191726],[-64.567733,49.104807],[-64.261834,48.921872],[-64.21623,48.873658],[-64.208814,48.80622],[-64.370742,48.838983],[-64.513731,48.841102],[-64.414564,48.803636],[-64.246073,48.691111],[-64.253747,48.55037],[-64.348832,48.423194],[-64.633155,48.360511],[-64.705761,48.310592],[-64.764491,48.22809],[-64.822058,48.19649],[-64.959905,48.159851],[-65.036076,48.106263],[-65.259422,48.021255],[-65.36001,48.011127],[-65.475895,48.031487],[-65.754715,48.111689],[-65.92672,48.188842],[-66.012554,48.146674],[-66.083118,48.102697],[-66.248638,48.117322],[-66.324267,48.097891],[-66.448988,48.119647],[-66.704373,48.022444],[-66.63156,48.011075],[-66.428782,48.066963],[-66.359613,48.060658],[-66.210217,47.988596],[-65.849386,47.911029],[-65.755722,47.859741],[-65.666451,47.696159],[-65.607256,47.67001],[-65.483517,47.687012],[-65.343939,47.767937],[-65.228158,47.811268],[-65.001686,47.846847],[-65.046386,47.793],[-64.873967,47.797238],[-64.703229,47.724839],[-64.7663,47.673473],[-64.85216,47.569862],[-64.912182,47.368634],[-65.086125,47.23381],[-65.318902,47.101208],[-65.260223,47.069246],[-65.192062,47.049583],[-65.042407,47.088806],[-64.942439,47.08617],[-64.831412,47.060797],[-64.86588,46.957832],[-64.905774,46.887939],[-64.882546,46.822827],[-64.81671,46.6987],[-64.725863,46.671441],[-64.689508,46.512303],[-64.641346,46.42559],[-64.647857,46.355982],[-64.556855,46.311437],[-64.541507,46.24033],[-64.211837,46.220228],[-64.144994,46.192891],[-63.915912,46.165813],[-63.872633,46.146176],[-63.831912,46.10716],[-64.056395,46.021351],[-63.8747,45.959211],[-63.702876,45.858028],[-63.567691,45.877949],[-63.509245,45.87472],[-63.358013,45.811261],[-63.315923,45.779867],[-63.292798,45.751936],[-63.216911,45.757957],[-63.107925,45.782425],[-62.910806,45.776379],[-62.700689,45.740568],[-62.718337,45.685997],[-62.750118,45.648248],[-62.585658,45.660676],[-62.483054,45.621815],[-62.447268,45.640548],[-62.421869,45.664655],[-62.217721,45.730852],[-61.955515,45.868157],[-61.923579,45.851155],[-61.911616,45.799117],[-61.877251,45.714213],[-61.776508,45.655611],[-61.656903,45.642176],[-61.492288,45.687031],[-61.427666,45.648273],[-61.350513,45.573678],[-61.277081,45.476036],[-61.281964,45.441051],[-61.376119,45.410614],[-61.460997,45.366689],[-61.10673,45.348653],[-61.070815,45.330153],[-61.031515,45.291758],[-61.067688,45.252845],[-61.101071,45.233467],[-61.165305,45.256101],[-61.283799,45.235482],[-61.387255,45.185046],[-61.497894,45.157011],[-61.568743,45.153833],[-61.64742,45.130527],[-61.719225,45.094483],[-61.793897,45.084432],[-62.026803,44.994463],[-62.264979,44.936482],[-62.514008,44.843646],[-62.768049,44.785122],[-63.031806,44.71479],[-63.089219,44.708538],[-63.155726,44.711328],[-63.306311,44.642598],[-63.380829,44.6519],[-63.456845,44.639963],[-63.544333,44.655052],[-63.604019,44.683216],[-63.55826,44.610611],[-63.544824,44.543767],[-63.567691,44.514441],[-63.609755,44.479973],[-63.761141,44.486406],[-63.820647,44.510668],[-63.891314,44.546325],[-63.92369,44.603841],[-63.999731,44.644924],[-64.044922,44.587873],[-64.044612,44.545395],[-64.100862,44.487466],[-64.167008,44.586684],[-64.286071,44.55033],[-64.338522,44.444859],[-64.312245,44.414757],[-64.275709,44.33409],[-64.334569,44.291974],[-64.37821,44.303549],[-64.468798,44.185159],[-64.578482,44.14206],[-64.691575,44.021344],[-64.82565,43.92936],[-64.86234,43.867865],[-65.086823,43.727176],[-65.172089,43.731388],[-65.234927,43.726737],[-65.329599,43.66811],[-65.344301,43.549616],[-65.386081,43.565274],[-65.428533,43.561424],[-65.450444,43.524243],[-65.481682,43.518068],[-65.564442,43.553259],[-65.661904,43.534036],[-65.738152,43.560726],[-65.835304,43.734385],[-65.886903,43.795208],[-65.978396,43.814845],[-66.002167,43.778103],[-66.037643,43.742162],[-66.125726,43.813838],[-66.192543,44.079687],[-66.193086,44.143869],[-66.099577,44.367499],[-65.868015,44.568804],[-65.941938,44.575522],[-66.146396,44.435944],[-66.125312,44.469715],[-66.090637,44.504932],[-66.021701,44.561699],[-65.917056,44.615107],[-65.777685,44.646216],[-65.681825,44.650918],[-65.615757,44.6804],[-65.52,44.73267],[-65.502275,44.760395],[-65.587154,44.72851],[-65.728231,44.697117],[-65.692057,44.738303],[-65.65671,44.760317],[-64.902932,45.120812],[-64.751262,45.18024],[-64.448851,45.256049],[-64.40689,45.30571],[-64.448154,45.33744],[-64.330745,45.309328],[-64.340434,45.268193],[-64.358831,45.238247],[-64.365704,45.187268],[-64.354232,45.138227],[-64.235014,45.114301],[-64.135511,45.023066],[-64.182718,45.147012],[-64.093188,45.217085],[-63.748326,45.310878],[-63.460255,45.32111],[-63.368013,45.364777],[-63.614458,45.394129],[-63.906455,45.378161],[-64.087168,45.410872],[-64.336403,45.38953],[-64.600186,45.410045],[-64.681111,45.382967],[-64.746663,45.324366],[-64.831955,45.350255],[-64.873166,45.354596],[-64.91288,45.374802],[-64.827381,45.475545],[-64.560085,45.625484],[-64.397097,45.755864],[-64.351105,45.783201],[-64.314648,45.835678],[-64.404048,45.826919],[-64.482234,45.806352],[-64.536339,45.866606],[-64.63269,45.946653],[-64.642044,45.913322],[-64.593674,45.81369],[-64.778521,45.638429],[-64.897894,45.626001],[-65.05729,45.544249],[-65.28234,45.47309],[-65.545012,45.337285],[-65.884474,45.222899],[-65.955607,45.22246],[-66.109758,45.316614],[-66.066634,45.359454],[-66.026584,45.41759],[-66.064903,45.400847],[-66.089733,45.375629],[-66.182725,45.335218],[-66.107355,45.256928],[-66.143735,45.227601],[-66.251558,45.189025],[-66.351965,45.133214],[-66.439841,45.095904],[-66.510948,45.143343],[-66.707163,45.083398],[-66.872476,45.067275],[-66.908184,45.097635],[-66.918701,45.145617],[-66.976578,45.157192],[-67.084065,45.143963],[-67.124838,45.16944],[-67.170985,45.181997],[-67.21323,45.192539],[-67.249585,45.200781],[-67.27072,45.1867],[-67.290667,45.167915],[-67.315291,45.153833],[-67.366942,45.17378],[-67.399782,45.210161],[-67.452596,45.247678],[-67.472543,45.275893],[-67.461975,45.308708],[-67.438514,45.340385],[-67.427946,45.377954],[-67.453758,45.421259],[-67.477219,45.445909],[-67.493653,45.474072],[-67.487787,45.501047],[-67.454921,45.513966],[-67.424432,45.530399],[-67.413864,45.565591],[-67.432648,45.603108],[-67.486625,45.618404],[-67.531195,45.612539],[-67.595739,45.62073],[-67.657932,45.644191],[-67.698989,45.671192],[-67.730666,45.686462],[-67.755316,45.686462],[-67.784643,45.701707],[-67.802238,45.727519],[-67.799913,45.769765],[-67.791696,45.795577],[-67.775263,45.817875],[-67.774101,45.842525],[-67.781129,45.860147],[-67.782291,45.874177],[-67.777615,45.891799],[-67.767047,45.92699],[-67.784643,45.952803],[-67.786477,46.042151],[-67.789913,46.209324],[-67.792523,46.337379],[-67.79583,46.498402],[-67.797691,46.61563],[-67.800352,46.779858],[-67.802858,46.93574],[-67.806786,47.082811],[-67.93484,47.167612],[-68.096794,47.274841],[-68.235494,47.345948],[-68.310889,47.354474],[-68.358018,47.344526],[-68.376906,47.316156],[-68.480388,47.285796],[-68.668542,47.253447],[-68.828713,47.203321],[-68.887418,47.20283],[-68.937182,47.211253],[-69.003095,47.236445],[-69.048571,47.273652],[-69.06428,47.338144],[-69.050224,47.426614],[-69.146291,47.444753],[-69.242874,47.462995],[-69.302147,47.401991],[-69.358887,47.35065],[-69.47149,47.238667],[-69.629775,47.081364],[-69.717522,46.994858],[-69.871724,46.842929],[-70.007685,46.708932],[-70.038226,46.571421],[-70.067216,46.441042],[-70.179664,46.341823],[-70.248291,46.250872],[-70.278883,46.15],[-70.304515,46.057396],[-70.306427,45.979829],[-70.287151,45.93916],[-70.296246,45.906087],[-70.333453,45.868053],[-70.407867,45.801907],[-70.421097,45.738242],[-70.466572,45.706823],[-70.596383,45.643984],[-70.702216,45.55138],[-70.70741,45.498929],[-70.692139,45.455365],[-70.689788,45.428339],[-70.71095,45.409477],[-70.753299,45.410691],[-70.799187,45.404774],[-70.837815,45.366172],[-70.836833,45.310697],[-70.865049,45.2707],[-70.897993,45.262457],[-70.926234,45.290698],[-70.960185,45.333099],[-70.999873,45.337233],[-71.060231,45.309121],[-71.134645,45.262819],[-71.201617,45.260338],[-71.327294,45.290104],[-71.41902,45.200342],[-71.517515,45.007563],[-71.93364,45.007072],[-72.349764,45.006607],[-72.765889,45.006116],[-73.182013,45.005625],[-73.598138,45.00516],[-74.014262,45.004695],[-74.430387,45.004178],[-74.663241,45.00392],[-74.708871,45.003868]]],[[[-126.092065,49.35399],[-126.064031,49.263608],[-126.186814,49.278104],[-126.229628,49.295648],[-126.231437,49.339056],[-126.208544,49.379777],[-126.115294,49.365049],[-126.092065,49.35399]]],[[[-54.554416,49.58886],[-54.708696,49.530672],[-54.743836,49.507779],[-54.786495,49.496152],[-54.818509,49.514446],[-54.863571,49.576096],[-54.855406,49.59656],[-54.813083,49.59935],[-54.788795,49.591185],[-54.782645,49.572065],[-54.764068,49.56235],[-54.733114,49.562143],[-54.618779,49.622088],[-54.559171,49.631493],[-54.537699,49.619969],[-54.554416,49.58886]]],[[[-54.093695,49.744458],[-54.019927,49.6795],[-53.980653,49.661982],[-54.238389,49.59165],[-54.26924,49.586999],[-54.286138,49.595371],[-54.288774,49.660845],[-54.277663,49.711488],[-54.258956,49.718981],[-54.199374,49.688544],[-54.137724,49.75115],[-54.093695,49.744458]]],[[[-124.153682,49.531163],[-124.139807,49.510337],[-124.362326,49.588188],[-124.457204,49.634206],[-124.493972,49.66746],[-124.51782,49.686322],[-124.63094,49.735698],[-124.649854,49.758358],[-124.623292,49.775102],[-124.547173,49.764921],[-124.421496,49.727766],[-124.309151,49.667305],[-124.153682,49.531163]]],[[[-126.641231,49.60581],[-126.680427,49.601365],[-126.743421,49.613458],[-126.814218,49.642086],[-126.938551,49.718464],[-126.951264,49.735698],[-126.94005,49.750478],[-126.904858,49.762803],[-126.896848,49.782905],[-126.925839,49.837733],[-126.826077,49.872357],[-126.738124,49.843676],[-126.698127,49.808485],[-126.649912,49.745801],[-126.628183,49.675159],[-126.62578,49.62679],[-126.641231,49.60581]]],[[[-61.801132,49.093903],[-62.219504,49.079123],[-62.55261,49.140877],[-62.799598,49.170694],[-63.041521,49.224954],[-63.565856,49.399336],[-63.625852,49.459927],[-63.676211,49.534341],[-63.776618,49.601986],[-63.884906,49.657693],[-64.44004,49.82776],[-64.485206,49.886981],[-64.372939,49.925945],[-64.243773,49.944394],[-64.131429,49.941655],[-63.760185,49.875251],[-63.291997,49.816856],[-63.088831,49.772699],[-62.858535,49.705493],[-62.633432,49.623948],[-62.132998,49.407062],[-62.043055,49.389802],[-61.817151,49.283555],[-61.735813,49.203767],[-61.696125,49.139016],[-61.745528,49.105737],[-61.801132,49.093903]]],[[[-124.977741,50.029608],[-125.001563,50.020771],[-125.025955,50.134098],[-124.995672,50.175181],[-124.986991,50.195851],[-124.990815,50.217142],[-124.937846,50.16593],[-124.916401,50.131566],[-124.907461,50.083972],[-124.908443,50.071311],[-124.977741,50.029608]]],[[[-125.184136,50.097123],[-125.195092,50.044336],[-125.259558,50.130015],[-125.358467,50.311503],[-125.345289,50.353955],[-125.301158,50.414081],[-125.260953,50.417801],[-125.195996,50.389741],[-125.139488,50.339718],[-125.126491,50.320262],[-125.091429,50.267785],[-125.074014,50.220656],[-125.113004,50.163502],[-125.184136,50.097123]]],[[[-55.536139,50.719695],[-55.569677,50.708688],[-55.600761,50.70905],[-55.629338,50.72078],[-55.63386,50.740185],[-55.604507,50.780699],[-55.527199,50.801241],[-55.469296,50.796383],[-55.472733,50.775919],[-55.503816,50.742123],[-55.536139,50.719695]]],[[[-127.197321,50.640372],[-126.700943,50.515522],[-126.203867,50.453846],[-125.839161,50.380801],[-125.615221,50.358529],[-125.534348,50.342483],[-125.482077,50.316774],[-125.420453,50.254659],[-125.313948,50.106709],[-125.233177,50.012219],[-125.066417,49.848198],[-124.934643,49.731642],[-124.904618,49.685366],[-124.93242,49.670457],[-124.930663,49.643172],[-124.830618,49.530104],[-124.642852,49.428663],[-124.495935,49.380294],[-124.185903,49.300583],[-123.995811,49.224024],[-123.937158,49.170823],[-123.854502,49.119173],[-123.820034,49.083516],[-123.752286,48.951224],[-123.626583,48.824049],[-123.49703,48.5821],[-123.472845,48.602305],[-123.457963,48.674394],[-123.443054,48.690491],[-123.415459,48.698191],[-123.389879,48.670208],[-123.366314,48.606465],[-123.283787,48.455182],[-123.310659,48.411025],[-123.334533,48.406477],[-123.445896,48.427225],[-123.48455,48.400095],[-123.536459,48.344956],[-123.573149,48.322787],[-123.594621,48.333536],[-123.916927,48.386556],[-124.115261,48.436424],[-124.376201,48.515256],[-124.689386,48.597292],[-124.868238,48.653594],[-125.017221,48.711497],[-125.120729,48.760797],[-125.140263,48.802655],[-125.13569,48.822395],[-124.934746,48.95634],[-124.849661,49.028274],[-124.817027,49.083309],[-124.800232,49.141549],[-124.812634,49.212655],[-124.820748,49.207126],[-124.838731,49.139068],[-124.868316,49.078503],[-124.904463,49.031013],[-124.927356,49.014218],[-125.16822,48.991015],[-125.36273,48.99825],[-125.460295,48.941044],[-125.489441,48.933809],[-125.543132,48.952826],[-125.66049,49.029152],[-125.828541,49.091836],[-125.811953,49.107235],[-125.702296,49.139197],[-125.644263,49.185784],[-125.65465,49.193225],[-125.693692,49.190383],[-125.728031,49.19984],[-125.796399,49.260198],[-125.83544,49.276682],[-125.918355,49.249501],[-125.951635,49.248054],[-125.983829,49.287896],[-125.937682,49.379777],[-125.935408,49.401481],[-126.020313,49.367995],[-126.048321,49.379002],[-126.074909,49.408767],[-126.099843,49.421273],[-126.168831,49.415175],[-126.243607,49.442667],[-126.269703,49.431867],[-126.279625,49.392179],[-126.304481,49.382051],[-126.418583,49.449023],[-126.444525,49.451116],[-126.49987,49.399931],[-126.519145,49.396778],[-126.548549,49.418948],[-126.563716,49.543281],[-126.557489,49.578602],[-126.541909,49.590462],[-126.442793,49.619297],[-126.157798,49.650148],[-126.134078,49.672317],[-126.34758,49.660845],[-126.403158,49.677743],[-126.462766,49.720221],[-126.525243,49.719601],[-126.558264,49.733399],[-126.592888,49.764095],[-126.683115,49.876439],[-126.74461,49.904913],[-126.849358,49.922819],[-126.903308,49.944135],[-126.926097,49.93473],[-126.947956,49.902691],[-126.977102,49.882795],[-127.048751,49.87153],[-127.114303,49.879746],[-127.165514,49.910442],[-127.195874,49.949148],[-127.207501,49.992427],[-127.179079,50.050279],[-127.179622,50.07312],[-127.192334,50.099888],[-127.215692,50.121489],[-127.249798,50.137999],[-127.268402,50.129344],[-127.271554,50.095547],[-127.290028,50.070846],[-127.349431,50.051958],[-127.397903,50.085005],[-127.429762,50.130842],[-127.467149,50.16345],[-127.674837,50.163347],[-127.770438,50.121127],[-127.816301,50.117716],[-127.863895,50.127742],[-127.87299,50.150117],[-127.828161,50.211406],[-127.839168,50.29321],[-127.850847,50.313725],[-127.946681,50.326231],[-127.962933,50.345971],[-127.905882,50.44519],[-127.873998,50.463948],[-127.83152,50.471028],[-127.641428,50.47909],[-127.57815,50.46493],[-127.486502,50.404624],[-127.489344,50.427362],[-127.524019,50.495729],[-127.529006,50.536761],[-127.465935,50.583114],[-127.526241,50.596679],[-127.751473,50.607351],[-127.74969,50.57774],[-127.731164,50.535727],[-127.864696,50.498882],[-127.963657,50.492629],[-128.058354,50.498468],[-128.135636,50.520534],[-128.267436,50.609263],[-128.349886,50.696596],[-128.346036,50.744241],[-128.300845,50.794161],[-128.241572,50.828164],[-128.101323,50.857775],[-127.918078,50.860539],[-127.713052,50.820748],[-127.197321,50.640372]]],[[[-55.458728,51.536545],[-55.532445,51.436964],[-55.583423,51.388595],[-55.630785,51.372885],[-55.730701,51.358674],[-55.941179,51.343016],[-56.031096,51.328392],[-56.043938,51.261884],[-56.030657,51.226899],[-55.99991,51.199252],[-55.960842,51.191423],[-55.873561,51.207908],[-55.841108,51.205066],[-55.815089,51.191139],[-55.795478,51.16618],[-55.785349,51.131453],[-55.784703,51.087063],[-55.800025,51.033319],[-55.871416,50.907384],[-55.962005,50.837672],[-56.078096,50.780932],[-56.106544,50.759279],[-56.12122,50.733803],[-56.135638,50.650965],[-56.195737,50.584768],[-56.382419,50.416975],[-56.454352,50.380026],[-56.454791,50.350493],[-56.483937,50.270834],[-56.539334,50.206755],[-56.694002,50.059684],[-56.732346,50.007697],[-56.749554,49.966563],[-56.747177,49.908479],[-56.754101,49.882899],[-56.7895,49.833754],[-56.838851,49.787762],[-56.848618,49.765309],[-56.829187,49.724614],[-56.80924,49.710403],[-56.806889,49.673351],[-56.822185,49.613458],[-56.756788,49.651595],[-56.610648,49.787711],[-56.500938,49.869644],[-56.427584,49.897394],[-56.376398,49.933671],[-56.321828,50.013795],[-56.247052,50.090069],[-56.179408,50.114978],[-56.148402,50.100353],[-56.122176,50.062836],[-56.127421,50.015139],[-56.164163,49.957261],[-56.161295,49.940156],[-56.075021,49.982634],[-55.92702,50.017774],[-55.873328,50.013123],[-55.76473,49.960465],[-55.674451,49.966563],[-55.530042,49.997155],[-55.502912,49.983151],[-55.526993,49.936746],[-55.583682,49.892407],[-55.717627,49.829026],[-56.039985,49.704667],[-56.140185,49.619116],[-56.12122,49.621726],[-56.051612,49.658416],[-55.97849,49.678131],[-55.901854,49.680844],[-55.869814,49.670147],[-55.88232,49.645962],[-55.892035,49.580256],[-56.08732,49.451969],[-56.041225,49.456852],[-55.815244,49.515273],[-55.678095,49.434606],[-55.48976,49.462511],[-55.375943,49.489744],[-55.379146,49.472898],[-55.354497,49.437706],[-55.355349,49.380836],[-55.343851,49.372878],[-55.289953,49.391921],[-55.280186,49.412746],[-55.283028,49.513826],[-55.266363,49.523928],[-55.229543,49.508141],[-55.207012,49.482019],[-55.200294,49.408509],[-55.22497,49.334663],[-55.259309,49.266967],[-55.342508,49.16811],[-55.331914,49.125581],[-55.353179,49.079433],[-55.334756,49.077883],[-55.252333,49.120878],[-55.247372,49.138551],[-55.253831,49.179634],[-55.244529,49.199788],[-55.176136,49.244436],[-55.063197,49.297353],[-55.026171,49.305363],[-55.010383,49.293012],[-55.015913,49.260353],[-54.982633,49.268104],[-54.910545,49.316267],[-54.843649,49.345412],[-54.781896,49.355489],[-54.717636,49.388562],[-54.650871,49.444527],[-54.57904,49.490804],[-54.502197,49.527339],[-54.469176,49.529794],[-54.480623,49.469332],[-54.465455,49.400551],[-54.463466,49.341743],[-54.448247,49.329444],[-54.389078,49.392128],[-54.35616,49.415046],[-54.316731,49.424115],[-54.27079,49.419309],[-53.957735,49.44184],[-53.862443,49.426312],[-53.755008,49.385306],[-53.619461,49.321641],[-53.569567,49.264151],[-53.560084,49.191675],[-53.573417,49.141187],[-53.671137,49.077547],[-53.758057,49.035405],[-53.80932,48.993392],[-53.824926,48.951379],[-53.845235,48.925438],[-53.903242,48.889161],[-54.161288,48.787694],[-54.099535,48.784774],[-53.950707,48.806789],[-53.852883,48.811336],[-53.847767,48.79666],[-53.886834,48.767825],[-53.961507,48.738886],[-53.969568,48.724881],[-53.966003,48.706691],[-53.886137,48.684677],[-53.784076,48.6954],[-53.698035,48.67982],[-53.706329,48.655532],[-53.774593,48.576312],[-53.794644,48.526392],[-53.885543,48.48456],[-54.067754,48.418854],[-54.114469,48.393584],[-54.104237,48.388365],[-53.937012,48.43663],[-53.852728,48.448852],[-53.799346,48.449239],[-53.738885,48.4958],[-53.64442,48.511225],[-53.552023,48.481796],[-53.411334,48.562152],[-53.361078,48.572591],[-53.275451,48.563341],[-53.22026,48.577862],[-53.127372,48.632587],[-53.057273,48.659046],[-53.042648,48.656617],[-53.027585,48.634706],[-53.020737,48.571609],[-53.037326,48.51585],[-53.060218,48.480323],[-53.135718,48.401852],[-53.182123,48.37436],[-53.225118,48.364025],[-53.301185,48.368159],[-53.33431,48.355963],[-53.40552,48.294313],[-53.531197,48.231888],[-53.609745,48.207704],[-53.560188,48.17383],[-53.541843,48.108433],[-53.569412,48.088073],[-53.704313,48.067919],[-53.710153,48.05686],[-53.758212,48.042391],[-53.869575,48.019679],[-53.793584,48.009731],[-53.653024,48.025751],[-53.638219,48.014641],[-53.657624,47.968649],[-53.695012,47.92121],[-53.861668,47.799253],[-53.863658,47.787032],[-53.837742,47.727268],[-53.805341,47.682051],[-53.765136,47.650089],[-53.672351,47.648255],[-53.603751,47.662311],[-53.503757,47.743856],[-53.282737,47.997846],[-53.085436,48.068487],[-52.921002,48.147087],[-52.883278,48.131171],[-52.865992,48.112981],[-52.872013,48.093964],[-52.954953,48.029317],[-52.998258,47.975909],[-53.110809,47.811914],[-53.153856,47.734554],[-53.175534,47.652983],[-53.169824,47.512087],[-53.15768,47.487799],[-53.122437,47.455114],[-53.056859,47.483123],[-52.945032,47.552808],[-52.873201,47.619419],[-52.816926,47.727888],[-52.782406,47.769436],[-52.74494,47.768971],[-52.711402,47.745303],[-52.703289,47.693006],[-52.67218,47.621771],[-52.653654,47.549398],[-52.668511,47.469816],[-52.683626,47.426304],[-52.912424,47.103198],[-52.888136,47.045863],[-52.88209,47.011084],[-52.889195,46.974136],[-52.961723,46.819416],[-53.031951,46.72273],[-53.069778,46.681234],[-53.114814,46.655809],[-53.167008,46.646507],[-53.213697,46.660511],[-53.254883,46.697718],[-53.291315,46.717045],[-53.323019,46.718337],[-53.381749,46.711413],[-53.536107,46.632503],[-53.567784,46.628291],[-53.589798,46.638885],[-53.61636,46.680252],[-53.595173,46.888482],[-53.581323,46.957289],[-53.612174,47.010361],[-53.579644,47.099399],[-53.578455,47.133247],[-53.597369,47.146011],[-53.636385,47.137692],[-53.695373,47.09294],[-53.774335,47.011808],[-53.860014,46.939461],[-54.009592,46.839622],[-54.076022,46.819985],[-54.102403,46.824894],[-54.132814,46.838588],[-54.173742,46.880395],[-54.173277,46.917188],[-54.155242,46.967469],[-54.092688,47.086222],[-53.970499,47.261973],[-53.869109,47.387005],[-53.849524,47.440309],[-53.877869,47.463563],[-53.900839,47.509323],[-53.939751,47.644689],[-53.988999,47.756207],[-54.04729,47.805635],[-54.191829,47.859818],[-54.218416,47.846744],[-54.233893,47.771658],[-54.404684,47.555909],[-54.434501,47.462323],[-54.455895,47.427596],[-54.488141,47.403877],[-54.562556,47.375196],[-54.542402,47.425116],[-54.463233,47.53622],[-54.47393,47.547072],[-54.574493,47.45775],[-54.651155,47.408218],[-54.744663,47.395454],[-54.801507,47.398632],[-54.856646,47.385015],[-55.09043,47.173943],[-55.099215,47.103585],[-55.139678,47.045966],[-55.254916,46.941735],[-55.315714,46.905716],[-55.401264,46.899256],[-55.479295,46.917292],[-55.530713,46.91401],[-55.652334,46.881428],[-55.788527,46.867217],[-55.844699,46.873832],[-55.880615,46.887216],[-55.949913,46.927679],[-55.958181,46.956411],[-55.954512,46.973257],[-55.919217,47.016872],[-55.838369,47.071649],[-55.77181,47.092113],[-55.610088,47.119605],[-55.491517,47.160636],[-55.401212,47.221459],[-55.360905,47.258589],[-55.190838,47.44899],[-54.975631,47.51617],[-54.869514,47.570895],[-54.795358,47.640348],[-54.784609,47.664739],[-54.891011,47.629496],[-54.945943,47.620866],[-55.035007,47.633889],[-55.074566,47.657582],[-55.196599,47.650038],[-55.366279,47.66107],[-55.390774,47.64288],[-55.412684,47.55038],[-55.434647,47.501287],[-55.46064,47.48475],[-55.498648,47.475035],[-55.576137,47.465217],[-55.774678,47.49829],[-55.811368,47.516376],[-55.862063,47.530071],[-56.081378,47.499943],[-56.127266,47.502837],[-56.083677,47.52449],[-55.867075,47.592341],[-55.844389,47.787833],[-55.857929,47.8192],[-55.918442,47.791915],[-56.020141,47.7637],[-56.089646,47.771865],[-56.121427,47.789176],[-56.150572,47.7745],[-56.221266,47.671406],[-56.262969,47.658435],[-56.325755,47.654508],[-56.459546,47.616939],[-56.72232,47.592289],[-56.7741,47.565004],[-56.952487,47.574461],[-57.473437,47.631098],[-57.659808,47.625414],[-57.88411,47.660011],[-57.925554,47.67492],[-58.239308,47.668822],[-58.33323,47.676858],[-58.326925,47.719878],[-58.336847,47.730834],[-58.428056,47.683395],[-58.508904,47.652596],[-58.613135,47.626241],[-58.941151,47.580455],[-59.116955,47.570714],[-59.2193,47.602521],[-59.259736,47.634199],[-59.320663,47.736906],[-59.362418,47.865683],[-59.362056,47.888964],[-59.340868,47.933664],[-59.272061,47.995572],[-58.96084,48.159386],[-58.710597,48.325061],[-58.60497,48.411309],[-58.502651,48.442056],[-58.335555,48.51368],[-58.330233,48.522103],[-58.492238,48.51306],[-58.606133,48.532852],[-58.72256,48.540707],[-58.943787,48.521793],[-59.166822,48.521767],[-59.167701,48.558483],[-59.063418,48.627678],[-58.841778,48.746431],[-58.819195,48.746844],[-58.887098,48.69155],[-58.906451,48.650209],[-58.877253,48.622717],[-58.843405,48.605302],[-58.716462,48.598068],[-58.687342,48.622045],[-58.641609,48.749428],[-58.545594,48.896861],[-58.493737,49.003211],[-58.403665,49.084343],[-58.35868,49.096513],[-58.318735,49.081346],[-58.186107,49.061915],[-58.049655,48.987553],[-58.005549,48.981248],[-57.990512,48.98794],[-58.04056,49.009774],[-58.08185,49.044707],[-58.098903,49.077418],[-58.049061,49.179996],[-57.990667,49.209451],[-57.980099,49.229631],[-58.096862,49.23007],[-58.190939,49.258751],[-58.218896,49.305104],[-58.213392,49.38665],[-58.182696,49.435381],[-58.107404,49.499692],[-58.015833,49.542506],[-57.961211,49.531525],[-57.85605,49.473802],[-57.791325,49.490003],[-57.798844,49.508555],[-57.897468,49.600384],[-57.929068,49.668416],[-57.926149,49.700843],[-57.712518,50.024906],[-57.607951,50.198797],[-57.465557,50.46369],[-57.432587,50.505806],[-57.360447,50.583941],[-57.330552,50.60518],[-57.237431,50.605387],[-57.179579,50.614844],[-57.264148,50.649364],[-57.294404,50.673393],[-57.297996,50.698715],[-57.274896,50.725276],[-57.242134,50.744913],[-57.131649,50.787391],[-57.053282,50.857309],[-57.005662,50.93963],[-57.012742,50.967742],[-57.037314,50.995647],[-57.035919,51.01084],[-56.976362,51.027971],[-56.825156,51.125717],[-56.805494,51.144475],[-56.750226,51.274907],[-56.6824,51.332784],[-56.619045,51.362447],[-56.51794,51.399292],[-56.207365,51.488615],[-56.025567,51.568377],[-55.902112,51.563933],[-55.865835,51.508277],[-55.690445,51.471329],[-55.659569,51.511016],[-55.700651,51.559437],[-55.66639,51.578919],[-55.521618,51.596386],[-55.496452,51.589823],[-55.453199,51.562279],[-55.458728,51.536545]]],[[[-127.924641,51.473861],[-127.941281,51.45717],[-127.981227,51.457221],[-128.044556,51.474016],[-128.091788,51.51112],[-128.148787,51.626694],[-128.142405,51.646589],[-128.122768,51.666795],[-128.031714,51.70842],[-127.998693,51.703821],[-127.986808,51.67359],[-127.932496,51.605481],[-127.916373,51.58543],[-127.916321,51.50621],[-127.924641,51.473861]]],[[[-55.361241,51.88965],[-55.408912,51.888823],[-55.419609,51.900037],[-55.399817,51.938484],[-55.346487,51.982874],[-55.274088,51.995173],[-55.29357,51.929957],[-55.361241,51.88965]]],[[[-79.384296,51.951971],[-79.425612,51.944892],[-79.520619,51.952953],[-79.596893,51.978016],[-79.643764,52.010056],[-79.334868,52.098164],[-79.271306,52.086795],[-79.270195,52.071086],[-79.3166,52.023905],[-79.328951,51.992279],[-79.351533,51.968301],[-79.384296,51.951971]]],[[[-131.029309,51.961635],[-131.047241,51.959697],[-131.080521,51.980419],[-131.103439,52.01388],[-131.117314,52.101006],[-131.107108,52.13656],[-131.098116,52.150616],[-131.010654,52.09527],[-131.029309,51.961635]]],[[[-128.368774,52.400885],[-128.445384,52.3875],[-128.419882,52.441089],[-128.412518,52.47287],[-128.42629,52.502739],[-128.435927,52.560358],[-128.439803,52.69637],[-128.364872,52.781895],[-128.247283,52.784375],[-128.24842,52.741225],[-128.298158,52.548266],[-128.323764,52.458969],[-128.343556,52.426051],[-128.368774,52.400885]]],[[[-128.936879,52.510025],[-128.968712,52.46424],[-129.102321,52.574362],[-129.151026,52.605316],[-129.250503,52.722157],[-129.267789,52.772386],[-129.263526,52.800783],[-129.245956,52.811247],[-129.215053,52.803857],[-129.186166,52.791248],[-128.994007,52.661695],[-128.940315,52.600717],[-128.936879,52.510025]]],[[[-129.313703,52.992192],[-129.32869,52.984208],[-129.370031,52.997592],[-129.409718,53.023741],[-129.477776,53.097741],[-129.500152,53.128902],[-129.514725,53.17939],[-129.501082,53.18833],[-129.47142,53.183033],[-129.450749,53.174687],[-129.343495,53.052783],[-129.313703,52.992192]]],[[[-80.731682,52.747272],[-80.802323,52.733991],[-81.009882,52.760656],[-81.096595,52.779879],[-81.352238,52.85202],[-81.839056,52.957905],[-82.005041,53.010511],[-82.039276,53.049889],[-81.951142,53.132209],[-81.901378,53.165592],[-81.847298,53.186263],[-81.335366,53.224245],[-81.135611,53.205797],[-80.900379,53.037176],[-80.765349,52.92323],[-80.710469,52.831608],[-80.709538,52.787424],[-80.731682,52.747272]]],[[[-131.753735,53.195565],[-131.65232,53.102961],[-131.622167,53.020046],[-131.634673,52.922171],[-131.795257,52.885041],[-131.879697,52.914652],[-131.916335,52.909122],[-131.971784,52.879822],[-131.904398,52.866696],[-131.810063,52.818688],[-131.727303,52.756418],[-131.610617,52.745205],[-131.455226,52.701693],[-131.572816,52.623326],[-131.590593,52.578212],[-131.443883,52.453336],[-131.429957,52.422124],[-131.382983,52.415716],[-131.27361,52.425818],[-131.259734,52.415922],[-131.259941,52.390032],[-131.327069,52.31753],[-131.319938,52.303061],[-131.259166,52.291641],[-131.142636,52.291124],[-131.116151,52.219087],[-131.221546,52.153639],[-131.421869,52.238],[-131.51114,52.322078],[-131.562042,52.399954],[-131.623692,52.443983],[-131.809675,52.541703],[-132.092216,52.752801],[-132.165106,52.78329],[-132.238564,52.866799],[-132.259983,52.906978],[-132.258123,52.933901],[-132.229546,52.948086],[-132.144926,52.957491],[-132.143763,52.999298],[-132.468679,53.071851],[-132.504852,53.086734],[-132.546788,53.13748],[-132.524205,53.144922],[-132.34543,53.136085],[-132.153892,53.160476],[-132.035914,53.179132],[-131.989483,53.201973],[-131.893132,53.231428],[-131.853445,53.229723],[-131.753735,53.195565]]],[[[-128.552432,52.939766],[-128.506569,52.620716],[-128.509928,52.518603],[-128.576823,52.451786],[-128.624004,52.339906],[-128.678936,52.289651],[-128.730922,52.35652],[-128.735573,52.467702],[-128.749423,52.556069],[-128.76645,52.598392],[-128.746322,52.763395],[-128.769654,52.751199],[-128.831201,52.6788],[-128.899827,52.673839],[-129.022868,52.755953],[-129.084699,52.822461],[-129.094854,52.891862],[-129.175934,52.964933],[-129.184306,52.990668],[-129.177691,53.017901],[-129.11108,53.090662],[-129.084105,53.139702],[-129.060334,53.240627],[-129.03323,53.279952],[-128.970236,53.274371],[-128.857711,53.228586],[-128.740379,53.178873],[-128.632686,53.112521],[-128.552432,52.939766]]],[[[-129.167743,53.117895],[-129.173247,53.110764],[-129.276832,53.110919],[-129.305719,53.121151],[-129.323884,53.142131],[-129.331273,53.173964],[-129.314375,53.212308],[-129.253087,53.285482],[-129.251149,53.316694],[-129.238204,53.330078],[-129.195209,53.293233],[-129.177019,53.259153],[-129.167743,53.117895]]],[[[-79.938216,53.304137],[-79.939301,53.274268],[-80.004103,53.280081],[-80.039347,53.297161],[-80.067872,53.324084],[-80.074022,53.344289],[-80.049682,53.364443],[-79.97457,53.352248],[-79.938216,53.304137]]],[[[-129.848606,53.167918],[-129.868553,53.164507],[-129.934389,53.176651],[-130.151404,53.345685],[-130.305684,53.407386],[-130.410742,53.490844],[-130.517558,53.544226],[-130.45198,53.631145],[-130.394826,53.620397],[-130.195019,53.549677],[-130.035391,53.481103],[-129.94475,53.436377],[-129.754839,53.244761],[-129.768947,53.217269],[-129.848606,53.167918]]],[[[-130.236283,53.958567],[-130.267237,53.9226],[-130.337569,53.866273],[-130.384232,53.843949],[-130.407228,53.855524],[-130.470248,53.861777],[-130.537479,53.917846],[-130.589827,53.940274],[-130.624631,53.941411],[-130.641839,53.921153],[-130.646284,53.894023],[-130.637912,53.86002],[-130.6437,53.844517],[-130.663595,53.847566],[-130.683439,53.863457],[-130.703179,53.892215],[-130.707262,53.921489],[-130.695686,53.951255],[-130.646904,53.991278],[-130.494613,54.074167],[-130.448001,54.088999],[-130.397306,54.085691],[-130.315864,54.046934],[-130.298501,54.035668],[-130.236283,53.958567]]],[[[-132.655515,54.127472],[-132.564048,54.068638],[-132.344423,54.106052],[-132.303366,54.098869],[-132.261637,54.076338],[-132.215903,54.028434],[-132.166087,53.955208],[-132.155106,53.875213],[-132.175105,53.846533],[-132.214508,53.814752],[-132.564874,53.687628],[-132.574099,53.67538],[-132.567122,53.66396],[-132.534644,53.651713],[-132.464415,53.653315],[-132.186965,53.684837],[-132.171668,53.706851],[-132.152238,53.807],[-132.114023,53.860175],[-132.110613,53.900276],[-132.135908,53.995852],[-132.13441,54.034273],[-131.94083,54.041973],[-131.819649,54.07732],[-131.695935,54.143155],[-131.667642,54.141347],[-131.685393,54.022801],[-131.70255,53.986395],[-131.821121,53.84152],[-131.889153,53.713983],[-131.922304,53.587892],[-131.928066,53.379223],[-131.957418,53.308684],[-132.011316,53.265173],[-132.347291,53.189208],[-132.520459,53.194066],[-132.674816,53.263209],[-132.747525,53.310493],[-132.692567,53.367854],[-132.654791,53.370541],[-132.546219,53.359276],[-132.4624,53.337882],[-132.425012,53.336951],[-132.431343,53.350439],[-132.670165,53.458598],[-132.845012,53.50769],[-132.897981,53.562674],[-132.899583,53.605385],[-132.91338,53.629182],[-133.052235,53.778113],[-133.079468,53.837024],[-133.097658,53.920275],[-133.097943,54.005593],[-133.063862,54.14406],[-133.048385,54.158917],[-132.991463,54.157832],[-132.893071,54.140778],[-132.655515,54.127472]]],[[[-130.927171,54.479052],[-130.95027,54.47776],[-130.959029,54.498689],[-130.953448,54.541839],[-130.921771,54.61491],[-130.90681,54.631808],[-130.777077,54.618889],[-130.758008,54.613773],[-130.753435,54.599717],[-130.763356,54.576721],[-130.805137,54.543803],[-130.927171,54.479052]]],[[[-130.349428,54.814561],[-130.535489,54.748752],[-130.575332,54.76968],[-130.493244,54.834173],[-130.312531,54.945949],[-130.214088,55.025892],[-130.203907,54.947034],[-130.349428,54.814561]]],[[[-60.994488,56.039319],[-60.982732,56.015134],[-61.137012,56.032549],[-61.191298,56.047871],[-61.195846,56.063917],[-61.188198,56.088954],[-61.157553,56.118384],[-61.086886,56.140837],[-61.048542,56.129236],[-60.966402,56.09885],[-60.955344,56.080402],[-60.994488,56.039319]]],[[[-78.826501,56.145307],[-78.877299,56.131458],[-78.913834,56.132801],[-78.907013,56.166339],[-78.856887,56.232072],[-78.828413,56.289846],[-78.821592,56.339662],[-78.799422,56.383277],[-78.761854,56.420691],[-78.724492,56.439191],[-78.668733,56.438623],[-78.657157,56.31739],[-78.672815,56.260494],[-78.710177,56.2129],[-78.761389,56.174504],[-78.826501,56.145307]]],[[[-79.977593,56.207009],[-80.028598,56.199412],[-80.088853,56.213882],[-80.057485,56.287366],[-80.005085,56.317906],[-79.874447,56.348447],[-79.852175,56.36718],[-79.81042,56.376507],[-79.749184,56.376507],[-79.681022,56.403948],[-79.605833,56.458854],[-79.579736,56.466347],[-79.63255,56.386533],[-79.687947,56.326795],[-79.977593,56.207009]]],[[[-78.93559,56.266075],[-79.017962,56.164996],[-79.083901,56.067896],[-79.175472,55.885065],[-79.22782,55.878502],[-79.273631,55.922478],[-79.14227,56.136419],[-79.136094,56.160267],[-79.142295,56.180705],[-79.182138,56.212176],[-79.221826,56.175951],[-79.407421,55.934881],[-79.455325,55.896175],[-79.495091,55.874755],[-79.526768,55.870673],[-79.60573,55.875659],[-79.764738,55.806775],[-79.497442,56.093166],[-79.494677,56.114973],[-79.544726,56.128357],[-79.564569,56.120968],[-79.78112,55.940565],[-79.904575,55.87106],[-79.987515,55.892144],[-80.008237,55.911058],[-80.000796,55.93209],[-79.79006,56.114146],[-79.596325,56.244474],[-79.51527,56.326536],[-79.482352,56.403818],[-79.467909,56.460352],[-79.468942,56.522623],[-79.458865,56.539727],[-79.447677,56.536549],[-79.435301,56.513037],[-79.432045,56.447459],[-79.47628,56.312842],[-79.511834,56.246593],[-79.554183,56.191971],[-79.536328,56.180085],[-79.458297,56.211065],[-79.392642,56.276462],[-79.339364,56.376301],[-79.305335,56.463065],[-79.272417,56.600421],[-79.261151,56.595667],[-79.245752,56.568279],[-79.210431,56.5489],[-79.155189,56.537609],[-79.123537,56.519961],[-79.100231,56.473918],[-79.077726,56.453635],[-78.994966,56.436426],[-78.963185,56.421724],[-78.940344,56.371443],[-78.942411,56.344933],[-78.931197,56.327932],[-78.906651,56.320387],[-78.93559,56.266075]]],[[[-79.51819,56.656697],[-79.553485,56.64383],[-79.577385,56.644915],[-79.550746,56.733488],[-79.581752,56.764856],[-79.583561,56.780979],[-79.570125,56.795707],[-79.552865,56.798756],[-79.511214,56.771419],[-79.49106,56.742687],[-79.482171,56.714394],[-79.484549,56.686514],[-79.496537,56.667291],[-79.51819,56.656697]]],[[[-79.867006,56.774571],[-79.894472,56.757104],[-79.943668,56.776767],[-79.945709,56.826919],[-79.898167,56.865263],[-79.860546,56.863506],[-79.826646,56.843094],[-79.835018,56.816016],[-79.867006,56.774571]]],[[[-61.743616,57.554575],[-61.659538,57.524965],[-61.637473,57.416082],[-61.795266,57.422438],[-61.975488,57.495406],[-62.011222,57.548477],[-62.007243,57.557624],[-61.983291,57.566771],[-61.937506,57.55411],[-61.893064,57.573127],[-61.848338,57.579328],[-61.743616,57.554575]]],[[[-79.716498,57.515508],[-79.732234,57.507498],[-79.775177,57.514474],[-79.792023,57.448587],[-79.808456,57.442437],[-79.838222,57.483003],[-79.815898,57.51773],[-79.819153,57.541604],[-79.810859,57.559278],[-79.76789,57.598707],[-79.742569,57.607957],[-79.726704,57.604598],[-79.713501,57.55504],[-79.716498,57.515508]]],[[[-69.160062,59.040221],[-69.22086,58.967564],[-69.301708,58.976607],[-69.330827,58.961621],[-69.352816,58.960742],[-69.316332,59.028955],[-69.311526,59.074792],[-69.329975,59.121249],[-69.303206,59.144866],[-69.195177,59.146158],[-69.193807,59.092776],[-69.180681,59.072725],[-69.155205,59.063579],[-69.160062,59.040221]]],[[[-80.285249,59.624113],[-80.317237,59.621064],[-80.324652,59.633208],[-80.298969,59.674187],[-80.256646,59.679148],[-80.209982,59.724624],[-80.167246,59.708862],[-80.183059,59.683489],[-80.240523,59.644938],[-80.285249,59.624113]]],[[[-80.064229,59.770822],[-80.167091,59.763846],[-80.122236,59.82317],[-80.083633,59.851851],[-80.041181,59.870144],[-79.955863,59.876966],[-79.898632,59.853143],[-79.949636,59.809915],[-80.064229,59.770822]]],[[[-64.407019,60.367065],[-64.441952,60.29787],[-64.558173,60.323243],[-64.737955,60.375643],[-64.80901,60.410421],[-64.833815,60.448455],[-64.836425,60.50101],[-64.782552,60.50964],[-64.646307,60.514601],[-64.532541,60.441427],[-64.49983,60.430214],[-64.407019,60.367065]]],[[[-68.233814,60.240923],[-68.324093,60.232887],[-68.365253,60.254049],[-68.367863,60.314743],[-68.338252,60.360605],[-68.234744,60.455587],[-68.141882,60.561988],[-68.087596,60.587852],[-67.978042,60.570386],[-67.914195,60.539819],[-67.847533,60.488815],[-67.818852,60.449489],[-67.844251,60.391663],[-67.922309,60.339883],[-68.012329,60.30464],[-68.233814,60.240923]]],[[[-78.531635,60.728542],[-78.668888,60.716914],[-78.669094,60.731332],[-78.611992,60.772312],[-78.39955,60.808123],[-78.241679,60.818665],[-78.27886,60.783887],[-78.372472,60.756395],[-78.531635,60.728542]]],[[[-64.832626,61.366048],[-64.856811,61.354447],[-64.879781,61.357082],[-64.954247,61.410412],[-65.054396,61.432039],[-65.091474,61.452993],[-65.393884,61.562858],[-65.426802,61.61102],[-65.432125,61.649519],[-65.331614,61.668277],[-65.129766,61.685692],[-64.954428,61.685124],[-64.789632,61.662231],[-64.756352,61.637633],[-64.669587,61.593037],[-64.690955,61.539345],[-64.696407,61.471494],[-64.732322,61.438421],[-64.787616,61.413306],[-64.832626,61.366048]]],[[[-93.043953,61.844081],[-93.084804,61.841704],[-93.176581,61.892708],[-93.196683,61.918546],[-93.07576,61.935005],[-92.993026,61.889711],[-92.999951,61.86749],[-93.043953,61.844081]]],[[[-65.030547,61.87904],[-65.008068,61.870281],[-64.981041,61.880616],[-64.960577,61.871676],[-64.946676,61.843357],[-64.923551,61.82372],[-64.865131,61.798166],[-64.845494,61.779899],[-64.847044,61.761502],[-64.896602,61.733286],[-64.927711,61.732511],[-65.165939,61.797649],[-65.230276,61.864028],[-65.235341,61.897721],[-65.210536,61.928365],[-65.173949,61.943196],[-65.125632,61.942214],[-65.068348,61.92604],[-65.030547,61.87904]]],[[[-79.54532,62.411695],[-79.466229,62.384513],[-79.33603,62.293717],[-79.286473,62.247674],[-79.272003,62.185998],[-79.30642,62.103496],[-79.323938,62.026059],[-79.372256,61.967794],[-79.462173,61.894104],[-79.541858,61.808011],[-79.611311,61.709619],[-79.668775,61.644455],[-79.71425,61.61257],[-79.763343,61.59593],[-79.816104,61.594639],[-79.896358,61.63014],[-80.004155,61.702539],[-80.091979,61.746826],[-80.204918,61.777263],[-80.265173,61.818191],[-80.276154,61.858576],[-80.279849,61.989498],[-80.27512,62.054636],[-80.260057,62.109052],[-80.234684,62.152692],[-80.178563,62.212792],[-80.021596,62.342965],[-79.926744,62.392859],[-79.868039,62.404357],[-79.712545,62.395003],[-79.649551,62.39831],[-79.597642,62.413245],[-79.54532,62.411695]]],[[[-64.823841,62.55874],[-64.631812,62.548017],[-64.515307,62.551789],[-64.465052,62.535925],[-64.418078,62.487401],[-64.478333,62.417896],[-64.546494,62.391386],[-64.657392,62.383583],[-64.837329,62.406243],[-64.901227,62.421048],[-64.956495,62.458358],[-64.930786,62.485024],[-64.841928,62.494119],[-64.827097,62.504971],[-64.84986,62.525434],[-64.848775,62.543315],[-64.823841,62.55874]]],[[[-74.000439,62.618426],[-74.053562,62.609693],[-74.253524,62.621992],[-74.49953,62.668785],[-74.626447,62.712762],[-74.619988,62.726301],[-74.564203,62.733277],[-74.500925,62.726507],[-74.394782,62.695812],[-74.108933,62.680309],[-74.01682,62.662687],[-73.988191,62.636074],[-74.000439,62.618426]]],[[[-70.337071,62.548741],[-70.406369,62.544839],[-70.541477,62.552358],[-70.686558,62.573183],[-70.766063,62.596851],[-70.837557,62.648114],[-70.851251,62.704338],[-70.986153,62.787796],[-71.136944,62.815908],[-71.220143,62.873914],[-71.134877,62.877971],[-71.013696,62.86531],[-70.834611,62.840092],[-70.674337,62.807045],[-70.44262,62.733794],[-70.36681,62.665839],[-70.291492,62.615972],[-70.268832,62.578093],[-70.288547,62.561556],[-70.337071,62.548741]]],[[[-82.000467,62.954194],[-81.960573,62.926237],[-81.948584,62.884017],[-81.964423,62.827638],[-81.990184,62.776324],[-82.02584,62.730073],[-82.113742,62.652248],[-82.388041,62.51913],[-82.490954,62.446602],[-82.568262,62.40322],[-83.015806,62.209898],[-83.071384,62.20039],[-83.129675,62.20411],[-83.252381,62.232946],[-83.376817,62.238114],[-83.698865,62.160263],[-83.71442,62.17357],[-83.728631,62.257182],[-83.760954,62.303536],[-83.903142,62.40247],[-83.912392,62.425518],[-83.910506,62.454173],[-83.899266,62.476445],[-83.739069,62.568843],[-83.376404,62.904946],[-83.289433,62.921586],[-83.110942,62.884121],[-83.026296,62.87208],[-82.965757,62.87394],[-82.706419,62.94453],[-82.459716,62.936159],[-82.234768,62.977448],[-82.129245,62.977707],[-82.047622,62.970575],[-82.000467,62.954194]]],[[[-77.876688,63.470545],[-77.792068,63.427808],[-77.703727,63.430857],[-77.654789,63.395976],[-77.538492,63.287042],[-77.527278,63.268955],[-77.53273,63.23366],[-77.593915,63.188443],[-77.657683,63.16462],[-77.791448,63.129609],[-77.94242,63.114391],[-78.024431,63.138885],[-78.255967,63.239861],[-78.468745,63.35789],[-78.536751,63.423726],[-78.507347,63.451114],[-78.417275,63.469976],[-78.234909,63.489562],[-77.93392,63.478942],[-77.876688,63.470545]]],[[[-76.677588,63.39396],[-76.783163,63.384038],[-76.921863,63.406363],[-77.057229,63.449771],[-77.364755,63.588315],[-77.133684,63.682056],[-76.763629,63.573562],[-76.652447,63.503566],[-76.677588,63.39396]]],[[[-77.642077,63.991908],[-77.714062,63.94571],[-77.92883,63.961988],[-77.957923,63.976044],[-77.965985,63.992942],[-77.931362,64.014801],[-77.710807,64.035627],[-77.617298,64.037229],[-77.569394,64.030407],[-77.563606,64.022087],[-77.642077,63.991908]]],[[[-84.919617,65.261081],[-84.885097,65.248989],[-84.842103,65.255914],[-84.771306,65.305265],[-84.612504,65.447297],[-84.567933,65.460656],[-84.501142,65.458434],[-84.266427,65.367225],[-84.179998,65.316324],[-84.13349,65.245475],[-84.084888,65.217828],[-83.900119,65.181241],[-83.722559,65.168994],[-83.490764,65.131787],[-83.407151,65.103908],[-83.222253,64.967973],[-83.200988,64.959653],[-82.990588,64.904101],[-82.66761,64.780336],[-82.585806,64.761939],[-82.271665,64.721166],[-82.158907,64.690651],[-82.050025,64.644297],[-81.928921,64.559419],[-81.787199,64.42599],[-81.67612,64.212644],[-81.667361,64.170502],[-81.6809,64.145542],[-81.720949,64.118877],[-81.902644,64.03126],[-81.887089,64.016403],[-81.716092,64.021881],[-81.33565,64.075779],[-81.104036,64.037125],[-81.023576,64.031079],[-81.005024,64.033301],[-80.921153,64.10048],[-80.828963,64.089938],[-80.694294,64.024749],[-80.607581,63.972065],[-80.568875,63.931912],[-80.579185,63.909226],[-80.668275,63.901475],[-80.450588,63.862924],[-80.261323,63.801946],[-80.30207,63.762207],[-80.504073,63.673788],[-80.71176,63.596377],[-80.953529,63.48026],[-81.013887,63.462535],[-81.046365,63.461553],[-81.179691,63.483205],[-81.37172,63.53806],[-81.963338,63.664435],[-82.145988,63.691177],[-82.378119,63.706809],[-82.411734,63.736498],[-82.467105,63.926951],[-82.571492,63.960696],[-82.929713,64.000435],[-83.033893,64.023224],[-83.038698,64.061413],[-83.016168,64.12699],[-83.065131,64.15903],[-83.185537,64.157531],[-83.303954,64.143785],[-83.49433,64.09924],[-83.583601,64.05808],[-83.617087,64.013406],[-83.63799,63.91783],[-83.661606,63.872587],[-83.728269,63.813366],[-84.022101,63.659887],[-84.141629,63.61374],[-84.260459,63.600511],[-84.307639,63.585783],[-84.387505,63.529094],[-84.506206,63.390033],[-84.554575,63.350009],[-84.632916,63.309211],[-84.795542,63.246941],[-84.961501,63.197228],[-85.238151,63.139299],[-85.392612,63.119662],[-85.495499,63.139092],[-85.566089,63.270893],[-85.714142,63.657975],[-85.73874,63.684123],[-85.768919,63.700324],[-85.80468,63.706551],[-86.301548,63.656787],[-86.575692,63.662316],[-86.84689,63.575319],[-86.915258,63.568988],[-87.052924,63.571779],[-87.151884,63.585628],[-87.177128,63.595137],[-87.193871,63.632809],[-87.188936,63.67229],[-87.154416,63.714871],[-87.031917,63.830419],[-86.932053,63.901681],[-86.886061,63.923747],[-86.421748,64.051543],[-86.308602,64.093659],[-86.252094,64.136861],[-86.252197,64.181251],[-86.27416,64.238043],[-86.354465,64.376536],[-86.374929,64.502988],[-86.374257,64.565827],[-86.343871,64.662358],[-86.227651,64.896349],[-86.1883,65.010296],[-86.114196,65.417299],[-86.074586,65.53383],[-86.01707,65.640283],[-85.961673,65.704259],[-85.813981,65.831951],[-85.699053,65.883162],[-85.554669,65.918664],[-85.523043,65.91453],[-85.495525,65.899699],[-85.442428,65.845568],[-85.241096,65.795519],[-85.176217,65.746892],[-85.130354,65.692916],[-85.105394,65.622713],[-85.130302,65.592095],[-85.226317,65.545767],[-85.24275,65.526233],[-85.239934,65.510317],[-85.056043,65.437401],[-84.919617,65.261081]]],[[[-84.674774,65.575016],[-84.726993,65.563699],[-84.782933,65.570081],[-84.830269,65.598994],[-84.868923,65.650515],[-84.931141,65.689169],[-85.071959,65.737331],[-85.096351,65.756193],[-85.136297,65.820866],[-85.144048,65.885333],[-85.17415,65.943727],[-85.175674,65.972408],[-85.149629,66.015402],[-85.031393,66.025479],[-84.938583,66.008529],[-84.919824,65.997006],[-84.889438,65.972046],[-84.869543,65.941505],[-84.757353,65.858926],[-84.69175,65.793142],[-84.602634,65.657388],[-84.602221,65.631498],[-84.62625,65.604058],[-84.674774,65.575016]]],[[[-83.725995,65.796708],[-83.597527,65.757485],[-83.469447,65.735213],[-83.263181,65.723275],[-83.233751,65.715033],[-83.233932,65.696559],[-83.263646,65.667827],[-83.332427,65.631033],[-83.381468,65.629999],[-83.495415,65.655941],[-83.537118,65.66917],[-83.583213,65.698652],[-83.606545,65.701365],[-83.636362,65.691494],[-83.644398,65.678524],[-83.630652,65.662349],[-83.649514,65.657776],[-83.787542,65.668886],[-83.809246,65.678343],[-83.798187,65.709995],[-83.701914,65.756219],[-83.786508,65.77043],[-83.813587,65.787509],[-83.938954,65.758467],[-84.00851,65.751491],[-84.118245,65.7718],[-84.12995,65.877426],[-84.143231,65.915977],[-84.193202,65.942125],[-84.222967,65.969772],[-84.270923,65.990623],[-84.370142,66.011811],[-84.450576,66.064392],[-84.467397,66.088266],[-84.456338,66.106249],[-84.407168,66.131003],[-84.12225,66.077827],[-83.950374,66.027495],[-83.786947,65.965793],[-83.701345,65.920111],[-83.693646,65.890397],[-83.714885,65.860761],[-83.765114,65.83115],[-83.725995,65.796708]]],[[[-83.1235,66.282828],[-83.023867,66.270632],[-82.948161,66.271924],[-82.931341,66.2573],[-83.010845,66.208465],[-83.059886,66.199267],[-83.147891,66.234252],[-83.213933,66.27704],[-83.232588,66.302982],[-83.237859,66.331533],[-83.222253,66.336468],[-83.1235,66.282828]]],[[[-108.092725,67.005187],[-107.966453,66.99728],[-107.805533,66.998598],[-107.833361,66.921342],[-107.895166,66.871888],[-107.943922,66.857832],[-107.96511,66.884858],[-108.059729,66.94687],[-108.092725,67.005187]]],[[[-62.681569,67.056321],[-62.805412,67.028829],[-62.871635,67.062574],[-62.8251,67.072134],[-62.756991,67.112545],[-62.664387,67.148253],[-62.625319,67.176933],[-62.469721,67.190059],[-62.416779,67.188483],[-62.396341,67.178329],[-62.484604,67.134249],[-62.681569,67.056321]]],[[[-107.899868,67.401829],[-107.950253,67.318217],[-107.969528,67.32602],[-108.003971,67.365914],[-108.073346,67.38506],[-108.152256,67.429425],[-108.151119,67.524819],[-108.120837,67.56815],[-108.127529,67.628586],[-108.048981,67.664888],[-107.990871,67.622126],[-107.974928,67.549366],[-107.989372,67.513554],[-107.931804,67.476476],[-107.905191,67.467045],[-107.89098,67.437228],[-107.899868,67.401829]]],[[[-109.166406,67.982362],[-109.053906,67.971872],[-108.970501,67.979727],[-108.9096,67.939393],[-108.886061,67.898543],[-108.893865,67.884487],[-108.920168,67.878803],[-109.096229,67.92402],[-109.161548,67.951718],[-109.183614,67.975024],[-109.166406,67.982362]]],[[[-73.621728,67.783822],[-74.109089,67.782504],[-74.374059,67.789609],[-74.48072,67.804906],[-74.573375,67.828651],[-74.67864,67.905571],[-74.746001,67.984817],[-74.749282,68.018433],[-74.731454,68.048767],[-74.706546,68.067112],[-74.379408,68.093467],[-74.111388,68.060575],[-73.88073,68.021947],[-73.58403,68.015332],[-73.493777,68.000656],[-73.459232,67.989881],[-73.435228,67.970012],[-73.401561,67.878699],[-73.398202,67.829943],[-73.407193,67.793046],[-73.621728,67.783822]]],[[[-109.323166,67.990889],[-109.360813,67.987582],[-109.497962,68.04701],[-109.469127,68.098014],[-109.341718,68.045847],[-109.323554,68.013317],[-109.323166,67.990889]]],[[[-86.595536,67.735917],[-86.638169,67.734884],[-86.705942,67.750128],[-86.861101,67.810487],[-86.89252,67.836583],[-86.908281,67.867046],[-86.908436,67.901928],[-86.894561,67.938076],[-86.847045,68.010268],[-86.937737,68.067603],[-86.959803,68.100236],[-86.949183,68.118685],[-86.89867,68.162868],[-86.884846,68.190515],[-86.833971,68.229686],[-86.702092,68.305598],[-86.569904,68.287718],[-86.451979,68.2255],[-86.421128,68.183435],[-86.430326,68.138735],[-86.420042,68.073933],[-86.390329,67.988925],[-86.382448,67.927301],[-86.396452,67.888983],[-86.44694,67.816998],[-86.489651,67.783615],[-86.54603,67.752196],[-86.595536,67.735917]]],[[[-75.675866,68.322497],[-75.153805,68.234027],[-75.103111,68.201884],[-75.078151,68.173152],[-75.063501,68.141216],[-75.062338,68.075406],[-75.07288,68.048999],[-75.123884,67.985256],[-75.127347,67.965257],[-75.086367,67.75142],[-75.090501,67.634787],[-75.127295,67.537325],[-75.201968,67.45919],[-75.314519,67.400434],[-75.400095,67.366689],[-75.780072,67.283542],[-76.04897,67.261993],[-76.332751,67.258117],[-76.693944,67.235819],[-76.858843,67.24047],[-76.944187,67.250314],[-77.004907,67.266954],[-77.07591,67.319612],[-77.157094,67.408341],[-77.224196,67.508179],[-77.304397,67.68512],[-77.305896,67.7061],[-77.228562,67.850122],[-77.125881,67.947093],[-76.944755,68.090986],[-76.740246,68.231236],[-76.688233,68.254413],[-76.595784,68.278933],[-76.364429,68.318724],[-76.172813,68.308802],[-76.08827,68.313815],[-75.982747,68.332315],[-75.866475,68.336811],[-75.675866,68.322497]]],[[[-78.982719,68.19284],[-79.064057,68.181782],[-79.174051,68.234983],[-79.174774,68.264464],[-79.153458,68.335261],[-78.952591,68.353037],[-78.86872,68.310301],[-78.828516,68.268185],[-78.982719,68.19284]]],[[[-104.540694,68.405902],[-104.595987,68.402208],[-104.699444,68.418253],[-104.85114,68.453961],[-104.965241,68.491737],[-105.041748,68.531528],[-105.05136,68.55902],[-104.993999,68.574213],[-104.907286,68.581783],[-104.7004,68.576693],[-104.602008,68.5615],[-104.472119,68.503519],[-104.444524,68.470679],[-104.440493,68.449517],[-104.457133,68.431172],[-104.540694,68.405902]]],[[[-74.88085,68.348697],[-74.959321,68.342237],[-75.072518,68.404145],[-75.310152,68.474477],[-75.40025,68.525482],[-75.403402,68.550131],[-75.396168,68.588837],[-75.370174,68.636069],[-75.287389,68.687746],[-75.199745,68.696117],[-75.074688,68.684697],[-74.983635,68.647593],[-74.884752,68.544654],[-74.818942,68.494424],[-74.798245,68.457941],[-74.830982,68.440732],[-74.827908,68.423782],[-74.81287,68.413344],[-74.81858,68.394069],[-74.844987,68.365957],[-74.88085,68.348697]]],[[[-101.845923,68.586305],[-101.887212,68.584961],[-101.94465,68.602841],[-102.266362,68.663664],[-102.308168,68.681984],[-102.270496,68.707589],[-102.153346,68.740456],[-102.074384,68.774045],[-102.013354,68.825412],[-101.828353,68.798953],[-101.759313,68.774614],[-101.732958,68.753426],[-101.721641,68.724126],[-101.732028,68.652141],[-101.794298,68.636844],[-101.845923,68.586305]]],[[[-100.217236,68.806705],[-100.248759,68.775027],[-100.287956,68.766087],[-100.365703,68.728828],[-100.397329,68.723816],[-100.442597,68.747535],[-100.480683,68.786189],[-100.496909,68.792235],[-100.521042,68.790659],[-100.57339,68.766061],[-100.596542,68.766397],[-100.615972,68.782934],[-100.625377,68.815903],[-100.624679,68.865306],[-100.5999,68.941374],[-100.59835,68.969072],[-100.611579,68.990208],[-100.600624,69.009431],[-100.565484,69.026795],[-100.520293,69.035063],[-100.413969,69.028087],[-100.329943,68.997546],[-100.288938,68.957652],[-100.206901,68.926181],[-100.178479,68.903908],[-100.217236,68.806705]]],[[[-99.994692,69.013514],[-100.018024,68.953983],[-100.141298,68.969899],[-100.195687,68.991448],[-100.242015,69.040386],[-100.247364,69.052788],[-100.23708,69.071495],[-100.186954,69.114025],[-100.153132,69.129476],[-100.072801,69.111492],[-100.035335,69.086584],[-100.005622,69.047104],[-99.994692,69.013514]]],[[[-90.492559,69.221098],[-90.574414,69.209419],[-90.625755,69.250915],[-90.667432,69.259494],[-90.68588,69.287141],[-90.77156,69.292567],[-90.765695,69.335975],[-90.742363,69.357317],[-90.662781,69.374164],[-90.599684,69.367808],[-90.539843,69.324606],[-90.510646,69.290448],[-90.485376,69.246626],[-90.492559,69.221098]]],[[[-79.210663,68.845462],[-79.279729,68.838744],[-79.361378,68.857658],[-79.390497,68.890162],[-79.405768,68.923054],[-79.391169,68.939927],[-79.354737,68.955895],[-79.305231,68.992327],[-79.242677,69.049274],[-79.144983,69.087463],[-78.930474,69.122913],[-78.899985,69.135419],[-78.804125,69.235102],[-78.771827,69.252207],[-78.662015,69.262336],[-78.650207,69.275203],[-78.689042,69.29975],[-78.689042,69.325123],[-78.650207,69.351219],[-78.59667,69.370598],[-78.457893,69.389512],[-78.332577,69.386049],[-78.300486,69.378711],[-78.272478,69.361245],[-78.234082,69.314581],[-78.228966,69.303987],[-78.286999,69.262698],[-78.438953,69.199187],[-78.532927,69.146064],[-78.551737,69.128649],[-78.560316,69.106273],[-78.595662,69.07904],[-78.705345,69.013669],[-78.779217,68.950469],[-78.852701,68.91569],[-79.053619,68.882928],[-79.210663,68.845462]]],[[[-90.199812,69.419071],[-90.177384,69.357059],[-90.267275,69.272878],[-90.295465,69.257788],[-90.330295,69.252207],[-90.364039,69.262594],[-90.464705,69.328688],[-90.492042,69.369875],[-90.455119,69.390493],[-90.377243,69.416228],[-90.322078,69.428734],[-90.252832,69.417934],[-90.228544,69.436046],[-90.199812,69.419071]]],[[[-76.995346,69.143739],[-77.121644,69.132137],[-77.215049,69.138106],[-77.275562,69.16167],[-77.321941,69.19358],[-77.37938,69.274015],[-77.358063,69.311532],[-77.3515,69.37866],[-77.340907,69.403878],[-77.318686,69.416332],[-77.187531,69.440103],[-77.109164,69.437416],[-76.99408,69.411784],[-76.745698,69.403981],[-76.684099,69.380417],[-76.668855,69.366154],[-76.669992,69.348584],[-76.687458,69.327707],[-76.810293,69.266754],[-76.869308,69.224845],[-76.911217,69.174641],[-76.995346,69.143739]]],[[[-101.171726,69.397082],[-101.253504,69.388478],[-101.268516,69.390597],[-101.261514,69.41783],[-101.267612,69.431473],[-101.289522,69.44124],[-101.21777,69.462944],[-101.207305,69.479842],[-101.230146,69.492813],[-101.328486,69.517411],[-101.356495,69.539683],[-101.351302,69.559217],[-101.312906,69.576064],[-101.244874,69.573531],[-101.098346,69.540769],[-101.03114,69.495448],[-101.000625,69.46191],[-101.04915,69.456949],[-101.086848,69.443358],[-101.126948,69.414678],[-101.171726,69.397082]]],[[[-95.513673,69.573635],[-95.380917,69.50661],[-95.382079,69.474054],[-95.399417,69.419794],[-95.437451,69.378453],[-95.496233,69.350083],[-95.578527,69.33582],[-95.684361,69.335716],[-95.730146,69.34755],[-95.69591,69.389563],[-95.670176,69.402017],[-95.665835,69.438966],[-95.682836,69.500306],[-95.704101,69.53803],[-95.763607,69.55963],[-95.806188,69.560509],[-95.817763,69.540588],[-95.798333,69.499789],[-95.811821,69.447027],[-95.858226,69.382225],[-95.893444,69.351736],[-95.95605,69.367136],[-95.985944,69.391915],[-95.977909,69.432713],[-95.994781,69.469662],[-95.978839,69.508833],[-95.936206,69.56702],[-95.875822,69.605984],[-95.797739,69.625725],[-95.706633,69.624329],[-95.602505,69.601798],[-95.513673,69.573635]]],[[[-139.043135,69.57689],[-139.12574,69.539322],[-139.256998,69.578544],[-139.291389,69.597871],[-139.139615,69.649599],[-139.072668,69.647635],[-138.93154,69.61694],[-138.878856,69.589706],[-139.043135,69.57689]]],[[[-67.914712,69.540949],[-67.940266,69.534877],[-68.202343,69.580404],[-68.221412,69.616733],[-68.09328,69.657041],[-67.9891,69.678745],[-67.908821,69.681845],[-67.829084,69.675024],[-67.754618,69.631461],[-67.844897,69.591747],[-67.914712,69.540949]]],[[[-78.029082,69.714892],[-77.977819,69.664895],[-77.969163,69.638954],[-78.039986,69.608413],[-78.307204,69.551827],[-78.470088,69.502528],[-78.552409,69.491573],[-78.662041,69.502631],[-78.79534,69.479713],[-78.848205,69.482788],[-78.789294,69.523147],[-78.578557,69.638799],[-78.401876,69.650633],[-78.344179,69.674817],[-78.2955,69.667117],[-78.267336,69.687142],[-78.262453,69.71683],[-78.200751,69.739516],[-78.145199,69.739206],[-78.029082,69.714892]]],[[[-79.43065,69.787782],[-79.390291,69.730421],[-79.364969,69.712334],[-79.402435,69.685152],[-79.552839,69.630841],[-79.881708,69.608671],[-80.047512,69.634303],[-79.971134,69.556323],[-79.954494,69.523483],[-79.977852,69.509685],[-80.046866,69.513845],[-80.161484,69.535963],[-80.227346,69.562421],[-80.244502,69.593168],[-80.268635,69.59999],[-80.299693,69.582885],[-80.329613,69.586761],[-80.397826,69.632598],[-80.448056,69.649702],[-80.778242,69.676988],[-80.794779,69.689235],[-80.777545,69.710371],[-80.726592,69.740446],[-80.652513,69.750575],[-80.465936,69.737087],[-80.450691,69.744787],[-80.438315,69.782718],[-80.424233,69.7976],[-80.294938,69.793776],[-80.213651,69.801941],[-80.168822,69.782433],[-80.124613,69.737242],[-80.061774,69.745511],[-79.97085,69.738948],[-79.86959,69.755536],[-79.714819,69.795688],[-79.593973,69.81052],[-79.43065,69.787782]]],[[[-97.439473,69.6427],[-97.408648,69.630737],[-97.350693,69.640866],[-97.305735,69.673474],[-97.278449,69.679623],[-97.236101,69.673474],[-97.096342,69.614976],[-96.989061,69.553636],[-96.875218,69.510021],[-96.694532,69.471109],[-96.299956,69.344398],[-96.183736,69.258667],[-96.060979,69.125445],[-95.951373,69.023746],[-95.854893,68.953569],[-95.751359,68.897655],[-95.585478,68.835127],[-95.437528,68.880602],[-95.374173,68.892126],[-95.319551,68.873212],[-95.267771,68.826083],[-95.29516,68.805051],[-95.359497,68.77836],[-95.465589,68.747277],[-95.61421,68.745003],[-95.685627,68.735856],[-95.802131,68.686454],[-95.894632,68.627233],[-96.024004,68.607285],[-96.267607,68.507886],[-96.401578,68.470705],[-96.598827,68.460834],[-97.008388,68.538685],[-97.26367,68.527755],[-97.472029,68.543723],[-97.704806,68.625941],[-97.885363,68.672449],[-98.235032,68.73937],[-98.257976,68.749266],[-98.273066,68.771875],[-98.280197,68.80717],[-98.296036,68.830786],[-98.320556,68.842723],[-98.375592,68.84169],[-98.431816,68.818358],[-98.539664,68.798256],[-98.703815,68.802777],[-98.775257,68.81673],[-98.829621,68.838641],[-98.859128,68.86435],[-98.863727,68.89378],[-98.878869,68.916466],[-98.9045,68.932434],[-98.964006,68.932847],[-99.057385,68.917654],[-99.093843,68.898896],[-99.073379,68.876571],[-99.090639,68.863342],[-99.254014,68.863187],[-99.317989,68.876261],[-99.44085,68.917654],[-99.494697,68.95959],[-99.564046,69.034133],[-99.55738,69.054287],[-99.5133,69.099607],[-99.455733,69.131181],[-99.085471,69.149733],[-98.9122,69.167587],[-98.723633,69.219134],[-98.503543,69.308276],[-98.455974,69.334683],[-98.450368,69.354062],[-98.466594,69.374991],[-98.535375,69.426305],[-98.558526,69.461445],[-98.536719,69.478033],[-98.448404,69.479532],[-98.494861,69.49935],[-98.534393,69.527436],[-98.548243,69.544954],[-98.546021,69.572911],[-98.475818,69.579061],[-98.389338,69.565056],[-98.22232,69.484545],[-98.155734,69.468835],[-98.041349,69.456639],[-98.162969,69.512191],[-98.288827,69.629006],[-98.304511,69.669288],[-98.301229,69.691715],[-98.268208,69.754451],[-98.238649,69.78003],[-98.200512,69.79698],[-98.080752,69.83305],[-97.888955,69.858269],[-97.790744,69.861602],[-97.691189,69.841267],[-97.604347,69.8022],[-97.411361,69.738483],[-97.382552,69.712386],[-97.385704,69.700242],[-97.460144,69.682724],[-97.469446,69.666807],[-97.439473,69.6427]]],[[[-86.913036,70.11324],[-86.798779,70.105282],[-86.691189,70.115049],[-86.612744,70.105695],[-86.563393,70.077222],[-86.530888,70.047663],[-86.51523,70.017044],[-86.557657,69.995289],[-86.734339,69.976323],[-86.854926,69.985754],[-86.983987,70.011127],[-87.043803,69.999862],[-87.190796,70.018569],[-87.263919,70.043968],[-87.323243,70.080115],[-87.323166,70.102233],[-87.168136,70.127244],[-87.107262,70.146675],[-86.913036,70.11324]]],[[[-100.308342,70.495801],[-100.321235,70.487687],[-100.537269,70.524998],[-100.620674,70.546909],[-100.647753,70.563135],[-100.666925,70.596234],[-100.678294,70.646179],[-100.635299,70.670312],[-100.53794,70.668581],[-100.433916,70.649435],[-100.276122,70.594606],[-100.32108,70.578354],[-100.323225,70.542413],[-100.3055,70.50841],[-100.308342,70.495801]]],[[[-74.708871,45.003868],[-74.762459,44.999062],[-74.85664,45.00392],[-74.99614,44.970124],[-75.179385,44.899379],[-75.401258,44.77228],[-75.791957,44.497052],[-75.81932,44.46801],[-75.875932,44.416979],[-76.020238,44.362615],[-76.15116,44.303937],[-76.185783,44.242235],[-76.248544,44.214123],[-76.464604,44.057595],[-76.586121,43.924296],[-76.696502,43.784795],[-76.819957,43.628784],[-77.073352,43.626846],[-77.266725,43.627492],[-77.596524,43.628603],[-77.879246,43.629559],[-78.214781,43.63067],[-78.458255,43.631497],[-78.720435,43.624934],[-78.845569,43.583335],[-79.002485,43.527163],[-79.171854,43.466572],[-79.083048,43.331412],[-79.059226,43.278056],[-79.066047,43.106103],[-79.048012,43.087293],[-79.029072,43.061765],[-79.026179,43.017323],[-79.011683,42.99704],[-78.980755,42.980607],[-78.946003,42.961306],[-78.920862,42.935209],[-78.915074,42.909138],[-78.939233,42.863741],[-79.036695,42.802323],[-79.173741,42.748528],[-79.44623,42.651454],[-79.762025,42.53898],[-80.035729,42.441467],[-80.247577,42.365993],[-80.682641,42.29977],[-81.028201,42.247163],[-81.277643,42.209181],[-81.507345,42.103477],[-81.760921,41.986817],[-81.97419,41.888735],[-82.213323,41.77869],[-82.439071,41.674873],[-82.690012,41.675183],[-82.866203,41.753007],[-83.029965,41.832977],[-83.141948,41.975862],[-83.149674,42.141924],[-83.109521,42.250703],[-83.073141,42.300312],[-83.003688,42.331732],[-82.867753,42.385217],[-82.744195,42.493479],[-82.645131,42.558049],[-82.545318,42.624685],[-82.488344,42.73951],[-82.417238,43.017375],[-82.408194,43.072643],[-82.304764,43.263225],[-82.190378,43.474091],[-82.137849,43.570881],[-82.196605,43.822209],[-82.240789,44.01535],[-82.281225,44.192238],[-82.326804,44.391554],[-82.368274,44.57299],[-82.407393,44.743936],[-82.44659,44.915502],[-82.485063,45.08376],[-82.515242,45.204373],[-82.55108,45.347362],[-82.760421,45.447717],[-82.919352,45.517971],[-83.179284,45.63277],[-83.397307,45.729044],[-83.592696,45.817152],[-83.469473,45.994686],[-83.480144,46.023754],[-83.524767,46.058713],[-83.61595,46.116824],[-83.669306,46.122741],[-83.763202,46.109072],[-83.913038,46.072899],[-83.977788,46.084913],[-84.029207,46.147003],[-84.088402,46.226533],[-84.107781,46.288622],[-84.11517,46.370813],[-84.150465,46.444788],[-84.128141,46.483597],[-84.12318,46.50295],[-84.125221,46.527238],[-84.149483,46.542767],[-84.192168,46.549562],[-84.336707,46.518505],[-84.401716,46.515611],[-84.440499,46.498144],[-84.501581,46.461867],[-84.561758,46.457371],[-84.665783,46.543258],[-84.779419,46.637283],[-84.827065,46.766861],[-84.875977,46.899902],[-85.070047,46.979923],[-85.264118,47.059944],[-85.458189,47.139965],[-85.65226,47.219986],[-85.846331,47.300007],[-86.040402,47.380028],[-86.234498,47.460049],[-86.428569,47.54007],[-86.495568,47.56658],[-86.672172,47.636421],[-86.921821,47.735226],[-87.208031,47.848501],[-87.49424,47.96175],[-87.743889,48.060529],[-87.920494,48.130396],[-87.987466,48.156906],[-88.16066,48.225403],[-88.378192,48.303098],[-88.611769,48.264005],[-88.898703,48.155717],[-89.062594,48.093809],[-89.185636,48.047429],[-89.273176,48.019963],[-89.455645,47.996218],[-89.550575,47.999913],[-89.775367,48.015312],[-89.901044,47.995469],[-89.993649,48.015312],[-90.039951,48.078151],[-90.091782,48.118097],[-90.32014,48.099183],[-90.6071,48.112593],[-90.744404,48.104609],[-90.797321,48.131068],[-90.840315,48.200521],[-90.916047,48.209151],[-91.043481,48.193699],[-91.220654,48.104609],[-91.387233,48.05854],[-91.51831,48.058307],[-91.647294,48.104609],[-91.858393,48.197575],[-92.005154,48.301832],[-92.171784,48.338393],[-92.298676,48.328885],[-92.34844,48.276588],[-92.414586,48.276588],[-92.460888,48.365885],[-92.500576,48.435338],[-92.583258,48.465104],[-92.732655,48.531818],[-92.836731,48.567785],[-92.996256,48.611813],[-93.051705,48.619875],[-93.155213,48.625353],[-93.257946,48.628867],[-93.377887,48.616542],[-93.376827,48.617214],[-93.381581,48.616154],[-93.377887,48.616542],[-93.463618,48.561274],[-93.564283,48.536908],[-93.707737,48.525462],[-93.803545,48.548949],[-93.85163,48.607292],[-94.055184,48.65902],[-94.414154,48.704108],[-94.620886,48.742607],[-94.675353,48.774439],[-94.705092,48.80852],[-94.71256,48.863013],[-94.712766,48.863426],[-94.803458,49.002952],[-94.842603,49.119173],[-94.860406,49.258596],[-94.854334,49.304588],[-94.874798,49.319031],[-94.939342,49.349417],[-95.155297,49.369674],[-95.158243,49.203095],[-95.162041,48.991764],[-95.397918,48.993186],[-95.824301,48.993186],[-96.250683,48.993186],[-96.677065,48.993186],[-97.103447,48.993186],[-97.529829,48.993186],[-97.956212,48.993186],[-98.382594,48.993186],[-98.808976,48.99316],[-99.235358,48.993134],[-99.661741,48.993134],[-100.088123,48.993134],[-100.514505,48.993134],[-100.940887,48.993134],[-101.36727,48.993134],[-101.793652,48.993134],[-102.220034,48.993134],[-102.646416,48.993134],[-103.072799,48.993134],[-103.499181,48.993134],[-103.925563,48.993134],[-104.351945,48.993134],[-104.778328,48.993134],[-105.20471,48.993134],[-105.631092,48.993134],[-106.057474,48.993134],[-106.483857,48.993134],[-106.910239,48.993134],[-107.336621,48.993134],[-107.763003,48.993134],[-108.189386,48.993134],[-108.615768,48.993134],[-109.04215,48.993108],[-109.468532,48.993082],[-109.894915,48.993082],[-110.321297,48.993082],[-110.747679,48.993082],[-111.174061,48.993082],[-111.600443,48.993082],[-112.026826,48.993082],[-112.453208,48.993082],[-112.87959,48.993082],[-113.305972,48.993082],[-113.732355,48.993082],[-114.158737,48.993082],[-114.585119,48.993082],[-115.011501,48.993082],[-115.437884,48.993082],[-115.864266,48.993082],[-116.290648,48.993082],[-116.71703,48.993082],[-117.143413,48.993082],[-117.569795,48.993082],[-117.996177,48.993082],[-118.422559,48.993082],[-118.848942,48.993082],[-119.275324,48.993056],[-119.701706,48.993031],[-120.128088,48.993031],[-120.554471,48.993031],[-120.980853,48.993031],[-121.407235,48.993031],[-121.833617,48.993031],[-122.26,48.993031],[-122.686382,48.993031],[-122.788779,48.993031],[-122.826709,49.028429],[-122.924171,49.074679],[-122.962722,49.074628],[-123.002306,49.060882],[-123.02724,49.038506],[-123.049202,48.993031],[-123.063258,48.977734],[-123.077314,48.980215],[-123.086435,48.993031],[-123.117647,49.056334],[-123.109328,49.084601],[-123.077288,49.118346],[-123.079562,49.130593],[-123.150152,49.121033],[-123.181881,49.129508],[-123.196351,49.147698],[-123.19108,49.219528],[-123.229424,49.260508],[-123.183948,49.277716],[-123.067263,49.291565],[-122.947632,49.293271],[-122.913009,49.323191],[-122.879109,49.398949],[-122.964453,49.329367],[-123.015535,49.322158],[-123.174285,49.348203],[-123.276759,49.343965],[-123.290505,49.359468],[-123.286294,49.374971],[-123.264073,49.390474],[-123.247717,49.443029],[-123.223016,49.590462],[-123.190666,49.644309],[-123.179608,49.673557],[-123.187488,49.680327],[-123.324999,49.577698],[-123.336678,49.545142],[-123.322415,49.517004],[-123.335644,49.459204],[-123.398974,49.441892],[-123.436982,49.451297],[-123.508192,49.402463],[-123.530568,49.397295],[-123.85892,49.482846],[-123.891838,49.494705],[-123.948398,49.534703],[-124.0286,49.602864],[-124.053792,49.661724],[-124.024026,49.711333],[-123.992607,49.736163],[-123.959534,49.736163],[-123.922766,49.717534],[-123.847112,49.63666],[-123.817191,49.586586],[-123.739057,49.593562],[-123.612759,49.657589],[-123.582477,49.681257],[-123.708309,49.656918],[-123.762673,49.65852],[-123.818018,49.685133],[-123.874397,49.736809],[-123.903801,49.795462],[-123.904266,49.981136],[-123.884965,50.017051],[-123.823806,50.043716],[-123.784661,50.088002],[-123.78771,50.106761],[-123.82546,50.144226],[-123.880107,50.17363],[-123.933567,50.188306],[-123.945891,50.183914],[-123.863054,50.102575],[-123.865741,50.072086],[-123.957441,49.992763],[-123.971394,49.969508],[-123.972117,49.892045],[-123.984933,49.875561],[-124.058779,49.85365],[-124.141616,49.792672],[-124.281272,49.772104],[-124.412607,49.778151],[-124.483249,49.808226],[-124.702279,49.957674],[-124.782378,50.0201],[-124.784264,50.07281],[-124.934177,50.25807],[-124.933351,50.297912],[-124.985595,50.355609],[-125.043602,50.363748],[-125.056702,50.418628],[-124.936839,50.537381],[-124.862657,50.637297],[-124.85426,50.668639],[-124.857541,50.717344],[-124.875421,50.825632],[-124.859867,50.872399],[-124.933583,50.810594],[-124.949267,50.764705],[-124.931077,50.718403],[-124.942549,50.665693],[-124.985415,50.591951],[-125.058769,50.513868],[-125.209871,50.476299],[-125.476315,50.497176],[-125.507192,50.507253],[-125.525976,50.534151],[-125.539334,50.649028],[-125.555561,50.634842],[-125.585817,50.573658],[-125.610131,50.48604],[-125.641318,50.466222],[-125.697542,50.464569],[-125.741234,50.478573],[-125.772421,50.508183],[-125.8396,50.510664],[-125.965045,50.487358],[-126.024137,50.496711],[-126.094339,50.49759],[-126.236553,50.523273],[-126.404475,50.529888],[-126.449951,50.549731],[-126.44747,50.587765],[-126.416128,50.606963],[-126.238904,50.62381],[-126.067235,50.664298],[-125.897607,50.6844],[-125.904118,50.704916],[-125.980729,50.711375],[-126.370317,50.666727],[-126.492945,50.672101],[-126.514339,50.679388],[-126.517337,50.724449],[-126.472223,50.767289],[-126.397137,50.80708],[-126.374606,50.837362],[-126.418195,50.850204],[-126.488165,50.841858],[-126.521755,50.866043],[-126.4846,50.960507],[-126.517337,51.056832],[-126.562864,50.965468],[-126.6318,50.915135],[-126.960384,50.89369],[-127.01405,50.866818],[-127.057588,50.867541],[-127.267472,50.916066],[-127.356949,50.945547],[-127.441234,50.989394],[-127.590863,51.087528],[-127.708117,51.151193],[-127.714318,51.268654],[-127.689177,51.343481],[-127.632721,51.427301],[-127.419659,51.608065],[-127.346588,51.642378],[-127.280649,51.654108],[-126.968136,51.669921],[-126.735411,51.692607],[-126.691434,51.703408],[-127.034101,51.716714],[-127.338733,51.707387],[-127.442706,51.678965],[-127.575747,51.562951],[-127.609596,51.514039],[-127.644865,51.47846],[-127.668688,51.477582],[-127.714059,51.490191],[-127.728736,51.505539],[-127.74752,51.543572],[-127.818963,51.603931],[-127.850537,51.673177],[-127.869115,51.775238],[-127.863223,51.820817],[-127.82997,51.879004],[-127.72765,51.993209],[-127.858805,51.990289],[-127.843328,52.086485],[-127.795346,52.191027],[-127.673338,52.252909],[-127.549728,52.297609],[-127.437926,52.356133],[-127.242254,52.395097],[-127.175746,52.314843],[-127.007978,52.290659],[-126.959454,52.254537],[-126.899975,52.188339],[-126.826336,52.125139],[-126.738563,52.064962],[-126.713991,52.060699],[-126.752645,52.112375],[-126.895221,52.225469],[-126.901396,52.265311],[-126.938164,52.30859],[-127.127067,52.370964],[-127.160579,52.39489],[-127.193988,52.457677],[-127.20825,52.498243],[-127.187115,52.537672],[-126.995189,52.657923],[-126.951315,52.721227],[-126.951367,52.751018],[-126.966405,52.78466],[-127.008237,52.842563],[-127.019347,52.84246],[-127.006377,52.75461],[-127.013224,52.719986],[-127.034876,52.681746],[-127.066192,52.652704],[-127.107068,52.632808],[-127.519265,52.359285],[-127.560322,52.343214],[-127.713388,52.318512],[-127.791884,52.289367],[-127.83431,52.250997],[-127.902187,52.1509],[-127.995386,51.950524],[-128.102253,51.788415],[-128.193565,51.998273],[-128.357612,52.158884],[-128.037476,52.318151],[-128.029131,52.34249],[-128.060317,52.42755],[-128.051558,52.453336],[-128.021302,52.490672],[-127.940221,52.545165],[-127.943374,52.550746],[-128.038252,52.531161],[-128.183979,52.407913],[-128.240978,52.368277],[-128.271545,52.363006],[-128.275162,52.435508],[-128.196769,52.6233],[-128.13238,52.805821],[-128.108816,52.85804],[-128.053264,52.910673],[-128.105948,52.9069],[-128.365027,52.825768],[-128.451973,52.876618],[-128.524682,53.140684],[-128.652323,53.24383],[-128.868537,53.328115],[-129.080927,53.36726],[-129.129529,53.442268],[-129.171567,53.53358],[-129.114465,53.641119],[-129.021421,53.692149],[-128.935613,53.715171],[-128.854584,53.704552],[-128.850424,53.6652],[-128.905615,53.559315],[-128.833035,53.549393],[-128.542123,53.420667],[-128.478612,53.41028],[-128.358051,53.459812],[-128.291078,53.457874],[-128.13269,53.417773],[-128.079179,53.36943],[-127.927845,53.274707],[-127.950066,53.32982],[-128.115146,53.445937],[-128.207233,53.483196],[-128.369162,53.490379],[-128.469646,53.470923],[-128.511763,53.476555],[-128.600336,53.506088],[-128.675551,53.554613],[-128.750792,53.660859],[-128.767897,53.71021],[-128.763659,53.746901],[-128.745934,53.78018],[-128.714722,53.809997],[-128.652865,53.83165],[-128.560442,53.845086],[-128.532123,53.858108],[-128.650901,53.918828],[-128.7048,53.918621],[-128.890163,53.829764],[-128.927835,53.822813],[-128.94401,53.840021],[-128.959358,53.841468],[-129.01398,53.79744],[-129.056406,53.777803],[-129.208128,53.641584],[-129.231745,53.57642],[-129.240323,53.479062],[-129.257841,53.41798],[-129.284299,53.393175],[-129.462402,53.346563],[-129.563714,53.251479],[-129.68673,53.333541],[-129.821786,53.412761],[-129.911884,53.551357],[-130.07438,53.575645],[-130.263258,53.654141],[-130.335243,53.723905],[-130.232846,53.867436],[-130.085956,53.975775],[-130.063503,54.105638],[-130.043297,54.133544],[-129.79078,54.16579],[-129.626036,54.230256],[-129.794966,54.236121],[-129.898422,54.226354],[-130.084251,54.181396],[-130.29031,54.270383],[-130.39679,54.35167],[-130.43025,54.42102],[-130.393457,54.479621],[-130.388625,54.539359],[-130.369995,54.620026],[-130.350488,54.655321],[-130.307234,54.700305],[-130.218945,54.730251],[-130.140862,54.822752],[-130.108642,54.887244],[-129.948523,55.081031],[-129.890154,55.164643],[-129.780755,55.28045],[-129.560665,55.462532],[-129.630118,55.452223],[-129.666628,55.436668],[-129.701328,55.43858],[-129.734195,55.457985],[-129.765459,55.498267],[-129.795173,55.559555],[-129.811916,55.532631],[-129.815637,55.4176],[-129.837728,55.319104],[-129.877157,55.250633],[-129.985187,55.111468],[-130.048465,55.05726],[-130.091795,55.107748],[-130.058412,55.194771],[-129.995832,55.264069],[-129.985135,55.358843],[-130.044046,55.471912],[-130.079987,55.562914],[-130.092958,55.63185],[-130.094689,55.694792],[-130.085129,55.751688],[-130.06035,55.813699],[-130.020301,55.880775],[-130.025081,55.888217],[-130.014074,55.950539],[-130.022885,56.014514],[-130.055958,56.065234],[-130.097867,56.109289],[-130.214708,56.08283],[-130.413145,56.122518],[-130.477095,56.230573],[-130.649074,56.263672],[-130.741678,56.340825],[-130.93022,56.3786],[-131.082924,56.404826],[-131.199402,56.449216],[-131.335802,56.501229],[-131.471892,56.556729],[-131.575116,56.598819],[-131.651519,56.596081],[-131.824274,56.589983],[-131.833084,56.684809],[-131.886001,56.742118],[-131.866157,56.792839],[-131.962508,56.818703],[-132.104282,56.856788],[-132.062915,56.953371],[-132.031522,57.026545],[-132.157018,57.048198],[-132.337989,57.079462],[-132.279414,57.145349],[-132.232156,57.198524],[-132.301661,57.276323],[-132.442479,57.406729],[-132.550483,57.499901],[-132.691508,57.645112],[-132.815531,57.772701],[-132.916843,57.876984],[-133.001411,57.94897],[-133.120422,58.077747],[-133.275296,58.222855],[-133.422574,58.33706],[-133.401102,58.410879],[-133.546391,58.503484],[-133.673928,58.597147],[-133.820741,58.705048],[-133.965745,58.757861],[-134.069201,58.795533],[-134.21852,58.849897],[-134.296991,58.898498],[-134.32965,58.93971],[-134.363524,58.968727],[-134.393057,59.009163],[-134.410214,59.056241],[-134.440755,59.085334],[-134.621984,59.155304],[-134.677226,59.199281],[-134.802412,59.249975],[-134.907238,59.271215],[-134.943773,59.288268],[-135.071311,59.441437],[-135.050847,59.496059],[-135.036662,59.550706],[-135.051028,59.578663],[-135.260782,59.695013],[-135.367856,59.743305],[-135.475937,59.793276],[-135.70259,59.728758],[-135.934643,59.662638],[-136.097165,59.638376],[-136.321829,59.604838],[-136.24713,59.532904],[-136.277981,59.480323],[-136.347848,59.456035],[-136.466342,59.459084],[-136.466729,59.279948],[-136.578738,59.152255],[-136.813271,59.150033],[-136.93931,59.106108],[-137.126198,59.040944],[-137.277558,58.988209],[-137.438582,58.903123],[-137.520877,58.915371],[-137.484161,58.991232],[-137.543692,59.119441],[-137.593301,59.226256],[-137.696628,59.281136],[-137.870571,59.373586],[-138.001132,59.442935],[-138.187451,59.541947],[-138.317624,59.611116],[-138.453636,59.683386],[-138.632256,59.778289],[-138.705456,59.901331],[-138.868753,59.945747],[-139.043445,59.993238],[-139.185168,60.083568],[-139.13698,60.17271],[-139.079257,60.279448],[-139.079257,60.343707],[-139.234777,60.339728],[-139.467993,60.333708],[-139.676301,60.328333],[-139.830658,60.252886],[-139.973285,60.183149],[-140.196915,60.237486],[-140.452817,60.299731],[-140.525422,60.21834],[-140.762746,60.259113],[-141.002137,60.300247],[-141.002137,60.592452],[-141.002137,60.884656],[-141.002137,61.17686],[-141.002137,61.469065],[-141.002137,61.761269],[-141.002137,62.053474],[-141.002137,62.345678],[-141.002137,62.637882],[-141.002137,62.930087],[-141.002137,63.222291],[-141.002137,63.51447],[-141.002137,63.8067],[-141.002137,64.098878],[-141.002137,64.391109],[-141.002137,64.683313],[-141.002137,64.975517],[-141.002137,65.267722],[-141.002137,65.559926],[-141.002137,65.852131],[-141.002137,66.144335],[-141.002137,66.436539],[-141.002137,66.728744],[-141.002137,67.020948],[-141.002137,67.313153],[-141.002137,67.605357],[-141.002137,67.897561],[-141.002137,68.18974],[-141.002137,68.48197],[-141.002137,68.774175],[-141.002137,69.066379],[-141.002137,69.358583],[-141.002137,69.650788],[-140.860027,69.635233],[-140.405119,69.60247],[-139.976593,69.621746],[-139.181525,69.51555],[-138.689875,69.316803],[-138.291037,69.219031],[-138.128359,69.151955],[-137.869409,69.092837],[-137.259963,68.964111],[-137.070413,68.950882],[-136.717334,68.88918],[-136.498691,68.897294],[-136.122358,68.882204],[-135.866637,68.832595],[-135.362171,68.696427],[-135.258819,68.684309],[-135.231223,68.694283],[-135.406923,68.828977],[-135.43457,68.842],[-135.637969,68.892229],[-135.876326,68.916982],[-135.894723,68.926697],[-135.93901,68.974188],[-135.924773,68.992637],[-135.872838,69.001034],[-135.695226,69.000646],[-135.589987,69.008243],[-135.575543,69.02695],[-135.651249,69.031291],[-135.742639,69.049429],[-135.849687,69.081417],[-135.9102,69.111492],[-135.691454,69.31117],[-135.614921,69.290991],[-135.499553,69.337163],[-135.292822,69.307863],[-135.254994,69.323831],[-135.229802,69.42522],[-135.199029,69.449611],[-135.140841,69.467801],[-134.8529,69.485888],[-134.493852,69.467905],[-134.456826,69.47762],[-134.491217,69.545316],[-134.495377,69.571929],[-134.473673,69.632804],[-134.451478,69.66549],[-134.408948,69.681794],[-134.242033,69.668823],[-134.189892,69.638799],[-134.134055,69.587277],[-134.077469,69.557873],[-133.899961,69.528211],[-133.879807,69.507721],[-133.947477,69.429509],[-134.018403,69.388478],[-134.165035,69.280578],[-134.174337,69.252827],[-133.948072,69.301326],[-133.694056,69.368428],[-133.47593,69.405376],[-133.293641,69.412146],[-133.163132,69.433902],[-133.084429,69.470644],[-133.028257,69.508264],[-132.915344,69.629652],[-132.84031,69.650684],[-132.526789,69.643243],[-132.452323,69.646912],[-132.403902,69.658746],[-132.412739,69.674094],[-132.478937,69.692852],[-132.568363,69.698123],[-132.570611,69.706702],[-132.537538,69.726545],[-132.488497,69.738069],[-132.333984,69.751815],[-132.232414,69.708149],[-132.163426,69.704996],[-131.934112,69.753469],[-131.58186,69.882143],[-131.440938,69.917929],[-131.318956,69.924156],[-131.215861,69.900798],[-131.136383,69.906896],[-131.031841,69.979501],[-130.990604,70.01813],[-130.926163,70.051616],[-130.665481,70.127038],[-130.498437,70.143187],[-130.396376,70.12926],[-130.274937,70.097996],[-130.174943,70.085903],[-130.043323,70.09505],[-129.944983,70.090942],[-129.89806,70.10616],[-129.730086,70.192098],[-129.675645,70.192951],[-129.622987,70.167604],[-129.538444,70.105179],[-129.538186,70.073914],[-129.648282,69.997743],[-130.458853,69.779979],[-130.708528,69.685979],[-130.832086,69.651485],[-130.960115,69.632029],[-131.207981,69.615751],[-131.306347,69.596631],[-131.472951,69.579474],[-131.862798,69.549347],[-131.937781,69.534722],[-131.988786,69.517643],[-132.128777,69.402353],[-132.196809,69.364707],[-132.33078,69.307966],[-132.48121,69.273136],[-132.686727,69.259855],[-132.817469,69.20575],[-132.967951,69.101416],[-133.089442,69.028758],[-133.228245,68.96716],[-133.378933,68.886648],[-133.418311,68.844274],[-133.373378,68.788463],[-133.348393,68.769885],[-133.196826,68.739836],[-133.138018,68.746605],[-133.192175,68.776526],[-133.319557,68.819727],[-133.336662,68.83523],[-133.304028,68.847426],[-132.706029,68.81487],[-132.577613,68.847788],[-132.532654,68.875641],[-132.54224,68.889956],[-132.704349,68.895898],[-132.739102,68.92246],[-132.764681,68.972483],[-132.770133,69.01217],[-132.755457,69.041626],[-132.718922,69.079195],[-132.545186,69.140638],[-132.358065,69.166941],[-132.213966,69.201668],[-132.134358,69.234456],[-131.919643,69.290525],[-131.833395,69.335975],[-131.786937,69.371296],[-131.781072,69.388866],[-131.820165,69.40163],[-131.788384,69.431964],[-131.631805,69.459068],[-131.56292,69.461394],[-131.342934,69.4354],[-131.303013,69.415091],[-131.324718,69.361193],[-131.293918,69.363699],[-131.209014,69.432196],[-131.16173,69.454986],[-131.112844,69.459482],[-131.063416,69.450697],[-131.013419,69.428734],[-130.986289,69.362898],[-130.981974,69.253293],[-130.970657,69.209058],[-130.914329,69.284867],[-130.875029,69.320033],[-130.660701,69.481289],[-130.515956,69.569656],[-130.353588,69.6558],[-130.117634,69.720086],[-129.572111,69.82672],[-129.264869,69.855426],[-129.109116,69.881936],[-129.032894,69.904984],[-128.984318,69.933458],[-128.898948,69.966169],[-128.883678,69.963482],[-128.916777,69.894881],[-128.938636,69.875012],[-129.138314,69.832534],[-129.157899,69.800081],[-129.136221,69.750058],[-129.101727,69.717037],[-129.054339,69.701069],[-128.97145,69.712386],[-128.853008,69.75104],[-128.705498,69.810158],[-128.386732,69.960174],[-128.359188,69.987615],[-128.278624,70.108124],[-128.095871,70.161351],[-127.764961,70.221864],[-127.683777,70.260363],[-127.974044,70.292919],[-128.034169,70.315347],[-128.043652,70.328782],[-127.988901,70.363147],[-128.121476,70.397357],[-128.170104,70.418441],[-128.168063,70.479781],[-128.127316,70.523809],[-128.040499,70.566391],[-127.990993,70.573832],[-127.861647,70.549053],[-127.752817,70.517143],[-127.376871,70.368728],[-127.225976,70.296149],[-127.138461,70.239331],[-126.926821,70.061719],[-126.833493,69.959089],[-126.758666,69.853359],[-126.684923,69.777085],[-126.612163,69.730344],[-126.250454,69.545264],[-126.063824,69.467078],[-125.9074,69.418554],[-125.727798,69.380003],[-125.524968,69.351581],[-125.386785,69.349204],[-125.171863,69.427985],[-125.166851,69.47979],[-125.261573,69.566142],[-125.356916,69.625957],[-125.345522,69.662441],[-125.219405,69.732385],[-125.22788,69.756724],[-125.201164,69.828813],[-125.114011,69.815015],[-125.079595,69.817832],[-125.031019,69.84429],[-124.968284,69.89439],[-124.889167,69.935783],[-124.793669,69.96852],[-124.767908,69.990018],[-124.862606,70.005495],[-124.920018,70.005546],[-124.962599,70.012574],[-124.990401,70.02663],[-124.952419,70.041746],[-124.745119,70.080193],[-124.706336,70.117012],[-124.639958,70.141455],[-124.555027,70.151222],[-124.502576,70.141094],[-124.444492,70.110605],[-124.441494,70.061925],[-124.467177,69.98255],[-124.471932,69.918497],[-124.406923,69.767421],[-124.349381,69.734503],[-124.124614,69.69001],[-124.138464,69.653191],[-124.39837,69.493846],[-124.453897,69.454831],[-124.481337,69.425168],[-124.472087,69.400054],[-124.426146,69.379435],[-124.33809,69.364836],[-124.111721,69.358893],[-124.049658,69.372872],[-123.609142,69.377419],[-123.528398,69.389357],[-123.460443,69.420001],[-123.361457,69.496637],[-123.248957,69.519995],[-123.213662,69.541492],[-123.144468,69.632494],[-123.110387,69.738121],[-123.076616,69.782459],[-123.025767,69.810003],[-122.956675,69.818839],[-122.78542,69.808452],[-122.704856,69.817392],[-122.387511,69.808452],[-122.070063,69.816178],[-121.741866,69.797497],[-121.531103,69.775793],[-121.336257,69.741531],[-120.96243,69.660399],[-120.814636,69.616836],[-120.292549,69.420569],[-120.14,69.380572],[-119.852834,69.342331],[-118.868708,69.257168],[-118.744891,69.234276],[-118.485579,69.144875],[-118.306985,69.092734],[-118.095189,69.042918],[-117.830322,68.999923],[-117.311284,68.934914],[-117.226948,68.913417],[-117.13176,68.907112],[-117.025745,68.915949],[-116.54996,68.878793],[-116.424542,68.880628],[-116.334082,68.873626],[-116.222694,68.846806],[-116.059474,68.836987],[-116.06521,68.855436],[-116.251607,68.95791],[-116.24339,68.974085],[-116.166754,68.975325],[-115.93607,68.958117],[-115.883231,68.987314],[-115.806362,68.986642],[-115.631128,68.972534],[-115.442302,68.940909],[-115.239834,68.891868],[-114.993725,68.850061],[-114.620182,68.746114],[-114.413889,68.659582],[-114.218139,68.552043],[-114.110833,68.477319],[-114.092023,68.43541],[-114.051121,68.414636],[-113.988179,68.414997],[-113.964408,68.399081],[-114.020787,68.306503],[-114.05324,68.283378],[-114.09595,68.266789],[-114.274776,68.247876],[-114.765289,68.2702],[-114.852209,68.195269],[-115.12705,68.132017],[-115.17591,68.10437],[-115.186762,68.084191],[-115.167073,68.018536],[-115.201852,67.998434],[-115.426851,67.923555],[-115.434499,67.902367],[-115.288461,67.871671],[-115.133225,67.819168],[-115.011166,67.806404],[-114.856756,67.813587],[-114.662866,67.79519],[-114.429418,67.75124],[-114.267025,67.731163],[-114.175713,67.734987],[-114.051069,67.726926],[-113.893198,67.706875],[-113.681944,67.699951],[-113.214996,67.701734],[-113.074953,67.68667],[-112.879461,67.679874],[-112.50305,67.681941],[-112.435147,67.684758],[-112.314534,67.719588],[-112.236735,67.731112],[-112.101317,67.731732],[-111.710902,67.757312],[-111.575716,67.756846],[-111.450711,67.776173],[-111.290824,67.815215],[-111.192174,67.822579],[-111.154812,67.798239],[-111.087426,67.787646],[-110.990016,67.790798],[-110.804859,67.832346],[-110.371966,67.954199],[-110.216264,67.954018],[-110.101956,67.992233],[-110.073948,67.99293],[-110.042502,67.977195],[-109.93654,67.887898],[-109.904242,67.873532],[-109.831327,67.865832],[-109.760168,67.820124],[-109.686013,67.751782],[-109.630357,67.732714],[-109.224335,67.729768],[-109.081243,67.710725],[-109.038042,67.691166],[-108.994479,67.637112],[-108.967658,67.532364],[-108.949908,67.493968],[-108.890971,67.438106],[-108.852007,67.421983],[-108.815187,67.437486],[-108.715116,67.582826],[-108.680234,67.60621],[-108.613313,67.598045],[-108.592901,67.590888],[-108.491512,67.483323],[-108.346973,67.403431],[-107.988726,67.256412],[-107.930538,67.202513],[-107.909196,67.162567],[-107.929453,67.126807],[-107.99131,67.095181],[-108.088436,67.069782],[-108.220779,67.05061],[-108.344337,67.057509],[-108.459059,67.090427],[-108.496059,67.092288],[-108.455287,67.062987],[-108.218143,66.941237],[-108.157682,66.89261],[-108.101484,66.860338],[-108.049601,66.844344],[-108.001774,66.818041],[-107.957978,66.781299],[-107.760962,66.683708],[-107.704893,66.637121],[-107.480333,66.491782],[-107.373673,66.434653],[-107.291353,66.401787],[-107.259494,66.398531],[-107.278098,66.424886],[-107.564437,66.618518],[-107.710345,66.740061],[-107.730886,66.769206],[-107.740214,66.813752],[-107.746002,66.961494],[-107.725073,66.984129],[-107.62619,67.003146],[-107.499221,66.936173],[-107.451265,66.926742],[-107.418864,66.930695],[-107.402095,66.948007],[-107.329205,66.931987],[-107.200169,66.882585],[-107.156503,66.881758],[-107.253758,66.976377],[-107.323366,67.022576],[-107.347861,67.05477],[-107.283162,67.103269],[-107.318457,67.127763],[-107.482374,67.199129],[-107.567486,67.273052],[-107.64407,67.384776],[-107.650917,67.428236],[-107.638386,67.474228],[-107.649884,67.51128],[-107.753004,67.586883],[-107.86509,67.639231],[-107.954051,67.700002],[-107.972112,67.732042],[-107.958392,67.8186],[-107.890902,67.856324],[-107.763107,67.906811],[-107.728638,67.95885],[-107.787472,68.01249],[-107.798272,68.036933],[-107.76104,68.032178],[-107.50935,68.059154],[-107.446201,68.049645],[-107.351116,68.061169],[-107.224147,68.093777],[-107.124825,68.108453],[-106.993645,68.106308],[-106.922564,68.114163],[-106.835644,68.128607],[-106.790737,68.144833],[-106.711,68.206767],[-106.668419,68.216017],[-106.534887,68.209274],[-106.459491,68.195631],[-106.424248,68.200592],[-106.429519,68.288494],[-106.404378,68.319319],[-106.271234,68.383191],[-106.132147,68.389883],[-106.03931,68.407349],[-105.933063,68.443109],[-105.856918,68.475123],[-105.781186,68.526567],[-105.750206,68.592299],[-105.774313,68.611135],[-105.932236,68.636534],[-106.02714,68.623331],[-106.237308,68.576538],[-106.458044,68.516438],[-106.54331,68.460576],[-106.566668,68.388953],[-106.608474,68.357378],[-106.780428,68.387325],[-106.853705,68.386834],[-106.945818,68.37438],[-107.043331,68.346836],[-107.146193,68.304203],[-107.298148,68.296452],[-107.499118,68.32353],[-107.619343,68.331075],[-107.741506,68.285755],[-107.734245,68.252062],[-107.67766,68.202943],[-107.734168,68.17372],[-108.027199,68.16292],[-108.104585,68.169302],[-108.261009,68.149897],[-108.322788,68.154083],[-108.367902,68.177544],[-108.686565,68.277331],[-108.718113,68.297485],[-108.640908,68.378514],[-108.345733,68.597803],[-108.313486,68.610774],[-107.766336,68.648937],[-107.435917,68.688857],[-106.830683,68.809495],[-106.713481,68.819469],[-106.32428,68.899464],[-106.16447,68.919876],[-106.015694,68.906079],[-105.797929,68.864789],[-105.685585,68.828151],[-105.606055,68.782417],[-105.539857,68.718648],[-105.456917,68.578088],[-105.428624,68.458251],[-105.377464,68.413809],[-105.194969,68.330351],[-105.101331,68.298002],[-105.043609,68.287873],[-104.993792,68.307407],[-104.959815,68.310559],[-104.936742,68.30304],[-104.911963,68.250511],[-104.879433,68.24524],[-104.76962,68.251777],[-104.653193,68.230073],[-104.636398,68.213899],[-104.661151,68.14876],[-104.628182,68.121475],[-104.486821,68.063184],[-104.350731,68.041222],[-104.193531,68.031197],[-103.901559,68.041067],[-103.657207,68.069101],[-103.474144,68.115016],[-103.323223,68.063804],[-103.021768,67.940246],[-102.841572,67.852758],[-102.691995,67.811572],[-102.389094,67.762221],[-102.320364,67.735659],[-102.209751,67.732714],[-102.057253,67.753332],[-101.883646,67.745323],[-101.688878,67.708632],[-101.554984,67.693181],[-101.096408,67.76235],[-101.026412,67.765683],[-100.855595,67.798963],[-100.745602,67.809091],[-100.616127,67.808264],[-100.519647,67.818393],[-100.456085,67.839477],[-100.212947,67.838599],[-99.772948,67.814827],[-99.472269,67.78408],[-99.293572,67.745323],[-99.146888,67.723618],[-99.032167,67.718864],[-98.920468,67.725789],[-98.811741,67.744444],[-98.697278,67.779739],[-98.452796,67.797878],[-98.412127,67.807179],[-98.41714,67.826455],[-98.467834,67.855807],[-98.606482,67.911436],[-98.703556,67.965723],[-98.722237,68.000191],[-98.720067,68.041997],[-98.689836,68.06613],[-98.631545,68.072538],[-98.539871,68.046648],[-98.414814,67.988409],[-98.062562,67.769662],[-97.977632,67.73863],[-97.930761,67.710777],[-97.607396,67.631066],[-97.454924,67.61701],[-97.274264,67.666258],[-97.194424,67.696902],[-97.155408,67.726409],[-97.157165,67.754831],[-97.139853,67.796224],[-97.158043,67.821907],[-97.206568,67.855083],[-97.33612,67.90136],[-97.54665,67.960762],[-97.739093,67.978177],[-97.913346,67.953579],[-98.110518,67.903039],[-98.192528,67.922986],[-98.438379,68.064683],[-98.500287,68.117651],[-98.500261,68.132276],[-98.386082,68.115326],[-98.380863,68.132482],[-98.449179,68.200799],[-98.491244,68.223614],[-98.632992,68.331152],[-98.650485,68.363528],[-98.562247,68.370866],[-98.522198,68.383423],[-98.468558,68.382131],[-98.218547,68.317432],[-98.090519,68.346319],[-97.794258,68.387609],[-97.911047,68.449517],[-97.938874,68.510444],[-97.925077,68.523699],[-97.828545,68.532768],[-97.639564,68.48197],[-97.548045,68.474942],[-97.481124,68.495148],[-97.410354,68.496543],[-97.335784,68.479128],[-97.265892,68.452928],[-97.135978,68.377997],[-97.071795,68.332884],[-96.999552,68.264929],[-96.976711,68.255421],[-96.628153,68.250305],[-96.430646,68.310611],[-96.434935,68.290096],[-96.480204,68.242812],[-96.72515,68.061246],[-96.722075,68.038793],[-96.592186,68.048457],[-96.531312,68.063133],[-96.493691,68.08494],[-96.461187,68.135841],[-96.439379,68.150879],[-96.075603,68.236507],[-95.970286,68.249142],[-96.036019,68.157752],[-96.171334,67.831674],[-96.198851,67.717831],[-96.228488,67.679177],[-96.371373,67.553861],[-96.369125,67.509756],[-96.21283,67.40431],[-96.185002,67.375578],[-96.169241,67.288968],[-96.141465,67.271837],[-96.012584,67.270907],[-95.879103,67.298476],[-95.71994,67.316796],[-95.695187,67.298735],[-95.782494,67.19378],[-95.777688,67.184633],[-95.626406,67.211583],[-95.557004,67.215277],[-95.528685,67.20918],[-95.415927,67.155591],[-95.40461,67.115594],[-95.406987,67.056114],[-95.418899,67.013248],[-95.456984,66.989451],[-95.502227,66.979891],[-95.559355,66.97276],[-95.61067,66.975705],[-95.768671,66.966714],[-95.861843,66.978186],[-95.95406,67.010897],[-96.019534,67.018752],[-96.095473,66.993534],[-96.215569,66.99772],[-96.350444,67.070015],[-96.404239,67.06322],[-96.422533,67.051773],[-96.420285,67.036167],[-96.359513,66.9894],[-95.885305,66.741379],[-95.813268,66.690142],[-95.797351,66.616554],[-95.787533,66.616813],[-95.743143,66.690452],[-95.772107,66.726057],[-96.016098,66.870441],[-96.045372,66.923151],[-96.036872,66.937491],[-95.972379,66.952244],[-95.625036,66.916278],[-95.490393,66.924132],[-95.399649,66.949454],[-95.354097,66.980692],[-95.321075,67.152491],[-95.258754,67.262561],[-95.295625,67.361057],[-95.389573,67.517843],[-95.463366,67.610189],[-95.633692,67.703878],[-95.650487,67.737442],[-95.460705,68.021378],[-95.426495,68.045253],[-95.384095,68.055562],[-95.234698,68.059722],[-95.125868,68.083286],[-94.955232,68.050291],[-94.861026,68.041635],[-94.744418,68.070884],[-94.485287,68.190076],[-94.383846,68.227024],[-94.25481,68.296813],[-94.098127,68.399391],[-93.92775,68.473805],[-93.651694,68.543103],[-93.483022,68.598862],[-93.448916,68.618913],[-93.605805,68.623667],[-93.643968,68.633124],[-93.676189,68.685963],[-93.659859,68.78376],[-93.662805,68.838176],[-93.68146,68.887268],[-93.715773,68.931038],[-93.765744,68.969589],[-93.811323,68.992688],[-93.852457,69.000336],[-93.880698,68.996822],[-93.896098,68.982198],[-93.938085,68.889077],[-93.99157,68.820606],[-94.064873,68.784742],[-94.216931,68.760558],[-94.478336,68.742755],[-94.586779,68.775544],[-94.600422,68.803242],[-94.562569,68.91166],[-94.475623,68.958168],[-94.236594,69.049739],[-94.083632,69.123094],[-94.081125,69.135832],[-94.221814,69.1364],[-94.255378,69.15149],[-94.284937,69.241614],[-94.276746,69.275255],[-94.254732,69.313754],[-94.156366,69.341763],[-93.854421,69.376386],[-93.6195,69.417003],[-93.612627,69.402844],[-93.800987,69.280914],[-93.820443,69.252621],[-93.748536,69.226137],[-93.567462,69.296882],[-93.450569,69.355198],[-93.430984,69.375068],[-93.537076,69.382329],[-93.542864,69.406461],[-93.522426,69.450697],[-93.53227,69.480927],[-93.649782,69.519064],[-93.794373,69.497851],[-93.915089,69.457673],[-94.015289,69.446717],[-94.163187,69.445942],[-94.270778,69.455141],[-94.338138,69.474261],[-94.419192,69.517049],[-94.513915,69.583453],[-94.633856,69.649651],[-94.676283,69.656885],[-94.712715,69.649392],[-94.789247,69.585469],[-94.822527,69.577769],[-95.292111,69.667376],[-95.491272,69.717605],[-95.587597,69.755691],[-95.707408,69.778222],[-95.850707,69.785095],[-95.964938,69.802768],[-96.050152,69.831138],[-96.119089,69.871859],[-96.171799,69.924931],[-96.269364,69.9918],[-96.492399,70.124893],[-96.551362,70.210288],[-96.559579,70.243025],[-96.545626,70.327232],[-96.336569,70.470169],[-96.297708,70.511381],[-96.226421,70.541689],[-96.122732,70.561223],[-96.048137,70.567088],[-95.878638,70.548976],[-95.980182,70.593211],[-95.988192,70.616853],[-95.886338,70.69429],[-95.906389,70.697752],[-96.186423,70.638273],[-96.257995,70.642303],[-96.358867,70.678658],[-96.548933,70.808727],[-96.551052,70.88973],[-96.491314,71.002333],[-96.470385,71.069719],[-96.524749,71.127028],[-96.50444,71.143151],[-96.445477,71.159223],[-96.42075,71.176483],[-96.446562,71.23989],[-96.40566,71.273634],[-96.271353,71.339108],[-96.139656,71.396392],[-96.061986,71.413884],[-95.994445,71.410629],[-95.924062,71.393059],[-95.850862,71.361071],[-95.725366,71.328153],[-95.632581,71.3188],[-95.564239,71.336783],[-95.447502,71.460083],[-95.406264,71.491657],[-95.445383,71.505351],[-95.674206,71.50406],[-95.773373,71.51424],[-95.830347,71.526074],[-95.872334,71.573151],[-95.837736,71.598266],[-95.615915,71.685392],[-95.511684,71.776808],[-95.201238,71.903725],[-94.886968,71.96336],[-94.734858,71.982971],[-94.611119,71.986872],[-94.557065,71.978966],[-94.491074,71.915507],[-94.478827,71.848586],[-94.308347,71.764871],[-94.171223,71.758463],[-94.085983,71.771123],[-93.810186,71.76624],[-93.746314,71.742805],[-93.750861,71.716656],[-93.78166,71.674333],[-93.76285,71.638057],[-93.575885,71.568707],[-93.407471,71.520699],[-93.256369,71.460858],[-93.031293,71.335698],[-92.982588,71.300351],[-92.948688,71.262111],[-92.89019,71.122377],[-92.882723,71.069357],[-92.904195,70.916085],[-92.921997,70.887095],[-92.981451,70.852265],[-92.960884,70.838157],[-92.783013,70.798159],[-92.641704,70.71881],[-92.567471,70.693205],[-92.388464,70.650417],[-92.35583,70.634268],[-92.315393,70.607525],[-92.214469,70.492907],[-92.049105,70.389657],[-92.037193,70.367385],[-92.072592,70.318757],[-92.047348,70.303332],[-91.983527,70.285529],[-91.926218,70.294779],[-91.875523,70.33116],[-91.820385,70.34165],[-91.760853,70.32625],[-91.715637,70.299224],[-91.654038,70.232974],[-91.56407,70.178249],[-91.57164,70.161558],[-91.616134,70.147863],[-91.858574,70.13267],[-91.994974,70.143212],[-92.121038,70.169929],[-92.20863,70.197524],[-92.29033,70.239847],[-92.320509,70.235351],[-92.363297,70.200832],[-92.454713,70.150447],[-92.511867,70.103835],[-92.445747,70.083164],[-92.127007,70.084508],[-92.057735,70.071434],[-91.976706,70.038671],[-92.069052,69.983997],[-92.284749,69.892117],[-92.750922,69.713936],[-92.887787,69.668203],[-92.854559,69.65487],[-92.80265,69.651459],[-92.642815,69.659263],[-92.49347,69.683215],[-92.311673,69.672905],[-92.230747,69.653371],[-92.258291,69.634303],[-92.209095,69.603297],[-91.911955,69.53126],[-91.724111,69.545626],[-91.532392,69.615028],[-91.384236,69.649444],[-91.201818,69.644793],[-91.150865,69.637145],[-91.170321,69.620299],[-91.305041,69.581283],[-91.426843,69.537926],[-91.439969,69.525705],[-91.288117,69.543197],[-90.950179,69.515499],[-90.785719,69.508574],[-90.666657,69.515525],[-90.554932,69.504492],[-90.450546,69.47545],[-90.415561,69.457001],[-90.513307,69.445115],[-90.605575,69.445322],[-90.683968,69.427752],[-90.748538,69.392483],[-90.794582,69.346724],[-90.822125,69.2905],[-90.892276,69.267297],[-91.004982,69.27709],[-91.049191,69.293032],[-91.024852,69.315253],[-91.057744,69.318405],[-91.147868,69.302566],[-91.217967,69.302101],[-91.237216,69.285539],[-90.744766,69.105911],[-90.587282,68.946851],[-90.47902,68.881171],[-90.468374,68.863756],[-90.538964,68.819572],[-90.54253,68.785983],[-90.51018,68.688883],[-90.525244,68.61129],[-90.573639,68.474684],[-90.528345,68.432206],[-90.423054,68.39474],[-90.36006,68.346733],[-90.317221,68.3303],[-90.285233,68.291672],[-90.247768,68.26741],[-90.204773,68.257488],[-90.174439,68.2702],[-90.156817,68.305495],[-90.116406,68.338594],[-90.005328,68.398048],[-89.897711,68.490755],[-89.879495,68.521554],[-89.896574,68.594366],[-89.884224,68.625579],[-89.783093,68.73596],[-89.750847,68.812441],[-89.720151,68.931607],[-89.666614,69.014599],[-89.551996,69.084931],[-89.351905,69.226989],[-89.279558,69.255463],[-89.198503,69.269467],[-89.056729,69.266108],[-88.953531,69.220426],[-88.814573,69.135884],[-88.637737,69.058834],[-88.315534,68.954448],[-88.22355,68.915019],[-88.041339,68.811717],[-87.964367,68.709295],[-87.911502,68.564678],[-87.865949,68.477629],[-87.82776,68.448096],[-87.810294,68.404145],[-87.813601,68.345699],[-87.827915,68.299966],[-87.853288,68.266893],[-87.892692,68.248134],[-87.990954,68.242036],[-88.111154,68.251183],[-88.145803,68.266014],[-88.209081,68.334847],[-88.235229,68.339085],[-88.346953,68.288287],[-88.360673,68.259865],[-88.319616,68.165762],[-88.32512,67.98877],[-88.313829,67.950323],[-88.195903,67.765838],[-87.997181,67.625692],[-87.499098,67.355321],[-87.470779,67.324625],[-87.41794,67.214141],[-87.391947,67.191041],[-87.359391,67.177244],[-87.320272,67.172851],[-87.266244,67.183858],[-87.083206,67.267781],[-86.923939,67.356251],[-86.812809,67.402372],[-86.749841,67.406118],[-86.682016,67.422293],[-86.609359,67.450819],[-86.560809,67.482109],[-86.536418,67.516163],[-86.503526,67.649463],[-86.475543,67.713128],[-86.398028,67.8001],[-86.369658,67.824801],[-85.984462,68.045356],[-85.952577,68.072486],[-85.788867,68.328026],[-85.731092,68.445021],[-85.722824,68.515456],[-85.74489,68.578295],[-85.733857,68.630126],[-85.689777,68.670951],[-85.643139,68.699683],[-85.562472,68.728828],[-85.517798,68.769808],[-85.491081,68.773994],[-85.425064,68.774252],[-85.338093,68.746295],[-85.275074,68.741334],[-84.867579,68.773322],[-84.867476,68.790401],[-85.10666,68.844067],[-85.104361,68.870939],[-85.08338,68.907887],[-85.008294,68.949228],[-84.916077,68.962251],[-84.895329,68.988503],[-84.892746,69.021007],[-84.862205,69.073975],[-84.890033,69.092786],[-85.113533,69.165856],[-85.242621,69.162755],[-85.275461,69.172316],[-85.386772,69.231899],[-85.427545,69.318405],[-85.431912,69.353881],[-85.416383,69.41088],[-85.402223,69.42677],[-85.4092,69.452505],[-85.437234,69.488214],[-85.439482,69.519943],[-85.415969,69.547745],[-85.430129,69.580663],[-85.482012,69.618774],[-85.502424,69.651511],[-85.447905,69.748146],[-85.446097,69.777782],[-85.497463,69.819046],[-85.534825,69.835066],[-85.507359,69.845246],[-85.415143,69.849535],[-85.304968,69.836151],[-85.176811,69.805145],[-85.019818,69.804783],[-84.833964,69.835066],[-84.645112,69.84969],[-84.318801,69.843696],[-84.241648,69.835014],[-83.917198,69.745356],[-83.665353,69.699725],[-83.55169,69.703963],[-82.991363,69.685876],[-82.74559,69.6951],[-82.618362,69.691044],[-82.374191,69.641796],[-82.390211,69.600868],[-82.495683,69.532242],[-82.633323,69.518134],[-82.75484,69.494363],[-82.64203,69.458396],[-82.309854,69.410027],[-82.231823,69.332564],[-82.208155,69.297011],[-82.246757,69.264971],[-82.227559,69.2489],[-82.150536,69.248874],[-81.951788,69.276082],[-81.732163,69.258098],[-81.412286,69.198154],[-81.377844,69.185648],[-81.321594,69.138933],[-81.328674,69.119942],[-81.611447,69.003024],[-81.758363,68.956722],[-81.951633,68.909076],[-81.957938,68.883651],[-81.686921,68.878948],[-81.476029,68.865564],[-81.380919,68.850061],[-81.331309,68.827996],[-81.26351,68.780608],[-81.252503,68.743143],[-81.259117,68.692448],[-81.281545,68.657205],[-81.526853,68.555971],[-81.639507,68.524345],[-81.831382,68.486879],[-81.914839,68.458767],[-82.006488,68.462643],[-82.106352,68.498558],[-82.21017,68.506258],[-82.397213,68.477578],[-82.498706,68.478611],[-82.548651,68.468586],[-82.552682,68.446468],[-82.46416,68.382441],[-82.413,68.357197],[-82.392846,68.33831],[-82.430648,68.30658],[-82.422715,68.296581],[-82.392536,68.285238],[-82.222418,68.145246],[-82.186554,68.134446],[-82.151337,68.139691],[-82.07762,68.179663],[-82.033902,68.195941],[-82.012508,68.193874],[-82.013361,68.17341],[-82.091883,68.051454],[-82.102141,68.018898],[-82.100461,67.98983],[-82.062531,67.928154],[-81.976489,67.862008],[-81.869338,67.802477],[-81.708573,67.722378],[-81.492746,67.636905],[-81.412312,67.595358],[-81.294361,67.497431],[-81.270124,67.459914],[-81.301053,67.356974],[-81.387197,67.188561],[-81.442724,67.092856],[-81.46758,67.069886],[-81.630102,67.002009],[-81.722345,66.986092],[-81.87448,66.987953],[-81.925536,66.974724],[-82.005066,66.920412],[-82.113174,66.82512],[-82.198336,66.764659],[-82.260555,66.739131],[-82.37476,66.709417],[-82.553663,66.621386],[-82.641513,66.587512],[-82.948885,66.550822],[-83.198792,66.431501],[-83.298373,66.392149],[-83.406454,66.371246],[-83.523088,66.368766],[-83.590293,66.387834],[-83.628352,66.460698],[-83.651064,66.484624],[-83.739198,66.534389],[-83.920221,66.679031],[-83.99802,66.728537],[-84.050006,66.739492],[-84.154444,66.731689],[-84.207981,66.73634],[-84.324356,66.781764],[-84.366266,66.811116],[-84.361098,66.822537],[-84.272577,66.839228],[-84.310326,66.862741],[-84.466053,66.92744],[-84.530649,66.961339],[-84.538452,66.972812],[-84.692603,67.016582],[-84.845772,67.028725],[-85.040023,66.956068],[-85.113714,66.906924],[-85.111285,66.890904],[-85.018268,66.872094],[-84.97796,66.881241],[-84.89905,66.926587],[-84.857373,66.940669],[-84.737742,66.933589],[-84.638575,66.902325],[-84.602531,66.875143],[-84.589508,66.856643],[-84.31893,66.711794],[-84.223071,66.682493],[-84.183125,66.647844],[-84.152739,66.590251],[-84.094215,66.526224],[-83.964198,66.420546],[-83.825834,66.289985],[-83.797567,66.238464],[-83.869061,66.213581],[-83.90508,66.211773],[-84.011688,66.231203],[-84.293041,66.29182],[-84.324253,66.290657],[-84.39846,66.258747],[-84.459387,66.186245],[-84.478404,66.17932],[-84.628059,66.20769],[-84.908403,66.271356],[-85.096196,66.325358],[-85.191487,66.369696],[-85.306829,66.440338],[-85.442221,66.537334],[-85.603865,66.568237],[-85.79176,66.532942],[-86.063217,66.520384],[-86.633182,66.53134],[-86.708164,66.523072],[-86.737103,66.510902],[-86.688631,66.457494],[-86.700129,66.442766],[-86.738369,66.432845],[-86.746999,66.417083],[-86.685117,66.360394],[-86.584787,66.321947],[-86.301006,66.269909],[-86.113084,66.225312],[-86.000843,66.186839],[-85.964256,66.154464],[-85.958727,66.119065],[-86.012264,66.048475],[-86.042856,66.022534],[-86.701963,65.670565],[-86.953188,65.528249],[-87.081087,65.440812],[-87.19382,65.383038],[-87.291462,65.354822],[-87.452899,65.338958],[-87.678131,65.33534],[-87.969974,65.348931],[-88.120998,65.394588],[-88.394857,65.516234],[-88.586732,65.587625],[-88.672463,65.611551],[-88.743932,65.678782],[-88.808476,65.691649],[-88.946142,65.703018],[-89.087761,65.738985],[-89.42035,65.860786],[-89.592691,65.909336],[-89.7494,65.936027],[-89.890477,65.940833],[-89.944013,65.933573],[-89.84774,65.872284],[-89.889702,65.868538],[-90.003803,65.882568],[-90.116613,65.882439],[-90.316265,65.926364],[-90.513281,65.920524],[-90.655495,65.929361],[-90.825743,65.953856],[-91.00953,65.965741],[-91.305481,65.964553],[-91.411521,65.959359],[-91.427256,65.947913],[-91.285172,65.894428],[-91.041104,65.829832],[-91.07366,65.885539],[-91.064927,65.899906],[-90.983459,65.919232],[-90.596842,65.884816],[-90.158626,65.812676],[-90.047573,65.805596],[-89.924066,65.780275],[-89.788002,65.736711],[-89.600417,65.647776],[-89.241731,65.446393],[-89.126544,65.395621],[-88.974047,65.348311],[-88.197789,65.279892],[-87.929537,65.280305],[-87.391947,65.260565],[-87.108011,65.224805],[-87.027551,65.198088],[-87.002694,65.108584],[-87.028507,65.063626],[-87.18289,64.926787],[-87.280507,64.826173],[-87.885018,64.400462],[-87.963592,64.302509],[-87.997569,64.243934],[-88.105624,64.183318],[-88.378941,64.089267],[-88.653033,64.009375],[-88.817726,63.992218],[-88.964383,64.011235],[-89.059623,64.034438],[-89.200648,64.113761],[-89.209433,64.105441],[-89.107656,63.981108],[-89.131557,63.968499],[-89.214549,63.984131],[-89.40353,64.039967],[-89.464766,64.029684],[-89.50094,64.014491],[-89.551298,64.014801],[-89.615816,64.030614],[-89.732734,64.076968],[-89.763818,64.099499],[-89.792085,64.16828],[-89.811308,64.180579],[-90.041656,64.140891],[-90.080026,64.127714],[-89.985587,64.10017],[-89.953574,64.080637],[-89.860608,63.978834],[-89.855724,63.956975],[-89.921896,63.943539],[-90.141908,63.981986],[-90.168186,63.978757],[-90.059639,63.877497],[-90.017988,63.82936],[-90.013441,63.804271],[-90.154724,63.689653],[-90.245287,63.641904],[-90.368845,63.624437],[-90.446257,63.636168],[-90.533486,63.665417],[-90.596403,63.661282],[-90.635005,63.623765],[-90.706835,63.596945],[-90.811893,63.5809],[-90.945658,63.58785],[-91.108077,63.617823],[-91.5388,63.725594],[-91.674657,63.742234],[-91.926011,63.757091],[-91.956009,63.772335],[-91.953813,63.786805],[-91.919448,63.800602],[-91.928905,63.812436],[-91.982235,63.82241],[-92.037581,63.813056],[-92.09489,63.784427],[-92.195194,63.775952],[-92.338441,63.787657],[-92.550108,63.829541],[-92.970237,63.937648],[-93.429692,64.028805],[-93.696343,64.147144],[-93.59671,64.040587],[-93.604875,64.004491],[-93.655802,63.972788],[-93.664174,63.94142],[-93.559813,63.865301],[-93.415584,63.837964],[-93.270219,63.840858],[-93.266188,63.853312],[-93.326856,63.872277],[-93.380264,63.900028],[-93.405869,63.941214],[-93.378532,63.9485],[-93.250427,63.926899],[-93.165936,63.901733],[-92.52923,63.761225],[-92.33919,63.734921],[-92.19646,63.707791],[-92.156876,63.691694],[-92.205012,63.656787],[-92.461043,63.569453],[-92.465074,63.555087],[-92.289555,63.562994],[-92.076622,63.639992],[-91.95681,63.675649],[-91.841856,63.697559],[-91.686026,63.659732],[-91.489294,63.562193],[-91.330079,63.506822],[-91.103064,63.475893],[-90.970049,63.442795],[-90.7466,63.351586],[-90.711279,63.304043],[-90.690738,63.110567],[-90.698593,63.063851],[-90.727635,63.017497],[-90.777864,62.971609],[-90.871218,62.945926],[-91.007695,62.940448],[-91.114898,62.921586],[-91.349483,62.818905],[-91.448986,62.804048],[-91.869632,62.834718],[-92.034222,62.86345],[-92.110083,62.861693],[-92.152096,62.839059],[-92.196124,62.828827],[-92.361282,62.81937],[-92.388154,62.80087],[-92.377715,62.772396],[-92.345262,62.733846],[-92.305161,62.711676],[-92.24315,62.683642],[-92.149098,62.665271],[-91.955854,62.644755],[-91.93583,62.592407],[-91.94446,62.575483],[-92.007867,62.540524],[-92.081144,62.54409],[-92.207234,62.585353],[-92.269505,62.586981],[-92.324075,62.564605],[-92.399988,62.557215],[-92.497346,62.564864],[-92.5514,62.546725],[-92.5622,62.502904],[-92.594963,62.470089],[-92.707411,62.418232],[-92.767975,62.379965],[-92.765986,62.349941],[-92.701468,62.328237],[-92.627467,62.279041],[-92.544061,62.202302],[-92.527964,62.168428],[-92.579176,62.177342],[-92.648112,62.207779],[-92.734773,62.259714],[-92.865825,62.306223],[-93.154463,62.36684],[-93.205365,62.364927],[-93.179268,62.34958],[-92.987807,62.285914],[-92.914426,62.244986],[-92.905538,62.215117],[-93.06589,62.149747],[-93.070283,62.127836],[-93.027753,62.108664],[-93.016255,62.092696],[-93.073383,62.060553],[-93.167486,62.03363],[-93.349749,62.029806],[-93.366337,62.014561],[-93.296858,61.981592],[-93.273423,61.961076],[-93.333057,61.932913],[-93.372021,61.928933],[-93.581776,61.942059],[-93.526689,61.871624],[-93.494236,61.846923],[-93.429951,61.812093],[-93.314402,61.779769],[-93.312025,61.76729],[-93.352333,61.739539],[-93.420597,61.705795],[-93.709675,61.602545],[-93.912763,61.481467],[-93.940875,61.44364],[-93.889251,61.364058],[-93.888837,61.344034],[-93.942012,61.307989],[-94.060765,61.317808],[-94.083451,61.303649],[-94.05521,61.266183],[-94.049964,61.211277],[-94.067793,61.138878],[-94.154041,61.025449],[-94.308708,60.871013],[-94.427176,60.730712],[-94.509394,60.604518],[-94.568899,60.54199],[-94.678763,60.537701],[-94.761704,60.49822],[-94.705247,60.477549],[-94.67065,60.453313],[-94.646775,60.416416],[-94.670417,60.3011],[-94.741602,60.107365],[-94.785811,59.953343],[-94.776638,59.478127],[-94.788266,59.267856],[-94.819556,59.151325],[-94.87025,59.08797],[-94.957351,59.06885],[-94.846608,59.050349],[-94.776173,59.020584],[-94.743772,58.975419],[-94.713386,58.90333],[-94.673389,58.870102],[-94.623728,58.875735],[-94.579183,58.868448],[-94.539702,58.848372],[-94.419244,58.74551],[-94.287056,58.716003],[-94.280803,58.658926],[-94.332634,58.339101],[-94.332221,58.297372],[-94.272147,58.378039],[-94.208921,58.626344],[-94.12319,58.736699],[-94.055752,58.760031],[-93.780033,58.772537],[-93.486174,58.744477],[-93.375044,58.741014],[-93.278125,58.756414],[-93.178751,58.725615],[-93.154567,58.694557],[-93.126507,58.564384],[-93.100203,58.489867],[-92.925149,58.224508],[-92.841769,58.075887],[-92.739838,57.844041],[-92.701675,57.777766],[-92.489646,57.468586],[-92.44939,57.384844],[-92.432802,57.320326],[-92.439778,57.275057],[-92.478355,57.205294],[-92.54848,57.110933],[-92.614109,57.039025],[-92.675242,56.989545],[-92.738003,56.952648],[-92.802392,56.928308],[-92.798154,56.921952],[-92.725291,56.933528],[-92.65098,56.958281],[-92.510317,57.022308],[-92.456315,57.036726],[-92.303353,57.045872],[-92.298288,57.022747],[-92.372134,56.975127],[-92.355701,56.97058],[-92.249041,57.008975],[-92.018021,57.063752],[-91.111281,57.241209],[-90.897444,57.256919],[-90.592191,57.224466],[-90.344816,57.14907],[-90.075168,57.051918],[-89.790844,56.981328],[-89.342319,56.915415],[-89.211552,56.883815],[-88.948493,56.851311],[-88.826485,56.814259],[-88.679905,56.725065],[-88.447051,56.60869],[-88.271351,56.535671],[-88.075084,56.467303],[-87.878145,56.341626],[-87.560877,56.056372],[-87.482407,56.02131],[-87.286863,55.974672],[-86.919392,55.914546],[-86.376944,55.773237],[-86.138664,55.717891],[-85.984488,55.695877],[-85.830518,55.656913],[-85.676677,55.601051],[-85.55932,55.540176],[-85.478446,55.474289],[-85.407262,55.431139],[-85.282696,55.383286],[-85.217997,55.348973],[-85.212028,55.297478],[-85.362019,55.095449],[-85.365275,55.079274],[-85.213579,55.224381],[-85.128855,55.266188],[-85.060952,55.28567],[-84.919927,55.283344],[-84.70578,55.259211],[-84.517962,55.258901],[-84.356473,55.282517],[-84.218937,55.293137],[-84.105352,55.290811],[-84.022979,55.297814],[-83.971768,55.314143],[-83.910609,55.31466],[-83.667652,55.264482],[-83.569467,55.261795],[-83.214347,55.214615],[-82.986273,55.231409],[-82.947025,55.222211],[-82.867753,55.160716],[-82.800677,55.15591],[-82.687505,55.165522],[-82.577435,55.148727],[-82.39326,55.067802],[-82.308252,54.998142],[-82.226603,54.855928],[-82.219394,54.813476],[-82.370626,54.483496],[-82.418065,54.35583],[-82.424162,54.244596],[-82.394138,54.180466],[-82.263552,54.072979],[-82.23991,54.044815],[-82.162628,53.885703],[-82.141441,53.817646],[-82.150019,53.739562],[-82.190611,53.61094],[-82.180353,53.512858],[-82.146195,53.364598],[-82.159166,53.264139],[-82.219265,53.211455],[-82.259909,53.159805],[-82.291612,53.066115],[-82.291561,53.030717],[-82.260451,52.961109],[-82.202703,52.92168],[-82.10798,52.877393],[-82.020027,52.811609],[-81.859287,52.651412],[-81.742344,52.563614],[-81.599407,52.432614],[-81.571682,52.367295],[-81.611525,52.324067],[-81.661237,52.293914],[-81.776347,52.253607],[-81.827894,52.224203],[-81.814535,52.217201],[-81.647982,52.239086],[-81.549487,52.23676],[-81.466185,52.204514],[-81.398075,52.142244],[-81.285059,52.089224],[-81.127187,52.045402],[-80.968489,51.972229],[-80.705533,51.798337],[-80.657939,51.75834],[-80.588047,51.667234],[-80.495856,51.525072],[-80.447591,51.43221],[-80.443301,51.388595],[-80.495495,51.34467],[-80.672693,51.264726],[-80.851235,51.125019],[-80.794985,51.131815],[-80.677241,51.190881],[-80.478338,51.307308],[-80.367957,51.329865],[-80.265664,51.316351],[-80.103555,51.282839],[-79.960411,51.235168],[-79.836232,51.173363],[-79.651515,51.007791],[-79.456126,50.875603],[-79.34789,50.762638],[-79.380731,50.83452],[-79.452638,50.917306],[-79.636193,51.049029],[-79.714457,51.117604],[-79.731407,51.150496],[-79.737453,51.186282],[-79.723242,51.251652],[-79.688825,51.346582],[-79.642988,51.413503],[-79.585731,51.452467],[-79.547439,51.49386],[-79.528008,51.537681],[-79.497571,51.569927],[-79.338666,51.628167],[-79.296963,51.622792],[-79.264252,51.551996],[-79.226115,51.53732],[-79.152734,51.526209],[-79.090877,51.501715],[-79.040545,51.463784],[-79.005043,51.425337],[-78.984321,51.386373],[-78.936933,51.259145],[-78.903163,51.200286],[-78.897504,51.271703],[-78.857998,51.383944],[-78.827431,51.429988],[-78.731365,51.497477],[-78.736403,51.526623],[-78.776297,51.565793],[-78.977758,51.733793],[-78.981633,51.774566],[-78.92789,51.798802],[-78.891096,51.845104],[-78.871253,51.913421],[-78.828206,51.963004],[-78.701986,52.03269],[-78.593311,52.139712],[-78.537371,52.213299],[-78.491638,52.252108],[-78.4481,52.261358],[-78.513083,52.291124],[-78.526054,52.310709],[-78.529077,52.399179],[-78.55706,52.491887],[-78.600571,52.535114],[-78.723794,52.627744],[-78.744129,52.655391],[-78.765781,52.760036],[-78.753637,52.812384],[-78.721701,52.856464],[-78.739865,52.898994],[-78.854096,52.976095],[-78.898228,53.043378],[-78.947139,53.206184],[-78.99202,53.410358],[-79.043103,53.560504],[-79.10036,53.656622],[-79.11315,53.717212],[-79.081446,53.742275],[-79.040338,53.817956],[-79.003183,53.836559],[-78.945693,53.831598],[-78.944375,53.840228],[-79.032018,53.881053],[-79.075168,53.932393],[-79.073282,53.951436],[-78.996025,54.002492],[-79.0099,54.02399],[-79.067158,54.051947],[-79.241798,54.098869],[-79.178831,54.116955],[-79.138833,54.157211],[-79.14674,54.169252],[-79.215986,54.185685],[-79.295671,54.216846],[-79.356133,54.263381],[-79.430547,54.336632],[-79.47597,54.394768],[-79.52067,54.491558],[-79.597927,54.60168],[-79.631723,54.629121],[-79.670403,54.646846],[-79.71394,54.654959],[-79.712338,54.671805],[-79.665519,54.697437],[-78.909235,54.881482],[-78.846241,54.907992],[-78.475049,55.011009],[-78.303587,55.068551],[-78.128869,55.151337],[-77.891106,55.236422],[-77.775273,55.291251],[-77.702151,55.344167],[-77.324939,55.555524],[-77.165104,55.663528],[-77.072551,55.756287],[-76.938089,55.867236],[-76.761821,55.996427],[-76.650458,56.107222],[-76.604052,56.199567],[-76.546382,56.358782],[-76.529819,56.499962],[-76.519639,56.706978],[-76.525556,56.891773],[-76.57284,57.181187],[-76.601417,57.272267],[-76.655419,57.380581],[-76.786264,57.598603],[-76.809802,57.65798],[-76.890908,57.758129],[-77.156784,58.018888],[-77.489166,58.195311],[-77.552418,58.239598],[-77.68409,58.291378],[-77.884129,58.350754],[-78.013553,58.399175],[-78.351724,58.580662],[-78.463009,58.602444],[-78.5059,58.649134],[-78.515099,58.682362],[-78.502283,58.7691],[-78.482594,58.829097],[-78.458668,58.873306],[-78.430504,58.90178],[-78.244443,59.035053],[-78.140238,59.141739],[-78.067684,59.200185],[-77.987637,59.245505],[-77.84284,59.305011],[-77.760674,59.380045],[-77.779433,59.410379],[-77.844674,59.443504],[-77.859015,59.475802],[-77.749047,59.558174],[-77.733518,59.580963],[-77.747523,59.658504],[-77.726155,59.675867],[-77.590401,59.680518],[-77.396691,59.569232],[-77.349072,59.578948],[-77.411032,59.609618],[-77.485291,59.684574],[-77.474568,59.715683],[-77.331657,59.796609],[-77.327626,59.833402],[-77.368399,59.884355],[-77.372972,59.925102],[-77.289204,60.022021],[-77.311813,60.042382],[-77.547147,60.06114],[-77.585905,60.088167],[-77.572185,60.100957],[-77.461365,60.133513],[-77.45289,60.145786],[-77.648614,60.362517],[-77.681454,60.427113],[-77.598152,60.506746],[-77.503558,60.542713],[-77.515573,60.563177],[-77.639467,60.566898],[-77.714992,60.577801],[-77.790802,60.639865],[-77.761217,60.679036],[-77.734216,60.696967],[-77.660629,60.78952],[-77.589574,60.808588],[-77.60301,60.825177],[-77.871546,60.785851],[-77.998128,60.8182],[-78.122435,60.809622],[-78.181372,60.81913],[-78.159642,60.852203],[-77.934204,61.002659],[-77.830128,61.084024],[-77.765015,61.157508],[-77.730599,61.206394],[-77.726826,61.230681],[-77.749616,61.392997],[-77.73618,61.437336],[-77.648898,61.478677],[-77.514359,61.556295],[-77.698456,61.62642],[-77.813772,61.694788],[-77.889891,61.728687],[-77.947536,61.761864],[-78.021382,61.832092],[-78.077477,61.923378],[-78.137137,62.107372],[-78.146956,62.20871],[-78.133417,62.282297],[-78.108586,62.318109],[-78.068123,62.355419],[-77.899917,62.426552],[-77.603966,62.531377],[-77.372429,62.572512],[-77.205256,62.549955],[-76.879385,62.525383],[-76.616351,62.465697],[-75.816891,62.315861],[-75.67553,62.249534],[-75.809217,62.193413],[-75.789839,62.179564],[-75.488823,62.286431],[-75.409242,62.307076],[-75.341184,62.312088],[-75.114014,62.270747],[-75.022754,62.264468],[-74.907567,62.230052],[-74.632571,62.115692],[-74.612908,62.125201],[-74.689906,62.18344],[-74.645774,62.211138],[-74.429224,62.271807],[-74.205439,62.321364],[-74.046483,62.370043],[-73.877811,62.434381],[-73.763967,62.468745],[-73.705056,62.473138],[-73.62997,62.454199],[-73.428381,62.368829],[-73.298983,62.325059],[-73.195165,62.279145],[-73.04936,62.198219],[-72.992361,62.180443],[-72.881851,62.125407],[-72.734935,62.131092],[-72.686953,62.124555],[-72.67083,62.113883],[-72.646,62.076625],[-72.63308,62.052802],[-72.632099,62.027222],[-72.665998,61.95534],[-72.771625,61.840412],[-72.72739,61.838629],[-72.660624,61.863253],[-72.573859,61.907152],[-72.505569,61.922681],[-72.36072,61.887799],[-72.226129,61.831575],[-72.178483,61.801809],[-72.126135,61.753234],[-72.08146,61.728274],[-72.040042,61.680266],[-72.042961,61.664712],[-72.082029,61.641406],[-72.247057,61.602028],[-72.215871,61.587275],[-72.023092,61.61195],[-71.964387,61.63629],[-71.922271,61.676933],[-71.866099,61.688535],[-71.638309,61.61717],[-71.604771,61.592365],[-71.619421,61.572909],[-71.656189,61.55092],[-71.755744,61.526736],[-71.841036,61.46599],[-71.854394,61.439816],[-71.793648,61.421212],[-71.645337,61.413151],[-71.646422,61.398733],[-71.732102,61.372068],[-71.743445,61.337238],[-71.551519,61.213267],[-71.422715,61.158955],[-71.348456,61.148981],[-71.175159,61.146526],[-71.034961,61.12552],[-70.723223,61.055188],[-70.540753,61.042476],[-70.383657,61.063973],[-70.279271,61.068676],[-70.187235,61.040538],[-70.15796,61.020643],[-70.144163,60.981084],[-70.145894,60.921811],[-70.095302,60.880289],[-69.992441,60.856492],[-69.909216,60.86011],[-69.800437,60.90667],[-69.708401,60.914628],[-69.677602,60.949562],[-69.650446,61.014157],[-69.623652,61.049504],[-69.556989,61.059684],[-69.503349,61.040409],[-69.47193,61.010953],[-69.414336,60.922483],[-69.398342,60.882847],[-69.404724,60.846803],[-69.433457,60.814273],[-69.489965,60.779598],[-69.574223,60.742727],[-69.640472,60.689784],[-69.721398,60.56744],[-69.751292,60.487471],[-69.759483,60.440239],[-69.755918,60.388511],[-69.74057,60.332287],[-69.708504,60.285933],[-69.633108,60.220356],[-69.628742,60.1986],[-69.623135,60.145476],[-69.629801,60.122119],[-69.673752,60.075868],[-69.795657,60.029721],[-69.96283,60.017836],[-70.509308,60.0152],[-70.654829,60.026233],[-70.619741,59.984298],[-70.466649,59.970836],[-70.326839,59.971378],[-69.805682,59.944868],[-69.733929,59.917997],[-69.673416,59.870764],[-69.63024,59.821827],[-69.587401,59.722298],[-69.579417,59.675117],[-69.602361,59.622718],[-69.656208,59.565098],[-69.692381,59.488411],[-69.710882,59.392525],[-69.681891,59.341727],[-69.399996,59.337774],[-69.344031,59.303099],[-69.350438,59.277209],[-69.450458,59.180031],[-69.459786,59.152436],[-69.414104,59.086885],[-69.420331,59.068229],[-69.448081,59.049161],[-69.474669,58.999991],[-69.500093,58.920642],[-69.531668,58.869224],[-69.608226,58.82951],[-69.648405,58.820777],[-69.677344,58.831345],[-69.752998,58.939607],[-69.784159,58.95573],[-69.813666,58.94555],[-69.828497,58.928755],[-69.8286,58.905345],[-69.841623,58.881135],[-69.867564,58.856149],[-69.979134,58.816359],[-70.159976,58.789383],[-70.154343,58.7606],[-70.032981,58.745148],[-69.878572,58.696986],[-69.789895,58.689286],[-69.650549,58.72825],[-69.381858,58.850723],[-69.271063,58.883951],[-69.173498,58.896638],[-69.063634,58.898266],[-68.941523,58.888912],[-68.698178,58.904544],[-68.637304,58.892891],[-68.562864,58.865916],[-68.474885,58.82349],[-68.41432,58.782717],[-68.381144,58.743495],[-68.326444,58.59539],[-68.252986,58.556633],[-68.235158,58.528159],[-68.22937,58.484596],[-68.233866,58.399226],[-68.314688,58.226885],[-68.356546,58.16322],[-68.468167,58.0763],[-68.596893,58.036845],[-68.825793,57.999845],[-68.945295,57.968788],[-69.035445,57.926025],[-69.040793,57.902513],[-68.780938,57.975841],[-68.495064,58.011653],[-68.413596,58.051754],[-68.351843,58.090718],[-68.289108,58.17769],[-68.175523,58.402585],[-68.111057,58.47333],[-68.021036,58.485319],[-67.981168,58.461238],[-67.887789,58.329412],[-67.888254,58.29577],[-67.911405,58.267245],[-68.06385,58.138984],[-68.008996,58.152058],[-67.855853,58.272619],[-67.823348,58.31024],[-67.80521,58.365482],[-67.755936,58.404601],[-67.737074,58.385429],[-67.689687,58.24381],[-67.688188,58.140224],[-67.680566,58.107048],[-67.697671,58.008759],[-67.678267,57.991138],[-67.632197,58.076145],[-67.617211,58.140327],[-67.596334,58.186113],[-67.569617,58.213501],[-67.38198,58.300008],[-67.162846,58.370365],[-67.019418,58.432919],[-66.900407,58.462788],[-66.722149,58.491004],[-66.607918,58.548933],[-66.557689,58.636628],[-66.51503,58.697296],[-66.479993,58.730886],[-66.36243,58.791166],[-66.298532,58.794525],[-66.237398,58.772253],[-66.168204,58.727113],[-66.090896,58.659055],[-66.044645,58.605622],[-66.02953,58.566813],[-66.01705,58.430801],[-66.0024,58.431214],[-65.931241,58.535084],[-65.922896,58.571981],[-65.92796,58.610945],[-65.949664,58.649857],[-66.021262,58.734761],[-66.049348,58.787885],[-66.043043,58.820648],[-65.967027,58.839225],[-65.854838,58.846615],[-65.835924,58.86049],[-65.918426,58.89563],[-65.920674,58.914647],[-65.841428,58.977072],[-65.794841,58.980457],[-65.703581,58.970613],[-65.721926,59.0026],[-65.720996,59.023762],[-65.695261,59.032056],[-65.544004,59.01185],[-65.526331,59.036242],[-65.396235,59.038412],[-65.383549,59.06022],[-65.495997,59.091329],[-65.606223,59.110759],[-65.639864,59.127709],[-65.665599,59.152772],[-65.700015,59.213311],[-65.691695,59.229408],[-65.660741,59.229667],[-65.607101,59.21313],[-65.578033,59.244963],[-65.545322,59.319739],[-65.512766,59.350409],[-65.411738,59.314984],[-65.407268,59.330229],[-65.489382,59.447741],[-65.475068,59.470324],[-65.349701,59.478799],[-65.273788,59.464174],[-65.074317,59.378004],[-65.038247,59.3879],[-65.068839,59.411464],[-65.170952,59.462262],[-65.263194,59.495439],[-65.345515,59.511045],[-65.407423,59.539338],[-65.475197,59.616775],[-65.486488,59.648685],[-65.480855,59.690259],[-65.433417,59.776507],[-65.406131,59.795214],[-65.357917,59.809063],[-65.288774,59.818055],[-65.212241,59.809528],[-65.054473,59.752787],[-65.02817,59.770719],[-65.113281,59.801621],[-65.159221,59.830147],[-65.181391,59.86663],[-65.171727,59.908023],[-65.104858,59.993393],[-65.073387,60.062226],[-64.931225,60.251982],[-64.889548,60.286501],[-64.845029,60.308309],[-64.81733,60.331046],[-64.705864,60.336137],[-64.499443,60.26826],[-64.436346,60.228107],[-64.419577,60.171366],[-64.52771,60.094523],[-64.713305,60.037163],[-64.768444,60.0121],[-64.732581,59.997553],[-64.559155,60.043415],[-64.407717,60.064809],[-64.283513,60.064086],[-64.182847,59.972929],[-64.168791,59.846528],[-64.226307,59.741186],[-64.150678,59.793612],[-64.056059,59.82255],[-63.978699,59.753717],[-63.969501,59.697623],[-63.928831,59.644938],[-63.841266,59.5744],[-63.750186,59.512595],[-63.850361,59.447793],[-63.970715,59.409061],[-63.945445,59.3802],[-63.780856,59.349246],[-63.758583,59.318653],[-63.775869,59.277157],[-63.751995,59.277364],[-63.637505,59.341443],[-63.539889,59.332864],[-63.415142,59.194372],[-63.506196,59.115203],[-63.645515,59.078927],[-63.756413,59.063475],[-63.910486,59.065594],[-63.971154,59.053812],[-63.941027,59.027405],[-63.793672,59.026992],[-63.567897,59.047042],[-63.398967,59.07965],[-63.325535,59.081588],[-63.248408,59.068333],[-63.222492,59.057171],[-63.303727,59.034433],[-63.309877,59.026475],[-63.279439,59.003169],[-63.216394,58.92798],[-63.221924,58.91103],[-63.282127,58.867363],[-63.185337,58.857751],[-63.050306,58.878164],[-63.008345,58.855426],[-62.926076,58.765044],[-62.873883,58.67244],[-63.102318,58.545729],[-63.218668,58.519529],[-63.389924,58.452556],[-63.437931,58.398813],[-63.537046,58.329928],[-63.473614,58.330678],[-63.296493,58.441188],[-63.209986,58.466923],[-63.145494,58.460463],[-63.119501,58.441756],[-63.13211,58.410854],[-63.075679,58.414781],[-62.837373,58.479377],[-62.737302,58.492192],[-62.607878,58.496378],[-62.593848,58.474002],[-62.674334,58.31918],[-62.812052,58.200401],[-63.062812,58.127098],[-63.151669,58.084155],[-63.261508,58.014676],[-63.220037,58.002145],[-62.980905,58.093302],[-62.81753,58.129269],[-62.588086,58.158104],[-62.486258,58.154073],[-62.305649,57.972276],[-62.201521,57.954654],[-62.117417,57.964111],[-61.958642,57.911763],[-61.899059,57.861326],[-61.914045,57.82505],[-61.967788,57.803345],[-61.994893,57.769446],[-61.931279,57.668573],[-61.967943,57.611936],[-62.083957,57.561913],[-62.166898,57.536592],[-62.253611,57.528763],[-62.338567,57.484502],[-62.377169,57.477991],[-62.49556,57.489204],[-62.454968,57.461971],[-62.396496,57.448173],[-62.303194,57.44068],[-62.194209,57.454581],[-62.088065,57.45285],[-61.921124,57.420785],[-61.851103,57.381304],[-61.849811,57.370426],[-61.885829,57.347869],[-61.938849,57.27436],[-61.977452,57.247927],[-61.944534,57.228135],[-61.860818,57.197543],[-61.798341,57.186225],[-61.716331,57.196199],[-61.628532,57.183177],[-61.333744,57.010577],[-61.345759,56.92159],[-61.390485,56.852964],[-61.372786,56.775811],[-61.371623,56.68083],[-61.531691,56.654578],[-62.062485,56.699072],[-62.36611,56.766975],[-62.381742,56.787697],[-62.29583,56.83281],[-62.372027,56.836169],[-62.460213,56.818444],[-62.497265,56.801701],[-62.395514,56.730026],[-62.116487,56.666826],[-61.991611,56.59081],[-61.854927,56.584298],[-61.813353,56.570527],[-61.737751,56.526007],[-61.760049,56.510763],[-61.899394,56.50544],[-62.009672,56.453867],[-61.940426,56.423585],[-61.692456,56.397075],[-61.514586,56.390331],[-61.425289,56.360643],[-61.498695,56.32757],[-61.707132,56.288709],[-61.713075,56.230935],[-61.558588,56.207836],[-61.421077,56.22184],[-61.364698,56.216026],[-61.324391,56.076216],[-61.301111,56.047174],[-61.448905,56.022369],[-61.449525,55.995704],[-61.351288,55.97369],[-61.187888,55.955396],[-61.133886,55.930256],[-61.122982,55.888553],[-61.089341,55.866358],[-60.995755,55.862353],[-60.89266,55.91421],[-60.831863,55.957877],[-60.743238,55.941444],[-60.736623,55.886977],[-60.630971,55.825017],[-60.592575,55.814836],[-60.562138,55.726986],[-60.475838,55.805121],[-60.412612,55.788559],[-60.341014,55.784657],[-60.365405,55.709106],[-60.408297,55.649575],[-60.35197,55.612368],[-60.308329,55.556971],[-60.192367,55.480903],[-60.224019,55.444368],[-60.360961,55.366285],[-60.433102,55.242778],[-60.450103,55.199938],[-60.520538,55.128987],[-60.617121,55.060205],[-60.556557,55.067492],[-60.340756,55.19397],[-60.212547,55.236422],[-59.930316,55.259418],[-59.862103,55.294868],[-59.758802,55.309596],[-59.695498,55.269133],[-59.68909,55.196321],[-59.605452,55.173325],[-59.517705,55.197355],[-59.437865,55.175909],[-59.485821,55.130175],[-59.741723,54.94259],[-59.816395,54.86722],[-59.837789,54.813941],[-59.749913,54.886986],[-59.428563,55.055503],[-59.394173,55.080721],[-59.324177,55.15281],[-59.259581,55.199938],[-59.08631,55.183247],[-58.997117,55.149451],[-58.955802,55.055089],[-58.885806,54.952253],[-58.780153,54.838358],[-58.499886,54.783116],[-58.398135,54.774125],[-58.222849,54.812675],[-58.195254,54.865902],[-58.058466,54.882206],[-57.962451,54.875746],[-57.929301,54.773143],[-57.826852,54.718676],[-57.724895,54.673717],[-57.626606,54.65036],[-57.482997,54.640283],[-57.404501,54.59088],[-57.404449,54.570416],[-57.485349,54.517499],[-57.563225,54.44045],[-57.699263,54.386551],[-57.889122,54.384097],[-58.15138,54.35043],[-58.161922,54.319992],[-58.219748,54.286454],[-58.35912,54.25333],[-58.435187,54.228111],[-58.558384,54.102977],[-58.633211,54.049569],[-58.719459,54.039415],[-58.840847,54.044505],[-58.920222,54.033085],[-58.978462,54.010244],[-59.012646,53.976292],[-59.03882,53.963631],[-59.20142,53.929112],[-59.496518,53.834156],[-59.652684,53.831236],[-59.749474,53.842295],[-59.823035,53.83444],[-59.873342,53.80775],[-60.014161,53.761577],[-60.056535,53.733361],[-60.08134,53.701012],[-60.100512,53.634246],[-60.117307,53.610113],[-60.144902,53.596135],[-60.263319,53.610061],[-60.395404,53.653315],[-60.36954,53.607478],[-60.16025,53.529989],[-60.100305,53.486968],[-60.157149,53.449813],[-60.290268,53.39147],[-60.305771,53.360102],[-60.251201,53.343566],[-60.272698,53.317108],[-60.345717,53.288996],[-60.3375,53.27742],[-60.329464,53.266103],[-60.148339,53.306566],[-59.987082,53.392814],[-59.881714,53.480069],[-59.829056,53.504538],[-59.621084,53.53681],[-59.498172,53.574766],[-59.322265,53.643754],[-59.129409,53.743955],[-58.919576,53.875316],[-58.652022,53.977894],[-58.326719,54.051791],[-58.088077,54.089515],[-57.935993,54.091169],[-57.928267,54.103571],[-58.064848,54.126774],[-58.177425,54.131322],[-58.317468,54.114475],[-58.360773,54.154473],[-58.356174,54.171913],[-58.309975,54.201653],[-58.192101,54.228163],[-57.614953,54.191111],[-57.416076,54.162767],[-57.19888,53.924357],[-57.148961,53.847721],[-57.134982,53.791859],[-57.156945,53.756874],[-57.243994,53.715481],[-57.489483,53.633109],[-57.52408,53.611405],[-57.527336,53.599881],[-57.420185,53.583241],[-57.386156,53.560555],[-57.331766,53.469088],[-57.221385,53.528516],[-57.012148,53.67259],[-56.840866,53.739433],[-56.696585,53.757649],[-56.524296,53.766434],[-56.464998,53.765039],[-56.444327,53.718323],[-56.354022,53.624479],[-56.270203,53.600114],[-56.110161,53.587582],[-55.966087,53.471129],[-55.911259,53.390824],[-55.859376,53.343876],[-55.863406,53.31225],[-55.854776,53.285818],[-55.816898,53.245742],[-55.797932,53.211946],[-55.808216,53.134664],[-55.892345,53.000434],[-55.829868,52.878426],[-55.857929,52.823391],[-55.872527,52.735696],[-55.81868,52.677147],[-55.802816,52.643169],[-55.848446,52.623326],[-56.167005,52.574776],[-56.292372,52.573794],[-56.324903,52.544519],[-56.228397,52.535967],[-56.052594,52.537414],[-55.840204,52.507622],[-55.746463,52.474575],[-55.705974,52.428273],[-55.716206,52.391479],[-55.777133,52.364246],[-55.896686,52.369594],[-56.011718,52.394477],[-56.004638,52.370395],[-55.833641,52.310399],[-55.783489,52.27991],[-55.691065,52.241618],[-55.672798,52.190148],[-55.695225,52.1378],[-56.017505,51.929285],[-56.282554,51.797045],[-56.548584,51.681006],[-56.976,51.457686],[-57.018245,51.446783],[-57.095579,51.442545],[-57.299236,51.478253],[-57.461655,51.469107],[-57.769569,51.425905],[-57.85375,51.399499],[-58.022654,51.322087],[-58.08942,51.311003],[-58.270443,51.295216],[-58.442267,51.305913],[-58.510377,51.295061],[-58.593266,51.25713],[-58.614763,51.237054],[-58.637604,51.171657],[-59.054943,50.879117],[-59.165375,50.779898],[-59.37805,50.675434],[-59.611886,50.492112],[-59.81531,50.418267],[-59.886313,50.316386],[-60.080203,50.254581],[-60.438114,50.238846],[-60.608207,50.221121],[-60.807239,50.249801],[-60.9563,50.205411],[-61.180705,50.19151],[-61.289768,50.201949],[-61.724857,50.104074],[-61.835342,50.196962],[-61.919522,50.232851],[-62.165218,50.238923],[-62.361666,50.277293],[-62.540932,50.284528],[-62.715443,50.301684],[-62.830216,50.301478],[-62.94977,50.291349],[-63.135624,50.293778],[-63.238641,50.242567],[-63.586682,50.258225],[-63.733572,50.30463],[-63.853952,50.314345],[-64.015829,50.303958],[-64.170393,50.269438],[-64.508951,50.308919],[-64.867844,50.275485],[-65.1809,50.297912],[-65.26862,50.32003],[-65.76244,50.259258],[-65.955374,50.294166],[-66.125519,50.201019],[-66.242204,50.220346],[-66.368863,50.206652],[-66.411083,50.224273],[-66.495522,50.211871],[-66.550067,50.161176],[-66.621716,50.155414],[-66.740882,50.065523],[-66.94118,49.993693],[-67.234392,49.601779],[-67.261884,49.451194],[-67.372006,49.348461],[-67.46921,49.334638],[-67.549282,49.332286],[-68.056228,49.256787],[-68.281925,49.197152],[-68.220585,49.149636],[-68.29456,49.114367],[-68.414397,49.099536],[-68.543847,49.056127],[-68.627899,49.00719],[-68.669059,48.939494],[-68.929043,48.828958],[-69.230756,48.573625],[-69.374959,48.386401],[-69.550116,48.250802],[-69.673881,48.199177],[-69.761938,48.191167],[-69.8517,48.207394],[-70.001019,48.270956],[-70.11065,48.277984],[-70.383709,48.366505],[-71.018244,48.455596],[-70.922591,48.422316],[-70.838745,48.367384],[-70.671081,48.353199],[-70.500652,48.354361],[-70.145325,48.243541],[-69.971176,48.20574],[-69.865497,48.172254],[-69.774986,48.098098],[-69.839814,47.952577],[-69.905547,47.832223],[-69.994456,47.739877],[-70.300096,47.503018],[-70.448046,47.423462],[-70.70586,47.13981],[-70.972717,47.006692],[-71.115654,46.92494],[-71.267789,46.795955],[-71.62477,46.69839],[-71.757268,46.673586],[-71.879612,46.686815],[-72.028466,46.60744],[-72.204631,46.558864],[-72.256643,46.48507],[-72.680132,46.287304],[-72.842706,46.262396],[-72.981018,46.209738],[-73.02192,46.12026],[-73.145426,46.066284],[-73.179688,46.024995],[-73.283532,45.899834],[-73.476595,45.738242],[-73.711852,45.711164],[-73.797841,45.65494],[-73.897396,45.564144],[-74.037827,45.501874],[-74.315097,45.531071],[-74.247633,45.492882],[-73.999612,45.433351],[-73.973851,45.345139],[-74.098107,45.324004],[-74.358298,45.206388],[-74.708871,45.003868]]],[[[-96.78233,72.936634],[-96.943793,72.926712],[-97.092776,72.99694],[-97.097659,73.062388],[-97.087686,73.098484],[-97.069212,73.130162],[-97.015003,73.157292],[-96.862428,73.188815],[-96.793156,73.165457],[-96.767757,73.137319],[-96.744425,73.126286],[-96.645982,73.101895],[-96.598491,73.073835],[-96.603504,73.041537],[-96.635388,72.992444],[-96.670631,72.960922],[-96.709234,72.946969],[-96.78233,72.936634]]],[[[-114.521531,72.592934],[-114.458124,72.58035],[-114.342421,72.590763],[-114.174472,72.624095],[-113.957819,72.651483],[-113.692435,72.672825],[-113.622181,72.646832],[-113.578075,72.652103],[-113.500069,72.694426],[-113.486142,72.72228],[-113.495909,72.753647],[-113.491387,72.822067],[-113.44984,72.863253],[-113.292407,72.949811],[-113.20802,72.981024],[-113.073558,72.995286],[-112.753629,72.98601],[-112.453776,72.936608],[-112.048091,72.888058],[-111.455414,72.765895],[-111.26974,72.713727],[-111.250413,72.668562],[-111.355497,72.572108],[-111.610908,72.435579],[-111.816012,72.386331],[-111.89518,72.356101],[-111.761596,72.335275],[-111.675116,72.300135],[-111.543548,72.350933],[-111.447352,72.407725],[-111.311185,72.454854],[-111.264779,72.45904],[-111.253436,72.449066],[-111.277156,72.42483],[-111.287258,72.401137],[-111.283744,72.37796],[-111.268087,72.363852],[-111.184629,72.356617],[-111.139877,72.365351],[-110.958984,72.431962],[-110.781553,72.533893],[-110.512551,72.599703],[-110.439326,72.633345],[-110.205128,72.661302],[-110.207945,72.681042],[-110.19717,72.758867],[-110.279103,72.792043],[-110.553634,72.861444],[-110.689414,72.94454],[-110.660837,73.008205],[-110.50927,72.99893],[-110.094618,72.992134],[-110.008448,72.983659],[-109.609971,72.875707],[-109.469075,72.808424],[-109.357118,72.775041],[-109.121913,72.726414],[-109.043003,72.686881],[-108.987399,72.67081],[-108.968175,72.654119],[-108.985383,72.636807],[-108.994427,72.595983],[-108.95076,72.582857],[-108.79785,72.567509],[-108.754984,72.551076],[-108.698295,72.499244],[-108.627731,72.412014],[-108.566339,72.317343],[-108.469601,72.138749],[-108.276434,71.900366],[-108.210392,71.751176],[-108.188223,71.723788],[-108.144685,71.704926],[-108.020791,71.677512],[-107.925345,71.638677],[-107.812845,71.626171],[-107.785457,71.629685],[-107.757474,71.663016],[-107.687271,71.716114],[-107.346931,71.819234],[-107.329283,71.835254],[-107.36941,71.858973],[-107.381786,71.875148],[-107.376851,71.886103],[-107.306003,71.894682],[-107.542629,72.02532],[-107.69585,72.149317],[-107.794035,72.302615],[-107.809021,72.347471],[-107.823749,72.442762],[-107.855633,72.467825],[-107.909816,72.490769],[-107.932502,72.520406],[-107.923665,72.556657],[-107.934362,72.587766],[-107.997175,72.652697],[-108.23822,73.105822],[-108.237419,73.149902],[-108.204139,73.183079],[-108.118305,73.202044],[-107.979915,73.206746],[-107.936197,73.217133],[-107.987072,73.233101],[-108.07748,73.281419],[-108.089392,73.303691],[-108.029034,73.348753],[-107.720009,73.329039],[-107.496275,73.288395],[-107.113456,73.192122],[-107.074441,73.197393],[-107.032531,73.245297],[-106.950805,73.276019],[-106.828358,73.265916],[-106.482125,73.196204],[-106.081633,73.071923],[-105.812709,73.010634],[-105.624167,72.927513],[-105.495932,72.84899],[-105.415136,72.788322],[-105.411674,72.764654],[-105.430097,72.740367],[-105.41108,72.708741],[-105.354546,72.669725],[-105.323178,72.634792],[-105.297572,72.560455],[-105.246904,72.463588],[-105.234088,72.415089],[-104.878296,71.979999],[-104.810315,71.903157],[-104.76701,71.867603],[-104.518318,71.699241],[-104.385923,71.576949],[-104.373159,71.49512],[-104.355356,71.471658],[-104.349568,71.433986],[-104.355795,71.382103],[-104.384889,71.337532],[-104.436824,71.300274],[-104.487053,71.247899],[-104.563069,71.132403],[-104.569581,71.104032],[-104.514804,71.064267],[-104.166866,70.927196],[-103.953468,70.762658],[-103.853449,70.733771],[-103.584576,70.630857],[-103.294671,70.572463],[-103.197184,70.547296],[-103.104967,70.51027],[-103.077191,70.508823],[-103.0212,70.515799],[-103.00518,70.525928],[-103.001201,70.540966],[-103.082798,70.619075],[-103.088586,70.649693],[-103.04957,70.655067],[-102.750467,70.521897],[-102.589159,70.468851],[-102.368733,70.413248],[-101.989841,70.285038],[-101.937209,70.274574],[-101.732234,70.286356],[-101.676321,70.278269],[-101.641181,70.265582],[-101.626815,70.248322],[-101.618443,70.17241],[-101.562426,70.134996],[-101.239138,70.150964],[-101.148549,70.147631],[-101.090775,70.135693],[-101.04269,70.110811],[-100.973314,70.029473],[-100.909081,69.869198],[-100.905722,69.811734],[-100.935125,69.715332],[-100.982384,69.679881],[-101.043698,69.668719],[-101.216219,69.679623],[-101.337271,69.710267],[-101.40011,69.749283],[-101.456747,69.833877],[-101.483826,69.850207],[-101.508398,69.833154],[-101.565087,69.755639],[-101.602475,69.721274],[-101.64764,69.698537],[-101.733578,69.704169],[-101.860237,69.738069],[-102.097923,69.824601],[-102.182129,69.845944],[-102.234323,69.842249],[-102.348114,69.813],[-102.523504,69.758223],[-102.595903,69.717915],[-102.565259,69.69218],[-102.544924,69.659831],[-102.534873,69.620815],[-102.540919,69.592083],[-102.563114,69.573583],[-102.621095,69.551517],[-102.74362,69.547745],[-102.919759,69.564643],[-103.059182,69.594667],[-103.303198,69.6743],[-103.359267,69.685359],[-103.434766,69.667686],[-103.464894,69.644483],[-103.418023,69.61141],[-103.294051,69.568467],[-103.142433,69.497257],[-103.101841,69.483356],[-103.062748,69.484906],[-103.04895,69.471781],[-103.031845,69.433488],[-103.039803,69.367601],[-103.112719,69.235981],[-103.120212,69.204613],[-103.090343,69.212003],[-102.884102,69.341323],[-102.777442,69.377574],[-102.5465,69.43447],[-102.446764,69.476302],[-102.151408,69.487697],[-102.045962,69.46483],[-101.978214,69.425117],[-101.975527,69.40703],[-102.052861,69.360469],[-102.066891,69.337112],[-102.070922,69.307604],[-102.063997,69.281146],[-102.046091,69.257685],[-101.992994,69.236033],[-101.899098,69.245489],[-101.872846,69.23996],[-101.822513,69.217067],[-101.789285,69.181617],[-101.787812,69.132266],[-101.857111,69.023953],[-101.980566,68.988503],[-102.358811,68.922873],[-102.488416,68.888922],[-102.738323,68.864996],[-102.834854,68.833267],[-102.895058,68.823655],[-103.162251,68.828719],[-103.468201,68.808565],[-103.82035,68.847994],[-104.067337,68.865564],[-104.352695,68.928196],[-104.460182,68.912409],[-104.571441,68.872127],[-105.105879,68.920393],[-105.169286,68.955378],[-105.148357,68.978116],[-105.021646,69.052504],[-105.013585,69.068084],[-105.019579,69.081262],[-105.262355,69.093974],[-105.53301,69.133558],[-105.804983,69.153195],[-106.008408,69.147614],[-106.140854,69.162032],[-106.270149,69.194588],[-106.341178,69.224354],[-106.353942,69.251225],[-106.355699,69.280629],[-106.344253,69.339644],[-106.361358,69.381037],[-106.419985,69.413748],[-106.539796,69.443074],[-106.659066,69.439586],[-106.759938,69.407107],[-106.855798,69.347292],[-107.033461,69.180739],[-107.1225,69.152317],[-107.35339,69.031678],[-107.439896,69.002145],[-107.863385,68.954344],[-108.364982,68.934759],[-108.552542,68.897397],[-108.730412,68.827427],[-108.945877,68.759834],[-109.472098,68.676687],[-109.958554,68.630281],[-110.467619,68.609998],[-110.848112,68.578398],[-110.957253,68.594211],[-111.127604,68.588346],[-111.310926,68.542018],[-111.518071,68.533078],[-112.304948,68.516232],[-112.666192,68.485277],[-112.864268,68.477113],[-113.019504,68.48135],[-113.127715,68.494166],[-113.231403,68.535378],[-113.338064,68.598759],[-113.55482,68.767586],[-113.616832,68.838486],[-113.592544,68.959874],[-113.608564,69.03018],[-113.680678,69.181979],[-113.69414,69.195027],[-114.073419,69.251329],[-114.322965,69.269157],[-114.699066,69.272775],[-115.159038,69.264765],[-115.618131,69.282955],[-115.860752,69.303548],[-116.101538,69.337163],[-116.513503,69.4246],[-116.536809,69.43354],[-116.568797,69.462685],[-116.609466,69.512036],[-116.711992,69.576219],[-116.99275,69.719362],[-117.104009,69.804267],[-117.121993,69.825867],[-117.148658,69.888138],[-117.18403,69.991077],[-117.195399,70.054071],[-117.16274,70.092492],[-117.135429,70.100166],[-116.55381,70.175045],[-115.529118,70.257107],[-114.592328,70.312453],[-114.167005,70.307492],[-113.916581,70.281524],[-113.665511,70.269665],[-113.210759,70.263825],[-112.6379,70.225223],[-112.522764,70.228582],[-112.265958,70.254678],[-112.189658,70.275607],[-111.783688,70.27292],[-111.704856,70.285762],[-111.63256,70.308835],[-111.725836,70.352037],[-112.114159,70.446863],[-113.145517,70.616362],[-113.397026,70.65238],[-113.757289,70.690724],[-113.966061,70.696202],[-114.232195,70.674291],[-114.331414,70.675221],[-114.592638,70.642252],[-114.840737,70.6214],[-115.311225,70.601169],[-115.990899,70.586286],[-116.086087,70.590679],[-116.225898,70.616388],[-116.327287,70.623752],[-116.992543,70.603649],[-117.587055,70.629539],[-118.264068,70.888309],[-118.376516,70.96771],[-118.352538,71.000059],[-118.269106,71.034734],[-117.933855,71.134676],[-117.814069,71.158448],[-117.313945,71.212088],[-116.815293,71.276942],[-116.421519,71.337972],[-116.228223,71.359159],[-116.04211,71.361691],[-115.891654,71.381793],[-115.922273,71.401068],[-116.045288,71.423083],[-116.043919,71.454295],[-115.980254,71.469281],[-115.733757,71.485094],[-115.471861,71.465819],[-115.341016,71.472434],[-115.303422,71.493724],[-115.338122,71.510881],[-115.58666,71.546408],[-116.780282,71.444167],[-117.337122,71.434606],[-117.723351,71.390681],[-117.935638,71.392077],[-118.188181,71.43595],[-118.221874,71.449076],[-118.226447,71.467111],[-118.148338,71.525712],[-117.878407,71.560852],[-117.742342,71.659347],[-117.887605,71.661053],[-118.371529,71.639943],[-118.582989,71.649012],[-118.868398,71.686787],[-118.952088,71.731746],[-118.987719,71.76425],[-118.993739,71.803034],[-118.984205,71.913079],[-118.959813,71.972196],[-118.944621,71.985529],[-118.589862,72.167482],[-118.368661,72.20549],[-118.213502,72.262876],[-118.207482,72.286906],[-118.245878,72.311039],[-118.390494,72.369536],[-118.44863,72.399199],[-118.48129,72.427672],[-118.456588,72.472528],[-118.374526,72.533867],[-118.13312,72.632828],[-117.551708,72.83111],[-117.256455,72.914413],[-116.971666,72.95932],[-116.573241,73.054921],[-115.552192,73.213464],[-114.638217,73.372679],[-114.301907,73.330718],[-114.206408,73.2978],[-114.163982,73.269843],[-114.127033,73.230698],[-114.095459,73.180288],[-114.051689,73.070992],[-114.04616,73.014613],[-114.053756,72.958053],[-114.074737,72.906816],[-114.109153,72.861005],[-114.177676,72.805065],[-114.280306,72.739075],[-114.497838,72.625903],[-114.521531,72.592934]]],[[[-105.288917,72.919942],[-105.339379,72.914878],[-105.434076,72.937977],[-105.572982,72.989292],[-105.800152,73.093317],[-106.071039,73.196385],[-106.112639,73.258087],[-106.180025,73.304105],[-106.525714,73.4134],[-106.750378,73.457739],[-106.92153,73.479856],[-106.949668,73.510371],[-106.830993,73.599074],[-106.694826,73.669922],[-106.613952,73.695605],[-106.362107,73.718601],[-105.512314,73.765756],[-105.317959,73.767126],[-105.114431,73.744414],[-104.834655,73.647288],[-104.718254,73.636281],[-104.648801,73.614422],[-104.587512,73.578093],[-104.55506,73.541093],[-104.552321,73.465594],[-104.582861,73.353921],[-104.621748,73.311133],[-104.790988,73.167627],[-104.968626,73.088666],[-105.002577,73.037558],[-105.074614,72.997043],[-105.200653,72.947331],[-105.288917,72.919942]]],[[[-79.537284,73.654471],[-79.366778,73.641345],[-78.286534,73.66584],[-78.06293,73.64765],[-77.382145,73.536649],[-77.206548,73.499545],[-77.119783,73.450478],[-77.041493,73.373041],[-77.00532,73.35604],[-76.758668,73.309996],[-76.657279,73.254185],[-76.621571,73.225324],[-76.569791,73.159256],[-76.458454,73.121842],[-76.331149,73.1005],[-76.289524,73.080992],[-76.309549,72.997922],[-76.255288,72.959216],[-76.135037,72.912423],[-76.090001,72.881185],[-76.183406,72.843048],[-76.400551,72.820672],[-77.013562,72.843978],[-77.835915,72.896843],[-78.314207,72.881857],[-78.554063,72.857698],[-79.134156,72.771631],[-79.319313,72.757704],[-79.500517,72.755973],[-79.820704,72.82633],[-79.936846,72.863615],[-79.97532,72.892502],[-80.051594,72.976993],[-80.114433,73.078227],[-80.14642,73.161323],[-80.183317,73.224678],[-80.292716,73.245607],[-80.617916,73.270825],[-80.726876,73.305448],[-80.776408,73.33418],[-80.824157,73.380689],[-80.822942,73.428955],[-80.798008,73.471536],[-80.776976,73.481975],[-80.735842,73.483086],[-80.826999,73.534685],[-80.858521,73.591426],[-80.860718,73.670542],[-80.848858,73.721237],[-80.822865,73.743458],[-80.762765,73.757772],[-80.621378,73.767332],[-80.412295,73.76542],[-80.120272,73.707078],[-79.88933,73.701496],[-79.537284,73.654471]]],[[[-86.58936,71.010808],[-86.549673,70.988794],[-86.321289,71.016802],[-86.12714,71.048997],[-85.824575,71.125736],[-85.643862,71.152453],[-85.094852,71.151936],[-85.001576,71.137467],[-85.042788,71.091578],[-85.065784,71.078607],[-85.047671,71.058686],[-84.988502,71.031763],[-84.870318,71.00179],[-84.823706,71.028636],[-84.789599,71.093284],[-84.708597,71.358694],[-84.674309,71.438792],[-84.658083,71.514602],[-84.659943,71.586122],[-84.699398,71.631468],[-84.840139,71.658624],[-85.03222,71.654076],[-85.130922,71.661208],[-85.250501,71.675315],[-85.339075,71.697278],[-85.396694,71.727043],[-85.511519,71.816547],[-85.596217,71.866415],[-85.813309,71.956435],[-85.911598,71.986511],[-85.862092,72.021961],[-85.664791,72.062785],[-85.545781,72.101542],[-85.405893,72.214869],[-85.321867,72.233137],[-85.018733,72.218176],[-84.608473,72.129499],[-84.351642,72.052657],[-84.283739,72.044492],[-84.282344,72.058444],[-84.347456,72.094437],[-84.642993,72.189547],[-84.777533,72.258768],[-84.841999,72.308145],[-84.811045,72.329539],[-84.644673,72.351398],[-84.623046,72.376564],[-84.849441,72.406227],[-84.964162,72.405607],[-85.056818,72.384368],[-85.156399,72.382921],[-85.341116,72.421523],[-85.391294,72.444002],[-85.497773,72.510613],[-85.553687,72.568594],[-85.615595,72.604638],[-85.637894,72.63319],[-85.649909,72.722176],[-85.644534,72.774447],[-85.619445,72.819173],[-85.574616,72.85638],[-85.454804,72.925161],[-85.387573,72.945005],[-85.262129,72.953997],[-84.989535,72.91989],[-84.256634,72.796746],[-84.274256,72.836433],[-85.094025,73.002624],[-85.383904,73.045413],[-85.454753,73.105461],[-85.018397,73.335498],[-84.616044,73.389526],[-84.416082,73.456499],[-84.08897,73.459392],[-83.781883,73.416914],[-83.776535,73.42849],[-83.914976,73.508382],[-83.904072,73.528329],[-83.729845,73.575871],[-83.410355,73.631682],[-83.020457,73.67602],[-82.9432,73.699119],[-82.84331,73.715423],[-82.6596,73.729608],[-82.202781,73.736456],[-81.946155,73.729815],[-81.605349,73.696019],[-81.406137,73.634524],[-81.344073,73.59773],[-81.238343,73.479546],[-81.151734,73.314027],[-81.025126,73.245194],[-80.821728,73.20716],[-80.681168,73.165819],[-80.603447,73.12117],[-80.582776,73.064946],[-80.619156,72.997147],[-80.591871,72.927694],[-80.500921,72.856587],[-80.430821,72.816279],[-80.277265,72.770184],[-80.274707,72.74556],[-80.322663,72.717474],[-80.424336,72.678923],[-80.675122,72.558621],[-80.99872,72.426225],[-81.229352,72.311711],[-81.240565,72.277914],[-80.760801,72.45718],[-80.611456,72.450823],[-80.604687,72.42576],[-80.702433,72.338272],[-80.821469,72.260241],[-80.94123,72.210166],[-80.919345,72.191253],[-80.6914,72.103454],[-80.733258,72.089011],[-80.843277,72.096168],[-80.88839,72.088287],[-80.921076,72.072294],[-80.941385,72.048264],[-80.942702,72.014364],[-80.925029,71.970698],[-80.926786,71.93809],[-80.947922,71.916567],[-80.925132,71.907652],[-80.858444,71.911425],[-80.802246,71.929202],[-80.705404,71.988113],[-80.386147,72.148775],[-80.181922,72.208771],[-80.116086,72.214042],[-79.928294,72.174975],[-79.884369,72.177197],[-80.090894,72.300858],[-80.108929,72.332174],[-80.066968,72.378296],[-80.041801,72.394238],[-79.926718,72.428163],[-79.831297,72.446276],[-79.777864,72.438705],[-79.693321,72.375944],[-79.653841,72.332174],[-79.58369,72.314656],[-79.42742,72.337316],[-79.323318,72.390827],[-79.194385,72.355713],[-79.000237,72.272023],[-79.017962,72.188256],[-79.017755,72.104359],[-79.007833,72.042941],[-78.775935,71.93039],[-78.614472,71.880987],[-78.585094,71.880626],[-78.588867,71.897498],[-78.622534,71.934938],[-78.711159,71.972403],[-78.790844,72.030281],[-78.862752,72.100819],[-78.820093,72.265408],[-78.699248,72.351398],[-78.582485,72.329358],[-78.428799,72.279774],[-78.307489,72.275124],[-78.116337,72.280317],[-77.726025,72.179987],[-77.516503,72.177791],[-77.535727,72.21877],[-77.694477,72.238407],[-77.926194,72.29383],[-78.28718,72.359821],[-78.453061,72.435191],[-78.484299,72.470616],[-78.479494,72.508727],[-78.458849,72.542342],[-78.422417,72.57154],[-78.350225,72.60022],[-78.001021,72.687605],[-77.753207,72.72476],[-77.566784,72.736853],[-77.255382,72.735871],[-76.893492,72.720678],[-76.697949,72.695046],[-76.473259,72.633345],[-76.188781,72.572211],[-76.087288,72.561308],[-75.968742,72.562729],[-75.833195,72.576526],[-75.704314,72.57154],[-75.294262,72.480847],[-75.185793,72.434235],[-75.120086,72.377727],[-75.071459,72.322847],[-75.039859,72.269568],[-75.052674,72.226367],[-75.394152,72.039789],[-75.542774,72.007982],[-75.640959,71.93716],[-75.78741,71.803059],[-75.911278,71.731281],[-75.922802,71.717225],[-75.896809,71.713711],[-75.822085,71.745905],[-75.693359,71.838587],[-75.599876,71.918479],[-75.428362,71.984392],[-75.147656,72.062992],[-74.903174,72.100509],[-74.694918,72.096943],[-74.519684,72.085652],[-74.377418,72.066558],[-74.292979,72.05059],[-74.26634,72.03767],[-74.209315,71.978656],[-74.212596,71.938658],[-74.248253,71.893648],[-74.315743,71.842695],[-74.621512,71.786265],[-74.789047,71.741978],[-74.892968,71.725545],[-75.20481,71.709112],[-75.191064,71.691593],[-74.95945,71.66746],[-74.700758,71.675574],[-74.707372,71.646945],[-74.828941,71.570877],[-74.868293,71.504731],[-74.834496,71.4506],[-74.840749,71.406598],[-74.931286,71.314045],[-75.035337,71.230536],[-74.996218,71.218108],[-74.758945,71.338127],[-74.695332,71.469436],[-74.599575,71.584881],[-74.488109,71.648392],[-74.404083,71.672525],[-74.139035,71.68224],[-73.992093,71.749626],[-73.866597,71.771046],[-73.814042,71.771433],[-73.707227,71.746345],[-73.713557,71.71986],[-73.868612,71.599351],[-74.197274,71.404169],[-74.063329,71.426442],[-73.972508,71.472873],[-73.850887,71.519149],[-73.712859,71.58762],[-73.621702,71.525557],[-73.481607,71.479255],[-73.397788,71.373422],[-73.262422,71.322469],[-73.180618,71.282884],[-73.192194,71.349857],[-73.310455,71.484267],[-73.278209,71.538011],[-73.186819,71.564909],[-72.901927,71.67777],[-72.70305,71.640149],[-72.580629,71.606792],[-72.519289,71.615629],[-72.364596,71.610978],[-72.116497,71.592788],[-71.875194,71.561214],[-71.640686,71.516255],[-71.459922,71.4637],[-71.332953,71.403446],[-71.256084,71.361794],[-71.229368,71.338747],[-71.186554,71.278699],[-71.219368,71.23883],[-71.396567,71.146872],[-71.49501,71.105117],[-71.593092,71.086385],[-71.856125,71.104807],[-71.937929,71.094291],[-72.023867,71.065327],[-72.2977,70.938823],[-72.449112,70.884097],[-72.598044,70.849216],[-72.632719,70.830767],[-72.312557,70.832498],[-72.223906,70.870145],[-72.149983,70.940683],[-72.009165,71.013444],[-71.74254,71.046878],[-71.370858,70.975151],[-71.186244,70.978019],[-71.045374,71.049979],[-70.888019,71.09902],[-70.826059,71.108761],[-70.792469,71.103309],[-70.672632,71.052201],[-70.636458,71.006571],[-70.639094,70.902443],[-70.655242,70.87092],[-70.761722,70.792217],[-71.021758,70.67411],[-71.191825,70.629798],[-71.380444,70.605975],[-71.585909,70.565874],[-71.658463,70.533524],[-71.729389,70.487687],[-71.80016,70.457018],[-71.89018,70.431541],[-71.772384,70.394205],[-71.727244,70.395238],[-71.683681,70.417563],[-71.56498,70.505671],[-71.476665,70.544041],[-71.426642,70.552102],[-71.375069,70.548433],[-71.32484,70.531173],[-71.275851,70.500297],[-71.279571,70.425211],[-71.429433,70.127761],[-71.405145,70.12864],[-71.313058,70.209307],[-71.04527,70.519055],[-70.979796,70.581067],[-70.850554,70.643595],[-70.560959,70.738267],[-70.337252,70.787824],[-70.084709,70.829527],[-69.949782,70.84503],[-69.795708,70.834591],[-69.695482,70.785912],[-69.56009,70.777127],[-69.395371,70.789271],[-69.289047,70.783432],[-69.168692,70.764156],[-69.065701,70.728086],[-68.890751,70.687107],[-68.495762,70.610264],[-68.446669,70.594115],[-68.400832,70.564995],[-68.358251,70.522879],[-68.363522,70.481228],[-68.416645,70.43999],[-68.482584,70.414824],[-68.561339,70.405677],[-68.642833,70.383198],[-68.793677,70.32439],[-68.842924,70.314442],[-69.079447,70.289147],[-69.29871,70.276796],[-69.435679,70.253128],[-69.69897,70.189308],[-70.061454,70.07084],[-70.057734,70.042624],[-69.913091,70.029033],[-69.795838,70.046939],[-69.634555,70.128743],[-69.482988,70.160059],[-69.246207,70.185122],[-68.918553,70.206981],[-68.778225,70.203545],[-68.752955,70.199152],[-68.73461,70.179851],[-68.723293,70.145641],[-68.776959,70.101044],[-68.8391,70.079909],[-69.008315,69.978933],[-68.897029,69.952733],[-68.744067,69.941416],[-68.656708,69.968443],[-68.577824,70.030454],[-68.489354,70.064845],[-68.391272,70.071615],[-68.305076,70.087402],[-68.230662,70.112207],[-68.21043,70.128433],[-68.318615,70.160576],[-68.327193,70.180161],[-68.283113,70.228272],[-68.203532,70.281499],[-68.120643,70.314623],[-68.059096,70.317259],[-67.855336,70.281783],[-67.716016,70.219849],[-67.363686,70.034433],[-67.318418,69.998415],[-67.195893,69.860697],[-67.172639,69.799461],[-67.192766,69.756828],[-67.221628,69.730731],[-67.2593,69.721274],[-67.336711,69.721016],[-67.806192,69.777395],[-68.02039,69.770057],[-68.113976,69.754296],[-68.189476,69.730628],[-68.248103,69.700759],[-68.289805,69.664689],[-68.3721,69.64438],[-68.669937,69.643656],[-68.837085,69.623554],[-69.124509,69.574513],[-69.227681,69.547435],[-69.25078,69.511933],[-69.074926,69.518108],[-68.785279,69.56423],[-68.513022,69.577304],[-68.058166,69.475863],[-67.908253,69.460102],[-67.824847,69.474726],[-67.724517,69.479248],[-67.360947,69.472504],[-67.23695,69.460102],[-67.052672,69.421189],[-66.770854,69.336647],[-66.716749,69.311842],[-66.685226,69.285745],[-66.676286,69.258434],[-66.679284,69.191074],[-66.707396,69.168233],[-66.802894,69.152756],[-67.208011,69.170662],[-67.331647,69.184718],[-67.483808,69.166993],[-67.607237,69.173194],[-67.765057,69.200221],[-67.938457,69.248125],[-68.198209,69.202701],[-68.406284,69.232234],[-68.618907,69.206009],[-69.040612,69.098005],[-68.993483,69.07935],[-68.415534,69.172057],[-68.303939,69.166424],[-68.121263,69.132602],[-67.832598,69.065965],[-67.751699,69.03868],[-67.751027,68.933829],[-67.795133,68.863316],[-67.883189,68.783967],[-68.015636,68.794664],[-68.324196,68.844067],[-68.450416,68.850836],[-68.542787,68.842775],[-68.666682,68.811304],[-68.725309,68.810193],[-69.21887,68.872799],[-69.329768,68.875796],[-69.342687,68.869388],[-69.319097,68.856986],[-68.871424,68.759938],[-68.540643,68.749344],[-68.333188,68.732549],[-68.210405,68.702964],[-68.152501,68.681079],[-68.148315,68.616122],[-68.037935,68.550751],[-67.938457,68.52419],[-67.87505,68.52295],[-67.765987,68.547031],[-67.655968,68.550726],[-67.56693,68.533982],[-67.455515,68.497886],[-67.320691,68.48781],[-67.202507,68.465847],[-67.111195,68.461455],[-66.854208,68.471635],[-66.742742,68.457786],[-66.713907,68.445719],[-66.762405,68.424661],[-66.997275,68.374173],[-67.032957,68.326088],[-66.900407,68.263534],[-66.830954,68.21563],[-66.834313,68.17987],[-66.90511,68.098479],[-66.923093,68.065716],[-66.899787,68.063081],[-66.728996,68.12902],[-66.702331,68.120545],[-66.68458,68.029233],[-66.662721,68.034401],[-66.605464,68.110003],[-66.630966,68.210669],[-66.530766,68.250356],[-66.212387,68.280432],[-66.266286,68.122716],[-66.274683,68.040757],[-66.413873,67.904279],[-66.52999,67.860303],[-66.526476,67.851156],[-66.443975,67.833844],[-66.392376,67.831932],[-66.342973,67.853275],[-66.225177,67.95872],[-65.985838,68.068559],[-65.942378,68.070936],[-65.94398,68.031197],[-65.974882,67.957428],[-65.864346,67.922831],[-65.758926,67.957093],[-65.701721,67.986652],[-65.569351,67.982311],[-65.509071,67.968255],[-65.491139,67.935699],[-65.551988,67.79935],[-65.540852,67.765631],[-65.401274,67.674836],[-65.387114,67.680288],[-65.413469,67.724084],[-65.442253,67.832346],[-65.415304,67.879268],[-65.30035,67.939497],[-65.064395,68.026236],[-64.976907,68.043392],[-64.922311,68.031662],[-64.835469,67.99001],[-64.862547,67.965128],[-64.956391,67.939109],[-65.026025,67.892032],[-65.071449,67.823845],[-65.021116,67.787568],[-64.829862,67.784261],[-64.63778,67.840252],[-64.527529,67.812709],[-64.396426,67.739948],[-64.156233,67.622979],[-64.019446,67.654889],[-63.85018,67.566083],[-64.077504,67.495622],[-64.007948,67.347337],[-64.303279,67.35346],[-64.469289,67.341859],[-64.580445,67.355191],[-64.699947,67.35054],[-64.58923,67.31553],[-64.37591,67.30106],[-64.356428,67.256153],[-64.188945,67.25729],[-64.063216,67.26592],[-63.836253,67.264112],[-63.824109,67.315685],[-63.676444,67.34514],[-63.591591,67.377541],[-63.521104,67.358369],[-63.315846,67.336329],[-63.040126,67.235018],[-63.161617,67.17435],[-63.19469,67.117041],[-63.235566,67.068516],[-63.258407,67.024643],[-63.306802,66.994464],[-63.701533,66.822381],[-63.636214,66.82078],[-63.469195,66.862379],[-63.143685,66.924339],[-62.962301,66.949247],[-62.833343,66.932711],[-62.768179,66.931987],[-62.71043,66.954105],[-62.602892,66.928628],[-62.379753,66.905374],[-62.123593,67.046709],[-61.968538,67.019062],[-61.824128,66.931729],[-61.514715,66.778482],[-61.353407,66.689211],[-61.299715,66.648749],[-61.307234,66.608854],[-61.453091,66.566583],[-61.527815,66.558108],[-61.724134,66.637793],[-61.904485,66.678101],[-62.014245,66.67376],[-62.123334,66.643064],[-62.089305,66.625908],[-61.65264,66.503124],[-61.576417,66.412484],[-61.570784,66.3729],[-61.862678,66.312826],[-61.956368,66.309312],[-62.158448,66.337992],[-62.276891,66.391503],[-62.374508,66.41083],[-62.509822,66.417187],[-62.553127,66.406851],[-62.405643,66.315901],[-62.419854,66.28859],[-62.496025,66.270891],[-62.533568,66.227017],[-62.242087,66.147927],[-62.023909,66.067544],[-61.991611,66.035298],[-62.138656,66.011372],[-62.244361,66.005842],[-62.467784,66.017469],[-62.59036,66.034419],[-62.624131,66.016255],[-62.497368,65.97401],[-62.448379,65.945484],[-62.410294,65.905745],[-62.388176,65.868331],[-62.382001,65.833295],[-62.485638,65.804511],[-62.610255,65.723637],[-62.658909,65.639921],[-62.771719,65.631963],[-62.817297,65.647725],[-62.96889,65.622351],[-63.168955,65.657336],[-63.240682,65.695577],[-63.458757,65.853035],[-63.464338,65.835362],[-63.409767,65.755832],[-63.420878,65.708599],[-63.651949,65.674338],[-63.651045,65.661005],[-63.509219,65.636046],[-63.337446,65.61677],[-63.364266,65.543235],[-63.363362,65.229714],[-63.401809,65.118454],[-63.485835,65.021225],[-63.606603,64.928079],[-63.737163,64.989108],[-63.789382,65.051378],[-63.833204,65.083289],[-63.895629,65.109256],[-63.97627,65.121503],[-64.061433,65.121943],[-64.151841,65.066184],[-64.25044,65.11432],[-64.345731,65.172405],[-64.309764,65.324566],[-64.269663,65.400763],[-64.285735,65.400194],[-64.339917,65.364176],[-64.469832,65.25271],[-64.555072,65.116594],[-64.665324,65.168942],[-64.764801,65.234081],[-64.846941,65.29958],[-64.979646,65.37508],[-65.108475,65.463756],[-65.175706,65.568143],[-65.206996,65.589666],[-65.282005,65.676663],[-65.31146,65.70152],[-65.337402,65.709788],[-65.40161,65.763996],[-65.378097,65.822081],[-65.276966,65.890655],[-65.184879,65.939955],[-65.032252,65.988531],[-64.85371,66.015893],[-64.772527,66.078551],[-64.672998,66.192704],[-64.563961,66.272183],[-64.445363,66.317115],[-64.504378,66.325513],[-64.655169,66.287014],[-64.761158,66.230893],[-64.887248,66.137385],[-65.004502,66.077724],[-65.305388,66.008426],[-65.415588,65.994577],[-65.543694,65.987187],[-65.825744,65.996928],[-65.891063,66.020208],[-65.857163,66.086406],[-65.656349,66.204745],[-65.688388,66.213065],[-65.758978,66.171207],[-65.855975,66.142216],[-65.940026,66.127437],[-66.063714,66.132708],[-66.208589,66.206398],[-66.277396,66.229084],[-66.419196,66.254509],[-66.47697,66.279727],[-66.712331,66.46044],[-66.759744,66.508499],[-66.787391,66.555679],[-66.86289,66.595315],[-66.986345,66.62751],[-67.014793,66.622239],[-66.970429,66.581879],[-66.968982,66.547153],[-67.076882,66.5255],[-67.18964,66.533019],[-67.307307,66.569735],[-67.317694,66.520384],[-67.191759,66.432767],[-67.189769,66.32174],[-67.225374,66.310268],[-67.311235,66.303757],[-67.368854,66.317503],[-67.559747,66.400443],[-67.740769,66.458192],[-67.868436,66.490154],[-67.883396,66.467416],[-67.800585,66.367319],[-67.704492,66.268617],[-67.547215,66.187226],[-67.296714,66.090281],[-67.183232,66.034419],[-67.272632,65.955561],[-67.350457,65.929749],[-67.398775,65.921713],[-67.550755,65.92161],[-67.828051,65.965173],[-67.958224,66.0138],[-68.147282,66.129814],[-68.459898,66.24929],[-68.527775,66.248618],[-68.748925,66.200042],[-68.714198,66.192239],[-68.571675,66.188725],[-68.467081,66.17317],[-68.217174,66.078861],[-68.198364,66.038967],[-68.260686,65.994603],[-68.25681,65.938611],[-68.186737,65.871018],[-68.115062,65.827765],[-67.968094,65.797276],[-67.894197,65.793245],[-67.866446,65.77366],[-67.954348,65.623075],[-67.961841,65.58194],[-67.936752,65.564913],[-67.90603,65.563492],[-67.717127,65.625349],[-67.638114,65.640438],[-67.569643,65.643539],[-67.490164,65.626227],[-67.399679,65.5884],[-67.346401,65.549384],[-67.330329,65.50918],[-67.303432,65.482928],[-67.117965,65.440399],[-67.134966,65.420503],[-67.326066,65.356631],[-67.336504,65.346606],[-67.298367,65.341955],[-67.177599,65.303818],[-67.066495,65.24408],[-66.998566,65.172999],[-66.984898,65.13804],[-66.985622,65.104812],[-66.970377,65.084916],[-66.911543,65.081351],[-66.887514,65.094012],[-66.860642,65.091583],[-66.830902,65.074168],[-66.799638,65.019701],[-66.732769,64.860072],[-66.697422,64.815166],[-66.677165,64.813693],[-66.666675,64.973812],[-66.635514,65.000322],[-66.517769,64.971952],[-66.345221,64.90963],[-66.223756,64.854104],[-66.2097,64.828136],[-66.301529,64.777726],[-66.28215,64.755324],[-66.214661,64.722406],[-66.152494,64.734912],[-66.10751,64.791188],[-66.030202,64.846559],[-65.938528,64.885756],[-65.768047,64.853561],[-65.626738,64.77075],[-65.605266,64.742353],[-65.513153,64.70649],[-65.431944,64.726437],[-65.274822,64.631533],[-65.349287,64.588513],[-65.512792,64.525984],[-65.529328,64.504797],[-65.489976,64.509629],[-65.1786,64.509706],[-65.094522,64.484591],[-65.074627,64.436687],[-65.212991,64.303259],[-65.339882,64.315093],[-65.507469,64.318322],[-65.593639,64.311114],[-65.580333,64.293854],[-65.347789,64.232307],[-65.281979,64.181664],[-65.192759,64.129833],[-65.14961,64.087148],[-65.150643,64.067511],[-65.187333,64.038004],[-65.169867,64.028159],[-65.0106,64.008858],[-64.911846,64.02617],[-64.787823,64.032784],[-64.67845,64.027978],[-64.669742,64.009582],[-64.686175,63.960928],[-64.798158,63.915944],[-64.768134,63.905402],[-64.636721,63.918347],[-64.576311,63.89734],[-64.498486,63.790344],[-64.410947,63.706344],[-64.482208,63.687069],[-64.561583,63.679705],[-64.550318,63.572554],[-64.498616,63.462767],[-64.498099,63.35758],[-64.514351,63.263968],[-64.586905,63.243168],[-64.664652,63.245339],[-64.695606,63.268826],[-64.886292,63.548705],[-64.933292,63.599271],[-64.989697,63.643351],[-65.191855,63.764274],[-65.183923,63.744843],[-65.133848,63.689059],[-65.089407,63.605937],[-65.031322,63.440159],[-65.004812,63.333421],[-65.016698,63.292829],[-65.058039,63.282856],[-65.068917,63.263477],[-65.049331,63.234642],[-64.894845,63.12563],[-64.820172,63.060027],[-64.767359,62.991814],[-64.718111,62.945822],[-64.672378,62.921948],[-64.683643,62.902388],[-64.751856,62.88717],[-64.868696,62.879883],[-64.923215,62.889185],[-65.13297,62.952333],[-65.162787,62.932593],[-65.046593,62.701444],[-65.050184,62.646151],[-65.108475,62.626462],[-65.180331,62.649458],[-65.265804,62.715087],[-65.39652,62.788209],[-65.572426,62.868876],[-65.740375,62.931973],[-65.779907,62.930268],[-65.805642,62.911587],[-65.833702,62.908538],[-65.864088,62.921121],[-65.92026,62.968508],[-65.978861,63.000703],[-66.224014,63.107156],[-66.249207,63.108241],[-66.226055,63.076305],[-66.20107,63.006232],[-66.228665,62.990987],[-66.292744,62.996672],[-66.414468,63.027213],[-66.496401,63.097286],[-66.600477,63.218881],[-66.65497,63.264769],[-66.659827,63.2349],[-66.630863,63.119067],[-66.636444,63.080129],[-66.697474,63.069536],[-66.72326,63.080181],[-66.74853,63.111083],[-66.773231,63.162243],[-66.831471,63.201104],[-66.923274,63.227666],[-66.974718,63.255571],[-67.000143,63.305128],[-67.017919,63.316497],[-67.179796,63.305025],[-67.260954,63.340734],[-67.494996,63.481448],[-67.709221,63.633946],[-67.844251,63.714561],[-67.893266,63.733733],[-67.821436,63.635031],[-67.742526,63.489252],[-67.722579,63.422744],[-67.758804,63.419721],[-67.837895,63.449228],[-68.243529,63.637046],[-68.493747,63.725465],[-68.632859,63.741123],[-68.858944,63.751871],[-68.911085,63.703218],[-68.789232,63.595137],[-68.670557,63.513695],[-68.555112,63.458918],[-68.373935,63.35218],[-68.208053,63.214695],[-68.141262,63.17232],[-67.915358,63.113693],[-67.797458,63.098087],[-67.675967,63.093565],[-67.664908,63.072636],[-67.723768,63.033672],[-67.736945,63.009591],[-67.468228,62.948251],[-67.366658,62.914145],[-67.268498,62.857559],[-67.212688,62.843503],[-66.979524,62.700824],[-66.921543,62.678087],[-66.71401,62.631785],[-66.644867,62.602071],[-66.530533,62.509983],[-66.458729,62.463113],[-66.357288,62.351905],[-66.281246,62.302683],[-66.09503,62.246382],[-66.015655,62.230259],[-65.980205,62.208865],[-66.004338,62.158325],[-66.026972,62.137189],[-66.133167,62.102411],[-66.116424,62.053913],[-66.056428,61.967484],[-66.058882,61.913844],[-66.123865,61.89307],[-66.2567,61.868265],[-66.32375,61.870281],[-66.424519,61.890745],[-66.551333,61.925574],[-66.803152,62.012623],[-67.181062,62.072852],[-67.322035,62.105047],[-67.369009,62.134089],[-67.440116,62.151245],[-68.378586,62.235168],[-68.535889,62.255632],[-68.63366,62.281315],[-68.724378,62.318987],[-69.082341,62.405183],[-69.125594,62.423994],[-69.366045,62.571866],[-69.545155,62.744594],[-69.604738,62.767745],[-69.799507,62.790483],[-69.962081,62.776169],[-70.070963,62.757203],[-70.236147,62.763379],[-70.344073,62.791516],[-70.57132,62.869186],[-70.801409,62.910476],[-71.002121,62.978249],[-71.105783,63.002253],[-71.096172,63.019668],[-70.946052,63.120695],[-70.992664,63.1193],[-71.253733,63.042509],[-71.347267,63.066125],[-71.501263,63.126431],[-71.617122,63.187203],[-71.855479,63.35528],[-71.992241,63.416181],[-71.973043,63.429875],[-71.819177,63.435456],[-71.696548,63.430237],[-71.61428,63.444086],[-71.45584,63.512248],[-71.387394,63.555036],[-71.380831,63.580305],[-71.513459,63.586558],[-71.541881,63.598806],[-71.5656,63.626763],[-71.626734,63.662574],[-71.725281,63.706138],[-71.837548,63.724948],[-72.222976,63.708876],[-72.290156,63.727997],[-72.28876,63.756987],[-72.213468,63.838739],[-72.172437,63.871657],[-72.159363,63.889899],[-72.174271,63.893413],[-72.226439,63.891372],[-72.449991,63.81812],[-72.498463,63.823495],[-72.586107,63.900803],[-72.639307,63.989066],[-72.678091,64.02002],[-72.729612,64.030485],[-72.913167,64.117172],[-73.174288,64.281865],[-73.270302,64.333489],[-73.377118,64.379585],[-73.454555,64.399274],[-73.443625,64.42351],[-73.278157,64.560246],[-73.271284,64.582518],[-73.413084,64.574147],[-73.626973,64.602517],[-73.728414,64.568256],[-73.792803,64.566214],[-73.867889,64.58536],[-73.910341,64.578126],[-73.95039,64.465833],[-73.981086,64.437721],[-74.025605,64.422657],[-74.064802,64.424673],[-74.098702,64.443715],[-74.097901,64.469915],[-74.130457,64.607788],[-74.205103,64.628123],[-74.415866,64.633471],[-74.461238,64.644685],[-74.512449,64.670161],[-74.556245,64.717342],[-74.592599,64.786175],[-74.634302,64.823951],[-74.681405,64.830668],[-74.719206,64.825139],[-74.747732,64.807311],[-74.813412,64.796252],[-74.916249,64.791989],[-74.919452,64.765504],[-74.823024,64.716877],[-74.729852,64.647372],[-74.640012,64.557093],[-74.694712,64.49658],[-74.893924,64.465729],[-75.067402,64.456686],[-75.215042,64.469399],[-75.32842,64.490431],[-75.48779,64.540764],[-75.715011,64.524382],[-75.766688,64.391936],[-75.815212,64.384649],[-76.031839,64.388111],[-76.118087,64.376329],[-76.406855,64.303155],[-76.494757,64.292975],[-76.561549,64.301605],[-76.626506,64.283932],[-76.723813,64.242022],[-76.856156,64.23763],[-77.023536,64.270858],[-77.165672,64.285069],[-77.282512,64.280366],[-77.402867,64.2999],[-77.526735,64.343773],[-77.627763,64.363462],[-77.760519,64.360155],[-77.791163,64.367079],[-77.984847,64.461079],[-78.045231,64.499267],[-78.174551,64.617736],[-78.197573,64.664632],[-78.200906,64.714758],[-78.189692,64.75181],[-78.14463,64.807724],[-78.095615,64.939241],[-78.055256,64.982907],[-77.994588,65.022595],[-77.876145,65.072928],[-77.447464,65.161553],[-77.360906,65.196538],[-77.363877,65.219792],[-77.461468,65.328157],[-77.460408,65.355908],[-77.427697,65.372134],[-77.358037,65.435438],[-77.326696,65.453111],[-77.251145,65.462878],[-77.094152,65.430864],[-76.958604,65.418023],[-76.778926,65.413889],[-76.481683,65.369705],[-76.066979,65.285473],[-75.828338,65.227027],[-75.648142,65.14083],[-75.519933,65.056029],[-75.501587,65.013086],[-75.560938,64.947044],[-75.590859,64.927665],[-75.589127,64.905031],[-75.555744,64.879193],[-75.452107,64.841624],[-75.427122,64.855861],[-75.435132,64.900793],[-75.41366,64.938517],[-75.362785,64.969058],[-75.3571,65.008745],[-75.396658,65.05758],[-75.445829,65.099696],[-75.504688,65.135146],[-75.77294,65.257025],[-75.798675,65.297513],[-75.708603,65.315703],[-75.316638,65.274827],[-75.166311,65.283922],[-75.10926,65.331465],[-75.047739,65.363969],[-74.981748,65.381436],[-74.849844,65.389084],[-74.665489,65.366941],[-74.574926,65.363659],[-74.494776,65.371669],[-74.390751,65.397559],[-74.236858,65.48391],[-74.138492,65.503444],[-73.989587,65.516983],[-73.877914,65.518843],[-73.675394,65.484324],[-73.550802,65.485254],[-73.560724,65.542925],[-73.643406,65.653202],[-73.746087,65.766684],[-73.826083,65.805183],[-74.033098,65.877065],[-74.276184,66.012767],[-74.401086,66.096948],[-74.433952,66.139012],[-74.416382,66.167073],[-74.374886,66.208155],[-73.933699,66.358069],[-73.584211,66.506949],[-73.430939,66.583171],[-73.357377,66.636295],[-73.280793,66.674949],[-73.201108,66.699185],[-73.033263,66.728175],[-72.985333,66.765382],[-72.974842,66.828531],[-72.946782,66.883256],[-72.788833,67.030638],[-72.667729,67.07048],[-72.485157,67.098075],[-72.364931,67.133422],[-72.220031,67.254293],[-72.234138,67.28442],[-72.301085,67.307261],[-72.352891,67.341885],[-72.576443,67.658661],[-72.725323,67.811623],[-72.903968,67.944794],[-73.063442,68.107006],[-73.328232,68.266738],[-73.331462,68.309009],[-73.284488,68.356965],[-73.306889,68.367817],[-73.580206,68.297744],[-73.644492,68.29454],[-73.749446,68.324977],[-73.820501,68.362959],[-73.879361,68.429415],[-73.873366,68.464142],[-73.834428,68.49706],[-73.782493,68.578037],[-73.780607,68.619274],[-73.798436,68.658652],[-73.822103,68.685989],[-73.851559,68.701388],[-73.935171,68.711],[-74.072993,68.714927],[-74.117977,68.700923],[-73.966048,68.57876],[-73.989277,68.548633],[-74.182831,68.535455],[-74.270112,68.541191],[-74.349978,68.556048],[-74.422429,68.579949],[-74.647945,68.707538],[-74.695823,68.755545],[-74.680526,68.790298],[-74.699957,68.808358],[-74.746026,68.796705],[-74.808348,68.795904],[-74.892994,68.808152],[-74.910409,68.823138],[-74.752383,68.892074],[-74.743262,68.913365],[-74.8161,68.936128],[-74.925085,68.940702],[-74.954024,68.961062],[-74.917282,68.98287],[-74.769332,69.020671],[-74.716726,69.045527],[-74.80548,69.064234],[-74.854857,69.065836],[-74.954437,69.024624],[-75.104247,68.940598],[-75.213285,68.909386],[-75.362733,68.948298],[-75.456991,68.961269],[-75.522671,68.952742],[-75.623027,68.887733],[-75.842239,68.840191],[-76.234721,68.728027],[-76.403393,68.692345],[-76.585087,68.698753],[-76.619452,68.721387],[-76.616248,68.759886],[-76.603665,68.791564],[-76.581728,68.816317],[-76.574545,68.846702],[-76.587671,68.974447],[-76.557234,69.009483],[-76.49517,69.030412],[-76.380914,69.052426],[-76.089226,69.026149],[-75.953705,69.030826],[-75.858568,69.060281],[-75.763354,69.102914],[-75.667986,69.158828],[-75.647728,69.212572],[-75.749066,69.299543],[-75.787151,69.318663],[-76.046464,69.386359],[-76.189788,69.411009],[-76.316241,69.421654],[-76.407966,69.441136],[-76.46494,69.469455],[-76.520363,69.516584],[-76.524936,69.548701],[-76.516099,69.590921],[-76.463286,69.619963],[-76.231104,69.653475],[-76.234101,69.662105],[-76.423805,69.686806],[-76.513257,69.683912],[-76.590048,69.656265],[-76.686528,69.591282],[-76.742339,69.572911],[-76.915558,69.611178],[-77.019634,69.616836],[-77.089914,69.63513],[-77.128801,69.652751],[-77.105081,69.670761],[-77.018704,69.68908],[-76.86861,69.745149],[-76.858585,69.775405],[-76.962274,69.824834],[-77.015965,69.836151],[-77.232464,69.8546],[-77.494282,69.836254],[-77.591641,69.845608],[-77.635307,69.900437],[-77.663006,69.965704],[-77.674736,70.041513],[-77.721943,70.170782],[-77.774007,70.238504],[-77.84253,70.247082],[-78.156774,70.219125],[-78.231447,70.218789],[-78.282813,70.22915],[-78.490733,70.315553],[-78.574785,70.346197],[-78.621449,70.353406],[-78.772654,70.445313],[-78.830842,70.463193],[-78.899881,70.508539],[-78.979773,70.581325],[-79.066383,70.603546],[-79.159762,70.575253],[-79.253193,70.534713],[-79.34665,70.4819],[-79.397319,70.437251],[-79.405225,70.400716],[-79.347399,70.372294],[-79.017549,70.325217],[-78.933833,70.29372],[-78.862829,70.241889],[-78.809835,70.178559],[-78.77485,70.103628],[-78.777822,70.047637],[-78.818801,70.010456],[-78.889649,69.977512],[-79.092893,69.925345],[-79.303319,69.894804],[-79.515425,69.887621],[-79.61591,69.894726],[-80.16213,69.995986],[-80.260418,69.996761],[-80.386793,70.010456],[-80.670316,70.052081],[-80.825759,70.056654],[-81.0983,70.091174],[-81.559564,70.111225],[-81.651936,70.094611],[-81.52923,70.048024],[-81.421743,70.024615],[-81.3295,70.024357],[-81.196847,69.982809],[-81.023757,69.899997],[-80.924822,69.850595],[-80.842864,69.791658],[-80.84028,69.771375],[-80.921722,69.730886],[-81.56468,69.942708],[-81.957731,69.868759],[-82.138702,69.841215],[-82.293834,69.836926],[-82.487724,69.865968],[-82.925372,69.968158],[-83.09115,70.003893],[-83.149958,70.00906],[-83.530736,69.964774],[-83.859088,69.962732],[-84.521864,70.005236],[-84.765131,70.033658],[-84.829209,70.063321],[-84.909101,70.078203],[-85.052658,70.078203],[-85.432377,70.11138],[-85.78003,70.036656],[-86.198196,70.105127],[-86.322012,70.145434],[-86.361441,70.17303],[-86.483088,70.288578],[-86.499831,70.350383],[-86.465363,70.406245],[-86.431024,70.444538],[-86.396866,70.465312],[-86.624319,70.401284],[-86.70416,70.390742],[-86.809269,70.388262],[-87.12248,70.411956],[-87.171986,70.399838],[-87.155812,70.377462],[-87.074008,70.344802],[-87.063259,70.325113],[-87.237874,70.309714],[-87.502457,70.325682],[-87.617799,70.318757],[-87.670199,70.309817],[-87.789468,70.258244],[-87.838147,70.246565],[-87.900701,70.251888],[-88.178307,70.368625],[-88.402118,70.442471],[-88.662981,70.470841],[-88.782741,70.494483],[-88.848421,70.522879],[-89.208296,70.759712],[-89.257544,70.810717],[-89.371542,70.996132],[-89.409757,71.035716],[-89.455904,71.061709],[-89.365522,71.067187],[-89.025155,71.044604],[-88.695666,71.045586],[-88.516659,71.030548],[-88.3091,70.984324],[-88.0386,70.951328],[-87.844917,70.944404],[-87.534445,70.956599],[-87.181598,70.987554],[-87.140102,71.011609],[-87.368615,71.052847],[-87.572298,71.107546],[-87.760245,71.178498],[-87.872434,71.208548],[-88.06064,71.227229],[-88.589497,71.240303],[-89.079338,71.287949],[-89.417689,71.352183],[-89.693331,71.423496],[-89.805391,71.462305],[-89.845751,71.492277],[-89.888513,71.58576],[-89.933678,71.742701],[-89.977345,71.84807],[-90.019539,71.901813],[-90.025171,71.948787],[-89.931508,72.049039],[-89.663798,72.157973],[-89.657261,72.175052],[-89.710539,72.180116],[-89.822884,72.207789],[-89.85867,72.248329],[-89.873113,72.312641],[-89.874044,72.367211],[-89.861538,72.411911],[-89.816838,72.467722],[-89.701522,72.568051],[-89.536441,72.689827],[-89.357693,72.804135],[-89.3271,72.841549],[-89.311391,72.94299],[-89.287671,73.016939],[-89.263228,73.068977],[-89.225323,73.108044],[-89.114762,73.1822],[-88.976786,73.25248],[-88.760933,73.312425],[-88.742536,73.334594],[-88.739591,73.36529],[-88.727163,73.388182],[-88.7052,73.403272],[-88.170013,73.595301],[-87.92641,73.673333],[-87.719756,73.722891],[-87.472381,73.759426],[-86.768755,73.833995],[-86.4064,73.854769],[-85.950769,73.85017],[-85.110484,73.808157],[-85.009328,73.778624],[-84.983567,73.763715],[-84.946799,73.72165],[-84.974498,73.694779],[-85.204303,73.60357],[-85.493587,73.527709],[-85.681896,73.461459],[-86.000533,73.312528],[-86.086471,73.260231],[-86.481382,72.96025],[-86.574658,72.910537],[-86.629332,72.870798],[-86.667779,72.762562],[-86.656307,72.724037],[-86.594605,72.661121],[-86.380303,72.524669],[-86.322555,72.460823],[-86.324028,72.40217],[-86.348057,72.262256],[-86.351003,72.19133],[-86.341339,72.123195],[-86.297156,72.025785],[-86.218479,71.899126],[-86.036138,71.770968],[-85.750109,71.641338],[-85.537151,71.555426],[-85.327189,71.492122],[-85.078729,71.398485],[-85.023409,71.353242],[-85.137614,71.3034],[-85.405376,71.226764],[-85.757266,71.193949],[-85.94542,71.162659],[-86.179463,71.095919],[-86.473218,71.042641],[-86.58936,71.010808]]],[[[-100.001901,73.9459],[-99.157947,73.731572],[-99.039634,73.749246],[-98.784533,73.760563],[-98.519356,73.792085],[-98.151859,73.818234],[-97.927712,73.865776],[-97.832162,73.879367],[-97.66995,73.887738],[-97.581842,73.887532],[-97.327025,73.861848],[-97.224758,73.843813],[-97.170497,73.824848],[-97.111741,73.790328],[-97.011282,73.706173],[-96.996606,73.674909],[-97.001696,73.666486],[-97.094585,73.614732],[-97.15639,73.592201],[-97.284186,73.570755],[-97.394773,73.564192],[-97.48978,73.526623],[-97.596983,73.536597],[-97.625896,73.502284],[-97.614605,73.481329],[-97.585821,73.471149],[-97.531819,73.473603],[-97.470117,73.488228],[-97.350306,73.480941],[-97.287131,73.458462],[-97.230365,73.421307],[-97.272507,73.386839],[-97.48407,73.339193],[-97.795886,73.285295],[-98.175837,73.11577],[-98.375592,73.044689],[-98.41683,73.02252],[-98.436958,73.000247],[-98.430911,72.958079],[-98.421765,72.941026],[-98.366652,72.934153],[-98.180823,72.993064],[-98.061012,73.020504],[-97.939391,73.035594],[-97.724805,73.036679],[-97.636335,73.027636],[-97.475673,72.992263],[-97.328756,72.937822],[-97.295839,72.91803],[-97.30992,72.898135],[-97.371002,72.878136],[-97.377668,72.864958],[-97.237573,72.837467],[-97.083009,72.762846],[-97.072881,72.717577],[-97.140473,72.672748],[-97.158922,72.642776],[-97.128123,72.627609],[-97.051797,72.636807],[-96.869017,72.687036],[-96.671303,72.713185],[-96.592083,72.710239],[-96.542112,72.698715],[-96.489195,72.629882],[-96.445632,72.552419],[-96.440154,72.487281],[-96.472866,72.43439],[-96.519865,72.393101],[-96.638282,72.342045],[-96.745485,72.322614],[-96.80145,72.322408],[-96.795895,72.313778],[-96.668745,72.271248],[-96.61557,72.237245],[-96.592858,72.204482],[-96.60061,72.172856],[-96.618128,72.145881],[-96.76631,72.045939],[-96.758326,72.031676],[-96.717295,72.025165],[-96.624355,71.967597],[-96.613425,71.833859],[-96.946506,71.791871],[-97.024667,71.760736],[-97.116702,71.710817],[-97.222226,71.673507],[-97.461255,71.634207],[-97.582281,71.629685],[-98.18134,71.662448],[-98.241931,71.681516],[-98.283866,71.71552],[-98.307069,71.764509],[-98.313373,71.803059],[-98.302676,71.83112],[-98.305803,71.847553],[-98.322701,71.852359],[-98.389286,71.824247],[-98.458843,71.77319],[-98.420809,71.716501],[-98.231466,71.55894],[-98.195293,71.491192],[-98.190151,71.46246],[-98.198626,71.440859],[-98.412282,71.348824],[-98.535944,71.317637],[-98.662887,71.302108],[-98.783836,71.313684],[-98.898764,71.352338],[-98.986252,71.369494],[-99.16712,71.367169],[-99.223628,71.387116],[-99.276183,71.424219],[-99.403669,71.557183],[-99.581461,71.651544],[-99.734734,71.757222],[-100.124141,71.911528],[-100.325705,72.003874],[-100.594474,72.15234],[-100.706819,72.18593],[-100.800172,72.199418],[-100.98365,72.210063],[-101.026231,72.228563],[-101.0931,72.279051],[-101.208545,72.316982],[-101.250662,72.321787],[-101.31872,72.312847],[-101.498321,72.277862],[-101.723915,72.314914],[-101.774506,72.340934],[-101.804426,72.385039],[-101.8329,72.409276],[-101.90933,72.431031],[-101.973667,72.486118],[-102.402219,72.594742],[-102.657088,72.719438],[-102.708738,72.764499],[-102.713673,72.782896],[-102.687473,72.842841],[-102.628459,72.910795],[-102.551073,72.978285],[-102.503789,73.005932],[-102.336125,73.064119],[-102.203989,73.077297],[-102.019607,73.069907],[-101.922455,73.056962],[-101.835381,73.018024],[-101.79807,72.973117],[-101.754533,72.942835],[-101.617771,72.90971],[-101.54359,72.883045],[-101.434604,72.821033],[-101.350578,72.746309],[-101.273193,72.72166],[-101.087623,72.713288],[-100.896058,72.725949],[-100.484765,72.772974],[-100.468022,72.778814],[-100.442597,72.806822],[-100.395701,72.976993],[-100.367512,72.977716],[-100.227934,72.89891],[-100.188349,72.89028],[-100.128146,72.906713],[-100.092386,72.944954],[-100.096727,72.963144],[-100.184474,73.055334],[-100.236202,73.095435],[-100.282685,73.120292],[-100.334361,73.128482],[-100.446215,73.12055],[-100.531378,73.138275],[-100.550188,73.1637],[-100.53639,73.197858],[-100.489313,73.233928],[-100.438825,73.254573],[-100.340717,73.265192],[-100.225866,73.254702],[-100.066987,73.211087],[-99.966399,73.201424],[-99.825142,73.213852],[-100.005906,73.239509],[-100.257958,73.340227],[-100.366116,73.359037],[-100.497995,73.315835],[-100.587033,73.299557],[-100.755343,73.278473],[-100.889366,73.275347],[-101.450856,73.43097],[-101.482069,73.445853],[-101.523203,73.486367],[-101.518449,73.505023],[-101.463052,73.533858],[-101.323164,73.571995],[-101.114959,73.59587],[-100.975795,73.599746],[-100.854097,73.571298],[-100.676795,73.494274],[-100.521662,73.449315],[-100.508924,73.46549],[-100.536313,73.509725],[-100.607109,73.575406],[-100.657933,73.593338],[-100.782732,73.612949],[-100.898229,73.658037],[-100.952592,73.69142],[-100.981531,73.72718],[-100.985097,73.765317],[-100.962979,73.791413],[-100.915127,73.805366],[-100.483629,73.843503],[-100.182303,73.801284],[-99.9911,73.795186],[-99.91188,73.847017],[-99.939502,73.857146],[-100.04009,73.843813],[-100.15383,73.844072],[-100.224781,73.872494],[-100.227055,73.889134],[-100.138482,73.928873],[-100.001901,73.9459]]],[[[-98.270379,73.868515],[-98.558216,73.847431],[-98.691076,73.856474],[-98.761356,73.828879],[-98.816598,73.817148],[-98.973927,73.812058],[-99.298042,73.861952],[-99.385143,73.879315],[-99.417001,73.895412],[-99.403824,73.910889],[-99.34561,73.925721],[-99.096891,73.948277],[-99.004701,73.964943],[-98.966693,73.988197],[-98.9045,74.006904],[-98.818149,74.021012],[-98.584985,74.034499],[-98.061037,74.104676],[-97.800433,74.11465],[-97.698217,74.108707],[-97.667418,74.090155],[-97.65915,74.071629],[-97.673361,74.053051],[-97.754751,74.005509],[-97.861101,73.968457],[-98.146975,73.888824],[-98.270379,73.868515]]],[[[-93.170871,74.161003],[-92.778026,74.113719],[-92.586824,74.082714],[-92.492824,74.062043],[-92.313843,73.992383],[-92.222686,73.972384],[-91.87418,74.012795],[-91.630422,74.027781],[-91.087975,74.009281],[-90.627434,73.951714],[-90.457987,73.908409],[-90.354609,73.868644],[-90.381377,73.824745],[-90.466152,73.753845],[-90.565578,73.686407],[-90.764532,73.580625],[-90.933669,73.527709],[-90.975475,73.50231],[-91.001933,73.467092],[-91.067614,73.415519],[-91.249308,73.304001],[-91.297807,73.284933],[-91.553734,73.236099],[-91.466039,73.214188],[-91.425913,73.194861],[-91.459632,73.145355],[-91.621017,73.025879],[-91.788345,72.915395],[-91.905315,72.8493],[-92.117938,72.753802],[-92.234933,72.726827],[-92.391952,72.718456],[-93.340628,72.801861],[-93.578675,72.800518],[-94.211324,72.756955],[-94.151715,72.735664],[-93.919998,72.703366],[-93.77055,72.6682],[-93.572242,72.558621],[-93.546481,72.531284],[-93.533924,72.499451],[-93.541623,72.437026],[-93.555163,72.421161],[-93.870621,72.252644],[-93.972579,72.12999],[-94.037562,72.028756],[-94.143757,72.000825],[-94.497146,72.043587],[-94.611222,72.042321],[-95.007865,72.012788],[-95.192944,72.027438],[-95.166821,72.180039],[-95.192659,72.344783],[-95.251028,72.501957],[-95.547599,72.781553],[-95.58031,72.831136],[-95.602169,72.884492],[-95.613202,72.941595],[-95.61222,72.999059],[-95.591576,73.115279],[-95.589276,73.17419],[-95.604081,73.327721],[-95.644234,73.557474],[-95.648006,73.638503],[-95.645268,73.670801],[-95.632917,73.69545],[-95.569407,73.728162],[-95.447398,73.751674],[-95.385981,73.755137],[-94.99616,73.685735],[-94.816843,73.662532],[-94.697599,73.663566],[-94.691036,73.671421],[-94.797154,73.686097],[-94.896941,73.716018],[-95.059489,73.805056],[-95.134136,73.881227],[-95.149019,73.906419],[-95.152584,73.932774],[-95.144781,73.960318],[-95.121165,73.985045],[-95.039826,74.023854],[-94.973526,74.041424],[-94.728967,74.085969],[-94.482548,74.113151],[-93.938808,74.131599],[-93.784606,74.11837],[-93.549246,74.167153],[-93.410288,74.17878],[-93.170871,74.161003]]],[[[-119.736303,74.112634],[-119.728552,74.108448],[-119.4711,74.201208],[-119.314856,74.206272],[-119.205948,74.198004],[-119.171428,74.18617],[-119.149621,74.167876],[-119.138769,74.127569],[-119.131896,74.027859],[-119.117943,74.015534],[-119.082545,74.021167],[-119.025701,74.044731],[-118.744116,74.192087],[-118.625312,74.232498],[-118.543973,74.244642],[-118.199679,74.266733],[-117.965869,74.266062],[-117.707487,74.252367],[-117.514837,74.231748],[-117.198836,74.171132],[-116.950375,74.101395],[-116.722379,74.027136],[-115.957723,73.747928],[-115.634332,73.66553],[-115.510696,73.618763],[-115.455686,73.584656],[-115.407524,73.54192],[-115.392822,73.501974],[-115.41158,73.464818],[-115.44685,73.438851],[-115.524468,73.416759],[-115.992268,73.323225],[-116.23861,73.294596],[-116.482523,73.253203],[-117.065407,73.107295],[-117.464427,73.037764],[-117.983206,72.902217],[-118.96157,72.684143],[-119.077997,72.640321],[-119.13156,72.60885],[-119.407771,72.36039],[-119.512855,72.302667],[-119.767464,72.243859],[-120.089744,72.229132],[-120.179894,72.212647],[-120.194415,72.126761],[-120.310015,71.984082],[-120.366265,71.888015],[-120.44316,71.630822],[-120.46091,71.605087],[-120.519667,71.557415],[-120.619325,71.505765],[-120.930313,71.446234],[-121.159834,71.414969],[-121.472167,71.389028],[-121.546813,71.406805],[-121.622183,71.447629],[-121.70068,71.451195],[-121.749359,71.444787],[-122.156621,71.265935],[-122.549517,71.193562],[-122.719791,71.128165],[-122.839938,71.097469],[-122.936547,71.088013],[-123.095659,71.0938],[-123.210613,71.123463],[-123.314741,71.16917],[-123.393341,71.218857],[-123.595164,71.423186],[-123.681851,71.49313],[-123.755567,71.528037],[-123.953255,71.652474],[-124.007774,71.677434],[-124.759976,71.835176],[-125.126104,71.923621],[-125.214625,71.954781],[-125.296662,71.973023],[-125.766891,71.960828],[-125.82911,71.965633],[-125.84531,71.978656],[-125.789629,72.02501],[-125.767718,72.054259],[-125.760484,72.082887],[-125.768597,72.129138],[-125.762576,72.137509],[-125.583802,72.183062],[-125.612792,72.192519],[-125.633799,72.210321],[-125.64677,72.236521],[-125.627313,72.254815],[-125.575482,72.265305],[-125.512385,72.307731],[-125.438074,72.382068],[-125.382781,72.423823],[-125.305989,72.45072],[-125.168323,72.522602],[-125.07019,72.551593],[-124.98712,72.587999],[-124.984665,72.604406],[-125.018565,72.617015],[-125.030244,72.644765],[-125.014741,72.731427],[-125.015413,72.776075],[-125.000375,72.813334],[-124.969679,72.843306],[-124.93087,72.863201],[-124.582571,72.925937],[-124.564949,72.944127],[-124.560815,72.965056],[-124.57022,72.988723],[-124.588255,73.005312],[-124.643291,73.018954],[-124.736438,73.022701],[-124.817104,73.058797],[-124.836406,73.076263],[-124.804056,73.125666],[-124.646908,73.204421],[-124.593991,73.243333],[-124.424209,73.418723],[-124.114176,73.527373],[-124.03015,73.644213],[-123.79727,73.768159],[-123.797813,73.785316],[-123.873054,73.827587],[-124.088028,73.856888],[-124.19151,73.902001],[-124.26073,73.953264],[-124.575362,74.24813],[-124.62908,74.270041],[-124.644996,74.304354],[-124.709307,74.326988],[-124.696259,74.348175],[-123.468324,74.436129],[-122.623156,74.464137],[-121.747912,74.540644],[-121.504154,74.545114],[-121.315225,74.529999],[-121.128699,74.490234],[-120.88166,74.420729],[-120.554496,74.35293],[-119.943603,74.253711],[-119.562645,74.232834],[-119.715375,74.153665],[-119.736924,74.129946],[-119.736303,74.112634]]],[[[-97.355499,74.526304],[-97.656101,74.465688],[-97.721575,74.4892],[-97.749997,74.510543],[-97.516316,74.602475],[-97.416529,74.626556],[-97.318214,74.598005],[-97.291317,74.576378],[-97.303874,74.559687],[-97.355499,74.526304]]],[[[-95.306658,74.505427],[-95.352443,74.500414],[-95.441507,74.506099],[-95.777197,74.550747],[-95.834352,74.56904],[-95.850733,74.582476],[-95.774407,74.598703],[-95.745623,74.615963],[-95.66046,74.636892],[-95.510211,74.636788],[-95.352521,74.58568],[-95.278365,74.539533],[-95.274463,74.519173],[-95.306658,74.505427]]],[[[-104.119944,75.03635],[-104.308666,75.030976],[-104.634305,75.061284],[-104.828144,75.119704],[-104.887391,75.147765],[-104.881655,75.160477],[-104.848091,75.173035],[-104.801298,75.211017],[-104.6904,75.3207],[-104.648826,75.349768],[-104.47416,75.41302],[-104.346209,75.429918],[-104.074675,75.424492],[-103.917011,75.391858],[-103.851175,75.3708],[-103.804098,75.345531],[-103.757899,75.289048],[-103.746478,75.252461],[-103.667233,75.210707],[-103.643487,75.186574],[-103.642144,75.162958],[-103.664261,75.139083],[-103.709736,75.115002],[-103.813916,75.079759],[-104.119944,75.03635]]],[[[-93.542605,75.027927],[-93.478268,74.951963],[-93.466589,74.921319],[-93.463463,74.856516],[-93.490851,74.771974],[-93.509196,74.756471],[-93.535629,74.74934],[-93.54829,74.727532],[-93.547153,74.691048],[-93.573094,74.668828],[-93.626166,74.660869],[-93.984594,74.644178],[-94.206053,74.647408],[-94.534508,74.636737],[-94.697289,74.642163],[-94.803872,74.660094],[-94.958746,74.699937],[-95.286065,74.794091],[-95.451223,74.797347],[-95.865409,74.83042],[-96.094258,74.932532],[-96.181721,74.950774],[-96.270139,74.920311],[-96.294168,74.927184],[-96.318534,74.947725],[-96.343184,74.981935],[-96.386333,74.999453],[-96.559889,74.990358],[-96.591153,75.001831],[-96.599602,75.031803],[-96.596915,75.057848],[-96.56578,75.098724],[-96.382845,75.211378],[-96.292386,75.219285],[-96.180351,75.240111],[-96.118391,75.300934],[-96.124928,75.358295],[-95.954654,75.443819],[-95.853188,75.469037],[-95.670796,75.528672],[-95.049516,75.621844],[-94.878183,75.630009],[-94.648636,75.623033],[-94.427228,75.593371],[-94.256696,75.544071],[-93.909069,75.422528],[-93.750835,75.349045],[-93.666835,75.273545],[-93.591233,75.23024],[-93.497543,75.136861],[-93.531727,75.100326],[-93.551804,75.051156],[-93.542605,75.027927]]],[[[-96.078574,75.51012],[-96.156399,75.477254],[-96.236601,75.474825],[-96.344501,75.505934],[-96.461626,75.494255],[-96.621978,75.431313],[-96.679003,75.39421],[-96.722876,75.380774],[-96.857106,75.369147],[-96.915112,75.379689],[-96.969631,75.412658],[-97.020662,75.468055],[-96.982809,75.50981],[-96.85615,75.537922],[-96.522888,75.583656],[-96.4277,75.606367],[-96.417236,75.630707],[-96.397263,75.646804],[-96.367807,75.654659],[-96.145392,75.613524],[-96.039817,75.585774],[-95.959874,75.554329],[-95.968607,75.541849],[-96.078574,75.51012]]],[[[-121.076222,75.745274],[-121.154305,75.740649],[-121.240914,75.751862],[-121.221097,75.777494],[-121.026302,75.847515],[-121.01545,75.867514],[-121.018086,75.883844],[-121.042296,75.90299],[-120.993023,75.927459],[-120.913958,75.93751],[-120.887809,75.927976],[-120.878714,75.906685],[-120.896853,75.844518],[-120.921244,75.814442],[-120.954937,75.788759],[-121.006614,75.765712],[-121.076222,75.745274]]],[[[-94.52655,75.74933],[-94.624348,75.748865],[-94.751446,75.769665],[-94.787335,75.791421],[-94.814724,75.821186],[-94.833637,75.858962],[-94.860096,75.889218],[-94.894099,75.911878],[-94.901204,75.930766],[-94.881361,75.945933],[-94.839787,75.954434],[-94.744806,75.957224],[-94.537893,75.996447],[-94.498671,75.992209],[-94.471282,75.971435],[-94.443377,75.917072],[-94.413766,75.884852],[-94.332247,75.825966],[-94.296306,75.788062],[-94.304006,75.776331],[-94.329534,75.765918],[-94.52655,75.74933]]],[[[-118.328147,75.579676],[-118.613891,75.515443],[-118.817135,75.522109],[-119.086653,75.569341],[-119.306045,75.585361],[-119.38325,75.601019],[-119.394567,75.617323],[-119.320153,75.662565],[-119.2268,75.698636],[-119.00348,75.769561],[-118.626087,75.906271],[-118.379022,75.957948],[-118.13666,75.994483],[-117.889336,76.076054],[-117.752471,76.11246],[-117.633719,76.115096],[-117.512615,76.099438],[-117.499127,76.077217],[-117.626355,75.965958],[-117.715962,75.921154],[-117.890835,75.805477],[-118.226525,75.611173],[-118.328147,75.579676]]],[[[-79.063101,75.925857],[-79.051758,75.866997],[-79.124415,75.869685],[-79.355642,75.831134],[-79.544519,75.82563],[-79.638777,75.842916],[-79.698747,75.883275],[-79.551263,75.958361],[-79.38179,76.010865],[-79.17834,76.092358],[-79.009332,76.145895],[-78.9259,76.134681],[-78.845156,76.106311],[-78.946416,76.025437],[-79.056616,75.985181],[-79.063101,75.925857]]],[[[-102.227346,76.014895],[-102.017876,75.953504],[-102.008032,75.939396],[-102.047461,75.927717],[-102.318116,75.895161],[-102.423458,75.869168],[-102.51136,75.808396],[-102.579599,75.780233],[-102.943556,75.763438],[-103.314748,75.764213],[-103.244752,75.822969],[-103.041509,75.918829],[-103.201576,75.958516],[-103.769785,75.892371],[-103.985275,75.933092],[-103.800765,76.037013],[-103.984526,76.046521],[-104.242469,76.046986],[-104.406051,76.108481],[-104.350628,76.182327],[-104.012044,76.222996],[-103.571425,76.258188],[-103.098249,76.311466],[-102.728013,76.307022],[-102.584069,76.281649],[-102.536139,76.196435],[-102.490044,76.095045],[-102.425681,76.086416],[-102.227346,76.014895]]],[[[-104.022844,76.583129],[-103.973493,76.577574],[-103.821099,76.597495],[-103.722759,76.601061],[-103.613153,76.563441],[-103.584602,76.538843],[-103.19013,76.477451],[-103.051327,76.449856],[-103.03355,76.431511],[-103.082953,76.405156],[-103.199509,76.370843],[-103.311389,76.347537],[-103.472206,76.329036],[-104.270658,76.326246],[-104.357501,76.334617],[-104.407678,76.365158],[-104.506432,76.47895],[-104.576609,76.540186],[-104.603041,76.582716],[-104.585704,76.606487],[-104.500386,76.630362],[-104.205107,76.666122],[-104.074495,76.666096],[-103.992484,76.656975],[-103.959075,76.638785],[-103.969204,76.614135],[-104.022844,76.583129]]],[[[-97.70093,76.466496],[-97.689768,76.421847],[-97.701834,76.387379],[-97.737129,76.363143],[-97.738783,76.335238],[-97.706821,76.303715],[-97.57316,76.224237],[-97.530682,76.181552],[-97.524274,76.138712],[-97.531044,76.109412],[-97.613468,76.052619],[-97.650003,75.979135],[-97.652173,75.940197],[-97.603029,75.879348],[-97.60166,75.851055],[-97.694238,75.802609],[-97.890505,75.760337],[-97.862807,75.738065],[-97.439551,75.68458],[-97.407537,75.672513],[-97.409604,75.552107],[-97.336017,75.419841],[-97.363483,75.417257],[-97.465234,75.45865],[-97.65331,75.507769],[-97.878232,75.416121],[-97.85273,75.260316],[-97.704883,75.190811],[-97.659925,75.151175],[-97.674343,75.127275],[-97.799348,75.116656],[-97.842704,75.121823],[-97.970862,75.153294],[-98.045328,75.200811],[-98.068737,75.199157],[-98.091681,75.176239],[-98.076747,75.152984],[-97.989982,75.110713],[-97.953344,75.060173],[-97.991817,75.045807],[-98.120956,75.032733],[-98.295157,75.032165],[-98.568629,75.009324],[-98.70353,75.00581],[-98.834814,75.01816],[-99.010049,75.021106],[-99.155803,75.015732],[-99.244944,75.025757],[-99.326128,75.049425],[-99.420593,75.04374],[-99.626885,74.983744],[-99.946633,75.002812],[-100.234393,75.007722],[-100.292271,75.02772],[-100.35666,75.066736],[-100.483499,75.188434],[-100.459496,75.219078],[-100.152073,75.235666],[-100.145716,75.246157],[-100.364127,75.289565],[-100.614887,75.321449],[-100.731159,75.346512],[-100.704235,75.394313],[-100.711935,75.406354],[-100.279636,75.460976],[-99.965262,75.568514],[-99.770235,75.612233],[-99.756024,75.63342],[-99.591177,75.655382],[-99.209443,75.668612],[-99.19456,75.698377],[-99.915136,75.681272],[-100.901743,75.620397],[-101.20684,75.590451],[-101.461321,75.607892],[-102.541384,75.513634],[-102.587428,75.513686],[-102.700392,75.543606],[-102.797492,75.599675],[-102.727858,75.638743],[-102.410694,75.712847],[-102.252074,75.777752],[-102.270651,75.812789],[-102.144716,75.875059],[-101.942842,75.883818],[-101.599659,75.832684],[-101.421246,75.781938],[-101.26141,75.758193],[-101.119378,75.762895],[-100.972798,75.798423],[-101.009901,75.802402],[-101.258827,75.783643],[-101.288024,75.789121],[-101.414993,75.845862],[-101.470287,75.881932],[-101.505892,75.91808],[-101.507881,75.943582],[-101.431323,75.991977],[-101.716809,76.007919],[-101.823392,76.041354],[-101.872123,76.083108],[-101.861374,76.101247],[-101.771405,76.150081],[-101.528939,76.21726],[-101.557026,76.235864],[-101.909795,76.234365],[-101.987439,76.243098],[-102.137739,76.284853],[-102.104667,76.331207],[-101.96421,76.399006],[-101.85848,76.439004],[-101.787528,76.451277],[-101.677251,76.451044],[-101.4152,76.424896],[-101.339752,76.410478],[-101.139041,76.345159],[-101.087881,76.307849],[-101.094186,76.271934],[-101.055816,76.245553],[-100.900089,76.20708],[-100.230672,76.007661],[-100.105719,75.960454],[-100.020117,75.939551],[-99.865475,75.924203],[-99.774835,75.927381],[-99.701247,75.941463],[-99.688897,75.959705],[-99.978336,76.029468],[-100.050993,76.066623],[-100.11285,76.117215],[-100.085797,76.133544],[-100.001746,76.139229],[-99.790182,76.132614],[-99.54105,76.146283],[-99.817235,76.167599],[-99.997612,76.195866],[-100.182768,76.197236],[-100.414227,76.24253],[-100.414382,76.256689],[-100.357641,76.271159],[-100.042725,76.291261],[-99.983091,76.299891],[-99.977716,76.312448],[-100.081896,76.342756],[-100.174655,76.359267],[-100.650698,76.395957],[-100.819887,76.436988],[-100.873631,76.456574],[-100.890787,76.475487],[-100.829731,76.523857],[-100.573752,76.584602],[-100.38795,76.613567],[-100.068693,76.634754],[-99.814083,76.632248],[-99.669053,76.624109],[-99.329513,76.521273],[-99.169652,76.45368],[-98.890341,76.465565],[-98.971008,76.536569],[-99.023614,76.614549],[-98.940854,76.643177],[-98.710817,76.693872],[-98.527598,76.667362],[-98.288698,76.598736],[-98.236195,76.575326],[-97.967348,76.5329],[-97.808391,76.518792],[-97.72589,76.496106],[-97.70093,76.466496]]],[[[-101.226115,76.579357],[-101.485221,76.575016],[-101.605007,76.587005],[-101.613069,76.604575],[-101.509457,76.627726],[-101.165034,76.66545],[-100.962178,76.73418],[-100.886472,76.742655],[-100.621579,76.752499],[-100.467247,76.750354],[-100.269145,76.734128],[-100.746558,76.649172],[-101.226115,76.579357]]],[[[-108.292377,76.057115],[-108.166286,76.054273],[-108.018776,76.065254],[-107.852274,76.057735],[-107.776878,76.035308],[-107.723497,75.995413],[-107.721275,75.974019],[-107.731842,75.955622],[-107.755174,75.940275],[-107.970407,75.839609],[-108.020688,75.804779],[-107.95108,75.796304],[-107.917542,75.802143],[-107.702568,75.877591],[-107.540924,75.901156],[-107.41827,75.906582],[-107.216189,75.891544],[-107.135677,75.878573],[-107.080435,75.863173],[-107.050385,75.845397],[-106.970933,75.773101],[-106.91352,75.679619],[-106.904219,75.689282],[-106.902772,75.74163],[-106.891713,75.782403],[-106.69312,75.809947],[-106.688082,75.819042],[-106.759395,75.841624],[-106.820089,75.872423],[-106.862051,75.930068],[-106.845643,75.95154],[-106.804121,75.974639],[-106.677023,76.023732],[-106.528608,76.053033],[-106.396601,76.060112],[-105.904848,76.009004],[-105.71132,75.966991],[-105.632668,75.945339],[-105.604427,75.929939],[-105.563293,75.88064],[-105.480895,75.745661],[-105.481437,75.702253],[-105.519497,75.632386],[-105.678402,75.501387],[-105.702638,75.412503],[-105.862577,75.191535],[-105.971976,75.131487],[-106.09264,75.089448],[-106.588243,75.015447],[-106.961114,74.940077],[-107.05563,74.928192],[-107.153428,74.927158],[-107.461911,74.952144],[-107.820054,75.000048],[-108.023633,74.986483],[-108.226618,74.951885],[-108.35444,74.942609],[-108.474743,74.947209],[-108.594193,74.959559],[-108.751315,74.99196],[-108.670261,75.006714],[-108.633312,75.023302],[-108.665997,75.040329],[-108.831284,75.064876],[-109.00254,75.010305],[-109.50313,74.882768],[-110.175802,74.83998],[-110.386745,74.813961],[-110.543428,74.780371],[-110.624767,74.752698],[-110.749333,74.68769],[-110.940871,74.638726],[-111.287543,74.585163],[-111.72873,74.501964],[-112.519354,74.416853],[-113.01692,74.401919],[-113.514048,74.430083],[-113.671609,74.453027],[-113.836793,74.488942],[-114.174757,74.573743],[-114.268239,74.604335],[-114.376941,74.670843],[-114.312681,74.715078],[-114.132485,74.766134],[-113.862864,74.81254],[-113.324343,74.875275],[-112.836001,74.975579],[-112.66304,74.994415],[-112.192836,75.009763],[-111.955745,75.000384],[-111.784231,75.005655],[-111.671111,75.019452],[-111.503266,75.055626],[-111.257958,75.127714],[-111.078899,75.195204],[-111.033476,75.226778],[-111.093472,75.256285],[-111.181218,75.260471],[-111.473914,75.191121],[-111.62083,75.167764],[-111.780872,75.166162],[-112.000497,75.142442],[-112.214179,75.132934],[-112.25552,75.133709],[-112.47809,75.20001],[-112.597049,75.211663],[-112.652395,75.204712],[-112.703141,75.187142],[-112.799621,75.138205],[-112.855328,75.120583],[-112.951343,75.107819],[-113.33964,75.093246],[-113.711787,75.068622],[-113.794651,75.083815],[-113.844983,75.112211],[-113.85537,75.129471],[-113.860952,75.187762],[-113.88604,75.210913],[-113.853303,75.259386],[-113.810877,75.296335],[-113.758787,75.321708],[-113.503041,75.39669],[-113.467074,75.416121],[-113.588978,75.41209],[-113.878521,75.375451],[-113.916349,75.388164],[-113.984148,75.430073],[-114.016523,75.434259],[-114.053395,75.416896],[-114.074892,75.392401],[-114.124656,75.291219],[-114.168478,75.23949],[-114.284957,75.249929],[-114.429031,75.281142],[-114.482826,75.285379],[-114.513832,75.275509],[-114.503961,75.257991],[-114.357769,75.171278],[-114.356115,75.140944],[-114.451768,75.087872],[-114.859185,74.999763],[-115.020106,74.976147],[-115.077053,74.985294],[-115.128316,75.009479],[-115.173843,75.048804],[-115.27965,75.101566],[-115.342618,75.1134],[-115.413157,75.115002],[-115.478062,75.104124],[-115.537283,75.080715],[-115.574051,75.055884],[-115.608984,75.009582],[-115.683166,74.974184],[-115.728848,74.968138],[-116.142647,75.04157],[-116.476089,75.171794],[-116.841002,75.151537],[-117.004842,75.156085],[-117.50197,75.20386],[-117.565222,75.233341],[-117.600103,75.271685],[-117.596744,75.29251],[-117.576074,75.31406],[-117.513132,75.356796],[-117.387816,75.421495],[-117.33552,75.442346],[-117.257643,75.459529],[-117.154187,75.473016],[-116.890792,75.480509],[-116.212746,75.482938],[-116.077147,75.492963],[-115.335332,75.618046],[-115.250686,75.638562],[-115.141855,75.678533],[-115.117257,75.695018],[-115.121882,75.705819],[-116.034333,75.606703],[-116.425653,75.585361],[-117.025203,75.601536],[-117.137961,75.617142],[-117.163644,75.644892],[-117.038561,75.718402],[-116.972648,75.745739],[-116.802167,75.771603],[-116.389634,75.80819],[-115.838066,75.840591],[-115.476848,75.841314],[-115.17374,75.866997],[-114.991528,75.89635],[-115.602266,75.894799],[-116.33788,75.881053],[-116.444256,75.890614],[-116.654295,75.929319],[-116.664527,75.957586],[-116.580475,75.991538],[-116.549676,76.016859],[-116.609776,76.073755],[-116.591327,76.095821],[-116.45423,76.143234],[-116.209852,76.194419],[-116.059112,76.201706],[-115.768251,76.184239],[-114.939413,76.166101],[-114.778596,76.172612],[-114.880192,76.194884],[-115.02455,76.211472],[-115.664459,76.239843],[-115.796854,76.252555],[-115.822175,76.270022],[-115.831736,76.295783],[-115.825586,76.329837],[-115.779284,76.364693],[-115.580691,76.437505],[-114.998479,76.49745],[-114.766865,76.505692],[-114.534786,76.501739],[-114.298961,76.474816],[-114.193954,76.451458],[-114.141244,76.422674],[-114.115768,76.395854],[-114.112771,76.349449],[-114.101454,76.331207],[-114.058821,76.300718],[-113.923273,76.229146],[-113.823486,76.206822],[-113.362972,76.248447],[-113.171278,76.257775],[-112.978473,76.2447],[-112.697612,76.201706],[-112.333861,76.071894],[-111.865259,75.939293],[-111.867636,75.910741],[-112.04716,75.866429],[-112.080905,75.847412],[-112.056669,75.834235],[-111.877403,75.825553],[-111.709352,75.832064],[-111.549103,75.822142],[-111.51324,75.81067],[-111.454458,75.762146],[-111.372757,75.676466],[-111.275709,75.612491],[-111.163287,75.57022],[-111.052699,75.548516],[-110.889608,75.546914],[-110.725587,75.559523],[-110.459402,75.555337],[-109.086359,75.506503],[-109.005046,75.515003],[-108.947143,75.541798],[-108.912571,75.586963],[-108.899497,75.624066],[-108.91823,75.674761],[-108.944766,75.698997],[-109.796058,75.863018],[-109.870497,75.929061],[-109.454657,76.021252],[-109.424736,76.042542],[-109.416623,76.071843],[-109.430369,76.109153],[-109.486826,76.144655],[-109.710145,76.212454],[-109.907834,76.222635],[-110.200761,76.289452],[-110.247012,76.30635],[-110.284891,76.332964],[-110.31445,76.369396],[-110.309489,76.397404],[-110.270008,76.41699],[-109.981602,76.484789],[-109.864865,76.522358],[-109.505042,76.69165],[-109.33854,76.75994],[-109.219555,76.792006],[-109.098219,76.811849],[-108.831646,76.821151],[-108.553911,76.758054],[-108.49239,76.754178],[-108.467017,76.73759],[-108.477766,76.708238],[-108.512441,76.680255],[-108.61184,76.629742],[-108.635172,76.608554],[-108.627628,76.586695],[-108.559518,76.536311],[-108.538641,76.503134],[-108.523551,76.447169],[-108.512492,76.4389],[-108.345474,76.391668],[-108.193545,76.33007],[-108.123214,76.233435],[-108.177913,76.200052],[-108.305813,76.15406],[-108.381906,76.115716],[-108.406142,76.085072],[-108.386815,76.066572],[-108.292377,76.057115]]],[[[-89.726456,76.507423],[-89.773275,76.493833],[-89.924118,76.500861],[-89.974141,76.487528],[-90.054291,76.495124],[-90.164568,76.523598],[-90.293501,76.579512],[-90.440986,76.662814],[-90.556224,76.734567],[-90.562477,76.754282],[-90.524805,76.78782],[-90.409515,76.810144],[-90.136301,76.836964],[-89.948768,76.836241],[-89.774566,76.782032],[-89.725319,76.763428],[-89.695398,76.741156],[-89.694442,76.719814],[-89.708653,76.701158],[-89.787563,76.659611],[-89.822109,76.63062],[-89.821928,76.602198],[-89.804797,76.561064],[-89.772964,76.533933],[-89.726352,76.520808],[-89.726456,76.507423]]],[[[-113.560711,76.743275],[-113.712459,76.710563],[-114.751491,76.758907],[-114.808284,76.774074],[-114.835259,76.794693],[-114.647053,76.85102],[-114.419858,76.87536],[-113.891647,76.894867],[-113.707524,76.872957],[-113.585413,76.847299],[-113.516502,76.825027],[-113.487589,76.783272],[-113.560711,76.743275]]],[[[-94.294962,76.912463],[-94.107945,76.903782],[-93.948058,76.917114],[-93.810935,76.914143],[-93.608415,76.873809],[-93.420752,76.812211],[-93.276575,76.784306],[-93.230014,76.77025],[-93.211876,76.754695],[-93.189242,76.708031],[-93.189991,76.686379],[-93.200559,76.669093],[-93.263656,76.626486],[-93.316753,76.573673],[-93.426282,76.527164],[-93.484547,76.492024],[-93.534569,76.447685],[-93.421889,76.474144],[-92.995378,76.620414],[-92.716273,76.602973],[-92.297022,76.615996],[-91.789431,76.675785],[-91.548412,76.685087],[-91.305041,76.680746],[-91.124251,76.661936],[-90.738435,76.581372],[-90.6048,76.542977],[-90.554648,76.515795],[-90.542607,76.49577],[-90.621646,76.464687],[-90.864061,76.483601],[-91.263054,76.50024],[-91.33597,76.510576],[-91.398085,76.509749],[-91.443276,76.498535],[-91.415086,76.45585],[-91.333903,76.446497],[-90.854759,76.437324],[-89.284519,76.301622],[-89.219096,76.258214],[-89.236511,76.23899],[-89.292115,76.217725],[-89.406579,76.189148],[-90.312053,76.157987],[-90.827345,76.185583],[-91.260393,76.229973],[-91.407335,76.220051],[-91.279436,76.159899],[-91.019762,76.141554],[-90.802385,76.105949],[-90.712132,76.076184],[-90.251385,76.053472],[-90.176041,76.030295],[-90.032768,75.970893],[-89.912542,75.966319],[-89.793428,75.924875],[-89.695321,75.853613],[-89.650052,75.844105],[-89.511249,75.85692],[-89.277594,75.79509],[-89.204885,75.761991],[-89.204524,75.737238],[-89.256614,75.698481],[-89.361207,75.645822],[-89.625454,75.583733],[-89.646047,75.565052],[-89.33728,75.572338],[-89.280436,75.564122],[-88.916686,75.453948],[-88.868859,75.451932],[-88.838913,75.463456],[-88.804083,75.502472],[-88.819638,75.538594],[-88.864054,75.588616],[-88.852142,75.624893],[-88.783929,75.647476],[-88.714889,75.658638],[-88.644971,75.658431],[-88.569033,75.645125],[-88.201303,75.512032],[-87.729756,75.575646],[-87.643663,75.547094],[-87.572427,75.493635],[-87.539121,75.48485],[-87.364636,75.591329],[-87.256942,75.61771],[-86.814437,75.491361],[-86.544738,75.463379],[-86.436527,75.436274],[-86.236333,75.406354],[-85.951492,75.395011],[-85.904544,75.441959],[-86.068746,75.502265],[-85.97299,75.528723],[-85.581256,75.57978],[-85.372303,75.572623],[-84.986771,75.644944],[-84.750222,75.654711],[-84.604856,75.65347],[-84.12765,75.762637],[-84.014272,75.779923],[-83.931977,75.818964],[-83.744599,75.81284],[-83.237136,75.750829],[-83.093398,75.756461],[-82.553483,75.818241],[-82.353857,75.83333],[-82.153662,75.831031],[-81.647362,75.794909],[-81.268548,75.755996],[-81.150803,75.735533],[-81.192661,75.684373],[-81.173515,75.669232],[-81.124397,75.658173],[-81.000761,75.643135],[-80.527715,75.642153],[-80.321991,75.629079],[-80.158358,75.581175],[-80.119187,75.562055],[-80.12575,75.542159],[-80.286618,75.49038],[-80.26047,75.47945],[-80.099601,75.467409],[-79.737711,75.461492],[-79.660197,75.449503],[-79.585757,75.384856],[-79.507829,75.295353],[-79.509095,75.259799],[-79.634436,75.199338],[-79.977128,75.118619],[-80.35757,75.051543],[-80.381987,75.03418],[-80.260625,75.002141],[-80.135232,74.988085],[-80.036427,74.990901],[-79.732983,75.021416],[-79.664072,75.020847],[-79.52483,74.989687],[-79.460416,74.95881],[-79.401427,74.917624],[-79.507958,74.880133],[-79.944495,74.833624],[-80.202438,74.894809],[-80.289202,74.908322],[-80.347752,74.902999],[-80.314575,74.876153],[-80.189725,74.827707],[-80.148927,74.795719],[-80.192231,74.780164],[-80.212669,74.749469],[-80.210266,74.703606],[-80.220602,74.65702],[-80.262744,74.584492],[-80.27773,74.581572],[-81.226225,74.566637],[-81.340482,74.553538],[-81.607184,74.502352],[-81.808825,74.476617],[-81.940187,74.472716],[-82.068499,74.482069],[-82.414757,74.535192],[-82.645389,74.525219],[-82.735797,74.530283],[-82.931056,74.565578],[-82.978392,74.583458],[-83.057612,74.62976],[-83.117014,74.693116],[-83.112286,74.732131],[-83.087326,74.788355],[-83.102648,74.816571],[-83.158304,74.816726],[-83.220315,74.828404],[-83.407048,74.884835],[-83.52208,74.901475],[-83.543551,74.892277],[-83.509781,74.848197],[-83.487327,74.834141],[-83.364208,74.80192],[-83.341316,74.764584],[-83.393716,74.670171],[-83.412216,74.654978],[-83.531898,74.58568],[-83.621867,74.565914],[-83.868054,74.56439],[-84.245162,74.515194],[-84.425539,74.508088],[-84.6671,74.519586],[-84.81828,74.542014],[-84.91631,74.567697],[-85.01155,74.60418],[-85.061417,74.606919],[-85.086765,74.527699],[-85.133454,74.517416],[-85.214328,74.518656],[-85.339282,74.543306],[-85.442324,74.600563],[-85.474415,74.600331],[-85.488678,74.566999],[-85.511726,74.545114],[-85.543507,74.534753],[-85.807987,74.498967],[-85.955626,74.49876],[-86.109881,74.53974],[-86.210934,74.535606],[-86.340564,74.513488],[-86.655429,74.555398],[-86.730773,74.557052],[-86.666126,74.489097],[-86.77015,74.478607],[-86.994736,74.480312],[-87.363757,74.502197],[-87.592581,74.470338],[-88.005837,74.489355],[-88.423047,74.494161],[-88.500742,74.509716],[-88.555674,74.541471],[-88.557845,74.569712],[-88.537639,74.60878],[-88.476609,74.666916],[-88.374729,74.74412],[-88.339538,74.784841],[-88.431418,74.803703],[-88.488185,74.828895],[-88.534952,74.831763],[-88.682023,74.801998],[-88.777831,74.715181],[-88.851083,74.689989],[-88.883406,74.711099],[-88.907798,74.763809],[-88.940147,74.789492],[-88.980377,74.788097],[-89.019625,74.774041],[-89.057866,74.747272],[-89.115278,74.737609],[-89.19194,74.744895],[-89.219122,74.731795],[-89.196824,74.698232],[-89.189072,74.666864],[-89.195816,74.637563],[-89.261885,74.609193],[-89.449987,74.567904],[-89.558714,74.554726],[-89.844381,74.548577],[-90.015327,74.560876],[-90.361637,74.610433],[-90.553253,74.612759],[-90.784091,74.695906],[-90.966793,74.715078],[-90.957543,74.745154],[-90.877652,74.801068],[-90.880235,74.817759],[-91.129858,74.736291],[-91.163706,74.710272],[-91.134587,74.649862],[-91.167711,74.645522],[-91.339458,74.667226],[-91.508362,74.650689],[-91.549135,74.655547],[-91.665769,74.699162],[-91.871028,74.7435],[-91.961591,74.793213],[-92.102512,74.948397],[-92.174162,75.051078],[-92.165222,75.072007],[-92.060499,75.100998],[-92.076338,75.123554],[-92.206821,75.181251],[-92.347458,75.229775],[-92.389239,75.263313],[-92.408359,75.297265],[-92.427118,75.346409],[-92.427996,75.382738],[-92.411098,75.40625],[-92.330689,75.47945],[-92.110445,75.610631],[-92.080731,75.634453],[-92.068871,75.657915],[-92.099179,75.727316],[-92.141864,75.796847],[-92.185117,75.846534],[-92.306608,75.91516],[-92.47373,75.986473],[-92.708883,76.11445],[-92.883317,76.213953],[-93.091728,76.353996],[-93.192291,76.366037],[-93.308588,76.359629],[-93.559943,76.311415],[-93.644459,76.288522],[-93.665182,76.273122],[-93.852328,76.26966],[-94.38258,76.282321],[-94.585332,76.297152],[-94.736718,76.293276],[-94.996625,76.257723],[-95.273895,76.264389],[-95.447424,76.363039],[-95.841664,76.416163],[-95.959279,76.44598],[-96.039714,76.486701],[-96.013075,76.513315],[-95.788876,76.537189],[-95.695704,76.563441],[-95.651004,76.58468],[-95.873186,76.566386],[-95.971346,76.569642],[-96.639703,76.702915],[-96.845659,76.726428],[-96.880722,76.738314],[-96.898008,76.753998],[-96.897542,76.773505],[-96.878009,76.802806],[-96.679416,76.765754],[-96.590274,76.763015],[-96.451161,76.774074],[-96.401578,76.797225],[-96.433204,76.810712],[-96.661019,76.855154],[-96.771142,76.888899],[-96.813517,76.913471],[-96.769798,76.948249],[-96.758326,76.971788],[-96.685101,76.985017],[-96.550122,76.987963],[-96.37729,77.004602],[-96.061237,77.050026],[-95.849519,77.066227],[-95.63824,77.063772],[-95.126436,77.017315],[-94.616131,76.958352],[-94.294962,76.912463]]],[[[-115.551288,77.363288],[-115.475582,77.324324],[-115.470207,77.308666],[-115.506613,77.29213],[-115.623919,77.26593],[-116.213702,77.178235],[-116.329199,77.137049],[-116.285739,77.101651],[-116.073116,77.029975],[-115.85685,76.969256],[-115.810057,76.939128],[-115.912868,76.908433],[-116.109755,76.918225],[-116.183239,76.915564],[-116.252743,76.901405],[-116.233959,76.874326],[-116.01622,76.784512],[-115.944571,76.736221],[-115.946302,76.711261],[-115.984801,76.686921],[-116.076217,76.653513],[-116.220446,76.611086],[-116.46764,76.577135],[-116.999235,76.531608],[-117.01678,76.496106],[-117.013266,76.469079],[-117.026185,76.403502],[-117.044478,76.373116],[-117.107782,76.321905],[-117.153903,76.297979],[-117.233614,76.28152],[-117.34694,76.27258],[-117.492409,76.272709],[-117.732395,76.316737],[-117.841406,76.344849],[-117.992973,76.405828],[-118.020233,76.446549],[-118.005401,76.496675],[-117.965404,76.574034],[-117.899491,76.653099],[-117.807636,76.733921],[-117.780454,76.784254],[-117.817919,76.804098],[-117.880809,76.80508],[-118.076431,76.772368],[-118.20278,76.760483],[-118.300603,76.73666],[-118.369875,76.700952],[-118.409149,76.662298],[-118.431008,76.588013],[-118.468164,76.547369],[-118.573687,76.5252],[-118.731559,76.525588],[-118.7914,76.512979],[-118.820752,76.485823],[-118.799565,76.463783],[-118.64389,76.417506],[-118.624537,76.365882],[-118.643399,76.334669],[-118.811554,76.277102],[-118.851138,76.257826],[-118.955447,76.167651],[-118.993946,76.144862],[-119.08071,76.124088],[-119.168224,76.126491],[-119.249253,76.159486],[-119.367902,76.221756],[-119.447794,76.275396],[-119.488825,76.320303],[-119.523707,76.340302],[-119.580344,76.326504],[-119.648944,76.279866],[-119.650779,76.243693],[-119.635844,76.189872],[-119.639669,76.156695],[-119.739637,76.117731],[-119.725193,76.099955],[-119.549726,76.052051],[-119.527169,76.030553],[-119.526135,75.997222],[-119.537763,75.982184],[-119.607939,75.984561],[-119.667135,75.946011],[-119.734831,75.915418],[-119.912882,75.858833],[-120.160567,75.85196],[-120.365387,75.824778],[-120.408872,75.82563],[-120.458327,75.87015],[-120.513801,75.958361],[-120.563307,76.008436],[-120.637153,76.034016],[-120.728672,76.134061],[-120.771563,76.166307],[-120.813395,76.179278],[-120.84838,76.182689],[-120.900108,76.163413],[-121.0193,76.02027],[-121.213474,75.983683],[-121.320186,75.977017],[-121.427957,75.981099],[-121.69453,76.020321],[-121.908212,76.034791],[-122.057428,76.018203],[-122.302762,75.959808],[-122.400482,75.944254],[-122.533058,75.95092],[-122.59109,75.972986],[-122.640493,76.009082],[-122.645945,76.030993],[-122.607394,76.038666],[-122.546261,76.080499],[-122.548173,76.097319],[-122.60866,76.121452],[-122.609461,76.140262],[-122.587912,76.152975],[-122.592718,76.16207],[-122.623931,76.167496],[-122.684651,76.162406],[-122.902803,76.134733],[-122.878282,76.164809],[-122.773999,76.227699],[-122.519389,76.353169],[-122.423065,76.390066],[-122.365368,76.401228],[-121.61376,76.441433],[-121.561127,76.453447],[-121.203888,76.622145],[-121.102008,76.660747],[-120.997622,76.691443],[-120.485353,76.793194],[-120.437604,76.816448],[-120.357661,76.886909],[-120.31092,76.904608],[-120.200332,76.931325],[-119.831156,77.0739],[-119.49482,77.176892],[-119.323977,77.24066],[-119.090193,77.305101],[-118.820003,77.332696],[-118.005195,77.38122],[-117.418615,77.3174],[-117.279089,77.313395],[-117.210799,77.331456],[-117.148994,77.36086],[-117.061376,77.348509],[-116.843534,77.339569],[-116.795294,77.346597],[-116.70362,77.379954],[-116.766252,77.398248],[-117.029776,77.431863],[-117.04577,77.448968],[-117.039724,77.465117],[-116.947171,77.503848],[-116.835292,77.52886],[-116.511307,77.547618],[-116.362608,77.542812],[-116.20887,77.516018],[-116.008004,77.460647],[-115.551288,77.363288]]],[[[-89.833245,77.26761],[-90.094754,77.210378],[-90.228285,77.212445],[-90.9932,77.329492],[-91.147247,77.387318],[-91.1766,77.426282],[-91.185075,77.481524],[-91.182646,77.557178],[-91.14947,77.60808],[-91.109136,77.625753],[-91.019064,77.643892],[-90.842563,77.655002],[-90.674873,77.648646],[-90.42277,77.628389],[-90.171932,77.594696],[-89.838955,77.491394],[-89.719479,77.442147],[-89.69421,77.37812],[-89.694571,77.338949],[-89.712038,77.310423],[-89.746661,77.292595],[-89.833245,77.26761]]],[[[-104.558134,77.141726],[-104.711381,77.123975],[-105.015574,77.164593],[-105.215071,77.182059],[-105.379919,77.254251],[-105.556342,77.352643],[-105.695093,77.46137],[-105.747235,77.525397],[-105.848133,77.563431],[-105.883144,77.626528],[-106.06613,77.725385],[-106.035589,77.739855],[-105.86299,77.754376],[-105.587916,77.736005],[-105.45609,77.700942],[-105.289666,77.642083],[-105.073891,77.54829],[-105.007203,77.506742],[-104.994283,77.44964],[-104.955319,77.418711],[-104.770189,77.413234],[-104.542244,77.33776],[-104.500799,77.308537],[-104.453722,77.249135],[-104.456978,77.220817],[-104.493358,77.162345],[-104.558134,77.141726]]],[[[-95.484373,77.791996],[-95.233045,77.753807],[-94.959909,77.774064],[-94.6668,77.776235],[-94.014773,77.759905],[-93.582861,77.770757],[-93.471085,77.764298],[-93.300966,77.739803],[-93.210765,77.710218],[-93.128729,77.66017],[-93.339181,77.62968],[-93.519583,77.474393],[-93.543923,77.466641],[-93.74019,77.464574],[-93.836179,77.452224],[-94.408961,77.474212],[-95.987055,77.484108],[-96.056121,77.503487],[-96.26386,77.594541],[-96.276598,77.630559],[-96.239133,77.672572],[-96.194588,77.700529],[-96.142963,77.714378],[-95.683921,77.782281],[-95.484373,77.791996]]],[[[-101.69358,77.696601],[-101.83104,77.687351],[-102.079836,77.692183],[-102.377828,77.728124],[-102.458185,77.770163],[-102.475032,77.83667],[-102.471543,77.87349],[-102.447721,77.880621],[-102.263158,77.889355],[-101.917856,77.899586],[-101.639424,77.892093],[-101.322027,77.854163],[-101.193198,77.829772],[-101.127594,77.812615],[-101.046256,77.777811],[-101.019565,77.762463],[-101.002046,77.7351],[-101.397681,77.729054],[-101.584543,77.718331],[-101.69358,77.696601]]],[[[-113.832452,77.754634],[-114.105898,77.720683],[-114.28723,77.721484],[-114.608348,77.769336],[-114.980418,77.915451],[-115.029356,77.967541],[-114.890449,77.976894],[-114.789499,77.992914],[-114.72648,78.015548],[-114.606901,78.040353],[-114.33038,78.07756],[-114.296894,78.063194],[-114.302863,78.032705],[-114.279841,78.004309],[-114.180932,77.998237],[-114.087191,77.977928],[-113.897745,77.915555],[-113.768037,77.903566],[-113.721373,77.889871],[-113.696698,77.868942],[-113.617917,77.832407],[-113.61939,77.813494],[-113.725843,77.77577],[-113.832452,77.754634]]],[[[-110.458058,78.103243],[-109.656867,78.079265],[-109.622244,78.07477],[-109.619066,78.056838],[-109.679398,77.999296],[-109.771795,77.957412],[-110.199495,77.904857],[-110.751115,77.857212],[-110.865605,77.834112],[-110.856535,77.820367],[-110.811629,77.803158],[-110.719386,77.781428],[-110.292177,77.786363],[-110.189212,77.77701],[-110.152754,77.762954],[-110.130843,77.742387],[-110.117562,77.715567],[-110.116891,77.62472],[-110.139447,77.572113],[-110.198488,77.524519],[-110.371552,77.490619],[-110.682851,77.445919],[-110.894001,77.425972],[-111.060451,77.433155],[-111.226229,77.428504],[-111.951972,77.344194],[-112.176532,77.343755],[-112.37267,77.364115],[-112.643816,77.443697],[-112.925634,77.474935],[-113.046066,77.510721],[-113.164353,77.530255],[-113.197116,77.558858],[-113.208537,77.5802],[-113.188641,77.59976],[-113.137378,77.617537],[-113.120635,77.632626],[-113.16779,77.676448],[-113.18952,77.718306],[-113.271272,77.778405],[-113.283467,77.813028],[-113.282951,77.835663],[-113.269334,77.860054],[-113.215203,77.903514],[-113.187065,77.912351],[-113.021623,77.91912],[-112.80453,77.941599],[-112.304587,78.006763],[-111.206592,78.088154],[-110.873227,78.080609],[-110.727344,78.096577],[-110.458058,78.103243]]],[[[-103.003371,78.146445],[-103.118196,78.126343],[-103.252245,78.138125],[-103.271004,78.150631],[-103.273587,78.165772],[-103.260048,78.183497],[-103.110445,78.24587],[-102.973296,78.267213],[-102.891802,78.271243],[-102.825527,78.250056],[-102.788268,78.218172],[-103.003371,78.146445]]],[[[-109.815979,78.650393],[-109.640951,78.592102],[-109.580851,78.593239],[-109.504163,78.582491],[-109.467266,78.567194],[-109.362234,78.492884],[-109.342158,78.455987],[-109.336008,78.408444],[-109.352105,78.368653],[-109.390527,78.336666],[-109.484474,78.316409],[-109.708802,78.303748],[-110.021858,78.322791],[-110.293443,78.298193],[-110.418371,78.294963],[-110.755095,78.310724],[-110.840051,78.3223],[-111.026732,78.36762],[-111.169178,78.386275],[-111.229019,78.376302],[-111.300513,78.336562],[-111.435053,78.287366],[-111.517503,78.274706],[-111.75971,78.282974],[-112.131238,78.36607],[-112.557827,78.341498],[-112.999893,78.292922],[-113.172518,78.283801],[-113.223058,78.297908],[-113.292562,78.334392],[-113.281685,78.352763],[-113.149935,78.408393],[-112.855871,78.466839],[-112.640819,78.499808],[-112.213998,78.54779],[-111.708783,78.574687],[-111.519854,78.603239],[-111.400327,78.644037],[-111.071458,78.708374],[-110.877568,78.735039],[-110.618075,78.757829],[-110.407803,78.75664],[-110.140481,78.704421],[-109.940855,78.678454],[-109.815979,78.650393]]],[[[-96.20451,78.531279],[-95.968452,78.505131],[-95.561112,78.516603],[-95.41293,78.497534],[-95.031196,78.430252],[-94.91539,78.390513],[-94.887743,78.360489],[-94.887174,78.345192],[-95.013859,78.312585],[-95.267849,78.262665],[-95.32924,78.225045],[-95.102742,78.178071],[-94.987788,78.136265],[-94.936008,78.106396],[-94.934303,78.075648],[-95.087007,77.992604],[-95.199119,77.968161],[-95.37053,77.970797],[-95.451558,77.963252],[-95.670796,77.924443],[-96.011576,77.887391],[-96.476845,77.872146],[-96.603013,77.849305],[-96.83398,77.811892],[-96.98963,77.806026],[-97.040479,77.82742],[-97.063837,77.859072],[-97.051952,77.880957],[-97.019085,77.908087],[-97.093319,77.933486],[-97.426657,77.982269],[-97.620858,78.050223],[-97.648401,78.071643],[-97.658168,78.090634],[-97.226618,78.103243],[-97.040945,78.116938],[-96.958366,78.139003],[-96.944671,78.151871],[-97.027328,78.1574],[-97.323072,78.203237],[-97.819062,78.2306],[-97.84273,78.262355],[-98.049488,78.325917],[-98.069306,78.386327],[-98.114316,78.403018],[-98.254927,78.42927],[-98.275701,78.4379],[-98.317352,78.476864],[-98.323709,78.498129],[-98.315647,78.517482],[-98.060366,78.558358],[-98.095996,78.586676],[-98.289886,78.692406],[-98.340814,78.751214],[-98.332597,78.773512],[-98.212088,78.804518],[-98.042847,78.805216],[-97.595898,78.795811],[-97.382319,78.782892],[-97.169335,78.757674],[-96.935783,78.72026],[-96.587045,78.687109],[-96.475346,78.665199],[-96.265281,78.595358],[-96.242647,78.573189],[-96.256496,78.551123],[-96.20451,78.531279]]],[[[-103.426007,79.315624],[-103.191654,79.295315],[-102.914333,79.231081],[-102.652282,79.095017],[-102.638949,79.077602],[-102.63758,79.054968],[-102.648199,79.027166],[-102.682848,78.990993],[-102.73052,78.96934],[-102.595593,78.942985],[-102.580787,78.930118],[-102.59275,78.900921],[-102.576188,78.879372],[-102.494565,78.900662],[-102.424802,78.933193],[-102.407335,78.954096],[-102.393176,79.01032],[-102.188563,79.03838],[-101.973641,79.079204],[-101.872613,79.088403],[-101.703657,79.07892],[-101.299031,78.982156],[-101.14457,78.972906],[-101.088475,78.961511],[-101.037161,78.939032],[-101.033672,78.914718],[-101.115941,78.858288],[-101.147464,78.823975],[-101.128137,78.80165],[-100.916987,78.782892],[-100.435492,78.820331],[-100.014768,78.728631],[-99.781811,78.619646],[-99.609418,78.583033],[-99.582133,78.563267],[-99.631097,78.544663],[-99.680189,78.493504],[-99.818294,78.455392],[-99.847802,78.43821],[-99.774111,78.392993],[-99.768633,78.364545],[-99.778245,78.325116],[-99.751348,78.302973],[-99.56247,78.279357],[-99.131566,78.117506],[-99.053122,78.072341],[-99.004571,78.015962],[-98.999636,77.996893],[-99.061183,77.965629],[-99.128362,77.877159],[-99.166396,77.856953],[-99.341321,77.839642],[-99.659131,77.824061],[-99.955909,77.793805],[-100.274675,77.832717],[-100.586051,77.891809],[-100.680257,77.930644],[-100.757901,77.97767],[-100.778236,77.996041],[-100.809552,78.071617],[-100.826192,78.08774],[-100.957605,78.130218],[-101.074135,78.193832],[-101.297997,78.199387],[-101.82949,78.264112],[-102.056969,78.279563],[-102.284449,78.275016],[-102.606987,78.248919],[-102.667681,78.255895],[-102.722717,78.275248],[-102.772068,78.3069],[-102.784315,78.330155],[-102.731321,78.371031],[-103.677232,78.319561],[-103.94657,78.26003],[-104.324221,78.269486],[-104.512633,78.294653],[-104.763548,78.351652],[-104.879329,78.401261],[-104.985421,78.468027],[-104.995549,78.518515],[-104.909612,78.552622],[-104.820134,78.572879],[-104.727065,78.57939],[-104.213969,78.539754],[-103.764358,78.519549],[-103.57052,78.539832],[-103.482567,78.593937],[-103.587961,78.623005],[-104.020829,78.634916],[-103.928509,78.663364],[-103.562717,78.692665],[-103.371566,78.736331],[-103.408411,78.751628],[-103.518379,78.769146],[-104.008736,78.76403],[-104.185005,78.78129],[-104.194565,78.795604],[-104.154955,78.813949],[-103.875644,78.902678],[-103.887142,78.918775],[-104.007212,78.947843],[-104.112735,78.985618],[-104.151932,78.989908],[-104.394811,78.956163],[-104.736056,78.825938],[-104.817447,78.807076],[-104.895504,78.808162],[-104.970228,78.829142],[-104.96953,78.856479],[-104.893411,78.890172],[-104.735255,78.991096],[-104.746779,79.027115],[-104.901343,79.051144],[-105.308812,79.033212],[-105.535672,79.032541],[-105.57076,79.060963],[-105.580191,79.114189],[-105.571044,79.164212],[-105.514536,79.242476],[-105.435703,79.30224],[-105.38767,79.323582],[-104.847367,79.310973],[-103.964605,79.348129],[-103.706378,79.352056],[-103.426007,79.315624]]],[[[-98.791613,79.981113],[-98.768953,79.850889],[-98.789778,79.785415],[-98.840628,79.737045],[-98.885199,79.725677],[-98.945195,79.724075],[-99.218434,79.76185],[-99.301763,79.784097],[-99.306233,79.802881],[-99.333001,79.839571],[-99.515626,79.887165],[-99.857465,79.879491],[-99.999885,79.884039],[-100.056833,79.898224],[-100.092438,79.918636],[-100.126028,80.001267],[-100.120343,80.030413],[-100.078537,80.081107],[-100.053267,80.093354],[-99.802792,80.140122],[-99.73122,80.144101],[-99.424856,80.126427],[-99.153219,80.124205],[-99.016586,80.111131],[-98.894682,80.081779],[-98.823187,80.037337],[-98.791613,79.981113]]],[[[-91.885549,81.132878],[-91.754962,81.049317],[-91.272485,80.850104],[-91.05392,80.777705],[-90.682909,80.687711],[-90.636736,80.655336],[-90.632473,80.641693],[-90.643015,80.593686],[-90.537259,80.575909],[-90.217614,80.548262],[-89.861848,80.498446],[-89.797872,80.501288],[-89.673849,80.530744],[-89.524788,80.538831],[-89.329064,80.531726],[-89.235581,80.510642],[-89.166903,80.479636],[-89.138275,80.457415],[-89.134166,80.440258],[-89.204369,80.406927],[-89.196591,80.39406],[-89.154682,80.378531],[-89.147266,80.360367],[-89.217701,80.28926],[-89.198323,80.263163],[-89.019212,80.198464],[-88.857336,80.166192],[-88.537562,80.13113],[-88.329254,80.133714],[-88.199908,80.111493],[-88.196807,80.125187],[-88.255383,80.166528],[-88.380776,80.225181],[-88.612518,80.255386],[-88.646237,80.289725],[-88.663446,80.348274],[-88.643628,80.386877],[-88.524824,80.418037],[-88.424365,80.428063],[-88.125236,80.429484],[-87.960026,80.415609],[-87.675005,80.372097],[-87.645523,80.348429],[-87.630253,80.30161],[-87.618341,80.207456],[-87.625499,80.187199],[-87.869153,80.133869],[-87.922328,80.097721],[-87.860704,80.087515],[-87.651363,80.079453],[-87.328488,80.046536],[-87.202062,80.043228],[-87.076152,79.966954],[-86.977192,79.894219],[-87.049539,79.805413],[-87.144236,79.662631],[-87.220278,79.62992],[-87.295183,79.580156],[-87.242886,79.571138],[-86.925231,79.590956],[-86.861023,79.597726],[-86.648814,79.64625],[-86.336973,79.634984],[-86.23225,79.622427],[-86.180471,79.605426],[-86.085541,79.551217],[-86.007044,79.479438],[-85.948986,79.486001],[-85.803853,79.573024],[-85.750936,79.594522],[-85.678641,79.61527],[-85.647867,79.61142],[-85.501391,79.53034],[-85.175571,79.387248],[-85.063743,79.328181],[-85.042142,79.284567],[-85.181333,79.233717],[-85.289853,79.208344],[-86.091639,79.099978],[-86.450532,79.03869],[-86.629435,78.991303],[-86.720825,78.97549],[-86.913475,78.982828],[-86.957193,78.974921],[-87.016466,78.898699],[-87.080364,78.866117],[-87.2464,78.813484],[-87.478763,78.718141],[-87.617385,78.676335],[-87.861479,78.70685],[-87.922302,78.751343],[-87.956228,78.851596],[-87.960724,78.893118],[-87.953179,78.915028],[-87.922586,78.950582],[-87.816753,79.036339],[-87.829414,79.045331],[-87.878351,79.038173],[-88.040202,78.995334],[-88.104074,78.972803],[-88.163812,78.933503],[-88.190245,78.867434],[-88.166603,78.74553],[-88.189702,78.696385],[-88.253781,78.671994],[-88.227891,78.653029],[-88.036998,78.626932],[-88.003098,78.615512],[-87.981988,78.594738],[-87.973643,78.56474],[-87.982841,78.537067],[-88.040254,78.494434],[-88.147586,78.477122],[-88.28458,78.496553],[-88.58066,78.601921],[-88.709257,78.596081],[-88.74158,78.584041],[-88.713959,78.54642],[-88.62306,78.46211],[-88.606446,78.392011],[-88.648382,78.33372],[-88.732976,78.241684],[-88.791009,78.192437],[-88.822428,78.185874],[-88.969603,78.184401],[-89.095693,78.209232],[-89.470011,78.370204],[-89.655297,78.438882],[-89.926211,78.573034],[-89.99538,78.600681],[-90.037083,78.60683],[-90.076305,78.549159],[-90.001013,78.495777],[-89.757255,78.370204],[-89.611656,78.278892],[-89.506831,78.203289],[-89.489829,78.171947],[-89.525693,78.159596],[-89.579488,78.166599],[-89.651111,78.193005],[-89.873036,78.237602],[-89.965201,78.262458],[-90.025455,78.291242],[-90.136095,78.313075],[-90.297222,78.328036],[-90.459047,78.33093],[-90.621595,78.321731],[-90.652394,78.307727],[-90.469201,78.26853],[-90.405432,78.246671],[-90.357942,78.21874],[-90.326755,78.184789],[-90.386984,78.163291],[-90.614412,78.14983],[-90.918114,78.158382],[-91.409635,78.187993],[-91.899191,78.236879],[-92.351257,78.312895],[-92.678265,78.389117],[-92.807611,78.429735],[-92.848229,78.460121],[-92.725601,78.486657],[-92.296738,78.520789],[-91.866893,78.5427],[-91.934951,78.561717],[-92.71555,78.605021],[-92.972511,78.612928],[-93.10935,78.601559],[-93.266601,78.608277],[-93.389436,78.642694],[-93.552062,78.707806],[-93.634408,78.75093],[-93.62335,78.767776],[-93.561415,78.777362],[-93.208336,78.769172],[-93.159838,78.775657],[-93.336468,78.808058],[-93.902273,78.872214],[-94.114612,78.928929],[-94.153627,78.951047],[-94.169673,78.972803],[-94.1628,78.994197],[-93.950203,79.037398],[-93.293886,79.139511],[-93.068474,79.155375],[-92.841614,79.156409],[-92.683639,79.185813],[-92.547214,79.282603],[-91.867565,79.317433],[-91.343644,79.360893],[-91.2999,79.372727],[-91.692641,79.364743],[-92.247955,79.37345],[-92.484556,79.439234],[-92.644727,79.450448],[-92.821926,79.449905],[-93.028115,79.429261],[-93.380884,79.368179],[-93.55046,79.353968],[-93.933176,79.290716],[-94.039836,79.295212],[-94.093373,79.302757],[-94.109392,79.315107],[-94.040301,79.357017],[-93.939687,79.385697],[-93.960254,79.395516],[-94.110322,79.401562],[-94.28411,79.400425],[-94.404878,79.390503],[-94.84604,79.335054],[-95.043702,79.293558],[-95.103182,79.289889],[-95.316605,79.354743],[-95.65705,79.3904],[-95.732988,79.418202],[-95.662915,79.527342],[-95.56349,79.54977],[-95.302369,79.568089],[-94.519677,79.667127],[-94.47552,79.686196],[-94.401881,79.736322],[-94.580836,79.725625],[-94.97306,79.677204],[-95.296968,79.653071],[-95.552508,79.653226],[-95.73937,79.660151],[-95.857503,79.673793],[-95.999664,79.704696],[-96.462737,79.84753],[-96.589086,79.916673],[-96.606759,79.977703],[-96.639212,80.02416],[-96.773261,80.135781],[-95.781978,80.066431],[-95.393836,80.053253],[-94.645897,80.048706],[-94.61086,80.055527],[-94.599802,80.073614],[-94.612721,80.102966],[-94.606985,80.1256],[-94.582593,80.141413],[-94.304445,80.181618],[-94.262587,80.194873],[-94.590138,80.201513],[-95.192375,80.134385],[-95.405075,80.135006],[-95.646224,80.230943],[-95.903986,80.214122],[-96.025658,80.221719],[-96.215104,80.245903],[-96.308328,80.266987],[-96.368427,80.293084],[-96.394111,80.31502],[-96.385326,80.332875],[-96.334399,80.35277],[-96.112164,80.380417],[-96.011886,80.383052],[-95.747354,80.365302],[-95.549072,80.366619],[-95.614468,80.39623],[-95.901066,80.470851],[-96.151826,80.553481],[-96.132835,80.691406],[-95.926956,80.720655],[-95.713635,80.725461],[-95.505276,80.690579],[-95.22581,80.685773],[-95.025745,80.646421],[-94.892574,80.570922],[-94.734496,80.572343],[-94.48539,80.558081],[-93.927905,80.559192],[-94.028725,80.586193],[-94.202151,80.609705],[-94.596262,80.640608],[-94.788472,80.751247],[-95.195863,80.808298],[-95.514733,80.838115],[-95.509281,80.86323],[-95.269761,81.000793],[-94.980528,81.049678],[-94.519445,81.031178],[-94.216285,81.057197],[-93.825999,81.105722],[-93.443748,81.083268],[-93.345098,81.085335],[-93.286703,81.10027],[-93.235647,81.128847],[-93.235389,81.15515],[-93.285928,81.179231],[-93.406541,81.2091],[-93.894418,81.21326],[-94.110374,81.224991],[-94.194452,81.240933],[-94.218636,81.264962],[-94.231478,81.289715],[-94.232976,81.31514],[-94.220135,81.330747],[-94.179362,81.339273],[-94.059705,81.349298],[-93.604901,81.35059],[-93.332747,81.364388],[-93.034677,81.346301],[-92.412571,81.278269],[-92.211782,81.243594],[-91.997842,81.18551],[-91.885549,81.132878]]],[[[-69.48888,83.016794],[-68.67327,82.998758],[-68.409023,83.005296],[-68.106871,82.96119],[-67.924634,82.956022],[-67.624471,82.964394],[-67.405648,82.953903],[-66.59164,82.944059],[-66.422581,82.926877],[-66.424777,82.906154],[-66.600374,82.861247],[-66.836302,82.817943],[-68.357553,82.676814],[-68.469355,82.653353],[-68.172862,82.645963],[-67.735886,82.652423],[-67.397069,82.668133],[-66.997688,82.716088],[-66.865706,82.718827],[-66.611872,82.742082],[-66.120455,82.807142],[-65.72743,82.842437],[-65.549637,82.826934],[-65.400008,82.802388],[-65.299006,82.799597],[-65.246606,82.818511],[-65.162425,82.870136],[-65.113178,82.888894],[-64.983883,82.902279],[-64.90487,82.900832],[-64.776764,82.87644],[-64.634783,82.818614],[-64.504016,82.77841],[-64.433374,82.777738],[-64.134245,82.823214],[-63.983608,82.829105],[-63.641045,82.81262],[-63.498703,82.792569],[-63.473019,82.771227],[-63.564073,82.748748],[-63.620581,82.729318],[-63.642518,82.712988],[-63.592702,82.694023],[-63.385402,82.653457],[-63.085343,82.565245],[-63.087048,82.532792],[-63.250837,82.466853],[-63.24678,82.450213],[-62.475173,82.519563],[-61.697159,82.488609],[-61.477069,82.467421],[-61.392475,82.441893],[-61.302506,82.399777],[-61.207215,82.341047],[-61.273541,82.279836],[-61.615381,82.184441],[-61.968641,82.110234],[-62.176716,82.043416],[-62.49649,82.006778],[-63.592314,81.845496],[-64.127915,81.793664],[-64.435803,81.742608],[-64.574012,81.733719],[-65.226194,81.743486],[-65.399155,81.715374],[-65.495428,81.66809],[-65.701075,81.645559],[-66.004725,81.629436],[-66.625747,81.616414],[-66.765015,81.563032],[-66.800594,81.526807],[-66.861159,81.498695],[-66.914075,81.485104],[-68.688541,81.293333],[-68.721174,81.261242],[-68.542581,81.248013],[-68.317685,81.261242],[-65.735698,81.494251],[-65.239992,81.50965],[-64.780071,81.492856],[-64.832755,81.438621],[-65.483956,81.28478],[-66.312846,81.146158],[-66.726878,81.040893],[-67.774359,80.859406],[-68.630457,80.678693],[-68.959351,80.586864],[-69.400099,80.422843],[-69.550685,80.383259],[-69.733774,80.366929],[-69.949317,80.373802],[-70.143491,80.397677],[-70.402622,80.458991],[-70.63868,80.52754],[-70.712577,80.53958],[-70.667826,80.505577],[-70.212789,80.277736],[-70.264879,80.233604],[-71.10028,80.187044],[-71.470051,80.145909],[-71.66084,80.135936],[-71.795922,80.143377],[-71.927645,80.13914],[-72.055984,80.123223],[-72.062986,80.10555],[-71.948678,80.086171],[-71.616088,80.07103],[-70.877064,80.122293],[-70.758518,80.118676],[-70.5684,80.093716],[-70.559073,80.071004],[-70.75751,79.998218],[-71.35582,79.911298],[-71.277608,79.906337],[-71.106326,79.875538],[-71.110176,79.847788],[-71.298588,79.782572],[-71.387833,79.761747],[-71.964542,79.701053],[-72.215535,79.686816],[-72.436503,79.694387],[-73.448147,79.827117],[-73.80505,79.846289],[-74.144254,79.879776],[-74.394472,79.874091],[-74.660218,79.835179],[-74.540716,79.815594],[-74.05103,79.778232],[-73.642063,79.770997],[-73.472461,79.756424],[-73.405901,79.732188],[-73.229375,79.643976],[-73.201108,79.596589],[-73.240123,79.552483],[-73.293583,79.521606],[-73.361511,79.503985],[-73.466053,79.495148],[-73.865951,79.501401],[-74.015373,79.490549],[-74.188696,79.464762],[-74.405995,79.453548],[-74.797935,79.45869],[-75.259483,79.421044],[-75.503448,79.414171],[-75.773819,79.431173],[-76.066876,79.473186],[-76.376082,79.494425],[-76.898841,79.512305],[-76.855097,79.488223],[-76.670922,79.478095],[-76.295673,79.413603],[-76.116356,79.326114],[-75.947503,79.311335],[-75.602744,79.239556],[-75.353664,79.228343],[-75.093602,79.2039],[-74.727268,79.235371],[-74.481185,79.229479],[-74.532318,79.052746],[-74.640891,79.035538],[-75.233154,79.035538],[-75.514662,79.061247],[-75.638943,79.087731],[-75.911795,79.117781],[-76.157568,79.100392],[-76.380345,79.104164],[-76.531447,79.086517],[-76.771148,79.087163],[-77.398061,79.057294],[-77.729255,79.056932],[-77.973788,79.076207],[-78.257905,79.082202],[-78.581658,79.075019],[-78.558998,79.054581],[-78.421771,79.048405],[-78.22199,79.015126],[-78.036833,78.963914],[-77.88276,78.942365],[-77.698223,78.954561],[-77.510405,78.978487],[-76.824814,79.017864],[-76.524109,79.024221],[-76.255857,79.006857],[-76.077315,78.985153],[-75.952671,78.959057],[-75.795058,78.889759],[-75.399837,78.881284],[-75.098563,78.858288],[-74.618411,78.757725],[-74.486301,78.750103],[-74.433126,78.724136],[-74.535083,78.659282],[-74.546607,78.620318],[-74.878602,78.544818],[-75.396555,78.52283],[-75.965849,78.529832],[-76.373472,78.521073],[-76.416131,78.511539],[-76.13651,78.491695],[-75.488358,78.403535],[-75.237211,78.355734],[-75.193441,78.327726],[-75.55068,78.221117],[-75.865958,78.009812],[-75.969621,77.993121],[-76.077521,77.987281],[-76.355592,77.991002],[-76.708077,77.937879],[-76.974004,77.927233],[-77.455938,77.94718],[-78.012597,77.946044],[-78.056393,77.91173],[-78.084117,77.846101],[-78.081068,77.747348],[-78.047169,77.615469],[-78.076159,77.519067],[-78.167988,77.458115],[-78.283743,77.413105],[-78.493214,77.369386],[-78.708472,77.342153],[-78.869547,77.332541],[-79.137593,77.330991],[-79.906383,77.299546],[-80.281709,77.301483],[-80.573061,77.314816],[-80.874619,77.358586],[-81.376836,77.482144],[-81.519282,77.509559],[-81.659093,77.525449],[-81.653822,77.498836],[-81.503547,77.42977],[-81.37818,77.385199],[-81.277721,77.365201],[-81.301389,77.344065],[-81.522951,77.310837],[-81.767329,77.295954],[-82.056795,77.296523],[-82.065993,77.283655],[-81.967808,77.247843],[-81.840219,77.214099],[-81.756322,77.204022],[-81.534475,77.21446],[-81.277462,77.257093],[-81.117214,77.269651],[-80.798189,77.259471],[-80.672538,77.244303],[-80.274216,77.15095],[-80.218716,77.146558],[-79.923747,77.193609],[-79.497261,77.196089],[-79.340888,77.158391],[-79.281098,77.085166],[-79.273812,77.02579],[-79.318926,76.980366],[-79.22074,76.936054],[-78.979205,76.892878],[-78.791774,76.883576],[-78.658552,76.908019],[-78.455981,76.96724],[-78.370043,76.98127],[-78.288859,76.977989],[-78.165094,76.934891],[-77.998748,76.85195],[-77.983296,76.755005],[-78.118689,76.644056],[-78.284312,76.571218],[-78.934298,76.451148],[-79.13072,76.403967],[-79.285904,76.354771],[-79.511033,76.310485],[-79.953564,76.251263],[-80.186805,76.240205],[-80.690263,76.176462],[-80.799714,76.173568],[-80.96296,76.183929],[-80.996653,76.214986],[-80.955182,76.270177],[-80.901232,76.321543],[-80.834802,76.369137],[-80.832373,76.408644],[-80.974535,76.470061],[-81.074374,76.498483],[-81.170699,76.512746],[-81.364795,76.504478],[-81.474453,76.487631],[-81.591991,76.484427],[-81.717384,76.494969],[-81.822959,76.520859],[-82.03416,76.629406],[-82.113742,76.643229],[-82.217922,76.639818],[-82.311146,76.655373],[-82.393467,76.689893],[-82.529841,76.723276],[-82.493409,76.697799],[-82.356983,76.636046],[-82.261976,76.574706],[-82.208362,76.513754],[-82.233166,76.465824],[-83.388987,76.439262],[-83.885701,76.453111],[-83.986315,76.495021],[-84.223794,76.67532],[-84.275341,76.356528],[-85.141257,76.304568],[-85.343622,76.313378],[-85.680579,76.349035],[-86.115797,76.434921],[-86.2962,76.491869],[-86.366842,76.54861],[-86.419422,76.579615],[-86.45371,76.584886],[-86.56192,76.516518],[-86.680233,76.37663],[-86.977683,76.412752],[-87.354197,76.448047],[-87.489796,76.585817],[-87.497548,76.386294],[-88.104332,76.412752],[-88.395994,76.405259],[-88.481622,76.58008],[-88.495859,76.772834],[-88.61412,76.650877],[-88.562547,76.547214],[-88.545778,76.420917],[-88.803695,76.456832],[-89.369656,76.474454],[-89.570083,76.49192],[-89.544348,76.659662],[-89.499751,76.826784],[-88.770907,76.993337],[-88.556217,77.072195],[-88.398165,77.10395],[-88.147947,77.124027],[-87.828406,77.136481],[-87.610512,77.126869],[-87.361742,77.136222],[-87.064473,77.165885],[-86.852212,77.174411],[-86.812241,77.184927],[-86.873762,77.200301],[-87.100854,77.307736],[-87.182399,77.332128],[-87.265366,77.343005],[-87.429671,77.347786],[-87.58917,77.394811],[-87.681464,77.436359],[-87.780192,77.492841],[-87.937934,77.599812],[-88.094669,77.719184],[-88.016973,77.784736],[-87.757118,77.836231],[-87.496773,77.87194],[-87.236013,77.891809],[-87.01799,77.892248],[-86.755061,77.863723],[-86.385109,77.80861],[-86.172977,77.746159],[-85.906637,77.613893],[-85.731221,77.508654],[-85.588491,77.461138],[-84.950856,77.374967],[-84.738698,77.361015],[-84.487034,77.367991],[-83.973577,77.390548],[-83.721292,77.41419],[-83.608069,77.44225],[-83.54983,77.482558],[-83.477354,77.513615],[-83.250313,77.584825],[-82.902712,77.732723],[-82.710372,77.849512],[-82.66469,77.888838],[-82.626321,77.936328],[-82.595289,77.992139],[-82.703577,77.962425],[-83.303773,77.673709],[-83.42821,77.621309],[-83.779377,77.532632],[-83.928153,77.518318],[-84.167829,77.52271],[-84.485845,77.561984],[-84.860551,77.499508],[-85.087876,77.515372],[-85.289362,77.559039],[-85.292023,77.763884],[-85.547538,77.927698],[-85.265333,78.010587],[-85.031497,78.062006],[-84.615424,78.195692],[-84.524163,78.197088],[-84.222709,78.176004],[-84.388125,78.206364],[-84.550002,78.251348],[-84.910367,78.239721],[-84.783191,78.52761],[-85.024314,78.312378],[-85.270164,78.199517],[-85.418992,78.142414],[-85.585933,78.109548],[-86.217781,78.081177],[-86.062622,78.186959],[-85.920047,78.342867],[-86.070968,78.284628],[-86.427045,78.197036],[-86.693592,78.151018],[-86.913242,78.126808],[-87.33934,78.132647],[-87.551731,78.176624],[-87.491114,78.284421],[-87.491295,78.417178],[-87.361277,78.478724],[-87.164312,78.557634],[-86.952904,78.663907],[-86.807926,78.774365],[-86.241914,78.823613],[-85.690991,78.843715],[-85.229676,78.902006],[-85.003747,78.912238],[-84.787274,78.884591],[-83.907896,78.839142],[-83.54704,78.804492],[-83.388703,78.779352],[-83.271423,78.770334],[-83.1474,78.807851],[-82.989787,78.844128],[-82.441784,78.840408],[-82.290682,78.847074],[-82.151052,78.864101],[-81.981089,78.898492],[-81.780791,78.950323],[-81.750095,78.975774],[-81.889105,78.97487],[-82.028295,78.961847],[-82.237378,78.924072],[-82.438787,78.903685],[-82.644097,78.907535],[-83.058542,78.939523],[-83.778602,78.945259],[-84.145789,78.959832],[-84.31614,78.975283],[-84.412,78.996574],[-84.495871,79.028562],[-84.567752,79.071298],[-84.530287,79.10127],[-84.383578,79.11853],[-84.25666,79.122148],[-84.053029,79.098686],[-83.824594,79.058818],[-83.575875,79.053676],[-83.66202,79.090056],[-83.978124,79.163127],[-84.197387,79.225087],[-84.381071,79.301258],[-84.522432,79.376628],[-84.836444,79.494735],[-85.089788,79.612143],[-85.268485,79.66413],[-85.456949,79.689865],[-86.031487,79.72193],[-86.146622,79.742833],[-86.42074,79.845204],[-86.494353,80.018165],[-86.614501,80.123533],[-86.498539,80.258228],[-86.307181,80.319335],[-85.159603,80.271793],[-84.67542,80.278924],[-84.056518,80.261949],[-83.723618,80.228953],[-83.34377,80.146995],[-83.004308,80.054597],[-82.67748,79.992792],[-82.376982,79.908249],[-82.048785,79.782779],[-81.855722,79.722576],[-81.688367,79.685808],[-81.463032,79.654131],[-81.038097,79.614211],[-80.66781,79.601033],[-80.475935,79.606252],[-80.270625,79.635191],[-80.124484,79.669504],[-80.287445,79.678961],[-80.714034,79.67493],[-81.010166,79.69312],[-81.17907,79.733428],[-81.358698,79.787792],[-81.644236,79.89024],[-81.860243,79.957187],[-82.332385,80.066379],[-82.681304,80.1749],[-82.961132,80.277891],[-82.987022,80.322591],[-82.784812,80.353752],[-82.536145,80.375559],[-80.979651,80.445271],[-80.051077,80.528573],[-79.674356,80.62526],[-79.629346,80.647843],[-78.386166,80.784372],[-77.50715,80.834782],[-77.16916,80.842921],[-76.863003,80.86478],[-76.850342,80.878164],[-77.118543,80.896458],[-77.389431,80.905398],[-78.003812,80.904829],[-78.550962,80.921418],[-78.716223,80.951648],[-78.68191,81.001051],[-78.629304,81.043477],[-78.463939,81.114377],[-78.286792,81.167604],[-77.536037,81.321083],[-77.030719,81.385679],[-76.885121,81.430275],[-77.972341,81.330798],[-78.352137,81.258916],[-78.733871,81.151016],[-78.931559,81.119235],[-79.072481,81.127658],[-79.198339,81.117581],[-79.309185,81.089056],[-79.40215,81.036863],[-79.477236,80.961002],[-79.545423,80.909325],[-79.60666,80.881782],[-79.761353,80.841939],[-80.133527,80.763934],[-81.007014,80.654871],[-81.300975,80.627198],[-81.552691,80.622779],[-82.368197,80.56131],[-82.61304,80.558907],[-82.884341,80.577563],[-82.768327,80.630686],[-82.336778,80.728664],[-82.222366,80.772331],[-82.498421,80.762771],[-82.779955,80.736054],[-83.401415,80.713988],[-83.647137,80.674094],[-83.885365,80.601747],[-84.076258,80.556272],[-84.219789,80.537772],[-84.417839,80.526765],[-85.145857,80.521132],[-85.307397,80.525989],[-85.726235,80.581128],[-86.097168,80.562111],[-86.250337,80.56578],[-86.531612,80.604744],[-86.615405,80.63004],[-86.60308,80.664017],[-86.440481,80.728044],[-86.25212,80.789539],[-85.639315,80.924621],[-85.246264,80.987873],[-84.679916,81.042392],[-83.349196,81.103319],[-83.288838,81.147941],[-84.635449,81.098073],[-85.780857,81.03508],[-85.966814,81.011903],[-86.233439,80.950098],[-87.080261,80.726287],[-87.329909,80.669753],[-87.711669,80.656266],[-88.003641,80.675386],[-88.231999,80.703808],[-88.625076,80.770057],[-88.92144,80.805637],[-89.06169,80.829537],[-89.144579,80.85367],[-89.211784,80.881937],[-89.263254,80.914286],[-89.166903,80.941313],[-88.413073,80.999759],[-87.388666,80.98839],[-86.928978,81.000431],[-86.476757,81.035726],[-85.809589,81.123602],[-85.083328,81.246876],[-84.941218,81.286227],[-85.206318,81.294883],[-85.402482,81.285323],[-85.875037,81.241191],[-86.622743,81.122646],[-87.275107,81.080788],[-88.886791,81.058515],[-89.398388,81.025339],[-89.623051,81.03247],[-89.792291,81.06482],[-89.980936,81.124713],[-89.947295,81.172643],[-89.563365,81.226489],[-89.262556,81.239047],[-89.208709,81.25008],[-89.635712,81.302066],[-89.673668,81.328628],[-89.427017,81.387436],[-88.892295,81.474097],[-88.621924,81.501408],[-88.126502,81.518797],[-87.616688,81.50934],[-87.597025,81.525825],[-88.101361,81.55864],[-88.479038,81.564634],[-88.978388,81.541483],[-90.303526,81.40113],[-90.416336,81.405367],[-90.609037,81.429552],[-90.553769,81.464227],[-89.845208,81.61166],[-89.821695,81.634862],[-90.330863,81.631555],[-90.480363,81.638531],[-90.626297,81.655998],[-90.833727,81.640495],[-91.102754,81.591971],[-91.292407,81.571249],[-91.402787,81.578225],[-91.684062,81.635689],[-91.647579,81.683852],[-91.42382,81.744261],[-91.219465,81.787721],[-90.941963,81.82746],[-90.490182,81.877225],[-90.163018,81.89402],[-89.633335,81.894536],[-89.380999,81.916757],[-89.156361,81.955411],[-88.875241,82.018017],[-88.566837,82.06109],[-88.063198,82.096488],[-87.638934,82.085067],[-87.404401,82.054217],[-87.218185,82.000111],[-87.018197,81.958719],[-86.999232,81.992153],[-86.834022,82.033339],[-86.6268,82.051013],[-86.377513,82.045122],[-86.158353,82.025536],[-85.874779,81.975668],[-85.645645,81.953293],[-85.537977,81.954636],[-85.403154,81.982231],[-85.044829,81.9828],[-85.052245,81.99453],[-85.16924,82.023366],[-85.310575,82.043985],[-86.580601,82.187232],[-86.615638,82.218548],[-86.187602,82.247952],[-85.920021,82.283066],[-85.794448,82.291618],[-85.480875,82.366316],[-85.275978,82.405203],[-84.896828,82.449438],[-84.744744,82.437346],[-84.553386,82.39833],[-84.368126,82.373939],[-83.823612,82.350684],[-83.59068,82.326448],[-83.175693,82.187206],[-83.010173,82.141679],[-82.774193,82.094938],[-82.63371,82.077316],[-82.356027,82.066025],[-82.32745,82.092457],[-82.657068,82.158293],[-82.747476,82.19643],[-82.708589,82.228728],[-82.638387,82.245729],[-82.536894,82.24728],[-82.276574,82.218444],[-81.584498,82.120569],[-80.54991,82.004607],[-80.153371,81.977632],[-79.908631,81.936239],[-79.685544,81.885881],[-79.465635,81.851128],[-79.424862,81.854436],[-79.629501,81.932312],[-80.129832,82.028378],[-81.468252,82.192399],[-81.997625,82.278286],[-82.253682,82.336318],[-82.447546,82.395023],[-82.451344,82.427114],[-82.268901,82.464631],[-82.023231,82.494396],[-81.717797,82.50623],[-81.681159,82.518633],[-81.958609,82.563229],[-82.122527,82.60178],[-82.116843,82.628652],[-81.785338,82.649219],[-81.579666,82.643018],[-81.188863,82.594494],[-80.862526,82.571549],[-80.809687,82.586381],[-81.146618,82.715572],[-81.178063,82.744691],[-81.128195,82.761719],[-81.010166,82.77903],[-80.657138,82.769108],[-80.075779,82.706218],[-79.035067,82.674644],[-78.748779,82.679372],[-78.7918,82.693893],[-79.207201,82.732754],[-79.642007,82.784973],[-79.833778,82.816496],[-79.974312,82.858974],[-80.141175,82.894217],[-80.154947,82.911115],[-79.886333,82.938504],[-79.180588,82.933181],[-78.524969,82.891116],[-77.968672,82.906361],[-77.618073,82.895871],[-77.47958,82.883158],[-77.225875,82.837218],[-76.421015,82.670923],[-76.335542,82.644413],[-76.244023,82.604106],[-76.146484,82.549871],[-76.00936,82.535169],[-75.744312,82.572428],[-75.565615,82.60855],[-75.642871,82.643483],[-76.086978,82.723633],[-76.187799,82.75792],[-76.409956,82.815824],[-76.908453,82.919409],[-77.041209,82.967546],[-77.124925,83.008551],[-75.744932,83.047179],[-74.414186,83.013124],[-74.197739,82.988992],[-74.055888,82.95535],[-73.91649,82.904191],[-73.703118,82.851842],[-73.272034,82.771589],[-72.658712,82.721644],[-72.775914,82.755673],[-73.234646,82.844246],[-73.441868,82.904837],[-73.440706,82.945842],[-73.403783,82.977158],[-73.331126,82.998758],[-72.811674,83.081182],[-72.069213,83.106039],[-71.983223,83.10144],[-71.405946,82.974858],[-71.132009,82.923052],[-70.940367,82.902227],[-70.932977,82.91127],[-71.198336,82.969561],[-71.402406,83.001291],[-71.423516,83.021134],[-71.084829,83.082681],[-70.870552,83.098132],[-69.969935,83.116116],[-69.867668,83.109604],[-69.782143,83.092551],[-69.569391,83.024907],[-69.48888,83.016794]]]]},"type":"Feature","properties":{"ISO_A2":"CA","NAME":"Canada"}},{"geometry":{"type":"Polygon","coordinates":[[[9.523998,47.524205],[9.554384,47.511157],[9.625904,47.467025],[9.609057,47.391785],[9.527512,47.270758],[9.48431,47.172677],[9.479453,47.097513],[9.487721,47.062244],[9.502294,47.062735],[9.580222,47.057386],[9.619961,47.05749],[9.745018,47.037129],[9.845322,47.007364],[9.864649,46.97597],[9.877723,46.937678],[9.996889,46.88533],[10.13347,46.851507],[10.179772,46.862334],[10.349425,46.984781],[10.4149,46.964395],[10.454587,46.899437],[10.45283,46.864943],[10.406011,46.734874],[10.39795,46.665033],[10.438257,46.618834],[10.442495,46.582842],[10.430609,46.550053],[10.363068,46.547082],[10.272273,46.564858],[10.195533,46.621082],[10.1375,46.614364],[10.087013,46.599895],[10.061226,46.546797],[10.03823,46.483184],[10.04562,46.447915],[10.081897,46.420733],[10.109647,46.362855],[10.129904,46.287976],[10.1452,46.253534],[10.128354,46.238212],[10.080553,46.22798],[10.041021,46.238108],[9.971671,46.327663],[9.93927,46.361796],[9.884441,46.367764],[9.787754,46.346034],[9.639495,46.295882],[9.579602,46.296115],[9.5287,46.306218],[9.481055,46.348799],[9.440592,46.43081],[9.427621,46.482331],[9.399354,46.480677],[9.304373,46.49556],[9.260138,46.4752],[9.259725,46.391277],[9.251095,46.286762],[9.203449,46.219246],[9.071002,46.102458],[9.022375,46.051479],[9.003048,46.014892],[8.998914,45.983111],[9.019171,45.928101],[9.046714,45.875598],[9.02377,45.845677],[8.953697,45.830045],[8.904294,45.861955],[8.885174,45.918696],[8.777997,45.996211],[8.826779,46.061013],[8.818511,46.077136],[8.641674,46.110803],[8.5654,46.159818],[8.45843,46.245911],[8.438483,46.28286],[8.442927,46.402801],[8.436829,46.431895],[8.422566,46.446028],[8.370683,46.445124],[8.298543,46.403421],[8.231932,46.341203],[8.095661,46.271026],[8.081502,46.256014],[8.127287,46.187595],[8.12522,46.160955],[8.014219,46.051892],[7.993135,46.0159],[7.852369,45.94748],[7.787876,45.921848],[7.59254,45.972233],[7.538589,45.978176],[7.451566,45.944457],[7.327956,45.91234],[7.129002,45.880404],[7.055725,45.903788],[7.021102,45.925776],[7.003893,45.958849],[6.953715,46.01714],[6.897285,46.051737],[6.858062,46.089383],[6.805714,46.130673],[6.772021,46.165141],[6.816773,46.275212],[6.784165,46.313943],[6.767422,46.369185],[6.776052,46.406651],[6.758068,46.415772],[6.578234,46.437373],[6.42889,46.4305],[6.321919,46.393706],[6.23469,46.332624],[6.224199,46.319447],[6.229574,46.30844],[6.272982,46.252268],[6.199395,46.193046],[6.086585,46.147003],[6.006693,46.142352],[5.971501,46.15124],[5.970003,46.214699],[6.036149,46.238108],[6.095887,46.279398],[6.115937,46.337637],[6.123224,46.378591],[6.06023,46.428174],[6.067981,46.458534],[6.106997,46.516076],[6.129735,46.566977],[6.160792,46.611057],[6.285126,46.683042],[6.410131,46.755441],[6.428993,46.832284],[6.438605,46.92587],[6.456226,46.948323],[6.624847,47.004366],[6.666911,47.026536],[6.688047,47.058265],[6.820649,47.163168],[6.952062,47.267193],[6.978468,47.302048],[7.000638,47.322512],[7.000534,47.339436],[6.98405,47.352562],[6.921469,47.361218],[6.900385,47.394213],[6.968392,47.453228],[7.053451,47.48935],[7.13603,47.489866],[7.169206,47.473227],[7.167449,47.453693],[7.203106,47.432712],[7.265738,47.425788],[7.343149,47.433126],[7.420044,47.455192],[7.467431,47.507643],[7.494871,47.547382],[7.615587,47.592703],[7.698063,47.569887],[7.927093,47.563841],[8.093801,47.576166],[8.198291,47.606914],[8.327792,47.606914],[8.414763,47.589602],[8.430059,47.592134],[8.454037,47.596191],[8.477653,47.612701],[8.559509,47.624018],[8.570464,47.63779],[8.567054,47.651924],[8.552326,47.659133],[8.451712,47.65182],[8.413265,47.662698],[8.403446,47.687787],[8.435796,47.73135],[8.509848,47.766878],[8.572635,47.775637],[8.617903,47.766103],[8.728284,47.70006],[8.754794,47.698071],[8.770142,47.709905],[8.793086,47.716571],[8.83112,47.7036],[8.874012,47.662672],[8.881143,47.656394],[9.127536,47.670682],[9.18283,47.670682],[9.349952,47.59893],[9.523998,47.524205]]]},"type":"Feature","properties":{"ISO_A2":"CH","NAME":"Switzerland"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-67.575198,-55.889663],[-67.611423,-55.89173],[-67.699531,-55.873127],[-67.831513,-55.864858],[-67.846448,-55.857262],[-67.849703,-55.842534],[-67.834097,-55.827548],[-67.76206,-55.816076],[-67.544812,-55.825946],[-67.517269,-55.832819],[-67.509827,-55.844343],[-67.545277,-55.877416],[-67.575198,-55.889663]]],[[[-67.288859,-55.776854],[-67.325291,-55.78476],[-67.35224,-55.766053],[-67.393349,-55.752721],[-67.559953,-55.724764],[-67.563467,-55.707762],[-67.54613,-55.683681],[-67.512773,-55.662028],[-67.448849,-55.640634],[-67.397379,-55.585134],[-67.374073,-55.58932],[-67.35056,-55.612057],[-67.31046,-55.688694],[-67.262452,-55.743781],[-67.26731,-55.762798],[-67.288859,-55.776854]]],[[[-66.472113,-55.229135],[-66.551695,-55.272905],[-66.611122,-55.269959],[-66.630165,-55.254146],[-66.636625,-55.234354],[-66.624765,-55.213064],[-66.599702,-55.193633],[-66.541566,-55.169397],[-66.523169,-55.165521],[-66.435784,-55.189758],[-66.472113,-55.229135]]],[[[-67.079931,-55.153842],[-67.10949,-55.192083],[-67.172561,-55.242623],[-67.25744,-55.281793],[-67.339683,-55.292542],[-67.399266,-55.272285],[-67.429419,-55.236525],[-67.443268,-55.201126],[-67.463473,-55.181748],[-67.494738,-55.177459],[-67.535252,-55.178544],[-67.585197,-55.19198],[-67.691444,-55.242984],[-67.736971,-55.25642],[-67.767796,-55.259521],[-68.07,-55.221074],[-68.099533,-55.206862],[-68.135112,-55.172704],[-68.174334,-55.071264],[-68.301355,-54.980623],[-68.106948,-54.92936],[-67.87412,-54.92967],[-67.424561,-54.968893],[-67.24527,-54.977626],[-67.10732,-55.063615],[-67.085512,-55.115188],[-67.079931,-55.153842]]],[[[-69.702975,-54.919076],[-68.900802,-55.017727],[-68.653504,-54.957937],[-68.457986,-54.959642],[-68.399799,-55.041963],[-68.598081,-55.128314],[-68.613274,-55.155548],[-68.585576,-55.177769],[-68.381764,-55.191618],[-68.330087,-55.21942],[-68.282648,-55.25518],[-68.322775,-55.308252],[-68.326547,-55.332746],[-68.305412,-55.356621],[-68.152579,-55.436874],[-68.089895,-55.47837],[-68.058321,-55.518006],[-68.045557,-55.587511],[-68.048347,-55.643167],[-68.08266,-55.650556],[-68.157075,-55.63371],[-68.229654,-55.601515],[-68.293345,-55.521417],[-68.338045,-55.505294],[-68.466694,-55.489067],[-68.59418,-55.449948],[-68.693579,-55.452274],[-68.784995,-55.435634],[-68.867031,-55.450207],[-68.896151,-55.423852],[-68.931291,-55.370625],[-68.932066,-55.347371],[-68.888968,-55.263241],[-68.890079,-55.241227],[-68.912636,-55.23854],[-69.008185,-55.255748],[-69.046839,-55.244328],[-69.150761,-55.18335],[-69.192644,-55.171826],[-69.297057,-55.16578],[-69.356123,-55.273887],[-69.359223,-55.300707],[-69.29902,-55.369333],[-69.180888,-55.474805],[-69.240833,-55.476768],[-69.41183,-55.444212],[-69.455729,-55.424059],[-69.508697,-55.370935],[-69.610268,-55.339981],[-69.645898,-55.320912],[-69.656311,-55.298485],[-69.657371,-55.229032],[-69.67985,-55.218955],[-69.824027,-55.236576],[-69.853689,-55.219833],[-69.865756,-55.190584],[-69.886762,-55.174151],[-69.979806,-55.147486],[-69.987971,-55.130795],[-69.946526,-55.111054],[-69.920843,-55.061187],[-69.884411,-54.882076],[-69.702975,-54.919076]]],[[[-70.99163,-54.86802],[-70.945121,-54.931324],[-70.927939,-54.942951],[-70.804846,-54.967652],[-70.749345,-54.952769],[-70.615271,-54.945638],[-70.534785,-54.921247],[-70.417531,-54.908896],[-70.283043,-55.065941],[-70.297848,-55.113742],[-70.404147,-55.165676],[-70.475564,-55.177045],[-70.543441,-55.161284],[-70.538738,-55.134981],[-70.551089,-55.111881],[-70.597468,-55.082064],[-70.640928,-55.084854],[-70.711001,-55.106972],[-70.744462,-55.104233],[-70.815491,-55.079893],[-70.93985,-55.061962],[-70.9645,-55.039638],[-70.967291,-55.006875],[-70.990726,-54.990442],[-71.120356,-54.937835],[-71.203323,-54.89298],[-71.273629,-54.886882],[-71.299312,-54.892308],[-71.325331,-54.913805],[-71.388557,-54.934269],[-71.406644,-54.930859],[-71.426901,-54.913754],[-71.437184,-54.889207],[-71.410519,-54.83934],[-71.374268,-54.834534],[-71.197044,-54.844404],[-71.088627,-54.867503],[-70.99163,-54.86802]]],[[[-71.390469,-54.032774],[-71.168751,-54.112614],[-71.021913,-54.111839],[-71.022843,-54.161707],[-71.004859,-54.246663],[-71.028036,-54.281131],[-71.082942,-54.316271],[-71.117514,-54.366294],[-71.143275,-54.373993],[-71.304634,-54.313584],[-71.47328,-54.23116],[-71.558133,-54.245629],[-71.670607,-54.225424],[-71.761221,-54.229764],[-71.817575,-54.276428],[-71.948523,-54.300871],[-71.972371,-54.207182],[-72.091563,-54.118712],[-72.210445,-54.04776],[-72.146056,-53.938878],[-72.068955,-53.921308],[-71.996478,-53.884876],[-71.705127,-53.923375],[-71.554154,-53.956034],[-71.390469,-54.032774]]],[[[-72.923218,-53.481593],[-72.896268,-53.562777],[-72.882212,-53.578331],[-72.809349,-53.565361],[-72.685506,-53.557919],[-72.482289,-53.588047],[-72.459215,-53.598795],[-72.372915,-53.687472],[-72.306692,-53.725403],[-72.205406,-53.807413],[-72.306227,-53.862138],[-72.365965,-53.940842],[-72.369117,-53.980736],[-72.408546,-54.003835],[-72.470481,-54.02771],[-72.562904,-54.073702],[-72.67654,-54.078869],[-72.788626,-54.103106],[-72.84038,-54.12512],[-72.870999,-54.126567],[-72.907276,-54.114681],[-72.946085,-54.092098],[-72.95859,-54.06595],[-72.881722,-54.041611],[-72.781676,-53.954794],[-72.76377,-53.864826],[-72.871722,-53.848496],[-72.936137,-53.860846],[-72.984222,-53.860536],[-73.039464,-53.832838],[-73.073054,-53.875316],[-73.085559,-53.915882],[-73.070857,-53.977997],[-73.080779,-53.997996],[-73.119976,-54.009365],[-73.210616,-53.9858],[-73.304719,-53.943942],[-73.31216,-53.919603],[-73.292859,-53.835835],[-73.2949,-53.792117],[-73.314331,-53.729175],[-73.324821,-53.722612],[-73.36009,-53.724059],[-73.470936,-53.7361],[-73.581653,-53.655433],[-73.64152,-53.57027],[-73.845461,-53.545827],[-73.686504,-53.426816],[-73.447088,-53.410073],[-73.365852,-53.470224],[-73.099357,-53.511876],[-73.115325,-53.448003],[-73.110881,-53.425214],[-73.074294,-53.39674],[-73.053597,-53.394415],[-73.022101,-53.414517],[-72.970941,-53.422992],[-72.947273,-53.442474],[-72.923218,-53.481593]]],[[[-74.385764,-52.922351],[-74.369357,-52.931497],[-74.329954,-52.929327],[-74.274634,-52.945502],[-74.065965,-52.965346],[-73.879206,-53.012216],[-73.78177,-53.056089],[-73.654,-53.069784],[-73.549252,-53.125698],[-73.504552,-53.140012],[-73.450602,-53.144301],[-73.310352,-53.247706],[-73.302497,-53.259488],[-73.143385,-53.340878],[-73.13522,-53.353952],[-73.225732,-53.358448],[-73.409364,-53.320518],[-73.501038,-53.318451],[-73.567261,-53.306823],[-73.582816,-53.300209],[-73.595942,-53.252977],[-73.617077,-53.229671],[-73.793501,-53.120685],[-73.866959,-53.096862],[-73.994005,-53.075778],[-74.138596,-53.090506],[-74.236368,-53.076502],[-74.270241,-53.081566],[-74.414419,-52.994956],[-74.558312,-52.921834],[-74.61991,-52.834759],[-74.711507,-52.7682],[-74.711997,-52.748718],[-74.669959,-52.733887],[-74.571541,-52.771301],[-74.474544,-52.835638],[-74.422274,-52.860029],[-74.385764,-52.922351]]],[[[-69.167039,-52.667534],[-69.079938,-52.674356],[-68.789801,-52.57679],[-68.757529,-52.58201],[-68.659214,-52.631516],[-68.62994,-52.652651],[-68.631697,-52.949533],[-68.633454,-53.241866],[-68.635056,-53.515441],[-68.636684,-53.788913],[-68.638234,-54.052979],[-68.63981,-54.323971],[-68.64751,-54.627828],[-68.653246,-54.853654],[-68.803857,-54.853654],[-68.843544,-54.876805],[-69.081669,-54.909878],[-69.48627,-54.858925],[-69.587556,-54.81283],[-69.723439,-54.712112],[-69.771808,-54.739139],[-69.899475,-54.781824],[-70.030526,-54.815569],[-70.138065,-54.819238],[-70.2378,-54.777535],[-70.259065,-54.756347],[-70.281725,-54.7518],[-70.497138,-54.809574],[-70.735134,-54.75056],[-70.924709,-54.714386],[-71.229238,-54.694181],[-71.440931,-54.619663],[-71.831527,-54.626226],[-71.901549,-54.601576],[-71.927749,-54.528713],[-71.906975,-54.494865],[-71.823414,-54.474452],[-71.80016,-54.433938],[-71.715824,-54.443653],[-71.606296,-54.497138],[-71.572783,-54.49533],[-71.500411,-54.444893],[-71.393414,-54.400245],[-71.355226,-54.395439],[-71.158829,-54.450578],[-71.079945,-54.444273],[-70.966438,-54.41952],[-70.946207,-54.398023],[-70.928172,-54.360092],[-70.898225,-54.337923],[-70.797275,-54.327226],[-70.698857,-54.348879],[-70.687566,-54.414766],[-70.701131,-54.485459],[-70.572999,-54.504425],[-70.417918,-54.502254],[-70.310974,-54.528558],[-70.297642,-54.485511],[-70.468303,-54.373218],[-70.540004,-54.303455],[-70.636122,-54.262269],[-70.759887,-54.241288],[-70.863111,-54.110444],[-70.856729,-53.995774],[-70.86771,-53.884153],[-70.644468,-53.822864],[-70.695628,-53.727418],[-70.618759,-53.655123],[-70.531297,-53.627321],[-70.443137,-53.893454],[-70.37973,-53.98673],[-70.460552,-54.005644],[-70.629818,-54.00554],[-70.535301,-54.136127],[-70.379988,-54.180672],[-70.246068,-54.27741],[-70.243355,-54.347638],[-70.168993,-54.379316],[-69.990167,-54.381331],[-69.866996,-54.367482],[-69.809067,-54.320818],[-69.741836,-54.305832],[-69.621688,-54.36402],[-69.419271,-54.407118],[-69.364804,-54.437555],[-69.325117,-54.488147],[-69.322481,-54.542717],[-69.312069,-54.571501],[-69.253183,-54.557393],[-69.169183,-54.483341],[-69.127894,-54.457658],[-69.077225,-54.444997],[-69.045237,-54.42846],[-69.044333,-54.406756],[-69.195667,-54.354356],[-69.988126,-54.109048],[-70.085613,-54.011122],[-70.151113,-53.888132],[-70.148839,-53.761111],[-70.091143,-53.721785],[-69.949678,-53.671607],[-69.689772,-53.600914],[-69.389971,-53.49937],[-69.352454,-53.479939],[-69.355968,-53.416326],[-69.393562,-53.373434],[-69.512547,-53.342015],[-69.636984,-53.334109],[-69.755607,-53.337209],[-69.874127,-53.35049],[-70.090367,-53.418186],[-70.212841,-53.413949],[-70.329293,-53.377672],[-70.415671,-53.304756],[-70.460267,-53.206209],[-70.459931,-53.143371],[-70.443343,-53.085493],[-70.390685,-53.026427],[-70.319992,-53.000692],[-70.256378,-53.004051],[-70.196511,-52.990202],[-70.16088,-52.969893],[-70.130598,-52.942763],[-70.139538,-52.919354],[-70.16274,-52.898993],[-70.259168,-52.857238],[-70.297357,-52.817034],[-70.380117,-52.751922],[-70.334926,-52.733783],[-70.189664,-52.723603],[-70.088223,-52.76851],[-69.993577,-52.821323],[-69.935467,-52.821117],[-69.883197,-52.798999],[-69.763566,-52.731355],[-69.663288,-52.646295],[-69.571872,-52.54935],[-69.498388,-52.491421],[-69.414052,-52.486253],[-69.167039,-52.667534]]],[[[-74.142161,-51.931042],[-74.172056,-51.942049],[-74.283109,-51.918743],[-74.338661,-51.897969],[-74.423617,-51.845104],[-74.437105,-51.790585],[-74.475371,-51.72568],[-74.450799,-51.724904],[-74.362096,-51.750691],[-74.32569,-51.770225],[-74.277063,-51.811618],[-74.133428,-51.870942],[-74.115419,-51.88846],[-74.118881,-51.911095],[-74.142161,-51.931042]]],[[[-74.822921,-51.630182],[-74.780133,-51.824692],[-74.749489,-51.851822],[-74.647479,-51.86624],[-74.536788,-51.965097],[-74.531828,-51.99202],[-74.66598,-52.16002],[-74.694479,-52.279238],[-74.851808,-52.270711],[-74.917721,-52.152217],[-75.017147,-52.037909],[-75.050711,-51.903912],[-75.105384,-51.78888],[-75.008129,-51.723768],[-74.915189,-51.738289],[-74.909686,-51.650025],[-74.822921,-51.630182]]],[[[-74.558648,-51.277025],[-74.560896,-51.360844],[-74.592599,-51.387509],[-74.620375,-51.395726],[-74.690733,-51.370197],[-74.730911,-51.367355],[-74.797393,-51.411745],[-74.853332,-51.434173],[-74.936661,-51.428333],[-75.047352,-51.398361],[-75.14626,-51.524297],[-75.192433,-51.566671],[-75.28912,-51.625376],[-75.300049,-51.556491],[-75.238503,-51.4535],[-75.210003,-51.383323],[-75.15365,-51.278834],[-75.040324,-51.318159],[-74.88147,-51.279454],[-74.736673,-51.207572],[-74.611564,-51.207107],[-74.570507,-51.245399],[-74.558648,-51.277025]]],[[[-75.301987,-50.679955],[-75.330461,-50.772404],[-75.41136,-50.764395],[-75.438516,-50.741089],[-75.45265,-50.682539],[-75.477403,-50.654169],[-75.442651,-50.595516],[-75.419758,-50.530352],[-75.427639,-50.480536],[-75.303718,-50.483998],[-75.156182,-50.496814],[-75.115306,-50.510457],[-75.16042,-50.554433],[-75.20344,-50.580685],[-75.29235,-50.59686],[-75.301987,-50.679955]]],[[[-75.054793,-50.296103],[-75.250388,-50.376253],[-75.307853,-50.343077],[-75.44911,-50.343387],[-75.412084,-50.256622],[-75.397873,-50.192698],[-75.376711,-50.167997],[-75.368857,-50.112651],[-75.326663,-50.011831],[-75.209667,-50.045369],[-75.122567,-50.055239],[-75.004254,-50.088674],[-74.875967,-50.109913],[-74.838605,-50.197297],[-74.963377,-50.237295],[-75.054793,-50.296103]]],[[[-75.106676,-48.836554],[-75.115099,-48.916032],[-75.262687,-49.068943],[-75.389966,-49.159221],[-75.506109,-49.23069],[-75.580342,-49.229966],[-75.641166,-49.195395],[-75.572823,-49.138861],[-75.487635,-49.082378],[-75.514558,-49.009566],[-75.540138,-48.988431],[-75.576157,-48.980783],[-75.637858,-48.942542],[-75.619126,-48.885905],[-75.583133,-48.858878],[-75.535281,-48.838207],[-75.490477,-48.850455],[-75.297259,-48.810664],[-75.236177,-48.778573],[-75.118588,-48.77294],[-75.106676,-48.836554]]],[[[-74.476172,-49.147852],[-74.466819,-49.29451],[-74.483588,-49.441891],[-74.522087,-49.622914],[-74.515782,-49.659553],[-74.470849,-49.668544],[-74.458835,-49.691075],[-74.471986,-49.786263],[-74.496067,-49.859437],[-74.542602,-49.919175],[-74.56981,-49.990695],[-74.594718,-50.006611],[-74.703367,-50.01922],[-74.762976,-50.011417],[-74.810829,-49.929717],[-74.82473,-49.879487],[-74.821913,-49.81391],[-74.880437,-49.725853],[-74.88222,-49.69216],[-74.859327,-49.634128],[-74.812017,-49.605292],[-74.804834,-49.515995],[-74.781011,-49.489227],[-74.727061,-49.45233],[-74.718845,-49.437034],[-74.723857,-49.423805],[-74.743856,-49.422513],[-74.960122,-49.533049],[-74.981309,-49.564158],[-74.990818,-49.605706],[-74.993505,-49.751743],[-75.031565,-49.836234],[-75.066033,-49.852306],[-75.166957,-49.855923],[-75.300075,-49.8475],[-75.451177,-49.769882],[-75.549802,-49.791276],[-75.57011,-49.697121],[-75.520759,-49.621674],[-75.337076,-49.628237],[-75.305837,-49.494033],[-75.364206,-49.46251],[-75.428853,-49.408405],[-75.467481,-49.358899],[-75.433168,-49.322105],[-75.326663,-49.26862],[-75.269612,-49.262936],[-75.21685,-49.292753],[-75.086006,-49.270222],[-75.093705,-49.18537],[-75.210158,-49.148008],[-75.184217,-49.083567],[-75.037094,-49.022124],[-74.949218,-48.960164],[-74.945187,-48.889419],[-74.980741,-48.81888],[-74.969527,-48.791285],[-74.89625,-48.733201],[-74.793465,-48.705089],[-74.746698,-48.708913],[-74.651562,-48.749944],[-74.56658,-48.75475],[-74.546116,-48.766894],[-74.530691,-48.812576],[-74.476172,-49.147852]]],[[[-75.510269,-48.763431],[-75.622872,-48.76462],[-75.650932,-48.586285],[-75.51846,-48.328833],[-75.509029,-48.230699],[-75.553522,-48.156699],[-75.571506,-48.095927],[-75.560679,-48.070864],[-75.391387,-48.019704],[-75.338367,-48.074068],[-75.275477,-48.218452],[-75.15551,-48.425209],[-75.158482,-48.622665],[-75.225093,-48.671396],[-75.433995,-48.721212],[-75.510269,-48.763431]]],[[[-74.567303,-48.591969],[-74.586269,-48.61574],[-74.709569,-48.601219],[-74.923044,-48.626437],[-75.012832,-48.535693],[-75.052158,-48.391413],[-75.0789,-48.361544],[-75.13192,-48.279275],[-75.158482,-48.225273],[-75.212871,-48.141661],[-75.233878,-48.053397],[-75.247262,-48.026784],[-75.198299,-47.974642],[-74.975082,-47.922863],[-74.895655,-47.839354],[-74.827468,-47.850361],[-74.846175,-48.020789],[-74.805222,-48.078202],[-74.729283,-48.125899],[-74.715253,-48.145536],[-74.702386,-48.205843],[-74.664326,-48.299325],[-74.61513,-48.343095],[-74.602469,-48.370329],[-74.600144,-48.393067],[-74.618205,-48.425158],[-74.567303,-48.591969]]],[[[-75.11218,-47.837648],[-75.185844,-47.850671],[-75.194345,-47.818063],[-75.26106,-47.763854],[-75.203104,-47.728042],[-75.08983,-47.690577],[-75.003943,-47.694763],[-74.926455,-47.723133],[-74.91599,-47.75662],[-75.051279,-47.800493],[-75.084481,-47.824471],[-75.11218,-47.837648]]],[[[-74.312875,-45.691526],[-74.368478,-45.735813],[-74.465527,-45.757207],[-74.561593,-45.722428],[-74.677762,-45.738603],[-74.689854,-45.662639],[-74.646446,-45.599955],[-74.558389,-45.525593],[-74.494672,-45.425909],[-74.502346,-45.285194],[-74.449972,-45.252896],[-74.42186,-45.203184],[-74.310575,-45.172695],[-74.285408,-45.277288],[-74.315458,-45.464098],[-74.240037,-45.574479],[-74.22921,-45.611324],[-74.243886,-45.653595],[-74.312875,-45.691526]]],[[[-75.042494,-44.890128],[-75.06748,-44.906561],[-75.098744,-44.901703],[-75.124195,-44.869922],[-75.142126,-44.81561],[-75.107451,-44.795147],[-75.07952,-44.795095],[-75.048463,-44.82393],[-75.032236,-44.870542],[-75.042494,-44.890128]]],[[[-73.632167,-44.821502],[-73.664852,-44.83287],[-73.694566,-44.831113],[-73.724771,-44.796904],[-73.734848,-44.751687],[-73.800141,-44.684042],[-73.818486,-44.652106],[-73.817013,-44.613969],[-73.779496,-44.55914],[-73.723918,-44.544206],[-73.686479,-44.546273],[-73.64121,-44.610868],[-73.628213,-44.680735],[-73.616612,-44.752979],[-73.632167,-44.821502]]],[[[-72.986134,-44.780057],[-73.22847,-44.859949],[-73.349988,-44.83318],[-73.397065,-44.774321],[-73.420061,-44.724815],[-73.445072,-44.640996],[-73.403679,-44.596089],[-73.314925,-44.53139],[-73.281981,-44.489532],[-73.266013,-44.440285],[-73.271594,-44.394189],[-73.260019,-44.350264],[-73.207696,-44.334968],[-73.028405,-44.384112],[-72.842422,-44.457699],[-72.776353,-44.508549],[-72.764054,-44.549012],[-72.845316,-44.638464],[-72.897147,-44.711999],[-72.986134,-44.780057]]],[[[-73.735365,-44.394551],[-73.784561,-44.437546],[-73.862308,-44.44509],[-73.983308,-44.494803],[-73.996046,-44.537953],[-74.002067,-44.590921],[-73.918532,-44.65469],[-73.877397,-44.728846],[-73.827891,-44.839847],[-73.792131,-44.945835],[-73.795361,-44.978598],[-73.786473,-45.033582],[-73.727122,-45.119003],[-73.721696,-45.157605],[-73.728156,-45.195949],[-73.752108,-45.266849],[-73.77097,-45.276513],[-73.829881,-45.283489],[-73.83448,-45.326587],[-73.848975,-45.340591],[-74.016252,-45.344932],[-74.099089,-45.325347],[-74.089271,-45.195691],[-74.195207,-45.144789],[-74.267968,-45.058955],[-74.349875,-44.91085],[-74.418734,-44.865271],[-74.498806,-44.748173],[-74.617765,-44.647972],[-74.480513,-44.584565],[-74.501804,-44.473512],[-74.421705,-44.435427],[-74.301221,-44.395688],[-74.212519,-44.427004],[-74.132834,-44.415945],[-74.097229,-44.389332],[-74.108081,-44.27585],[-74.082785,-44.186398],[-73.994935,-44.140251],[-73.900187,-44.134825],[-73.864556,-44.185313],[-73.817763,-44.234922],[-73.703196,-44.274145],[-73.703739,-44.325356],[-73.735365,-44.394551]]],[[[-73.810631,-43.827247],[-73.789676,-43.876443],[-73.833627,-43.883161],[-73.904166,-43.875409],[-73.938272,-43.91427],[-73.955687,-43.92197],[-74.117744,-43.887502],[-74.142988,-43.872205],[-74.139913,-43.820994],[-73.967185,-43.816498],[-73.856908,-43.783787],[-73.84143,-43.789006],[-73.810631,-43.827247]]],[[[-74.66877,-43.607777],[-74.810467,-43.625399],[-74.842661,-43.595478],[-74.842015,-43.57026],[-74.81765,-43.549435],[-74.745019,-43.535895],[-74.697451,-43.553],[-74.672646,-43.577443],[-74.664791,-43.599664],[-74.66877,-43.607777]]],[[[-73.773373,-43.345881],[-73.848588,-43.36681],[-73.918687,-43.371978],[-73.989948,-43.35663],[-74.114411,-43.357922],[-74.238564,-43.318854],[-74.354939,-43.26356],[-74.38734,-43.231624],[-74.373129,-43.185736],[-74.289362,-43.079437],[-74.20947,-42.878674],[-74.156295,-42.590527],[-74.198825,-42.481334],[-74.193554,-42.436066],[-74.174072,-42.381547],[-74.164382,-42.325478],[-74.170299,-42.268893],[-74.160196,-42.216441],[-74.072321,-42.105853],[-74.05935,-42.056244],[-74.056844,-42.002345],[-74.018784,-41.890931],[-74.030514,-41.853982],[-74.063019,-41.822718],[-74.036664,-41.795485],[-73.730946,-41.877289],[-73.527858,-41.896254],[-73.516954,-41.980848],[-73.477783,-42.047149],[-73.454477,-42.165901],[-73.422903,-42.192876],[-73.439233,-42.277833],[-73.532793,-42.314471],[-73.524576,-42.392606],[-73.470807,-42.466296],[-73.549252,-42.4926],[-73.633898,-42.508206],[-73.653483,-42.52867],[-73.714746,-42.544741],[-73.789263,-42.585721],[-73.766861,-42.621894],[-73.673043,-42.704421],[-73.568243,-42.761627],[-73.510727,-42.847152],[-73.436339,-42.936552],[-73.472667,-42.993293],[-73.540829,-43.073701],[-73.649633,-43.127186],[-73.749653,-43.159071],[-73.737897,-43.291362],[-73.773373,-43.345881]]],[[[-78.804151,-33.646473],[-78.983365,-33.667815],[-78.989462,-33.661666],[-78.979282,-33.644096],[-78.938148,-33.613607],[-78.888306,-33.5764],[-78.877428,-33.575211],[-78.859031,-33.578157],[-78.838206,-33.585081],[-78.784643,-33.610196],[-78.768959,-33.627301],[-78.774695,-33.641615],[-78.804151,-33.646473]]],[[[-109.279991,-27.14041],[-109.434142,-27.171313],[-109.429155,-27.116226],[-109.390475,-27.068373],[-109.276451,-27.095865],[-109.222837,-27.101033],[-109.279991,-27.14041]]],[[[-67.707309,-22.889197],[-67.579926,-22.891677],[-67.362265,-22.855194],[-67.194885,-22.821707],[-67.008773,-23.001335],[-67.089775,-23.245092],[-67.219121,-23.633958],[-67.319115,-23.934663],[-67.3356,-23.974815],[-67.356193,-24.033778],[-67.571787,-24.118993],[-67.886213,-24.243378],[-68.047391,-24.308335],[-68.250273,-24.391948],[-68.299495,-24.460315],[-68.358122,-24.497264],[-68.422536,-24.545065],[-68.447134,-24.597],[-68.507286,-24.629814],[-68.561985,-24.747378],[-68.561985,-24.837657],[-68.527052,-24.899255],[-68.46628,-24.925145],[-68.447134,-24.998939],[-68.428014,-25.050925],[-68.384244,-25.091905],[-68.3952,-25.124719],[-68.430727,-25.149317],[-68.496356,-25.163012],[-68.54085,-25.236754],[-68.592061,-25.42005],[-68.600277,-25.485679],[-68.541909,-25.651612],[-68.510851,-25.740961],[-68.426774,-26.065385],[-68.414501,-26.153752],[-68.529842,-26.277],[-68.575757,-26.351983],[-68.592216,-26.418077],[-68.591596,-26.470374],[-68.581157,-26.518329],[-68.485091,-26.67031],[-68.373315,-26.806425],[-68.318641,-26.877532],[-68.318641,-26.973237],[-68.345978,-27.027911],[-68.40538,-27.048116],[-68.537361,-27.085323],[-68.592061,-27.140049],[-68.652212,-27.148368],[-68.709625,-27.104495],[-68.769776,-27.115399],[-68.846335,-27.153691],[-68.875093,-27.246709],[-68.942014,-27.4052],[-68.999426,-27.44897],[-69.042188,-27.569996],[-69.118489,-27.743578],[-69.155282,-27.848171],[-69.174428,-27.924703],[-69.25122,-27.973641],[-69.340723,-28.070793],[-69.409582,-28.165361],[-69.436893,-28.192697],[-69.48888,-28.200862],[-69.527146,-28.285663],[-69.656905,-28.413614],[-69.687911,-28.562029],[-69.734911,-28.641094],[-69.743179,-28.783928],[-69.814829,-29.045462],[-69.827877,-29.103185],[-69.900327,-29.148866],[-69.995593,-29.249997],[-70.026805,-29.323998],[-69.982622,-29.545431],[-69.927638,-29.76919],[-69.924124,-29.874042],[-69.945441,-30.01641],[-69.959962,-30.07837],[-69.923556,-30.103899],[-69.863405,-30.120332],[-69.844284,-30.175005],[-69.888028,-30.213298],[-69.907149,-30.281614],[-69.95637,-30.358198],[-70.101995,-30.388326],[-70.153232,-30.360937],[-70.169639,-30.385535],[-70.161448,-30.440209],[-70.193927,-30.504701],[-70.269375,-30.677249],[-70.319242,-30.833932],[-70.348129,-30.902351],[-70.336399,-30.959712],[-70.311801,-30.992527],[-70.309062,-31.022602],[-70.35061,-31.060429],[-70.38836,-31.121046],[-70.429365,-31.129262],[-70.473109,-31.112829],[-70.519592,-31.148383],[-70.529049,-31.222848],[-70.55468,-31.317416],[-70.566411,-31.4279],[-70.585221,-31.569442],[-70.525638,-31.666387],[-70.450139,-31.84188],[-70.393837,-31.883842],[-70.330947,-31.881103],[-70.281725,-31.916656],[-70.254388,-31.957687],[-70.290924,-32.031068],[-70.355545,-32.042437],[-70.363762,-32.083468],[-70.344615,-32.176434],[-70.319992,-32.266661],[-70.257799,-32.309914],[-70.229765,-32.430682],[-70.169613,-32.471713],[-70.176925,-32.62607],[-70.11618,-32.807455],[-70.052049,-32.859958],[-70.021974,-32.884556],[-70.042127,-32.963724],[-70.093055,-33.026769],[-70.103984,-33.1279],[-70.084864,-33.201746],[-70.019829,-33.271509],[-69.969031,-33.279415],[-69.896193,-33.250942],[-69.819635,-33.283756],[-69.808705,-33.343908],[-69.797775,-33.398633],[-69.838781,-33.469688],[-69.882551,-33.600946],[-69.894307,-33.731326],[-69.881491,-33.929763],[-69.861544,-34.083552],[-69.857358,-34.180446],[-69.852449,-34.224319],[-69.879812,-34.254395],[-69.946345,-34.269898],[-70.002853,-34.276254],[-70.052049,-34.3008],[-70.063005,-34.350048],[-70.101478,-34.432058],[-70.141269,-34.49283],[-70.210696,-34.581196],[-70.254698,-34.672664],[-70.289942,-34.732867],[-70.286764,-34.774518],[-70.312111,-34.854978],[-70.33813,-34.921744],[-70.393191,-35.146847],[-70.466572,-35.193665],[-70.52507,-35.216765],[-70.555171,-35.246841],[-70.53233,-35.30787],[-70.470396,-35.326164],[-70.448511,-35.37536],[-70.456727,-35.451944],[-70.415722,-35.522999],[-70.419753,-35.609144],[-70.380169,-35.771821],[-70.415722,-35.878482],[-70.403656,-35.970517],[-70.404767,-36.061674],[-70.456727,-36.13273],[-70.563362,-36.146424],[-70.62186,-36.211898],[-70.721931,-36.28316],[-70.73286,-36.340572],[-70.749268,-36.392559],[-70.790273,-36.411679],[-70.853163,-36.411679],[-70.905124,-36.419896],[-70.977936,-36.487282],[-71.055502,-36.523713],[-71.073227,-36.578025],[-71.066432,-36.644068],[-71.107437,-36.685047],[-71.159398,-36.761632],[-71.192212,-36.843642],[-71.159398,-36.920227],[-71.123844,-37.056911],[-71.118393,-37.114323],[-71.163506,-37.227443],[-71.200403,-37.300255],[-71.164875,-37.393221],[-71.1348,-37.445156],[-71.16286,-37.559206],[-71.186735,-37.631088],[-71.167588,-37.762346],[-71.096197,-37.909985],[-71.028165,-38.041244],[-71.018166,-38.193896],[-71.000519,-38.314819],[-70.967988,-38.445922],[-70.899646,-38.497857],[-70.847686,-38.541626],[-70.858641,-38.604517],[-70.896907,-38.681049],[-70.951607,-38.738462],[-71.087102,-38.757479],[-71.197277,-38.809414],[-71.285772,-38.845432],[-71.353184,-38.88884],[-71.401554,-38.935039],[-71.425583,-38.985682],[-71.409357,-39.205927],[-71.420028,-39.287214],[-71.465374,-39.402297],[-71.507749,-39.495212],[-71.525784,-39.523169],[-71.531236,-39.5642],[-71.539452,-39.60244],[-71.58702,-39.611122],[-71.654277,-39.594275],[-71.692569,-39.605179],[-71.719906,-39.635255],[-71.696833,-39.706982],[-71.672054,-39.833279],[-71.63787,-39.886816],[-71.64712,-39.92919],[-71.659755,-40.020813],[-71.704403,-40.094968],[-71.76365,-40.094607],[-71.801943,-40.124682],[-71.818324,-40.176669],[-71.800573,-40.244313],[-71.722645,-40.29971],[-71.695308,-40.335212],[-71.708977,-40.381721],[-71.769128,-40.400841],[-71.804656,-40.439133],[-71.838529,-40.5244],[-71.883772,-40.620569],[-71.932115,-40.691676],[-71.941366,-40.789138],[-71.873023,-40.893008],[-71.880697,-40.994603],[-71.885607,-41.292363],[-71.89217,-41.39339],[-71.871137,-41.560512],[-71.897621,-41.606659],[-71.91129,-41.650429],[-71.844472,-41.771972],[-71.770006,-41.968549],[-71.749982,-42.046787],[-71.760911,-42.101461],[-71.860802,-42.147815],[-71.944104,-42.16709],[-71.993326,-42.134275],[-72.026141,-42.14797],[-72.064407,-42.205382],[-72.108177,-42.251891],[-72.124584,-42.298348],[-72.078101,-42.358499],[-72.053478,-42.473273],[-72.105438,-42.522469],[-72.143705,-42.577194],[-72.130036,-42.648249],[-72.113629,-42.776768],[-72.146443,-42.990037],[-72.102389,-43.06564],[-72.054692,-43.101917],[-71.898577,-43.145273],[-71.781479,-43.166771],[-71.750628,-43.237309],[-71.763857,-43.294618],[-71.820236,-43.322988],[-71.904959,-43.347535],[-71.904959,-43.440139],[-71.832432,-43.527162],[-71.750628,-43.590104],[-71.732774,-43.646741],[-71.737399,-43.704722],[-71.794708,-43.753246],[-71.715953,-43.858356],[-71.680064,-43.929618],[-71.71616,-43.984447],[-71.767216,-44.066716],[-71.812355,-44.106041],[-71.812123,-44.150741],[-71.830778,-44.241382],[-71.835067,-44.330162],[-71.820003,-44.383079],[-71.325718,-44.424937],[-71.212624,-44.441163],[-71.150897,-44.49408],[-71.159708,-44.560226],[-71.221461,-44.630764],[-71.261149,-44.763056],[-71.358145,-44.785121],[-71.455168,-44.749826],[-71.560407,-44.76197],[-71.651667,-44.770445],[-71.782822,-44.774373],[-71.957049,-44.791478],[-72.063709,-44.771892],[-72.07252,-44.820416],[-72.041669,-44.904184],[-71.812355,-44.930642],[-71.59627,-44.979166],[-71.531287,-45.067895],[-71.443463,-45.16825],[-71.353753,-45.230521],[-71.349334,-45.33191],[-71.490437,-45.437743],[-71.508084,-45.512726],[-71.693293,-45.534791],[-71.746209,-45.578871],[-71.772668,-45.724392],[-71.750628,-45.839062],[-71.680064,-45.87875],[-71.631565,-45.953681],[-71.684482,-46.041892],[-71.809281,-46.102715],[-71.875659,-46.160593],[-71.834137,-46.20674],[-71.777655,-46.280017],[-71.7621,-46.319808],[-71.731301,-46.427863],[-71.695205,-46.578397],[-71.699675,-46.651364],[-71.732696,-46.705831],[-71.856461,-46.791562],[-71.940229,-46.83125],[-71.956662,-46.936825],[-71.962966,-47.015993],[-71.954233,-47.087461],[-71.900541,-47.144306],[-71.904959,-47.201666],[-71.978521,-47.213862],[-72.041669,-47.241354],[-72.103397,-47.342743],[-72.282895,-47.446251],[-72.34594,-47.492708],[-72.341522,-47.572083],[-72.412577,-47.685513],[-72.472212,-47.784215],[-72.517919,-47.876354],[-72.509083,-47.973351],[-72.407926,-48.01588],[-72.328293,-48.110035],[-72.293024,-48.229097],[-72.354751,-48.365833],[-72.498153,-48.417354],[-72.582877,-48.475439],[-72.608405,-48.519364],[-72.585926,-48.662507],[-72.591765,-48.729687],[-72.614399,-48.792835],[-72.651296,-48.841618],[-72.728475,-48.896292],[-72.865443,-48.943989],[-72.981741,-48.976803],[-73.03365,-49.014321],[-73.094577,-49.096848],[-73.148889,-49.188005],[-73.135272,-49.30066],[-73.461583,-49.313889],[-73.483649,-49.397708],[-73.554187,-49.463854],[-73.576253,-49.582916],[-73.504526,-49.698],[-73.470419,-49.794583],[-73.528917,-49.910907],[-73.507704,-50.030279],[-73.50127,-50.125312],[-73.386626,-50.231146],[-73.311721,-50.361939],[-73.274152,-50.472526],[-73.251621,-50.558516],[-73.221649,-50.610709],[-73.17452,-50.669982],[-73.152919,-50.738246],[-73.082355,-50.760312],[-72.955541,-50.69644],[-72.865909,-50.653135],[-72.803587,-50.637684],[-72.620394,-50.647709],[-72.509832,-50.607505],[-72.460145,-50.611742],[-72.392552,-50.634273],[-72.340256,-50.681867],[-72.30062,-50.789509],[-72.276332,-50.910226],[-72.30739,-51.033422],[-72.359169,-51.060139],[-72.376791,-51.095434],[-72.359169,-51.170416],[-72.301834,-51.223333],[-72.303204,-51.298936],[-72.366404,-51.470295],[-72.407668,-51.540833],[-72.33452,-51.620363],[-72.268994,-51.691108],[-72.136961,-51.744025],[-72.02844,-51.818646],[-71.953458,-51.880347],[-71.971105,-51.964166],[-71.91868,-51.989539],[-71.716573,-51.991296],[-71.414731,-51.993984],[-70.943184,-51.998118],[-70.482876,-52.002252],[-69.960272,-52.008246],[-69.712613,-52.075426],[-69.48844,-52.136146],[-69.206209,-52.136146],[-68.924547,-52.208131],[-68.71518,-52.255518],[-68.589787,-52.273346],[-68.460984,-52.290451],[-68.443362,-52.356649],[-69.007255,-52.262701],[-69.133759,-52.211438],[-69.240988,-52.205444],[-69.446867,-52.269419],[-69.560606,-52.421554],[-69.620293,-52.464756],[-69.763333,-52.50558],[-69.907252,-52.513539],[-70.390969,-52.660816],[-70.562948,-52.673425],[-70.680331,-52.712493],[-70.795105,-52.768717],[-70.839056,-52.889536],[-70.821176,-52.963123],[-70.952046,-53.226983],[-70.984318,-53.373641],[-70.985119,-53.448365],[-70.947809,-53.570425],[-70.995868,-53.779301],[-71.082787,-53.824983],[-71.297736,-53.883377],[-71.443902,-53.840899],[-71.69381,-53.803072],[-71.871887,-53.722664],[-72.100917,-53.66582],[-72.1744,-53.632333],[-72.376817,-53.471206],[-72.398237,-53.417773],[-72.412913,-53.35018],[-72.306072,-53.253752],[-72.248634,-53.246672],[-72.081124,-53.249566],[-71.941701,-53.234063],[-71.85274,-53.285688],[-71.82822,-53.398342],[-71.867339,-53.45839],[-71.902789,-53.495494],[-71.891679,-53.523554],[-71.791452,-53.484539],[-71.740551,-53.232564],[-71.400339,-53.106991],[-71.288951,-53.033713],[-71.180223,-52.920542],[-71.163299,-52.888089],[-71.155083,-52.845611],[-71.227146,-52.810678],[-71.387756,-52.764273],[-71.898009,-53.001777],[-72.129132,-53.064358],[-72.278012,-53.132364],[-72.458285,-53.254475],[-72.492572,-53.290649],[-72.530813,-53.371626],[-72.548925,-53.460716],[-72.726821,-53.419995],[-72.998381,-53.2907],[-73.052745,-53.243416],[-72.998226,-53.177271],[-72.915518,-53.121977],[-72.909911,-52.936562],[-72.889137,-52.871605],[-72.83188,-52.819566],[-72.7277,-52.762309],[-72.675972,-52.748976],[-72.632073,-52.773833],[-72.626595,-52.817551],[-72.453453,-52.814399],[-72.117582,-52.649964],[-71.979322,-52.64614],[-71.797059,-52.68283],[-71.591232,-52.660713],[-71.554154,-52.64397],[-71.511288,-52.605368],[-71.664767,-52.560047],[-71.81189,-52.537],[-72.225689,-52.52098],[-72.315374,-52.53855],[-72.437718,-52.62578],[-72.478258,-52.604024],[-72.504406,-52.560099],[-72.644811,-52.529145],[-72.71212,-52.535501],[-72.776534,-52.577411],[-72.766044,-52.642575],[-72.801907,-52.712389],[-72.931874,-52.781688],[-73.020266,-52.89181],[-73.016106,-52.977438],[-73.023005,-53.022035],[-73.055484,-53.045599],[-73.122482,-53.073918],[-73.338154,-53.054642],[-73.459877,-52.96488],[-73.507497,-52.903541],[-73.645241,-52.837033],[-73.345957,-52.754299],[-73.240847,-52.707118],[-73.144806,-52.601957],[-73.073183,-52.535036],[-73.123929,-52.48801],[-73.183796,-52.487855],[-73.178189,-52.562734],[-73.244128,-52.624023],[-73.38213,-52.595084],[-73.58571,-52.685724],[-73.710844,-52.66154],[-73.914708,-52.688205],[-74.014443,-52.639319],[-74.035863,-52.577256],[-73.999922,-52.512557],[-74.037362,-52.402899],[-74.093508,-52.376234],[-74.150843,-52.382487],[-74.176552,-52.31722],[-74.23846,-52.202395],[-74.265978,-52.171285],[-74.295666,-52.117904],[-74.264919,-52.104881],[-74.194897,-52.120178],[-74.133531,-52.154801],[-74.04023,-52.159142],[-73.834454,-52.233969],[-73.74911,-52.215986],[-73.702783,-52.198829],[-73.685393,-52.136714],[-73.684308,-52.077751],[-73.649039,-52.077751],[-73.532199,-52.153147],[-73.457965,-52.146016],[-73.326785,-52.165911],[-73.260432,-52.15785],[-73.137365,-52.129686],[-72.943707,-52.0469],[-72.843223,-51.961117],[-72.795034,-51.94949],[-72.7354,-51.960601],[-72.695454,-51.985147],[-72.694834,-52.044678],[-72.649565,-52.09992],[-72.587967,-52.145086],[-72.570836,-52.200069],[-72.583445,-52.254226],[-72.693594,-52.330294],[-72.714006,-52.356701],[-72.677057,-52.384709],[-72.631478,-52.371583],[-72.568692,-52.333963],[-72.532906,-52.282338],[-72.52332,-52.255466],[-72.519315,-52.217071],[-72.524121,-52.170304],[-72.613573,-52.03703],[-72.624761,-52.006954],[-72.624605,-51.946441],[-72.522855,-51.890889],[-72.494148,-51.847584],[-72.489627,-51.763713],[-72.542543,-51.706146],[-72.761212,-51.573234],[-73.126745,-51.439909],[-73.168758,-51.453862],[-73.197025,-51.478046],[-73.163384,-51.495564],[-73.114989,-51.504453],[-72.78935,-51.614265],[-72.704601,-51.677982],[-72.649074,-51.695035],[-72.583316,-51.737255],[-72.600059,-51.799112],[-72.928385,-51.859832],[-73.18868,-51.990676],[-73.383241,-52.07],[-73.518194,-52.041009],[-73.582325,-51.960394],[-73.650279,-51.856266],[-73.75265,-51.795546],[-73.810631,-51.801127],[-73.857553,-51.789965],[-73.894425,-51.757771],[-73.973257,-51.784487],[-74.146425,-51.712089],[-74.196654,-51.680566],[-74.069582,-51.57866],[-73.929797,-51.617831],[-73.895897,-51.33144],[-73.939486,-51.266328],[-74.121258,-51.195428],[-74.210504,-51.204626],[-74.332331,-51.195014],[-74.414341,-51.16251],[-74.50785,-51.149591],[-74.586863,-51.130677],[-74.690087,-51.086546],[-74.814756,-51.062878],[-74.983118,-50.88108],[-75.055336,-50.785582],[-75.094687,-50.681247],[-74.836641,-50.678922],[-74.68572,-50.662024],[-74.648926,-50.61846],[-74.702076,-50.535313],[-74.77587,-50.469891],[-74.721661,-50.408499],[-74.644482,-50.360905],[-74.564125,-50.381989],[-74.365559,-50.487874],[-74.331452,-50.559601],[-74.190195,-50.777986],[-74.156114,-50.797416],[-74.139423,-50.817828],[-73.847477,-50.940043],[-73.806523,-50.938337],[-73.824584,-50.835811],[-73.740584,-50.696699],[-73.659038,-50.650706],[-73.618162,-50.651172],[-73.613977,-50.627917],[-73.693274,-50.57004],[-73.654439,-50.49268],[-73.679916,-50.490199],[-73.750222,-50.539809],[-73.891505,-50.782688],[-73.978011,-50.827026],[-74.096712,-50.717111],[-74.164124,-50.637839],[-74.197223,-50.609727],[-74.185595,-50.485394],[-73.950339,-50.510508],[-74.031057,-50.469839],[-74.305588,-50.39806],[-74.374137,-50.362972],[-74.42509,-50.350208],[-74.516402,-50.265665],[-74.629574,-50.194042],[-74.434314,-50.065212],[-74.333752,-49.974624],[-74.019456,-50.022786],[-73.958607,-49.994726],[-74.011239,-49.928477],[-74.073277,-49.948527],[-74.171333,-49.907289],[-74.323933,-49.783369],[-74.31874,-49.720066],[-74.290809,-49.604052],[-74.230347,-49.579299],[-74.102009,-49.555373],[-73.955532,-49.593097],[-73.891557,-49.623741],[-73.836392,-49.609323],[-73.892461,-49.523437],[-73.988036,-49.490881],[-74.094438,-49.429696],[-74.083509,-49.361793],[-74.049221,-49.305621],[-74.023435,-49.244177],[-74.005632,-49.157981],[-74.015373,-49.090905],[-73.984781,-49.060003],[-73.937884,-49.046102],[-73.934939,-49.020935],[-74.027724,-49.026206],[-74.061314,-49.111007],[-74.073871,-49.188367],[-74.139784,-49.250482],[-74.167896,-49.320555],[-74.184562,-49.404374],[-74.221304,-49.500544],[-74.301532,-49.463957],[-74.348505,-49.426285],[-74.36654,-49.400447],[-74.358169,-49.351354],[-74.380002,-49.047807],[-74.382121,-48.793611],[-74.340986,-48.595741],[-74.227686,-48.516987],[-74.176216,-48.494094],[-74.12932,-48.504223],[-74.056921,-48.503654],[-74.009095,-48.474974],[-74.171539,-48.427483],[-74.270086,-48.454613],[-74.34295,-48.492595],[-74.474441,-48.463967],[-74.499426,-48.362267],[-74.577199,-48.274366],[-74.590739,-48.161866],[-74.584693,-47.999034],[-74.400518,-48.01309],[-74.250424,-48.044922],[-73.853807,-48.042184],[-73.528168,-48.198246],[-73.384456,-48.177317],[-73.39107,-48.14595],[-73.500986,-48.106676],[-73.569587,-48.019291],[-73.60992,-47.993918],[-73.628885,-47.941518],[-73.635112,-47.880385],[-73.715857,-47.655489],[-73.748258,-47.66138],[-73.779264,-47.738481],[-73.846701,-47.867],[-73.940882,-47.929426],[-74.084775,-47.954644],[-74.22704,-47.968958],[-74.350572,-47.94436],[-74.37933,-47.891237],[-74.37623,-47.82969],[-74.429663,-47.799563],[-74.569215,-47.772949],[-74.608877,-47.757963],[-74.654921,-47.702256],[-74.588413,-47.618023],[-74.533791,-47.567639],[-74.46687,-47.577664],[-74.403567,-47.600402],[-74.322538,-47.666703],[-74.242956,-47.679312],[-74.15198,-47.626653],[-74.1341,-47.590842],[-74.190996,-47.568414],[-74.24293,-47.559629],[-74.323675,-47.531414],[-74.482683,-47.430438],[-74.403257,-47.327498],[-74.215671,-47.209521],[-74.158414,-47.182494],[-74.208075,-47.083121],[-74.151902,-46.974393],[-74.209444,-46.884735],[-74.313546,-46.788152],[-74.45421,-46.766758],[-74.48444,-46.795025],[-74.489375,-46.834609],[-74.466974,-46.864374],[-74.480151,-46.885872],[-74.512242,-46.8852],[-74.69081,-46.863961],[-74.810622,-46.799675],[-75.005985,-46.741074],[-75.031435,-46.695289],[-75.052545,-46.628058],[-74.984203,-46.512148],[-75.018775,-46.510494],[-75.145744,-46.600101],[-75.337411,-46.647023],[-75.478436,-46.662423],[-75.540345,-46.6987],[-75.565072,-46.728724],[-75.527581,-46.746345],[-75.446009,-46.750789],[-75.386401,-46.862721],[-75.401232,-46.905664],[-75.430377,-46.934551],[-75.496627,-46.940132],[-75.635274,-46.862824],[-75.708087,-46.774974],[-75.706381,-46.705314],[-75.656772,-46.610385],[-75.43694,-46.483002],[-75.376014,-46.429052],[-75.247029,-46.369366],[-75.074844,-46.234594],[-74.924465,-46.159663],[-74.997639,-46.097703],[-75.074533,-46.004478],[-75.066679,-45.874926],[-74.763131,-45.823611],[-74.630685,-45.844695],[-74.462814,-45.840716],[-74.369124,-45.80971],[-74.301144,-45.802992],[-74.157871,-45.767232],[-74.096195,-45.716796],[-74.081829,-45.678297],[-74.082527,-45.644759],[-74.09927,-45.603418],[-74.122705,-45.496189],[-74.098908,-45.460326],[-74.037542,-45.417693],[-73.95716,-45.404412],[-73.92034,-45.407719],[-73.824971,-45.44689],[-73.844169,-45.502442],[-73.882306,-45.569311],[-73.96026,-45.83529],[-73.999509,-45.895286],[-74.061055,-45.947324],[-74.019947,-46.055845],[-74.081571,-46.131809],[-74.356799,-46.212734],[-74.392973,-46.217385],[-74.372457,-46.246272],[-74.213139,-46.239451],[-74.089736,-46.222346],[-73.967573,-46.154133],[-73.929229,-46.049902],[-73.878741,-45.846865],[-73.812543,-45.818133],[-73.735261,-45.811725],[-73.694876,-45.859578],[-73.707899,-45.966703],[-73.708157,-46.070314],[-73.810657,-46.377376],[-73.93481,-46.500676],[-73.948607,-46.533128],[-73.94375,-46.571576],[-73.845358,-46.565995],[-73.770272,-46.499849],[-73.716193,-46.415203],[-73.662062,-46.297484],[-73.668211,-46.212114],[-73.651675,-46.159301],[-73.629428,-45.986495],[-73.591833,-45.89911],[-73.594314,-45.776844],[-73.661958,-45.730748],[-73.756578,-45.702843],[-73.780401,-45.627964],[-73.730791,-45.480014],[-73.549872,-45.483787],[-73.378565,-45.382863],[-73.26622,-45.346224],[-73.202374,-45.353769],[-72.978176,-45.451127],[-72.933837,-45.452367],[-72.940814,-45.417279],[-72.97554,-45.392526],[-73.063881,-45.359763],[-73.226352,-45.25517],[-73.444969,-45.238169],[-73.404868,-45.102311],[-73.362442,-44.978185],[-73.256453,-44.961028],[-73.078428,-44.920204],[-72.738965,-44.734168],[-72.680054,-44.59397],[-72.66388,-44.436409],[-72.827513,-44.395378],[-73.001017,-44.292335],[-73.140956,-44.237455],[-73.265083,-44.168622],[-73.240744,-44.065682],[-73.224466,-43.89794],[-73.068816,-43.862025],[-72.996572,-43.631548],[-73.100985,-43.455177],[-73.075999,-43.323608],[-72.939987,-43.211316],[-72.915492,-43.133543],[-72.878001,-43.048121],[-72.758008,-43.039491],[-72.755347,-42.992983],[-72.766044,-42.908233],[-72.84498,-42.807981],[-72.848054,-42.669178],[-72.77395,-42.505157],[-72.654836,-42.516578],[-72.63184,-42.509705],[-72.716279,-42.410434],[-72.785138,-42.301294],[-72.773253,-42.257679],[-72.707391,-42.220523],[-72.631039,-42.199853],[-72.548434,-42.255767],[-72.430302,-42.433895],[-72.412345,-42.388162],[-72.460119,-42.206622],[-72.499393,-41.9809],[-72.623985,-42.01051],[-72.73819,-41.994594],[-72.781211,-41.959609],[-72.824077,-41.908759],[-72.783821,-41.846748],[-72.743694,-41.800601],[-72.659875,-41.742516],[-72.486035,-41.722104],[-72.36041,-41.649085],[-72.318242,-41.499017],[-72.35948,-41.5139],[-72.427718,-41.645881],[-72.542388,-41.690633],[-72.600834,-41.68407],[-72.669771,-41.659421],[-72.805111,-41.544389],[-72.87999,-41.517621],[-72.952802,-41.514727],[-73.014995,-41.543872],[-73.174055,-41.746547],[-73.241803,-41.78086],[-73.521295,-41.797087],[-73.624028,-41.773626],[-73.735158,-41.742465],[-73.721851,-41.692494],[-73.688106,-41.639267],[-73.625061,-41.611878],[-73.623924,-41.581338],[-73.710637,-41.573638],[-73.81076,-41.517517],[-73.855047,-41.44641],[-73.876157,-41.319286],[-73.965867,-41.118265],[-73.983592,-40.974295],[-73.92034,-40.871562],[-73.784018,-40.468486],[-73.742496,-40.26302],[-73.669451,-40.082359],[-73.671002,-39.963193],[-73.482202,-39.85426],[-73.410397,-39.789147],[-73.24989,-39.422348],[-73.226455,-39.224427],[-73.480755,-38.623999],[-73.520236,-38.509329],[-73.53256,-38.366805],[-73.471892,-38.130127],[-73.464787,-38.040313],[-73.516747,-37.910502],[-73.661803,-37.698525],[-73.664594,-37.590418],[-73.603409,-37.479056],[-73.662397,-37.340976],[-73.633639,-37.255503],[-73.601678,-37.188479],[-73.37456,-37.224343],[-73.271103,-37.207393],[-73.215965,-37.166878],[-73.172841,-37.0535],[-73.151292,-36.876198],[-73.137778,-36.799872],[-73.118038,-36.688355],[-73.006598,-36.643448],[-72.96784,-36.537769],[-72.874564,-36.390388],[-72.778446,-35.978527],[-72.683413,-35.876931],[-72.587347,-35.759677],[-72.623908,-35.585786],[-72.562077,-35.505378],[-72.505181,-35.446983],[-72.454978,-35.34084],[-72.386713,-35.240381],[-72.223777,-35.096204],[-72.18241,-34.920194],[-72.055932,-34.61582],[-72.030792,-34.420483],[-71.991518,-34.288501],[-72.002835,-34.165304],[-71.92687,-34.015598],[-71.853955,-33.889559],[-71.830985,-33.819486],[-71.664354,-33.652674],[-71.636294,-33.519246],[-71.695515,-33.428967],[-71.696574,-33.289079],[-71.74298,-33.095086],[-71.63557,-33.022532],[-71.592059,-32.969512],[-71.452274,-32.659557],[-71.461421,-32.53791],[-71.421294,-32.386808],[-71.513045,-32.207905],[-71.525861,-31.805862],[-71.577305,-31.496423],[-71.661977,-31.169518],[-71.653915,-30.986584],[-71.705669,-30.759311],[-71.708951,-30.628053],[-71.66947,-30.330396],[-71.400391,-30.143018],[-71.348017,-29.933211],[-71.315745,-29.649714],[-71.3267,-29.443215],[-71.353262,-29.350405],[-71.485812,-29.198269],[-71.519247,-28.926451],[-71.493589,-28.855241],[-71.384061,-28.778657],[-71.306753,-28.67241],[-71.266833,-28.507562],[-71.186399,-28.377854],[-71.154488,-28.064075],[-71.086508,-27.814478],[-71.052634,-27.727351],[-70.945793,-27.6179],[-70.925794,-27.588652],[-70.909284,-27.505143],[-70.914271,-27.307945],[-70.897889,-27.187539],[-70.812752,-26.950551],[-70.802908,-26.840894],[-70.708418,-26.596981],[-70.686972,-26.421798],[-70.646613,-26.3294],[-70.66227,-26.225427],[-70.635476,-25.992677],[-70.699633,-25.861108],[-70.713714,-25.784214],[-70.632996,-25.545572],[-70.578115,-25.487488],[-70.48949,-25.376487],[-70.45218,-25.251843],[-70.445359,-25.172675],[-70.558659,-24.778487],[-70.57411,-24.644335],[-70.546438,-24.331589],[-70.507422,-24.129638],[-70.520083,-23.968511],[-70.507396,-23.885725],[-70.487785,-23.781701],[-70.40996,-23.655558],[-70.392339,-23.565951],[-70.419624,-23.528538],[-70.51197,-23.482804],[-70.588141,-23.368392],[-70.59336,-23.255479],[-70.568865,-23.173314],[-70.563207,-23.057042],[-70.449648,-23.034201],[-70.389161,-22.969605],[-70.331696,-22.848683],[-70.25953,-22.556091],[-70.228524,-22.193219],[-70.185478,-21.974627],[-70.155066,-21.866624],[-70.129616,-21.640798],[-70.087551,-21.493106],[-70.080032,-21.356887],[-70.088378,-21.253224],[-70.197028,-20.725401],[-70.193643,-20.531408],[-70.147444,-20.229824],[-70.148167,-19.805044],[-70.157392,-19.705825],[-70.198345,-19.613014],[-70.210412,-19.486924],[-70.275808,-19.267609],[-70.334874,-18.827533],[-70.336089,-18.595195],[-70.361643,-18.397998],[-70.41828,-18.345598],[-70.377482,-18.333609],[-70.282294,-18.325444],[-70.183773,-18.325238],[-70.059103,-18.283483],[-69.926346,-18.20602],[-69.839711,-18.093417],[-69.802581,-17.990271],[-69.802426,-17.900044],[-69.841494,-17.785167],[-69.852087,-17.703829],[-69.806121,-17.664916],[-69.684759,-17.649827],[-69.586419,-17.573191],[-69.51092,-17.506011],[-69.495003,-17.619544],[-69.358009,-17.771731],[-69.313361,-17.943142],[-69.282329,-17.964898],[-69.093917,-18.050526],[-69.090454,-18.07068],[-69.118075,-18.102719],[-69.145464,-18.14406],[-69.126344,-18.202403],[-69.092289,-18.28245],[-69.080972,-18.356605],[-69.060146,-18.432983],[-69.039398,-18.550134],[-69.026789,-18.656277],[-68.978859,-18.81296],[-68.969092,-18.909698],[-68.968317,-18.967989],[-68.931007,-19.025143],[-68.857962,-19.093356],[-68.759079,-19.162189],[-68.680686,-19.242391],[-68.62056,-19.296651],[-68.547878,-19.341093],[-68.492015,-19.381917],[-68.470182,-19.409926],[-68.46287,-19.432767],[-68.487029,-19.454419],[-68.575266,-19.560201],[-68.698308,-19.721122],[-68.696189,-19.740759],[-68.578263,-19.856514],[-68.559401,-19.902299],[-68.560693,-19.967101],[-68.600174,-20.044874],[-68.727505,-20.069627],[-68.755798,-20.090815],[-68.759338,-20.115568],[-68.730037,-20.148434],[-68.734559,-20.225225],[-68.688592,-20.310078],[-68.712312,-20.338965],[-68.759234,-20.378032],[-68.760552,-20.41617],[-68.745178,-20.458596],[-68.695827,-20.492961],[-68.49987,-20.612023],[-68.484316,-20.628456],[-68.487416,-20.640704],[-68.563174,-20.72013],[-68.571029,-20.76912],[-68.568936,-20.849838],[-68.558265,-20.901928],[-68.533822,-20.923632],[-68.435507,-20.948282],[-68.313887,-21.129718],[-68.19702,-21.300302],[-68.198545,-21.447218],[-68.186401,-21.618577],[-68.112142,-21.752987],[-68.101807,-21.860629],[-68.076769,-21.982844],[-67.988351,-22.057103],[-67.953934,-22.204019],[-67.944943,-22.282205],[-67.950369,-22.333675],[-67.881743,-22.493407],[-67.873759,-22.630608],[-67.889985,-22.729207],[-67.889158,-22.784139],[-67.879443,-22.822948],[-67.82048,-22.857674],[-67.794435,-22.879482],[-67.707309,-22.889197]]]]},"type":"Feature","properties":{"ISO_A2":"CL","NAME":"Chile"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[110.888767,19.991958],[110.938273,19.947568],[110.970726,19.883283],[110.997597,19.764685],[111.013617,19.655441],[110.912641,19.586092],[110.822311,19.557928],[110.640927,19.291226],[110.603099,19.207045],[110.572197,19.171853],[110.562482,19.135163],[110.565996,19.098524],[110.51928,18.970212],[110.477629,18.812625],[110.451274,18.747926],[110.399494,18.698342],[110.333658,18.673305],[110.290767,18.669507],[110.251803,18.655787],[110.156305,18.569823],[110.048508,18.505227],[110.066388,18.475617],[110.067422,18.447556],[110.020189,18.416241],[109.967686,18.42208],[109.815654,18.396681],[109.75974,18.348286],[109.702793,18.259144],[109.681088,18.247104],[109.589518,18.22633],[109.519341,18.218242],[109.400072,18.281107],[109.340954,18.299607],[109.183238,18.325135],[109.029862,18.367768],[108.922272,18.416137],[108.701613,18.535251],[108.676085,18.750251],[108.638051,18.866291],[108.635674,18.907709],[108.65004,19.265026],[108.665543,19.304093],[108.693552,19.338303],[108.791014,19.418169],[108.902841,19.481343],[109.062832,19.613583],[109.179104,19.674097],[109.276669,19.76112],[109.219515,19.757477],[109.17745,19.768458],[109.218894,19.84282],[109.26344,19.882663],[109.314806,19.904393],[109.418159,19.888812],[109.513657,19.904263],[109.584247,19.970332],[109.651323,19.984362],[109.906191,19.962761],[110.083028,19.99294],[110.171601,20.053737],[110.213356,20.056063],[110.34389,20.038829],[110.39226,19.975577],[110.388022,20.018003],[110.393603,20.059241],[110.417581,20.054745],[110.588217,19.976352],[110.588733,20.072444],[110.598345,20.097611],[110.651779,20.137738],[110.678547,20.137066],[110.744486,20.059448],[110.809082,20.014386],[110.888767,19.991958]]],[[[110.385128,21.093183],[110.422335,21.058612],[110.521554,21.083106],[110.539537,21.039026],[110.538917,21.018459],[110.503881,20.967713],[110.421818,21.006883],[110.339963,20.997737],[110.280949,21.001147],[110.264619,21.025177],[110.309887,21.074735],[110.385128,21.093183]]],[[[112.643802,21.639661],[112.545616,21.618526],[112.524946,21.623022],[112.558949,21.67475],[112.647626,21.710251],[112.643802,21.639661]]],[[[112.790253,21.601834],[112.771132,21.581835],[112.741987,21.618061],[112.733512,21.669944],[112.712635,21.697952],[112.76059,21.733247],[112.781984,21.772263],[112.839035,21.764486],[112.8626,21.752626],[112.812577,21.712138],[112.800691,21.694852],[112.790253,21.601834]]],[[[113.555271,22.804216],[113.563642,22.757888],[113.485611,22.828323],[113.46339,22.832353],[113.42608,22.858605],[113.404375,22.90284],[113.46494,22.904545],[113.520544,22.852042],[113.555271,22.804216]]],[[[118.182998,24.496283],[118.149512,24.436131],[118.090498,24.446157],[118.088741,24.488893],[118.076752,24.501399],[118.092978,24.54119],[118.10383,24.552352],[118.170699,24.518504],[118.182998,24.496283]]],[[[119.820935,25.456974],[119.746624,25.410697],[119.700322,25.432711],[119.699392,25.494723],[119.72306,25.550585],[119.695981,25.590867],[119.722543,25.638797],[119.77794,25.653163],[119.797474,25.623217],[119.828686,25.607352],[119.838401,25.591048],[119.838711,25.559655],[119.809049,25.507797],[119.832407,25.479582],[119.820935,25.456974]]],[[[121.251338,28.0864],[121.164212,28.062499],[121.131552,28.062577],[121.134033,28.135234],[121.20545,28.204377],[121.234388,28.181303],[121.250925,28.145233],[121.251338,28.0864]]],[[[122.172522,29.679016],[122.169008,29.660257],[122.083742,29.725344],[122.042711,29.735911],[122.062245,29.772757],[122.119606,29.782213],[122.165081,29.700771],[122.172522,29.679016]]],[[[122.403929,29.892388],[122.394008,29.846086],[122.367549,29.8527],[122.331789,29.934969],[122.351013,29.955226],[122.401552,29.950239],[122.403929,29.892388]]],[[[122.295926,29.963417],[122.28156,29.943831],[122.157846,30.001296],[122.024004,30.01331],[121.977806,30.063798],[121.969434,30.143122],[122.110511,30.139763],[122.284454,30.068036],[122.322281,30.031397],[122.295926,29.963417]]],[[[121.862671,31.49229],[121.780505,31.463765],[121.519952,31.549599],[121.336398,31.643754],[121.226844,31.758114],[121.211134,31.805397],[121.338982,31.797388],[121.464142,31.75646],[121.49184,31.693647],[121.542277,31.673907],[121.57659,31.637294],[121.808307,31.552131],[121.843654,31.526345],[121.862671,31.49229]]],[[[123.489496,53.529446],[123.534713,53.526449],[123.559725,53.526681],[123.607784,53.546525],[123.740954,53.510998],[123.994685,53.405629],[124.154314,53.358681],[124.219943,53.370102],[124.291463,53.340853],[124.369133,53.270935],[124.465922,53.229645],[124.639865,53.210654],[124.812361,53.133837],[124.882124,53.129729],[124.906619,53.172672],[124.970956,53.197322],[125.075033,53.203678],[125.225566,53.165799],[125.422453,53.083737],[125.54596,53.047615],[125.595983,53.057485],[125.649054,53.042267],[125.691687,53.00369],[125.695356,52.956303],[125.680784,52.930826],[125.728119,52.890725],[125.782793,52.890725],[125.871883,52.871528],[125.941646,52.800705],[126.00433,52.767891],[126.048151,52.739468],[126.056006,52.715878],[126.06014,52.691978],[126.047015,52.673478],[126.023243,52.643014],[126.015957,52.610226],[126.045929,52.573355],[126.15662,52.546638],[126.194447,52.519146],[126.202974,52.483825],[126.237597,52.444809],[126.312838,52.399748],[126.341674,52.362024],[126.324207,52.331664],[126.346324,52.306265],[126.383532,52.286499],[126.39149,52.214488],[126.394797,52.173017],[126.455568,52.126457],[126.468074,52.031295],[126.510552,51.925823],[126.653696,51.781284],[126.700825,51.703046],[126.688733,51.609925],[126.709196,51.566284],[126.774515,51.545071],[126.805418,51.505642],[126.801801,51.448049],[126.827329,51.412263],[126.847741,51.374177],[126.83384,51.314878],[126.854407,51.261367],[126.887738,51.230129],[126.91151,51.172329],[126.924842,51.100137],[127.020392,50.98588],[127.198262,50.829456],[127.306989,50.707965],[127.346832,50.621355],[127.347194,50.550093],[127.30823,50.494179],[127.306059,50.45351],[127.340786,50.428085],[127.351173,50.393617],[127.33722,50.350157],[127.395253,50.298584],[127.59028,50.208977],[127.512352,50.071673],[127.491784,49.975038],[127.50243,49.873416],[127.550799,49.801793],[127.636685,49.760193],[127.69017,49.716759],[127.711151,49.671542],[127.814297,49.622139],[127.999609,49.568603],[128.237062,49.559301],[128.52676,49.594234],[128.70401,49.600125],[128.769019,49.576974],[128.791033,49.541834],[128.770259,49.494705],[128.819352,49.463751],[128.938311,49.44892],[129.02027,49.419258],[129.065125,49.374661],[129.120109,49.362052],[129.185118,49.381379],[129.248421,49.37864],[129.309865,49.353835],[129.350069,49.362362],[129.384692,49.38944],[129.440709,49.38944],[129.498173,49.38882],[129.533727,49.323424],[129.591398,49.286656],[129.671083,49.278491],[129.792522,49.198858],[130.037055,48.972257],[130.196012,48.891641],[130.355279,48.866372],[130.553148,48.861204],[130.617175,48.773173],[130.565602,48.68013],[130.552114,48.602512],[130.597279,48.574658],[130.65924,48.483398],[130.746883,48.430378],[130.763419,48.388416],[130.804244,48.341494],[130.78719,48.254574],[130.712053,48.127657],[130.732568,48.01924],[130.848634,47.929426],[130.9154,47.84292],[130.932866,47.759798],[130.96196,47.70931],[131.002784,47.691456],[131.121847,47.697632],[131.319354,47.727811],[131.464255,47.722617],[131.556756,47.682025],[131.785269,47.680501],[132.149795,47.717966],[132.380168,47.72949],[132.476286,47.714969],[132.561862,47.768506],[132.636897,47.8901],[132.707177,47.947255],[132.772806,47.940072],[132.877089,47.979087],[133.020129,48.064405],[133.144049,48.105643],[133.301145,48.101535],[133.46837,48.097168],[133.573274,48.133031],[133.671769,48.207704],[133.842198,48.273746],[134.205896,48.359891],[134.293385,48.37343],[134.334932,48.368831],[134.456165,48.355343],[134.563549,48.321728],[134.665197,48.253928],[134.680803,48.210443],[134.669331,48.15334],[134.647213,48.120164],[134.605355,48.082905],[134.565978,48.022495],[134.591299,47.975211],[134.650314,47.874287],[134.69858,47.801424],[134.752323,47.715408],[134.728087,47.68448],[134.695789,47.624871],[134.596157,47.52387],[134.541897,47.485164],[134.483502,47.447388],[134.382526,47.438242],[134.339428,47.429508],[134.290852,47.413592],[134.260053,47.377729],[134.225223,47.352614],[134.167656,47.302178],[134.162953,47.258718],[134.189257,47.194226],[134.202124,47.128054],[134.136908,47.069014],[134.086421,46.978115],[134.071383,46.950778],[134.04601,46.881997],[134.038568,46.858174],[134.0226,46.71317],[133.95754,46.614235],[133.866589,46.499126],[133.886743,46.430551],[133.902762,46.366938],[133.880232,46.336035],[133.874754,46.30906],[133.861318,46.247772],[133.832793,46.224259],[133.750214,46.185915],[133.700708,46.139768],[133.711146,46.069643],[133.685721,46.008949],[133.647791,45.955231],[133.608,45.920298],[133.551156,45.897819],[133.513122,45.878802],[133.4847,45.810434],[133.475812,45.757647],[133.449147,45.705066],[133.46558,45.651219],[133.436434,45.60471],[133.355509,45.572206],[133.309517,45.55306],[133.266936,45.545282],[133.18601,45.494846],[133.113353,45.32142],[133.09692,45.22047],[133.113457,45.130734],[133.011757,45.074562],[132.936,45.029913],[132.888768,45.046062],[132.838641,45.061126],[132.723145,45.080556],[132.665629,45.093708],[132.549047,45.122802],[132.363012,45.159983],[132.181369,45.203288],[132.067422,45.225974],[131.977505,45.243983],[131.909241,45.273723],[131.851828,45.326846],[131.794881,45.305297],[131.742067,45.242613],[131.654011,45.205355],[131.613962,45.136573],[131.57877,45.083657],[131.487509,45.013118],[131.446892,44.984025],[131.268298,44.936121],[131.22799,44.920152],[131.082314,44.910024],[131.032963,44.888888],[130.9817,44.844317],[130.967748,44.799953],[131.003921,44.753238],[131.060662,44.659677],[131.086914,44.595676],[131.125774,44.469198],[131.255276,44.071574],[131.213314,44.002922],[131.174247,43.704749],[131.183652,43.650876],[131.180035,43.567108],[131.182463,43.505588],[131.20918,43.490421],[131.243907,43.469027],[131.261787,43.43306],[131.257343,43.378076],[131.239359,43.337665],[131.211867,43.257773],[131.175642,43.142199],[131.135593,43.097628],[131.10898,43.062436],[131.08619,43.038097],[131.083503,42.956293],[131.068569,42.902265],[131.005575,42.883119],[130.94284,42.851752],[130.868529,42.863327],[130.803262,42.856816],[130.722491,42.835835],[130.577281,42.811599],[130.492945,42.779095],[130.452741,42.755427],[130.424784,42.727031],[130.419978,42.699875],[130.439201,42.685534],[130.520592,42.674321],[130.576557,42.623238],[130.584464,42.567325],[130.526948,42.535388],[130.498216,42.570528],[130.450312,42.581691],[130.360705,42.630835],[130.295592,42.68494],[130.246707,42.744833],[130.248825,42.872629],[130.24035,42.891775],[130.15126,42.917949],[130.124802,42.955983],[130.082634,42.974173],[130.022276,42.962598],[129.977007,42.974845],[129.941247,42.99567],[129.898252,42.998151],[129.861045,42.965078],[129.841512,42.89423],[129.77919,42.776562],[129.773402,42.705456],[129.74653,42.603808],[129.719762,42.474979],[129.6978,42.448133],[129.627985,42.444283],[129.603903,42.435911],[129.567523,42.39209],[129.523702,42.384648],[129.484841,42.41028],[129.423656,42.435911],[129.365778,42.439219],[129.313689,42.413587],[129.252504,42.35788],[129.217777,42.312715],[129.205375,42.270547],[129.195453,42.218457],[129.1337,42.168512],[129.077217,42.142389],[128.960635,42.068802],[128.923428,42.03821],[128.839816,42.037848],[128.748969,42.04069],[128.626702,42.020846],[128.427231,42.010718],[128.307859,42.025652],[128.160167,42.011596],[128.045239,41.987515],[128.028702,41.951626],[128.03294,41.898476],[128.056091,41.86375],[128.084203,41.840599],[128.1319,41.76913],[128.181768,41.700039],[128.257836,41.655391],[128.289255,41.607435],[128.290909,41.562786],[128.254942,41.506562],[128.200268,41.433001],[128.149419,41.387732],[128.11123,41.389257],[128.052784,41.415612],[128.013096,41.448685],[127.918683,41.461139],[127.687638,41.440003],[127.572193,41.454757],[127.517002,41.481758],[127.420367,41.483773],[127.270816,41.519843],[127.179659,41.531367],[127.136664,41.554518],[127.128396,41.607435],[127.085401,41.643815],[127.061268,41.687352],[127.006904,41.742052],[126.954763,41.769492],[126.9035,41.781068],[126.847276,41.747995],[126.787745,41.718229],[126.743096,41.724844],[126.721599,41.716575],[126.697001,41.691874],[126.601244,41.640973],[126.578352,41.594361],[126.540111,41.495555],[126.513549,41.394011],[126.490398,41.35807],[126.451434,41.351843],[126.41185,41.321328],[126.328703,41.225701],[126.253617,41.137799],[126.144476,41.078268],[126.093213,41.023698],[126.066755,40.974088],[125.989034,40.904635],[125.874932,40.892233],[125.784033,40.872027],[125.728274,40.866705],[125.688225,40.83867],[125.659235,40.795882],[125.645075,40.778958],[125.593812,40.778958],[125.542549,40.742578],[125.416872,40.659896],[125.314449,40.644625],[125.185879,40.589383],[125.072914,40.547448],[125.025992,40.523883],[125.013383,40.497838],[124.996846,40.464766],[124.942276,40.458151],[124.889359,40.459805],[124.77195,40.383737],[124.712419,40.319245],[124.481012,40.181656],[124.386651,40.104271],[124.362156,40.004044],[124.349961,40.011563],[124.267485,39.924153],[124.105738,39.841005],[123.760126,39.822427],[123.650882,39.881571],[123.611194,39.840798],[123.580705,39.786151],[123.490065,39.767857],[123.348161,39.762948],[123.268993,39.726904],[123.226618,39.686622],[123.032212,39.673548],[122.960898,39.619933],[122.840079,39.600839],[122.33489,39.366125],[122.225026,39.267319],[122.120846,39.1519],[122.047672,39.09379],[121.982353,39.053172],[121.922615,39.036532],[121.864324,38.996483],[121.805206,38.991393],[121.744848,39.009686],[121.677255,39.003408],[121.632814,38.954832],[121.670434,38.891787],[121.649867,38.86507],[121.517162,38.830783],[121.320171,38.808226],[121.236352,38.766962],[121.207413,38.743527],[121.163592,38.731667],[121.12163,38.813264],[121.106748,38.920803],[121.188293,38.946667],[121.263224,38.960258],[121.679943,39.108673],[121.627646,39.220164],[121.664543,39.26874],[121.757871,39.347547],[121.818436,39.386511],[121.785466,39.400851],[121.512511,39.374858],[121.355725,39.376822],[121.275523,39.38478],[121.299811,39.452192],[121.286272,39.519449],[121.267461,39.544667],[121.406471,39.621251],[121.469516,39.640139],[121.517575,39.638976],[121.514268,39.685278],[121.474167,39.754861],[121.517369,39.844829],[121.800969,39.950533],[121.868975,40.046393],[121.982767,40.135819],[122.190919,40.35826],[122.203322,40.396036],[122.263886,40.500216],[122.274945,40.541867],[122.178724,40.602742],[122.14038,40.688163],[121.858846,40.842107],[121.834869,40.974269],[121.808617,40.968507],[121.765622,40.875903],[121.729242,40.846138],[121.598914,40.843399],[121.537109,40.878435],[121.174547,40.901251],[121.085974,40.841616],[121.002878,40.749141],[120.922263,40.683098],[120.841338,40.649199],[120.770748,40.589047],[120.479086,40.230981],[120.368912,40.203851],[119.85039,39.98743],[119.591078,39.902629],[119.39109,39.752483],[119.32236,39.66161],[119.261279,39.560867],[119.224589,39.408034],[119.040104,39.222361],[118.976955,39.18257],[118.912256,39.166421],[118.826473,39.172131],[118.752473,39.160504],[118.626382,39.17686],[118.471973,39.118],[118.297824,39.067099],[118.147859,39.195076],[118.040888,39.226753],[117.865705,39.191252],[117.784677,39.134459],[117.616728,38.8529],[117.553786,38.691437],[117.557817,38.625136],[117.656002,38.424218],[117.766693,38.311667],[118.014947,38.183406],[118.543287,38.094936],[118.667103,38.126355],[118.800015,38.126665],[118.940058,38.042795],[119.027598,37.903992],[119.03566,37.809165],[119.03845,37.776506],[119.070283,37.748601],[119.089196,37.700748],[119.033489,37.661061],[118.990804,37.641372],[118.954838,37.494094],[118.952667,37.331158],[118.998143,37.277105],[119.111831,37.201166],[119.287427,37.138302],[119.449898,37.124763],[119.760577,37.155071],[119.887494,37.253385],[119.879949,37.295812],[119.882946,37.350847],[120.155901,37.494998],[120.311551,37.622717],[120.287159,37.656513],[120.257187,37.678992],[120.284679,37.692092],[120.370152,37.701007],[120.749974,37.833944],[121.049077,37.725191],[121.219506,37.600134],[121.388074,37.578947],[121.505276,37.515049],[121.640255,37.460349],[121.816368,37.456629],[121.964887,37.445312],[122.010155,37.495748],[122.056664,37.528924],[122.109581,37.522309],[122.169112,37.456164],[122.33768,37.405288],[122.493226,37.40795],[122.602367,37.426398],[122.666963,37.402834],[122.573325,37.317929],[122.587277,37.18109],[122.515551,37.137837],[122.446718,37.068125],[122.487439,37.022262],[122.523405,37.002651],[122.519685,36.946841],[122.457053,36.915137],[122.340884,36.832222],[122.274222,36.833824],[122.242286,36.849844],[122.219755,36.879532],[122.203218,36.927204],[122.162394,36.958649],[122.049533,36.970741],[121.932744,36.959476],[121.669607,36.836357],[121.413086,36.738378],[121.144058,36.66045],[121.053831,36.611357],[120.989959,36.597973],[120.878545,36.635154],[120.810848,36.632803],[120.796689,36.607223],[120.882575,36.538907],[120.905003,36.485319],[120.895804,36.444132],[120.847022,36.426097],[120.776122,36.456302],[120.711526,36.413282],[120.682174,36.340728],[120.680934,36.168361],[120.637836,36.12994],[120.51929,36.108701],[120.393096,36.053872],[120.348241,36.079219],[120.330258,36.110096],[120.343487,36.189471],[120.327777,36.228177],[120.270106,36.226161],[120.18329,36.202442],[120.116937,36.1503],[120.0942,36.118907],[120.181429,36.017492],[120.264732,36.007234],[120.284782,35.984445],[120.21905,35.934913],[120.054719,35.861145],[120.027434,35.799366],[119.978651,35.740222],[119.911679,35.693222],[119.866203,35.643664],[119.810496,35.617723],[119.719752,35.588732],[119.608441,35.469877],[119.526482,35.358617],[119.429641,35.301411],[119.35285,35.1138],[119.215804,35.011765],[119.165367,34.848803],[119.200921,34.748422],[119.351403,34.74943],[119.426747,34.714135],[119.582913,34.582205],[119.769775,34.496215],[119.963665,34.447794],[120.20148,34.325709],[120.266696,34.274032],[120.322713,34.168974],[120.425652,33.866305],[120.499756,33.716444],[120.504821,33.63818],[120.615615,33.49054],[120.734471,33.236628],[120.871103,33.016512],[120.897355,32.843215],[120.853016,32.764099],[120.853223,32.661366],[120.989959,32.567031],[121.2933,32.457347],[121.341669,32.42505],[121.400993,32.371926],[121.403887,32.206226],[121.450809,32.153335],[121.490497,32.121089],[121.674258,32.051041],[121.751049,31.99288],[121.832388,31.899759],[121.856366,31.816456],[121.866288,31.703569],[121.763555,31.699487],[121.680873,31.712173],[121.351901,31.858805],[121.266428,31.862707],[121.145815,31.842346],[120.973526,31.869373],[120.791728,32.03174],[120.660573,32.08104],[120.520117,32.105844],[120.184117,31.966163],[120.098747,31.975981],[120.073942,31.960272],[120.035909,31.936294],[120.191558,31.906373],[120.347518,31.952107],[120.497172,32.019803],[120.715557,31.983733],[120.752247,31.922832],[120.787801,31.819763],[120.937559,31.750207],[121.055381,31.71946],[121.204933,31.628096],[121.35097,31.485365],[121.660616,31.319742],[121.785879,31.162904],[121.834455,31.061644],[121.877967,30.917002],[121.769446,30.870364],[121.675188,30.863749],[121.527497,30.84096],[121.418977,30.789775],[121.309939,30.699729],[120.997607,30.558264],[120.938283,30.469743],[120.897458,30.392615],[120.821494,30.354633],[120.629981,30.390858],[120.449837,30.387861],[120.245508,30.283527],[120.194659,30.241307],[120.228558,30.249575],[120.260494,30.263037],[120.352478,30.247431],[120.494589,30.30306],[120.633392,30.133148],[120.904486,30.16064],[121.159354,30.301768],[121.257953,30.304094],[121.340635,30.282364],[121.432723,30.226682],[121.677876,29.979101],[121.812338,29.952151],[121.944319,29.894093],[122.017286,29.887685],[122.082915,29.870373],[121.905769,29.779707],[121.676532,29.583802],[121.574626,29.537035],[121.50631,29.484583],[121.690485,29.51099],[121.821846,29.604653],[121.887992,29.627804],[121.941219,29.605919],[121.968401,29.490603],[121.917758,29.135018],[121.853575,29.12892],[121.79084,29.225684],[121.71746,29.256354],[121.655965,29.236149],[121.533698,29.236717],[121.487086,29.19318],[121.447709,29.131323],[121.520883,29.118481],[121.664956,29.010581],[121.679633,28.953117],[121.640979,28.915936],[121.540003,28.931904],[121.662476,28.851418],[121.630023,28.767908],[121.590336,28.734836],[121.519126,28.713674],[121.475201,28.64143],[121.538143,28.521102],[121.602015,28.366615],[121.609973,28.292124],[121.509927,28.324266],[121.354588,28.229879],[121.272216,28.222102],[121.216818,28.346177],[121.145712,28.326669],[121.098479,28.290522],[121.035434,28.157274],[120.958643,28.036997],[120.892497,28.003924],[120.813019,28.013355],[120.747596,28.00997],[120.763513,27.977466],[120.832966,27.937778],[120.832966,27.891476],[120.685171,27.74456],[120.661297,27.687871],[120.664811,27.63945],[120.587503,27.580746],[120.629154,27.482121],[120.607553,27.412384],[120.539857,27.318333],[120.468647,27.256269],[120.384621,27.1555],[120.278685,27.097054],[120.138538,26.886111],[120.097404,26.780691],[120.086758,26.671602],[120.042937,26.633827],[119.967799,26.586388],[119.882223,26.610469],[119.879432,26.682997],[119.842329,26.689327],[119.821245,26.736921],[119.815147,26.797589],[119.824242,26.846372],[119.788689,26.831489],[119.766674,26.774697],[119.71045,26.728653],[119.651539,26.747257],[119.588184,26.78498],[119.589941,26.730488],[119.623634,26.675866],[119.638207,26.621166],[119.725953,26.609436],[119.784761,26.546623],[119.831167,26.45022],[119.840365,26.41415],[119.876435,26.370949],[119.881086,26.334155],[119.797267,26.300152],[119.692674,26.236435],[119.5671,26.127346],[119.463127,26.054663],[119.369696,26.054069],[119.313059,26.06257],[119.232133,26.104402],[119.139426,26.121765],[119.263759,25.974797],[119.332076,25.948752],[119.417755,25.954333],[119.500851,26.009162],[119.618776,26.003581],[119.648232,25.918703],[119.616916,25.82292],[119.552837,25.69869],[119.539401,25.591255],[119.61919,25.437466],[119.622497,25.391164],[119.592732,25.368013],[119.499197,25.408656],[119.421786,25.459609],[119.343755,25.446277],[119.263139,25.468032],[119.180044,25.449816],[119.146247,25.414315],[119.169295,25.355714],[119.243606,25.307034],[119.285567,25.232233],[119.235544,25.205955],[119.024601,25.223448],[118.977575,25.209263],[118.914427,25.126787],[118.955665,25.004779],[118.909052,24.928892],[118.822029,24.911115],[118.707514,24.849827],[118.636924,24.835539],[118.640232,24.80908],[118.691805,24.782312],[118.719193,24.746138],[118.657078,24.621443],[118.56034,24.580386],[118.412028,24.600721],[118.295343,24.572738],[118.194574,24.625836],[118.087087,24.626998],[118.013913,24.559922],[118.005955,24.481968],[117.935055,24.474217],[117.896814,24.479824],[117.842658,24.474295],[117.848239,24.432462],[117.879038,24.395876],[118.024248,24.379649],[118.050603,24.327146],[118.056081,24.246091],[117.904049,24.106436],[117.839454,24.012307],[117.741682,24.014814],[117.667888,23.939263],[117.6282,23.836737],[117.579211,23.856994],[117.46635,23.840561],[117.43307,23.791726],[117.459528,23.771469],[117.462216,23.736252],[117.416947,23.621013],[117.367648,23.588638],[117.346667,23.635715],[117.330751,23.708812],[117.290857,23.714367],[117.225021,23.647032],[117.148126,23.598767],[117.082497,23.578768],[117.032784,23.623416],[116.910621,23.646671],[116.860909,23.453091],[116.759519,23.382501],[116.712081,23.360487],[116.629398,23.353872],[116.682315,23.327414],[116.698851,23.277804],[116.669086,23.228195],[116.586403,23.218273],[116.538241,23.179671],[116.519844,23.006606],[116.470648,22.945887],[116.345488,22.941081],[116.25185,22.981337],[116.222085,22.949556],[116.206375,22.918653],[116.157386,22.88744],[116.062611,22.879121],[115.852185,22.801554],[115.75586,22.823904],[115.640415,22.853437],[115.561143,22.824705],[115.534685,22.765174],[115.498304,22.718872],[115.382549,22.718872],[115.289945,22.775974],[115.195791,22.817264],[115.091508,22.781711],[115.012133,22.70895],[114.914464,22.684636],[114.896377,22.639497],[114.853796,22.616785],[114.750443,22.626319],[114.711169,22.738716],[114.651638,22.755252],[114.592727,22.698434],[114.571953,22.65407],[114.544461,22.620609],[114.554176,22.528884],[114.496195,22.527049],[114.420127,22.583273],[114.340649,22.593195],[114.266028,22.540976],[114.228201,22.553947],[114.188204,22.565005],[114.122885,22.565005],[114.097873,22.551259],[114.050331,22.542991],[114.018291,22.51444],[114.015398,22.511908],[113.931165,22.531028],[113.828329,22.607251],[113.754432,22.733651],[113.661104,22.801658],[113.619659,22.861447],[113.603433,22.968883],[113.58638,23.020042],[113.592168,23.076964],[113.620486,23.127478],[113.519717,23.102104],[113.445303,23.055079],[113.460393,22.995703],[113.441893,22.940564],[113.331098,22.912013],[113.337816,22.888836],[113.344844,22.8646],[113.431971,22.78941],[113.449747,22.726133],[113.484784,22.692362],[113.552997,22.594022],[113.551447,22.404163],[113.58886,22.350471],[113.576458,22.29727],[113.549121,22.225181],[113.546796,22.224148],[113.527055,22.245929],[113.494189,22.241537],[113.481063,22.217456],[113.478893,22.195545],[113.473415,22.19446],[113.415744,22.178388],[113.367375,22.164849],[113.327791,22.145419],[113.266399,22.088755],[113.148991,22.074984],[113.088736,22.207947],[113.008224,22.119322],[112.983833,21.938248],[112.95386,21.907345],[112.903838,21.881455],[112.80865,21.944656],[112.72545,21.902333],[112.660752,21.859493],[112.634087,21.819857],[112.586338,21.776836],[112.494767,21.818307],[112.421283,21.880629],[112.439473,21.927344],[112.429241,21.958092],[112.396065,21.981346],[112.359685,21.978039],[112.377461,21.917474],[112.38976,21.801202],[112.356481,21.767561],[112.305011,21.741722],[112.19339,21.763116],[112.117219,21.806499],[112.025235,21.843008],[111.943999,21.849649],[111.926429,21.776294],[111.873409,21.71715],[111.824627,21.70976],[111.775948,21.719217],[111.711972,21.655242],[111.681587,21.608475],[111.602728,21.559098],[111.392405,21.535094],[111.319128,21.486157],[111.220633,21.493908],[111.144255,21.482203],[111.100537,21.48471],[111.061159,21.510987],[111.016924,21.511711],[110.99677,21.430268],[110.878018,21.395955],[110.771048,21.38655],[110.652089,21.279115],[110.567133,21.214054],[110.504294,21.20744],[110.457992,21.230591],[110.434531,21.32689],[110.410966,21.338155],[110.397427,21.247696],[110.374586,21.172377],[110.331178,21.13132],[110.193615,21.037631],[110.154031,20.944613],[110.180386,20.858598],[110.365388,20.837591],[110.388436,20.79054],[110.370555,20.752041],[110.326217,20.719898],[110.313091,20.671658],[110.511529,20.518283],[110.517523,20.459992],[110.486931,20.426867],[110.449517,20.355399],[110.344717,20.294834],[110.123129,20.263725],[109.938437,20.295144],[109.882523,20.36408],[109.885831,20.413121],[109.931616,20.398859],[109.983912,20.403251],[109.968409,20.448158],[109.946395,20.474358],[109.861026,20.514304],[109.791986,20.621894],[109.805215,20.711475],[109.767388,20.780696],[109.726254,20.83878],[109.684706,20.87361],[109.662588,20.916915],[109.704446,21.05272],[109.681192,21.13163],[109.760153,21.228369],[109.779584,21.337458],[109.921074,21.376473],[109.930789,21.480575],[109.829607,21.483599],[109.759327,21.560054],[109.743307,21.527989],[109.686876,21.52463],[109.594375,21.671959],[109.566367,21.690588],[109.521512,21.693405],[109.544043,21.537936],[109.435522,21.479516],[109.346639,21.453936],[109.220445,21.443394],[109.148615,21.42554],[109.081539,21.440268],[109.098178,21.487371],[109.133525,21.543595],[109.101796,21.590465],[109.030586,21.62651],[108.921755,21.624417],[108.846411,21.634494],[108.771687,21.630489],[108.743988,21.651289],[108.674535,21.724669],[108.615831,21.770454],[108.589372,21.815981],[108.615831,21.868898],[108.593713,21.901041],[108.479922,21.904632],[108.480852,21.828797],[108.492634,21.739397],[108.525707,21.671391],[108.502142,21.633434],[108.444368,21.607312],[108.38277,21.679194],[108.354554,21.696919],[108.324789,21.693508],[108.302155,21.621936],[108.246344,21.5584],[108.145575,21.56517],[108.067337,21.525973],[107.972666,21.507938],[107.90838,21.56039],[107.80203,21.645165],[107.759242,21.655009],[107.641006,21.613926],[107.471404,21.59832],[107.433474,21.642271],[107.351205,21.608914],[107.272088,21.710639],[107.178554,21.717073],[107.06161,21.7942],[107.019804,21.834869],[107.00642,21.893418],[106.971021,21.923908],[106.925184,21.920109],[106.87449,21.95127],[106.794185,21.981992],[106.729537,22.000363],[106.697601,21.986178],[106.663547,21.978917],[106.657707,22.018217],[106.660084,22.136479],[106.654193,22.241459],[106.63652,22.288614],[106.593163,22.324529],[106.553631,22.341686],[106.536371,22.395429],[106.550427,22.501392],[106.582466,22.573248],[106.633109,22.586038],[106.701529,22.63774],[106.736359,22.710914],[106.780284,22.778894],[106.623962,22.874263],[106.541849,22.908344],[106.450898,22.8939],[106.33814,22.863463],[106.279022,22.857468],[106.249463,22.869431],[106.183938,22.955137],[106.148488,22.970071],[106.068492,22.975549],[106.001003,22.974774],[105.962349,22.937463],[105.902663,22.924958],[105.842977,22.922813],[105.782308,22.969348],[105.691255,23.029912],[105.548111,23.072649],[105.530851,23.121974],[105.494574,23.180859],[105.440159,23.235326],[105.3505,23.307673],[105.275363,23.34519],[105.238776,23.322117],[105.189063,23.281034],[104.99569,23.194321],[104.910217,23.160525],[104.864742,23.136366],[104.826553,23.100192],[104.814719,23.010792],[104.795702,22.91116],[104.740098,22.860491],[104.687285,22.822199],[104.631733,22.818194],[104.577576,22.820003],[104.526829,22.804086],[104.371748,22.704067],[104.298368,22.711999],[104.23832,22.768507],[104.212482,22.809409],[104.14308,22.800159],[104.053887,22.752307],[104.012701,22.666369],[103.99079,22.586115],[103.971411,22.55051],[103.941491,22.540072],[103.915032,22.538237],[103.637323,22.770032],[103.620218,22.782046],[103.570712,22.734427],[103.525444,22.611566],[103.492939,22.587976],[103.471028,22.597432],[103.3561,22.754684],[103.326644,22.769773],[103.300599,22.764399],[103.266286,22.713523],[103.193319,22.638515],[103.137612,22.592988],[103.136372,22.542242],[103.075859,22.497516],[103.005372,22.452997],[102.981963,22.448268],[102.935144,22.466174],[102.874269,22.525395],[102.830085,22.587149],[102.720997,22.648489],[102.598523,22.700398],[102.517185,22.740989],[102.470883,22.750911],[102.427888,22.732825],[102.406442,22.70802],[102.375746,22.646628],[102.302262,22.546014],[102.236995,22.465993],[102.175965,22.414653],[102.127441,22.379203],[102.091474,22.41225],[102.024398,22.439199],[101.945437,22.439406],[101.841774,22.388479],[101.760022,22.490307],[101.738783,22.495268],[101.707518,22.486586],[101.671448,22.462324],[101.646178,22.405403],[101.619978,22.327449],[101.567889,22.276393],[101.52448,22.253655],[101.537245,22.209859],[101.561842,22.16242],[101.560241,22.120924],[101.575795,22.055269],[101.602925,21.989718],[101.69956,21.882489],[101.736509,21.826523],[101.743899,21.777999],[101.747206,21.605762],[101.743485,21.533828],[101.724158,21.395025],[101.722918,21.314927],[101.763122,21.278882],[101.802086,21.235965],[101.800536,21.212607],[101.783483,21.204132],[101.728086,21.156383],[101.704779,21.150131],[101.668606,21.169638],[101.621632,21.184444],[101.583908,21.203564],[101.54236,21.23426],[101.443607,21.230797],[101.281498,21.184134],[101.247908,21.197311],[101.224447,21.223718],[101.211838,21.278236],[101.2199,21.342419],[101.205585,21.383295],[101.175354,21.407531],[101.196645,21.522046],[101.138923,21.567469],[101.147294,21.581629],[101.128174,21.70511],[101.130809,21.735573],[101.120681,21.746115],[101.079753,21.755856],[101.019395,21.736374],[100.835117,21.655164],[100.67709,21.504941],[100.604588,21.471765],[100.531363,21.458096],[100.445683,21.484064],[100.350547,21.501013],[100.214741,21.46298],[100.147614,21.480524],[100.116763,21.511168],[100.089271,21.557909],[100.105756,21.617053],[100.095524,21.660668],[100.041263,21.68276],[99.978218,21.701621],[99.940701,21.758724],[99.925612,21.820813],[99.940391,21.901609],[99.947884,21.988322],[99.917705,22.02801],[99.825359,22.049688],[99.592712,22.089143],[99.388642,22.110795],[99.303117,22.100615],[99.233354,22.110175],[99.192995,22.125988],[99.173409,22.153325],[99.172376,22.192496],[99.205345,22.282568],[99.243069,22.370366],[99.337689,22.498059],[99.343218,22.586529],[99.338257,22.688693],[99.385179,22.825119],[99.466777,22.927283],[99.507136,22.959142],[99.497266,23.004617],[99.464554,23.046242],[99.418046,23.069264],[99.340841,23.095903],[99.22028,23.103345],[99.05507,23.130578],[98.863764,23.191246],[98.885572,23.307467],[98.882574,23.38033],[98.858855,23.440094],[98.819736,23.482546],[98.797877,23.520425],[98.832242,23.624372],[98.787697,23.737854],[98.73509,23.783096],[98.680881,23.841801],[98.676747,23.905104],[98.701604,23.964067],[98.833999,24.090571],[98.835084,24.121215],[98.802373,24.118683],[98.76439,24.116074],[98.58342,24.069797],[98.564144,24.098839],[98.499445,24.115686],[98.367257,24.119019],[98.212538,24.110622],[98.016891,24.065456],[97.837677,23.986288],[97.755615,23.931873],[97.686058,23.898076],[97.629628,23.887147],[97.564567,23.911047],[97.568288,23.988484],[97.690606,24.130801],[97.708176,24.228754],[97.67071,24.312728],[97.666628,24.379959],[97.623582,24.422928],[97.563275,24.443857],[97.531442,24.491684],[97.529375,24.631184],[97.583274,24.774819],[97.670659,24.820113],[97.723886,24.841998],[97.737942,24.869878],[97.71076,24.970362],[97.714946,25.034338],[97.767345,25.158051],[97.819487,25.251844],[97.917982,25.236134],[97.962011,25.259311],[98.010741,25.292513],[98.064071,25.34897],[98.099573,25.41571],[98.142878,25.571101],[98.17254,25.59451],[98.296615,25.568827],[98.333822,25.586785],[98.401674,25.677968],[98.465546,25.788865],[98.558357,25.823256],[98.625381,25.826693],[98.656283,25.863564],[98.65463,25.917772],[98.591016,26.003684],[98.564093,26.072414],[98.571999,26.114065],[98.663156,26.139438],[98.685584,26.189358],[98.671838,26.29855],[98.709458,26.429705],[98.731886,26.583416],[98.739379,26.698164],[98.738501,26.785756],[98.729509,26.877404],[98.716486,27.044939],[98.674835,27.19064],[98.68238,27.245314],[98.676799,27.421918],[98.651167,27.572452],[98.599801,27.598833],[98.50451,27.647667],[98.452523,27.657227],[98.408857,27.639476],[98.392424,27.587076],[98.350462,27.538087],[98.298838,27.550102],[98.274188,27.599091],[98.241063,27.66317],[98.130476,27.967596],[98.118383,28.055239],[98.098953,28.142262],[98.061643,28.185877],[98.022317,28.211534],[97.934054,28.313828],[97.887596,28.356487],[97.864962,28.363592],[97.81649,28.356331],[97.769051,28.356151],[97.730087,28.407104],[97.694637,28.469348],[97.658877,28.500018],[97.599242,28.517045],[97.537902,28.510224],[97.50209,28.456325],[97.477699,28.425655],[97.431449,28.353903],[97.356466,28.254503],[97.322515,28.217994],[97.289493,28.23683],[97.145161,28.340312],[97.075346,28.368966],[96.980882,28.337702],[96.833036,28.362403],[96.77583,28.367054],[96.65284,28.449737],[96.602662,28.459917],[96.427686,28.406018],[96.389083,28.367933],[96.366449,28.367261],[96.319837,28.386511],[96.281493,28.412065],[96.278909,28.428188],[96.326141,28.468547],[96.329862,28.496814],[96.327382,28.525391],[96.395595,28.606523],[96.580906,28.763671],[96.550004,28.82961],[96.47714,28.959318],[96.467063,29.022286],[96.435695,29.050682],[96.346864,29.027427],[96.162224,28.909709],[96.137161,28.922602],[96.141346,28.963452],[96.12233,29.082075],[96.180827,29.117655],[96.270538,29.161218],[96.339732,29.209794],[96.355804,29.249068],[96.3372,29.261005],[96.234984,29.245786],[96.19478,29.272451],[96.128479,29.381385],[96.079593,29.424147],[96.035306,29.447143],[95.885031,29.390945],[95.710365,29.313818],[95.515803,29.206331],[95.51694,29.151193],[95.493789,29.137007],[95.45653,29.102281],[95.420202,29.054299],[95.389248,29.037401],[95.353074,29.035902],[95.279074,29.049545],[95.144715,29.104064],[94.998884,29.149177],[94.967516,29.144061],[94.769441,29.175868],[94.763136,29.201293],[94.73337,29.2516],[94.677043,29.297023],[94.62299,29.312423],[94.468064,29.216201],[94.293294,29.14463],[94.193455,29.059932],[94.111548,28.97588],[94.017652,28.959525],[94.013311,28.907538],[93.973623,28.860797],[93.902258,28.803203],[93.760768,28.729771],[93.664908,28.690239],[93.360534,28.654065],[93.251962,28.629467],[93.206539,28.590813],[93.157756,28.492731],[93.119205,28.402298],[93.034973,28.327651],[92.881856,28.228122],[92.701866,28.147119],[92.652567,28.093376],[92.643472,28.061543],[92.66559,28.049864],[92.687449,28.025732],[92.687759,27.98899],[92.664349,27.94894],[92.546734,27.879177],[92.480691,27.845949],[92.414856,27.824607],[92.341062,27.820757],[92.270058,27.830214],[92.250525,27.841479],[92.222258,27.826932],[92.157559,27.812256],[92.101283,27.807631],[91.977673,27.730349],[91.909408,27.729677],[91.824711,27.74642],[91.712573,27.75983],[91.631906,27.75996],[91.629374,27.800862],[91.64188,27.923257],[91.605603,27.951705],[91.493361,27.981781],[91.367581,28.021649],[91.30681,28.064024],[91.273013,28.07839],[91.225884,28.071258],[91.14992,28.026765],[91.07778,27.974468],[91.02078,27.970076],[90.962541,27.994571],[90.906627,28.026532],[90.715734,28.071724],[90.630055,28.078545],[90.477299,28.070845],[90.352759,28.080224],[90.333122,28.093996],[90.333742,28.119137],[90.352139,28.168178],[90.362991,28.216495],[90.348212,28.243935],[90.220778,28.277757],[90.104506,28.302045],[89.981102,28.311192],[89.897903,28.294139],[89.816926,28.256286],[89.749799,28.188176],[89.652699,28.158307],[89.536892,28.107432],[89.480668,28.059941],[89.395918,27.958139],[89.272618,27.833159],[89.160481,27.71128],[89.102396,27.592554],[89.025502,27.517856],[88.947574,27.464009],[88.89135,27.316059],[88.832542,27.362826],[88.764897,27.429876],[88.749033,27.521886],[88.829906,27.767401],[88.848768,27.868661],[88.828615,27.907263],[88.803706,28.006921],[88.756216,28.039684],[88.621082,28.091826],[88.577932,28.09335],[88.53163,28.057357],[88.486103,28.034465],[88.425952,28.011676],[88.27516,27.968836],[88.141111,27.948914],[88.108969,27.933024],[88.098943,27.90455],[88.109795,27.870599],[88.023341,27.883415],[87.933372,27.89083],[87.860715,27.886102],[87.682741,27.821403],[87.62259,27.815202],[87.555307,27.821842],[87.46415,27.823832],[87.290724,27.82192],[87.141379,27.838327],[87.020094,27.928657],[86.933846,27.968474],[86.842379,27.99917],[86.750395,28.022088],[86.719648,28.070638],[86.690502,28.094926],[86.614434,28.103014],[86.554541,28.085211],[86.516921,27.963513],[86.484933,27.939535],[86.408711,27.928657],[86.328612,27.959534],[86.217921,28.022088],[86.174203,28.091696],[86.136996,28.114331],[86.078705,28.083583],[86.075501,27.994571],[86.064132,27.934703],[85.994576,27.910416],[85.954113,27.928218],[85.921712,27.989713],[85.84027,28.135363],[85.759448,28.220655],[85.678316,28.277447],[85.410632,28.276026],[85.212143,28.29264],[85.122432,28.315946],[85.088584,28.372274],[85.121451,28.484256],[85.160105,28.571848],[85.159071,28.592234],[85.126308,28.602647],[85.069154,28.609675],[84.85511,28.553606],[84.796871,28.560221],[84.759406,28.579238],[84.71424,28.595542],[84.676775,28.621535],[84.650627,28.659543],[84.46547,28.752922],[84.410796,28.803927],[84.312146,28.868109],[84.228689,28.91175],[84.175565,29.036393],[84.127816,29.156308],[84.101358,29.219974],[84.021983,29.253874],[83.935993,29.279505],[83.790472,29.227415],[83.671048,29.187624],[83.583508,29.183594],[83.456694,29.306325],[83.355202,29.439134],[83.235209,29.554605],[83.155421,29.612663],[83.013931,29.618089],[82.854302,29.683382],[82.640827,29.831203],[82.486573,29.94148],[82.220646,30.06385],[82.158944,30.115165],[82.13538,30.158986],[82.098948,30.245079],[82.043396,30.32678],[81.85488,30.362411],[81.641921,30.387525],[81.417129,30.337606],[81.255123,30.093306],[81.177195,30.039872],[81.110326,30.036797],[81.055601,30.09899],[81.010229,30.164516],[80.985476,30.237121],[80.873545,30.29058],[80.746782,30.360421],[80.682135,30.414836],[80.608858,30.448891],[80.540955,30.463541],[80.409594,30.509456],[80.260972,30.561339],[80.191209,30.568419],[80.186248,30.605316],[80.207125,30.683735],[80.19431,30.759208],[80.149454,30.789852],[80.0815,30.78192],[79.924523,30.888793],[79.9166,30.894187],[79.8719,30.924624],[79.794592,30.968265],[79.664264,30.965216],[79.565459,30.949093],[79.493164,30.993716],[79.388467,31.064202],[79.369657,31.079912],[79.338755,31.105699],[79.232611,31.241763],[79.107141,31.402657],[79.043785,31.426222],[79.011074,31.414104],[78.973919,31.328631],[78.946014,31.337209],[78.899505,31.33137],[78.844521,31.301501],[78.791656,31.293646],[78.757808,31.302482],[78.743494,31.323799],[78.758635,31.436583],[78.726699,31.471826],[78.755069,31.550271],[78.802973,31.61807],[78.753881,31.668352],[78.693471,31.740363],[78.687011,31.805501],[78.719671,31.887666],[78.735484,31.957946],[78.725562,31.98381],[78.67771,32.023033],[78.495912,32.21576],[78.486093,32.236224],[78.455294,32.300328],[78.441342,32.397351],[78.417467,32.466701],[78.389665,32.519876],[78.391732,32.544732],[78.412558,32.557703],[78.526349,32.570777],[78.631563,32.578942],[78.700861,32.597003],[78.736724,32.558375],[78.753467,32.499257],[78.771244,32.46807],[78.837907,32.411975],[78.918987,32.35818],[78.99769,32.365157],[79.06704,32.388178],[79.127398,32.47577],[79.169876,32.497216],[79.219382,32.501066],[79.219072,32.507577],[79.21654,32.564007],[79.233903,32.703069],[79.227909,32.758802],[79.205584,32.809031],[79.209563,32.864868],[79.202225,32.946051],[79.145536,33.001448],[79.108588,33.022636],[79.1028,33.052556],[79.121713,33.108109],[79.135201,33.171929],[79.115564,33.218955],[79.112515,33.226267],[79.066523,33.250374],[79.012625,33.291457],[78.948494,33.346544],[78.916713,33.386774],[78.865088,33.431086],[78.801836,33.499713],[78.789951,33.650349],[78.78375,33.808789],[78.761735,33.887596],[78.726647,34.013402],[78.731763,34.055544],[78.753054,34.087687],[78.931751,34.188947],[78.970612,34.228195],[78.976916,34.258116],[78.970095,34.302609],[78.936402,34.35196],[78.86483,34.390356],[78.763079,34.452936],[78.670785,34.518152],[78.515756,34.557943],[78.32693,34.606389],[78.281971,34.653932],[78.236186,34.769816],[78.158465,34.946498],[78.075731,35.13491],[78.01222,35.251027],[78.009172,35.306941],[78.047412,35.449387],[78.04271,35.479798],[78.009482,35.490237],[77.945868,35.471634],[77.894915,35.448999],[77.851507,35.460782],[77.810889,35.484527],[77.802518,35.492795],[77.799365,35.495922],[77.724073,35.480574],[77.572557,35.47184],[77.520054,35.473416],[77.446519,35.475613],[77.294848,35.508143],[77.090003,35.552042],[76.878853,35.613305],[76.76687,35.6617],[76.727544,35.678675],[76.63184,35.72937],[76.56342,35.772985],[76.551276,35.88706],[76.502028,35.878224],[76.385756,35.837141],[76.251656,35.810915],[76.17781,35.810528],[76.147838,35.829028],[76.103293,35.949227],[76.07084,35.982998],[76.010482,35.996356],[75.945112,36.017595],[75.912297,36.048963],[75.904856,36.088469],[75.934104,36.133919],[75.968624,36.168852],[75.974412,36.382431],[75.951881,36.458111],[75.933019,36.52157],[75.885012,36.600712],[75.84026,36.649701],[75.772202,36.694918],[75.667196,36.74197],[75.573713,36.759307],[75.460232,36.725045],[75.424161,36.738223],[75.376877,36.883718],[75.346647,36.913458],[75.145212,36.973222],[75.053951,36.987148],[74.949152,36.968338],[74.88931,36.952422],[74.841251,36.979087],[74.76601,37.012728],[74.692216,37.035724],[74.600646,37.036654],[74.541373,37.022185],[74.526438,37.03066],[74.497913,37.057222],[74.376163,37.137372],[74.372133,37.157732],[74.558943,37.236616],[74.668962,37.266692],[74.726685,37.290747],[74.738984,37.285631],[74.767354,37.249174],[74.840218,37.225067],[74.891326,37.23163],[74.918146,37.250026],[75.008373,37.293538],[75.079015,37.344052],[75.118805,37.385677],[75.097515,37.451254],[74.98641,37.530397],[74.91582,37.572823],[74.894271,37.601426],[74.912358,37.687312],[74.9383,37.772527],[74.921246,37.805005],[74.900266,37.83273],[74.890809,37.925799],[74.842491,38.038092],[74.789678,38.103618],[74.775105,38.191907],[74.772108,38.274744],[74.83598,38.404323],[74.812261,38.460314],[74.74503,38.510027],[74.514036,38.600021],[74.277461,38.659759],[74.187338,38.657512],[74.131372,38.661181],[74.06533,38.608496],[74.02559,38.539818],[73.970038,38.533695],[73.869114,38.562866],[73.801625,38.606894],[73.754134,38.69893],[73.716824,38.817218],[73.69605,38.854321],[73.706799,38.886206],[73.730001,38.914679],[73.794493,38.941293],[73.805294,38.968629],[73.795579,39.002167],[73.743747,39.044542],[73.690417,39.104538],[73.607321,39.229208],[73.623134,39.297834],[73.636364,39.396691],[73.631661,39.448859],[73.715739,39.462269],[73.822915,39.488959],[73.872783,39.533298],[73.907148,39.578515],[73.914693,39.606472],[73.88255,39.714553],[73.839762,39.762845],[73.83537,39.800155],[73.856247,39.82868],[73.884617,39.877928],[73.938774,39.978826],[73.991587,40.043138],[74.020526,40.059364],[74.085122,40.074298],[74.242683,40.092023],[74.411923,40.137189],[74.613048,40.272167],[74.679866,40.310615],[74.767767,40.329864],[74.830503,40.328495],[74.841768,40.34498],[74.801254,40.42854],[74.811124,40.458771],[74.835102,40.482594],[74.865591,40.493498],[75.004549,40.449495],[75.111312,40.45412],[75.24102,40.480294],[75.520796,40.627546],[75.555575,40.625195],[75.583532,40.605325],[75.617431,40.516597],[75.655982,40.32927],[75.677169,40.305809],[75.871989,40.303199],[76.004281,40.371438],[76.062314,40.387535],[76.156623,40.376476],[76.206078,40.408387],[76.258322,40.430737],[76.318525,40.352266],[76.39635,40.389809],[76.480169,40.449521],[76.520942,40.511248],[76.577889,40.577885],[76.622176,40.662376],[76.639798,40.742216],[76.661192,40.779656],[76.708424,40.818129],[76.824076,40.982305],[76.90774,41.024189],[76.98665,41.039149],[77.18209,41.010727],[77.283996,41.014344],[77.581756,40.992769],[77.719318,41.024292],[77.81523,41.055608],[77.95641,41.050699],[78.123428,41.075633],[78.346257,41.28146],[78.348841,41.325204],[78.36238,41.371609],[78.442892,41.41755],[78.543144,41.459589],[78.742615,41.560048],[79.14843,41.719133],[79.293589,41.782825],[79.354412,41.781068],[79.503861,41.821013],[79.766119,41.898864],[79.840429,41.995732],[79.909676,42.015007],[80.21622,42.032422],[80.235134,42.043481],[80.246193,42.05981],[80.229191,42.129832],[80.209347,42.190035],[80.233067,42.207812],[80.259112,42.235407],[80.255081,42.274164],[80.205782,42.399428],[80.179323,42.518335],[80.161857,42.625538],[80.165009,42.66551],[80.202216,42.734472],[80.250275,42.797285],[80.424011,42.855782],[80.53894,42.873507],[80.543694,42.911696],[80.450676,42.935545],[80.383342,42.97376],[80.371301,42.995619],[80.374505,43.020398],[80.390215,43.043135],[80.507004,43.085768],[80.617023,43.128272],[80.751226,43.102512],[80.777788,43.118945],[80.785746,43.161552],[80.757014,43.20434],[80.729781,43.274284],[80.667769,43.31007],[80.665392,43.352987],[80.703839,43.427065],[80.650819,43.564163],[80.593458,43.685086],[80.495997,43.892102],[80.431556,43.951762],[80.395796,44.047183],[80.35523,44.097283],[80.358951,44.171309],[80.365359,44.223296],[80.35492,44.326494],[80.336316,44.438399],[80.355023,44.551984],[80.391042,44.626811],[80.381482,44.655414],[80.40055,44.676912],[80.455431,44.684069],[80.481527,44.714635],[80.455431,44.74608],[80.360811,44.770291],[80.255029,44.808118],[80.127854,44.803777],[79.997164,44.797214],[79.932103,44.825171],[79.875259,44.860828],[79.871849,44.883772],[79.95019,44.944079],[80.059227,45.006452],[80.228209,45.033996],[80.414968,45.075104],[80.509226,45.104999],[80.634799,45.126496],[80.780114,45.135566],[80.853339,45.129313],[81.040356,45.16913],[81.334705,45.246205],[81.602079,45.310826],[81.692048,45.349377],[81.758865,45.310826],[81.789664,45.226025],[81.867489,45.1821],[81.9449,45.160861],[81.989239,45.161843],[82.122771,45.194864],[82.266586,45.219101],[82.323379,45.205871],[82.396656,45.162463],[82.478718,45.123577],[82.521454,45.125489],[82.558971,45.155435],[82.597005,45.215948],[82.621086,45.293101],[82.625789,45.374414],[82.61163,45.424256],[82.582536,45.442601],[82.451639,45.471953],[82.326634,45.519935],[82.312216,45.563705],[82.315214,45.594943],[82.348132,45.671528],[82.429729,45.811933],[82.511687,46.005797],[82.555096,46.158682],[82.692245,46.386678],[82.800042,46.624441],[82.974915,46.966022],[83.004061,47.033512],[83.02008,47.141464],[83.029434,47.185957],[83.090308,47.209367],[83.193093,47.186552],[83.443517,47.108649],[83.6341,47.043201],[83.71394,47.021058],[83.83264,46.997855],[84.01604,46.970518],[84.122028,46.978631],[84.215149,46.994703],[84.338863,46.99615],[84.532443,46.975789],[84.592284,46.974962],[84.666646,46.972379],[84.719563,46.939332],[84.746021,46.864375],[84.786174,46.830734],[84.858263,46.843188],[85.012207,46.90923],[85.110599,46.961217],[85.233485,47.036354],[85.355338,47.046741],[85.484788,47.06351],[85.529746,47.100795],[85.577237,47.188489],[85.656612,47.254635],[85.669841,47.338403],[85.641832,47.397417],[85.586642,47.493665],[85.588296,47.558493],[85.56163,47.746466],[85.525974,47.915629],[85.562251,48.051873],[85.626381,48.203983],[85.651547,48.250544],[85.692217,48.311832],[85.749371,48.385083],[85.829831,48.408053],[86.056122,48.423711],[86.265567,48.454562],[86.372537,48.48624],[86.48328,48.50536],[86.549425,48.528614],[86.663734,48.635533],[86.717942,48.697183],[86.757837,48.860739],[86.728588,48.939339],[86.753134,49.008818],[86.808324,49.049694],[86.885994,49.09057],[86.937981,49.097572],[87.048516,49.109923],[87.229952,49.10584],[87.322815,49.08579],[87.416711,49.076591],[87.476191,49.091448],[87.515878,49.122428],[87.576598,49.13235],[87.668324,49.147233],[87.762478,49.165811],[87.81431,49.162322],[87.825213,49.11633],[87.816325,49.08026],[87.83467,49.031917],[87.872187,49.000136],[87.859836,48.965539],[87.806868,48.945488],[87.754727,48.918565],[87.743203,48.881616],[87.809142,48.835727],[87.831828,48.791647],[87.942157,48.765292],[88.02794,48.735604],[88.060083,48.707156],[88.050161,48.67504],[88.010628,48.640416],[87.972233,48.603339],[87.967375,48.581066],[87.979726,48.555124],[88.062563,48.537839],[88.158165,48.509081],[88.30999,48.47208],[88.413963,48.403428],[88.517109,48.384489],[88.566822,48.317413],[88.57602,48.220184],[88.681853,48.170548],[88.83833,48.101715],[88.917808,48.089003],[88.971138,48.049936],[89.047671,48.002548],[89.115677,47.987717],[89.196344,47.980896],[89.329876,48.024873],[89.479221,48.029058],[89.560973,48.003944],[89.638488,47.909066],[89.693213,47.879145],[89.725614,47.85248],[89.778169,47.827003],[89.831344,47.823309],[89.910461,47.844315],[89.958675,47.886328],[90.02787,47.877698],[90.053863,47.85049],[90.066575,47.803542],[90.103214,47.745406],[90.19096,47.702102],[90.31333,47.676186],[90.330642,47.655154],[90.347488,47.596992],[90.380665,47.556632],[90.42521,47.504077],[90.467481,47.408166],[90.476473,47.328817],[90.496213,47.285176],[90.552954,47.213992],[90.643387,47.100304],[90.715528,47.00385],[90.799037,46.985143],[90.869937,46.954499],[90.910555,46.883237],[90.985692,46.749033],[90.997888,46.66108],[91.004244,46.595735],[91.028894,46.566073],[91.033906,46.528995],[90.971429,46.38797],[90.918254,46.324253],[90.911536,46.270639],[90.947555,46.177311],[90.996803,46.10499],[91.001712,46.035769],[90.959751,45.985075],[90.887094,45.921642],[90.85247,45.885417],[90.795936,45.853532],[90.709637,45.730801],[90.670724,45.59515],[90.661836,45.525232],[90.694444,45.474641],[90.749583,45.418933],[90.763173,45.370668],[90.853245,45.262871],[90.877275,45.196105],[90.913965,45.193934],[90.953601,45.215897],[91.049978,45.217447],[91.137724,45.193934],[91.221802,45.144506],[91.312081,45.118125],[91.441065,45.124739],[91.510053,45.098229],[91.584364,45.076525],[91.737791,45.068955],[91.852823,45.069342],[92.029763,45.068516],[92.172596,45.035236],[92.423796,45.008933],[92.578928,45.011],[92.787856,45.035727],[92.916065,45.020172],[93.294388,44.983172],[93.516235,44.944466],[93.656434,44.900981],[93.755239,44.831941],[93.868152,44.724195],[93.957914,44.674948],[94.199346,44.645182],[94.364711,44.519505],[94.494315,44.472531],[94.711976,44.350833],[94.865972,44.303343],[95.049837,44.259418],[95.350284,44.278073],[95.36682,44.261536],[95.343669,44.195391],[95.325531,44.104879],[95.325531,44.039354],[95.356433,44.005971],[95.47131,43.986178],[95.52557,43.953958],[95.56717,43.892257],[95.591199,43.853628],[95.687317,43.664053],[95.842037,43.383709],[95.859607,43.275963],[95.912523,43.20651],[96.080317,43.096129],[96.168425,43.014481],[96.299476,42.928698],[96.342471,42.849323],[96.352393,42.746797],[96.385466,42.720338],[96.625296,42.743851],[96.832984,42.760233],[97.205674,42.789792],[97.718925,42.736281],[98.248246,42.684501],[98.71628,42.638741],[98.94686,42.61621],[99.467862,42.568203],[99.757456,42.629465],[99.983799,42.677344],[100.086325,42.670729],[100.519064,42.616805],[100.772588,42.587788],[101.091949,42.551305],[101.313744,42.537869],[101.495283,42.538747],[101.579102,42.523555],[101.659976,42.500042],[101.713823,42.465806],[101.879911,42.292328],[101.972929,42.215873],[102.15669,42.158099],[102.575217,42.092108],[102.806883,42.052007],[103.07281,42.005963],[103.247889,41.936562],[103.449738,41.855843],[103.711117,41.751302],[103.997301,41.796984],[104.305189,41.846154],[104.498252,41.876979],[104.498252,41.658698],[104.773688,41.64118],[104.860297,41.643737],[104.982047,41.595523],[105.05057,41.615936],[105.115476,41.663297],[105.197124,41.738047],[105.314327,41.770887],[105.517053,41.854732],[105.566404,41.875119],[105.867574,41.994],[106.317211,42.140581],[106.518801,42.211584],[106.579056,42.227345],[106.693209,42.26357],[106.770052,42.288737],[106.906064,42.308865],[107.090756,42.321551],[107.292345,42.34925],[107.7487,42.400978],[107.805957,42.405836],[108.062324,42.427178],[108.171206,42.447332],[108.333936,42.43679],[108.546481,42.429323],[108.687351,42.416119],[108.874523,42.426455],[109.131665,42.440562],[109.339817,42.438366],[109.44317,42.455962],[109.595564,42.510532],[109.698038,42.553785],[109.858752,42.606263],[110.058016,42.6606],[110.196819,42.710003],[110.288907,42.74274],[110.400424,42.773669],[110.429622,42.813589],[110.461713,42.844155],[110.520934,42.895263],[110.627491,42.990529],[110.708571,43.073883],[110.748517,43.110806],[110.839571,43.194108],[110.913313,43.256869],[111.007209,43.341386],[111.086481,43.368774],[111.186836,43.391977],[111.45111,43.474918],[111.50351,43.492798],[111.547331,43.496312],[111.640762,43.563181],[111.719724,43.621162],[111.771142,43.664596],[111.878164,43.680177],[111.933147,43.711441],[111.942863,43.75242],[111.931752,43.814949],[111.880334,43.878924],[111.836926,43.934683],[111.683757,44.041136],[111.602625,44.107127],[111.519736,44.191877],[111.486198,44.271613],[111.429561,44.32236],[111.402224,44.367266],[111.410905,44.419201],[111.489454,44.511573],[111.514775,44.569812],[111.547435,44.672907],[111.62128,44.827135],[111.681483,44.899172],[111.75104,44.969555],[111.898007,45.064046],[112.032676,45.081616],[112.11293,45.062934],[112.292092,45.063038],[112.411309,45.05818],[112.499314,45.010922],[112.596776,44.917672],[112.706744,44.883462],[113.049462,44.81034],[113.196119,44.794837],[113.300919,44.791633],[113.455638,44.767449],[113.507935,44.762333],[113.587,44.745719],[113.652629,44.76347],[113.752158,44.825921],[113.87706,44.896175],[113.930907,44.912298],[114.030332,44.94258],[114.080303,44.971157],[114.16743,45.04986],[114.281066,45.11089],[114.419094,45.20259],[114.487255,45.271733],[114.502241,45.316304],[114.517227,45.364621],[114.560171,45.389995],[114.6443,45.413275],[114.738764,45.419605],[114.919218,45.37829],[115.162614,45.390253],[115.217495,45.396196],[115.439497,45.419967],[115.539439,45.439501],[115.681032,45.458259],[115.789139,45.534792],[115.934144,45.626156],[116.039563,45.676928],[116.109843,45.686695],[116.197642,45.739379],[116.240585,45.795991],[116.229113,45.845729],[116.21299,45.886889],[116.264563,45.963035],[116.357632,46.096566],[116.44481,46.158785],[116.516692,46.209066],[116.562581,46.28981],[116.619373,46.313091],[116.688878,46.321979],[116.787011,46.376679],[116.859048,46.387944],[116.978783,46.36177],[117.155981,46.355104],[117.269049,46.352261],[117.333438,46.362028],[117.356899,46.391303],[117.356382,46.436649],[117.392142,46.537573],[117.405578,46.570879],[117.438134,46.586252],[117.546862,46.588268],[117.620501,46.551991],[117.67104,46.522096],[117.741268,46.518143],[117.813512,46.537702],[117.910457,46.619325],[118.071274,46.666583],[118.15685,46.678572],[118.308676,46.717045],[118.40438,46.70317],[118.580442,46.691879],[118.648706,46.701646],[118.722914,46.691879],[118.7903,46.747095],[118.84394,46.760221],[118.957163,46.734848],[119.028528,46.692189],[119.16206,46.638678],[119.331869,46.613796],[119.474082,46.626663],[119.620223,46.603952],[119.706626,46.606019],[119.747451,46.62718],[119.867237,46.67219],[119.895866,46.732858],[119.884135,46.791434],[119.897829,46.857812],[119.862689,46.906595],[119.788534,46.978812],[119.759853,47.027001],[119.757269,47.090046],[119.711174,47.149991],[119.600173,47.222441],[119.526947,47.255927],[119.376672,47.380881],[119.325926,47.410181],[119.308563,47.430723],[119.290838,47.472632],[119.235234,47.492554],[119.162422,47.525213],[119.122941,47.558493],[119.097258,47.616267],[119.081962,47.654146],[119.017573,47.685358],[118.953132,47.702928],[118.88032,47.725098],[118.759914,47.757602],[118.690513,47.822249],[118.567781,47.943275],[118.49838,47.983996],[118.239688,47.999499],[118.147032,48.028903],[118.04187,48.01893],[117.979187,47.999629],[117.840487,47.999861],[117.768398,47.987872],[117.676673,47.908291],[117.555337,47.804679],[117.455136,47.741376],[117.383977,47.675747],[117.350801,47.652182],[117.285896,47.666341],[117.197064,47.74029],[117.069733,47.806385],[116.951652,47.836564],[116.901165,47.853074],[116.760553,47.869792],[116.651929,47.864521],[116.513436,47.839561],[116.378251,47.844057],[116.317169,47.859844],[116.23118,47.858216],[116.074858,47.789538],[115.993881,47.711326],[115.898228,47.686935],[115.81167,47.738223],[115.711676,47.798943],[115.616385,47.874804],[115.557629,47.945032],[115.525073,48.130861],[115.639484,48.186206],[115.785522,48.248218],[115.796581,48.346352],[115.791672,48.455699],[115.820559,48.577242],[115.953781,48.68938],[116.025507,48.782294],[116.034396,48.840017],[116.098268,48.936135],[116.159659,49.037472],[116.243375,49.170384],[116.402125,49.406184],[116.589711,49.684797],[116.683297,49.823781],[116.888969,49.737791],[117.021622,49.692988],[117.24564,49.624852],[117.47715,49.609427],[117.69848,49.53584],[117.812582,49.513516],[117.873457,49.51349],[118.186616,49.692781],[118.451509,49.844503],[118.755987,49.962842],[118.979539,49.978862],[119.147487,50.013382],[119.259832,50.066402],[119.326081,50.154923],[119.346235,50.278947],[119.301587,50.353929],[119.191929,50.379845],[119.163714,50.406019],[119.216734,50.432529],[119.255801,50.48418],[119.280709,50.560997],[119.344065,50.633912],[119.44566,50.702849],[119.501781,50.779226],[119.512323,50.863123],[119.573405,50.946761],[119.684922,51.030115],[119.746004,51.107733],[119.756649,51.179486],[119.813183,51.267052],[119.966972,51.422107],[120.066915,51.600675],[120.236982,51.722993],[120.510505,51.848515],[120.681502,51.973055],[120.749819,52.09651],[120.744496,52.20547],[120.665431,52.299883],[120.650341,52.395924],[120.699227,52.493592],[120.656129,52.566663],[120.52115,52.615032],[120.360023,52.627021],[120.172748,52.602474],[120.067535,52.632912],[120.04428,52.718229],[120.09451,52.787218],[120.21812,52.839876],[120.421311,52.968085],[120.704085,53.171845],[120.985463,53.284577],[121.405437,53.317056],[121.743918,53.383615],[122.088807,53.451466],[122.337784,53.485004],[122.380158,53.462525],[122.515861,53.456996],[122.744787,53.46852],[122.957591,53.497717],[123.154065,53.544587],[123.309611,53.555594],[123.424022,53.530764],[123.489496,53.529446]]]]},"type":"Feature","properties":{"ISO_A2":"CN","NAME":"China"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-3.086731,5.128318],[-3.114016,5.088656],[-3.246411,5.114081],[-3.214889,5.147231],[-3.086731,5.128318]]],[[[-6.230648,10.597493],[-6.239717,10.558116],[-6.21778,10.476286],[-6.190676,10.40027],[-6.19264,10.369445],[-6.21499,10.322368],[-6.241293,10.279218],[-6.238373,10.261648],[-6.196851,10.232141],[-6.117218,10.201884],[-6.034562,10.194804],[-5.988699,10.239117],[-5.940691,10.275084],[-5.907567,10.307226],[-5.896198,10.354717],[-5.84385,10.389547],[-5.694298,10.433214],[-5.556606,10.439932],[-5.523559,10.426005],[-5.461289,10.359549],[-5.382276,10.313996],[-5.262283,10.31968],[-5.175312,10.292628],[-5.099864,10.241623],[-5.049325,10.128323],[-4.994031,10.046493],[-4.969898,9.930066],[-4.88272,9.868933],[-4.814481,9.841157],[-4.721748,9.756562],[-4.625836,9.713568],[-4.526617,9.723489],[-4.480264,9.679229],[-4.406211,9.648016],[-4.332211,9.645716],[-4.267176,9.743256],[-4.18116,9.781755],[-3.963473,9.859631],[-3.877665,9.8949],[-3.790642,9.917199],[-3.581145,9.924304],[-3.386274,9.900275],[-3.28969,9.882239],[-3.223544,9.895469],[-3.160706,9.849167],[-3.095826,9.752118],[-3.042625,9.72088],[-2.988262,9.687342],[-2.948135,9.610732],[-2.900877,9.534612],[-2.875142,9.500945],[-2.816748,9.425833],[-2.766621,9.424722],[-2.717193,9.457149],[-2.695851,9.481334],[-2.68611,9.431724],[-2.705747,9.351393],[-2.701793,9.301681],[-2.674224,9.282612],[-2.68921,9.218611],[-2.746674,9.109625],[-2.746933,9.045133],[-2.689882,9.025083],[-2.649213,8.956611],[-2.624925,8.839616],[-2.600404,8.800445],[-2.598001,8.776364],[-2.556867,8.493022],[-2.505862,8.20875],[-2.538263,8.171646],[-2.582757,8.160794],[-2.611696,8.147565],[-2.619964,8.121107],[-2.600947,8.082246],[-2.613349,8.046693],[-2.66885,8.022198],[-2.789773,7.931919],[-2.798144,7.896004],[-2.830132,7.819058],[-2.8569,7.772084],[-2.896355,7.685009],[-2.95909,7.454532],[-2.982319,7.26364],[-2.985781,7.204858],[-3.010172,7.163749],[-3.037716,7.104605],[-3.168897,6.940972],[-3.235792,6.807233],[-3.227162,6.749097],[-3.224113,6.690755],[-3.243905,6.64869],[-3.240288,6.535622],[-3.224035,6.441054],[-3.2006,6.348269],[-3.105593,6.085624],[-3.056165,5.926279],[-3.025314,5.79776],[-2.998287,5.711305],[-2.97281,5.676295],[-2.962268,5.643015],[-2.821192,5.619192],[-2.793648,5.600072],[-2.754994,5.432537],[-2.761919,5.356934],[-2.789617,5.328202],[-2.788687,5.264123],[-2.795199,5.184542],[-2.815662,5.153019],[-2.894702,5.14904],[-2.948367,5.118861],[-3.019138,5.130824],[-3.025856,5.150539],[-3.063968,5.157722],[-3.16869,5.203016],[-3.15143,5.348304],[-3.199954,5.35448],[-3.237626,5.335385],[-3.311989,5.160796],[-3.347542,5.130643],[-3.870585,5.220715],[-3.984196,5.29314],[-4.120156,5.309728],[-4.357274,5.301434],[-4.552843,5.279885],[-4.608912,5.235908],[-4.11517,5.261643],[-4.062072,5.256656],[-4.037216,5.230146],[-4.661545,5.172553],[-4.899695,5.138343],[-4.97013,5.147748],[-5.023693,5.20361],[-5.282385,5.210251],[-5.335431,5.192009],[-5.367522,5.150797],[-5.265771,5.159737],[-5.104903,5.162166],[-5.061804,5.130669],[-5.564745,5.089457],[-5.913742,5.010961],[-6.061717,4.952825],[-6.548432,4.761777],[-6.845158,4.671498],[-6.922905,4.638322],[-7.057962,4.544736],[-7.231388,4.48598],[-7.426104,4.376012],[-7.54496,4.351311],[-7.571599,4.386425],[-7.574648,4.572305],[-7.591185,4.821541],[-7.585035,4.916754],[-7.569326,5.006465],[-7.568912,5.080672],[-7.509794,5.108474],[-7.494137,5.139816],[-7.485196,5.236425],[-7.429825,5.324507],[-7.428921,5.477883],[-7.412436,5.509897],[-7.39993,5.550592],[-7.423702,5.651335],[-7.454397,5.841298],[-7.469435,5.853726],[-7.482794,5.845535],[-7.513929,5.842021],[-7.636143,5.907702],[-7.730375,5.919045],[-7.796547,5.975088],[-7.80094,6.038934],[-7.833237,6.076374],[-7.85551,6.150168],[-7.888634,6.234865],[-7.9816,6.286154],[-8.068959,6.298401],[-8.130997,6.287549],[-8.203861,6.290727],[-8.287111,6.319046],[-8.34486,6.351292],[-8.399301,6.413175],[-8.449892,6.4625],[-8.490355,6.456376],[-8.539551,6.468081],[-8.587868,6.490509],[-8.603578,6.50782],[-8.401213,6.705121],[-8.332587,6.801549],[-8.325119,6.860408],[-8.324499,6.920043],[-8.302356,6.980944],[-8.29662,7.074039],[-8.408758,7.411796],[-8.437154,7.516389],[-8.467255,7.547033],[-8.486427,7.558505],[-8.429971,7.601862],[-8.351759,7.590571],[-8.231869,7.556748],[-8.205954,7.590235],[-8.115442,7.760741],[-8.117819,7.824019],[-8.126837,7.867737],[-8.073843,7.984423],[-8.031752,8.029717],[-8.009867,8.078499],[-8.01674,8.14493],[-8.048573,8.169734],[-8.090534,8.165161],[-8.140609,8.181465],[-8.217141,8.219679],[-8.256106,8.253708],[-8.244142,8.407937],[-8.236959,8.45566],[-8.209933,8.483255],[-8.16779,8.490671],[-8.049141,8.495296],[-7.953127,8.477726],[-7.868765,8.467545],[-7.823574,8.467649],[-7.7874,8.421967],[-7.738954,8.375251],[-7.696114,8.375613],[-7.681205,8.41034],[-7.690972,8.562475],[-7.719575,8.643013],[-7.784041,8.720631],[-7.950956,8.786802],[-7.954961,8.879432],[-7.938166,8.979762],[-7.902096,9.017073],[-7.777995,9.080841],[-7.799803,9.115051],[-7.839387,9.151612],[-7.91809,9.188509],[-7.900029,9.308683],[-7.896205,9.41586],[-7.962687,9.403871],[-8.031003,9.397644],[-8.088674,9.430665],[-8.136966,9.4957],[-8.146035,9.67481],[-8.145854,9.881723],[-8.155181,9.97319],[-8.13663,10.022076],[-8.077822,10.067112],[-8.013536,10.125274],[-7.990644,10.162507],[-7.96093,10.163463],[-7.884061,10.185761],[-7.81422,10.236585],[-7.749082,10.342289],[-7.661155,10.427452],[-7.562117,10.421225],[-7.532842,10.436831],[-7.497961,10.439777],[-7.456568,10.383914],[-7.414787,10.341307],[-7.385048,10.340119],[-7.363163,10.259348],[-7.182321,10.225681],[-7.10491,10.203538],[-7.039746,10.144756],[-7.017111,10.143257],[-6.989464,10.155659],[-6.968174,10.176227],[-6.963833,10.198706],[-6.991738,10.251881],[-6.979491,10.299578],[-6.950345,10.342315],[-6.903837,10.345054],[-6.83366,10.356991],[-6.7532,10.357146],[-6.693281,10.349446],[-6.669329,10.392183],[-6.691963,10.51202],[-6.686124,10.578011],[-6.676357,10.63377],[-6.654136,10.656456],[-6.564607,10.586434],[-6.482596,10.561216],[-6.423918,10.559149],[-6.407536,10.572352],[-6.432599,10.648756],[-6.425855,10.671804],[-6.404151,10.68511],[-6.365652,10.692836],[-6.261137,10.724074],[-6.250233,10.717925],[-6.230648,10.597493]]]]},"type":"Feature","properties":{"ISO_A2":"CI","NAME":"Ivory Coast"}},{"geometry":{"type":"Polygon","coordinates":[[[15.480068,7.523779],[15.379144,7.358156],[15.245922,7.263588],[15.2067,7.20615],[15.185874,7.134914],[15.157142,7.063548],[15.086346,6.909914],[15.034566,6.784418],[14.982734,6.745299],[14.861915,6.555724],[14.78037,6.36571],[14.764091,6.316359],[14.739287,6.279798],[14.699496,6.250265],[14.559401,6.191199],[14.512065,6.161898],[14.475013,6.12681],[14.4407,6.086709],[14.43114,6.038701],[14.463903,5.970695],[14.503125,5.9169],[14.542503,5.913593],[14.577281,5.916022],[14.59883,5.884008],[14.616917,5.86512],[14.616917,5.495505],[14.583637,5.439668],[14.584361,5.41476],[14.568031,5.351095],[14.563018,5.279936],[14.573509,5.251721],[14.601724,5.228803],[14.640636,5.179064],[14.661669,5.065531],[14.709004,4.665555],[14.731225,4.602407],[14.770396,4.55812],[14.893541,4.471872],[15.022784,4.358546],[15.063608,4.284855],[15.087483,4.163984],[15.136937,4.069132],[15.135852,4.036912],[15.115439,4.024483],[15.067329,4.022933],[15.034876,4.016344],[15.062058,3.947201],[15.12872,3.826899],[15.239825,3.702152],[15.360127,3.567121],[15.458364,3.456844],[15.580889,3.329306],[15.676542,3.229674],[15.774986,3.1272],[15.849297,3.103067],[15.904849,3.095832],[15.928723,3.075782],[15.957972,3.028704],[16.00815,2.97664],[16.063495,2.908608],[16.082461,2.839104],[16.05931,2.773009],[16.082151,2.678183],[16.083494,2.670018],[16.101891,2.632682],[16.095483,2.599196],[16.106748,2.473467],[16.136101,2.363758],[16.183436,2.270068],[16.182609,2.262446],[16.176615,2.204775],[16.11574,2.167827],[16.080032,2.106797],[16.069593,2.021686],[16.087938,1.918074],[16.134964,1.795963],[16.136101,1.72421],[16.119564,1.714108],[16.090315,1.691267],[16.059413,1.676229],[15.97518,1.760022],[15.881646,1.816582],[15.741603,1.915],[15.600319,1.950372],[15.417488,1.956754],[15.338785,1.944714],[15.282458,1.981714],[15.203496,2.02445],[15.160036,2.035587],[15.099575,2.002359],[15.05782,2.00086],[15.006402,2.013753],[14.902429,2.012281],[14.892817,2.069331],[14.875041,2.080442],[14.762903,2.075171],[14.728331,2.122403],[14.713242,2.117132],[14.66911,2.132067],[14.578935,2.199143],[14.484109,2.154727],[14.287015,2.160334],[14.034369,2.158912],[13.772731,2.157414],[13.533469,2.159507],[13.293587,2.161574],[13.269919,2.224206],[13.22031,2.256452],[13.130806,2.259423],[12.867515,2.246788],[12.665718,2.256788],[12.601329,2.26503],[12.529758,2.28136],[12.361292,2.295984],[12.153398,2.284357],[12.106114,2.287509],[11.939768,2.285158],[11.559016,2.302185],[11.348383,2.299705],[11.353344,2.261413],[11.339959,2.233817],[11.328746,2.167413],[11.096615,2.167491],[10.790949,2.167568],[10.502284,2.167646],[10.307051,2.167723],[9.979887,2.167775],[9.870075,2.213302],[9.83695,2.242396],[9.830336,2.275469],[9.826202,2.297793],[9.800777,2.304433],[9.821757,2.539277],[9.867543,2.734975],[9.885423,2.916566],[9.948468,3.079037],[9.915085,3.239648],[9.876121,3.309772],[9.672102,3.537614],[9.76574,3.62381],[9.642337,3.61177],[9.615879,3.696467],[9.556141,3.798063],[9.592727,3.814315],[9.628178,3.869997],[9.739695,3.852943],[9.736078,3.880125],[9.63996,3.965314],[9.649262,4.008334],[9.688846,4.056394],[9.669519,4.076651],[9.600376,4.026886],[9.55056,4.028437],[9.511802,4.060631],[9.48369,4.066135],[9.500743,4.000738],[9.461986,3.942525],[9.425296,3.922293],[9.362354,3.92573],[9.310988,3.94038],[9.297345,3.972936],[9.249079,3.997844],[9.113894,4.041071],[9.000102,4.091585],[8.977054,4.23044],[8.931993,4.290229],[8.913596,4.357822],[8.902847,4.43513],[8.918247,4.553779],[8.889411,4.572744],[8.856442,4.579256],[8.807142,4.573416],[8.761874,4.580031],[8.707924,4.645712],[8.660381,4.670981],[8.68963,4.550239],[8.656247,4.516365],[8.574392,4.52621],[8.539562,4.571866],[8.532844,4.605869],[8.570464,4.752113],[8.555892,4.755214],[8.58514,4.832832],[8.640538,4.926986],[8.715572,5.046876],[8.800941,5.197435],[8.859129,5.463749],[8.898816,5.629683],[8.935042,5.780991],[8.997157,5.917727],[9.06015,6.009065],[9.238744,6.186109],[9.373361,6.31964],[9.442142,6.373384],[9.490201,6.418627],[9.574021,6.470406],[9.659907,6.531979],[9.725639,6.649982],[9.779848,6.760182],[9.820724,6.783927],[9.874261,6.803254],[10.038902,6.921412],[10.143598,6.996421],[10.167731,6.959162],[10.18556,6.912808],[10.205507,6.891595],[10.293098,6.876738],[10.413143,6.87772],[10.482337,6.891259],[10.519079,6.930456],[10.55639,7.037452],[10.578094,7.057709],[10.606206,7.063083],[10.737567,6.988308],[10.846501,6.881802],[10.954195,6.776538],[11.008662,6.739124],[11.032536,6.697886],[11.079665,6.505521],[11.106485,6.45772],[11.153356,6.437928],[11.237278,6.450537],[11.324611,6.484669],[11.401764,6.533917],[11.477574,6.597401],[11.529147,6.655046],[11.551678,6.697266],[11.562995,6.854621],[11.580048,6.888856],[11.657511,6.951566],[11.787012,7.05621],[11.861426,7.116413],[11.85476,7.137963],[11.808613,7.201938],[11.767375,7.272244],[11.809181,7.345056],[11.852435,7.400737],[12.016042,7.589744],[12.016611,7.651988],[12.025189,7.727772],[12.155982,7.942487],[12.231119,8.227379],[12.233393,8.282337],[12.311321,8.419745],[12.403512,8.595548],[12.582726,8.624125],[12.651559,8.667766],[12.731141,8.745642],[12.782249,8.81786],[12.806536,8.886616],[12.824468,9.01945],[12.855991,9.170733],[12.87568,9.303541],[12.929475,9.426247],[13.019392,9.48831],[13.175455,9.539625],[13.198761,9.563758],[13.221188,9.645148],[13.23881,9.814027],[13.243719,9.915933],[13.249765,9.960064],[13.269867,10.036184],[13.41451,10.171447],[13.478485,10.383242],[13.535329,10.605064],[13.699867,10.873135],[13.892103,11.140096],[13.9814,11.211848],[14.056744,11.244999],[14.143251,11.248539],[14.202369,11.26815],[14.409488,11.401191],[14.496097,11.446123],[14.559763,11.49227],[14.575421,11.532423],[14.581674,11.591179],[14.56183,11.728716],[14.597383,11.829821],[14.618209,11.986607],[14.627149,12.108693],[14.619707,12.15099],[14.587048,12.209436],[14.58095,12.222045],[14.518938,12.298268],[14.415379,12.344131],[14.272855,12.356507],[14.197459,12.383792],[14.184902,12.447199],[14.177616,12.484096],[14.170329,12.524068],[14.160097,12.61277],[14.063927,13.078504],[14.244847,13.077367],[14.461681,13.021789],[14.516251,12.979751],[14.544777,12.820226],[14.623273,12.729921],[14.761249,12.65561],[14.847084,12.50208],[14.880673,12.269381],[14.956741,12.130345],[14.973846,12.108357],[15.059887,11.907129],[15.081281,11.845505],[15.087689,11.724349],[15.078026,11.642597],[15.122002,11.54126],[15.055443,11.368557],[15.035754,11.262517],[15.029915,11.113663],[15.068672,10.851069],[15.132234,10.648498],[15.200964,10.484528],[15.27605,10.357378],[15.399918,10.216896],[15.5319,10.08848],[15.654838,10.007813],[15.540892,9.960323],[15.320026,9.954276],[15.193161,9.98151],[15.132751,9.982854],[15.071566,9.965955],[14.835818,9.941719],[14.597952,9.953088],[14.377242,9.98505],[14.243296,9.979753],[14.139788,9.901799],[14.055969,9.784364],[13.977266,9.691553],[14.004965,9.588717],[14.064186,9.531718],[14.177926,9.40648],[14.28009,9.285067],[14.332283,9.203521],[14.536095,9.025238],[14.732776,8.865661],[14.771274,8.839151],[14.82631,8.810315],[14.860778,8.798636],[14.968007,8.707272],[15.116215,8.557307],[15.252382,8.322386],[15.349069,8.083848],[15.443016,7.851872],[15.484461,7.812753],[15.54978,7.787897],[15.557841,7.738029],[15.552674,7.664494],[15.532468,7.60442],[15.480068,7.523779]]]},"type":"Feature","properties":{"ISO_A2":"CM","NAME":"Cameroon"}},{"geometry":{"type":"Polygon","coordinates":[[[27.40332,5.109197],[27.439235,5.039228],[27.491015,4.967552],[27.664183,4.846009],[27.71927,4.778339],[27.761438,4.703227],[27.788103,4.644678],[27.841639,4.597756],[27.916622,4.567939],[27.980701,4.532101],[28.01982,4.479391],[28.078628,4.424795],[28.192109,4.350226],[28.247299,4.348546],[28.311016,4.33803],[28.36724,4.318677],[28.427547,4.324155],[28.524802,4.37286],[28.639524,4.454509],[28.727063,4.504997],[28.93935,4.487065],[29.057379,4.44593],[29.15143,4.388208],[29.224914,4.391877],[29.384853,4.498408],[29.469654,4.611812],[29.552078,4.636048],[29.676876,4.586904],[29.779867,4.480967],[29.870249,4.327126],[29.934018,4.268525],[30.021351,4.177652],[30.194881,3.981928],[30.420707,3.883898],[30.508298,3.835709],[30.536927,3.787185],[30.553515,3.722926],[30.559355,3.652801],[30.586692,3.624198],[30.64767,3.634145],[30.699915,3.644093],[30.757172,3.624198],[30.796963,3.573167],[30.81691,3.533351],[30.838562,3.490717],[30.895303,3.463665],[30.906465,3.40894],[30.867605,3.342148],[30.827814,3.282591],[30.779238,3.163373],[30.753968,3.041804],[30.786473,3.001342],[30.821406,2.967571],[30.839958,2.933516],[30.850758,2.893674],[30.846624,2.84701],[30.769523,2.677976],[30.729939,2.530259],[30.728595,2.45538],[30.830088,2.400422],[30.961966,2.40329],[31.003617,2.369365],[31.045372,2.315544],[31.082165,2.288104],[31.137562,2.288879],[31.17632,2.270068],[31.191357,2.232267],[31.236368,2.191339],[31.273988,2.146278],[31.256108,2.088503],[31.252697,2.044578],[31.158801,1.922002],[30.942535,1.682792],[30.478171,1.239046],[30.477861,1.238839],[30.321075,1.185303],[30.240149,1.102775],[30.182892,0.973481],[30.047345,0.863513],[29.942907,0.819227],[29.931693,0.792872],[29.923786,0.673913],[29.934483,0.49904],[29.885442,0.418941],[29.814646,0.263602],[29.777852,0.166347],[29.749688,0.147226],[29.717701,0.098341],[29.697805,-0.060203],[29.684318,-0.113584],[29.633158,-0.441678],[29.647834,-0.535212],[29.60825,-0.691275],[29.60639,-0.783104],[29.59006,-0.887129],[29.561948,-0.977356],[29.564015,-1.12143],[29.579983,-1.356764],[29.576934,-1.387874],[29.537763,-1.409733],[29.468,-1.468075],[29.401958,-1.507401],[29.351625,-1.51753],[29.268116,-1.621606],[29.196595,-1.719946],[29.143265,-1.816065],[29.129364,-1.860248],[29.14063,-1.98453],[29.14802,-2.131859],[29.131535,-2.195163],[29.106472,-2.233248],[28.98958,-2.312778],[28.912737,-2.370294],[28.876408,-2.400318],[28.85765,-2.446672],[28.891446,-2.555554],[28.893978,-2.635084],[28.92178,-2.682058],[29.014384,-2.720195],[29.014126,-2.758281],[29.016606,-2.799622],[29.064717,-2.850782],[29.153187,-2.955271],[29.224397,-3.053508],[29.226051,-3.138723],[29.212305,-3.281298],[29.210083,-3.363309],[29.217163,-3.475705],[29.216749,-3.684943],[29.21184,-3.833823],[29.223261,-3.910872],[29.331368,-4.095409],[29.379168,-4.299737],[29.403198,-4.449289],[29.40418,-4.496676],[29.367541,-4.66881],[29.325683,-4.835622],[29.323409,-4.898874],[29.342736,-4.983106],[29.420096,-5.17617],[29.476475,-5.316626],[29.503657,-5.400962],[29.542363,-5.499767],[29.594194,-5.650766],[29.60701,-5.722699],[29.596364,-5.775926],[29.490789,-5.965424],[29.480092,-6.025007],[29.506189,-6.172078],[29.540761,-6.313826],[29.590628,-6.39439],[29.709639,-6.616908],[29.798109,-6.691891],[29.96182,-6.80315],[30.106307,-6.915081],[30.161808,-6.973062],[30.212709,-7.037916],[30.31322,-7.203694],[30.374508,-7.338622],[30.406754,-7.46063],[30.485612,-7.627183],[30.55889,-7.781902],[30.653819,-7.970934],[30.720844,-8.104415],[30.751126,-8.193608],[30.577907,-8.220015],[30.327483,-8.258204],[30.051375,-8.300268],[29.766225,-8.34378],[29.483761,-8.386878],[29.215612,-8.427806],[28.972216,-8.464961],[28.898112,-8.485425],[28.934493,-8.590276],[28.917801,-8.700606],[28.869535,-8.785872],[28.793519,-8.890982],[28.758741,-8.932633],[28.681278,-9.014695],[28.616476,-9.072262],[28.484288,-9.169414],[28.400675,-9.22476],[28.400158,-9.275041],[28.540512,-9.510065],[28.604229,-9.678789],[28.630118,-9.831286],[28.628878,-9.918722],[28.623504,-10.098866],[28.617148,-10.312962],[28.607381,-10.397401],[28.645518,-10.550208],[28.638903,-10.669271],[28.544232,-10.802389],[28.517981,-10.933182],[28.470283,-11.109606],[28.404189,-11.354397],[28.357267,-11.482968],[28.383363,-11.566736],[28.40698,-11.622804],[28.431784,-11.698355],[28.482531,-11.812095],[28.541545,-11.879171],[28.574618,-11.90811],[28.769438,-12.051305],[28.850053,-12.1205],[28.973405,-12.257856],[29.064356,-12.348858],[29.191221,-12.370201],[29.343718,-12.404772],[29.427537,-12.431282],[29.48557,-12.418415],[29.504897,-12.386169],[29.502262,-12.317594],[29.49203,-12.2669],[29.508153,-12.228194],[29.559726,-12.202407],[29.691966,-12.198325],[29.749637,-12.164012],[29.795164,-12.155485],[29.795319,-12.306174],[29.795474,-12.450609],[29.795629,-12.625896],[29.795835,-12.82702],[29.796042,-12.992127],[29.796249,-13.167516],[29.796456,-13.369675],[29.795319,-13.392722],[29.775165,-13.438094],[29.722662,-13.453804],[29.651762,-13.414323],[29.647627,-13.372982],[29.630264,-13.298568],[29.597191,-13.260534],[29.554196,-13.248958],[29.481436,-13.267975],[29.381804,-13.322856],[29.253698,-13.370811],[29.201866,-13.398355],[29.111639,-13.395151],[29.014229,-13.368848],[28.942296,-13.307146],[28.921729,-13.214594],[28.858787,-13.119457],[28.773159,-12.981895],[28.730061,-12.925464],[28.672958,-12.861334],[28.615391,-12.854047],[28.550847,-12.836167],[28.511263,-12.742219],[28.474366,-12.623364],[28.451473,-12.577475],[28.412871,-12.518047],[28.35768,-12.481977],[28.237274,-12.434538],[28.068861,-12.368185],[27.857452,-12.284883],[27.75689,-12.280852],[27.644287,-12.266796],[27.573852,-12.227005],[27.533441,-12.195328],[27.487036,-12.079727],[27.42368,-11.944542],[27.238059,-11.783518],[27.196408,-11.605028],[27.159149,-11.579241],[27.09538,-11.593762],[27.046081,-11.615931],[27.02665,-11.663732],[26.976834,-11.824653],[26.949549,-11.89886],[26.930894,-11.919376],[26.890483,-11.943508],[26.824079,-11.965212],[26.729718,-11.975961],[26.596392,-11.972034],[26.429736,-11.947849],[26.339664,-11.929917],[26.096423,-11.903201],[26.025936,-11.890178],[25.926511,-11.855297],[25.854887,-11.820105],[25.618829,-11.744192],[25.511859,-11.753391],[25.459976,-11.699802],[25.413364,-11.673499],[25.349388,-11.623011],[25.320656,-11.553506],[25.282623,-11.404988],[25.291821,-11.32551],[25.319313,-11.236885],[25.288772,-11.212442],[25.245984,-11.212442],[25.184851,-11.242983],[25.07602,-11.260036],[24.876859,-11.299155],[24.806373,-11.321169],[24.728134,-11.337757],[24.668293,-11.35295],[24.518535,-11.438526],[24.466548,-11.447673],[24.377923,-11.417132],[24.335135,-11.371295],[24.377923,-11.319309],[24.396268,-11.255178],[24.365728,-11.129863],[24.319891,-11.071779],[24.187185,-11.030024],[24.136491,-11.025942],[24.115097,-10.955662],[24.078407,-10.89148],[24.002752,-10.879129],[23.966475,-10.871791],[23.9287,-10.89148],[23.907306,-10.943414],[23.901156,-10.983154],[23.833925,-11.013694],[23.696414,-11.007597],[23.559937,-10.978606],[23.463922,-10.969304],[23.400153,-10.976436],[23.156757,-11.074776],[23.076246,-11.08785],[22.814711,-11.080254],[22.666503,-11.059738],[22.561032,-11.055811],[22.486101,-11.086713],[22.392928,-11.159474],[22.314948,-11.198593],[22.278775,-11.194148],[22.256657,-11.163711],[22.226168,-11.122008],[22.21666,-11.012661],[22.177902,-10.892306],[22.203482,-10.829468],[22.28048,-10.783993],[22.307042,-10.691285],[22.283167,-10.551552],[22.281669,-10.453315],[22.302443,-10.396678],[22.274537,-10.259115],[22.197746,-10.040627],[22.089122,-9.862809],[21.948666,-9.725556],[21.856682,-9.594194],[21.81317,-9.468724],[21.829448,-9.168432],[21.871875,-8.903487],[21.905413,-8.693371],[21.895852,-8.341144],[21.800871,-8.111908],[21.780097,-7.865411],[21.833634,-7.601655],[21.841592,-7.420994],[21.806091,-7.328648],[21.781648,-7.314695],[21.751055,-7.305445],[21.510863,-7.29666],[21.190366,-7.28493],[20.9109,-7.281467],[20.607766,-7.277695],[20.558363,-7.244467],[20.535832,-7.182765],[20.536917,-7.121787],[20.598722,-6.935132],[20.590092,-6.919939],[20.482192,-6.915857],[20.190065,-6.946294],[19.997415,-6.976473],[19.875201,-6.986343],[19.66033,-7.037141],[19.527625,-7.144473],[19.483803,-7.279452],[19.487421,-7.390711],[19.479928,-7.472205],[19.419311,-7.557316],[19.371665,-7.655088],[19.369908,-7.706558],[19.340866,-7.966645],[19.142687,-8.001475],[18.944456,-8.001475],[18.898309,-7.998116],[18.653415,-7.936001],[18.562723,-7.935898],[18.484691,-7.968557],[18.33483,-8.000338],[18.191479,-8.023799],[18.047199,-8.100797],[18.008751,-8.107567],[17.913047,-8.067673],[17.778791,-8.071393],[17.643399,-8.09072],[17.579578,-8.09904],[17.536015,-8.075837],[17.41132,-7.881948],[17.245025,-7.623307],[17.155057,-7.461353],[17.12157,-7.41903],[17.063796,-7.363116],[16.984731,-7.257438],[16.95202,-7.157082],[16.965766,-7.062101],[16.919412,-6.933943],[16.813062,-6.772558],[16.742989,-6.618459],[16.709399,-6.471698],[16.700976,-6.346021],[16.717822,-6.241428],[16.697307,-6.164275],[16.639533,-6.11451],[16.608062,-6.051517],[16.585169,-6.025265],[16.53711,-5.965785],[16.431483,-5.900208],[16.315263,-5.865636],[16.060188,-5.864913],[15.726927,-5.863828],[15.425033,-5.86884],[15.089343,-5.874473],[14.749467,-5.880106],[14.657896,-5.888839],[14.398687,-5.892663],[14.190845,-5.876023],[14.113795,-5.86512],[13.978506,-5.857265],[13.764514,-5.855198],[13.649017,-5.861761],[13.371515,-5.861812],[13.346452,-5.863414],[13.30263,-5.881863],[13.184343,-5.856283],[13.068174,-5.864861],[13.003372,-5.836181],[12.860848,-5.854061],[12.791602,-5.877729],[12.680704,-5.960824],[12.514513,-6.004233],[12.452915,-6.000512],[12.411677,-5.986353],[12.315042,-5.895299],[12.240421,-5.807345],[12.213704,-5.758718],[12.255304,-5.746471],[12.385994,-5.727764],[12.484541,-5.718772],[12.503764,-5.695776],[12.518905,-5.424578],[12.522368,-5.148936],[12.487383,-5.112711],[12.453225,-5.090593],[12.451468,-5.071525],[12.502731,-5.036902],[12.573527,-4.996542],[12.596162,-4.978404],[12.674762,-4.905385],[12.829636,-4.73661],[12.94751,-4.695269],[13.057322,-4.651034],[13.072722,-4.634807],[13.087398,-4.601941],[13.136646,-4.604266],[13.152355,-4.620338],[13.176488,-4.655891],[13.219586,-4.705811],[13.297308,-4.765187],[13.375804,-4.829421],[13.414923,-4.837379],[13.478382,-4.804978],[13.551659,-4.756712],[13.659559,-4.72152],[13.685346,-4.688706],[13.699402,-4.618374],[13.707618,-4.543288],[13.717075,-4.454456],[13.739038,-4.442519],[13.778002,-4.433889],[13.84947,-4.458901],[13.882336,-4.484687],[13.940938,-4.484687],[13.978455,-4.461226],[14.046823,-4.417508],[14.133846,-4.400041],[14.227018,-4.35808],[14.31616,-4.30413],[14.358328,-4.299427],[14.402925,-4.369759],[14.442767,-4.419006],[14.449795,-4.449496],[14.409953,-4.508148],[14.365408,-4.585508],[14.402925,-4.681678],[14.411865,-4.775005],[14.410728,-4.831281],[14.440907,-4.854122],[14.461629,-4.864974],[14.493927,-4.851642],[14.557592,-4.855776],[14.63397,-4.885076],[14.707867,-4.881717],[14.779284,-4.84575],[14.912093,-4.705604],[15.106293,-4.461071],[15.267213,-4.307592],[15.394647,-4.24496],[15.480947,-4.171786],[15.526009,-4.087967],[15.600061,-4.030916],[15.754625,-3.985545],[15.872448,-3.934282],[15.990063,-3.766178],[16.146746,-3.464129],[16.190619,-3.19443],[16.217336,-3.030254],[16.201833,-2.464707],[16.19155,-2.279137],[16.215372,-2.1778],[16.273922,-2.108243],[16.433602,-1.960862],[16.540727,-1.840146],[16.622479,-1.698966],[16.780092,-1.376401],[16.84908,-1.27248],[16.879931,-1.22592],[16.974706,-1.13993],[17.107618,-1.064483],[17.27877,-0.999577],[17.542837,-0.774991],[17.75285,-0.549062],[17.724117,-0.277554],[17.773107,-0.0524],[17.887725,0.234146],[17.925242,0.53728],[17.885761,0.856899],[17.902453,1.118072],[18.011748,1.42211],[18.057792,1.534868],[18.07283,1.719379],[18.07221,2.013262],[18.211581,2.414918],[18.34346,2.65542],[18.490944,2.924395],[18.547116,3.087021],[18.622151,3.304036],[18.610317,3.478444],[18.596726,3.67869],[18.633726,3.954281],[18.619877,4.116622],[18.567477,4.25757],[18.594194,4.346221],[18.699924,4.382601],[18.83175,4.523445],[19.068532,4.891407],[19.3234,5.07075],[19.50096,5.127491],[19.686065,5.121393],[19.806574,5.089328],[19.862488,5.031295],[20.002376,4.944711],[20.226342,4.829628],[20.393515,4.686174],[20.486481,4.541532],[20.558105,4.462699],[20.647453,4.435621],[20.792974,4.4473],[20.955755,4.413116],[21.125564,4.332191],[21.229743,4.302218],[21.268397,4.323096],[21.350201,4.311365],[21.537631,4.244806],[21.686976,4.281393],[21.908151,4.253901],[22.422125,4.134942],[22.449669,4.155121],[22.461813,4.159746],[22.505634,4.207676],[22.617204,4.445569],[22.711668,4.591761],[22.755748,4.646693],[22.864579,4.723872],[22.992891,4.743871],[23.115881,4.73692],[23.218821,4.702969],[23.312924,4.66354],[23.417155,4.663127],[23.523608,4.70129],[23.68179,4.77082],[23.848446,4.816347],[23.991694,4.866267],[24.2277,4.953858],[24.319787,4.994166],[24.437093,5.009979],[24.765496,4.930087],[24.978403,4.982952],[25.06522,4.967423],[25.249343,5.024551],[25.283139,5.062689],[25.400135,5.255907],[25.525088,5.312131],[25.713914,5.283709],[25.819954,5.253711],[26.173524,5.171158],[26.632566,5.08522],[26.767545,5.071939],[26.822063,5.062379],[26.870071,5.075659],[27.020604,5.184387],[27.071816,5.199735],[27.114965,5.197848],[27.40332,5.109197]]]},"type":"Feature","properties":{"ISO_A2":"CD","NAME":"Congo (Kinshasa)"}},{"geometry":{"type":"Polygon","coordinates":[[[18.610317,3.478444],[18.622151,3.304036],[18.547116,3.087021],[18.490944,2.924395],[18.34346,2.65542],[18.211581,2.414918],[18.07221,2.013262],[18.07283,1.719379],[18.057792,1.534868],[18.011748,1.42211],[17.902453,1.118072],[17.885761,0.856899],[17.925242,0.53728],[17.887725,0.234146],[17.773107,-0.0524],[17.724117,-0.277554],[17.75285,-0.549062],[17.542837,-0.774991],[17.27877,-0.999577],[17.107618,-1.064483],[16.974706,-1.13993],[16.879931,-1.22592],[16.84908,-1.27248],[16.780092,-1.376401],[16.622479,-1.698966],[16.540727,-1.840146],[16.433602,-1.960862],[16.273922,-2.108243],[16.215372,-2.1778],[16.19155,-2.279137],[16.201833,-2.464707],[16.217336,-3.030254],[16.190619,-3.19443],[16.146746,-3.464129],[15.990063,-3.766178],[15.872448,-3.934282],[15.754625,-3.985545],[15.600061,-4.030916],[15.526009,-4.087967],[15.480947,-4.171786],[15.394647,-4.24496],[15.267213,-4.307592],[15.106293,-4.461071],[14.912093,-4.705604],[14.779284,-4.84575],[14.707867,-4.881717],[14.63397,-4.885076],[14.557592,-4.855776],[14.493927,-4.851642],[14.461629,-4.864974],[14.440907,-4.854122],[14.410728,-4.831281],[14.411865,-4.775005],[14.402925,-4.681678],[14.365408,-4.585508],[14.409953,-4.508148],[14.449795,-4.449496],[14.442767,-4.419006],[14.402925,-4.369759],[14.358328,-4.299427],[14.31616,-4.30413],[14.227018,-4.35808],[14.133846,-4.400041],[14.046823,-4.417508],[13.978455,-4.461226],[13.940938,-4.484687],[13.882336,-4.484687],[13.84947,-4.458901],[13.778002,-4.433889],[13.739038,-4.442519],[13.717075,-4.454456],[13.707618,-4.543288],[13.699402,-4.618374],[13.685346,-4.688706],[13.659559,-4.72152],[13.551659,-4.756712],[13.478382,-4.804978],[13.414923,-4.837379],[13.375804,-4.829421],[13.297308,-4.765187],[13.219586,-4.705811],[13.176488,-4.655891],[13.152355,-4.620338],[13.136646,-4.604266],[13.087398,-4.601941],[13.072722,-4.634807],[13.048072,-4.619201],[12.971384,-4.551763],[12.881054,-4.445155],[12.848136,-4.428928],[12.798217,-4.43053],[12.719462,-4.469753],[12.641689,-4.531144],[12.501491,-4.587523],[12.384598,-4.619098],[12.374056,-4.657752],[12.346668,-4.724104],[12.307911,-4.765549],[12.204351,-4.778623],[12.167092,-4.837689],[12.077537,-4.952101],[12.018316,-5.004294],[12.00271,-4.982073],[11.966743,-4.954374],[11.893259,-4.865698],[11.820705,-4.75542],[11.801275,-4.705191],[11.780811,-4.676562],[11.777504,-4.565871],[11.668053,-4.434303],[11.393858,-4.200312],[11.364402,-4.130549],[11.130153,-3.916298],[11.189994,-3.761992],[11.234488,-3.690782],[11.288335,-3.641069],[11.504342,-3.520353],[11.536795,-3.524952],[11.685726,-3.681997],[11.733424,-3.694503],[11.786444,-3.690265],[11.849127,-3.696725],[11.879926,-3.665926],[11.884784,-3.625411],[11.839412,-3.58004],[11.832901,-3.531412],[11.864734,-3.478599],[11.882769,-3.420204],[11.929329,-3.35101],[11.934187,-3.318557],[11.885094,-3.283158],[11.784377,-3.229105],[11.715389,-3.176912],[11.689034,-3.126992],[11.708051,-3.06312],[11.763448,-3.011237],[11.76014,-2.983125],[11.711358,-2.936513],[11.675701,-2.886645],[11.639114,-2.855381],[11.537828,-2.836674],[11.557155,-2.769598],[11.594517,-2.670999],[11.603457,-2.595449],[11.575242,-2.397063],[11.577723,-2.360941],[11.605421,-2.342596],[11.665883,-2.364558],[11.726757,-2.394737],[11.892432,-2.351432],[11.95031,-2.344818],[11.998265,-2.382852],[12.064411,-2.412617],[12.446403,-2.329935],[12.453845,-2.245599],[12.475704,-2.169221],[12.478546,-2.112015],[12.46263,-2.075274],[12.443716,-2.047575],[12.432451,-1.990317],[12.432141,-1.928926],[12.468676,-1.899987],[12.590477,-1.826813],[12.628408,-1.829604],[12.713674,-1.869446],[12.793514,-1.93182],[12.864466,-2.063233],[12.913558,-2.176249],[12.992003,-2.313347],[13.158608,-2.369106],[13.357356,-2.404814],[13.464946,-2.395409],[13.618528,-2.278569],[13.705603,-2.187515],[13.733818,-2.138474],[13.784358,-2.163744],[13.841564,-2.283685],[13.878461,-2.330193],[13.887711,-2.374532],[13.861821,-2.429929],[13.886884,-2.465379],[13.993854,-2.490649],[14.08744,-2.466878],[14.129763,-2.417992],[14.199785,-2.354223],[14.200405,-2.300634],[14.162836,-2.265546],[14.162836,-2.217539],[14.2018,-2.179867],[14.239679,-2.07672],[14.251461,-2.00148],[14.28841,-1.953472],[14.358586,-1.920244],[14.38396,-1.890065],[14.423234,-1.711575],[14.402925,-1.646928],[14.402925,-1.593391],[14.447212,-1.525075],[14.455583,-1.413195],[14.436876,-1.229795],[14.42406,-1.10386],[14.410625,-0.972085],[14.444886,-0.798814],[14.480595,-0.618308],[14.474083,-0.573453],[14.424681,-0.518676],[14.363806,-0.468602],[14.206761,-0.427312],[14.148367,-0.36189],[14.10284,-0.292333],[14.069457,-0.270112],[13.897994,-0.242621],[13.860064,-0.203346],[13.875463,-0.090795],[13.890656,0.075293],[13.88461,0.190841],[13.915151,0.283962],[13.949619,0.353829],[14.025325,0.427726],[14.065529,0.515008],[14.087544,0.536557],[14.230997,0.551129],[14.283087,0.587458],[14.324222,0.6242],[14.341482,0.673809],[14.390678,0.755716],[14.434447,0.811475],[14.439202,0.849096],[14.429848,0.901444],[14.38644,1.004435],[14.334454,1.090218],[14.303034,1.120862],[14.239731,1.322555],[14.180871,1.370201],[14.066201,1.395884],[13.851331,1.418751],[13.721158,1.382293],[13.52334,1.314597],[13.372342,1.267778],[13.274105,1.24101],[13.216279,1.248451],[13.190131,1.27925],[13.228371,1.305399],[13.247388,1.366687],[13.22279,1.454614],[13.18455,1.535049],[13.162742,1.648117],[13.172147,1.788573],[13.209458,1.9204],[13.288626,2.091707],[13.293587,2.161574],[13.533469,2.159507],[13.772731,2.157414],[14.034369,2.158912],[14.287015,2.160334],[14.484109,2.154727],[14.578935,2.199143],[14.66911,2.132067],[14.713242,2.117132],[14.728331,2.122403],[14.762903,2.075171],[14.875041,2.080442],[14.892817,2.069331],[14.902429,2.012281],[15.006402,2.013753],[15.05782,2.00086],[15.099575,2.002359],[15.160036,2.035587],[15.203496,2.02445],[15.282458,1.981714],[15.338785,1.944714],[15.417488,1.956754],[15.600319,1.950372],[15.741603,1.915],[15.881646,1.816582],[15.97518,1.760022],[16.059413,1.676229],[16.090315,1.691267],[16.119564,1.714108],[16.136101,1.72421],[16.134964,1.795963],[16.087938,1.918074],[16.069593,2.021686],[16.080032,2.106797],[16.11574,2.167827],[16.176615,2.204775],[16.182609,2.262446],[16.183436,2.270068],[16.251753,2.406804],[16.319655,2.542765],[16.401252,2.701024],[16.468587,2.831714],[16.459595,2.896516],[16.46621,2.993228],[16.480059,3.101],[16.476803,3.165156],[16.496285,3.208823],[16.543104,3.36951],[16.570389,3.463071],[16.610697,3.505368],[16.673381,3.535185],[16.764331,3.53627],[17.002508,3.556682],[17.224716,3.598411],[17.298459,3.61717],[17.437985,3.684633],[17.491574,3.687295],[17.537721,3.661637],[17.806593,3.584174],[17.880335,3.55384],[17.907155,3.558388],[17.94798,3.551747],[18.010715,3.550843],[18.072262,3.5603],[18.111277,3.551076],[18.16099,3.499787],[18.19396,3.505419],[18.237058,3.542678],[18.31819,3.580789],[18.474459,3.622983],[18.499781,3.604096],[18.553834,3.510199],[18.610317,3.478444]]]},"type":"Feature","properties":{"ISO_A2":"CG","NAME":"Congo (Brazzaville)"}},{"geometry":{"type":"Polygon","coordinates":[[[-159.740502,-21.249245],[-159.772542,-21.249504],[-159.813082,-21.242062],[-159.839592,-21.238135],[-159.842486,-21.229091],[-159.832047,-21.200514],[-159.810602,-21.186458],[-159.768356,-21.188422],[-159.739521,-21.208111],[-159.736885,-21.240615],[-159.740502,-21.249245]]]},"type":"Feature","properties":{"ISO_A2":"CK","NAME":"Cook Is."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-78.113702,2.541757],[-78.140806,2.519691],[-78.192483,2.559276],[-78.210104,2.609195],[-78.178401,2.64635],[-78.137628,2.634206],[-78.119154,2.603614],[-78.113702,2.541757]]],[[[-71.26213,12.335294],[-71.155031,12.164167],[-71.137306,12.046319],[-71.284196,11.918291],[-71.31975,11.861912],[-71.355587,11.849742],[-71.40021,11.823542],[-71.536067,11.774062],[-71.719493,11.72683],[-71.958083,11.666394],[-72.012317,11.601928],[-72.248504,11.196423],[-72.446089,11.114257],[-72.518023,11.053899],[-72.572283,10.97716],[-72.690105,10.835851],[-72.739146,10.727201],[-72.869345,10.491246],[-72.940374,10.19576],[-72.967401,10.029724],[-73.00652,9.789144],[-73.064088,9.668196],[-73.141266,9.554637],[-73.224285,9.443584],[-73.29565,9.322015],[-73.356344,9.226853],[-73.366188,9.194116],[-73.336707,9.167916],[-73.193175,9.194116],[-73.136693,9.222822],[-73.058377,9.25959],[-73.009259,9.239953],[-72.960141,9.135179],[-72.904459,9.122079],[-72.852085,9.135179],[-72.796404,9.108979],[-72.72553,8.848272],[-72.66543,8.627587],[-72.525723,8.489715],[-72.416556,8.381995],[-72.390356,8.28704],[-72.364182,8.152784],[-72.357619,8.087284],[-72.391674,8.047726],[-72.446038,7.966129],[-72.459577,7.80986],[-72.468904,7.757976],[-72.478955,7.613231],[-72.471979,7.52427],[-72.442989,7.454894],[-72.39462,7.415103],[-72.296331,7.394536],[-72.207706,7.370248],[-72.156701,7.249713],[-72.084251,7.096854],[-72.006633,7.032594],[-71.89266,6.990323],[-71.811296,7.005826],[-71.620868,7.032904],[-71.457157,7.026341],[-71.217818,6.985207],[-71.128599,6.986706],[-71.013308,6.994457],[-70.810711,7.077604],[-70.73715,7.090058],[-70.655087,7.082772],[-70.535534,7.040552],[-70.470654,7.007118],[-70.387481,6.972624],[-70.266119,6.947922],[-70.188139,6.952031],[-70.129228,6.953633],[-70.094992,6.937923],[-69.904229,6.700263],[-69.738993,6.494384],[-69.594842,6.321501],[-69.439244,6.134923],[-69.427126,6.123993],[-69.357079,6.147997],[-69.310828,6.13761],[-69.268144,6.099731],[-69.194505,6.115338],[-69.089912,6.184377],[-68.937234,6.198175],[-68.736471,6.156782],[-68.471758,6.156524],[-68.143096,6.197503],[-67.938897,6.241945],[-67.85916,6.289901],[-67.727152,6.28494],[-67.568067,6.241816],[-67.481999,6.180269],[-67.471613,6.119782],[-67.439366,6.025524],[-67.473886,5.929974],[-67.575224,5.833081],[-67.631344,5.709368],[-67.6423,5.558782],[-67.694648,5.447523],[-67.788415,5.375486],[-67.824924,5.27048],[-67.804202,5.132504],[-67.814305,4.93081],[-67.855258,4.665478],[-67.855258,4.506883],[-67.814305,4.455077],[-67.795417,4.380715],[-67.798621,4.283873],[-67.783221,4.19822],[-67.732346,4.086521],[-67.661627,3.864261],[-67.602561,3.768788],[-67.551117,3.733829],[-67.498691,3.691093],[-67.347692,3.463768],[-67.311157,3.415864],[-67.322164,3.373955],[-67.336272,3.342613],[-67.353584,3.322666],[-67.514814,3.187248],[-67.834794,2.892821],[-67.861253,2.85533],[-67.859057,2.793602],[-67.766452,2.83329],[-67.667234,2.800217],[-67.618709,2.793602],[-67.596669,2.76934],[-67.568015,2.689965],[-67.534942,2.676736],[-67.486418,2.643663],[-67.391617,2.559896],[-67.312242,2.471684],[-67.252763,2.429464],[-67.210827,2.390113],[-67.197598,2.332778],[-67.21522,2.275469],[-67.165481,2.142557],[-67.131427,2.101267],[-67.113805,2.050573],[-67.131427,1.999852],[-67.089543,1.940321],[-67.043887,1.823197],[-66.988128,1.680156],[-66.981513,1.600781],[-66.958362,1.56422],[-66.931103,1.457999],[-66.884491,1.358238],[-66.895524,1.289896],[-66.876042,1.223026],[-67.065255,1.178378],[-67.082282,1.185406],[-67.093651,1.210004],[-67.088277,1.400612],[-67.090137,1.615586],[-67.119231,1.703591],[-67.205815,1.844823],[-67.320614,2.032073],[-67.35193,2.085842],[-67.400428,2.116719],[-67.457763,2.121137],[-67.499647,2.107908],[-67.556052,2.073],[-67.609227,2.03507],[-67.711882,1.922105],[-67.81508,1.790098],[-67.875541,1.760591],[-67.936209,1.748498],[-67.989772,1.752529],[-68.032844,1.788057],[-68.077079,1.860119],[-68.130254,1.955747],[-68.193816,1.986985],[-68.218389,1.957633],[-68.239473,1.901357],[-68.255932,1.845521],[-68.213273,1.774543],[-68.176557,1.719844],[-68.239576,1.721704],[-68.44344,1.721601],[-68.678464,1.721497],[-68.913178,1.721394],[-69.124276,1.721291],[-69.319743,1.721239],[-69.394363,1.725786],[-69.470173,1.757903],[-69.542933,1.773225],[-69.581277,1.770745],[-69.650033,1.739455],[-69.739614,1.734881],[-69.799946,1.705168],[-69.848573,1.708759],[-69.849478,1.543885],[-69.850795,1.308809],[-69.852165,1.059522],[-69.798137,1.078436],[-69.751318,1.076627],[-69.717005,1.059109],[-69.620887,1.073268],[-69.567583,1.065775],[-69.517147,1.059471],[-69.470328,1.058592],[-69.441518,1.0388],[-69.402787,1.042366],[-69.361368,1.064018],[-69.311836,1.050479],[-69.258713,1.015391],[-69.224477,0.963146],[-69.193859,0.898292],[-69.163241,0.864082],[-69.165049,0.801967],[-69.165954,0.753339],[-69.176754,0.712825],[-69.163241,0.686677],[-69.153344,0.658771],[-69.156058,0.642545],[-69.174067,0.635362],[-69.212772,0.629936],[-69.254191,0.62544],[-69.283026,0.627249],[-69.305532,0.652467],[-69.327132,0.655154],[-69.358655,0.651588],[-69.391986,0.666885],[-69.420796,0.698407],[-69.472136,0.72993],[-69.527043,0.716391],[-69.56487,0.700216],[-69.603601,0.680372],[-69.638715,0.65965],[-69.67383,0.665076],[-69.718891,0.64978],[-69.756719,0.62637],[-69.807129,0.607457],[-69.862061,0.598465],[-69.925106,0.589422],[-69.985438,0.585856],[-70.053884,0.578621],[-70.057889,0.447363],[-70.065744,0.189343],[-70.070937,0.018552],[-70.070524,-0.138854],[-70.044065,-0.196163],[-69.922781,-0.317448],[-69.827954,-0.381372],[-69.747443,-0.45253],[-69.667473,-0.482399],[-69.633961,-0.509271],[-69.611895,-0.553351],[-69.600888,-0.599653],[-69.592052,-0.639341],[-69.600888,-0.68125],[-69.620732,-0.720938],[-69.611895,-0.762796],[-69.583241,-0.795868],[-69.57443,-0.837778],[-69.554586,-0.877466],[-69.543553,-0.917153],[-69.519291,-0.945833],[-69.48844,-0.965677],[-69.448753,-0.99875],[-69.444334,-1.029601],[-69.448753,-1.064896],[-69.44914,-1.091561],[-69.411442,-1.152229],[-69.400229,-1.194966],[-69.417876,-1.24566],[-69.434929,-1.42167],[-69.478596,-1.621968],[-69.50645,-1.77493],[-69.551847,-2.024269],[-69.604661,-2.314225],[-69.669049,-2.66764],[-69.732637,-3.016715],[-69.794158,-3.354575],[-69.849762,-3.65988],[-69.91105,-3.996552],[-69.94818,-4.200622],[-69.965931,-4.235969],[-70.017194,-4.161968],[-70.09476,-4.092153],[-70.16752,-4.050243],[-70.198397,-3.995156],[-70.240281,-3.882708],[-70.298443,-3.844261],[-70.339499,-3.814341],[-70.379187,-3.818733],[-70.421097,-3.849636],[-70.485847,-3.869376],[-70.529669,-3.866379],[-70.706195,-3.788967],[-70.735108,-3.781526],[-70.621704,-3.604586],[-70.419004,-3.288274],[-70.290148,-3.087253],[-70.147082,-2.864063],[-70.074038,-2.750168],[-70.064478,-2.730789],[-70.064736,-2.701695],[-70.095845,-2.658235],[-70.16473,-2.63989],[-70.244441,-2.606559],[-70.294644,-2.552505],[-70.364149,-2.529303],[-70.418229,-2.4907],[-70.516775,-2.453132],[-70.575893,-2.418302],[-70.648008,-2.405744],[-70.705369,-2.341976],[-70.914555,-2.218572],[-70.968557,-2.206842],[-71.027313,-2.225755],[-71.11338,-2.245444],[-71.196398,-2.313037],[-71.300113,-2.334844],[-71.396954,-2.334069],[-71.447468,-2.29371],[-71.49607,-2.279189],[-71.559451,-2.224205],[-71.67146,-2.18214],[-71.75254,-2.152737],[-71.802743,-2.166276],[-71.867262,-2.227719],[-71.932477,-2.288697],[-71.984283,-2.326576],[-72.053788,-2.324612],[-72.136806,-2.38063],[-72.218455,-2.400525],[-72.300749,-2.40931],[-72.395576,-2.428895],[-72.50066,-2.395047],[-72.586727,-2.365178],[-72.625355,-2.351639],[-72.660133,-2.361044],[-72.714187,-2.392205],[-72.811235,-2.405486],[-72.887148,-2.408483],[-72.941098,-2.394014],[-72.989674,-2.339754],[-73.06817,-2.312055],[-73.15447,-2.278259],[-73.17266,-2.208444],[-73.160206,-2.156302],[-73.126513,-2.08101],[-73.14522,-2.003288],[-73.181497,-1.880402],[-73.196948,-1.830224],[-73.223975,-1.787694],[-73.266453,-1.772295],[-73.349497,-1.78387],[-73.440292,-1.737413],[-73.496284,-1.693023],[-73.525248,-1.638918],[-73.494346,-1.536598],[-73.521398,-1.449679],[-73.575478,-1.401413],[-73.61023,-1.316457],[-73.664309,-1.248864],[-73.735752,-1.214137],[-73.807195,-1.217962],[-73.863186,-1.196723],[-73.926955,-1.125151],[-73.986822,-1.098124],[-74.054415,-1.028619],[-74.180764,-0.997717],[-74.246393,-0.970638],[-74.28391,-0.92785],[-74.334424,-0.850904],[-74.32861,-0.808426],[-74.35313,-0.766568],[-74.374912,-0.69143],[-74.417881,-0.580636],[-74.465191,-0.517643],[-74.513844,-0.470152],[-74.555108,-0.429844],[-74.61637,-0.370055],[-74.691663,-0.335276],[-74.75538,-0.298586],[-74.780495,-0.244533],[-74.801734,-0.200143],[-74.837519,-0.203346],[-74.888808,-0.199419],[-74.945317,-0.188154],[-75.005003,-0.155907],[-75.054664,-0.116685],[-75.13838,-0.050488],[-75.184062,-0.041754],[-75.224602,-0.041754],[-75.284469,-0.106505],[-75.463941,-0.038447],[-75.617317,0.062891],[-75.776687,0.089246],[-75.879781,0.150999],[-75.974866,0.247737],[-76.026155,0.313108],[-76.067935,0.345561],[-76.27061,0.439405],[-76.311047,0.4485],[-76.388174,0.404989],[-76.413366,0.37884],[-76.417966,0.303909],[-76.427293,0.261225],[-76.494602,0.235438],[-76.603045,0.240968],[-76.678492,0.268149],[-76.72898,0.272128],[-76.739316,0.250838],[-76.767738,0.241639],[-76.829362,0.247737],[-76.920131,0.268511],[-77.002426,0.296261],[-77.114125,0.355069],[-77.165724,0.347731],[-77.292667,0.360392],[-77.39633,0.393878],[-77.422736,0.424832],[-77.467695,0.636499],[-77.481389,0.651175],[-77.526141,0.660373],[-77.601304,0.689519],[-77.648614,0.723625],[-77.673212,0.782226],[-77.702874,0.83783],[-77.829533,0.825376],[-78.036988,0.898705],[-78.180675,0.968572],[-78.312088,1.046086],[-78.511533,1.198842],[-78.587627,1.236669],[-78.681652,1.283436],[-78.737126,1.358703],[-78.828878,1.434693],[-78.859677,1.455364],[-78.888487,1.524093],[-79.025429,1.623674],[-78.957656,1.752193],[-78.792963,1.848725],[-78.576904,1.773794],[-78.550445,1.923656],[-78.628606,2.056257],[-78.617056,2.306785],[-78.591683,2.356652],[-78.53471,2.423677],[-78.460477,2.470082],[-78.416913,2.483518],[-78.342861,2.460574],[-78.296146,2.510493],[-78.120032,2.488169],[-78.066651,2.509149],[-78.030167,2.543049],[-77.987224,2.568991],[-77.932292,2.629246],[-77.900769,2.698802],[-77.874492,2.72588],[-77.813565,2.716372],[-77.807958,2.746396],[-77.776668,2.787324],[-77.670034,2.878843],[-77.671067,2.919357],[-77.700962,3.007569],[-77.693676,3.039918],[-77.632052,3.051184],[-77.559136,3.075988],[-77.520276,3.160273],[-77.472217,3.233808],[-77.417129,3.341812],[-77.356513,3.348581],[-77.324422,3.474775],[-77.242747,3.585363],[-77.076788,3.913276],[-77.126837,3.906041],[-77.166576,3.862245],[-77.212026,3.867439],[-77.263521,3.893225],[-77.248406,4.040968],[-77.278017,4.058512],[-77.358218,3.944721],[-77.42731,4.060476],[-77.433537,4.130963],[-77.404495,4.200777],[-77.408758,4.247777],[-77.520715,4.212766],[-77.515547,4.256304],[-77.445862,4.30103],[-77.414287,4.34759],[-77.35349,4.398285],[-77.328349,4.475024],[-77.313673,4.593828],[-77.286336,4.721728],[-77.306568,4.78467],[-77.33946,4.838516],[-77.366745,5.076538],[-77.3592,5.215186],[-77.373308,5.323965],[-77.40173,5.416156],[-77.534435,5.53713],[-77.324629,5.675623],[-77.249284,5.780164],[-77.344679,5.995345],[-77.469452,6.176755],[-77.473018,6.285663],[-77.4401,6.271736],[-77.398242,6.275018],[-77.359872,6.504513],[-77.368812,6.575568],[-77.438885,6.690341],[-77.52596,6.693132],[-77.602131,6.837309],[-77.645849,6.869607],[-77.680938,6.960402],[-77.803721,7.137239],[-77.901157,7.229352],[-77.828345,7.442802],[-77.764705,7.483704],[-77.743905,7.536956],[-77.768762,7.668059],[-77.761915,7.698807],[-77.746903,7.711881],[-77.73202,7.710925],[-77.706337,7.69121],[-77.658588,7.634599],[-77.61859,7.564577],[-77.586577,7.54308],[-77.538285,7.566257],[-77.350803,7.705835],[-77.36274,7.749088],[-77.345635,7.83655],[-77.282952,7.908148],[-77.215979,7.932539],[-77.196006,7.972485],[-77.21231,8.033877],[-77.282642,8.187046],[-77.345532,8.269521],[-77.385891,8.351687],[-77.407285,8.427238],[-77.478495,8.498422],[-77.448316,8.56586],[-77.393074,8.644692],[-77.374238,8.658283],[-77.344162,8.636734],[-77.261558,8.493694],[-77.130119,8.400573],[-76.992272,8.250349],[-76.935815,8.146842],[-76.89096,8.12798],[-76.851867,8.090488],[-76.869101,8.062686],[-76.912225,8.033386],[-76.924653,7.973209],[-76.896644,7.939464],[-76.866905,7.917967],[-76.786574,7.931609],[-76.742339,8.002148],[-76.772078,8.310552],[-76.818587,8.464703],[-76.872227,8.512762],[-76.920467,8.573715],[-76.887963,8.619888],[-76.802232,8.640662],[-76.68937,8.694715],[-76.276837,8.989116],[-76.135502,9.265636],[-76.02724,9.365785],[-75.905025,9.430898],[-75.755551,9.415601],[-75.639357,9.450431],[-75.603623,9.538462],[-75.635326,9.657809],[-75.680026,9.729794],[-75.637083,9.834284],[-75.592667,9.992724],[-75.595923,10.125816],[-75.538588,10.205191],[-75.55838,10.23643],[-75.642199,10.172144],[-75.708345,10.143412],[-75.670879,10.196329],[-75.553729,10.327742],[-75.492802,10.527626],[-75.445984,10.610877],[-75.280619,10.727201],[-75.24796,10.78327],[-75.123032,10.870396],[-74.921571,11.057568],[-74.844573,11.10971],[-74.454261,10.989045],[-74.330238,10.996693],[-74.352381,10.974679],[-74.409587,10.96716],[-74.492295,10.934449],[-74.516247,10.86249],[-74.460256,10.787068],[-74.400905,10.765209],[-74.350185,10.813733],[-74.299955,10.952252],[-74.219159,11.105317],[-74.20022,11.265721],[-74.142937,11.320834],[-74.059143,11.340652],[-73.90954,11.308871],[-73.795723,11.275694],[-73.676893,11.271457],[-73.313349,11.295745],[-72.721835,11.712154],[-72.447045,11.801709],[-72.275014,11.889249],[-72.165254,12.060194],[-72.135772,12.188559],[-72.05508,12.238426],[-71.970098,12.238297],[-71.931263,12.269536],[-71.919145,12.309068],[-71.714532,12.419966],[-71.597433,12.434358],[-71.494003,12.432265],[-71.26213,12.335294]]]]},"type":"Feature","properties":{"ISO_A2":"CO","NAME":"Colombia"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[43.788676,-12.307],[43.858956,-12.368289],[43.663619,-12.342864],[43.632924,-12.287673],[43.631373,-12.247056],[43.70434,-12.255944],[43.788676,-12.307]]],[[[44.476386,-12.081588],[44.526719,-12.219564],[44.526306,-12.323537],[44.505015,-12.356506],[44.46016,-12.335112],[44.377478,-12.252223],[44.220175,-12.171401],[44.292315,-12.164787],[44.334483,-12.173055],[44.379131,-12.165614],[44.407037,-12.120138],[44.412618,-12.092957],[44.451892,-12.071356],[44.476386,-12.081588]]],[[[43.465802,-11.901289],[43.446785,-11.91457],[43.355525,-11.857519],[43.303331,-11.844083],[43.226644,-11.751892],[43.255996,-11.432118],[43.280697,-11.391191],[43.298991,-11.374551],[43.341469,-11.368453],[43.392938,-11.408554],[43.379399,-11.614123],[43.447715,-11.752512],[43.491537,-11.862066],[43.465802,-11.901289]]]]},"type":"Feature","properties":{"ISO_A2":"KM","NAME":"Comoros"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-24.308252,14.856303],[-24.386103,14.818217],[-24.440544,14.834805],[-24.492169,14.874235],[-24.517103,14.931234],[-24.496897,14.980275],[-24.391968,15.038307],[-24.329466,15.019497],[-24.295772,14.929528],[-24.308252,14.856303]]],[[[-23.182145,15.136751],[-23.209947,15.133082],[-23.251805,15.178144],[-23.242478,15.240543],[-23.247154,15.257002],[-23.210257,15.323561],[-23.137755,15.317722],[-23.119307,15.268422],[-23.11587,15.166671],[-23.182145,15.136751]]],[[[-23.444248,15.007973],[-23.504658,14.916092],[-23.637208,14.923482],[-23.705369,14.961309],[-23.785003,15.076909],[-23.782522,15.166103],[-23.754462,15.243566],[-23.759371,15.310797],[-23.748106,15.328522],[-23.707204,15.316895],[-23.700641,15.271626],[-23.580002,15.160884],[-23.53525,15.139283],[-23.444248,15.007973]]],[[[-22.917717,16.237252],[-22.834311,16.218984],[-22.802634,16.225522],[-22.749433,16.221542],[-22.692615,16.169039],[-22.681892,16.11328],[-22.710107,16.043362],[-22.820514,15.986053],[-22.884076,15.992719],[-22.959265,16.045119],[-22.916141,16.14842],[-22.917717,16.237252]]],[[[-24.087723,16.6225],[-24.046382,16.59307],[-24.032739,16.572012],[-24.094131,16.561057],[-24.243037,16.599401],[-24.282802,16.575939],[-24.322334,16.493102],[-24.398092,16.618417],[-24.392924,16.664461],[-24.376698,16.677794],[-24.271071,16.644876],[-24.087723,16.6225]]],[[[-22.888313,16.659087],[-22.920249,16.607927],[-22.95942,16.683039],[-22.980607,16.700893],[-22.990891,16.808845],[-22.932884,16.841014],[-22.904746,16.843727],[-22.903919,16.732106],[-22.888313,16.659087]]],[[[-24.887054,16.818095],[-24.969168,16.794169],[-25.019966,16.797218],[-25.093036,16.832513],[-25.070092,16.870702],[-24.991027,16.913232],[-24.936457,16.92212],[-24.891912,16.846491],[-24.887054,16.818095]]],[[[-25.169828,16.946511],[-25.267238,16.925944],[-25.30832,16.935866],[-25.321911,17.015396],[-25.341548,17.067744],[-25.337104,17.090998],[-25.113449,17.19368],[-25.034642,17.176471],[-24.979658,17.094719],[-25.017072,17.049296],[-25.169828,16.946511]]]]},"type":"Feature","properties":{"ISO_A2":"CV","NAME":"Cape Verde"}},{"geometry":{"type":"Polygon","coordinates":[[[-83.641969,10.917215],[-83.617294,10.877476],[-83.588174,10.814973],[-83.575281,10.73472],[-83.44826,10.465925],[-83.346819,10.315391],[-83.124611,10.04161],[-83.028518,9.991277],[-82.866332,9.770928],[-82.810289,9.734548],[-82.77843,9.669539],[-82.610146,9.616003],[-82.563585,9.576677],[-82.569244,9.558177],[-82.586504,9.538798],[-82.611283,9.519213],[-82.644071,9.50588],[-82.723395,9.546084],[-82.801039,9.591818],[-82.844008,9.570786],[-82.860131,9.511461],[-82.88894,9.480998],[-82.925036,9.469035],[-82.939867,9.449191],[-82.942813,9.248893],[-82.940358,9.060093],[-82.881344,9.055882],[-82.783055,8.990304],[-82.741146,8.951702],[-82.727813,8.916045],[-82.740009,8.898604],[-82.811916,8.857444],[-82.881964,8.805328],[-82.917026,8.74032],[-82.855712,8.635287],[-82.842612,8.563948],[-82.844783,8.489379],[-82.861603,8.453489],[-82.997538,8.367758],[-83.02733,8.337734],[-83.023376,8.31603],[-82.94842,8.256861],[-82.912892,8.199629],[-82.883307,8.130589],[-82.879354,8.07067],[-82.947283,8.181723],[-83.041463,8.287763],[-83.123319,8.353082],[-83.129597,8.505476],[-83.162412,8.58821],[-83.285789,8.664381],[-83.391416,8.717711],[-83.469732,8.706859],[-83.42175,8.619216],[-83.297752,8.506871],[-83.289562,8.463799],[-83.2915,8.406025],[-83.376817,8.414887],[-83.452058,8.438452],[-83.543732,8.445841],[-83.604736,8.48031],[-83.734057,8.614462],[-83.642202,8.728925],[-83.613728,8.804062],[-83.616157,8.959815],[-83.637267,9.035366],[-83.736925,9.150295],[-83.895545,9.276437],[-84.117857,9.379428],[-84.222373,9.462524],[-84.482667,9.526189],[-84.581576,9.568357],[-84.65891,9.646672],[-84.670459,9.702896],[-84.643071,9.789403],[-84.714927,9.899396],[-85.025063,10.115714],[-85.198463,10.195295],[-85.235619,10.242114],[-85.263188,10.256635],[-85.236523,10.107394],[-85.16074,10.017425],[-84.962767,9.933451],[-84.908352,9.884565],[-84.886441,9.820951],[-85.001266,9.699253],[-85.059712,9.668299],[-85.077024,9.601972],[-85.114515,9.581793],[-85.154022,9.620059],[-85.314529,9.810926],[-85.624871,9.902445],[-85.681018,9.958617],[-85.796489,10.13287],[-85.849664,10.292034],[-85.830621,10.398125],[-85.703135,10.563464],[-85.663319,10.635423],[-85.671432,10.679762],[-85.66722,10.745003],[-85.714866,10.790582],[-85.832843,10.849932],[-85.908032,10.897552],[-85.887388,10.921298],[-85.752228,10.985247],[-85.743701,11.042996],[-85.744321,11.062116],[-85.722281,11.06625],[-85.702644,11.08152],[-85.690552,11.097462],[-85.653655,11.153066],[-85.621409,11.184486],[-85.584202,11.189447],[-85.538727,11.166295],[-85.36835,11.106454],[-85.178955,11.039947],[-84.909153,10.945301],[-84.797351,11.005892],[-84.701155,11.052194],[-84.634183,11.045631],[-84.489178,10.991629],[-84.401845,10.974473],[-84.348283,10.979899],[-84.255549,10.90073],[-84.204958,10.841328],[-84.196586,10.801718],[-84.168345,10.78035],[-84.096205,10.775699],[-83.919291,10.735366],[-83.811184,10.743246],[-83.712947,10.785879],[-83.658945,10.836858],[-83.641969,10.917215]]]},"type":"Feature","properties":{"ISO_A2":"CR","NAME":"Costa Rica"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-82.561777,21.571655],[-82.65482,21.518635],[-82.85318,21.443911],[-82.959634,21.441301],[-83.067301,21.469388],[-83.141483,21.531864],[-83.18378,21.593463],[-83.180214,21.623073],[-83.112958,21.573696],[-83.054873,21.549434],[-83.007253,21.565583],[-82.973586,21.5923],[-83.082546,21.791383],[-83.077714,21.8335],[-82.991208,21.942744],[-82.75577,21.909516],[-82.714558,21.890292],[-82.681847,21.821149],[-82.629421,21.766889],[-82.567823,21.621833],[-82.561777,21.571655]]],[[[-77.669,21.951942],[-77.710057,21.92135],[-77.755042,21.965585],[-77.783645,21.970391],[-77.823203,21.987935],[-77.899994,22.037156],[-77.918546,22.088084],[-77.854726,22.091933],[-77.774394,22.082942],[-77.633705,22.054003],[-77.645979,21.996461],[-77.669,21.951942]]],[[[-77.879401,22.127513],[-77.912345,22.124696],[-78.011925,22.166399],[-78.041639,22.201281],[-78.006706,22.247996],[-77.999213,22.298743],[-77.985648,22.302102],[-77.969576,22.240658],[-77.893664,22.214562],[-77.88909,22.201048],[-77.842478,22.148958],[-77.879401,22.127513]]],[[[-78.027118,22.285178],[-78.04753,22.268486],[-78.101636,22.305745],[-78.180029,22.321997],[-78.226124,22.379978],[-78.269997,22.40225],[-78.273511,22.423567],[-78.200958,22.437649],[-78.150573,22.431499],[-78.094117,22.387213],[-78.06169,22.305926],[-78.027118,22.285178]]],[[[-78.63013,22.552267],[-78.492878,22.531028],[-78.445335,22.543766],[-78.39955,22.547487],[-78.351233,22.538625],[-78.283898,22.455477],[-78.343016,22.445116],[-78.389964,22.445116],[-78.424562,22.460128],[-78.547655,22.464004],[-78.628993,22.488188],[-78.673642,22.508859],[-78.695501,22.533974],[-78.63013,22.552267]]],[[[-79.34957,22.663914],[-79.347916,22.637688],[-79.522737,22.711121],[-79.597875,22.787653],[-79.628183,22.805223],[-79.579168,22.806722],[-79.382177,22.681355],[-79.34957,22.663914]]],[[[-81.837454,23.163031],[-81.575429,23.116522],[-81.363633,23.1297],[-81.262373,23.156856],[-81.271623,23.128614],[-81.178605,23.059652],[-81.144654,23.05495],[-81.00766,23.089857],[-80.650162,23.10306],[-80.613446,23.083759],[-80.550504,23.01658],[-80.459218,22.97498],[-80.364882,22.943406],[-80.266155,22.934957],[-80.167633,22.949349],[-80.075236,22.942321],[-79.959894,22.876899],[-79.92354,22.869147],[-79.820264,22.887027],[-79.850728,22.827186],[-79.676656,22.743082],[-79.549222,22.577795],[-79.456514,22.509867],[-79.358277,22.44894],[-79.275672,22.407625],[-79.183017,22.387884],[-78.901897,22.395998],[-78.835441,22.390933],[-78.775987,22.367317],[-78.719246,22.358067],[-78.686484,22.366826],[-78.143132,22.109426],[-77.970507,21.971992],[-77.865035,21.900576],[-77.636832,21.797352],[-77.545106,21.774589],[-77.497125,21.788334],[-77.50653,21.811046],[-77.573321,21.86833],[-77.583166,21.889259],[-77.497254,21.871611],[-77.342121,21.755262],[-77.29954,21.712267],[-77.222077,21.672424],[-77.144123,21.643615],[-77.181252,21.597648],[-77.244556,21.593747],[-77.366151,21.612635],[-77.269567,21.53791],[-77.252876,21.483469],[-77.207892,21.478844],[-77.140971,21.538608],[-77.098648,21.589018],[-76.928064,21.459001],[-76.836338,21.399521],[-76.859799,21.364794],[-76.867447,21.33043],[-76.764999,21.362417],[-76.726086,21.358877],[-76.688518,21.340429],[-76.647409,21.284515],[-76.551704,21.272139],[-76.455173,21.273637],[-76.259216,21.227387],[-76.073646,21.133465],[-75.899031,21.114267],[-75.722943,21.111011],[-75.633724,21.06135],[-75.595794,20.994662],[-75.63853,20.947456],[-75.662947,20.898156],[-75.597292,20.837643],[-75.740255,20.81196],[-75.760383,20.775554],[-75.752993,20.736202],[-75.724571,20.714576],[-75.642793,20.733489],[-75.524635,20.716669],[-75.338135,20.701631],[-75.213259,20.713852],[-74.959734,20.672666],[-74.882556,20.650626],[-74.732074,20.573189],[-74.662466,20.522133],[-74.513147,20.384544],[-74.384395,20.330491],[-74.272799,20.317365],[-74.233861,20.326434],[-74.198489,20.311474],[-74.167457,20.292198],[-74.136813,20.231944],[-74.153737,20.168537],[-74.217428,20.117144],[-74.252827,20.079679],[-74.412145,20.075338],[-74.634767,20.058156],[-74.850051,20.002294],[-74.955109,19.957904],[-75.003168,19.928551],[-75.116417,19.901395],[-75.124117,19.924676],[-75.121947,19.953924],[-75.151609,20.00834],[-75.177292,19.95935],[-75.21946,19.923642],[-75.290489,19.893101],[-75.551972,19.891138],[-75.657237,19.93222],[-75.765111,19.960384],[-76.158447,19.989762],[-76.252859,19.987178],[-76.515608,19.956689],[-76.779727,19.940204],[-76.890211,19.921317],[-76.999481,19.892843],[-77.211974,19.893747],[-77.463173,19.861398],[-77.71507,19.855481],[-77.553762,20.082134],[-77.213369,20.300363],[-77.149394,20.347285],[-77.103815,20.40754],[-77.093015,20.452912],[-77.107898,20.491669],[-77.188978,20.55996],[-77.205463,20.610835],[-77.229596,20.643753],[-77.347547,20.672382],[-77.467023,20.689513],[-77.592726,20.690081],[-77.856896,20.71362],[-77.997327,20.715377],[-78.116363,20.761885],[-78.313845,20.927483],[-78.406371,20.973862],[-78.453862,21.010992],[-78.490785,21.053702],[-78.537268,21.296814],[-78.576568,21.41381],[-78.636487,21.515535],[-78.727695,21.592713],[-78.822961,21.618939],[-79.189218,21.552845],[-79.274432,21.562663],[-79.357424,21.585169],[-79.910285,21.742601],[-80.138333,21.829262],[-80.231325,21.872154],[-80.310674,21.933416],[-80.392917,22.033746],[-80.485469,22.123456],[-80.484823,22.087179],[-80.49906,22.063511],[-80.9619,22.052866],[-81.035668,22.073588],[-81.083107,22.097928],[-81.116671,22.134231],[-81.141424,22.206939],[-81.185504,22.267995],[-81.19956,22.202934],[-81.222427,22.142938],[-81.284361,22.109426],[-81.355261,22.104077],[-81.441096,22.183788],[-81.816189,22.200221],[-81.849391,22.213657],[-81.972614,22.290888],[-82.077724,22.387678],[-81.973053,22.421836],[-81.757071,22.466769],[-81.710356,22.496663],[-81.683252,22.534826],[-81.702708,22.591877],[-81.745651,22.632934],[-81.789886,22.657015],[-81.838823,22.672441],[-81.903419,22.679004],[-82.738045,22.689261],[-82.786388,22.658359],[-82.861216,22.595107],[-83.009424,22.514027],[-83.107144,22.429872],[-83.143731,22.386463],[-83.189413,22.355432],[-83.29212,22.303213],[-83.37966,22.222985],[-83.485932,22.187121],[-83.544068,22.208955],[-83.601507,22.208722],[-83.643054,22.188982],[-83.686618,22.179938],[-83.900713,22.17012],[-83.932727,22.149656],[-83.963319,22.092089],[-83.998071,21.980132],[-84.030938,21.943105],[-84.138321,21.928998],[-84.240666,21.898354],[-84.448845,21.791642],[-84.502588,21.77619],[-84.49091,21.854274],[-84.501348,21.930264],[-84.560027,21.933028],[-84.626896,21.920368],[-84.682655,21.899051],[-84.785853,21.842285],[-84.838253,21.827919],[-84.88719,21.856987],[-84.877268,21.894168],[-84.532768,22.031162],[-84.494243,22.041601],[-84.433058,22.031291],[-84.373139,22.035916],[-84.326372,22.074338],[-84.383035,22.255541],[-84.361279,22.378919],[-84.281362,22.47421],[-84.121785,22.618568],[-84.044942,22.666007],[-83.257832,22.967591],[-83.177243,22.98299],[-82.665801,23.043555],[-82.587796,23.064561],[-82.350549,23.153962],[-82.101366,23.190445],[-81.837454,23.163031]]]]},"type":"Feature","properties":{"ISO_A2":"CU","NAME":"Cuba"}},{"geometry":{"type":"Polygon","coordinates":[[[-68.751095,12.059781],[-68.803314,12.045467],[-68.995137,12.141843],[-69.153835,12.298423],[-69.158874,12.380278],[-69.118437,12.37325],[-69.076786,12.342038],[-69.013146,12.231347],[-68.827395,12.158535],[-68.751095,12.059781]]]},"type":"Feature","properties":{"ISO_A2":"CW","NAME":"Cura\u00e7ao"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.36955,19.348897],[-81.337252,19.329518],[-81.296505,19.341378],[-81.2848,19.362539],[-81.130495,19.346752],[-81.107137,19.305179],[-81.224597,19.304093],[-81.277307,19.277377],[-81.303714,19.271899],[-81.404767,19.278436],[-81.419082,19.374761],[-81.391021,19.384915],[-81.36955,19.348897]]],[[[-79.978989,19.708203],[-79.988755,19.702519],[-80.020769,19.706859],[-80.094201,19.665906],[-80.125879,19.668386],[-80.116112,19.682675],[-80.100919,19.696111],[-80.083633,19.706084],[-80.067562,19.709934],[-80.016221,19.718254],[-79.99183,19.719288],[-79.975087,19.709934],[-79.978989,19.708203]]],[[[-79.823391,19.711898],[-79.870055,19.696679],[-79.906202,19.702519],[-79.824192,19.744092],[-79.803134,19.758122],[-79.785176,19.765641],[-79.76634,19.765745],[-79.742311,19.757141],[-79.742311,19.750888],[-79.823391,19.711898]]]]},"type":"Feature","properties":{"ISO_A2":"KY","NAME":"Cayman Is."}},{"geometry":{"type":"Polygon","coordinates":[[[34.004467,35.06525],[33.96571,35.056775],[33.903285,35.085456],[33.86644,35.093595],[33.831971,35.067162],[33.792284,35.048197],[33.756937,35.039722],[33.725776,35.037319],[33.675392,35.017863],[33.614414,35.022746],[33.525685,35.038688],[33.475817,35.000345],[33.463829,35.004944],[33.455922,35.101424],[33.424244,35.14093],[33.383833,35.162712],[33.325542,35.153617],[33.248338,35.156924],[33.190977,35.173125],[33.077496,35.146175],[32.985925,35.11641],[32.919572,35.087833],[32.869446,35.089383],[32.784077,35.11579],[32.720205,35.145374],[32.712712,35.171058],[32.772398,35.15956],[32.879885,35.18054],[32.926394,35.27808],[32.941587,35.390424],[33.123384,35.35823],[33.307869,35.341487],[33.458764,35.33588],[33.607592,35.354147],[34.063482,35.473959],[34.192466,35.545712],[34.272358,35.569974],[34.411161,35.629298],[34.556062,35.662061],[34.463147,35.593512],[33.941939,35.292058],[33.907936,35.202399],[33.93119,35.140388],[34.004467,35.06525]]]},"type":"Feature","properties":{"ISO_A2":"-99","NAME":"N. Cyprus"}},{"geometry":{"type":"Polygon","coordinates":[[[32.712712,35.171058],[32.720205,35.145374],[32.784077,35.11579],[32.869446,35.089383],[32.919572,35.087833],[32.985925,35.11641],[33.077496,35.146175],[33.190977,35.173125],[33.248338,35.156924],[33.325542,35.153617],[33.383833,35.162712],[33.424244,35.14093],[33.455922,35.101424],[33.463829,35.004944],[33.475817,35.000345],[33.525685,35.038688],[33.614414,35.022746],[33.675392,35.017863],[33.725776,35.037319],[33.756937,35.039722],[33.792284,35.048197],[33.831971,35.067162],[33.86644,35.093595],[33.903285,35.085456],[33.96571,35.056775],[34.004467,35.06525],[34.023588,35.045561],[34.050149,34.988356],[33.936565,34.971457],[33.822463,34.965902],[33.759004,34.973266],[33.69937,34.969881],[33.514471,34.806455],[33.414943,34.750877],[33.296604,34.717726],[33.176094,34.698037],[33.115529,34.695557],[33.062303,34.674783],[33.024889,34.636904],[33.023959,34.600007],[33.007939,34.56957],[32.941793,34.575874],[32.914198,34.635483],[32.867172,34.66114],[32.750074,34.647808],[32.693023,34.649384],[32.505541,34.706254],[32.449007,34.729457],[32.413763,34.778033],[32.317232,34.953293],[32.301005,35.082975],[32.390922,35.049799],[32.475052,35.090003],[32.555977,35.155787],[32.652302,35.182685],[32.712712,35.171058]]]},"type":"Feature","properties":{"ISO_A2":"CY","NAME":"Cyprus"}},{"geometry":{"type":"Polygon","coordinates":[[[14.809412,50.858963],[14.895763,50.861392],[14.982889,50.886558],[14.989969,50.927228],[14.98444,51.003399],[14.993741,51.01438],[15.12593,50.992857],[15.258635,50.958544],[15.277032,50.883019],[15.312585,50.845734],[15.354391,50.811783],[15.394647,50.79628],[15.463997,50.793851],[15.643934,50.748866],[15.730544,50.73972],[15.819221,50.708688],[15.893893,50.676907],[15.948515,50.670241],[15.973837,50.635463],[16.00722,50.61164],[16.066441,50.629933],[16.282242,50.655616],[16.359963,50.621407],[16.412518,50.585181],[16.419701,50.573658],[16.392312,50.54167],[16.379083,50.516917],[16.356604,50.500484],[16.282552,50.482991],[16.240694,50.454673],[16.210308,50.423718],[16.23072,50.394082],[16.291337,50.371861],[16.334125,50.3669],[16.350455,50.345196],[16.487604,50.248406],[16.596641,50.121902],[16.639119,50.102162],[16.679117,50.097485],[16.725315,50.116063],[16.778645,50.157042],[16.841742,50.186704],[16.895331,50.201949],[16.989692,50.236934],[16.993413,50.259697],[16.914761,50.345196],[16.869183,50.414494],[16.880035,50.427026],[16.980804,50.416096],[17.151956,50.378321],[17.415196,50.254762],[17.462325,50.254762],[17.554619,50.264064],[17.654664,50.284218],[17.702258,50.307162],[17.720087,50.298636],[17.735486,50.230784],[17.709286,50.193552],[17.589345,50.157456],[17.59627,50.139524],[17.627069,50.116424],[17.681071,50.100767],[17.746545,50.05679],[17.79171,50.006612],[17.831294,49.983306],[17.874754,49.972247],[17.983843,49.999067],[18.014642,50.02028],[18.028285,50.035241],[18.049472,50.031933],[18.087661,50.007284],[18.099185,49.992789],[18.205277,49.964754],[18.266307,49.930286],[18.305322,49.91406],[18.348472,49.929847],[18.516214,49.902381],[18.562413,49.879333],[18.577192,49.841118],[18.56882,49.817941],[18.594659,49.75779],[18.806894,49.613716],[18.82927,49.540129],[18.832215,49.510777],[18.807049,49.509226],[18.74974,49.494008],[18.676204,49.488452],[18.596519,49.49145],[18.534559,49.464681],[18.476113,49.421118],[18.415858,49.390913],[18.383095,49.363938],[18.364802,49.33624],[18.160938,49.257355],[18.13262,49.224567],[18.109985,49.179789],[18.100425,49.119328],[18.085956,49.065119],[18.050868,49.036542],[17.940745,49.011944],[17.913305,48.998741],[17.892686,48.97112],[17.830881,48.92859],[17.758534,48.888127],[17.625415,48.841825],[17.482582,48.827769],[17.296857,48.842833],[17.18844,48.860946],[17.135626,48.84105],[17.063331,48.780744],[16.985248,48.6769],[16.953105,48.598843],[16.9283,48.620909],[16.883652,48.703694],[16.833216,48.714288],[16.764486,48.722039],[16.712706,48.734235],[16.600982,48.781881],[16.543518,48.796247],[16.477889,48.800122],[16.414843,48.772088],[16.367301,48.738989],[16.2193,48.739403],[16.057242,48.754802],[15.825215,48.86446],[15.765012,48.865441],[15.700778,48.860429],[15.599441,48.886396],[15.402915,48.957374],[15.310931,48.974014],[15.252744,48.963885],[15.19962,48.948124],[15.16169,48.946263],[15.139779,48.969337],[15.066812,48.997836],[14.993431,49.001118],[14.972141,48.983935],[14.947336,48.827743],[14.922531,48.77139],[14.821866,48.774],[14.785951,48.747361],[14.706679,48.671913],[14.691331,48.599204],[14.553872,48.613312],[14.488708,48.625559],[14.431088,48.616258],[14.36763,48.576208],[14.189863,48.578586],[14.049148,48.602512],[13.988738,48.692429],[13.924349,48.728034],[13.843114,48.759866],[13.814744,48.766946],[13.769889,48.815987],[13.684984,48.876707],[13.547628,48.959673],[13.440761,48.955591],[13.401177,48.977605],[13.383711,49.008094],[13.339114,49.060778],[13.288781,49.097443],[13.227854,49.11168],[13.140521,49.158343],[13.023733,49.260094],[12.916659,49.330478],[12.813409,49.329367],[12.747884,49.366186],[12.681118,49.414503],[12.632025,49.461219],[12.555751,49.574855],[12.500302,49.639709],[12.457049,49.67981],[12.408215,49.713193],[12.39049,49.739652],[12.450227,49.800165],[12.471828,49.830085],[12.497563,49.853056],[12.512549,49.877421],[12.512033,49.895792],[12.457566,49.955504],[12.384133,49.998602],[12.27644,50.042346],[12.207813,50.097511],[12.182492,50.14805],[12.174999,50.175852],[12.12787,50.213421],[12.089733,50.26856],[12.089836,50.301736],[12.099241,50.310986],[12.134846,50.310935],[12.174792,50.288404],[12.231171,50.244892],[12.277318,50.181433],[12.305637,50.205696],[12.358554,50.273262],[12.452656,50.349795],[12.549033,50.39341],[12.635539,50.397053],[12.706439,50.40912],[12.765454,50.430979],[12.86829,50.42222],[12.942704,50.406458],[12.966837,50.416199],[12.997067,50.456042],[13.016446,50.490381],[13.181139,50.510483],[13.237673,50.576758],[13.269506,50.576422],[13.306093,50.586318],[13.341026,50.611407],[13.374616,50.621717],[13.401177,50.609314],[13.436162,50.601098],[13.472594,50.616937],[13.526544,50.692823],[13.556723,50.704657],[13.701417,50.716491],[13.898511,50.761295],[13.998453,50.801111],[14.096535,50.822764],[14.2018,50.861237],[14.369077,50.898754],[14.377035,50.91405],[14.299417,50.952601],[14.273372,50.976889],[14.255854,51.001848],[14.283242,51.02947],[14.319726,51.037815],[14.36732,51.026291],[14.507363,51.009858],[14.545707,50.993968],[14.559659,50.954926],[14.595213,50.918598],[14.623842,50.914748],[14.61361,50.855552],[14.658155,50.832608],[14.72337,50.814676],[14.766469,50.81832],[14.797474,50.842323],[14.809412,50.858963]]]},"type":"Feature","properties":{"ISO_A2":"CZ","NAME":"Czech Rep."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.198234,53.919061],[14.213686,53.870743],[14.17219,53.874386],[14.048373,53.863069],[13.925796,53.879037],[13.902129,53.938982],[13.921662,53.996653],[13.872466,54.036289],[13.827198,54.059595],[13.820376,54.092823],[13.827714,54.127239],[14.038864,54.034583],[14.211412,53.950351],[14.198234,53.919061]]],[[[11.282857,54.417971],[11.129275,54.416007],[11.070673,54.456005],[11.011762,54.466185],[11.043492,54.515484],[11.084936,54.533416],[11.233558,54.501273],[11.280273,54.438357],[11.282857,54.417971]]],[[[13.709169,54.382727],[13.73418,54.315445],[13.707308,54.281131],[13.594964,54.338182],[13.481999,54.337407],[13.41451,54.249557],[13.364384,54.245836],[13.190027,54.325625],[13.162122,54.364537],[13.156334,54.396938],[13.181242,54.508999],[13.176695,54.544216],[13.231472,54.582741],[13.239947,54.638422],[13.336788,54.697127],[13.422778,54.699323],[13.450063,54.649584],[13.491198,54.615375],[13.635995,54.576979],[13.657596,54.55959],[13.670721,54.535431],[13.603335,54.488199],[13.580494,54.463963],[13.601888,54.425154],[13.709169,54.382727]]],[[[8.587931,54.712707],[8.548967,54.688187],[8.453779,54.691055],[8.400345,54.714128],[8.417709,54.738675],[8.468145,54.757407],[8.510003,54.760301],[8.573462,54.748752],[8.587931,54.712707]]],[[[9.25497,54.808024],[9.341942,54.806319],[9.498728,54.840426],[9.615775,54.855412],[9.66125,54.834379],[9.724967,54.825543],[9.739747,54.825517],[9.745896,54.807198],[9.892244,54.780636],[9.953842,54.738261],[10.022159,54.673924],[10.028773,54.58132],[9.941337,54.514657],[9.86868,54.472438],[10.143495,54.488406],[10.17078,54.450191],[10.212431,54.408927],[10.360433,54.438331],[10.731573,54.316271],[10.955952,54.375699],[11.013416,54.379162],[11.064369,54.280511],[11.008558,54.181163],[10.810741,54.075149],[10.854563,54.00983],[10.917815,53.995309],[11.104263,54.009184],[11.399646,53.944615],[11.461141,53.964743],[11.700609,54.113545],[11.796314,54.145481],[12.111333,54.168322],[12.168694,54.225889],[12.296335,54.283767],[12.378501,54.347019],[12.575388,54.467373],[12.779096,54.445721],[12.898055,54.422673],[13.02859,54.411046],[13.147446,54.282733],[13.447996,54.140882],[13.724258,54.153232],[13.822237,54.019029],[13.865542,53.85338],[13.950394,53.801367],[14.025015,53.767416],[14.250014,53.731863],[14.258903,53.729641],[14.266086,53.70711],[14.279883,53.624737],[14.298693,53.556421],[14.414552,53.283518],[14.41233,53.216752],[14.410935,53.199027],[14.36856,53.105544],[14.293216,53.026738],[14.193687,52.982348],[14.138858,52.932868],[14.128626,52.87822],[14.253683,52.782515],[14.514029,52.645624],[14.619397,52.528499],[14.569685,52.431089],[14.554595,52.359647],[14.573922,52.314171],[14.615677,52.277636],[14.679859,52.249989],[14.705387,52.20746],[14.692365,52.150047],[14.704612,52.110205],[14.752568,52.081834],[14.748123,52.070801],[14.724766,52.030881],[14.692985,51.958017],[14.674898,51.904817],[14.601621,51.832392],[14.623945,51.770794],[14.681306,51.698188],[14.724869,51.661705],[14.738667,51.627133],[14.710916,51.544916],[14.724714,51.523884],[14.905995,51.463319],[14.935554,51.435362],[14.953072,51.377123],[15.016634,51.252738],[14.963821,51.095124],[14.917467,51.008721],[14.814218,50.87165],[14.809412,50.858963],[14.797474,50.842323],[14.766469,50.81832],[14.72337,50.814676],[14.658155,50.832608],[14.61361,50.855552],[14.623842,50.914748],[14.595213,50.918598],[14.559659,50.954926],[14.545707,50.993968],[14.507363,51.009858],[14.36732,51.026291],[14.319726,51.037815],[14.283242,51.02947],[14.255854,51.001848],[14.273372,50.976889],[14.299417,50.952601],[14.377035,50.91405],[14.369077,50.898754],[14.2018,50.861237],[14.096535,50.822764],[13.998453,50.801111],[13.898511,50.761295],[13.701417,50.716491],[13.556723,50.704657],[13.526544,50.692823],[13.472594,50.616937],[13.436162,50.601098],[13.401177,50.609314],[13.374616,50.621717],[13.341026,50.611407],[13.306093,50.586318],[13.269506,50.576422],[13.237673,50.576758],[13.181139,50.510483],[13.016446,50.490381],[12.997067,50.456042],[12.966837,50.416199],[12.942704,50.406458],[12.86829,50.42222],[12.765454,50.430979],[12.706439,50.40912],[12.635539,50.397053],[12.549033,50.39341],[12.452656,50.349795],[12.358554,50.273262],[12.305637,50.205696],[12.277318,50.181433],[12.231171,50.244892],[12.174792,50.288404],[12.134846,50.310935],[12.099241,50.310986],[12.089836,50.301736],[12.089733,50.26856],[12.12787,50.213421],[12.174999,50.175852],[12.182492,50.14805],[12.207813,50.097511],[12.27644,50.042346],[12.384133,49.998602],[12.457566,49.955504],[12.512033,49.895792],[12.512549,49.877421],[12.497563,49.853056],[12.471828,49.830085],[12.450227,49.800165],[12.39049,49.739652],[12.408215,49.713193],[12.457049,49.67981],[12.500302,49.639709],[12.555751,49.574855],[12.632025,49.461219],[12.681118,49.414503],[12.747884,49.366186],[12.813409,49.329367],[12.916659,49.330478],[13.023733,49.260094],[13.140521,49.158343],[13.227854,49.11168],[13.288781,49.097443],[13.339114,49.060778],[13.383711,49.008094],[13.401177,48.977605],[13.440761,48.955591],[13.547628,48.959673],[13.684984,48.876707],[13.769889,48.815987],[13.814744,48.766946],[13.80291,48.747516],[13.797484,48.686434],[13.798879,48.621684],[13.78534,48.587474],[13.723948,48.54236],[13.692167,48.532774],[13.675166,48.523033],[13.48665,48.581841],[13.471716,48.571816],[13.45983,48.56453],[13.409342,48.394152],[13.374564,48.361364],[13.322836,48.331262],[13.215245,48.30191],[13.14047,48.289921],[13.082127,48.27509],[12.897435,48.203699],[12.814236,48.160859],[12.760389,48.106986],[12.760028,48.075981],[12.849893,47.984823],[12.953556,47.890617],[12.954176,47.80778],[12.908287,47.74582],[12.897642,47.721894],[12.928131,47.712824],[12.985492,47.709414],[13.033551,47.698743],[13.054067,47.655128],[13.047917,47.579163],[13.031536,47.508005],[13.014327,47.478084],[12.968025,47.475681],[12.878935,47.506455],[12.809379,47.542163],[12.782817,47.564177],[12.781163,47.590455],[12.79615,47.607017],[12.771397,47.639392],[12.685872,47.669313],[12.594198,47.65629],[12.526605,47.636137],[12.482887,47.637299],[12.435758,47.666109],[12.363204,47.688201],[12.268326,47.702748],[12.209312,47.718276],[12.19691,47.709078],[12.203834,47.64673],[12.185644,47.619523],[11.716836,47.583478],[11.573899,47.549734],[11.469926,47.506093],[11.392928,47.487179],[11.374117,47.460256],[11.297946,47.424909],[11.211957,47.413644],[11.191183,47.425193],[11.136044,47.408864],[11.041941,47.393102],[10.98086,47.398167],[10.952128,47.426718],[10.89394,47.470436],[10.870582,47.50077],[10.873063,47.520201],[10.741598,47.524102],[10.658709,47.547227],[10.482854,47.541801],[10.439446,47.551568],[10.430351,47.541052],[10.403944,47.416977],[10.369114,47.36605],[10.312787,47.313443],[10.240595,47.284143],[10.183027,47.27882],[10.185766,47.317164],[10.200287,47.363414],[10.158791,47.374266],[10.096469,47.379589],[10.066342,47.393335],[10.074248,47.428527],[10.059831,47.449094],[10.034096,47.473588],[9.971619,47.505318],[9.839172,47.552292],[9.748894,47.575546],[9.715097,47.550767],[9.650605,47.525885],[9.548906,47.53405],[9.523998,47.524205],[9.349952,47.59893],[9.18283,47.670682],[9.127536,47.670682],[8.881143,47.656394],[8.874012,47.662672],[8.83112,47.7036],[8.793086,47.716571],[8.770142,47.709905],[8.754794,47.698071],[8.728284,47.70006],[8.617903,47.766103],[8.572635,47.775637],[8.509848,47.766878],[8.435796,47.73135],[8.403446,47.687787],[8.413265,47.662698],[8.451712,47.65182],[8.552326,47.659133],[8.567054,47.651924],[8.570464,47.63779],[8.559509,47.624018],[8.477653,47.612701],[8.454037,47.596191],[8.430059,47.592134],[8.414763,47.589602],[8.327792,47.606914],[8.198291,47.606914],[8.093801,47.576166],[7.927093,47.563841],[7.698063,47.569887],[7.615587,47.592703],[7.565461,47.606552],[7.529391,47.673886],[7.538589,47.773622],[7.593263,47.905655],[7.608456,48.002574],[7.584168,48.064302],[7.616621,48.156802],[7.705711,48.280051],[7.765139,48.410017],[7.794801,48.54683],[7.837951,48.63605],[7.922752,48.698527],[8.12398,48.873296],[8.14031,48.886422],[8.134832,48.9736],[8.080623,48.985873],[8.001248,49.010962],[7.799194,49.041916],[7.610936,49.06176],[7.525515,49.086358],[7.450533,49.152194],[7.404231,49.153072],[7.313383,49.12956],[7.199902,49.113643],[7.117375,49.127544],[7.06575,49.124857],[7.036708,49.112713],[7.022135,49.123462],[7.001464,49.179867],[6.958315,49.19462],[6.891187,49.207539],[6.849536,49.201958],[6.8207,49.17395],[6.776259,49.154158],[6.735434,49.160617],[6.607587,49.290868],[6.574669,49.319677],[6.566349,49.346213],[6.53431,49.39466],[6.458138,49.442848],[6.382277,49.458144],[6.344295,49.452744],[6.348481,49.512689],[6.37835,49.599608],[6.406772,49.64498],[6.444599,49.682032],[6.484804,49.707819],[6.493795,49.754379],[6.487284,49.798485],[6.440879,49.805307],[6.324607,49.837888],[6.256032,49.87215],[6.204924,49.915145],[6.138158,49.974314],[6.109736,50.034362],[6.108341,50.094229],[6.116506,50.120972],[6.121311,50.139369],[6.175055,50.232645],[6.364501,50.316154],[6.343623,50.400257],[6.340936,50.451753],[6.294944,50.485498],[6.203064,50.499114],[6.178672,50.522498],[6.16844,50.545339],[6.235981,50.596705],[6.154488,50.637271],[6.119451,50.679232],[6.00597,50.732227],[5.993929,50.750443],[6.048448,50.904903],[6.006848,50.949965],[5.95512,50.972935],[5.89471,50.984227],[5.867167,51.005673],[5.857503,51.030115],[5.868407,51.045308],[5.939204,51.040812],[5.961063,51.056677],[6.129993,51.147421],[6.136918,51.164836],[6.113353,51.174706],[6.082451,51.179977],[6.074751,51.199046],[6.075836,51.224109],[6.166218,51.35485],[6.192832,51.410609],[6.198878,51.449986],[6.193245,51.488899],[6.141569,51.550084],[6.091132,51.598918],[6.089375,51.637779],[6.052737,51.658242],[5.948505,51.762396],[5.948764,51.802678],[6.007572,51.833994],[6.089841,51.853941],[6.117229,51.8704],[6.166528,51.880761],[6.297115,51.850737],[6.355716,51.824666],[6.372149,51.830015],[6.424962,51.858385],[6.517566,51.853941],[6.741842,51.910889],[6.775225,51.938277],[6.80034,51.967397],[6.802407,51.980187],[6.715642,52.036204],[6.712955,52.0569],[6.724479,52.080232],[6.749025,52.098681],[6.80034,52.111212],[6.855065,52.135784],[6.97728,52.205496],[7.019603,52.266035],[7.032625,52.331483],[7.035158,52.380214],[7.001826,52.418971],[6.968133,52.444112],[6.922038,52.440262],[6.832483,52.442277],[6.748818,52.464033],[6.702981,52.499225],[6.691613,52.530179],[6.712438,52.549661],[6.718794,52.573587],[6.70541,52.597668],[6.710733,52.617874],[6.748457,52.6341],[7.013143,52.633532],[7.032987,52.65136],[7.050867,52.744791],[7.117065,52.887005],[7.179541,52.966225],[7.189928,52.999504],[7.188947,53.187193],[7.197318,53.282278],[7.15205,53.326978],[7.053348,53.375812],[7.074328,53.477615],[7.107091,53.55699],[7.206413,53.654555],[7.285271,53.681323],[7.62923,53.697291],[8.009258,53.690728],[8.167078,53.543399],[8.108477,53.467693],[8.200771,53.432398],[8.245213,53.445317],[8.279009,53.511204],[8.30154,53.58412],[8.33389,53.606186],[8.451402,53.551719],[8.49264,53.514357],[8.495223,53.394235],[8.538528,53.556886],[8.506282,53.670729],[8.5284,53.78111],[8.575632,53.838471],[8.618937,53.875006],[8.897783,53.835681],[9.205568,53.855938],[9.321943,53.81346],[9.585389,53.600501],[9.673136,53.565645],[9.784034,53.554638],[9.631278,53.600191],[9.312021,53.859142],[9.21642,53.891233],[9.069659,53.900948],[8.978088,53.926218],[8.920417,53.965311],[8.903467,54.00027],[8.906671,54.260771],[8.851584,54.29958],[8.780374,54.313016],[8.736036,54.295239],[8.644878,54.294955],[8.625758,54.353944],[8.648082,54.397662],[8.83112,54.427531],[8.951836,54.46758],[8.957211,54.538325],[8.880936,54.593955],[8.789676,54.695938],[8.682292,54.79185],[8.670303,54.903393],[8.670717,54.903316],[8.857269,54.901145],[8.90295,54.896908],[9.185827,54.844663],[9.25497,54.808024]]],[[[8.307741,54.78694],[8.284694,54.767097],[8.295649,54.908277],[8.405203,55.058758],[8.451505,55.055348],[8.404066,55.01473],[8.390424,54.986256],[8.3712,54.929412],[8.379882,54.899853],[8.629582,54.89174],[8.60054,54.865359],[8.347325,54.847609],[8.307741,54.78694]]]]},"type":"Feature","properties":{"ISO_A2":"DE","NAME":"Germany"}},{"geometry":{"type":"Polygon","coordinates":[[[43.24597,11.499815],[43.159412,11.365715],[43.04867,11.19433],[42.922734,10.999303],[42.844135,10.997959],[42.78295,11.009277],[42.741247,11.042375],[42.654999,11.078342],[42.557744,11.080771],[42.46514,11.047078],[42.308095,11.00522],[42.166243,10.991577],[42.052142,10.968349],[41.95747,10.941038],[41.872204,10.955817],[41.798204,10.980467],[41.782081,11.187793],[41.764666,11.412895],[41.766526,11.589112],[41.792674,11.686057],[41.81567,11.723781],[41.949616,11.857881],[41.995866,11.912374],[42.149087,12.134143],[42.280345,12.324261],[42.378478,12.466423],[42.408606,12.49438],[42.449947,12.521355],[42.479402,12.513603],[42.670088,12.376583],[42.703678,12.38033],[42.767447,12.42286],[42.825324,12.569362],[42.86589,12.622796],[42.883305,12.621271],[43.005675,12.662328],[43.116728,12.708604],[43.130835,12.660468],[43.298577,12.463891],[43.353457,12.367049],[43.409785,12.189954],[43.380329,12.091252],[43.336714,12.027018],[43.272015,11.969554],[43.04805,11.829046],[42.799073,11.739387],[42.640013,11.560122],[42.521777,11.572162],[42.53976,11.504311],[42.583789,11.496766],[42.652725,11.509556],[42.789771,11.561724],[42.911521,11.586632],[43.042779,11.588492],[43.161738,11.566013],[43.24597,11.499815]]]},"type":"Feature","properties":{"ISO_A2":"DJ","NAME":"Djibouti"}},{"geometry":{"type":"Polygon","coordinates":[[[-61.281706,15.249044],[-61.37537,15.227288],[-61.415729,15.399836],[-61.481151,15.525151],[-61.469938,15.603466],[-61.458129,15.633103],[-61.320024,15.585044],[-61.277262,15.526701],[-61.251062,15.37317],[-61.281706,15.249044]]]},"type":"Feature","properties":{"ISO_A2":"DM","NAME":"Dominica"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.361405,54.891637],[11.538345,54.829573],[11.658131,54.833139],[11.739573,54.807404],[11.759004,54.767665],[11.765928,54.679453],[11.680352,54.653693],[11.585887,54.662452],[11.45742,54.628862],[11.035533,54.773091],[11.041735,54.893342],[11.058581,54.940574],[11.258466,54.951788],[11.361405,54.891637]]],[[[10.484353,54.847557],[10.417277,54.83717],[10.340485,54.858926],[10.215635,54.940988],[10.199926,54.962744],[10.265555,54.948843],[10.346997,54.905977],[10.413659,54.89683],[10.50492,54.860528],[10.484353,54.847557]]],[[[12.54924,54.965767],[12.510999,54.950858],[12.35752,54.961813],[12.184507,54.89249],[12.118878,54.914426],[12.143683,54.958713],[12.16177,54.974784],[12.219957,54.993594],[12.258818,55.021086],[12.274011,55.064133],[12.310081,55.04093],[12.417155,55.031215],[12.469554,55.017469],[12.513273,54.997315],[12.54924,54.965767]]],[[[10.061226,54.886392],[9.95715,54.872465],[9.903923,54.896649],[9.806255,54.906003],[9.771218,55.059895],[9.781243,55.069042],[9.830336,55.058242],[9.998801,54.986463],[10.057712,54.907915],[10.061226,54.886392]]],[[[10.734053,54.750741],[10.689715,54.745083],[10.62946,54.826059],[10.621709,54.851433],[10.692505,54.903264],[10.738291,54.96202],[10.856733,55.052196],[10.925049,55.157874],[10.951094,55.15622],[10.920812,55.062117],[10.765266,54.799653],[10.734053,54.750741]]],[[[15.087689,55.021861],[15.050792,55.004912],[14.885531,55.032972],[14.6842,55.10227],[14.713655,55.238024],[14.765332,55.296728],[15.132648,55.144541],[15.137092,55.08718],[15.087689,55.021861]]],[[[10.645066,55.609836],[10.686821,55.557617],[10.738084,55.446332],[10.819216,55.321895],[10.785316,55.269753],[10.808364,55.203013],[10.785213,55.133379],[10.623879,55.052454],[10.442805,55.048785],[10.254599,55.087904],[9.988776,55.163197],[9.967382,55.205468],[9.930071,55.228929],[9.858964,55.357242],[9.860618,55.515475],[9.994253,55.535319],[10.286122,55.610818],[10.353611,55.598984],[10.423995,55.56033],[10.505127,55.558056],[10.622742,55.612833],[10.645066,55.609836]]],[[[12.665718,55.596555],[12.571564,55.554025],[12.550893,55.556247],[12.520301,55.61459],[12.56991,55.650118],[12.599262,55.680219],[12.620036,55.679367],[12.648458,55.646785],[12.665718,55.596555]]],[[[10.607343,55.783055],[10.590289,55.765072],[10.526934,55.783779],[10.520319,55.848478],[10.544297,55.906614],[10.516082,55.958548],[10.547191,55.991931],[10.636281,55.914158],[10.661706,55.877572],[10.62729,55.833879],[10.607343,55.783055]]],[[[12.568773,55.785045],[12.57115,55.684973],[12.545209,55.655828],[12.507072,55.636604],[12.407129,55.61627],[12.320623,55.587822],[12.243418,55.537902],[12.214996,55.466511],[12.275354,55.414241],[12.385115,55.385638],[12.413124,55.286186],[12.322483,55.237094],[12.089939,55.188156],[12.065548,55.069921],[12.073093,54.976748],[12.068855,54.909052],[12.050355,54.815311],[11.862356,54.772626],[11.740917,54.915356],[11.739883,54.972459],[11.703606,55.039173],[11.696785,55.095991],[11.65379,55.186916],[11.47592,55.21154],[11.40688,55.21477],[11.310245,55.197871],[11.286371,55.204434],[11.170719,55.328613],[11.189736,55.465607],[11.128034,55.53475],[11.119559,55.566066],[11.121006,55.600741],[11.07026,55.629318],[11.008765,55.644459],[10.978896,55.721535],[11.049589,55.740216],[11.224359,55.731224],[11.275519,55.736469],[11.322234,55.752515],[11.463724,55.879277],[11.45959,55.907234],[11.47468,55.943459],[11.627745,55.956895],[11.695855,55.907906],[11.682212,55.829512],[11.690894,55.729002],[11.783602,55.701665],[11.819672,55.697634],[11.858326,55.771893],[11.885404,55.807963],[11.922094,55.828065],[11.9346,55.895917],[11.912793,55.937284],[11.866387,55.968186],[12.039607,56.052135],[12.218924,56.118642],[12.323207,56.122104],[12.428213,56.105852],[12.525778,56.083399],[12.578695,56.064072],[12.608357,56.033014],[12.542935,55.958962],[12.524848,55.918448],[12.568773,55.785045]]],[[[11.052173,57.252526],[11.011452,57.229117],[10.873786,57.262242],[10.934558,57.308595],[11.085763,57.329938],[11.174543,57.32291],[11.076875,57.276918],[11.052173,57.252526]]],[[[10.436914,57.172273],[10.338522,57.021352],[10.296147,56.999105],[10.287052,56.82294],[10.296664,56.780927],[10.282711,56.620524],[10.383584,56.554817],[10.490244,56.52053],[10.845881,56.521718],[10.882778,56.492857],[10.926186,56.443273],[10.894457,56.359041],[10.856423,56.295531],[10.75338,56.241994],[10.621192,56.2021],[10.538923,56.200343],[10.426992,56.276152],[10.373765,56.251554],[10.318781,56.2129],[10.226694,56.005367],[10.182976,55.865169],[10.159411,55.8538],[10.107321,55.874471],[10.017404,55.876073],[9.903716,55.842845],[9.962007,55.813079],[10.023606,55.761403],[9.999008,55.735565],[9.899065,55.707582],[9.810389,55.65097],[9.773285,55.608156],[9.661457,55.557488],[9.591074,55.493202],[9.625594,55.413595],[9.64027,55.343651],[9.670966,55.266394],[9.643267,55.204744],[9.504774,55.116248],[9.453718,55.039535],[9.572367,55.040517],[9.645437,55.022792],[9.688226,55.000157],[9.732357,54.968015],[9.705279,54.928301],[9.739747,54.825517],[9.724967,54.825543],[9.66125,54.834379],[9.615775,54.855412],[9.498728,54.840426],[9.341942,54.806319],[9.25497,54.808024],[9.185827,54.844663],[8.90295,54.896908],[8.857269,54.901145],[8.670717,54.903316],[8.670303,54.903393],[8.661415,54.985921],[8.638264,55.045555],[8.572945,55.134258],[8.669786,55.155678],[8.65108,55.328561],[8.61594,55.41822],[8.345258,55.510307],[8.132145,55.599811],[8.181341,55.901188],[8.202321,55.982371],[8.121499,56.139881],[8.129871,56.321214],[8.163977,56.606907],[8.231777,56.618043],[8.28149,56.6167],[8.473106,56.565437],[8.552894,56.560321],[8.607671,56.514484],[8.671647,56.495673],[8.718052,56.544301],[8.736139,56.627448],[8.888068,56.735039],[8.994521,56.774829],[9.067075,56.793872],[9.140352,56.750438],[9.196369,56.701656],[9.209702,56.808419],[9.254867,57.01174],[9.110483,57.04365],[8.992764,57.016107],[8.876079,56.887277],[8.772002,56.725272],[8.603124,56.710389],[8.468352,56.664552],[8.346705,56.712094],[8.268261,56.754004],[8.266297,56.815318],[8.284074,56.852344],[8.427011,56.984429],[8.618523,57.111269],[8.811483,57.110054],[8.95225,57.150569],[9.036276,57.1554],[9.298792,57.146538],[9.433564,57.17434],[9.55428,57.232476],[9.815143,57.478404],[9.962317,57.580982],[10.259043,57.617052],[10.533342,57.735391],[10.609926,57.73689],[10.480942,57.648678],[10.460271,57.614571],[10.444665,57.562197],[10.537063,57.448561],[10.517529,57.37934],[10.524144,57.243225],[10.436914,57.172273]]]]},"type":"Feature","properties":{"ISO_A2":"DK","NAME":"Denmark"}},{"geometry":{"type":"Polygon","coordinates":[[[-71.768327,18.039158],[-71.763754,18.203954],[-71.737244,18.270823],[-71.761893,18.34131],[-71.872584,18.416215],[-71.940384,18.512617],[-72.00038,18.597883],[-71.986867,18.610337],[-71.866486,18.614161],[-71.824241,18.645529],[-71.743212,18.732888],[-71.727063,18.80322],[-71.733626,18.856395],[-71.786388,18.920034],[-71.80711,18.987007],[-71.74205,19.045504],[-71.657042,19.130745],[-71.645311,19.163508],[-71.647223,19.19596],[-71.746494,19.285852],[-71.75316,19.324454],[-71.706961,19.421967],[-71.711457,19.486589],[-71.757397,19.688178],[-71.779231,19.718151],[-71.735099,19.735126],[-71.706083,19.795174],[-71.667403,19.848608],[-71.615959,19.877443],[-71.557746,19.895375],[-71.441706,19.89398],[-71.281354,19.847368],[-71.235956,19.848169],[-71.081935,19.890492],[-70.954165,19.913979],[-70.833862,19.887236],[-70.785235,19.850856],[-70.685964,19.793237],[-70.6362,19.775641],[-70.479362,19.776959],[-70.436419,19.771248],[-70.304747,19.67606],[-70.193849,19.638052],[-70.129461,19.63614],[-70.014041,19.672934],[-69.95681,19.671849],[-69.891206,19.589761],[-69.878339,19.473282],[-69.823433,19.367139],[-69.739407,19.299236],[-69.324962,19.327735],[-69.232487,19.271847],[-69.264242,19.2257],[-69.322766,19.201051],[-69.519756,19.212006],[-69.605953,19.206477],[-69.623264,19.16051],[-69.623652,19.117826],[-69.508362,19.10762],[-69.395268,19.08607],[-69.28021,19.051887],[-69.163034,19.028451],[-69.031285,19.013207],[-68.90137,18.988454],[-68.684743,18.90479],[-68.445429,18.714465],[-68.381402,18.67116],[-68.339156,18.6115],[-68.359284,18.538094],[-68.444835,18.417739],[-68.493204,18.378982],[-68.563768,18.355469],[-68.612189,18.306273],[-68.658827,18.222041],[-68.68743,18.214935],[-68.720968,18.218397],[-68.778484,18.266121],[-68.819515,18.33932],[-68.93496,18.408024],[-69.072264,18.399239],[-69.274526,18.439857],[-69.396999,18.420142],[-69.519446,18.415672],[-69.64471,18.436369],[-69.770671,18.443552],[-69.8964,18.417713],[-70.018305,18.373607],[-70.063315,18.345651],[-70.141605,18.277102],[-70.183127,18.251754],[-70.47993,18.21726],[-70.565403,18.267567],[-70.644675,18.33622],[-70.758854,18.345599],[-70.924322,18.292475],[-71.027855,18.2732],[-71.069972,18.250333],[-71.082245,18.224366],[-71.082632,18.128351],[-71.106016,18.070034],[-71.267272,17.849608],[-71.3583,17.694114],[-71.395714,17.646107],[-71.438941,17.635616],[-71.518368,17.725017],[-71.569063,17.757366],[-71.63172,17.773618],[-71.658308,17.821135],[-71.657249,17.888676],[-71.673759,17.954098],[-71.712465,18.005465],[-71.768327,18.039158]]]},"type":"Feature","properties":{"ISO_A2":"DO","NAME":"Dominican Rep."}},{"geometry":{"type":"Polygon","coordinates":[[[8.576562,36.937203],[8.597698,36.883899],[8.601263,36.833928],[8.506696,36.787522],[8.444219,36.760754],[8.369598,36.632493],[8.230743,36.545263],[8.207644,36.518934],[8.208781,36.495137],[8.30278,36.45563],[8.333993,36.418165],[8.348772,36.367987],[8.306708,36.188747],[8.280249,36.050978],[8.24573,35.870576],[8.247022,35.801794],[8.282937,35.719267],[8.318077,35.65493],[8.329032,35.582221],[8.316423,35.403111],[8.359831,35.299629],[8.394248,35.203872],[8.312082,35.084629],[8.276839,34.979467],[8.254721,34.828934],[8.245626,34.734056],[8.192813,34.646309],[8.123463,34.563937],[8.045587,34.512674],[7.949417,34.468697],[7.838313,34.410303],[7.748499,34.254499],[7.554506,34.124997],[7.513888,34.080504],[7.495595,33.976531],[7.500142,33.832457],[7.534352,33.717916],[7.627524,33.54865],[7.709225,33.362279],[7.731342,33.268512],[7.762658,33.233114],[7.877225,33.17211],[8.075611,33.08904],[8.112508,33.055321],[8.2109,32.926724],[8.304227,32.696299],[8.333373,32.543595],[8.515119,32.422311],[8.682912,32.310431],[8.844039,32.212117],[9.018912,32.105379],[9.044027,32.072358],[9.102318,31.846144],[9.160247,31.621352],[9.224016,31.373693],[9.28794,31.125336],[9.363284,30.832925],[9.406072,30.666811],[9.457955,30.465376],[9.518727,30.229421],[9.420955,30.179321],[9.310264,30.115242],[9.390983,29.993648],[9.546219,29.795934],[9.640166,29.636408],[9.672619,29.566981],[9.745948,29.368957],[9.805221,29.176927],[9.820724,29.114786],[9.842531,28.967018],[9.815608,28.560221],[9.858241,28.043301],[9.915964,27.785694],[9.825271,27.55297],[9.74755,27.330864],[9.752511,27.219321],[9.795402,27.044784],[9.837157,26.915825],[9.894415,26.847922],[9.883252,26.63083],[9.859326,26.551971],[9.68497,26.438232],[9.491442,26.333742],[9.437905,26.24553],[9.422402,26.147086],[9.448189,26.067143],[9.581255,25.890125],[9.781088,25.624276],[10.000713,25.332097],[10.019058,25.258562],[10.028153,25.051029],[10.119517,24.790218],[10.218632,24.67622],[10.255839,24.591032],[10.325809,24.530234],[10.395883,24.485586],[10.438981,24.480211],[10.686097,24.55137],[11.108242,24.434013],[11.507649,24.31433],[11.536898,24.290843],[11.624231,24.139715],[11.767013,23.892599],[11.873053,23.694833],[11.96788,23.517867],[11.45003,23.212589],[10.932181,22.907284],[10.414383,22.602006],[9.896533,22.296727],[9.378684,21.991423],[8.860886,21.686144],[8.343036,21.380866],[7.825187,21.075561],[7.481745,20.873093],[7.263361,20.694499],[6.989372,20.470534],[6.73068,20.248067],[6.527075,20.072961],[6.26337,19.846153],[6.130665,19.731974],[5.836626,19.479147],[5.748363,19.434215],[5.358722,19.359542],[5.00138,19.291071],[4.671322,19.227767],[4.445755,19.18454],[4.227629,19.14276],[3.91018,19.083745],[3.683476,19.041629],[3.438736,18.996153],[3.400857,18.988428],[3.356467,18.986645],[3.323446,18.988402],[3.255957,19.013258],[3.174205,19.072893],[3.119686,19.103175],[3.106095,19.150098],[3.137876,19.212161],[3.177253,19.268178],[3.192343,19.312077],[3.219628,19.345383],[3.254406,19.372616],[3.255853,19.410934],[3.22707,19.473566],[3.201645,19.560408],[3.20273,19.718306],[3.203402,19.770757],[3.20366,19.789697],[3.13028,19.85021],[2.99251,19.916588],[2.865696,19.95594],[2.807922,19.969453],[2.667776,19.992914],[2.474196,20.035031],[2.406189,20.063866],[2.280822,20.210317],[2.219327,20.247808],[1.928803,20.272691],[1.832374,20.296849],[1.753206,20.331602],[1.685407,20.378369],[1.647373,20.458855],[1.636004,20.524355],[1.610631,20.555593],[1.290237,20.713594],[1.208846,20.767312],[1.165748,20.817438],[1.164095,20.891335],[1.172776,20.981975],[1.159134,21.062487],[1.145543,21.102226],[0.999402,21.197776],[0.671928,21.411872],[0.344455,21.625993],[0.016981,21.840114],[-0.310544,22.05421],[-0.638018,22.268331],[-0.965491,22.482452],[-1.292965,22.696548],[-1.620438,22.910669],[-1.947912,23.12479],[-2.275411,23.338886],[-2.602911,23.553007],[-2.930384,23.767128],[-3.257858,23.981224],[-3.585331,24.195345],[-3.912805,24.409466],[-4.240304,24.623562],[-4.517006,24.804507],[-4.82262,24.995581],[-5.049505,25.135469],[-5.275021,25.27453],[-5.516945,25.423771],[-5.674506,25.516427],[-5.862557,25.627015],[-6.050607,25.737602],[-6.238658,25.84819],[-6.426708,25.958803],[-6.614759,26.069417],[-6.802809,26.180004],[-6.99086,26.290592],[-7.178936,26.40118],[-7.367012,26.511767],[-7.555063,26.622355],[-7.743114,26.732942],[-7.931164,26.843556],[-8.119215,26.954169],[-8.307265,27.064757],[-8.495316,27.175344],[-8.683366,27.285932],[-8.683366,27.49026],[-8.683366,27.656452],[-8.683366,27.90039],[-8.683366,28.112031],[-8.683366,28.323698],[-8.683366,28.469244],[-8.683366,28.620734],[-8.678405,28.689386],[-8.659905,28.718609],[-8.558335,28.767857],[-8.399301,28.880175],[-8.340493,28.930172],[-8.265175,28.980505],[-7.998912,29.132434],[-7.943877,29.174757],[-7.685133,29.349527],[-7.624594,29.37521],[-7.485765,29.392237],[-7.427681,29.424974],[-7.349753,29.494737],[-7.234902,29.574888],[-7.160203,29.612663],[-7.142427,29.619588],[-7.094936,29.625169],[-6.855545,29.601604],[-6.755112,29.583853],[-6.635378,29.56879],[-6.597757,29.57897],[-6.565666,29.603878],[-6.520553,29.659844],[-6.510708,29.726015],[-6.507892,29.783764],[-6.500864,29.809111],[-6.479728,29.820376],[-6.427612,29.816139],[-6.357617,29.80831],[-6.214809,29.810687],[-6.166517,29.818955],[-6.004305,29.831254],[-5.775017,29.86903],[-5.593322,29.917967],[-5.448783,29.956931],[-5.293651,30.058657],[-5.180118,30.166169],[-5.061934,30.326418],[-4.968244,30.465376],[-4.77854,30.552373],[-4.619635,30.604799],[-4.52915,30.625547],[-4.322857,30.698876],[-4.148785,30.809593],[-3.985358,30.913514],[-3.860069,30.927234],[-3.702017,30.944468],[-3.666825,30.964028],[-3.626905,31.000925],[-3.624502,31.065753],[-3.672509,31.111383],[-3.730154,31.135387],[-3.770979,31.161793],[-3.811829,31.166599],[-3.833404,31.197812],[-3.821389,31.255457],[-3.815162,31.308839],[-3.789143,31.361807],[-3.796429,31.4371],[-3.837099,31.51234],[-3.849553,31.566394],[-3.846659,31.619879],[-3.826738,31.661892],[-3.768162,31.689539],[-3.70026,31.700081],[-3.604606,31.686774],[-3.43981,31.704551],[-3.017356,31.834285],[-2.988236,31.87423],[-2.961132,31.963941],[-2.930849,32.042541],[-2.887183,32.068844],[-2.863411,32.074709],[-2.722593,32.095767],[-2.523251,32.125688],[-2.448398,32.130003],[-2.231279,32.121321],[-2.072814,32.115017],[-1.816964,32.104811],[-1.635166,32.09954],[-1.477036,32.094889],[-1.275343,32.088998],[-1.22594,32.107239],[-1.22594,32.164549],[-1.262114,32.271131],[-1.240306,32.337587],[-1.162585,32.39916],[-1.065537,32.468303],[-1.111012,32.552277],[-1.188242,32.608475],[-1.296375,32.67568],[-1.352134,32.703379],[-1.450009,32.784821],[-1.510006,32.877632],[-1.550727,33.073589],[-1.625089,33.18335],[-1.679194,33.318664],[-1.631239,33.566763],[-1.702965,33.716857],[-1.714128,33.781814],[-1.714696,33.858192],[-1.692656,33.990277],[-1.706919,34.176054],[-1.791797,34.367928],[-1.751851,34.433247],[-1.733274,34.467044],[-1.739449,34.496086],[-1.816602,34.55709],[-1.849649,34.607319],[-1.832441,34.654629],[-1.792211,34.723204],[-1.795621,34.751884],[-1.920885,34.835574],[-2.131776,34.970837],[-2.190765,35.0298],[-2.219626,35.104188],[-2.017752,35.085068],[-1.913263,35.094241],[-1.673613,35.183124],[-1.483728,35.303091],[-1.335856,35.36425],[-1.205399,35.495767],[-1.08768,35.578836],[-0.917458,35.668417],[-0.426118,35.861532],[-0.350774,35.86316],[-0.189156,35.81908],[-0.04826,35.8328],[0.047935,35.900522],[0.151624,36.063122],[0.312235,36.162341],[0.514935,36.261818],[0.790784,36.356541],[0.971652,36.443926],[1.257216,36.51958],[1.974484,36.567587],[2.342834,36.610324],[2.593361,36.60066],[2.846473,36.738843],[2.972873,36.784448],[3.52054,36.795119],[3.779026,36.896198],[4.758087,36.896353],[4.877873,36.862401],[4.995385,36.808038],[5.19558,36.676806],[5.295419,36.648228],[5.42461,36.675436],[5.72547,36.799615],[6.064777,36.864236],[6.249159,36.938314],[6.32781,37.046059],[6.48656,37.085747],[6.575857,37.003039],[6.927567,36.919426],[7.143471,36.943353],[7.238453,36.968493],[7.204243,37.092362],[7.432446,37.059289],[7.607732,36.999757],[7.791597,36.880281],[7.910453,36.856355],[8.127184,36.910331],[8.576562,36.937203]]]},"type":"Feature","properties":{"ISO_A2":"DZ","NAME":"Algeria"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-80.131589,-2.9731],[-80.150709,-3.011754],[-80.245717,-3.008343],[-80.272924,-2.995941],[-80.272149,-2.951809],[-80.249825,-2.811869],[-80.223702,-2.753165],[-80.145697,-2.696321],[-80.080765,-2.668829],[-79.997282,-2.67379],[-79.909019,-2.72557],[-80.01325,-2.819518],[-80.071179,-2.83378],[-80.0934,-2.845872],[-80.131589,-2.9731]]],[[[-90.423932,-1.339918],[-90.464395,-1.341985],[-90.519534,-1.299094],[-90.477211,-1.220959],[-90.431968,-1.239872],[-90.39874,-1.2623],[-90.379155,-1.292272],[-90.423932,-1.339918]]],[[[-89.418878,-0.911004],[-89.536596,-0.952345],[-89.577292,-0.933741],[-89.602613,-0.913432],[-89.608582,-0.888576],[-89.543469,-0.826874],[-89.479933,-0.793388],[-89.423141,-0.722281],[-89.318419,-0.680113],[-89.287852,-0.689828],[-89.267414,-0.704608],[-89.259378,-0.728379],[-89.29488,-0.785947],[-89.358364,-0.826047],[-89.418878,-0.911004]]],[[[-90.334868,-0.77158],[-90.387087,-0.773337],[-90.542142,-0.676496],[-90.531704,-0.581411],[-90.469744,-0.517332],[-90.269394,-0.484673],[-90.185317,-0.544824],[-90.192732,-0.658823],[-90.2611,-0.742022],[-90.315438,-0.757266],[-90.334868,-0.77158]]],[[[-91.42599,-0.460798],[-91.526346,-0.478265],[-91.610733,-0.443952],[-91.646571,-0.390829],[-91.654142,-0.310988],[-91.646674,-0.284478],[-91.460148,-0.255643],[-91.399377,-0.322512],[-91.399971,-0.420904],[-91.42599,-0.460798]]],[[[-90.573949,-0.333984],[-90.620458,-0.364267],[-90.809051,-0.329437],[-90.867781,-0.271353],[-90.820368,-0.192184],[-90.780371,-0.160455],[-90.667535,-0.189807],[-90.553304,-0.278381],[-90.573949,-0.333984]]],[[[-91.272149,0.025167],[-91.210034,-0.039325],[-91.176238,-0.223087],[-90.975527,-0.416873],[-90.950644,-0.525187],[-90.968447,-0.575572],[-90.958939,-0.595364],[-90.862536,-0.671742],[-90.799672,-0.752047],[-90.905505,-0.940562],[-91.131073,-1.019627],[-91.371549,-1.017044],[-91.419066,-0.996683],[-91.483558,-0.924646],[-91.495417,-0.860981],[-91.458288,-0.799486],[-91.334084,-0.706261],[-91.14469,-0.622856],[-91.120944,-0.559087],[-91.197012,-0.496972],[-91.249515,-0.373672],[-91.369198,-0.287166],[-91.428858,-0.023409],[-91.468701,-0.010283],[-91.550014,-0.046664],[-91.590089,-0.014779],[-91.596807,0.002119],[-91.509189,0.06227],[-91.491025,0.105162],[-91.361395,0.125832],[-91.305765,0.091416],[-91.272149,0.025167]]],[[[-78.909209,1.252792],[-78.965614,1.245351],[-78.99171,1.293203],[-78.923265,1.34891],[-78.899778,1.359762],[-78.909209,1.252792]]],[[[-78.312088,1.046086],[-78.180675,0.968572],[-78.036988,0.898705],[-77.829533,0.825376],[-77.702874,0.83783],[-77.673212,0.782226],[-77.648614,0.723625],[-77.601304,0.689519],[-77.526141,0.660373],[-77.481389,0.651175],[-77.467695,0.636499],[-77.422736,0.424832],[-77.39633,0.393878],[-77.292667,0.360392],[-77.165724,0.347731],[-77.114125,0.355069],[-77.002426,0.296261],[-76.920131,0.268511],[-76.829362,0.247737],[-76.767738,0.241639],[-76.739316,0.250838],[-76.72898,0.272128],[-76.678492,0.268149],[-76.603045,0.240968],[-76.494602,0.235438],[-76.427293,0.261225],[-76.417966,0.303909],[-76.413366,0.37884],[-76.388174,0.404989],[-76.311047,0.4485],[-76.27061,0.439405],[-76.067935,0.345561],[-76.026155,0.313108],[-75.974866,0.247737],[-75.879781,0.150999],[-75.776687,0.089246],[-75.617317,0.062891],[-75.463941,-0.038447],[-75.284469,-0.106505],[-75.34046,-0.142162],[-75.39839,-0.146037],[-75.475956,-0.157148],[-75.583753,-0.122835],[-75.626257,-0.122835],[-75.632045,-0.157613],[-75.560602,-0.200091],[-75.491071,-0.248357],[-75.465982,-0.321737],[-75.424693,-0.408864],[-75.325242,-0.506532],[-75.26323,-0.555366],[-75.259354,-0.590145],[-75.278681,-0.653862],[-75.28359,-0.707088],[-75.249587,-0.951828],[-75.272428,-0.966814],[-75.309196,-0.968054],[-75.348186,-0.966762],[-75.380122,-0.940252],[-75.408053,-0.924284],[-75.42043,-0.962163],[-75.449162,-1.0712],[-75.513861,-1.316353],[-75.57055,-1.531224],[-75.641656,-1.607292],[-75.744544,-1.728111],[-75.885466,-1.893424],[-76.089794,-2.133151],[-76.240948,-2.243945],[-76.36014,-2.33133],[-76.499356,-2.432306],[-76.679113,-2.562634],[-76.880754,-2.635911],[-77.16146,-2.737662],[-77.360079,-2.809699],[-77.506504,-2.85998],[-77.658975,-2.91238],[-77.860591,-2.981678],[-77.938467,-3.046997],[-78.067917,-3.206832],[-78.128223,-3.283882],[-78.18331,-3.350234],[-78.194653,-3.380465],[-78.187444,-3.399844],[-78.160986,-3.43209],[-78.158505,-3.465163],[-78.194886,-3.485833],[-78.226305,-3.489141],[-78.240361,-3.472604],[-78.250722,-3.436121],[-78.284183,-3.399017],[-78.323043,-3.388268],[-78.345367,-3.397363],[-78.347254,-3.431263],[-78.398052,-3.594819],[-78.399938,-3.674349],[-78.421435,-3.705768],[-78.419781,-3.776875],[-78.471044,-3.843021],[-78.493472,-3.902035],[-78.509078,-3.952162],[-78.550419,-3.986888],[-78.565121,-4.041562],[-78.603388,-4.157317],[-78.647985,-4.248164],[-78.679404,-4.325886],[-78.68514,-4.38397],[-78.661214,-4.425104],[-78.652946,-4.458177],[-78.674443,-4.517708],[-78.686018,-4.562357],[-78.743043,-4.592691],[-78.861512,-4.665038],[-78.907607,-4.714492],[-78.925797,-4.770716],[-78.914222,-4.818672],[-78.919183,-4.858359],[-78.975406,-4.873242],[-78.99525,-4.907969],[-79.033284,-4.969154],[-79.076279,-4.990651],[-79.18666,-4.95825],[-79.268102,-4.957578],[-79.33094,-4.927813],[-79.399437,-4.840014],[-79.455765,-4.76622],[-79.501912,-4.670567],[-79.516149,-4.539206],[-79.577669,-4.500604],[-79.638518,-4.45487],[-79.710969,-4.467582],[-79.797268,-4.476367],[-79.845095,-4.445878],[-79.962891,-4.390378],[-80.063505,-4.327539],[-80.139573,-4.29612],[-80.197451,-4.311003],[-80.232177,-4.349037],[-80.293362,-4.416836],[-80.383512,-4.463707],[-80.424181,-4.461381],[-80.478571,-4.430065],[-80.488492,-4.393685],[-80.443844,-4.335807],[-80.352893,-4.208477],[-80.453766,-4.205169],[-80.488492,-4.165482],[-80.493453,-4.11918],[-80.50999,-4.06957],[-80.490146,-4.010039],[-80.437229,-3.97862],[-80.357854,-4.003425],[-80.303284,-4.005078],[-80.266904,-3.948854],[-80.230524,-3.92405],[-80.194143,-3.905859],[-80.179261,-3.877747],[-80.217553,-3.787727],[-80.22887,-3.738841],[-80.217294,-3.710729],[-80.218948,-3.654505],[-80.220602,-3.613164],[-80.243753,-3.576784],[-80.245406,-3.522214],[-80.26525,-3.492448],[-80.271865,-3.461029],[-80.273518,-3.424649],[-80.298323,-3.406458],[-80.324652,-3.387855],[-80.303103,-3.374832],[-80.159856,-3.324293],[-80.100325,-3.274012],[-80.026634,-3.228123],[-79.963331,-3.15774],[-79.921576,-3.090095],[-79.822719,-2.776936],[-79.729857,-2.579119],[-79.745514,-2.484706],[-79.822409,-2.356548],[-79.839772,-2.167878],[-79.832641,-2.110569],[-79.842149,-2.067367],[-79.893412,-2.145657],[-79.880312,-2.423676],[-79.925607,-2.548526],[-79.989014,-2.578705],[-80.0302,-2.556743],[-80.006661,-2.35381],[-80.053093,-2.390758],[-80.127145,-2.528372],[-80.248636,-2.630588],[-80.255277,-2.664695],[-80.284706,-2.70676],[-80.378551,-2.667951],[-80.450097,-2.625938],[-80.684889,-2.396908],[-80.839039,-2.349055],[-80.93216,-2.269164],[-80.951617,-2.23547],[-80.962779,-2.18922],[-80.867642,-2.141213],[-80.770361,-2.076617],[-80.760595,-1.934559],[-80.763153,-1.822989],[-80.835009,-1.632407],[-80.801419,-1.383429],[-80.819997,-1.285864],[-80.902395,-1.078952],[-80.841417,-0.974721],[-80.623678,-0.898705],[-80.553889,-0.847958],[-80.505081,-0.683834],[-80.455445,-0.585442],[-80.358397,-0.625129],[-80.282355,-0.620479],[-80.384752,-0.583995],[-80.468313,-0.435994],[-80.482265,-0.368298],[-80.321293,-0.165829],[-80.237009,-0.113119],[-80.133398,-0.006046],[-80.046142,0.155391],[-80.024981,0.410156],[-80.061051,0.592264],[-80.088258,0.784759],[-80.035962,0.834575],[-79.903541,0.860206],[-79.795847,0.92227],[-79.741225,0.979785],[-79.613171,0.971156],[-79.465377,1.060039],[-79.22906,1.104584],[-78.899649,1.206232],[-78.827043,1.295942],[-78.859677,1.455364],[-78.828878,1.434693],[-78.737126,1.358703],[-78.681652,1.283436],[-78.587627,1.236669],[-78.511533,1.198842],[-78.312088,1.046086]]]]},"type":"Feature","properties":{"ISO_A2":"EC","NAME":"Ecuador"}},{"geometry":{"type":"Polygon","coordinates":[[[34.198151,31.32261],[34.212517,31.292276],[34.24528,31.208328],[34.32853,30.995008],[34.401032,30.827809],[34.489916,30.596298],[34.517821,30.507363],[34.529655,30.446049],[34.658588,30.191439],[34.735069,29.982046],[34.791086,29.812082],[34.869841,29.563932],[34.904257,29.477322],[34.84855,29.432106],[34.736412,29.270591],[34.617143,28.757935],[34.446508,28.357339],[34.427181,28.106476],[34.399689,28.016042],[34.318557,27.88897],[34.220165,27.764326],[34.045085,27.82887],[33.760245,28.047642],[33.594157,28.255588],[33.41608,28.389844],[33.247718,28.567714],[33.201932,28.695716],[33.203689,28.777779],[33.130206,28.978283],[33.075842,29.073058],[32.870583,29.286249],[32.811672,29.400015],[32.766713,29.450012],[32.721445,29.521764],[32.647134,29.79844],[32.565692,29.973959],[32.473088,29.925435],[32.489418,29.851512],[32.408596,29.749321],[32.35971,29.630646],[32.397227,29.533805],[32.565072,29.38632],[32.598972,29.321931],[32.638039,29.182173],[32.631838,28.992236],[32.658916,28.927744],[32.78449,28.786641],[32.829449,28.702899],[32.856527,28.630604],[32.898282,28.565233],[33.022822,28.442295],[33.202139,28.208304],[33.372258,28.050588],[33.494938,27.974443],[33.547131,27.898168],[33.55881,27.701204],[33.549818,27.607359],[33.657408,27.430574],[33.697303,27.341096],[33.801689,27.268155],[33.849335,27.18493],[33.893053,27.04946],[33.959095,26.649046],[34.049529,26.550731],[34.329305,26.024355],[34.565157,25.691145],[34.679258,25.44253],[34.853201,25.139809],[35.194162,24.475147],[35.397044,24.269992],[35.477866,24.154805],[35.62473,24.066025],[35.783894,23.937816],[35.632068,23.950321],[35.593828,23.94257],[35.540808,23.920659],[35.515176,23.842886],[35.504428,23.779324],[35.522721,23.442549],[35.564372,23.271086],[35.697904,22.946197],[35.79733,22.848709],[35.845802,22.78569],[35.913395,22.739646],[36.229655,22.6288],[36.414553,22.394189],[36.829721,22.09767],[36.870442,22.015762],[36.871373,21.99672],[36.543279,21.996642],[36.215185,21.99659],[35.88704,21.996539],[35.558946,21.996487],[35.230852,21.996435],[34.902707,21.996384],[34.574613,21.996332],[34.24652,21.99628],[33.918426,21.996229],[33.590332,21.996177],[33.262187,21.996125],[32.934093,21.996074],[32.606,21.996022],[32.277854,21.99597],[31.949761,21.995919],[31.621667,21.995867],[31.434495,21.995867],[31.466431,22.084647],[31.48612,22.147796],[31.464261,22.191488],[31.400285,22.202418],[31.358531,22.18862],[31.260656,22.002275],[31.209134,21.994885],[31.092707,21.994885],[30.710663,21.994937],[30.328619,21.995014],[29.946627,21.995092],[29.564583,21.995144],[29.18254,21.995195],[28.800547,21.995247],[28.418503,21.995299],[28.03646,21.995376],[27.654467,21.995454],[27.272424,21.995505],[26.89038,21.995557],[26.508387,21.995609],[26.126344,21.99566],[25.7443,21.995738],[25.362308,21.995815],[24.980264,21.995867],[24.980264,22.220427],[24.980264,22.444987],[24.980264,22.669547],[24.980264,22.894107],[24.980264,23.118667],[24.980264,23.343227],[24.980264,23.567812],[24.980264,23.792372],[24.980264,24.016932],[24.980264,24.241518],[24.980264,24.466078],[24.980264,24.690638],[24.980264,24.915198],[24.980264,25.139758],[24.980264,25.364318],[24.980264,25.588878],[24.980264,25.813438],[24.980264,26.037998],[24.980264,26.262557],[24.980264,26.487117],[24.980264,26.711677],[24.980264,26.936237],[24.980264,27.160823],[24.980264,27.385383],[24.980264,27.609943],[24.980264,27.834529],[24.980264,28.059089],[24.980264,28.283649],[24.980264,28.508209],[24.980264,28.732768],[24.980264,28.957328],[24.980264,29.181888],[24.971737,29.22385],[24.916133,29.376295],[24.865904,29.570263],[24.810817,29.808723],[24.803685,29.886057],[24.71165,30.131546],[24.703226,30.201077],[24.726429,30.250609],[24.877583,30.457547],[24.923006,30.558032],[24.961402,30.678541],[24.973959,30.776571],[24.929466,30.926485],[24.877583,31.061257],[24.859909,31.199181],[24.852675,31.334832],[24.929983,31.427488],[25.02269,31.51402],[25.057262,31.567169],[25.111987,31.626907],[25.150486,31.654967],[25.225468,31.533812],[25.382255,31.51278],[25.893231,31.620887],[26.457331,31.512082],[26.76863,31.470379],[27.248084,31.377878],[27.540056,31.212669],[27.620154,31.19174],[27.829961,31.194995],[27.967523,31.09743],[28.51488,31.050456],[28.806955,30.942659],[28.972733,30.856722],[29.072055,30.830263],[29.160009,30.834552],[29.278864,30.866928],[29.428519,30.927467],[29.59161,31.011544],[29.929781,31.2275],[30.049463,31.26543],[30.127598,31.255664],[30.222683,31.258377],[30.262267,31.316848],[30.31229,31.357053],[30.343709,31.402735],[30.395075,31.457615],[30.570982,31.472989],[30.923519,31.566833],[30.884141,31.522366],[30.563024,31.416972],[30.700483,31.403872],[30.841353,31.43989],[31.001757,31.462809],[31.030902,31.507586],[31.051986,31.59156],[31.082889,31.603317],[31.193993,31.587607],[31.524412,31.458235],[31.606578,31.455781],[31.839225,31.526319],[31.888938,31.541383],[31.964282,31.502108],[32.136054,31.341085],[32.07611,31.344495],[31.892245,31.482471],[31.875915,31.413716],[31.771115,31.292561],[31.902063,31.240186],[32.008517,31.220524],[32.065568,31.152982],[32.101741,31.092831],[32.206541,31.119031],[32.281885,31.200887],[32.242818,31.246543],[32.216153,31.293749],[32.250569,31.294912],[32.323536,31.256077],[32.532826,31.100712],[32.603313,31.06875],[32.684548,31.074021],[32.85446,31.117739],[32.901589,31.110944],[33.129895,31.16815],[33.156767,31.12624],[33.194388,31.084511],[33.377942,31.130968],[33.666504,31.1304],[33.902561,31.180939],[34.17624,31.303929],[34.198151,31.32261]]]},"type":"Feature","properties":{"ISO_A2":"EG","NAME":"Egypt"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[40.14125,15.696148],[40.182488,15.642921],[40.211427,15.648167],[40.234061,15.665866],[40.250081,15.703486],[40.408211,15.629176],[40.399012,15.579876],[40.304651,15.577344],[40.195821,15.59817],[40.095155,15.590935],[39.975162,15.612432],[39.947464,15.696148],[40.023945,15.655634],[40.063426,15.665866],[40.070557,15.676614],[40.016297,15.733252],[39.939919,15.744517],[39.94519,15.789062],[39.9794,15.806581],[40.000484,15.828285],[39.956766,15.889418],[40.042548,15.875465],[40.096809,15.838465],[40.132362,15.795264],[40.14125,15.696148]]],[[[40.076448,16.08243],[40.110038,15.985743],[40.012369,16.02264],[39.996143,16.04269],[40.039034,16.080983],[40.04813,16.104495],[40.076448,16.08243]]],[[[38.609458,18.005077],[38.911765,17.427154],[39.034445,17.085521],[39.142552,16.72916],[39.222547,16.193689],[39.298925,15.921096],[39.422225,15.786685],[39.50656,15.532127],[39.578804,15.522515],[39.631204,15.452545],[39.720811,15.213645],[39.78551,15.124839],[39.81941,15.201269],[39.815586,15.245323],[39.790367,15.318859],[39.813519,15.413581],[39.863748,15.470322],[39.978366,15.393118],[40.040998,15.334517],[40.057845,15.217108],[40.084096,15.151944],[40.204089,15.014123],[40.305271,14.974022],[40.43653,14.963945],[40.54629,14.933611],[40.634347,14.88302],[40.799298,14.743028],[41.176433,14.620297],[41.47967,14.243885],[41.65816,13.983074],[42.245101,13.587646],[42.346491,13.398097],[42.399304,13.212579],[42.52281,13.221467],[42.734477,13.018586],[42.796179,12.86428],[42.969502,12.808366],[42.99906,12.899523],[43.08288,12.824592],[43.116728,12.708604],[43.005675,12.662328],[42.883305,12.621271],[42.86589,12.622796],[42.825324,12.569362],[42.767447,12.42286],[42.703678,12.38033],[42.670088,12.376583],[42.479402,12.513603],[42.449947,12.521355],[42.408606,12.49438],[42.378478,12.466423],[42.289956,12.570241],[42.225051,12.661966],[42.134307,12.771417],[42.04656,12.820613],[41.952096,12.882341],[41.859595,13.025898],[41.765027,13.183924],[41.624984,13.313245],[41.362881,13.499796],[41.122328,13.736139],[40.938566,13.9831],[40.820175,14.111671],[40.769584,14.144486],[40.52438,14.225179],[40.353072,14.338066],[40.221452,14.431161],[40.14063,14.456069],[40.062082,14.459118],[39.895064,14.440669],[39.756158,14.499038],[39.697918,14.499012],[39.604901,14.516065],[39.531882,14.53671],[39.446099,14.511854],[39.270141,14.470306],[39.198001,14.479375],[39.158623,14.537511],[39.13542,14.581901],[39.074235,14.628203],[39.023799,14.628203],[38.995687,14.586862],[38.812029,14.48232],[38.504399,14.424391],[38.431432,14.428603],[38.376914,14.470409],[38.221471,14.649649],[38.177081,14.678794],[38.142044,14.681481],[38.069956,14.70272],[38.00257,14.737111],[37.943452,14.810543],[37.884231,14.852298],[37.820255,14.708482],[37.708427,14.457232],[37.648483,14.322537],[37.571175,14.149059],[37.546783,14.143866],[37.507251,14.156397],[37.35372,14.372482],[37.25724,14.453743],[37.185203,14.445992],[37.132649,14.406072],[37.099472,14.333957],[37.063505,14.289257],[37.024541,14.271997],[36.940722,14.280576],[36.811945,14.315018],[36.679136,14.307577],[36.5424,14.258226],[36.524314,14.256856],[36.492274,14.544332],[36.470828,14.736465],[36.448143,14.94007],[36.426748,15.1321],[36.521781,15.250155],[36.565965,15.362086],[36.679188,15.726379],[36.724508,15.798881],[36.813495,15.993959],[36.825897,16.050287],[36.913747,16.296189],[36.905479,16.459538],[36.887806,16.624644],[36.935761,16.722339],[36.978653,16.800577],[36.975759,16.866542],[36.995189,17.020538],[37.009039,17.058882],[37.06149,17.061259],[37.169494,17.041415],[37.248869,17.056866],[37.340388,17.057099],[37.411029,17.061698],[37.452939,17.108672],[37.510197,17.288144],[37.547404,17.324111],[37.575981,17.335015],[37.656751,17.368242],[37.725997,17.420513],[37.782376,17.458004],[37.803305,17.465523],[37.862992,17.470252],[37.922523,17.492318],[37.950066,17.517665],[38.025307,17.537767],[38.098894,17.526476],[38.148504,17.548542],[38.181577,17.562856],[38.219042,17.563967],[38.25351,17.584741],[38.267256,17.616703],[38.289891,17.637037],[38.347355,17.683572],[38.37371,17.717343],[38.385492,17.751268],[38.397171,17.778373],[38.422492,17.823899],[38.522796,17.938544],[38.609458,18.005077]]]]},"type":"Feature","properties":{"ISO_A2":"ER","NAME":"Eritrea"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.887947,27.809595],[-17.984736,27.646401],[-18.10659,27.707456],[-18.135968,27.72792],[-18.160566,27.761458],[-18.043363,27.768124],[-17.924482,27.850135],[-17.887947,27.809595]]],[[[-15.400605,28.147378],[-15.406677,28.070535],[-15.383138,27.992814],[-15.389133,27.874681],[-15.436778,27.810706],[-15.559355,27.746989],[-15.655731,27.758383],[-15.710302,27.784093],[-15.807298,27.887549],[-15.809469,27.994493],[-15.720947,28.064179],[-15.682758,28.154044],[-15.452798,28.136939],[-15.432696,28.154251],[-15.415488,28.159341],[-15.400605,28.147378]]],[[[-17.184682,28.021959],[-17.225403,28.013536],[-17.273901,28.038289],[-17.324932,28.117664],[-17.290309,28.176317],[-17.258579,28.203188],[-17.21437,28.199261],[-17.129647,28.155982],[-17.103757,28.111153],[-17.10107,28.083454],[-17.184682,28.021959]]],[[[-16.334501,28.379922],[-16.418217,28.151434],[-16.496249,28.061905],[-16.542757,28.032062],[-16.657996,28.00718],[-16.794732,28.149161],[-16.866019,28.29326],[-16.905319,28.339614],[-16.843049,28.376124],[-16.752047,28.369819],[-16.556813,28.400463],[-16.517436,28.412685],[-16.318998,28.558205],[-16.12361,28.575982],[-16.119166,28.528259],[-16.334501,28.379922]]],[[[-14.196751,28.169289],[-14.332634,28.056014],[-14.46862,28.082369],[-14.491823,28.100921],[-14.355578,28.129704],[-14.231968,28.215823],[-14.152593,28.406638],[-14.028363,28.617427],[-14.003377,28.706672],[-13.954156,28.74145],[-13.886279,28.74468],[-13.857236,28.738039],[-13.827135,28.691221],[-13.8276,28.585181],[-13.862998,28.409326],[-13.928033,28.25347],[-14.196751,28.169289]]],[[[-17.834281,28.493222],[-17.859369,28.485703],[-17.882159,28.564613],[-18.000808,28.758245],[-17.928797,28.844596],[-17.797564,28.846767],[-17.744544,28.786564],[-17.726561,28.724474],[-17.751624,28.688585],[-17.744389,28.616031],[-17.75798,28.569109],[-17.834281,28.493222]]],[[[-13.715953,28.911233],[-13.783959,28.845449],[-13.859924,28.869091],[-13.823647,29.01332],[-13.788197,29.056108],[-13.650117,29.118998],[-13.535086,29.144268],[-13.501418,29.211241],[-13.463565,29.237182],[-13.422948,29.197495],[-13.453773,29.151348],[-13.477931,29.006602],[-13.554697,28.960196],[-13.715953,28.911233]]],[[[1.593939,38.672058],[1.571202,38.658829],[1.504952,38.670973],[1.405734,38.670973],[1.40191,38.711436],[1.417206,38.739625],[1.436326,38.768228],[1.496891,38.711901],[1.592699,38.701488],[1.593939,38.672058]]],[[[1.445214,38.91871],[1.408938,38.857267],[1.256906,38.879023],[1.223316,38.903879],[1.256285,38.97341],[1.299797,38.981755],[1.302588,39.031158],[1.34858,39.080819],[1.564484,39.121049],[1.613163,39.087382],[1.623602,39.038806],[1.494514,38.932508],[1.445214,38.91871]]],[[[3.145266,39.790078],[3.241074,39.756695],[3.342153,39.786719],[3.395896,39.777314],[3.448916,39.761243],[3.461836,39.697732],[3.414603,39.627142],[3.348768,39.555648],[3.292957,39.477048],[3.244691,39.38664],[3.154567,39.333258],[3.072815,39.301271],[2.900113,39.368373],[2.799757,39.385064],[2.769785,39.410256],[2.746014,39.51025],[2.700538,39.542135],[2.634082,39.55619],[2.575895,39.530662],[2.499517,39.477875],[2.458796,39.530456],[2.394304,39.540378],[2.370016,39.572081],[2.371256,39.61306],[2.784978,39.854829],[2.904764,39.908314],[3.158702,39.970532],[3.197562,39.961075],[3.164489,39.92423],[3.16697,39.907694],[3.198596,39.889839],[3.190948,39.861392],[3.158702,39.836587],[3.145266,39.790078]]],[[[4.293619,39.841858],[4.275326,39.830256],[3.967644,39.945831],[3.867185,39.958724],[3.842691,39.976372],[3.845378,40.036471],[3.85344,40.063033],[4.059215,40.075099],[4.22582,40.032389],[4.315117,39.917254],[4.322041,39.897513],[4.293619,39.841858]]],[[[-7.698155,43.764564],[-7.59457,43.727357],[-7.503619,43.739966],[-7.399336,43.695783],[-7.26198,43.594652],[-7.060985,43.553957],[-6.900659,43.58566],[-6.617265,43.592378],[-6.475697,43.578891],[-6.224111,43.60385],[-6.08014,43.59491],[-5.846666,43.645088],[-5.665799,43.582482],[-5.315742,43.553156],[-5.10529,43.501841],[-4.523052,43.415748],[-4.312806,43.414741],[-4.015357,43.46311],[-3.889369,43.499412],[-3.774028,43.477863],[-3.604632,43.519463],[-3.523604,43.51104],[-3.417874,43.451715],[-3.045597,43.371565],[-2.947722,43.439674],[-2.875064,43.454428],[-2.60707,43.412751],[-2.337113,43.328002],[-2.196656,43.32193],[-1.991294,43.345055],[-1.828513,43.400814],[-1.794019,43.407325],[-1.792727,43.372547],[-1.753272,43.324694],[-1.712836,43.307047],[-1.62713,43.282475],[-1.561475,43.279219],[-1.471713,43.267669],[-1.410709,43.2401],[-1.40735,43.197105],[-1.422621,43.149098],[-1.459414,43.104966],[-1.480498,43.071144],[-1.460861,43.051765],[-1.42877,43.036753],[-1.394044,43.032619],[-1.370531,43.03758],[-1.352728,43.064245],[-1.318829,43.096956],[-1.300044,43.100961],[-1.301543,43.082461],[-1.285472,43.05962],[-1.175452,43.021121],[-0.933839,42.949498],[-0.839194,42.948206],[-0.762661,42.939808],[-0.740182,42.909526],[-0.586444,42.79899],[-0.549806,42.801987],[-0.481154,42.7993],[-0.398446,42.808085],[-0.338553,42.828833],[-0.299304,42.825319],[-0.256077,42.803977],[-0.205331,42.785322],[-0.140012,42.748916],[-0.081488,42.70388],[-0.041155,42.689126],[0.201414,42.719357],[0.25552,42.692898],[0.312855,42.69326],[0.377269,42.700133],[0.517674,42.686258],[0.631621,42.689617],[0.642008,42.70065],[0.651775,42.800437],[0.66981,42.835732],[0.696836,42.845137],[0.764429,42.838032],[1.010047,42.77894],[1.111178,42.742043],[1.20833,42.713155],[1.293286,42.709951],[1.349458,42.690676],[1.428316,42.595902],[1.414829,42.548411],[1.42196,42.530815],[1.43028,42.497871],[1.428161,42.46131],[1.448832,42.437436],[1.486194,42.434464],[1.534046,42.441699],[1.586394,42.455962],[1.678482,42.496657],[1.706025,42.503297],[1.859711,42.457099],[1.927976,42.4263],[1.951488,42.392762],[1.986525,42.3585],[2.032672,42.353539],[2.098301,42.386095],[2.200414,42.420925],[2.37446,42.390281],[2.567988,42.345814],[2.651652,42.340491],[2.654753,42.362092],[2.669998,42.39302],[2.701882,42.408471],[2.749424,42.413019],[2.81557,42.429245],[2.891379,42.456065],[2.970031,42.467227],[3.052662,42.447229],[3.15219,42.431002],[3.211412,42.431157],[3.239834,42.367854],[3.287893,42.343721],[3.306703,42.288944],[3.218646,42.260367],[3.166453,42.256491],[3.150433,42.16244],[3.175238,42.135981],[3.224641,42.111125],[3.238077,42.082238],[3.247998,41.944236],[3.146919,41.861011],[3.004913,41.767451],[2.310898,41.466513],[2.145637,41.320734],[2.082592,41.287377],[1.566551,41.195625],[1.205849,41.097569],[1.03294,41.062068],[0.816932,40.891613],[0.714613,40.822832],[0.796055,40.803815],[0.89114,40.722347],[0.859204,40.686225],[0.720608,40.630466],[0.660043,40.613335],[0.627177,40.622224],[0.596067,40.614524],[0.363678,40.319064],[0.158445,40.106596],[0.043078,40.01394],[-0.075132,39.875938],[-0.327003,39.519862],[-0.328967,39.417103],[-0.204943,39.062603],[-0.133759,38.969482],[-0.034127,38.891218],[0.154931,38.824659],[0.201518,38.759185],[0.136328,38.69676],[-0.052704,38.585707],[-0.381263,38.435639],[-0.520815,38.317274],[-0.550659,38.203146],[-0.646777,38.151858],[-0.683183,37.992048],[-0.741551,37.886112],[-0.752739,37.850248],[-0.814648,37.769943],[-0.823097,37.7116],[-0.721604,37.631037],[-0.771885,37.596233],[-0.822167,37.580781],[-0.938103,37.57135],[-1.327562,37.561144],[-1.640954,37.386943],[-1.797611,37.23287],[-1.939308,36.945833],[-2.111493,36.77667],[-2.18769,36.745458],[-2.30559,36.819846],[-2.452842,36.831163],[-2.595702,36.806513],[-2.670632,36.747551],[-2.78755,36.714762],[-2.901833,36.743158],[-3.149156,36.758506],[-3.259124,36.755767],[-3.431232,36.707915],[-3.578794,36.739825],[-3.827771,36.756077],[-4.36686,36.718121],[-4.434892,36.700241],[-4.502252,36.629134],[-4.674128,36.506454],[-4.9353,36.502062],[-5.171488,36.423772],[-5.230502,36.373646],[-5.329695,36.235747],[-5.360933,36.134901],[-5.381578,36.134074],[-5.40721,36.158878],[-5.44359,36.15061],[-5.462478,36.073767],[-5.551284,36.038834],[-5.625517,36.025941],[-5.808425,36.088314],[-5.96069,36.181719],[-6.040659,36.188437],[-6.170471,36.333803],[-6.226281,36.426485],[-6.265917,36.526505],[-6.2577,36.564849],[-6.268966,36.596733],[-6.384127,36.637015],[-6.412239,36.72887],[-6.32829,36.848165],[-6.259406,36.898988],[-6.216773,36.913561],[-6.320952,36.908497],[-6.396193,36.831654],[-6.492441,36.954618],[-6.884613,37.194216],[-6.859369,37.249174],[-6.863787,37.278888],[-6.92952,37.214938],[-6.974659,37.198453],[-7.174957,37.208789],[-7.406132,37.179436],[-7.467161,37.428052],[-7.496049,37.523576],[-7.50349,37.58551],[-7.443959,37.728266],[-7.378898,37.786376],[-7.292237,37.906472],[-7.185422,38.006363],[-7.072509,38.03003],[-7.022847,38.044707],[-6.981093,38.121963],[-6.957554,38.187902],[-6.974788,38.194413],[-7.106408,38.181003],[-7.343009,38.45742],[-7.3358,38.501475],[-7.305983,38.566845],[-7.286371,38.649372],[-7.28154,38.714536],[-7.219941,38.770502],[-7.125503,38.826959],[-7.04605,38.907057],[-7.006259,38.985269],[-6.997965,39.056454],[-7.042975,39.107096],[-7.172399,39.135208],[-7.305776,39.338116],[-7.335438,39.465137],[-7.362672,39.47834],[-7.445121,39.536166],[-7.524212,39.644712],[-7.535684,39.661559],[-7.454087,39.680679],[-7.117674,39.681687],[-7.04742,39.705561],[-7.036748,39.713959],[-6.975408,39.798398],[-6.911175,39.937097],[-6.896111,40.021821],[-6.916394,40.056832],[-7.027808,40.14264],[-7.032614,40.16791],[-7.014683,40.208347],[-6.948433,40.2516],[-6.858878,40.300745],[-6.810147,40.343119],[-6.821774,40.376244],[-6.847923,40.41097],[-6.852057,40.443268],[-6.835675,40.483137],[-6.829836,40.619071],[-6.818364,40.654056],[-6.835882,40.777511],[-6.857741,40.878332],[-6.92846,41.009151],[-6.915541,41.038038],[-6.882804,41.062403],[-6.775782,41.107724],[-6.690155,41.214487],[-6.565924,41.303732],[-6.403144,41.375408],[-6.289352,41.455041],[-6.244316,41.515916],[-6.212509,41.532039],[-6.221708,41.560461],[-6.243128,41.601802],[-6.308059,41.642213],[-6.391723,41.665364],[-6.484689,41.664382],[-6.542179,41.672495],[-6.559,41.70407],[-6.552592,41.789543],[-6.557501,41.874137],[-6.57533,41.913101],[-6.618273,41.942401],[-6.70359,41.934572],[-6.777281,41.958473],[-6.833221,41.964157],[-6.865544,41.945244],[-7.030444,41.950644],[-7.099122,41.964209],[-7.147129,41.981133],[-7.177928,41.971702],[-7.195343,41.955217],[-7.198315,41.929379],[-7.209606,41.895273],[-7.268543,41.864422],[-7.403599,41.833674],[-7.512585,41.836],[-7.612579,41.857962],[-7.644696,41.873982],[-7.693039,41.888451],[-7.896386,41.870571],[-7.920855,41.883645],[-7.990954,41.851916],[-8.09441,41.814218],[-8.152494,41.81197],[-8.173527,41.81998],[-8.181226,41.836982],[-8.224738,41.895841],[-8.213317,41.927079],[-8.129963,42.018185],[-8.139317,42.039967],[-8.173578,42.069396],[-8.204171,42.111848],[-8.213059,42.133708],[-8.266079,42.137377],[-8.322561,42.115104],[-8.538104,42.069319],[-8.589677,42.052731],[-8.682953,42.008521],[-8.777133,41.941084],[-8.852348,41.926924],[-8.878316,41.946897],[-8.887204,42.105286],[-8.772431,42.210602],[-8.690937,42.274164],[-8.729203,42.287032],[-8.815839,42.285275],[-8.809974,42.334496],[-8.769382,42.358164],[-8.73003,42.411727],[-8.776177,42.434826],[-8.812092,42.470069],[-8.809896,42.562364],[-8.799922,42.599881],[-8.81155,42.640343],[-8.987766,42.58567],[-9.033087,42.593835],[-9.03505,42.662332],[-8.937201,42.766692],[-8.927202,42.798577],[-9.041587,42.814002],[-9.127189,42.865239],[-9.179434,42.910973],[-9.235193,42.976886],[-9.235658,43.035797],[-9.178065,43.174032],[-9.095563,43.21421],[-9.024482,43.238963],[-8.873691,43.334409],[-8.665641,43.316581],[-8.537044,43.337045],[-8.421599,43.385853],[-8.355453,43.396835],[-8.248897,43.439416],[-8.252307,43.496906],[-8.288843,43.539617],[-8.256751,43.579873],[-8.137172,43.629069],[-8.0047,43.694388],[-7.852745,43.706997],[-7.698155,43.764564]]]]},"type":"Feature","properties":{"ISO_A2":"ES","NAME":"Spain"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.617359,58.621254],[22.688362,58.597044],[22.753785,58.604692],[22.820137,58.621538],[22.964211,58.605725],[23.292873,58.483511],[23.323259,58.450851],[23.127095,58.435968],[23.082653,58.398477],[23.035421,58.372303],[22.979921,58.36388],[22.885146,58.311273],[22.756989,58.260889],[22.730324,58.230684],[22.4984,58.236239],[22.371689,58.217144],[22.26937,58.16074],[22.227305,58.051806],[22.152478,57.966798],[22.076307,57.936051],[21.996828,57.931322],[21.978018,57.963284],[21.985563,57.995168],[22.152891,58.115316],[22.187721,58.154332],[22.104419,58.171669],[22.034552,58.213398],[21.882107,58.262336],[21.854511,58.301635],[21.890995,58.304607],[21.924378,58.315872],[21.964996,58.348842],[21.984116,58.386669],[21.862263,58.497153],[21.924378,58.514258],[22.001893,58.510279],[22.081371,58.478136],[22.168601,58.515808],[22.205601,58.521389],[22.266579,58.507954],[22.328178,58.580843],[22.474422,58.604899],[22.546976,58.627378],[22.617359,58.621254]]],[[[23.343516,58.550328],[23.260317,58.539993],[23.06343,58.6111],[23.109112,58.659211],[23.165439,58.678124],[23.332767,58.648565],[23.356435,58.575546],[23.343516,58.550328]]],[[[22.923697,58.826901],[22.841738,58.777446],[22.792852,58.797212],[22.767324,58.820906],[22.661387,58.709156],[22.542221,58.69001],[22.472665,58.712076],[22.478866,58.75383],[22.411067,58.863384],[22.307404,58.895475],[22.161883,58.898472],[22.056256,58.943586],[22.46264,58.974333],[22.504601,59.026449],[22.58718,59.0812],[22.649398,59.087091],[22.702212,59.074431],[22.712237,59.032004],[22.725466,59.015106],[22.909847,58.991206],[22.981678,58.919815],[23.008653,58.833929],[22.923697,58.826901]]],[[[25.509275,59.638996],[25.615729,59.627524],[25.793702,59.634655],[26.460845,59.553885],[26.62497,59.553885],[26.852036,59.471771],[26.974716,59.450635],[27.335831,59.450506],[27.892592,59.414203],[28.001836,59.469807],[28.012533,59.484276],[28.065812,59.453167],[28.132991,59.403093],[28.151078,59.374438],[28.128289,59.357566],[28.061368,59.343251],[28.046123,59.327852],[28.016461,59.301729],[27.938171,59.297001],[27.897657,59.277622],[27.849494,59.192666],[27.757665,59.052003],[27.621756,58.944955],[27.513081,58.886277],[27.464401,58.841318],[27.434171,58.787265],[27.427039,58.733056],[27.531374,58.435245],[27.530134,58.381476],[27.505536,58.326259],[27.487811,58.270087],[27.502435,58.221356],[27.571113,58.138105],[27.64408,58.013927],[27.673381,57.934604],[27.721957,57.905484],[27.768776,57.884142],[27.778491,57.87068],[27.776941,57.856727],[27.752859,57.841018],[27.542123,57.799418],[27.514734,57.764226],[27.491997,57.724952],[27.400013,57.666816],[27.371797,57.612556],[27.354279,57.550286],[27.351954,57.528117],[27.32658,57.525481],[27.187106,57.538349],[27.03342,57.57876],[26.966034,57.609145],[26.899785,57.608784],[26.819738,57.588733],[26.532675,57.531011],[26.462085,57.544472],[26.298064,57.601084],[26.215072,57.662734],[26.03038,57.785569],[26.015188,57.814766],[25.991106,57.838201],[25.793806,57.868561],[25.72089,57.91383],[25.660171,57.920186],[25.571287,57.942768],[25.339983,58.039429],[25.282623,58.048498],[25.26867,58.03222],[25.272701,58.009379],[25.258283,57.99615],[25.228724,57.996564],[25.175136,58.032117],[25.111057,58.063433],[24.911276,58.004573],[24.839032,57.988735],[24.77578,57.985246],[24.4589,57.907861],[24.362472,57.866184],[24.322526,57.870602],[24.331983,57.909747],[24.463861,58.105963],[24.487529,58.261612],[24.535691,58.283006],[24.549747,58.304581],[24.529077,58.354242],[24.392238,58.386101],[24.336944,58.381398],[24.287231,58.328016],[24.235658,58.289569],[24.114838,58.266108],[24.010969,58.306622],[23.767573,58.360831],[23.706078,58.432997],[23.691505,58.505628],[23.562831,58.575831],[23.509294,58.658539],[23.530688,58.716261],[23.647477,58.75414],[23.680756,58.787136],[23.533582,58.781916],[23.50361,58.789849],[23.497202,58.819511],[23.431986,58.920642],[23.489657,58.96051],[23.515082,58.999241],[23.467746,59.032185],[23.480149,59.069676],[23.517046,59.107555],[23.494411,59.195664],[23.640552,59.242327],[23.782559,59.275142],[24.083419,59.291885],[24.053654,59.372294],[24.175403,59.375911],[24.380352,59.472649],[24.583544,59.455648],[24.877583,59.522052],[25.44375,59.521122],[25.520954,59.559466],[25.507415,59.598016],[25.509275,59.638996]]]]},"type":"Feature","properties":{"ISO_A2":"EE","NAME":"Estonia"}},{"geometry":{"type":"Polygon","coordinates":[[[38.431432,14.428603],[38.504399,14.424391],[38.812029,14.48232],[38.995687,14.586862],[39.023799,14.628203],[39.074235,14.628203],[39.13542,14.581901],[39.158623,14.537511],[39.198001,14.479375],[39.270141,14.470306],[39.446099,14.511854],[39.531882,14.53671],[39.604901,14.516065],[39.697918,14.499012],[39.756158,14.499038],[39.895064,14.440669],[40.062082,14.459118],[40.14063,14.456069],[40.221452,14.431161],[40.353072,14.338066],[40.52438,14.225179],[40.769584,14.144486],[40.820175,14.111671],[40.938566,13.9831],[41.122328,13.736139],[41.362881,13.499796],[41.624984,13.313245],[41.765027,13.183924],[41.859595,13.025898],[41.952096,12.882341],[42.04656,12.820613],[42.134307,12.771417],[42.225051,12.661966],[42.289956,12.570241],[42.378478,12.466423],[42.280345,12.324261],[42.149087,12.134143],[41.995866,11.912374],[41.949616,11.857881],[41.81567,11.723781],[41.792674,11.686057],[41.766526,11.589112],[41.764666,11.412895],[41.782081,11.187793],[41.798204,10.980467],[41.872204,10.955817],[41.95747,10.941038],[42.052142,10.968349],[42.166243,10.991577],[42.308095,11.00522],[42.46514,11.047078],[42.557744,11.080771],[42.654999,11.078342],[42.741247,11.042375],[42.78295,11.009277],[42.844135,10.997959],[42.922734,10.999303],[42.906146,10.960262],[42.862945,10.903211],[42.809718,10.846005],[42.763106,10.786939],[42.659546,10.621367],[42.656446,10.600025],[42.669262,10.567572],[42.725175,10.491737],[42.783673,10.369626],[42.816436,10.257385],[42.841654,10.203073],[42.912451,10.140803],[43.014718,10.012619],[43.068927,9.926242],[43.181685,9.879966],[43.218427,9.770179],[43.303125,9.609078],[43.394334,9.480249],[43.482545,9.379479],[43.58104,9.340722],[43.620521,9.337415],[43.826814,9.150785],[43.983807,9.00883],[44.022874,8.986041],[44.306216,8.893049],[44.632036,8.786105],[44.89357,8.700219],[45.226935,8.590794],[45.555494,8.482997],[45.86333,8.379876],[46.296017,8.234976],[46.644678,8.118187],[46.919545,8.026125],[46.978249,7.997083],[47.305671,7.997083],[47.637744,7.997083],[47.978188,7.997083],[47.731588,7.759346],[47.452845,7.490499],[47.159737,7.207855],[46.971221,7.026031],[46.671808,6.737263],[46.422934,6.497252],[46.166774,6.234659],[45.935005,5.997205],[45.633577,5.668285],[45.438498,5.45543],[45.13278,5.121703],[44.940544,4.912],[44.911605,4.899908],[44.636635,4.915773],[44.369519,4.931198],[44.028145,4.950964],[43.988871,4.950525],[43.889445,4.930759],[43.829191,4.911432],[43.583521,4.854975],[43.538252,4.840325],[43.334027,4.750408],[43.125719,4.644471],[43.01601,4.563339],[42.930951,4.44531],[42.894777,4.361078],[42.85664,4.324207],[42.791631,4.292012],[42.355172,4.21225],[42.22841,4.201656],[42.024133,4.137939],[41.915302,4.031279],[41.884038,3.977742],[41.737742,3.979034],[41.481944,3.963273],[41.372493,3.946168],[41.318956,3.943093],[41.220926,3.943558],[41.140466,3.962963],[41.087239,3.991953],[41.020835,4.057453],[40.872679,4.190339],[40.765243,4.273021],[40.52872,4.177652],[40.31602,4.082723],[40.014126,3.947976],[39.842199,3.851445],[39.790367,3.754241],[39.657507,3.577818],[39.538858,3.469194],[39.494468,3.456094],[39.225492,3.47878],[39.128289,3.500898],[38.967834,3.520586],[38.752756,3.559008],[38.608062,3.600091],[38.451534,3.604845],[38.225295,3.619004],[38.086182,3.648822],[37.94495,3.746748],[37.762894,3.864622],[37.575464,3.985933],[37.382504,4.110835],[37.154559,4.254547],[36.905582,4.411462],[36.848273,4.427327],[36.823623,4.430117],[36.552994,4.437249],[36.271823,4.444716],[36.081963,4.449729],[36.021967,4.468126],[35.978714,4.503834],[35.919854,4.619848],[35.845595,4.702659],[35.763068,4.808027],[35.756143,4.950473],[35.779243,5.10558],[35.800327,5.156947],[35.788441,5.208106],[35.791438,5.278567],[35.745033,5.344015],[35.468667,5.419101],[35.423967,5.413287],[35.377872,5.38515],[35.325317,5.364892],[35.287593,5.384064],[35.264649,5.412047],[35.263822,5.457936],[35.268318,5.492301],[35.252453,5.511033],[35.1645,5.58121],[35.081921,5.673142],[35.031898,5.774893],[34.983581,5.858325],[34.959034,6.045058],[34.89785,6.159805],[34.83806,6.300133],[34.749228,6.567868],[34.710678,6.660317],[34.638744,6.722148],[34.56278,6.779845],[34.484335,6.898391],[34.279283,7.002829],[34.200424,7.084581],[34.064205,7.225735],[34.030202,7.296971],[34.020384,7.367974],[33.977957,7.434585],[33.902458,7.509542],[33.66609,7.670979],[33.600978,7.690409],[33.516332,7.707773],[33.392257,7.723715],[33.226014,7.760664],[33.080751,7.823709],[33.014657,7.868564],[32.998896,7.899518],[33.01259,7.951505],[33.065197,8.040491],[33.165242,8.251073],[33.234282,8.396387],[33.281101,8.437263],[33.409362,8.447728],[33.545322,8.443413],[33.644799,8.432586],[33.785049,8.431114],[33.953308,8.44349],[34.019764,8.492092],[34.072784,8.545267],[34.094591,8.582241],[34.101722,8.676344],[34.101619,8.751869],[34.091025,9.041257],[34.084566,9.218507],[34.077124,9.420976],[34.078098,9.461516],[34.079347,9.513476],[34.120326,9.729691],[34.159083,9.853404],[34.185232,9.918568],[34.291478,10.124757],[34.311219,10.190851],[34.314836,10.251571],[34.275665,10.528143],[34.343982,10.658626],[34.431418,10.787843],[34.508003,10.842879],[34.571823,10.880189],[34.601744,10.864557],[34.674969,10.804948],[34.771242,10.746166],[34.816201,10.759163],[34.882295,10.810555],[34.931388,10.864789],[34.924928,10.962122],[34.969163,11.161774],[34.960688,11.27678],[35.00792,11.419872],[35.059648,11.621048],[35.082748,11.748275],[35.112358,11.816566],[35.252453,11.957022],[35.372756,12.155589],[35.449599,12.300593],[35.596102,12.537323],[35.670206,12.623752],[35.730564,12.661036],[35.820584,12.684859],[35.987602,12.706305],[36.107491,12.726459],[36.125217,12.757051],[36.135293,12.805343],[36.13705,12.911124],[36.160098,13.09331],[36.21224,13.271077],[36.273528,13.405745],[36.306859,13.466853],[36.346288,13.526281],[36.390678,13.626094],[36.447109,13.842024],[36.443957,13.988449],[36.524314,14.256856],[36.5424,14.258226],[36.679136,14.307577],[36.811945,14.315018],[36.940722,14.280576],[37.024541,14.271997],[37.063505,14.289257],[37.099472,14.333957],[37.132649,14.406072],[37.185203,14.445992],[37.25724,14.453743],[37.35372,14.372482],[37.507251,14.156397],[37.546783,14.143866],[37.571175,14.149059],[37.648483,14.322537],[37.708427,14.457232],[37.820255,14.708482],[37.884231,14.852298],[37.943452,14.810543],[38.00257,14.737111],[38.069956,14.70272],[38.142044,14.681481],[38.177081,14.678794],[38.221471,14.649649],[38.376914,14.470409],[38.431432,14.428603]]]},"type":"Feature","properties":{"ISO_A2":"ET","NAME":"Ethiopia"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[21.628272,60.107804],[21.540629,60.097882],[21.486058,60.126821],[21.506729,60.148319],[21.567914,60.172296],[21.63406,60.168989],[21.648116,60.140877],[21.628272,60.107804]]],[[[21.833221,60.140515],[21.733072,60.106151],[21.695038,60.114367],[21.704753,60.172296],[21.764284,60.198806],[21.86433,60.201804],[21.833221,60.140515]]],[[[22.175112,60.370734],[22.301719,60.347583],[22.354946,60.355851],[22.415511,60.303348],[22.312881,60.269965],[22.30575,60.228572],[22.346264,60.202837],[22.360527,60.165579],[22.258311,60.16563],[22.209425,60.196998],[22.188134,60.236789],[22.140489,60.264901],[22.077133,60.286346],[22.108243,60.314872],[22.125916,60.355851],[22.175112,60.370734]]],[[[21.994244,60.336679],[21.921484,60.332287],[21.818648,60.381819],[21.805625,60.401223],[21.846036,60.412437],[21.819371,60.452279],[21.827226,60.469901],[21.906808,60.438482],[21.950319,60.401688],[21.907841,60.393162],[21.979775,60.355205],[21.994244,60.336679]]],[[[21.450918,60.529587],[21.436966,60.483079],[21.369063,60.488246],[21.300023,60.479771],[21.244316,60.52597],[21.21455,60.603872],[21.224679,60.62059],[21.268087,60.638289],[21.301263,60.595552],[21.450918,60.529587]]],[[[21.217754,63.241308],[21.228503,63.222653],[21.287104,63.227769],[21.366066,63.261772],[21.42198,63.245881],[21.415675,63.197357],[21.377641,63.199243],[21.367203,63.207202],[21.31842,63.179503],[21.309738,63.162708],[21.253411,63.152011],[21.149335,63.199476],[21.083912,63.277533],[21.236358,63.27774],[21.221785,63.259136],[21.217754,63.241308]]],[[[24.84823,64.99102],[24.698886,64.957818],[24.578583,64.978566],[24.576516,65.042878],[24.651137,65.073961],[24.786012,65.086441],[24.9706,65.055306],[24.997575,65.038718],[24.891742,65.02629],[24.84823,64.99102]]],[[[28.047208,69.971698],[28.269159,69.871446],[28.411734,69.822767],[28.800341,69.731506],[29.141612,69.671458],[29.333435,69.473021],[29.238815,69.39393],[29.191738,69.366722],[29.024875,69.287967],[28.846281,69.176889],[28.832638,69.118986],[28.891911,69.060591],[28.96586,69.021989],[28.898939,69.00969],[28.692234,68.961011],[28.56604,68.928248],[28.414008,68.904167],[28.453488,68.872282],[28.705928,68.865538],[28.74484,68.856469],[28.772849,68.840036],[28.777603,68.81381],[28.752075,68.771436],[28.479327,68.537626],[28.470748,68.488378],[28.560097,68.351358],[28.685206,68.189792],[29.06296,68.117961],[29.343873,68.061867],[29.524172,67.929084],[29.82157,67.754004],[29.979235,67.688582],[29.988072,67.668273],[29.941253,67.547479],[29.750619,67.426401],[29.572283,67.324366],[29.387747,67.201428],[29.243414,67.096602],[29.08699,66.970951],[29.069006,66.930204],[29.066268,66.891731],[29.093088,66.849227],[29.29323,66.695516],[29.37121,66.617019],[29.464331,66.532167],[29.544378,66.439718],[29.590732,66.356829],[29.670882,66.276136],[29.720646,66.234872],[29.803484,66.177072],[29.903426,66.091082],[29.936602,66.022973],[30.087497,65.786527],[30.102742,65.726273],[30.095352,65.681676],[30.028999,65.670721],[29.882652,65.663641],[29.723902,65.634392],[29.715944,65.624573],[29.819452,65.568763],[29.728036,65.47342],[29.714807,65.336942],[29.617138,65.265345],[29.607992,65.248679],[29.612384,65.234778],[29.629696,65.223874],[29.810563,65.204754],[29.826221,65.185324],[29.826945,65.145068],[29.810873,65.107913],[29.720026,65.080317],[29.622513,65.039493],[29.600912,65.00195],[29.604219,64.968386],[29.637447,64.911749],[29.701681,64.845758],[29.783226,64.804313],[30.072821,64.765039],[30.110235,64.732587],[30.126151,64.688093],[30.120157,64.644633],[29.985591,64.557739],[29.986625,64.524279],[30.041867,64.443379],[30.108116,64.366123],[30.390683,64.282433],[30.487886,64.236545],[30.513776,64.200009],[30.527884,64.141124],[30.526075,64.077304],[30.503906,64.020589],[30.415332,63.947518],[30.21028,63.803341],[30.004091,63.747324],[29.991534,63.73518],[30.055406,63.689007],[30.418536,63.504031],[30.655266,63.417473],[30.974782,63.300633],[31.180867,63.208287],[31.247426,63.141883],[31.336723,63.068089],[31.436976,63.007731],[31.509271,62.955331],[31.536504,62.921638],[31.534024,62.885413],[31.437337,62.776117],[31.382405,62.691652],[31.285667,62.567809],[31.186758,62.481406],[30.935714,62.323793],[30.565608,62.127578],[30.479721,62.068201],[30.306502,61.964849],[30.009931,61.757368],[29.933191,61.711582],[29.690157,61.546114],[29.579415,61.493482],[29.49234,61.444234],[29.251631,61.287784],[28.99299,61.169031],[28.739052,61.058754],[28.66283,61.00284],[28.568107,60.960207],[28.455039,60.919641],[28.407445,60.896929],[28.152008,60.745827],[27.797663,60.536124],[27.761644,60.532843],[27.66935,60.498995],[27.52507,60.490778],[27.462438,60.464837],[27.241883,60.538682],[27.205296,60.543437],[27.075588,60.525143],[26.951151,60.471503],[26.721501,60.45507],[26.6074,60.437707],[26.534639,60.412902],[26.519756,60.471606],[26.551176,60.54602],[26.601715,60.59563],[26.606469,60.627928],[26.569366,60.624569],[26.495778,60.551808],[26.456401,60.4668],[26.377749,60.424064],[26.204633,60.406597],[26.036065,60.474914],[25.955966,60.474242],[26.006299,60.425304],[26.040199,60.371561],[26.035858,60.341485],[25.945941,60.346756],[25.845792,60.314613],[25.758046,60.267536],[25.715464,60.267433],[25.65645,60.333217],[25.548239,60.302469],[25.455739,60.261232],[25.267843,60.248364],[25.155809,60.194104],[24.957578,60.157465],[24.848747,60.158344],[24.600494,60.114264],[24.518018,60.046309],[24.445568,60.021298],[24.342628,60.04233],[24.025232,60.009154],[23.721788,59.965694],[23.5927,59.968149],[23.463612,59.98621],[23.326773,59.925774],[23.181459,59.844926],[23.021262,59.816039],[22.963901,59.826374],[23.00979,59.868801],[23.115726,59.912674],[23.188487,59.972205],[23.198409,60.021815],[23.148489,60.041323],[23.080173,60.047291],[22.994183,60.098554],[22.911708,60.20971],[22.867059,60.215808],[22.844425,60.186611],[22.819104,60.101345],[22.793472,60.076798],[22.749857,60.057265],[22.697354,60.037602],[22.646194,60.028016],[22.462743,60.029204],[22.438558,60.072251],[22.438558,60.090286],[22.471115,60.146949],[22.442692,60.156897],[22.469771,60.201339],[22.512972,60.19891],[22.564235,60.205524],[22.58997,60.228365],[22.588007,60.255651],[22.516693,60.26273],[22.512352,60.281334],[22.575914,60.359107],[22.584906,60.380552],[22.560308,60.384997],[22.520517,60.376573],[22.257898,60.400913],[21.93399,60.500287],[21.854305,60.505403],[21.805315,60.594131],[21.727181,60.582917],[21.613286,60.530983],[21.527813,60.570412],[21.436036,60.596405],[21.410611,60.636971],[21.411954,60.696812],[21.403996,60.767454],[21.378881,60.850059],[21.360588,60.967493],[21.377745,61.059219],[21.451022,61.127174],[21.479134,61.170504],[21.513447,61.281221],[21.521198,61.410851],[21.501768,61.454957],[21.506626,61.484309],[21.56502,61.484309],[21.552308,61.509527],[21.526676,61.523273],[21.498254,61.551954],[21.522439,61.567147],[21.592408,61.568232],[21.598093,61.577895],[21.605948,61.591538],[21.551894,61.666831],[21.54559,61.702746],[21.470555,61.81168],[21.384876,61.914929],[21.255995,61.989653],[21.301677,62.112643],[21.353663,62.223851],[21.343328,62.277413],[21.323484,62.342603],[21.165665,62.414072],[21.142203,62.514789],[21.103653,62.622948],[21.118122,62.689249],[21.143857,62.739995],[21.19574,62.790535],[21.457533,62.950008],[21.473553,63.033259],[21.65101,63.039305],[21.568637,63.113719],[21.549207,63.155525],[21.545073,63.204282],[21.800354,63.237691],[21.895749,63.210251],[22.120335,63.24415],[22.319703,63.310451],[22.316189,63.345643],[22.285493,63.377191],[22.243221,63.437937],[22.273194,63.454783],[22.345954,63.442381],[22.312571,63.472534],[22.318669,63.504393],[22.398044,63.491164],[22.527649,63.579995],[22.532299,63.647847],[22.756265,63.683348],[23.014441,63.821841],[23.133606,63.864939],[23.248741,63.896152],[23.493998,64.03449],[23.598901,64.040898],[23.652955,64.134173],[23.861417,64.258249],[23.924773,64.274113],[24.022234,64.385993],[24.278343,64.515287],[24.440607,64.680135],[24.530214,64.738684],[24.557912,64.801006],[24.657648,64.806303],[24.747565,64.852114],[24.942178,64.88405],[25.134311,64.875214],[25.214306,64.853458],[25.288204,64.860331],[25.280762,64.9164],[25.228052,64.951023],[25.27115,64.984302],[25.372643,65.009469],[25.362308,65.065124],[25.340293,65.098611],[25.255854,65.143259],[25.297815,65.243201],[25.307944,65.352755],[25.347838,65.479259],[25.241798,65.546284],[24.839342,65.660334],[24.764308,65.656406],[24.674908,65.670721],[24.58158,65.757124],[24.623231,65.831693],[24.627985,65.859184],[24.591605,65.858358],[24.532591,65.822029],[24.40433,65.780481],[24.237518,65.812366],[24.155508,65.805286],[24.049003,65.989822],[23.994639,66.060361],[23.907306,66.148262],[23.75145,66.191154],[23.720961,66.215442],[23.70029,66.252649],[23.693521,66.304299],[23.673832,66.380703],[23.681997,66.443387],[23.701117,66.480749],[23.7684,66.505863],[23.8655,66.576608],[23.885809,66.628052],[23.89418,66.706885],[23.93888,66.775718],[23.988541,66.810522],[23.976087,66.83822],[23.941826,66.87783],[23.869324,66.934028],[23.758943,67.002577],[23.677397,67.068129],[23.641534,67.129391],[23.623086,67.184142],[23.626083,67.233933],[23.656624,67.267832],[23.760907,67.310517],[23.774911,67.32863],[23.73357,67.422913],[23.660809,67.440018],[23.537148,67.449165],[23.468056,67.449966],[23.45493,67.460275],[23.451468,67.479189],[23.465472,67.517869],[23.50454,67.562155],[23.536993,67.590397],[23.541282,67.614323],[23.500199,67.696204],[23.487797,67.79656],[23.501853,67.875211],[23.632904,67.933192],[23.638899,67.95438],[23.474257,68.017347],[23.355505,68.088687],[23.318556,68.130312],[23.182544,68.136617],[23.097898,68.257591],[22.975425,68.316451],[22.85414,68.367352],[22.782413,68.39102],[22.362077,68.464038],[22.195162,68.477965],[21.997448,68.520624],[21.850222,68.574109],[21.724028,68.608526],[21.616025,68.650978],[21.465388,68.690691],[21.422393,68.724591],[21.259767,68.78743],[21.183441,68.828822],[20.918548,68.906931],[20.908936,68.937756],[20.907076,68.96747],[20.895087,68.979821],[20.622183,69.036872],[20.675875,69.069479],[20.889299,69.071443],[21.065722,69.041729],[21.104531,69.054442],[21.127837,69.080822],[21.052596,69.186552],[21.066136,69.214122],[21.143754,69.247246],[21.266847,69.273705],[21.461254,69.277503],[21.593752,69.273601],[21.621812,69.270708],[21.819681,69.154487],[21.98949,69.041135],[22.079717,68.992792],[22.300427,68.855849],[22.382903,68.776629],[22.410911,68.719888],[22.500673,68.720198],[22.811042,68.69529],[23.071698,68.674361],[23.144355,68.64258],[23.323982,68.648988],[23.462475,68.677617],[23.707008,68.713842],[23.772534,68.758387],[23.854028,68.80593],[23.997326,68.798437],[24.154113,68.760868],[24.331983,68.711517],[24.490526,68.688676],[24.703226,68.652812],[24.802445,68.60651],[24.941351,68.593281],[25.086872,68.639583],[25.172862,68.76526],[25.249136,68.821329],[25.35714,68.862464],[25.480905,68.880628],[25.575266,68.887165],[25.646631,68.919153],[25.748331,68.990156],[25.768174,69.076146],[25.748692,69.231433],[25.767244,69.282671],[25.850236,69.36649],[25.961547,69.588621],[26.011519,69.652648],[26.072445,69.69156],[26.156161,69.714711],[26.308193,69.781942],[26.525441,69.915061],[26.584248,69.926326],[26.740208,69.933044],[26.934253,69.928135],[27.108661,69.904674],[27.127523,69.906483],[27.205709,69.918678],[27.348026,69.960045],[27.591732,70.042237],[27.747898,70.064819],[27.889905,70.061667],[28.047208,69.971698]]]]},"type":"Feature","properties":{"ISO_A2":"FI","NAME":"Finland"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[174.629631,-21.695058],[174.621931,-21.705807],[174.592992,-21.702396],[174.587204,-21.680072],[174.604206,-21.667463],[174.627719,-21.675938],[174.629631,-21.695058]]],[[[-178.711644,-20.66773],[-178.709526,-20.670521],[-178.714952,-20.670314],[-178.723091,-20.6668],[-178.729085,-20.660134],[-178.730584,-20.652796],[-178.727561,-20.645199],[-178.724563,-20.645665],[-178.719189,-20.652331],[-178.714228,-20.659772],[-178.711644,-20.66773]]],[[[-178.535092,-19.166065],[-178.546357,-19.175005],[-178.57372,-19.16498],[-178.595941,-19.151337],[-178.59868,-19.137074],[-178.589326,-19.118884],[-178.5677,-19.109273],[-178.556692,-19.112993],[-178.562971,-19.118781],[-178.576149,-19.125189],[-178.574082,-19.143121],[-178.557106,-19.154076],[-178.540621,-19.157073],[-178.535092,-19.166065]]],[[[178.487948,-18.974087],[178.487638,-19.017082],[178.358964,-19.045607],[178.315659,-19.010105],[178.28796,-19.003749],[178.211376,-19.066536],[178.189155,-19.092323],[178.181817,-19.111701],[178.162076,-19.121468],[178.020793,-19.151647],[177.958678,-19.121572],[178.000743,-19.101108],[178.051902,-19.06018],[178.104095,-19.066174],[178.156599,-19.027882],[178.208379,-18.969643],[178.282172,-18.957034],[178.334262,-18.934503],[178.420252,-18.950833],[178.487948,-18.974087]]],[[[-179.799872,-18.940291],[-179.797624,-18.96985],[-179.812456,-18.968196],[-179.830206,-18.955587],[-179.839379,-18.961685],[-179.845503,-18.970831],[-179.848577,-18.991347],[-179.851239,-19.002974],[-179.865036,-18.998737],[-179.867336,-18.978428],[-179.862788,-18.964165],[-179.8562,-18.943236],[-179.831111,-18.924271],[-179.799872,-18.940291]]],[[[-178.761925,-18.233925],[-178.773656,-18.252426],[-178.827348,-18.222195],[-178.847915,-18.202041],[-178.790864,-18.186331],[-178.763062,-18.191396],[-178.761925,-18.233925]]],[[[179.349291,-18.102357],[179.340402,-18.11047],[179.253483,-18.030579],[179.25648,-17.999056],[179.271776,-17.970737],[179.306503,-17.944072],[179.337922,-17.989548],[179.362417,-18.065202],[179.349291,-18.102357]]],[[[-178.988087,-17.976629],[-179.018396,-17.991821],[-179.039195,-17.988359],[-179.063819,-17.972339],[-179.078986,-17.944176],[-179.047593,-17.920405],[-178.99912,-17.94738],[-178.988087,-17.976629]]],[[[-178.25113,-17.952702],[-178.306837,-17.963296],[-178.357247,-17.92087],[-178.325415,-17.875756],[-178.280327,-17.886401],[-178.254592,-17.930016],[-178.25113,-17.952702]]],[[[178.827566,-17.728995],[178.776096,-17.746772],[178.747674,-17.68569],[178.787051,-17.624402],[178.83108,-17.618821],[178.852577,-17.681246],[178.827566,-17.728995]]],[[[178.280209,-17.372014],[178.280209,-17.416249],[178.309458,-17.435318],[178.338603,-17.43847],[178.41095,-17.523064],[178.523191,-17.595773],[178.591611,-17.65148],[178.595745,-17.699023],[178.574868,-17.749356],[178.603807,-17.839376],[178.617863,-17.932807],[178.667679,-18.080808],[178.597399,-18.108972],[178.486708,-18.112331],[178.461076,-18.138996],[178.423456,-18.124165],[178.331575,-18.135223],[178.243725,-18.183954],[178.160113,-18.250204],[178.063995,-18.250359],[177.955474,-18.264053],[177.847057,-18.254854],[177.770783,-18.219508],[177.636424,-18.18106],[177.457313,-18.148246],[177.383209,-18.120651],[177.321404,-18.077501],[177.263423,-17.96867],[177.254845,-17.914979],[177.26394,-17.863457],[177.31634,-17.846146],[177.360162,-17.820049],[177.366363,-17.786046],[177.38569,-17.762326],[177.410908,-17.753748],[177.423207,-17.737263],[177.405533,-17.682125],[177.400676,-17.631637],[177.504546,-17.539549],[177.617924,-17.461001],[177.818015,-17.388499],[177.940178,-17.395114],[178.12766,-17.339303],[178.187605,-17.313],[178.247136,-17.329123],[178.280209,-17.372014]]],[[[179.422361,-17.366743],[179.388978,-17.393822],[179.373165,-17.256156],[179.407582,-17.257293],[179.4328,-17.271555],[179.447166,-17.306282],[179.422361,-17.366743]]],[[[-178.956513,-17.272899],[-178.98186,-17.307057],[-179.003926,-17.294913],[-178.97553,-17.237449],[-178.971499,-17.212747],[-179.014933,-17.182465],[-179.017698,-17.161381],[-179.005011,-17.148307],[-178.952818,-17.182052],[-178.921141,-17.208407],[-178.914862,-17.223083],[-178.924551,-17.248611],[-178.956513,-17.272899]]],[[[177.234174,-17.147118],[177.182808,-17.163862],[177.210197,-17.08428],[177.239239,-17.059372],[177.257532,-17.054204],[177.287401,-17.048623],[177.275722,-17.104847],[177.234174,-17.147118]]],[[[179.999949,-16.963047],[179.925896,-17.000254],[179.896958,-16.96408],[179.930961,-16.876024],[179.999949,-16.785797],[179.999277,-16.858764],[179.999949,-16.963047]]],[[[-179.974926,-16.924806],[-180,-16.962984],[-180,-16.907803],[-179.999964,-16.858764],[-180,-16.824354],[-180,-16.785557],[-179.893588,-16.700376],[-179.861006,-16.688232],[-179.822326,-16.765333],[-179.867775,-16.850289],[-179.974926,-16.924806]]],[[[180,-16.540024],[179.987185,-16.541161],[179.984704,-16.522144],[180,-16.488865],[180,-16.540024]]],[[[-179.929425,-16.502817],[-179.999964,-16.540024],[-179.999964,-16.488864],[-179.943662,-16.441425],[-179.900952,-16.431503],[-179.927358,-16.479097],[-179.929425,-16.502817]]],[[[179.999277,-16.168574],[179.848278,-16.30164],[179.793811,-16.370318],[179.74813,-16.446283],[179.619145,-16.527725],[179.564161,-16.636969],[179.568192,-16.747453],[179.697073,-16.631904],[179.841044,-16.537492],[179.884969,-16.518423],[179.930341,-16.519456],[179.926517,-16.551703],[179.905949,-16.583587],[179.890033,-16.666941],[179.927963,-16.744456],[179.820787,-16.736963],[179.714747,-16.743577],[179.588966,-16.786985],[179.465459,-16.806106],[179.419364,-16.806519],[179.375026,-16.791946],[179.345984,-16.769725],[179.323349,-16.718101],[179.300508,-16.710298],[179.202323,-16.712675],[179.055459,-16.813599],[179.006883,-16.900208],[178.950349,-16.904032],[178.883686,-16.886049],[178.802968,-16.952195],[178.706643,-16.976121],[178.665095,-16.920001],[178.63812,-16.851271],[178.603703,-16.800628],[178.497456,-16.787916],[178.513786,-16.726059],[178.542002,-16.700531],[178.567736,-16.66384],[178.583549,-16.621879],[178.634296,-16.648493],[178.686282,-16.665597],[178.744573,-16.634178],[178.805035,-16.631491],[178.865703,-16.540075],[178.960581,-16.482766],[179.091425,-16.437498],[179.224647,-16.405148],[179.293584,-16.398585],[179.359213,-16.37993],[179.475071,-16.294147],[179.551759,-16.249912],[179.635268,-16.223247],[179.715057,-16.207589],[179.788851,-16.22149],[179.848175,-16.214255],[179.999949,-16.152916],[179.999277,-16.168574]]],[[[-179.956142,-16.149247],[-180,-16.168246],[-180,-16.156068],[-179.999989,-16.152916],[-179.969371,-16.126095],[-179.944566,-16.126095],[-179.956142,-16.149247]]],[[[177.121468,-12.50549],[177.082401,-12.515618],[177.019356,-12.507298],[177.006281,-12.491072],[177.026332,-12.487455],[177.067621,-12.476913],[177.118057,-12.482339],[177.126998,-12.492829],[177.121468,-12.50549]]]]},"type":"Feature","properties":{"ISO_A2":"FJ","NAME":"Fiji"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.682656,-52.231592],[-59.74658,-52.250867],[-59.76446,-52.242237],[-59.784847,-52.204668],[-59.785958,-52.156144],[-59.793296,-52.134233],[-59.753221,-52.141417],[-59.681003,-52.180122],[-59.682656,-52.231592]]],[[[-58.438805,-52.011037],[-58.432707,-52.09899],[-58.512831,-52.071137],[-58.541382,-52.0284],[-58.497096,-51.999461],[-58.460535,-52.00158],[-58.438805,-52.011037]]],[[[-61.018751,-51.785728],[-60.947282,-51.799474],[-60.875969,-51.794203],[-60.916173,-51.896935],[-60.947566,-51.946338],[-61.03198,-51.942514],[-61.115773,-51.875283],[-61.145048,-51.839471],[-61.051668,-51.813943],[-61.018751,-51.785728]]],[[[-60.286237,-51.461923],[-60.141543,-51.480992],[-60.008683,-51.410505],[-59.917112,-51.388077],[-59.841613,-51.403322],[-59.788438,-51.446007],[-59.711337,-51.439289],[-59.493469,-51.395674],[-59.465099,-51.410505],[-59.387584,-51.359914],[-59.320844,-51.383582],[-59.268082,-51.427558],[-59.293946,-51.478563],[-59.354201,-51.510912],[-59.392416,-51.556181],[-59.437012,-51.592716],[-59.514191,-51.626616],[-59.573206,-51.680824],[-59.714903,-51.80769],[-59.921376,-51.969489],[-59.989744,-51.984062],[-60.132293,-51.99388],[-60.193762,-51.982718],[-60.246343,-51.986387],[-60.288253,-52.073772],[-60.353468,-52.13997],[-60.384242,-52.153974],[-60.452015,-52.160227],[-60.484055,-52.170304],[-60.508394,-52.194747],[-60.686368,-52.18839],[-60.8122,-52.147721],[-60.961441,-52.057287],[-60.762487,-51.946441],[-60.591076,-51.951609],[-60.449741,-51.877143],[-60.334477,-51.839574],[-60.288666,-51.801282],[-60.238488,-51.771982],[-60.238152,-51.733793],[-60.276496,-51.716636],[-60.328328,-51.718342],[-60.379565,-51.735136],[-60.500074,-51.756582],[-60.582498,-51.712709],[-60.528083,-51.696379],[-60.467234,-51.697154],[-60.280966,-51.656071],[-60.24518,-51.638915],[-60.302619,-51.580469],[-60.414911,-51.545019],[-60.50581,-51.485488],[-60.52276,-51.463215],[-60.518264,-51.427868],[-60.568442,-51.357795],[-60.515732,-51.354281],[-60.445452,-51.399395],[-60.286237,-51.461923]]],[[[-60.1117,-51.395881],[-60.248823,-51.395984],[-60.275902,-51.363221],[-60.275333,-51.280539],[-60.171386,-51.273459],[-60.069842,-51.307927],[-60.076483,-51.342551],[-60.1117,-51.395881]]],[[[-58.850175,-51.269945],[-58.697523,-51.328495],[-58.506268,-51.308134],[-58.425834,-51.324205],[-58.378705,-51.373091],[-58.406739,-51.418308],[-58.467433,-51.411849],[-58.519239,-51.423941],[-58.50893,-51.483627],[-58.473738,-51.509104],[-58.27158,-51.574733],[-58.234528,-51.578608],[-58.241117,-51.551117],[-58.276231,-51.506003],[-58.289305,-51.457479],[-58.259229,-51.41712],[-58.206416,-51.404666],[-57.976507,-51.384357],[-57.922505,-51.403477],[-57.808481,-51.51794],[-57.9154,-51.533753],[-57.960462,-51.583208],[-57.866359,-51.60455],[-57.791816,-51.636176],[-57.831167,-51.684597],[-57.838195,-51.709195],[-58.003973,-51.743456],[-58.150915,-51.765419],[-58.21763,-51.822418],[-58.335994,-51.863811],[-58.683518,-51.936209],[-58.643056,-51.994862],[-58.637707,-52.023026],[-58.652771,-52.099197],[-59.131269,-52.007885],[-59.195864,-52.017651],[-59.068017,-52.173042],[-59.162766,-52.201723],[-59.256326,-52.183068],[-59.341489,-52.195987],[-59.395671,-52.308021],[-59.532226,-52.236398],[-59.648705,-52.134337],[-59.64917,-52.077286],[-59.53667,-51.970626],[-59.570777,-51.925357],[-59.308752,-51.780508],[-59.261778,-51.737255],[-59.180026,-51.712554],[-59.095405,-51.704079],[-59.059516,-51.685475],[-59.065381,-51.65018],[-59.099462,-51.589719],[-59.09662,-51.49143],[-58.886684,-51.357898],[-58.917458,-51.272064],[-58.850175,-51.269945]]]]},"type":"Feature","properties":{"ISO_A2":"FK","NAME":"Falkland Is."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[55.797349,-21.339317],[55.656169,-21.369083],[55.557674,-21.358334],[55.362647,-21.273585],[55.31035,-21.217361],[55.232836,-21.058404],[55.249992,-21.002439],[55.311281,-20.904098],[55.450497,-20.865134],[55.596534,-20.879604],[55.661853,-20.906269],[55.739161,-21.021507],[55.839104,-21.138606],[55.822464,-21.277822],[55.797349,-21.339317]]],[[[45.180323,-12.976727],[45.117588,-12.984995],[45.087719,-12.958537],[45.069425,-12.895595],[45.088339,-12.83503],[45.093506,-12.786144],[45.042553,-12.701292],[45.092369,-12.653026],[45.134744,-12.709146],[45.158825,-12.71297],[45.223111,-12.752141],[45.204301,-12.824333],[45.208641,-12.847949],[45.179393,-12.920193],[45.180323,-12.976727]]],[[[-52.288922,4.876137],[-52.32463,4.770872],[-52.219959,4.862804],[-52.058083,4.717387],[-52.012324,4.646022],[-51.961887,4.514402],[-51.979354,4.429859],[-52.001704,4.386218],[-52.002918,4.352293],[-51.954756,4.39906],[-51.927703,4.436112],[-51.919564,4.524324],[-51.880264,4.633748],[-51.827529,4.635686],[-51.785619,4.570522],[-51.698622,4.286819],[-51.665833,4.228786],[-51.653276,4.138766],[-51.658082,4.098484],[-51.652552,4.061277],[-51.683455,4.039702],[-51.767093,3.992676],[-51.805282,3.929941],[-51.827503,3.869583],[-51.879489,3.828552],[-51.928918,3.776979],[-51.944343,3.735095],[-51.990645,3.702022],[-51.999482,3.646884],[-52.116142,3.452296],[-52.162624,3.364679],[-52.229442,3.271687],[-52.271223,3.237115],[-52.327886,3.181718],[-52.356669,3.117717],[-52.356669,3.051571],[-52.396357,2.972196],[-52.418397,2.903854],[-52.455888,2.864167],[-52.554694,2.647642],[-52.559499,2.573125],[-52.583012,2.52889],[-52.653189,2.425744],[-52.700628,2.363654],[-52.783413,2.317172],[-52.870385,2.266658],[-52.903458,2.211519],[-52.964849,2.183562],[-53.00973,2.181728],[-53.082258,2.201726],[-53.180056,2.211338],[-53.229794,2.204904],[-53.252196,2.232267],[-53.285502,2.295209],[-53.334439,2.339754],[-53.365988,2.3242],[-53.431823,2.279448],[-53.509002,2.253144],[-53.563986,2.261929],[-53.683669,2.292935],[-53.734699,2.308542],[-53.75015,2.335],[-53.767772,2.354844],[-53.79423,2.346007],[-53.829525,2.312934],[-53.876603,2.278259],[-53.946417,2.232551],[-54.089768,2.150489],[-54.13005,2.121059],[-54.167386,2.137079],[-54.227976,2.153306],[-54.293037,2.154236],[-54.43308,2.207514],[-54.515091,2.245445],[-54.550515,2.29309],[-54.591959,2.313761],[-54.616273,2.326783],[-54.604749,2.335775],[-54.568421,2.342596],[-54.535968,2.343294],[-54.485558,2.416132],[-54.401997,2.461504],[-54.256734,2.713736],[-54.195524,2.817864],[-54.188082,2.874864],[-54.170693,2.993616],[-54.203146,3.138207],[-54.188031,3.178773],[-54.063206,3.353336],[-54.00954,3.448524],[-54.005974,3.530534],[-53.990472,3.589549],[-54.005897,3.620425],[-54.034216,3.629391],[-54.081965,3.70595],[-54.11279,3.769408],[-54.197436,3.834417],[-54.25552,3.901054],[-54.350734,4.05412],[-54.342156,4.140032],[-54.369156,4.170934],[-54.398379,4.202509],[-54.396235,4.241395],[-54.416027,4.337643],[-54.440677,4.428025],[-54.449617,4.485024],[-54.426078,4.583002],[-54.440263,4.691988],[-54.47114,4.749323],[-54.479692,4.836501],[-54.473336,4.914687],[-54.446878,4.958793],[-54.4522,5.013493],[-54.331665,5.187384],[-54.240172,5.28823],[-54.155965,5.359001],[-54.085298,5.411815],[-53.989593,5.676036],[-53.919907,5.769002],[-53.847147,5.782231],[-53.454458,5.563485],[-53.27036,5.54328],[-52.899298,5.425044],[-52.764991,5.273477],[-52.45395,5.021348],[-52.290549,4.942179],[-52.288922,4.876137]]],[[[-60.826282,14.494464],[-60.836591,14.437414],[-60.862119,14.426252],[-60.89943,14.473794],[-61.063709,14.467076],[-61.088875,14.509554],[-61.090322,14.529708],[-61.011335,14.6019],[-61.104301,14.621227],[-61.14112,14.652388],[-61.21972,14.80442],[-61.213312,14.848603],[-61.180808,14.871909],[-61.127374,14.875268],[-61.027096,14.826175],[-60.952553,14.756257],[-60.927154,14.755172],[-60.918653,14.735328],[-60.933691,14.686184],[-60.889146,14.644507],[-60.869974,14.613734],[-60.826282,14.494464]]],[[[-61.230495,15.889935],[-61.286228,15.886059],[-61.310722,15.894689],[-61.318396,15.954892],[-61.275298,15.996259],[-61.249977,16.00631],[-61.212356,15.959905],[-61.20339,15.921251],[-61.230495,15.889935]]],[[[-61.589568,16.00693],[-61.670468,15.962075],[-61.710233,15.975924],[-61.759429,16.062069],[-61.794104,16.300969],[-61.767155,16.340476],[-61.74806,16.355281],[-61.641529,16.325981],[-61.59701,16.292184],[-61.552361,16.270893],[-61.575047,16.227175],[-61.563885,16.047755],[-61.589568,16.00693]]],[[[-61.327156,16.230405],[-61.444797,16.219295],[-61.522157,16.228054],[-61.539985,16.299626],[-61.500556,16.36019],[-61.528926,16.433778],[-61.510659,16.477703],[-61.471178,16.506641],[-61.406427,16.468297],[-61.396144,16.413417],[-61.355474,16.363188],[-61.172591,16.256114],[-61.327156,16.230405]]],[[[9.480383,42.805424],[9.454235,42.658585],[9.473252,42.61559],[9.509425,42.585592],[9.526168,42.552623],[9.556451,42.160941],[9.550663,42.129754],[9.428396,41.972425],[9.400905,41.926227],[9.394807,41.7312],[9.37424,41.6788],[9.330831,41.627124],[9.25342,41.460054],[9.186137,41.384916],[9.002996,41.476564],[8.894992,41.516174],[8.842076,41.558885],[8.807556,41.588366],[8.829777,41.627666],[8.878973,41.668542],[8.886827,41.700659],[8.770969,41.737117],[8.717949,41.761431],[8.718672,41.803986],[8.75867,41.870416],[8.74048,41.925142],[8.67361,41.922377],[8.621831,41.930723],[8.615113,41.959119],[8.653457,41.995551],[8.702549,42.043119],[8.700999,42.095596],[8.641571,42.118205],[8.587828,42.160838],[8.566227,42.218819],[8.607878,42.258454],[8.675471,42.284034],[8.625861,42.343411],[8.592375,42.344728],[8.565607,42.357725],[8.587518,42.385294],[8.640021,42.426558],[8.713091,42.549755],[8.81479,42.607891],[8.994935,42.64533],[9.043614,42.661686],[9.088366,42.704991],[9.137872,42.732896],[9.198023,42.729175],[9.253523,42.712432],[9.287733,42.694604],[9.313365,42.713207],[9.338376,42.766899],[9.32308,42.814079],[9.330935,42.943787],[9.363181,43.017375],[9.415271,43.021509],[9.463226,42.980994],[9.460849,42.945208],[9.478626,42.860485],[9.480383,42.805424]]],[[[-1.17832,45.904072],[-1.213564,45.816584],[-1.280252,45.897121],[-1.368696,45.96766],[-1.38885,46.032953],[-1.388669,46.050368],[-1.285084,46.00267],[-1.17832,45.904072]]],[[[2.759398,50.750649],[2.839755,50.711789],[2.862441,50.716],[2.921972,50.727033],[3.022896,50.766876],[3.10687,50.779433],[3.154878,50.748944],[3.182008,50.731684],[3.234976,50.662954],[3.249755,50.591176],[3.27332,50.531541],[3.316211,50.507357],[3.476925,50.49945],[3.595367,50.477359],[3.626787,50.457334],[3.667301,50.324784],[3.689315,50.306077],[3.718874,50.321657],[3.74802,50.343491],[3.788586,50.346953],[3.85809,50.338556],[3.949713,50.335946],[4.044126,50.321347],[4.174557,50.246494],[4.169596,50.221767],[4.14412,50.17841],[4.135283,50.143813],[4.15771,50.129886],[4.192179,50.094152],[4.183859,50.052811],[4.150321,50.023872],[4.136833,49.999997],[4.13704,49.984469],[4.149339,49.971575],[4.176056,49.960258],[4.368705,49.944962],[4.545025,49.960258],[4.656181,50.002452],[4.675095,50.046894],[4.706617,50.097046],[4.772867,50.139059],[4.818652,50.153192],[4.860562,50.135906],[4.790023,49.959586],[4.841545,49.914499],[4.849141,49.847139],[4.86759,49.788124],[4.930583,49.789261],[5.006909,49.778357],[5.061066,49.75655],[5.124111,49.721461],[5.21501,49.689241],[5.278779,49.677924],[5.301982,49.651001],[5.353503,49.61984],[5.434635,49.554469],[5.507292,49.51088],[5.542432,49.511035],[5.610077,49.528243],[5.710484,49.539199],[5.789704,49.538269],[5.823449,49.505066],[5.901377,49.48977],[5.92892,49.477549],[5.959461,49.45463],[6.011396,49.445458],[6.074079,49.45463],[6.119916,49.485197],[6.181049,49.498943],[6.242183,49.494344],[6.277323,49.477549],[6.344295,49.452744],[6.382277,49.458144],[6.458138,49.442848],[6.53431,49.39466],[6.566349,49.346213],[6.574669,49.319677],[6.607587,49.290868],[6.735434,49.160617],[6.776259,49.154158],[6.8207,49.17395],[6.849536,49.201958],[6.891187,49.207539],[6.958315,49.19462],[7.001464,49.179867],[7.022135,49.123462],[7.036708,49.112713],[7.06575,49.124857],[7.117375,49.127544],[7.199902,49.113643],[7.313383,49.12956],[7.404231,49.153072],[7.450533,49.152194],[7.525515,49.086358],[7.610936,49.06176],[7.799194,49.041916],[8.001248,49.010962],[8.080623,48.985873],[8.134832,48.9736],[8.14031,48.886422],[8.12398,48.873296],[7.922752,48.698527],[7.837951,48.63605],[7.794801,48.54683],[7.765139,48.410017],[7.705711,48.280051],[7.616621,48.156802],[7.584168,48.064302],[7.608456,48.002574],[7.593263,47.905655],[7.538589,47.773622],[7.529391,47.673886],[7.565461,47.606552],[7.615587,47.592703],[7.494871,47.547382],[7.467431,47.507643],[7.420044,47.455192],[7.343149,47.433126],[7.265738,47.425788],[7.203106,47.432712],[7.167449,47.453693],[7.169206,47.473227],[7.13603,47.489866],[7.053451,47.48935],[6.968392,47.453228],[6.900385,47.394213],[6.921469,47.361218],[6.98405,47.352562],[7.000534,47.339436],[7.000638,47.322512],[6.978468,47.302048],[6.952062,47.267193],[6.820649,47.163168],[6.688047,47.058265],[6.666911,47.026536],[6.624847,47.004366],[6.456226,46.948323],[6.438605,46.92587],[6.428993,46.832284],[6.410131,46.755441],[6.285126,46.683042],[6.160792,46.611057],[6.129735,46.566977],[6.106997,46.516076],[6.067981,46.458534],[6.06023,46.428174],[6.123224,46.378591],[6.115937,46.337637],[6.095887,46.279398],[6.036149,46.238108],[5.970003,46.214699],[5.971501,46.15124],[6.006693,46.142352],[6.086585,46.147003],[6.199395,46.193046],[6.272982,46.252268],[6.229574,46.30844],[6.224199,46.319447],[6.23469,46.332624],[6.321919,46.393706],[6.42889,46.4305],[6.578234,46.437373],[6.758068,46.415772],[6.776052,46.406651],[6.767422,46.369185],[6.784165,46.313943],[6.816773,46.275212],[6.772021,46.165141],[6.805714,46.130673],[6.858062,46.089383],[6.897285,46.051737],[6.953715,46.01714],[7.003893,45.958849],[7.021102,45.925776],[6.940796,45.868363],[6.804474,45.814568],[6.789178,45.7801],[6.790935,45.740878],[6.806231,45.710001],[6.881472,45.670339],[6.962397,45.580577],[7.01366,45.500505],[7.126108,45.423688],[7.153393,45.40095],[7.146365,45.381726],[7.116806,45.349041],[7.078359,45.239926],[7.032367,45.222589],[6.981207,45.215587],[6.842301,45.135643],[6.780341,45.145333],[6.692284,45.144299],[6.627689,45.11797],[6.634769,45.06818],[6.691406,45.022601],[6.724685,44.973017],[6.738225,44.921393],[6.801115,44.883152],[6.889327,44.860285],[6.939866,44.858761],[6.972836,44.845041],[6.992679,44.82729],[7.030713,44.716702],[7.007872,44.688978],[6.96033,44.67717],[6.931908,44.631643],[6.875167,44.564567],[6.842921,44.510694],[6.878578,44.463281],[6.893874,44.428193],[6.874857,44.392019],[6.90023,44.335744],[6.967255,44.280011],[7.149362,44.201695],[7.318551,44.137978],[7.370899,44.127384],[7.599464,44.168364],[7.63724,44.16485],[7.665042,44.116041],[7.677134,44.083149],[7.651502,44.033643],[7.589697,43.96543],[7.522673,43.911067],[7.482004,43.864894],[7.49053,43.822958],[7.493114,43.767148],[7.438699,43.750456],[7.436942,43.761464],[7.414411,43.77092],[7.394981,43.765339],[7.380098,43.753247],[7.377721,43.73175],[7.2615,43.696093],[7.181402,43.659144],[6.864729,43.438331],[6.716624,43.37358],[6.687375,43.334565],[6.657196,43.261649],[6.570173,43.199095],[6.494002,43.169303],[6.305383,43.138711],[6.115937,43.072358],[6.030568,43.100987],[5.809496,43.097886],[5.671623,43.17783],[5.406523,43.228524],[5.320223,43.3449],[5.199507,43.35247],[5.120442,43.348982],[5.073107,43.366604],[5.060808,43.406317],[5.059774,43.444532],[4.975955,43.426936],[4.911876,43.426936],[4.873739,43.411614],[4.84356,43.393941],[4.807903,43.405206],[4.787233,43.401434],[4.789093,43.378903],[4.712095,43.37327],[4.628689,43.387094],[4.409736,43.447219],[4.376198,43.456418],[4.22427,43.47962],[4.162775,43.50365],[4.113062,43.563026],[4.075131,43.58181],[4.052601,43.593076],[3.9108,43.563078],[3.861604,43.516336],[3.784813,43.461637],[3.258851,43.193229],[3.162939,43.080782],[3.051731,42.915159],[3.04305,42.837902],[3.090902,42.590889],[3.197872,42.461181],[3.211412,42.431157],[3.15219,42.431002],[3.052662,42.447229],[2.970031,42.467227],[2.891379,42.456065],[2.81557,42.429245],[2.749424,42.413019],[2.701882,42.408471],[2.669998,42.39302],[2.654753,42.362092],[2.651652,42.340491],[2.567988,42.345814],[2.37446,42.390281],[2.200414,42.420925],[2.098301,42.386095],[2.032672,42.353539],[1.986525,42.3585],[1.951488,42.392762],[1.927976,42.4263],[1.859711,42.457099],[1.706025,42.503297],[1.713932,42.525622],[1.740184,42.556731],[1.73946,42.575929],[1.709901,42.604428],[1.568153,42.634995],[1.501335,42.64272],[1.458857,42.621688],[1.428316,42.595902],[1.349458,42.690676],[1.293286,42.709951],[1.20833,42.713155],[1.111178,42.742043],[1.010047,42.77894],[0.764429,42.838032],[0.696836,42.845137],[0.66981,42.835732],[0.651775,42.800437],[0.642008,42.70065],[0.631621,42.689617],[0.517674,42.686258],[0.377269,42.700133],[0.312855,42.69326],[0.25552,42.692898],[0.201414,42.719357],[-0.041155,42.689126],[-0.081488,42.70388],[-0.140012,42.748916],[-0.205331,42.785322],[-0.256077,42.803977],[-0.299304,42.825319],[-0.338553,42.828833],[-0.398446,42.808085],[-0.481154,42.7993],[-0.549806,42.801987],[-0.586444,42.79899],[-0.740182,42.909526],[-0.762661,42.939808],[-0.839194,42.948206],[-0.933839,42.949498],[-1.175452,43.021121],[-1.285472,43.05962],[-1.301543,43.082461],[-1.300044,43.100961],[-1.318829,43.096956],[-1.352728,43.064245],[-1.370531,43.03758],[-1.394044,43.032619],[-1.42877,43.036753],[-1.460861,43.051765],[-1.480498,43.071144],[-1.459414,43.104966],[-1.422621,43.149098],[-1.40735,43.197105],[-1.410709,43.2401],[-1.471713,43.267669],[-1.561475,43.279219],[-1.62713,43.282475],[-1.712836,43.307047],[-1.753272,43.324694],[-1.792727,43.372547],[-1.794019,43.407325],[-1.631419,43.438021],[-1.484891,43.563749],[-1.345985,44.020207],[-1.2455,44.559864],[-1.170802,44.661822],[-1.076931,44.689831],[-1.152896,44.764012],[-1.200412,44.726443],[-1.220308,44.686601],[-1.24519,44.666705],[-1.189069,45.161481],[-1.149072,45.342607],[-1.080988,45.532415],[-0.941746,45.457096],[-0.826301,45.380641],[-0.766666,45.31434],[-0.691141,45.093475],[-0.633961,45.047121],[-0.548488,45.000587],[-0.582285,45.051359],[-0.641092,45.090194],[-0.733102,45.38462],[-0.790773,45.468026],[-0.88069,45.538177],[-1.169975,45.68592],[-1.195968,45.714471],[-1.209946,45.770902],[-1.114371,45.768524],[-1.031714,45.741084],[-1.041481,45.772659],[-1.066002,45.80568],[-1.104423,45.925362],[-1.136385,46.204829],[-1.132044,46.252707],[-1.146281,46.311385],[-1.238808,46.324511],[-1.312808,46.326888],[-1.392468,46.350091],[-1.786552,46.514836],[-1.921453,46.684799],[-2.059404,46.810296],[-2.092502,46.865047],[-2.09028,46.920496],[-2.018889,47.037646],[-2.08196,47.111647],[-2.143559,47.126323],[-2.19707,47.162961],[-2.148571,47.223914],[-2.108315,47.262955],[-2.027571,47.273601],[-1.921738,47.26063],[-1.821279,47.225335],[-1.742524,47.215956],[-1.975378,47.310704],[-2.353029,47.278768],[-2.43442,47.290964],[-2.503098,47.312048],[-2.530047,47.381604],[-2.476329,47.41292],[-2.427676,47.470901],[-2.482737,47.511622],[-2.55405,47.527048],[-2.66593,47.526195],[-2.770342,47.513844],[-2.796801,47.537254],[-2.733135,47.601823],[-2.787215,47.625517],[-2.859355,47.614458],[-2.964051,47.601074],[-3.0642,47.621357],[-3.15882,47.694686],[-3.221607,47.694118],[-3.264705,47.6851],[-3.328629,47.713315],[-3.395911,47.720421],[-3.443919,47.711042],[-3.507791,47.753106],[-3.900945,47.837545],[-4.070676,47.847829],[-4.226403,47.80964],[-4.312083,47.822921],[-4.375128,47.87744],[-4.427967,47.968959],[-4.678779,48.039497],[-4.629169,48.085799],[-4.512381,48.096729],[-4.377815,48.128794],[-4.329446,48.16998],[-4.434608,48.217962],[-4.5122,48.229718],[-4.544342,48.246978],[-4.577131,48.290024],[-4.530648,48.309713],[-4.497911,48.299274],[-4.403343,48.293073],[-4.241389,48.303667],[-4.301773,48.347075],[-4.364405,48.356739],[-4.393137,48.367642],[-4.524835,48.372293],[-4.584728,48.357514],[-4.71937,48.363146],[-4.748542,48.410017],[-4.762494,48.450221],[-4.720766,48.53988],[-4.531191,48.619978],[-4.058868,48.707518],[-3.855676,48.694702],[-3.714781,48.710515],[-3.54598,48.765654],[-3.471488,48.812938],[-3.231425,48.840818],[-3.003222,48.790666],[-2.792899,48.601065],[-2.692337,48.536805],[-2.446176,48.648297],[-2.079454,48.645041],[-2.003696,48.5821],[-1.973156,48.635094],[-1.905718,48.697131],[-1.851923,48.668838],[-1.824689,48.63052],[-1.437633,48.641424],[-1.376448,48.652586],[-1.480498,48.697622],[-1.56548,48.805497],[-1.583128,49.202372],[-1.690356,49.313166],[-1.813424,49.490158],[-1.870061,49.595138],[-1.875384,49.631389],[-1.856419,49.683789],[-1.70511,49.680947],[-1.588218,49.667692],[-1.365725,49.707276],[-1.258626,49.680172],[-1.26493,49.598265],[-1.232271,49.49486],[-1.19496,49.444838],[-1.13853,49.38789],[-0.959135,49.393161],[-0.765529,49.359726],[-0.520919,49.354559],[-0.163499,49.296785],[-0.011182,49.330219],[0.136095,49.401533],[0.416931,49.448403],[0.439255,49.473208],[0.277611,49.463286],[0.129403,49.508451],[0.109353,49.557544],[0.126587,49.601546],[0.186764,49.703039],[0.616221,49.862952],[0.924109,49.910184],[1.245537,49.99824],[1.407181,50.088519],[1.514047,50.205101],[1.548464,50.230707],[1.592802,50.252178],[1.551565,50.293933],[1.57947,50.739255],[1.609546,50.819482],[1.672281,50.885008],[1.767675,50.935677],[1.912473,50.990635],[2.44567,51.066496],[2.524942,51.09714],[2.536052,51.049494],[2.57481,50.988568],[2.601423,50.955288],[2.579254,50.911776],[2.596772,50.875913],[2.669119,50.811421],[2.759398,50.750649]]]]},"type":"Feature","properties":{"ISO_A2":"FR","NAME":"France"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-6.699456,61.444622],[-6.679716,61.414288],[-6.703048,61.417698],[-6.770511,61.45227],[-6.888153,61.534746],[-6.929236,61.602907],[-6.934842,61.634326],[-6.905904,61.630812],[-6.881667,61.602803],[-6.770021,61.584355],[-6.740642,61.570506],[-6.741082,61.536399],[-6.703513,61.495937],[-6.699456,61.444622]]],[[[-6.623208,61.805969],[-6.642793,61.768323],[-6.670156,61.768633],[-6.764259,61.815323],[-6.839138,61.840773],[-6.863994,61.862271],[-6.884768,61.899116],[-6.841799,61.903715],[-6.790769,61.895344],[-6.66212,61.861754],[-6.625843,61.826717],[-6.623208,61.805969]]],[[[-7.186868,62.139308],[-7.097106,62.100551],[-7.065196,62.073266],[-7.116821,62.046807],[-7.179375,62.040038],[-7.254926,62.046136],[-7.379079,62.074816],[-7.422616,62.14029],[-7.336782,62.138688],[-7.235315,62.15122],[-7.186868,62.139308]]],[[[-6.631037,62.227882],[-6.655816,62.093626],[-6.696433,62.09435],[-6.768909,62.131505],[-6.823428,62.139101],[-6.840533,62.119309],[-6.837691,62.095435],[-6.809501,62.080423],[-6.72253,61.990403],[-6.714417,61.964151],[-6.725165,61.951464],[-6.809708,61.977458],[-7.013572,62.093988],[-7.172167,62.285604],[-6.958639,62.316248],[-6.803662,62.265967],[-6.631037,62.227882]]],[[[-6.406063,62.258629],[-6.453864,62.18654],[-6.524687,62.197858],[-6.544169,62.205635],[-6.559465,62.224523],[-6.552049,62.278111],[-6.554607,62.355677],[-6.473036,62.291909],[-6.406063,62.258629]]]]},"type":"Feature","properties":{"ISO_A2":"FO","NAME":"Faroe Is."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[162.983158,5.325722],[162.993493,5.277249],[162.929931,5.300762],[162.921146,5.317919],[162.958147,5.335024],[162.983158,5.325722]]],[[[158.314812,6.813693],[158.256521,6.791007],[158.183451,6.801291],[158.160817,6.882836],[158.12764,6.904643],[158.134772,6.944848],[158.186138,6.977714],[158.294659,6.951049],[158.334966,6.893171],[158.309335,6.854621],[158.314812,6.813693]]],[[[151.647726,7.346167],[151.639509,7.332989],[151.578376,7.338105],[151.569746,7.345495],[151.575069,7.351335],[151.604318,7.3572],[151.60778,7.375364],[151.592897,7.37924],[151.60561,7.388722],[151.629484,7.390454],[151.643282,7.379266],[151.650516,7.362833],[151.647726,7.346167]]],[[[151.881407,7.432053],[151.86425,7.42673],[151.855982,7.431795],[151.860013,7.457375],[151.865335,7.46616],[151.88182,7.46709],[151.910552,7.460165],[151.912619,7.453861],[151.881407,7.432053]]],[[[138.14271,9.500687],[138.067056,9.419064],[138.061888,9.445755],[138.08504,9.494563],[138.116872,9.550218],[138.146948,9.583601],[138.185809,9.593291],[138.21361,9.547221],[138.182501,9.507379],[138.14271,9.500687]]]]},"type":"Feature","properties":{"ISO_A2":"FM","NAME":"Micronesia"}},{"geometry":{"type":"Polygon","coordinates":[[[13.293587,2.161574],[13.288626,2.091707],[13.209458,1.9204],[13.172147,1.788573],[13.162742,1.648117],[13.18455,1.535049],[13.22279,1.454614],[13.247388,1.366687],[13.228371,1.305399],[13.190131,1.27925],[13.216279,1.248451],[13.274105,1.24101],[13.372342,1.267778],[13.52334,1.314597],[13.721158,1.382293],[13.851331,1.418751],[14.066201,1.395884],[14.180871,1.370201],[14.239731,1.322555],[14.303034,1.120862],[14.334454,1.090218],[14.38644,1.004435],[14.429848,0.901444],[14.439202,0.849096],[14.434447,0.811475],[14.390678,0.755716],[14.341482,0.673809],[14.324222,0.6242],[14.283087,0.587458],[14.230997,0.551129],[14.087544,0.536557],[14.065529,0.515008],[14.025325,0.427726],[13.949619,0.353829],[13.915151,0.283962],[13.88461,0.190841],[13.890656,0.075293],[13.875463,-0.090795],[13.860064,-0.203346],[13.897994,-0.242621],[14.069457,-0.270112],[14.10284,-0.292333],[14.148367,-0.36189],[14.206761,-0.427312],[14.363806,-0.468602],[14.424681,-0.518676],[14.474083,-0.573453],[14.480595,-0.618308],[14.444886,-0.798814],[14.410625,-0.972085],[14.42406,-1.10386],[14.436876,-1.229795],[14.455583,-1.413195],[14.447212,-1.525075],[14.402925,-1.593391],[14.402925,-1.646928],[14.423234,-1.711575],[14.38396,-1.890065],[14.358586,-1.920244],[14.28841,-1.953472],[14.251461,-2.00148],[14.239679,-2.07672],[14.2018,-2.179867],[14.162836,-2.217539],[14.162836,-2.265546],[14.200405,-2.300634],[14.199785,-2.354223],[14.129763,-2.417992],[14.08744,-2.466878],[13.993854,-2.490649],[13.886884,-2.465379],[13.861821,-2.429929],[13.887711,-2.374532],[13.878461,-2.330193],[13.841564,-2.283685],[13.784358,-2.163744],[13.733818,-2.138474],[13.705603,-2.187515],[13.618528,-2.278569],[13.464946,-2.395409],[13.357356,-2.404814],[13.158608,-2.369106],[12.992003,-2.313347],[12.913558,-2.176249],[12.864466,-2.063233],[12.793514,-1.93182],[12.713674,-1.869446],[12.628408,-1.829604],[12.590477,-1.826813],[12.468676,-1.899987],[12.432141,-1.928926],[12.432451,-1.990317],[12.443716,-2.047575],[12.46263,-2.075274],[12.478546,-2.112015],[12.475704,-2.169221],[12.453845,-2.245599],[12.446403,-2.329935],[12.064411,-2.412617],[11.998265,-2.382852],[11.95031,-2.344818],[11.892432,-2.351432],[11.726757,-2.394737],[11.665883,-2.364558],[11.605421,-2.342596],[11.577723,-2.360941],[11.575242,-2.397063],[11.603457,-2.595449],[11.594517,-2.670999],[11.557155,-2.769598],[11.537828,-2.836674],[11.639114,-2.855381],[11.675701,-2.886645],[11.711358,-2.936513],[11.76014,-2.983125],[11.763448,-3.011237],[11.708051,-3.06312],[11.689034,-3.126992],[11.715389,-3.176912],[11.784377,-3.229105],[11.885094,-3.283158],[11.934187,-3.318557],[11.929329,-3.35101],[11.882769,-3.420204],[11.864734,-3.478599],[11.832901,-3.531412],[11.839412,-3.58004],[11.884784,-3.625411],[11.879926,-3.665926],[11.849127,-3.696725],[11.786444,-3.690265],[11.733424,-3.694503],[11.685726,-3.681997],[11.536795,-3.524952],[11.504342,-3.520353],[11.288335,-3.641069],[11.234488,-3.690782],[11.189994,-3.761992],[11.130153,-3.916298],[11.032019,-3.826484],[10.94727,-3.662153],[10.848568,-3.561281],[10.640726,-3.398087],[10.585432,-3.277991],[10.347617,-3.013097],[10.006139,-2.748307],[9.759436,-2.518554],[9.722022,-2.467601],[9.763673,-2.473854],[10.002005,-2.588421],[10.034458,-2.575605],[10.062053,-2.549922],[9.959113,-2.489822],[9.860825,-2.44259],[9.768634,-2.413134],[9.67634,-2.415615],[9.62456,-2.36709],[9.59097,-2.293141],[9.574021,-2.229993],[9.533196,-2.163847],[9.402248,-2.027628],[9.370519,-1.97497],[9.298895,-1.903036],[9.34251,-1.893683],[9.482863,-1.962309],[9.495266,-1.934972],[9.483173,-1.894613],[9.3422,-1.829397],[9.265616,-1.825056],[9.247942,-1.779323],[9.258381,-1.726303],[9.157509,-1.52771],[9.052812,-1.379089],[9.036276,-1.308912],[9.318842,-1.631993],[9.35667,-1.637574],[9.406382,-1.634577],[9.523378,-1.598352],[9.501054,-1.55515],[9.448344,-1.508848],[9.397184,-1.530139],[9.330625,-1.534583],[9.295795,-1.515204],[9.280188,-1.481925],[9.346644,-1.324983],[9.317912,-1.332942],[9.296725,-1.360899],[9.260138,-1.374231],[9.203811,-1.382396],[9.064594,-1.29837],[8.941915,-1.071511],[8.909358,-1.025002],[8.876595,-0.946092],[8.844246,-0.913587],[8.703169,-0.591023],[8.757223,-0.614949],[8.821405,-0.70838],[8.946359,-0.688743],[8.995245,-0.63469],[9.037929,-0.636757],[9.081544,-0.624303],[9.136528,-0.57335],[9.296725,-0.351244],[9.3391,-0.058239],[9.32525,0.115807],[9.301893,0.28851],[9.354913,0.343597],[9.37579,0.307217],[9.386125,0.245877],[9.411137,0.200453],[9.468187,0.159784],[9.574331,0.148932],[9.738352,0.084956],[9.796746,0.044235],[9.812662,0.125574],[10.001488,0.194975],[9.944437,0.219884],[9.776696,0.192495],[9.546529,0.295951],[9.470151,0.36189],[9.398838,0.486741],[9.324837,0.552111],[9.330005,0.610816],[9.495266,0.664869],[9.538984,0.658668],[9.556657,0.594176],[9.601099,0.567718],[9.617946,0.576503],[9.625284,0.631641],[9.625904,0.779436],[9.575364,0.991309],[9.590867,1.031979],[9.636187,1.046706],[9.676495,1.074715],[9.704555,1.079986],[9.760573,1.074715],[9.788633,1.025674],[9.803877,0.998751],[9.860308,0.986245],[9.906765,0.960097],[9.946711,0.967125],[9.979784,0.997717],[10.028463,1.004022],[10.178945,1.003557],[10.315474,1.003092],[10.587189,1.002161],[10.858903,1.001283],[11.130618,1.000404],[11.33536,0.999681],[11.334688,1.120759],[11.333603,1.307621],[11.332363,1.528382],[11.331174,1.740204],[11.330037,1.935903],[11.328746,2.167413],[11.339959,2.233817],[11.353344,2.261413],[11.348383,2.299705],[11.559016,2.302185],[11.939768,2.285158],[12.106114,2.287509],[12.153398,2.284357],[12.361292,2.295984],[12.529758,2.28136],[12.601329,2.26503],[12.665718,2.256788],[12.867515,2.246788],[13.130806,2.259423],[13.22031,2.256452],[13.269919,2.224206],[13.293587,2.161574]]]},"type":"Feature","properties":{"ISO_A2":"GA","NAME":"Gabon"}},{"geometry":{"type":"Polygon","coordinates":[[[34.24528,31.208328],[34.212517,31.292276],[34.198151,31.32261],[34.387286,31.483763],[34.477358,31.584842],[34.524126,31.541641],[34.525573,31.525621],[34.350183,31.362763],[34.348322,31.292922],[34.24528,31.208328]]]},"type":"Feature","properties":{"ISO_A2":"PS","NAME":"Gaza"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-1.065563,50.69024],[-1.149382,50.65572],[-1.17584,50.615257],[-1.196071,50.599237],[-1.251494,50.588799],[-1.306297,50.58854],[-1.515354,50.669776],[-1.563413,50.666107],[-1.51569,50.703314],[-1.385853,50.733544],[-1.312808,50.77349],[-1.144214,50.734733],[-1.065563,50.69024]]],[[[-4.196793,53.321448],[-4.154883,53.302845],[-4.04936,53.305739],[-4.084293,53.264294],[-4.200384,53.218044],[-4.278596,53.172414],[-4.373061,53.134199],[-4.418846,53.178046],[-4.471995,53.176367],[-4.553205,53.26047],[-4.567881,53.386457],[-4.461738,53.419272],[-4.31508,53.417257],[-4.196793,53.321448]]],[[[-6.37529,55.241796],[-6.234213,55.216837],[-6.129155,55.217405],[-6.035776,55.144541],[-5.985753,55.029665],[-5.869197,54.916235],[-5.716829,54.817481],[-5.710731,54.757071],[-5.765198,54.724644],[-5.879093,54.684389],[-5.878628,54.641316],[-5.803465,54.66302],[-5.738611,54.673046],[-5.582548,54.663434],[-5.527926,54.619612],[-5.490202,54.554035],[-5.470384,54.500188],[-5.483897,54.441638],[-5.525885,54.46019],[-5.568543,54.51259],[-5.615982,54.536723],[-5.67107,54.549746],[-5.64611,54.477864],[-5.65598,54.38172],[-5.631899,54.37265],[-5.557795,54.370997],[-5.606784,54.272579],[-5.70807,54.245836],[-5.826176,54.235837],[-5.854624,54.200981],[-5.87607,54.156075],[-5.937746,54.089076],[-6.019059,54.051275],[-6.119543,54.058871],[-6.218013,54.08874],[-6.303667,54.09489],[-6.363663,54.077113],[-6.402575,54.060628],[-6.440273,54.063625],[-6.548148,54.057269],[-6.649821,54.058639],[-6.664213,54.084761],[-6.64685,54.163438],[-6.669536,54.184703],[-6.766584,54.195607],[-6.802603,54.214366],[-6.858336,54.268677],[-6.869265,54.294051],[-6.877223,54.329087],[-6.93616,54.37433],[-7.007732,54.406705],[-7.049693,54.408256],[-7.133487,54.355391],[-7.202578,54.301802],[-7.178083,54.274879],[-7.155449,54.239506],[-7.193044,54.214107],[-7.306732,54.155997],[-7.324509,54.13344],[-7.355179,54.121245],[-7.409439,54.137316],[-7.544418,54.133595],[-7.606533,54.143827],[-7.678776,54.186667],[-7.854941,54.21527],[-7.884449,54.283767],[-7.918452,54.296583],[-8.118233,54.41425],[-8.144794,54.453498],[-8.118956,54.476959],[-8.044335,54.512461],[-7.793808,54.571243],[-7.754405,54.594937],[-7.746266,54.61584],[-7.819853,54.639714],[-7.886154,54.666069],[-7.908737,54.683329],[-7.910597,54.698315],[-7.872925,54.717849],[-7.79727,54.719296],[-7.737481,54.710459],[-7.68999,54.728003],[-7.606429,54.745703],[-7.550412,54.767949],[-7.502198,54.825439],[-7.451245,54.877116],[-7.445974,54.905124],[-7.401429,55.00331],[-7.376909,55.027701],[-7.218624,55.092012],[-7.178626,55.056898],[-7.10062,55.048268],[-7.03078,55.080618],[-6.947167,55.182524],[-6.88898,55.188931],[-6.824849,55.180663],[-6.698836,55.193479],[-6.475051,55.241021],[-6.37529,55.241796]]],[[[-5.105419,55.448812],[-5.23151,55.448089],[-5.277037,55.456719],[-5.331504,55.481032],[-5.392689,55.618337],[-5.370778,55.666964],[-5.345715,55.69071],[-5.318119,55.709184],[-5.251612,55.716935],[-5.185466,55.690968],[-5.160403,55.666809],[-5.105006,55.573972],[-5.094696,55.494339],[-5.105419,55.448812]]],[[[-6.128923,55.930592],[-6.092827,55.802124],[-6.057635,55.722491],[-6.05531,55.695309],[-6.088357,55.657533],[-6.253179,55.607252],[-6.305062,55.606942],[-6.307232,55.619138],[-6.270025,55.670323],[-6.302065,55.728382],[-6.286407,55.772513],[-6.301729,55.780601],[-6.333871,55.774374],[-6.451952,55.704249],[-6.491355,55.697324],[-6.49567,55.711587],[-6.466473,55.768999],[-6.462856,55.808273],[-6.44526,55.832355],[-6.413195,55.854627],[-6.374954,55.871319],[-6.344129,55.873722],[-6.311263,55.856513],[-6.215662,55.904598],[-6.128923,55.930592]]],[[[-5.970069,55.814526],[-5.990895,55.803803],[-6.041538,55.806775],[-6.060348,55.822898],[-6.070683,55.847651],[-6.071949,55.893126],[-6.041279,55.925631],[-5.911752,55.974775],[-5.970328,55.99219],[-5.972627,56.004437],[-5.939063,56.045262],[-5.799589,56.108798],[-5.762253,56.120296],[-5.725149,56.118539],[-5.797212,56.005626],[-5.970069,55.814526]]],[[[-5.777885,56.344313],[-6.176155,56.288709],[-6.313433,56.29367],[-6.325836,56.320955],[-6.298473,56.339171],[-6.184888,56.35687],[-6.13887,56.490609],[-6.310617,56.552156],[-6.31966,56.569416],[-6.306276,56.598768],[-6.286329,56.611868],[-6.182098,56.642951],[-6.138276,56.64985],[-6.102723,56.645664],[-6.029575,56.609827],[-5.94666,56.534534],[-5.836021,56.522545],[-5.760857,56.490687],[-5.777885,56.344313]]],[[[-6.607627,56.584996],[-6.664446,56.579441],[-6.668554,56.5936],[-6.569929,56.661219],[-6.506057,56.672355],[-6.483681,56.665792],[-6.530087,56.626621],[-6.607627,56.584996]]],[[[-7.416906,56.965412],[-7.504808,56.951666],[-7.53739,56.959728],[-7.542945,56.972388],[-7.522946,57.006805],[-7.455457,57.018949],[-7.4067,57.000294],[-7.398923,56.983344],[-7.416906,56.965412]]],[[[-6.279043,56.964714],[-6.308757,56.951795],[-6.346222,56.954276],[-6.383403,56.97089],[-6.432599,57.017941],[-6.322373,57.050523],[-6.278216,57.031403],[-6.261266,57.009518],[-6.260517,56.985256],[-6.279043,56.964714]]],[[[-7.249862,57.115351],[-7.292056,57.109744],[-7.347401,57.115119],[-7.381482,57.130673],[-7.415924,57.192142],[-7.422384,57.229324],[-7.407036,57.298467],[-7.410576,57.381097],[-7.296371,57.383681],[-7.267122,57.37177],[-7.247537,57.126358],[-7.249862,57.115351]]],[[[-6.144736,57.504966],[-6.146131,57.460782],[-6.163778,57.408848],[-6.140808,57.353657],[-6.135537,57.31428],[-6.093395,57.301722],[-6.067634,57.283532],[-5.880256,57.263223],[-5.706003,57.268959],[-5.672465,57.252681],[-5.668641,57.226895],[-5.69621,57.198447],[-5.795429,57.146538],[-5.913742,57.062667],[-5.949089,57.045149],[-5.987329,57.044425],[-6.014718,57.05197],[-6.034355,57.201212],[-6.162745,57.182143],[-6.266098,57.184313],[-6.322709,57.202504],[-6.362397,57.237489],[-6.442418,57.327509],[-6.675453,57.362907],[-6.741314,57.412465],[-6.761132,57.442386],[-6.752709,57.458922],[-6.704211,57.495767],[-6.643465,57.482642],[-6.60587,57.490651],[-6.583004,57.50711],[-6.583494,57.520675],[-6.615301,57.552715],[-6.6168,57.562688],[-6.37852,57.603306],[-6.357668,57.66679],[-6.30594,57.671984],[-6.246926,57.65121],[-6.166078,57.585297],[-6.144736,57.504966]]],[[[-7.205549,57.682939],[-7.092792,57.626664],[-7.182605,57.53331],[-7.320555,57.533749],[-7.51473,57.601962],[-7.515634,57.615863],[-7.499408,57.636327],[-7.470288,57.652554],[-7.440031,57.656378],[-7.391895,57.645216],[-7.32487,57.663121],[-7.271204,57.657463],[-7.205549,57.682939]]],[[[-6.198686,58.36326],[-6.325836,58.188852],[-6.3756,58.184562],[-6.419293,58.140948],[-6.554607,58.092888],[-6.436501,58.091907],[-6.403376,58.075887],[-6.402446,58.041367],[-6.425184,58.021265],[-6.57812,57.941373],[-6.683307,57.911039],[-6.796582,57.82753],[-6.853762,57.826496],[-6.910322,57.773373],[-6.956908,57.750067],[-6.983082,57.750015],[-7.013158,57.761746],[-7.083438,57.813784],[-6.955952,57.864892],[-6.944118,57.89365],[-6.856837,57.923545],[-6.864175,57.932847],[-7.002539,57.974911],[-7.057083,58.003178],[-7.051915,58.017958],[-6.985305,58.050514],[-7.016905,58.054777],[-7.038247,58.072321],[-7.076901,58.078988],[-7.088451,58.095343],[-7.095582,58.13826],[-7.085273,58.182185],[-7.044913,58.201564],[-7.028403,58.222312],[-7.012073,58.228694],[-6.949544,58.217687],[-6.886215,58.182573],[-6.812292,58.196086],[-6.726483,58.189394],[-6.724726,58.197533],[-6.787746,58.283885],[-6.77648,58.301506],[-6.74227,58.321608],[-6.544195,58.383155],[-6.297181,58.486611],[-6.237443,58.502838],[-6.219408,58.48873],[-6.194268,58.43509],[-6.198686,58.36326]]],[[[-3.109675,58.515498],[-3.101123,58.433695],[-3.112905,58.408864],[-3.13678,58.378323],[-3.212357,58.321247],[-3.411001,58.23965],[-3.77501,58.052116],[-3.990035,57.959047],[-4.019646,57.914243],[-4.035614,57.852025],[-3.906836,57.839674],[-3.857123,57.818538],[-3.887923,57.786912],[-4.078402,57.677048],[-4.134522,57.577726],[-3.988485,57.58124],[-3.868182,57.60036],[-3.628197,57.662269],[-3.402784,57.708235],[-3.294522,57.710173],[-3.083941,57.673483],[-3.036037,57.672294],[-2.946688,57.68927],[-2.856306,57.692293],[-2.244121,57.680872],[-2.07408,57.70237],[-1.961503,57.676635],[-1.867374,57.612349],[-1.777922,57.493752],[-1.780635,57.474012],[-1.834715,57.419958],[-1.93445,57.35221],[-2.020336,57.258883],[-2.045503,57.20855],[-2.062349,57.153463],[-2.089531,57.102561],[-2.26027,56.863325],[-2.426668,56.730698],[-2.500979,56.636569],[-2.592653,56.561561],[-2.680968,56.514406],[-2.775174,56.482961],[-3.047405,56.449371],[-3.123576,56.42529],[-3.214424,56.383949],[-3.309973,56.363485],[-3.198016,56.366069],[-3.087041,56.389065],[-2.885141,56.397488],[-2.652752,56.318268],[-2.67425,56.253414],[-2.767577,56.202151],[-2.979787,56.19409],[-3.178224,56.080117],[-3.267754,56.045055],[-3.36227,56.02764],[-3.480402,56.032808],[-3.695118,56.063348],[-3.78904,56.095207],[-3.704161,56.043143],[-3.607836,56.016013],[-3.048749,55.951934],[-3.015082,55.9586],[-2.83685,56.026245],[-2.599319,56.027278],[-2.147099,55.902996],[-2.016848,55.807938],[-1.83027,55.671744],[-1.728752,55.618569],[-1.655397,55.570381],[-1.610155,55.498111],[-1.522589,55.259521],[-1.422647,55.026409],[-1.29175,54.773866],[-1.232426,54.70369],[-1.154394,54.654494],[-0.759328,54.541426],[-0.671375,54.503909],[-0.518128,54.39513],[-0.370359,54.279219],[-0.232848,54.190129],[-0.084356,54.118041],[-0.156316,54.080627],[-0.205563,54.021716],[-0.16877,53.941669],[-0.108257,53.865188],[0.010573,53.742818],[0.115347,53.609286],[0.076719,53.62944],[0.036076,53.64055],[-0.019425,53.637191],[-0.073711,53.643651],[-0.173834,53.685457],[-0.27003,53.736772],[-0.461362,53.716179],[-0.56766,53.725403],[-0.659903,53.724008],[-0.485029,53.694397],[-0.293697,53.69233],[0.128318,53.468261],[0.270997,53.335479],[0.355798,53.15996],[0.298101,53.081101],[0.208158,53.030019],[0.124365,52.971599],[0.045894,52.905608],[0.279782,52.808715],[0.330192,52.811609],[0.381894,52.8252],[0.431659,52.858143],[0.515555,52.938371],[0.558757,52.966922],[0.704484,52.977232],[0.826751,52.971082],[0.948501,52.953357],[1.055574,52.95899],[1.271272,52.924573],[1.382169,52.89349],[1.656778,52.753731],[1.716102,52.67725],[1.743387,52.578496],[1.746591,52.468994],[1.700393,52.368897],[1.647373,52.278515],[1.61461,52.161829],[1.591355,52.119765],[1.559006,52.086847],[1.413485,51.994759],[1.316747,51.956958],[1.276026,51.97352],[1.232411,51.971221],[1.227863,51.949103],[1.273855,51.902104],[1.274372,51.845363],[1.188486,51.80335],[1.101153,51.78547],[0.955115,51.807794],[0.752234,51.729608],[0.898064,51.689403],[0.927417,51.646615],[0.890933,51.571426],[0.799259,51.537914],[0.69756,51.523057],[0.593484,51.519491],[0.507184,51.501094],[0.424502,51.465644],[0.528268,51.484455],[0.600305,51.46797],[0.64547,51.404666],[0.686501,51.386579],[0.889383,51.359501],[1.014956,51.359708],[1.257112,51.375107],[1.373488,51.37472],[1.414932,51.363273],[1.415656,51.310822],[1.397569,51.182044],[1.365529,51.155482],[1.044412,51.047272],[0.978576,50.971669],[0.960179,50.925884],[0.772387,50.933971],[0.684331,50.885525],[0.532299,50.853408],[0.414709,50.819198],[0.299729,50.775971],[0.205032,50.763052],[-0.203884,50.814366],[-0.450794,50.810181],[-0.78527,50.765455],[-0.871362,50.772819],[-1.000605,50.815607],[-1.132871,50.844597],[-1.285084,50.857309],[-1.416445,50.896894],[-1.334487,50.820826],[-1.516749,50.747445],[-1.600827,50.732847],[-1.687902,50.735146],[-1.86603,50.715251],[-2.031085,50.72538],[-2.006229,50.673238],[-1.962045,50.627763],[-1.997909,50.608022],[-2.035839,50.603061],[-2.350135,50.637426],[-2.39468,50.630915],[-2.433438,50.599237],[-2.547746,50.616291],[-2.65885,50.669724],[-2.776931,50.705587],[-2.900877,50.722434],[-2.999398,50.716595],[-3.404593,50.632414],[-3.485441,50.547974],[-3.525877,50.428188],[-3.584349,50.321838],[-3.67977,50.239931],[-3.79338,50.229234],[-3.900222,50.285923],[-4.103413,50.348555],[-4.17253,50.390826],[-4.19457,50.393307],[-4.217256,50.378166],[-4.296967,50.359097],[-4.379469,50.358218],[-4.506696,50.341372],[-4.727975,50.290497],[-4.817375,50.255951],[-5.009508,50.160763],[-5.048627,50.134356],[-5.118519,50.038341],[-5.225257,50.021392],[-5.322822,50.082938],[-5.433978,50.104436],[-5.551232,50.083403],[-5.622106,50.050692],[-5.655153,50.077228],[-5.656238,50.131876],[-5.570662,50.196962],[-5.342304,50.246158],[-5.141774,50.373721],[-5.043459,50.451494],[-5.004444,50.495264],[-4.956384,50.52317],[-4.893572,50.533712],[-4.861274,50.582029],[-4.582919,50.776384],[-4.559975,50.820929],[-4.546099,50.900692],[-4.523078,50.977457],[-4.296502,51.02717],[-4.188163,51.188504],[-4.158397,51.201319],[-3.842344,51.23093],[-3.60794,51.228553],[-3.375086,51.196979],[-3.255739,51.194136],[-3.135979,51.20504],[-3.042031,51.248603],[-2.881266,51.405648],[-2.790832,51.474791],[-2.687221,51.537268],[-2.590301,51.608607],[-2.43305,51.740718],[-2.539374,51.695191],[-2.667661,51.622999],[-2.742153,51.58109],[-2.978521,51.538844],[-3.080375,51.495798],[-3.258788,51.398491],[-3.293127,51.390455],[-3.562361,51.413813],[-3.762711,51.539955],[-3.890765,51.591632],[-3.943656,51.597523],[-3.998355,51.582123],[-4.115273,51.566413],[-4.234568,51.569101],[-4.173693,51.627366],[-4.091037,51.659896],[-4.276168,51.68253],[-4.327637,51.700255],[-4.38629,51.74108],[-4.531501,51.748056],[-4.600773,51.737643],[-4.717613,51.683667],[-4.902279,51.626255],[-5.124746,51.705836],[-5.168335,51.740718],[-5.167224,51.808052],[-5.200607,51.861383],[-5.262309,51.880193],[-5.183347,51.949646],[-5.088056,51.995896],[-4.878508,52.041837],[-4.561111,52.1509],[-4.383138,52.197331],[-4.217722,52.27743],[-4.149354,52.32629],[-4.099744,52.393133],[-4.050548,52.475144],[-3.98032,52.541754],[-4.04843,52.557619],[-4.078919,52.607849],[-4.070702,52.658853],[-4.039231,52.70407],[-4.067446,52.760759],[-4.117547,52.820032],[-4.11473,52.866179],[-4.101475,52.915478],[-4.229142,52.912843],[-4.356473,52.897392],[-4.471815,52.862458],[-4.583694,52.814916],[-4.683068,52.806131],[-4.681466,52.844165],[-4.638316,52.891139],[-4.525661,52.958215],[-4.4051,53.013819],[-4.362209,53.056038],[-4.328412,53.105131],[-4.268571,53.144508],[-4.111061,53.218922],[-3.809271,53.302664],[-3.764209,53.307599],[-3.64587,53.297884],[-3.529598,53.310545],[-3.427718,53.340672],[-3.3262,53.347157],[-3.097583,53.260315],[-3.165589,53.3947],[-3.064717,53.426868],[-2.918576,53.305377],[-2.864161,53.292561],[-2.749517,53.310183],[-2.793726,53.330699],[-2.845402,53.331939],[-2.913072,53.350232],[-2.969968,53.389196],[-3.064614,53.512858],[-3.059446,53.586239],[-2.995677,53.662565],[-2.925113,53.732741],[-2.984308,53.746746],[-3.031799,53.773566],[-3.045364,53.843846],[-3.026786,53.905909],[-2.899843,53.960686],[-2.862378,54.043833],[-2.846487,54.135301],[-2.867571,54.177262],[-2.993507,54.170492],[-3.054743,54.153439],[-3.109675,54.126309],[-3.165951,54.127937],[-3.321523,54.229093],[-3.410277,54.305626],[-3.569389,54.46758],[-3.592023,54.56437],[-3.464589,54.773091],[-3.267909,54.906571],[-3.036217,54.95308],[-3.081073,54.961968],[-3.4341,54.963777],[-3.550424,54.947396],[-3.658272,54.892851],[-3.719251,54.876134],[-3.783252,54.869933],[-3.84162,54.842751],[-3.898568,54.805079],[-3.957892,54.780946],[-4.075766,54.787199],[-4.132946,54.779241],[-4.174003,54.8011],[-4.208368,54.83717],[-4.25343,54.846782],[-4.303659,54.835671],[-4.409906,54.787044],[-4.517497,54.758338],[-4.647566,54.789007],[-4.818072,54.846162],[-4.851714,54.825284],[-4.889489,54.77229],[-4.911245,54.689479],[-5.032349,54.761361],[-5.135495,54.85753],[-5.170118,54.91794],[-5.172702,54.985895],[-5.116711,55.012275],[-5.055836,54.988117],[-4.965169,55.149476],[-4.784819,55.359412],[-4.721153,55.420984],[-4.676763,55.501315],[-4.68436,55.553922],[-4.724176,55.598312],[-4.891841,55.699133],[-4.889618,55.781221],[-4.871687,55.873902],[-4.826056,55.929558],[-4.806833,55.940152],[-4.584107,55.938679],[-4.67095,55.967385],[-4.844092,56.051178],[-4.841043,56.080867],[-4.80027,56.15833],[-4.819132,56.150475],[-4.856236,56.114715],[-4.927084,56.028079],[-4.970363,56.007874],[-5.092836,55.987281],[-5.114979,55.944648],[-5.134668,55.933485],[-5.195853,55.92868],[-5.214612,55.888889],[-5.228202,55.886305],[-5.245617,55.929248],[-5.247323,56.000406],[-5.222931,56.065829],[-5.176423,56.116988],[-4.99695,56.233364],[-5.084335,56.197449],[-5.282308,56.089962],[-5.383438,56.019217],[-5.410465,55.995342],[-5.418889,55.97524],[-5.41832,55.952037],[-5.372896,55.827704],[-5.385867,55.770136],[-5.556451,55.389591],[-5.588749,55.351402],[-5.618437,55.331455],[-5.646523,55.32683],[-5.730678,55.334142],[-5.768195,55.362668],[-5.767859,55.394965],[-5.752098,55.443464],[-5.681353,55.623995],[-5.650631,55.674096],[-5.605027,55.720734],[-5.504516,55.802382],[-5.506945,55.807705],[-5.573892,55.791685],[-5.602392,55.796982],[-5.622855,55.813131],[-5.6096,56.055287],[-5.555263,56.134972],[-5.534954,56.25083],[-5.487877,56.350049],[-5.43341,56.422293],[-5.391939,56.514794],[-5.329437,56.555928],[-5.312693,56.618818],[-5.242569,56.68685],[-5.18836,56.75806],[-5.217557,56.751007],[-5.564203,56.565747],[-5.65244,56.532002],[-5.77282,56.541019],[-5.864856,56.561871],[-5.936764,56.605692],[-5.968881,56.689899],[-6.057687,56.692147],[-6.133703,56.706694],[-6.132773,56.718037],[-6.034717,56.763926],[-5.877646,56.779635],[-5.730601,56.853068],[-5.86142,56.902677],[-5.850361,56.918412],[-5.736285,56.960658],[-5.591333,57.102355],[-5.561929,57.232734],[-5.631279,57.293971],[-5.656342,57.334072],[-5.794938,57.378824],[-5.818089,57.436081],[-5.80194,57.468017],[-5.756723,57.49923],[-5.688639,57.523518],[-5.581773,57.546798],[-5.678769,57.57168],[-5.714969,57.601084],[-5.742383,57.643665],[-5.744915,57.668315],[-5.694737,57.778231],[-5.665488,57.823551],[-5.608334,57.881351],[-5.349022,57.878095],[-5.319179,57.903598],[-5.289801,57.90458],[-5.157225,57.881325],[-5.176888,57.906388],[-5.393774,58.043589],[-5.413204,58.069712],[-5.351347,58.143686],[-5.346903,58.176656],[-5.355947,58.211899],[-5.338273,58.238719],[-5.269544,58.251432],[-5.059944,58.250166],[-5.008293,58.262646],[-5.031832,58.298302],[-5.080615,58.345173],[-5.090149,58.384524],[-5.078703,58.419303],[-5.076015,58.489247],[-5.066507,58.520201],[-5.016743,58.566555],[-4.975634,58.580301],[-4.924655,58.588388],[-4.809623,58.572885],[-4.765776,58.554204],[-4.715417,58.510021],[-4.67821,58.513586],[-4.534989,58.561594],[-4.491917,58.568467],[-4.433264,58.512863],[-4.188628,58.557201],[-3.859526,58.577097],[-3.661786,58.606294],[-3.453582,58.616888],[-3.259124,58.650012],[-3.05309,58.634819],[-3.046165,58.615518],[-3.056991,58.588776],[-3.109675,58.515498]]],[[[-2.929376,58.741609],[-2.938937,58.738637],[-2.975368,58.756931],[-3.035468,58.822663],[-2.94121,58.835686],[-2.896433,58.827572],[-2.913072,58.799615],[-2.929376,58.741609]]],[[[-3.164918,58.794189],[-3.222123,58.78096],[-3.278787,58.781916],[-3.367179,58.839768],[-3.40082,58.881781],[-3.394697,58.909635],[-3.357412,58.918988],[-3.271939,58.905294],[-3.227653,58.857183],[-3.222123,58.825893],[-3.211633,58.813568],[-3.158561,58.801217],[-3.164918,58.794189]]],[[[-3.057405,59.029627],[-3.070711,59.004978],[-2.99467,59.005546],[-2.884573,58.984514],[-2.81791,58.981878],[-2.762462,58.955833],[-2.793002,58.906947],[-2.826204,58.893253],[-2.863773,58.890514],[-2.994799,58.939348],[-3.166571,58.919091],[-3.200781,58.925292],[-3.223364,58.938754],[-3.232614,58.955497],[-3.232795,58.98963],[-3.242148,58.999732],[-3.304341,58.967409],[-3.331626,58.971233],[-3.347051,58.986736],[-3.353717,59.018775],[-3.346819,59.064974],[-3.310335,59.13081],[-3.248582,59.143961],[-3.156494,59.136339],[-3.051126,59.099029],[-3.019242,59.076033],[-3.020017,59.057687],[-3.057405,59.029627]]],[[[-2.548883,59.231372],[-2.662054,59.230183],[-2.603634,59.289301],[-2.535654,59.304132],[-2.406979,59.297569],[-2.42982,59.271059],[-2.548883,59.231372]]],[[[-2.729389,59.186749],[-2.815223,59.161919],[-2.851862,59.182486],[-2.861448,59.246823],[-2.963793,59.274367],[-3.013454,59.291472],[-3.05203,59.323873],[-3.042238,59.333846],[-2.975523,59.347127],[-2.861629,59.288319],[-2.815016,59.240829],[-2.730655,59.226773],[-2.719932,59.219486],[-2.729389,59.186749]]],[[[-1.308132,60.537494],[-1.287409,60.467059],[-1.235759,60.485301],[-1.157753,60.417708],[-1.117988,60.417604],[-1.052437,60.444476],[-1.065666,60.381586],[-1.133672,60.206971],[-1.152792,60.177361],[-1.165711,60.124289],[-1.179251,60.113902],[-1.199301,60.00657],[-1.245293,59.971223],[-1.283766,59.886939],[-1.29945,59.878671],[-1.355881,59.911124],[-1.299502,60.03985],[-1.276196,60.114651],[-1.290898,60.153486],[-1.322808,60.188368],[-1.40903,60.189505],[-1.481506,60.173382],[-1.496854,60.194001],[-1.499128,60.221777],[-1.51662,60.231027],[-1.613023,60.229089],[-1.641341,60.236789],[-1.660048,60.262265],[-1.663795,60.282522],[-1.576642,60.298387],[-1.494425,60.292496],[-1.374613,60.332907],[-1.449544,60.468532],[-1.548841,60.481322],[-1.571785,60.494447],[-1.552613,60.517443],[-1.49812,60.529846],[-1.414198,60.59873],[-1.363968,60.609582],[-1.301724,60.607645],[-1.308132,60.537494]]],[[[-1.042515,60.513852],[-1.067888,60.502302],[-1.165531,60.603898],[-1.093313,60.720222],[-1.005618,60.716501],[-0.991665,60.686038],[-1.000347,60.658003],[-1.044995,60.655523],[-1.049052,60.646944],[-1.035099,60.592943],[-1.034247,60.530156],[-1.042515,60.513852]]],[[[-0.774262,60.811947],[-0.774314,60.800475],[-0.826197,60.716139],[-0.825474,60.683945],[-0.909138,60.686994],[-0.922264,60.697277],[-0.938103,60.745672],[-0.927535,60.797142],[-0.915804,60.810449],[-0.891413,60.815926],[-0.864955,60.805798],[-0.823433,60.831894],[-0.801806,60.831274],[-0.774262,60.811947]]]]},"type":"Feature","properties":{"ISO_A2":"GB","NAME":"United Kingdom"}},{"geometry":{"type":"Polygon","coordinates":[[[46.429911,41.890958],[46.405468,41.855068],[46.348262,41.790163],[46.302528,41.75709],[46.251834,41.751767],[46.201862,41.736884],[46.184241,41.702158],[46.182122,41.657096],[46.190545,41.62485],[46.203516,41.612602],[46.254727,41.602138],[46.305422,41.507699],[46.385004,41.459847],[46.508769,41.405587],[46.618891,41.34373],[46.672583,41.286834],[46.662403,41.245493],[46.626333,41.159684],[46.534349,41.088552],[46.457919,41.070207],[46.430944,41.077054],[46.380766,41.0993],[46.279997,41.154439],[46.170753,41.197847],[46.086521,41.183843],[46.031227,41.167281],[45.921983,41.186737],[45.792792,41.224409],[45.725509,41.261616],[45.695692,41.289005],[45.715587,41.337658],[45.422323,41.425275],[45.280988,41.449563],[45.217168,41.423208],[45.001419,41.290968],[44.975891,41.277481],[44.811353,41.259368],[44.81094,41.248594],[44.848508,41.220172],[44.841377,41.211361],[44.564856,41.208209],[44.473027,41.191],[44.227358,41.21335],[44.146536,41.203377],[44.077238,41.182499],[43.909186,41.158987],[43.793224,41.131081],[43.645016,41.116664],[43.49195,41.115527],[43.439447,41.107104],[43.441566,41.125991],[43.433401,41.155524],[43.402395,41.176557],[43.358935,41.190122],[43.279302,41.185213],[43.205508,41.199165],[43.15285,41.236424],[43.140964,41.264846],[43.171246,41.287945],[43.148974,41.307143],[43.057145,41.352851],[42.906766,41.466849],[42.821707,41.492403],[42.787859,41.563717],[42.754114,41.578909],[42.682387,41.585731],[42.606836,41.578806],[42.590455,41.570719],[42.567356,41.559298],[42.507928,41.470053],[42.46638,41.439848],[42.364371,41.454007],[42.279983,41.474988],[42.21115,41.486719],[42.077773,41.494108],[41.925741,41.495659],[41.823525,41.432355],[41.779393,41.44052],[41.701724,41.471577],[41.576512,41.497312],[41.510056,41.517492],[41.701775,41.705413],[41.758826,41.817138],[41.760686,41.88486],[41.76296,41.969997],[41.663225,42.146885],[41.577752,42.397826],[41.488765,42.659309],[41.419415,42.737624],[41.128684,42.82811],[41.061608,42.930868],[40.836609,43.06347],[40.524069,43.121038],[40.462058,43.145713],[40.190653,43.312395],[39.978315,43.419831],[40.023738,43.48484],[40.084613,43.553104],[40.150139,43.569796],[40.342272,43.542743],[40.519005,43.512021],[40.64799,43.533906],[40.801675,43.47993],[40.942028,43.418074],[41.083105,43.374485],[41.35823,43.333376],[41.460756,43.276299],[41.580542,43.219249],[42.049971,43.190129],[42.087798,43.199121],[42.122215,43.207337],[42.279673,43.228059],[42.419044,43.224235],[42.566012,43.155144],[42.66027,43.159071],[42.760625,43.169562],[42.890023,43.132613],[42.991619,43.091479],[43.000146,43.049672],[43.089184,42.989056],[43.34798,42.896658],[43.557786,42.844465],[43.623105,42.807723],[43.782579,42.747003],[43.798702,42.72778],[43.795394,42.702975],[43.749919,42.6575],[43.738344,42.616986],[43.759841,42.593835],[43.825987,42.57151],[43.957452,42.566549],[44.004684,42.595592],[44.102714,42.616365],[44.199711,42.653624],[44.329522,42.703492],[44.505894,42.748657],[44.576432,42.748476],[44.644335,42.73473],[44.691774,42.709641],[44.771045,42.616779],[44.850524,42.746823],[44.870988,42.756383],[44.943386,42.73026],[45.071595,42.694164],[45.160272,42.675018],[45.208228,42.64825],[45.343724,42.529782],[45.562935,42.53575],[45.655539,42.517663],[45.705252,42.498078],[45.727576,42.47503],[45.688354,42.357363],[45.634248,42.234735],[45.638589,42.205073],[45.726543,42.158874],[45.846019,42.109936],[45.910407,42.070714],[45.954022,42.035393],[46.048487,42.008754],[46.159798,41.992062],[46.212663,41.989892],[46.267802,41.960333],[46.411565,41.904626],[46.429911,41.890958]]]},"type":"Feature","properties":{"ISO_A2":"GE","NAME":"Georgia"}},{"geometry":{"type":"Polygon","coordinates":[[[-2.512322,49.494524],[-2.547384,49.428715],[-2.639007,49.450935],[-2.646138,49.468221],[-2.542191,49.506591],[-2.520926,49.506281],[-2.512322,49.494524]]]},"type":"Feature","properties":{"ISO_A2":"GG","NAME":"Guernsey"}},{"geometry":{"type":"Polygon","coordinates":[[[-0.068621,11.115601],[-0.004749,11.055553],[0.009436,11.020981],[-0.013895,10.891351],[-0.060585,10.800607],[-0.090196,10.715522],[-0.08632,10.673044],[-0.057691,10.630618],[0.03946,10.563852],[0.089277,10.520598],[0.148291,10.454789],[0.216039,10.390529],[0.331846,10.306942],[0.380887,10.291853],[0.378639,10.268572],[0.362697,10.236481],[0.351845,9.924924],[0.34306,9.844593],[0.334533,9.80395],[0.323888,9.687574],[0.311692,9.670986],[0.289678,9.672304],[0.269524,9.667911],[0.264589,9.644735],[0.27278,9.620938],[0.342569,9.604143],[0.32735,9.586573],[0.275518,9.570631],[0.251541,9.535646],[0.261876,9.495622],[0.233402,9.463505],[0.241515,9.441905],[0.259964,9.42604],[0.289316,9.431828],[0.370965,9.485571],[0.405304,9.491436],[0.447575,9.480249],[0.525684,9.398496],[0.528991,9.358318],[0.497159,9.221246],[0.466153,9.11531],[0.460365,8.974233],[0.493231,8.89491],[0.488787,8.851476],[0.453079,8.813778],[0.372567,8.759259],[0.378639,8.722],[0.415303,8.652728],[0.483309,8.575291],[0.616221,8.479638],[0.686294,8.354865],[0.688051,8.304248],[0.647072,8.25345],[0.599271,8.209577],[0.583562,8.145808],[0.605162,7.728211],[0.499949,7.546852],[0.498916,7.495098],[0.509613,7.435128],[0.53726,7.398722],[0.591003,7.3888],[0.634721,7.35366],[0.619528,7.226536],[0.596222,7.096647],[0.59245,7.03399],[0.579479,7.004121],[0.538086,6.979703],[0.5231,6.938853],[0.533435,6.888314],[0.525581,6.850926],[0.548008,6.802479],[0.595757,6.742173],[0.672755,6.592518],[0.702211,6.580736],[0.71544,6.549316],[0.707172,6.518724],[0.736937,6.452578],[0.822513,6.386381],[0.912224,6.328555],[0.984984,6.320286],[1.002141,6.268532],[1.049941,6.202645],[1.084461,6.173784],[1.1396,6.155025],[1.185075,6.145],[1.187246,6.089422],[1.105597,6.051362],[1.050303,5.994001],[1.008032,5.90641],[0.949741,5.810266],[0.748823,5.760114],[0.671825,5.7597],[0.259705,5.757323],[-0.126498,5.568188],[-0.348707,5.500801],[-0.485443,5.394245],[-0.669411,5.318539],[-0.797698,5.22671],[-1.064322,5.182681],[-1.501634,5.037987],[-1.638447,4.980833],[-1.776837,4.880374],[-2.001836,4.762449],[-2.090203,4.764051],[-2.266419,4.87407],[-2.398918,4.929364],[-2.723058,5.013699],[-2.964981,5.046307],[-3.081874,5.082481],[-3.114016,5.088656],[-3.086731,5.128318],[-3.019138,5.130824],[-2.948367,5.118861],[-2.894702,5.14904],[-2.815662,5.153019],[-2.795199,5.184542],[-2.788687,5.264123],[-2.789617,5.328202],[-2.761919,5.356934],[-2.754994,5.432537],[-2.793648,5.600072],[-2.821192,5.619192],[-2.962268,5.643015],[-2.97281,5.676295],[-2.998287,5.711305],[-3.025314,5.79776],[-3.056165,5.926279],[-3.105593,6.085624],[-3.2006,6.348269],[-3.224035,6.441054],[-3.240288,6.535622],[-3.243905,6.64869],[-3.224113,6.690755],[-3.227162,6.749097],[-3.235792,6.807233],[-3.168897,6.940972],[-3.037716,7.104605],[-3.010172,7.163749],[-2.985781,7.204858],[-2.982319,7.26364],[-2.95909,7.454532],[-2.896355,7.685009],[-2.8569,7.772084],[-2.830132,7.819058],[-2.798144,7.896004],[-2.789773,7.931919],[-2.66885,8.022198],[-2.613349,8.046693],[-2.600947,8.082246],[-2.619964,8.121107],[-2.611696,8.147565],[-2.582757,8.160794],[-2.538263,8.171646],[-2.505862,8.20875],[-2.556867,8.493022],[-2.598001,8.776364],[-2.600404,8.800445],[-2.624925,8.839616],[-2.649213,8.956611],[-2.689882,9.025083],[-2.746933,9.045133],[-2.746674,9.109625],[-2.68921,9.218611],[-2.674224,9.282612],[-2.701793,9.301681],[-2.705747,9.351393],[-2.68611,9.431724],[-2.695851,9.481334],[-2.706186,9.53394],[-2.76595,9.658067],[-2.780522,9.74584],[-2.749827,9.797232],[-2.750731,9.909654],[-2.78321,10.08308],[-2.788481,10.192582],[-2.766518,10.238161],[-2.777112,10.281595],[-2.820313,10.322833],[-2.823466,10.362934],[-2.78662,10.401898],[-2.791168,10.432438],[-2.837211,10.454659],[-2.878398,10.507938],[-2.914881,10.592325],[-2.907336,10.727976],[-2.838555,10.97747],[-2.829925,10.998373],[-2.7521,10.996978],[-2.751687,10.986358],[-2.509169,10.988735],[-2.231951,10.991422],[-1.900628,10.994678],[-1.599664,10.997649],[-1.586487,11.008889],[-1.536774,11.022635],[-1.232607,10.997236],[-1.042489,11.010052],[-0.961822,11.001706],[-0.902911,10.984704],[-0.771601,10.995272],[-0.701425,10.988942],[-0.648534,10.926775],[-0.627165,10.927395],[-0.597658,10.953673],[-0.545233,10.983671],[-0.491722,11.007597],[-0.453533,11.056302],[-0.43033,11.093277],[-0.395603,11.085706],[-0.345736,11.087928],[-0.312559,11.118882],[-0.299459,11.16689],[-0.068621,11.115601]]]},"type":"Feature","properties":{"ISO_A2":"GH","NAME":"Ghana"}},{"geometry":{"type":"Polygon","coordinates":[[[-11.389403,12.404411],[-11.418083,12.377669],[-11.447564,12.319248],[-11.474565,12.247186],[-11.502212,12.198636],[-11.492445,12.166958],[-11.414621,12.104016],[-11.30517,12.015417],[-11.260677,12.004074],[-11.209672,12.024874],[-11.129263,12.095024],[-11.065805,12.170782],[-11.004542,12.207498],[-10.933203,12.205198],[-10.876152,12.151868],[-10.806492,12.034305],[-10.743034,11.927257],[-10.734921,11.916456],[-10.709237,11.898706],[-10.677353,11.899429],[-10.643712,11.925526],[-10.61901,11.941235],[-10.589503,11.990276],[-10.465816,12.138691],[-10.372772,12.179541],[-10.339906,12.19029],[-10.274871,12.212666],[-10.1671,12.177448],[-10.010624,12.116444],[-9.820687,12.042495],[-9.754024,12.029912],[-9.71475,12.042469],[-9.658294,12.143109],[-9.58773,12.182487],[-9.486831,12.22866],[-9.405002,12.252457],[-9.358105,12.255428],[-9.340174,12.282765],[-9.331544,12.323744],[-9.340846,12.366041],[-9.393633,12.442238],[-9.395364,12.464666],[-9.365185,12.47929],[-9.300021,12.490272],[-9.215556,12.482882],[-9.120471,12.449938],[-9.043086,12.402344],[-8.998954,12.345913],[-8.950843,12.225611],[-8.913843,12.108564],[-8.818293,11.922503],[-8.82005,11.807109],[-8.822014,11.673267],[-8.779743,11.64823],[-8.733079,11.637481],[-8.711427,11.617792],[-8.664969,11.515008],[-8.621148,11.485087],[-8.568722,11.478059],[-8.470718,11.412224],[-8.407466,11.386282],[-8.398526,11.366542],[-8.400696,11.339412],[-8.425294,11.304737],[-8.463535,11.280707],[-8.520301,11.235955],[-8.567301,11.176992],[-8.66391,11.035864],[-8.666726,11.009483],[-8.646211,10.990492],[-8.606213,10.986978],[-8.563529,10.996693],[-8.474697,11.04837],[-8.404469,11.029921],[-8.337393,10.990621],[-8.312743,10.949771],[-8.306361,10.896079],[-8.321709,10.826936],[-8.324112,10.749525],[-8.301581,10.617569],[-8.266648,10.486001],[-8.231508,10.437994],[-8.007283,10.321877],[-7.985683,10.278443],[-7.974469,10.229531],[-7.990644,10.162507],[-8.013536,10.125274],[-8.077822,10.067112],[-8.13663,10.022076],[-8.155181,9.97319],[-8.145854,9.881723],[-8.146035,9.67481],[-8.136966,9.4957],[-8.088674,9.430665],[-8.031003,9.397644],[-7.962687,9.403871],[-7.896205,9.41586],[-7.900029,9.308683],[-7.91809,9.188509],[-7.839387,9.151612],[-7.799803,9.115051],[-7.777995,9.080841],[-7.902096,9.017073],[-7.938166,8.979762],[-7.954961,8.879432],[-7.950956,8.786802],[-7.784041,8.720631],[-7.719575,8.643013],[-7.690972,8.562475],[-7.681205,8.41034],[-7.696114,8.375613],[-7.738954,8.375251],[-7.7874,8.421967],[-7.823574,8.467649],[-7.868765,8.467545],[-7.953127,8.477726],[-8.049141,8.495296],[-8.16779,8.490671],[-8.209933,8.483255],[-8.236959,8.45566],[-8.244142,8.407937],[-8.256106,8.253708],[-8.217141,8.219679],[-8.140609,8.181465],[-8.090534,8.165161],[-8.048573,8.169734],[-8.01674,8.14493],[-8.009867,8.078499],[-8.031752,8.029717],[-8.073843,7.984423],[-8.126837,7.867737],[-8.117819,7.824019],[-8.115442,7.760741],[-8.205954,7.590235],[-8.231869,7.556748],[-8.351759,7.590571],[-8.429971,7.601862],[-8.486427,7.558505],[-8.522291,7.585558],[-8.564407,7.625116],[-8.578851,7.677051],[-8.607299,7.687955],[-8.65975,7.688368],[-8.708326,7.658913],[-8.729462,7.605273],[-8.73264,7.543545],[-8.740236,7.495718],[-8.769149,7.46678],[-8.827957,7.391952],[-8.855526,7.322809],[-8.889633,7.262709],[-8.938441,7.266146],[-8.960972,7.274595],[-8.976578,7.258885],[-9.052336,7.225477],[-9.117603,7.215891],[-9.134812,7.250591],[-9.172845,7.278445],[-9.215168,7.333325],[-9.263279,7.377715],[-9.355315,7.408695],[-9.391643,7.394898],[-9.435103,7.398412],[-9.463835,7.415878],[-9.459753,7.442543],[-9.411487,7.509981],[-9.383995,7.57189],[-9.368932,7.639534],[-9.369113,7.703819],[-9.394951,7.794615],[-9.436344,7.866704],[-9.446369,7.90851],[-9.441563,7.967912],[-9.451123,8.023232],[-9.464559,8.052093],[-9.471148,8.106999],[-9.484118,8.156996],[-9.508484,8.176245],[-9.52223,8.260013],[-9.518251,8.346106],[-9.553907,8.378636],[-9.610183,8.40233],[-9.643204,8.436049],[-9.663565,8.47354],[-9.6839,8.484444],[-9.701185,8.48217],[-9.716895,8.458864],[-9.735602,8.453955],[-9.768287,8.53457],[-9.781981,8.53767],[-9.804745,8.519196],[-10.064341,8.429873],[-10.07571,8.4646],[-10.097647,8.505838],[-10.147411,8.519739],[-10.233065,8.48881],[-10.283217,8.485141],[-10.360034,8.495528],[-10.394425,8.480981],[-10.496434,8.362126],[-10.557722,8.315694],[-10.603998,8.319467],[-10.652652,8.330293],[-10.686965,8.321663],[-10.71208,8.335254],[-10.702158,8.364193],[-10.677353,8.400573],[-10.628467,8.529996],[-10.503152,8.660299],[-10.500542,8.687558],[-10.551779,8.763755],[-10.605626,8.867599],[-10.605755,8.978832],[-10.615961,9.059189],[-10.726859,9.081694],[-10.747013,9.095285],[-10.749958,9.122363],[-10.721226,9.194478],[-10.687637,9.26114],[-10.682702,9.289356],[-10.690531,9.314264],[-10.758588,9.385345],[-10.864783,9.516448],[-10.963072,9.661633],[-11.04746,9.786302],[-11.115673,9.843146],[-11.180888,9.925338],[-11.205641,9.977738],[-11.273647,9.996522],[-11.47193,9.995463],[-11.710029,9.994171],[-11.911076,9.993034],[-11.922755,9.922728],[-12.142328,9.875392],[-12.277721,9.929782],[-12.427996,9.89813],[-12.501479,9.862163],[-12.524372,9.787207],[-12.557858,9.704963],[-12.589846,9.671141],[-12.603592,9.634244],[-12.622144,9.600655],[-12.651651,9.561897],[-12.684414,9.484176],[-12.755883,9.373588],[-12.831098,9.302223],[-12.958816,9.263311],[-12.998607,9.146936],[-13.028011,9.103579],[-13.077284,9.069628],[-13.129891,9.047562],[-13.178363,9.060868],[-13.234225,9.070144],[-13.292697,9.049215],[-13.302645,9.078361],[-13.269469,9.170552],[-13.295927,9.218507],[-13.396076,9.314315],[-13.405584,9.360618],[-13.43628,9.42033],[-13.568288,9.543423],[-13.691355,9.535775],[-13.657145,9.639102],[-13.65867,9.776354],[-13.700502,9.851285],[-13.689805,9.927792],[-13.712646,9.922961],[-13.753729,9.870251],[-13.820107,9.8872],[-13.954621,9.968694],[-14.021878,10.047837],[-14.029939,10.115145],[-14.045029,10.141242],[-14.086266,10.127237],[-14.170396,10.128633],[-14.426917,10.248367],[-14.609542,10.549847],[-14.613624,10.617802],[-14.587424,10.734901],[-14.593522,10.766682],[-14.677316,10.68896],[-14.693361,10.741024],[-14.757388,10.862076],[-14.77594,10.931633],[-14.837461,10.962561],[-14.886734,10.968065],[-14.924794,10.944914],[-14.975024,10.803424],[-15.012411,10.804354],[-15.05122,10.834584],[-15.04303,10.940159],[-14.999053,10.992198],[-14.944431,11.072141],[-14.779273,11.405506],[-14.720259,11.481909],[-14.682948,11.508497],[-14.604814,11.511597],[-14.452471,11.556194],[-14.327828,11.629781],[-14.265584,11.659909],[-14.122311,11.651951],[-13.953225,11.664611],[-13.732774,11.736028],[-13.728562,11.834136],[-13.730655,11.959839],[-13.737993,12.009655],[-13.816283,12.05451],[-13.861887,12.093319],[-13.901187,12.142877],[-13.948885,12.178172],[-13.947309,12.215224],[-13.887493,12.246901],[-13.849459,12.262999],[-13.759749,12.262353],[-13.730087,12.280801],[-13.707892,12.312685],[-13.682389,12.393404],[-13.673553,12.478489],[-13.732619,12.592823],[-13.72926,12.673904],[-13.40574,12.662277],[-13.372589,12.653595],[-13.228076,12.639591],[-13.138495,12.63972],[-13.082917,12.633544],[-13.059766,12.615018],[-13.064391,12.581067],[-13.079842,12.536289],[-13.06129,12.489987],[-13.011939,12.477637],[-12.985662,12.491641],[-12.960521,12.514353],[-12.930704,12.532259],[-12.888174,12.520037],[-12.797301,12.451902],[-12.713043,12.433143],[-12.620775,12.396195],[-12.534216,12.375808],[-12.457374,12.378366],[-12.399057,12.340074],[-12.291182,12.328033],[-12.15194,12.376609],[-12.04236,12.398055],[-11.888545,12.403326],[-11.808085,12.387306],[-11.573681,12.426322],[-11.456737,12.417563],[-11.389403,12.404411]]]},"type":"Feature","properties":{"ISO_A2":"GN","NAME":"Guinea"}},{"geometry":{"type":"Polygon","coordinates":[[[-16.763338,13.064138],[-16.769307,13.1485],[-16.824807,13.341046],[-16.750419,13.425382],[-16.669365,13.474992],[-16.614794,13.435304],[-16.598361,13.356859],[-16.556426,13.303219],[-16.41336,13.269707],[-16.271663,13.293814],[-16.185079,13.282704],[-16.187895,13.326164],[-16.158388,13.384041],[-15.986409,13.408846],[-15.804508,13.425382],[-15.617646,13.460109],[-15.471298,13.458662],[-15.427502,13.468377],[-15.438148,13.483182],[-15.569561,13.499848],[-15.849906,13.459954],[-16.135444,13.448223],[-16.351813,13.343372],[-16.440541,13.35319],[-16.530097,13.457939],[-16.562291,13.58731],[-16.308741,13.596871],[-16.001628,13.592762],[-15.667178,13.588292],[-15.509668,13.586225],[-15.426882,13.726992],[-15.269528,13.789107],[-15.108349,13.812129],[-15.024452,13.806005],[-14.935801,13.785205],[-14.765992,13.669088],[-14.660159,13.64263],[-14.570862,13.616172],[-14.50699,13.559715],[-14.405498,13.503724],[-14.325554,13.488583],[-14.278038,13.497187],[-14.198999,13.518762],[-14.14696,13.536151],[-13.977384,13.543437],[-13.852818,13.478557],[-13.826722,13.407812],[-13.847495,13.33531],[-14.014901,13.296398],[-14.246748,13.235833],[-14.438571,13.268906],[-14.671915,13.351718],[-14.808264,13.41112],[-14.865056,13.434839],[-14.950271,13.472589],[-15.024581,13.51331],[-15.096412,13.539639],[-15.151137,13.556511],[-15.191599,13.535272],[-15.212115,13.485069],[-15.244516,13.429129],[-15.286219,13.395979],[-15.481814,13.376341],[-15.657308,13.3558],[-15.751565,13.338359],[-15.814404,13.32513],[-15.834248,13.156458],[-16.033047,13.15837],[-16.228332,13.160282],[-16.430878,13.157337],[-16.648772,13.154133],[-16.70453,13.119716],[-16.763338,13.064138]]]},"type":"Feature","properties":{"ISO_A2":"GM","NAME":"Gambia"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-15.895898,11.082476],[-15.905174,11.054726],[-15.963981,11.058964],[-15.950649,11.087127],[-15.963465,11.095292],[-15.946515,11.179731],[-15.937704,11.192754],[-15.909127,11.161335],[-15.905277,11.148364],[-15.895898,11.082476]]],[[[-16.114489,11.059403],[-16.194562,11.044597],[-16.231019,11.094233],[-16.236419,11.11343],[-16.194613,11.130148],[-16.175855,11.130794],[-16.144022,11.166864],[-16.1048,11.190997],[-16.087436,11.1988],[-16.067334,11.197198],[-16.052787,11.117513],[-16.072218,11.084104],[-16.114489,11.059403]]],[[[-15.725133,11.215491],[-15.725133,11.174512],[-15.767507,11.182263],[-15.779806,11.194511],[-15.754718,11.268718],[-15.717485,11.301739],[-15.671906,11.296468],[-15.658367,11.286495],[-15.667204,11.257866],[-15.687099,11.234328],[-15.725133,11.215491]]],[[[-15.901815,11.465812],[-15.948737,11.434444],[-15.997209,11.449172],[-16.023177,11.477129],[-16.019353,11.527307],[-15.964524,11.59831],[-15.915302,11.589112],[-15.901815,11.465812]]],[[[-15.553412,11.537022],[-15.562765,11.513768],[-15.61961,11.533508],[-15.536566,11.617637],[-15.48246,11.632314],[-15.484424,11.567511],[-15.526204,11.553869],[-15.553412,11.537022]]],[[[-15.986409,11.882014],[-16.038344,11.759696],[-16.102422,11.773183],[-16.147381,11.846021],[-16.152419,11.876795],[-16.021885,11.886665],[-15.986409,11.882014]]],[[[-13.673553,12.478489],[-13.682389,12.393404],[-13.707892,12.312685],[-13.730087,12.280801],[-13.759749,12.262353],[-13.849459,12.262999],[-13.887493,12.246901],[-13.947309,12.215224],[-13.948885,12.178172],[-13.901187,12.142877],[-13.861887,12.093319],[-13.816283,12.05451],[-13.737993,12.009655],[-13.730655,11.959839],[-13.728562,11.834136],[-13.732774,11.736028],[-13.953225,11.664611],[-14.122311,11.651951],[-14.265584,11.659909],[-14.327828,11.629781],[-14.452471,11.556194],[-14.604814,11.511597],[-14.682948,11.508497],[-14.720259,11.481909],[-14.779273,11.405506],[-14.944431,11.072141],[-14.999053,10.992198],[-15.04303,10.940159],[-15.09375,11.011059],[-15.054579,11.141956],[-15.096773,11.140044],[-15.181083,11.034211],[-15.222114,11.030929],[-15.216688,11.156244],[-15.263378,11.160895],[-15.317509,11.152007],[-15.393112,11.217248],[-15.400579,11.266238],[-15.394507,11.334476],[-15.348412,11.378065],[-15.354716,11.396359],[-15.399184,11.401475],[-15.448974,11.389744],[-15.479515,11.410312],[-15.42913,11.498885],[-15.252604,11.573299],[-15.163746,11.580947],[-15.072666,11.597794],[-15.122405,11.661562],[-15.230383,11.686755],[-15.316682,11.669211],[-15.359677,11.622908],[-15.413007,11.61526],[-15.501891,11.723781],[-15.500237,11.778351],[-15.46719,11.842843],[-15.415694,11.871782],[-15.210849,11.870955],[-15.133128,11.907336],[-15.101708,11.91395],[-15.071943,11.947023],[-15.078273,11.968986],[-15.111527,11.970277],[-15.188111,11.927283],[-15.434763,11.943561],[-15.513466,11.917567],[-15.650667,11.818349],[-15.819391,11.763468],[-15.94176,11.786619],[-15.902745,11.919686],[-15.920237,11.937773],[-15.958814,11.959606],[-16.138415,11.917283],[-16.274298,11.978132],[-16.328068,12.051616],[-16.318843,12.143755],[-16.254739,12.206077],[-16.244584,12.237083],[-16.312332,12.243026],[-16.436821,12.204165],[-16.711791,12.354853],[-16.656936,12.364362],[-16.521337,12.348652],[-16.416331,12.367669],[-16.342304,12.399502],[-16.24151,12.443323],[-16.144203,12.457431],[-15.839544,12.437872],[-15.57478,12.490401],[-15.377945,12.588948],[-15.196095,12.67995],[-14.960606,12.678968],[-14.708166,12.67796],[-14.349222,12.676436],[-14.064847,12.675273],[-13.72926,12.673904],[-13.732619,12.592823],[-13.673553,12.478489]]]]},"type":"Feature","properties":{"ISO_A2":"GW","NAME":"Guinea Bissau"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.334688,1.120759],[11.33536,0.999681],[11.130618,1.000404],[10.858903,1.001283],[10.587189,1.002161],[10.315474,1.003092],[10.178945,1.003557],[10.028463,1.004022],[9.979784,0.997717],[9.946711,0.967125],[9.906765,0.960097],[9.860308,0.986245],[9.803877,0.998751],[9.788633,1.025674],[9.760573,1.074715],[9.704555,1.079986],[9.676495,1.074715],[9.636187,1.046706],[9.590867,1.031979],[9.599445,1.054458],[9.509838,1.114816],[9.445346,1.120655],[9.385918,1.139259],[9.434081,1.296407],[9.494232,1.435313],[9.584253,1.540216],[9.632105,1.565538],[9.647608,1.617576],[9.718818,1.788677],[9.806978,1.92748],[9.779693,2.068194],[9.800777,2.304433],[9.826202,2.297793],[9.830336,2.275469],[9.83695,2.242396],[9.870075,2.213302],[9.979887,2.167775],[10.307051,2.167723],[10.502284,2.167646],[10.790949,2.167568],[11.096615,2.167491],[11.328746,2.167413],[11.330037,1.935903],[11.331174,1.740204],[11.332363,1.528382],[11.333603,1.307621],[11.334688,1.120759]]],[[[8.735726,3.758324],[8.760427,3.754345],[8.910082,3.758221],[8.950699,3.705304],[8.946049,3.627531],[8.792156,3.400413],[8.763424,3.304656],[8.703996,3.223628],[8.65232,3.217117],[8.474863,3.264659],[8.444891,3.293494],[8.434245,3.332407],[8.451712,3.422892],[8.464631,3.450591],[8.549794,3.467644],[8.577286,3.482372],[8.622761,3.579989],[8.637747,3.66882],[8.675884,3.735948],[8.735726,3.758324]]]]},"type":"Feature","properties":{"ISO_A2":"GQ","NAME":"Eq. Guinea"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.852219,35.535454],[23.920638,35.528168],[24.013243,35.52946],[24.034327,35.535402],[24.093341,35.593874],[24.165998,35.595192],[24.197727,35.537469],[24.124037,35.51083],[24.108947,35.495818],[24.123107,35.483623],[24.178504,35.459541],[24.255398,35.468611],[24.257672,35.423161],[24.274932,35.386006],[24.312863,35.363837],[24.353997,35.359496],[24.444948,35.366033],[24.534554,35.380735],[24.626952,35.409932],[24.721313,35.424815],[25.003156,35.409854],[25.104339,35.346938],[25.296782,35.339368],[25.475686,35.306192],[25.569633,35.328076],[25.73014,35.348592],[25.755875,35.326371],[25.735101,35.184054],[25.745023,35.142713],[25.791325,35.122869],[25.837111,35.132559],[25.893335,35.179197],[26.028003,35.215267],[26.16784,35.215086],[26.285559,35.309757],[26.320182,35.315157],[26.298685,35.268597],[26.280804,35.159224],[26.255586,35.095171],[26.244321,35.044683],[26.165566,35.018586],[26.04671,35.014142],[25.829669,35.025175],[25.610975,35.007321],[25.205728,34.959262],[24.799758,34.934457],[24.745188,34.950632],[24.743947,35.014375],[24.735162,35.058274],[24.708911,35.089073],[24.58344,35.115325],[24.463654,35.160335],[23.994329,35.221907],[23.883638,35.246118],[23.703908,35.233509],[23.638072,35.235162],[23.592803,35.257228],[23.561591,35.295159],[23.547535,35.415565],[23.569859,35.534782],[23.60872,35.566253],[23.6266,35.53039],[23.672695,35.513905],[23.715483,35.55013],[23.71507,35.604752],[23.736877,35.655498],[23.770777,35.634208],[23.793411,35.556202],[23.852219,35.535454]]],[[[27.176047,35.465303],[27.13791,35.409105],[27.099152,35.456441],[27.115792,35.511114],[27.07073,35.59775],[27.155997,35.726243],[27.15796,35.788669],[27.223176,35.820475],[27.207053,35.714435],[27.157237,35.629505],[27.208913,35.558915],[27.233615,35.478584],[27.176047,35.465303]]],[[[23.053818,36.189781],[23.042139,36.146373],[22.939406,36.176216],[22.910881,36.220994],[22.90561,36.320316],[22.932585,36.368736],[22.950465,36.383929],[22.997904,36.328145],[23.097123,36.246599],[23.053818,36.189781]]],[[[27.842776,35.929306],[27.770636,35.908274],[27.745728,35.911038],[27.715549,35.95734],[27.757304,36.069168],[27.71865,36.141102],[27.716272,36.171591],[27.77446,36.213785],[27.815181,36.276959],[27.914503,36.345327],[28.171438,36.426201],[28.231797,36.433642],[28.23004,36.370261],[28.14405,36.209883],[28.067672,36.129681],[28.087826,36.065344],[27.96556,36.047516],[27.842776,35.929306]]],[[[25.482404,36.392637],[25.435998,36.340082],[25.370472,36.358918],[25.397137,36.378943],[25.412847,36.404884],[25.414604,36.442272],[25.396827,36.465346],[25.409023,36.473743],[25.467417,36.435063],[25.482404,36.392637]]],[[[26.460638,36.585416],[26.381677,36.561541],[26.331447,36.511363],[26.270056,36.546917],[26.269849,36.595389],[26.337028,36.580558],[26.384157,36.607843],[26.369998,36.638591],[26.421261,36.624225],[26.460638,36.585416]]],[[[27.86014,36.553893],[27.838332,36.537977],[27.788103,36.58371],[27.785726,36.607507],[27.836782,36.63487],[27.862517,36.641175],[27.869855,36.622519],[27.869028,36.582651],[27.86014,36.553893]]],[[[24.535691,36.763777],[24.537552,36.705047],[24.530627,36.683963],[24.325988,36.655618],[24.344902,36.722978],[24.357408,36.744269],[24.425207,36.712953],[24.450219,36.728973],[24.460347,36.747447],[24.535691,36.763777]]],[[[25.381738,36.674041],[25.364375,36.658357],[25.288617,36.721531],[25.259988,36.758428],[25.295955,36.789176],[25.406956,36.717346],[25.381738,36.674041]]],[[[26.949601,36.727113],[26.918388,36.725924],[26.955595,36.774241],[27.061119,36.840387],[27.214908,36.898652],[27.265654,36.905112],[27.35216,36.868913],[27.193204,36.809123],[27.151036,36.777575],[27.033627,36.770753],[26.949601,36.727113]]],[[[25.859331,36.790416],[25.771068,36.782251],[25.743163,36.789744],[25.796803,36.807004],[25.83432,36.825401],[25.852407,36.84757],[25.942014,36.886586],[26.000718,36.937384],[26.064487,36.902761],[25.984699,36.879713],[25.859331,36.790416]]],[[[24.7209,36.921442],[24.702606,36.917075],[24.676458,36.959295],[24.67098,36.998569],[24.681419,37.021617],[24.716145,37.023839],[24.763171,36.949218],[24.7209,36.921442]]],[[[27.019674,36.959036],[26.919939,36.945213],[26.937715,37.024588],[26.888726,37.087246],[26.966654,37.05208],[27.016057,37.009653],[27.040138,37.001566],[27.034557,36.975986],[27.019674,36.959036]]],[[[25.278902,37.06841],[25.199423,36.991308],[25.133278,36.999654],[25.105476,37.034949],[25.146507,37.107399],[25.23508,37.148534],[25.275284,37.137837],[25.27146,37.084197],[25.278902,37.06841]]],[[[25.545862,36.967563],[25.456772,36.92971],[25.395897,36.984358],[25.361894,37.070399],[25.525295,37.19636],[25.564362,37.185121],[25.587927,37.152539],[25.58431,37.03929],[25.545862,36.967563]]],[[[24.523496,37.125124],[24.486495,37.110035],[24.424794,37.131972],[24.441227,37.186852],[24.483808,37.210184],[24.529077,37.19233],[24.535898,37.167654],[24.523496,37.125124]]],[[[24.435749,37.344439],[24.378905,37.314131],[24.397715,37.383455],[24.369707,37.419603],[24.394821,37.450376],[24.431202,37.475181],[24.448565,37.449549],[24.481431,37.408001],[24.435749,37.344439]]],[[[24.942902,37.493526],[24.937837,37.389708],[24.911482,37.39056],[24.896186,37.40658],[24.895256,37.446345],[24.906521,37.508874],[24.942902,37.493526]]],[[[25.402719,37.419163],[25.307117,37.412962],[25.312698,37.489288],[25.348148,37.509184],[25.462973,37.471098],[25.457392,37.447094],[25.402719,37.419163]]],[[[26.029347,37.529389],[25.982425,37.525591],[25.996791,37.565588],[26.086294,37.634912],[26.211558,37.638297],[26.325556,37.67305],[26.351394,37.674342],[26.296928,37.619565],[26.204943,37.568508],[26.029347,37.529389]]],[[[25.255854,37.599617],[25.21875,37.535099],[25.156325,37.545047],[25.051939,37.614449],[25.016282,37.645945],[24.996542,37.676925],[25.03933,37.680672],[25.091833,37.647987],[25.225365,37.630675],[25.255854,37.599617]]],[[[24.355961,37.57688],[24.288988,37.528252],[24.277413,37.601116],[24.320407,37.677752],[24.379112,37.682713],[24.400816,37.649046],[24.355961,37.57688]]],[[[26.824441,37.811439],[26.947327,37.77847],[26.981537,37.781984],[27.039621,37.77002],[27.055124,37.709301],[26.978126,37.700464],[26.844904,37.644731],[26.788267,37.656978],[26.720468,37.705451],[26.612877,37.710489],[26.581045,37.723744],[26.638612,37.780847],[26.743412,37.809785],[26.824441,37.811439]]],[[[20.888472,37.805367],[20.993995,37.707983],[20.909039,37.732116],[20.818502,37.66473],[20.703781,37.743433],[20.635051,37.82317],[20.619548,37.855028],[20.691482,37.92952],[20.758661,37.852961],[20.839793,37.84074],[20.888472,37.805367]]],[[[24.991684,37.759608],[24.962229,37.692402],[24.884094,37.770511],[24.798518,37.823996],[24.766478,37.870686],[24.714388,37.898876],[24.700229,37.961663],[24.763378,37.987475],[24.790456,37.990136],[24.855052,37.913655],[24.956338,37.904767],[24.948379,37.857664],[24.980419,37.796944],[24.991684,37.759608]]],[[[23.550945,37.925877],[23.511464,37.901175],[23.466816,37.90239],[23.435293,37.911485],[23.419377,37.931277],[23.439014,37.940682],[23.462165,37.980369],[23.483663,37.991118],[23.515495,37.986054],[23.534822,37.970189],[23.550945,37.925877]]],[[[20.612313,38.383342],[20.624716,38.267871],[20.695202,38.246219],[20.78884,38.142117],[20.780778,38.088838],[20.761348,38.070545],[20.606112,38.119741],[20.568905,38.097675],[20.523533,38.106667],[20.495525,38.164182],[20.498728,38.184362],[20.473304,38.218804],[20.452116,38.234178],[20.391035,38.188419],[20.352484,38.179866],[20.352277,38.221724],[20.408708,38.336782],[20.435063,38.356186],[20.481469,38.31823],[20.519606,38.332312],[20.548338,38.394556],[20.550302,38.456568],[20.563221,38.474965],[20.612313,38.383342]]],[[[20.758661,38.329444],[20.709258,38.318592],[20.64642,38.414296],[20.623579,38.480339],[20.649727,38.483982],[20.674842,38.476308],[20.7013,38.4514],[20.701093,38.425924],[20.711635,38.398638],[20.739127,38.365772],[20.758661,38.329444]]],[[[26.094046,38.218081],[25.998548,38.161547],[25.891888,38.243299],[25.874318,38.269602],[25.952659,38.302624],[25.991416,38.353525],[25.959997,38.416002],[25.85127,38.508373],[25.846102,38.574028],[26.0125,38.601727],[26.110479,38.544624],[26.160398,38.540749],[26.141175,38.486178],[26.14965,38.468479],[26.156988,38.302908],[26.110686,38.279628],[26.103141,38.234152],[26.094046,38.218081]]],[[[20.686727,38.608703],[20.647867,38.600952],[20.61438,38.606223],[20.583995,38.601727],[20.554642,38.582581],[20.55795,38.661852],[20.59247,38.760167],[20.634637,38.817579],[20.694169,38.844244],[20.719594,38.799182],[20.714839,38.638314],[20.686727,38.608703]]],[[[24.674701,38.809208],[24.569074,38.784816],[24.540962,38.788692],[24.564527,38.81944],[24.566387,38.832359],[24.461071,38.888634],[24.473473,38.961653],[24.485669,38.980257],[24.56401,38.942249],[24.58127,38.878867],[24.674701,38.809208]]],[[[23.41545,38.958656],[23.471984,38.850084],[23.525004,38.813497],[23.636211,38.770218],[23.688508,38.764714],[23.878264,38.686579],[24.099026,38.670999],[24.127551,38.648494],[24.154733,38.588291],[24.199691,38.541007],[24.21106,38.504265],[24.187496,38.463441],[24.220155,38.338642],[24.275759,38.219993],[24.359681,38.162503],[24.463964,38.14514],[24.563287,38.147517],[24.588401,38.123978],[24.578479,38.020186],[24.536518,37.979749],[24.502308,37.969931],[24.472646,37.980524],[24.445774,38.004967],[24.416526,38.016569],[24.359475,38.018558],[24.317824,38.060364],[24.21199,38.117519],[24.19256,38.151651],[24.189046,38.204309],[24.144087,38.243092],[24.10285,38.316835],[24.063575,38.337195],[24.041871,38.374144],[24.040114,38.389983],[23.886222,38.400731],[23.758788,38.401222],[23.650784,38.443054],[23.617401,38.552531],[23.553322,38.581986],[23.505263,38.612941],[23.465266,38.655884],[23.364083,38.735],[23.252152,38.801224],[23.143942,38.844813],[23.029117,38.87339],[22.935789,38.839645],[22.881322,38.847655],[22.870263,38.870522],[22.986329,38.91592],[23.145802,39.002684],[23.25825,39.031365],[23.312717,39.034904],[23.41545,38.958656]]],[[[23.779769,39.114409],[23.73512,39.080561],[23.66608,39.095366],[23.59394,39.208615],[23.779769,39.114409]]],[[[23.887979,39.158282],[23.841263,39.146603],[23.888082,39.226366],[23.970868,39.267733],[23.939759,39.200553],[23.887979,39.158282]]],[[[26.410202,39.32946],[26.392736,39.270136],[26.531022,39.17177],[26.578254,39.109499],[26.595617,39.048805],[26.584042,39.031468],[26.531539,39.064334],[26.488647,39.074825],[26.503116,39.031468],[26.547145,38.994158],[26.4687,38.972815],[26.390152,38.9739],[26.160812,39.025887],[26.107895,39.081077],[26.245148,39.164096],[26.273156,39.197582],[26.176005,39.1943],[26.072342,39.095624],[25.906254,39.138955],[25.855507,39.178642],[25.844139,39.200037],[25.909561,39.287551],[26.026453,39.284631],[26.088361,39.30432],[26.164843,39.331992],[26.165463,39.37354],[26.347777,39.383023],[26.410202,39.32946]]],[[[20.077979,39.432736],[20.09958,39.376589],[19.97504,39.411445],[19.883986,39.461519],[19.808848,39.585284],[19.648961,39.726154],[19.646481,39.767108],[19.707356,39.798114],[19.838614,39.820128],[19.891737,39.797261],[19.92605,39.773748],[19.936799,39.746722],[19.862178,39.692642],[19.846675,39.668122],[19.904139,39.619468],[19.903106,39.600012],[19.92729,39.505909],[19.955299,39.470408],[20.027749,39.442089],[20.077979,39.432736]]],[[[25.437755,39.983296],[25.399928,39.949551],[25.372023,39.891312],[25.357037,39.808087],[25.298746,39.806098],[25.263399,39.82297],[25.25172,39.854389],[25.249446,39.894129],[25.223815,39.892578],[25.203248,39.849428],[25.185161,39.829921],[25.126456,39.825812],[25.062171,39.852374],[25.065271,39.909838],[25.052352,39.976372],[25.058037,39.999678],[25.23415,40.005414],[25.285723,39.956321],[25.348045,39.984769],[25.373573,40.015516],[25.449124,40.034818],[25.437755,39.983296]]],[[[25.685802,40.426551],[25.572631,40.400454],[25.44809,40.482801],[25.568497,40.515874],[25.624307,40.491973],[25.664305,40.463861],[25.685802,40.426551]]],[[[24.77423,40.615196],[24.645866,40.579436],[24.515538,40.647028],[24.516674,40.687233],[24.585507,40.768726],[24.623335,40.792911],[24.719143,40.786296],[24.77361,40.730253],[24.786322,40.703847],[24.768649,40.658862],[24.77423,40.615196]]],[[[26.536396,41.343136],[26.330621,41.238775],[26.32566,41.143277],[26.32845,41.097027],[26.332584,41.064315],[26.354082,41.036772],[26.354133,40.997084],[26.331086,40.954503],[26.24122,40.883215],[26.178899,40.826501],[26.109187,40.749658],[26.069758,40.740304],[26.038959,40.726765],[26.010743,40.769166],[25.855611,40.844096],[25.49677,40.887815],[25.325307,40.943108],[25.250066,40.932799],[25.104442,40.994707],[25.004707,40.967551],[24.792937,40.857506],[24.678732,40.869495],[24.556569,40.93559],[24.47709,40.947733],[24.383763,40.912749],[24.234418,40.786141],[24.082282,40.724078],[23.946063,40.748314],[23.762819,40.747797],[23.743285,40.677001],[23.778735,40.62796],[23.878884,40.544373],[23.831962,40.48156],[23.866792,40.418567],[23.932007,40.405751],[24.030606,40.409317],[24.212817,40.327797],[24.292502,40.241808],[24.343352,40.147705],[24.232454,40.215168],[24.158763,40.280022],[24.056031,40.303561],[23.913197,40.358777],[23.823383,40.368027],[23.727885,40.329735],[23.720547,40.286275],[23.823487,40.205117],[23.917538,40.155224],[23.967457,40.114554],[24.000737,40.024586],[23.981823,39.994045],[23.947097,39.965571],[23.835372,40.02226],[23.66453,40.22385],[23.426302,40.263977],[23.386408,40.221964],[23.433226,40.115407],[23.467126,40.073937],[23.674142,39.958905],[23.657502,39.934488],[23.627323,39.924075],[23.395606,39.989859],[23.32822,40.089931],[23.311993,40.216434],[23.098156,40.30431],[22.896515,40.399912],[22.85135,40.490604],[22.892898,40.524245],[22.92225,40.590856],[22.811456,40.578609],[22.741899,40.536492],[22.629451,40.495539],[22.624904,40.428592],[22.64268,40.36658],[22.605473,40.276405],[22.5693,40.11936],[22.592141,40.036911],[22.835743,39.800568],[22.919046,39.628925],[22.978784,39.563839],[23.103427,39.492034],[23.233445,39.358425],[23.288429,39.288817],[23.327703,39.174896],[23.218356,39.104409],[23.15469,39.10149],[23.119447,39.13278],[23.168746,39.210423],[23.161718,39.257759],[22.99284,39.331062],[22.921423,39.306361],[22.838947,39.258612],[22.886076,39.169961],[22.938993,39.111515],[22.965555,39.0309],[23.066737,39.037953],[22.930415,38.947726],[22.802671,38.901605],[22.67689,38.898918],[22.596792,38.890572],[22.569093,38.867473],[22.634309,38.850704],[22.687535,38.849154],[22.774042,38.800371],[23.020332,38.741873],[23.137741,38.66795],[23.252979,38.661232],[23.368941,38.525556],[23.569652,38.489408],[23.68396,38.352466],[23.835992,38.325465],[23.967044,38.275003],[24.005388,38.226788],[24.024508,38.139791],[24.032983,37.955306],[24.061302,37.817899],[24.062335,37.77449],[24.055411,37.709637],[24.019754,37.677752],[23.971591,37.67677],[23.877334,37.777798],[23.732846,37.88407],[23.580504,38.010548],[23.537199,38.032769],[23.501749,38.034836],[23.420204,37.9921],[23.193654,37.959027],[23.087408,37.912854],[23.04741,37.902648],[23.036351,37.878386],[23.086167,37.853116],[23.147146,37.795316],[23.147146,37.716251],[23.197582,37.62021],[23.262694,37.595432],[23.347547,37.597576],[23.396226,37.5798],[23.408835,37.541533],[23.458134,37.496936],[23.490587,37.463863],[23.489244,37.440196],[23.252566,37.377305],[23.20306,37.348547],[23.161512,37.33382],[23.100017,37.363766],[23.096503,37.440583],[23.015164,37.481769],[22.940543,37.517064],[22.85104,37.532206],[22.774972,37.585122],[22.725363,37.542153],[22.76505,37.393299],[22.85104,37.290799],[22.99501,37.01588],[23.060329,36.853513],[23.073558,36.774965],[23.041002,36.644534],[23.111696,36.547614],[23.160168,36.448111],[23.106838,36.451832],[23.060536,36.486946],[22.982918,36.528365],[22.832333,36.687115],[22.779933,36.786179],[22.717198,36.79393],[22.608367,36.779719],[22.489098,36.568156],[22.489408,36.446923],[22.427706,36.475758],[22.37479,36.51356],[22.381198,36.646187],[22.375927,36.70192],[22.231129,36.882555],[22.164777,36.902812],[22.133771,36.96392],[22.080441,37.028955],[22.011711,37.016501],[21.95559,36.990094],[21.940088,36.891805],[21.9343,36.803645],[21.892338,36.737293],[21.738136,36.863228],[21.5829,37.080941],[21.578766,37.200365],[21.692454,37.309273],[21.678915,37.387227],[21.571324,37.540991],[21.416192,37.639951],[21.329272,37.669329],[21.288448,37.77449],[21.205249,37.828854],[21.137966,37.85415],[21.124737,37.891615],[21.144994,37.919288],[21.308085,38.027447],[21.403686,38.196687],[21.451125,38.204723],[21.54869,38.164596],[21.658451,38.175112],[21.748471,38.274202],[21.824746,38.328126],[21.953317,38.321201],[22.243738,38.188729],[22.555864,38.113229],[22.711513,38.046929],[22.79957,37.981196],[22.846389,37.967605],[22.920286,37.958304],[22.916979,38.007474],[22.893208,38.050908],[22.954806,38.074627],[23.122031,38.073335],[23.15252,38.096383],[23.183526,38.133668],[23.148903,38.176068],[23.093505,38.196429],[23.034388,38.202113],[22.995424,38.215523],[22.932482,38.201958],[22.8344,38.234721],[22.783654,38.261696],[22.753888,38.289498],[22.583356,38.344947],[22.421712,38.438507],[22.385228,38.385538],[22.319909,38.356858],[22.226892,38.352853],[21.965306,38.412436],[21.804695,38.366935],[21.717052,38.355049],[21.650079,38.35399],[21.567707,38.333578],[21.472519,38.321382],[21.390147,38.407837],[21.35542,38.474809],[21.331029,38.487315],[21.329789,38.424373],[21.303331,38.373937],[21.182614,38.345567],[21.113161,38.384686],[21.059728,38.503283],[20.992135,38.654023],[20.873279,38.775747],[20.776851,38.807528],[20.768583,38.874397],[20.777368,38.927883],[20.893123,38.941112],[21.074197,38.885172],[21.111611,38.896282],[21.152332,38.922095],[21.144581,38.979197],[21.118329,39.029995],[21.068513,39.032295],[21.034096,39.026249],[20.922785,39.036765],[20.779642,39.00855],[20.713392,39.035137],[20.691275,39.067486],[20.571696,39.147688],[20.468239,39.255279],[20.300808,39.327083],[20.191357,39.545804],[20.099373,39.64125],[20.001291,39.709411],[20.022582,39.710703],[20.059789,39.699128],[20.131102,39.66161],[20.20686,39.653497],[20.248201,39.678379],[20.272076,39.701195],[20.287579,39.738557],[20.293831,39.782223],[20.306182,39.796693],[20.36406,39.791732],[20.382456,39.802635],[20.38163,39.841806],[20.344268,39.89064],[20.31135,39.950766],[20.311143,39.97942],[20.338428,39.991048],[20.383697,40.01717],[20.408036,40.049442],[20.456044,40.065565],[20.527047,40.068511],[20.606267,40.08267],[20.657375,40.117397],[20.664972,40.151761],[20.697011,40.246381],[20.717888,40.292683],[20.751685,40.334903],[20.77003,40.391902],[20.8061,40.445439],[20.881651,40.467918],[20.950174,40.494402],[21.001902,40.56339],[21.030892,40.622482],[21.031099,40.658656],[20.987898,40.717773],[20.955755,40.775289],[20.964281,40.84991],[21.100035,40.856163],[21.147578,40.863139],[21.323691,40.867144],[21.404151,40.907193],[21.459703,40.903602],[21.575769,40.868927],[21.627497,40.896315],[21.779477,40.950446],[21.929442,41.107414],[21.993314,41.130978],[22.138835,41.140538],[22.184465,41.158625],[22.237692,41.155163],[22.400783,41.123407],[22.493542,41.118524],[22.603613,41.140202],[22.724794,41.17852],[22.755128,41.312724],[22.78386,41.331999],[22.859256,41.337374],[22.915997,41.336289],[23.025603,41.325643],[23.155982,41.322078],[23.239853,41.384968],[23.372041,41.389644],[23.433433,41.398714],[23.535804,41.386053],[23.635178,41.386776],[23.762302,41.412976],[23.880899,41.455945],[23.973503,41.452302],[24.011382,41.460054],[24.03288,41.469097],[24.056031,41.527233],[24.230387,41.530799],[24.289401,41.525037],[24.38676,41.523538],[24.487942,41.555242],[24.518225,41.552554],[24.569281,41.467392],[24.595998,41.442742],[24.651033,41.419953],[24.773713,41.356081],[24.795831,41.372901],[24.846887,41.394218],[24.993545,41.364969],[25.133381,41.315773],[25.251152,41.243529],[25.381945,41.264355],[25.527052,41.299805],[25.621517,41.310089],[25.723939,41.31505],[25.784917,41.330423],[25.923307,41.311897],[26.066347,41.35068],[26.135335,41.385743],[26.155179,41.434887],[26.143604,41.521549],[26.111202,41.60821],[26.076993,41.640198],[26.065986,41.673219],[26.085571,41.704173],[26.107378,41.72567],[26.200603,41.743783],[26.320905,41.716575],[26.410512,41.696318],[26.462499,41.6634],[26.495055,41.633247],[26.544509,41.607228],[26.581355,41.601285],[26.609777,41.512143],[26.624866,41.401763],[26.602387,41.354143],[26.536396,41.343136]]]]},"type":"Feature","properties":{"ISO_A2":"GR","NAME":"Greece"}},{"geometry":{"type":"Polygon","coordinates":[[[-61.715504,12.012652],[-61.782192,12.00844],[-61.755734,12.045467],[-61.749895,12.108434],[-61.714987,12.185174],[-61.660469,12.237031],[-61.607035,12.223285],[-61.627137,12.053942],[-61.715504,12.012652]]]},"type":"Feature","properties":{"ISO_A2":"GD","NAME":"Grenada"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-46.266679,60.781381],[-46.381556,60.660303],[-46.49633,60.686684],[-46.553122,60.740789],[-46.66619,60.765904],[-46.788069,60.758411],[-46.789981,60.77983],[-46.393881,60.908789],[-46.20521,60.943516],[-46.21862,60.889152],[-46.25451,60.841558],[-46.266679,60.781381]]],[[[-37.031223,65.531969],[-37.186794,65.531349],[-37.238419,65.609872],[-37.22289,65.695448],[-37.047501,65.722242],[-36.953088,65.663331],[-36.986936,65.575584],[-37.031223,65.531969]]],[[[-51.013677,69.552499],[-51.170411,69.517152],[-51.202037,69.525007],[-51.233999,69.551879],[-51.314898,69.674094],[-51.338876,69.732023],[-51.318929,69.80406],[-51.350297,69.85478],[-51.20891,69.913924],[-51.094576,69.924156],[-50.940244,69.908679],[-50.67902,69.848553],[-50.697908,69.829071],[-50.754416,69.797652],[-50.911719,69.756699],[-50.967219,69.664275],[-50.977865,69.617818],[-50.970423,69.582988],[-51.013677,69.552499]]],[[[-52.731169,69.944723],[-52.398243,69.863436],[-52.045319,69.807212],[-52.010773,69.781529],[-51.983385,69.742668],[-51.977054,69.722411],[-51.98509,69.703601],[-52.007466,69.686264],[-51.981705,69.663965],[-51.907756,69.63668],[-51.900186,69.604796],[-51.988423,69.550019],[-52.112602,69.489092],[-52.770469,69.363932],[-53.003116,69.342615],[-53.57843,69.256652],[-53.754336,69.260166],[-53.793171,69.264196],[-53.902027,69.302023],[-54.051166,69.337163],[-54.121032,69.364397],[-54.182734,69.403516],[-54.158162,69.427804],[-54.047341,69.437312],[-53.889599,69.436692],[-53.658321,69.465114],[-53.722245,69.490746],[-53.783042,69.5063],[-53.824978,69.540355],[-53.921509,69.533689],[-53.993779,69.553171],[-54.133202,69.565444],[-54.496978,69.5772],[-54.734121,69.610532],[-54.804091,69.630531],[-54.865767,69.66505],[-54.919149,69.7136],[-54.841247,69.901909],[-54.787916,69.949839],[-54.664616,69.965652],[-54.36311,69.923846],[-54.322596,69.941881],[-54.652421,70.011179],[-54.773654,70.052546],[-54.80931,70.085128],[-54.830756,70.132955],[-54.830446,70.161092],[-54.815589,70.189385],[-54.786211,70.217756],[-54.705958,70.256177],[-54.371637,70.31731],[-54.007241,70.296433],[-53.37516,70.22127],[-53.296741,70.205353],[-53.102929,70.140887],[-52.731169,69.944723]]],[[[-51.675135,70.85521],[-51.808667,70.852523],[-52.119397,70.870662],[-52.144202,70.882289],[-52.148026,70.904406],[-52.106736,70.96802],[-51.969794,70.976469],[-51.806961,70.941665],[-51.631365,70.892159],[-51.606922,70.868853],[-51.675135,70.85521]]],[[[-25.432344,70.921356],[-25.397204,70.862445],[-25.393638,70.834643],[-25.401338,70.811285],[-25.42082,70.794594],[-25.467794,70.779711],[-25.380125,70.740592],[-25.351651,70.714289],[-25.346354,70.693308],[-25.402268,70.65269],[-25.800564,70.598921],[-25.911333,70.573057],[-26.049722,70.509107],[-26.217877,70.454046],[-26.273895,70.45433],[-26.339136,70.511407],[-26.604701,70.553368],[-27.1048,70.531509],[-27.690036,70.47867],[-27.898007,70.453994],[-28.00304,70.46712],[-28.03526,70.486809],[-28.036836,70.514378],[-27.967538,70.594813],[-27.939581,70.615302],[-27.805274,70.642045],[-27.714194,70.71279],[-27.743986,70.789736],[-27.708923,70.89712],[-27.617223,70.91376],[-27.387496,70.875622],[-27.238874,70.867561],[-26.975557,70.862703],[-26.62178,70.875622],[-26.337457,70.919263],[-25.818884,71.043648],[-25.726822,71.042046],[-25.660857,70.997941],[-25.612333,70.97634],[-25.458234,70.942543],[-25.432344,70.921356]]],[[[-53.535202,71.040832],[-53.628788,71.034269],[-53.897532,71.085145],[-53.941146,71.104317],[-53.957786,71.127752],[-53.947451,71.155502],[-53.861849,71.20723],[-53.70098,71.282988],[-53.584476,71.297095],[-53.512335,71.249605],[-53.441435,71.185836],[-53.432159,71.153435],[-53.436888,71.115246],[-53.45544,71.082897],[-53.487815,71.056283],[-53.535202,71.040832]]],[[[-55.016921,72.791113],[-55.15823,72.723313],[-55.273572,72.684349],[-55.52366,72.568413],[-55.566577,72.564357],[-55.634118,72.57942],[-55.686544,72.609935],[-55.781008,72.617247],[-55.8139,72.636497],[-55.827129,72.652155],[-55.869039,72.662128],[-55.935702,72.668381],[-56.042698,72.65647],[-56.140883,72.668433],[-56.214806,72.719179],[-56.07807,72.753234],[-55.993528,72.782276],[-55.666467,72.793697],[-55.574199,72.780364],[-55.516244,72.780726],[-55.427929,72.788632],[-55.234685,72.824806],[-55.205824,72.841652],[-55.033018,72.820517],[-55.016921,72.791113]]],[[[-18.000549,75.407336],[-17.921174,75.301502],[-17.885905,75.204454],[-17.762424,75.142752],[-17.497841,75.151537],[-17.392008,75.036919],[-17.586027,74.992787],[-18.353319,75.010461],[-18.670819,75.00165],[-18.891322,75.072162],[-18.882485,75.195669],[-18.856027,75.31915],[-18.635549,75.389662],[-18.450341,75.327961],[-18.229864,75.372066],[-18.000549,75.407336]]],[[[-18.582633,76.042336],[-18.697277,76.015877],[-19.085341,76.430374],[-19.085341,76.580287],[-19.058883,76.694957],[-18.882485,76.703794],[-18.732598,76.642041],[-18.662008,76.403916],[-18.582633,76.042336]]],[[[-71.667351,77.325306],[-72.023531,77.316444],[-72.374388,77.355434],[-72.494898,77.385561],[-72.489575,77.431631],[-72.436426,77.447573],[-72.246799,77.463541],[-72.089083,77.467081],[-71.982758,77.459975],[-71.732903,77.431631],[-71.552164,77.403286],[-71.433438,77.394398],[-71.467105,77.353677],[-71.667351,77.325306]]],[[[-17.953731,77.642341],[-18.147982,77.642341],[-18.220045,77.66836],[-18.174001,77.714378],[-17.903682,77.862586],[-17.813584,77.874601],[-17.681422,77.858581],[-17.641372,77.782488],[-17.729481,77.70642],[-17.953731,77.642341]]],[[[-18.997181,77.973794],[-19.129473,77.938525],[-19.217633,78.044358],[-19.297008,78.185461],[-19.314681,78.344211],[-19.111799,78.423586],[-19.005966,78.441233],[-18.935402,78.423586],[-18.953049,78.352996],[-18.953049,78.211919],[-18.882485,78.114871],[-18.997181,77.973794]]],[[[-17.612485,79.825877],[-18.035819,79.711233],[-18.662008,79.720044],[-19.032424,79.772961],[-19.138258,79.852336],[-18.997181,79.940496],[-18.547389,80.011086],[-17.982902,80.055191],[-17.471383,80.028733],[-17.400819,79.940496],[-17.612485,79.825877]]],[[[-18.664721,81.846477],[-18.76766,81.814309],[-19.031468,81.827176],[-19.369277,81.917274],[-19.594483,81.991249],[-19.610555,82.078117],[-19.494748,82.116719],[-19.314578,82.123179],[-19.066867,82.049178],[-18.812696,81.949443],[-18.664721,81.846477]]],[[[-44.864569,82.083621],[-45.067424,82.065999],[-45.490758,82.171832],[-46.161027,82.277666],[-46.751921,82.348204],[-47.307546,82.533412],[-47.351213,82.599196],[-47.272277,82.656919],[-46.787216,82.665704],[-46.399152,82.692162],[-45.411383,82.577544],[-44.917485,82.480496],[-44.749924,82.401121],[-44.776383,82.242371],[-44.864569,82.083621]]],[[[-29.952869,83.564822],[-28.991972,83.504774],[-28.483811,83.434908],[-28.377074,83.437207],[-27.688356,83.410413],[-27.034417,83.376927],[-25.947403,83.289645],[-25.795087,83.260965],[-25.912444,83.237504],[-26.182737,83.221381],[-27.571852,83.192648],[-30.092008,83.157405],[-31.533987,83.088908],[-31.992693,83.085368],[-32.032716,82.983462],[-31.836759,82.977881],[-31.51559,82.991627],[-30.386047,83.093688],[-29.963592,83.110483],[-29.17501,83.101982],[-28.151454,83.063716],[-27.738508,83.077203],[-27.002067,83.067178],[-26.140828,83.096427],[-25.123371,83.159601],[-24.84517,83.018551],[-24.470284,82.877371],[-24.173609,82.893028],[-23.919516,82.885096],[-23.833527,82.838768],[-23.694621,82.819131],[-23.406938,82.829673],[-22.524924,82.789185],[-21.91969,82.716398],[-21.691823,82.682499],[-21.582527,82.634155],[-21.520671,82.595424],[-21.615781,82.547727],[-21.993975,82.46277],[-22.47255,82.384739],[-23.118092,82.324691],[-23.862207,82.287071],[-29.579403,82.161187],[-29.772777,82.131266],[-29.887421,82.054837],[-29.810991,81.955489],[-29.543824,81.93996],[-28.919418,81.995874],[-27.839484,82.048894],[-27.045941,82.046362],[-25.148847,82.001145],[-24.589165,81.882806],[-24.293085,81.700982],[-23.636536,81.741833],[-23.496131,81.773045],[-23.392985,81.827202],[-23.310535,81.885286],[-23.248782,81.947246],[-23.179846,81.98944],[-23.103726,82.011816],[-22.940093,82.030497],[-22.563398,82.053028],[-21.575551,82.074939],[-21.337969,82.068686],[-21.16741,81.983833],[-21.130307,81.934224],[-21.117956,81.869628],[-21.123408,81.789943],[-21.146611,81.695143],[-21.230533,81.601376],[-21.503927,81.43751],[-21.723656,81.348265],[-21.960721,81.283928],[-22.415267,81.137115],[-22.572777,81.097893],[-23.072436,80.926689],[-23.196382,80.847339],[-23.203669,80.789255],[-23.117731,80.77817],[-22.972856,80.832792],[-22.918957,80.871808],[-22.825681,80.912633],[-22.089396,81.020223],[-21.931343,81.050195],[-21.449745,81.178198],[-21.142425,81.226153],[-20.889753,81.276383],[-20.755834,81.311988],[-20.015724,81.56435],[-19.629933,81.639875],[-19.224738,81.64003],[-19.152986,81.512183],[-18.667408,81.492442],[-18.456516,81.497972],[-18.117881,81.466836],[-17.969389,81.441179],[-17.716639,81.428157],[-17.456035,81.397719],[-17.226204,81.43043],[-17.15905,81.450946],[-16.937049,81.543912],[-16.637118,81.626232],[-16.358996,81.729069],[-16.266805,81.753977],[-16.120716,81.776611],[-15.968891,81.785499],[-15.555531,81.83361],[-15.450628,81.836969],[-15.227489,81.821776],[-14.241968,81.81387],[-13.704481,81.789065],[-12.956,81.720232],[-12.434429,81.682508],[-12.192842,81.649125],[-11.841132,81.577553],[-11.557454,81.502622],[-11.42555,81.480608],[-11.43064,81.456837],[-11.5288,81.424023],[-12.231341,81.309249],[-12.461249,81.23251],[-13.126222,81.087816],[-13.451163,81.038103],[-13.804294,81.018595],[-14.197371,81.013918],[-14.452342,80.993093],[-14.490118,80.973275],[-14.308475,80.913227],[-14.228558,80.870465],[-14.240185,80.832431],[-14.431258,80.776052],[-14.503579,80.763288],[-15.194209,80.72143],[-15.542689,80.650375],[-15.997519,80.641719],[-16.318921,80.649806],[-16.760599,80.573377],[-16.587768,80.51121],[-16.429457,80.484235],[-15.937239,80.427649],[-15.932614,80.395093],[-16.167793,80.329412],[-16.488755,80.251949],[-16.868422,80.198232],[-17.011127,80.190196],[-17.191167,80.203684],[-17.35723,80.20079],[-17.72284,80.176011],[-18.070933,80.172058],[-18.6926,80.207094],[-19.028988,80.247609],[-19.206006,80.261613],[-19.429222,80.257737],[-19.515031,80.241407],[-19.866818,80.144721],[-20.039495,80.07873],[-20.150134,80.011241],[-20.197418,79.937653],[-20.181347,79.857968],[-20.138507,79.803346],[-20.068873,79.773787],[-19.98539,79.755881],[-19.8393,79.746502],[-19.517899,79.755391],[-19.391524,79.750326],[-19.353051,79.734203],[-19.283624,79.683147],[-19.295974,79.63501],[-19.354214,79.56734],[-19.399301,79.488378],[-19.431212,79.398151],[-19.414003,79.348852],[-19.28396,79.338052],[-19.22293,79.341617],[-19.15221,79.325391],[-19.071802,79.289476],[-19.011341,79.251442],[-18.970826,79.211393],[-18.992014,79.178346],[-19.074954,79.152327],[-19.262204,79.122974],[-19.723028,79.065045],[-19.769821,79.047372],[-19.806072,79.012103],[-19.831575,78.959108],[-19.887204,78.910946],[-19.972884,78.867641],[-20.050476,78.841777],[-20.199898,78.830331],[-20.395675,78.828832],[-20.615584,78.803924],[-21.133743,78.658662],[-21.141443,78.642513],[-20.94745,78.595875],[-20.955666,78.55505],[-21.194773,78.379816],[-21.260195,78.293025],[-21.312001,78.173988],[-21.397241,78.073581],[-21.515968,77.991829],[-21.632679,77.897468],[-21.74753,77.790601],[-21.729573,77.708539],[-21.578936,77.651385],[-21.379697,77.697583],[-21.131883,77.847212],[-20.862597,77.911885],[-20.571814,77.891577],[-20.318599,77.86194],[-19.995105,77.803417],[-19.72432,77.766933],[-19.490407,77.7189],[-19.393979,77.678386],[-19.296879,77.621283],[-19.296078,77.585239],[-19.46754,77.565808],[-19.524126,77.571984],[-19.953221,77.666371],[-20.162045,77.689858],[-20.439212,77.661617],[-20.680825,77.618983],[-20.463758,77.447314],[-20.231964,77.368404],[-19.808656,77.332386],[-19.587584,77.294455],[-19.426406,77.245983],[-19.300289,77.222367],[-19.131023,77.232754],[-18.903388,77.280451],[-18.585888,77.283035],[-18.442641,77.259393],[-18.33903,77.215287],[-18.292366,77.132863],[-18.302753,77.012121],[-18.337273,76.921197],[-18.396029,76.860063],[-18.510286,76.778156],[-18.605784,76.763273],[-18.740298,76.767718],[-18.865355,76.784512],[-18.981006,76.813761],[-19.156319,76.836551],[-19.508778,76.861097],[-19.864932,76.914427],[-20.064377,76.927604],[-20.486703,76.920783],[-20.942101,76.886987],[-20.959904,76.8427],[-21.614696,76.687878],[-21.749003,76.689996],[-21.930801,76.743171],[-22.185255,76.794073],[-22.334316,76.793711],[-22.554535,76.72927],[-22.609338,76.704311],[-22.606625,76.680746],[-22.444413,76.625039],[-22.378603,76.612223],[-22.294861,76.601475],[-22.00369,76.58809],[-21.877315,76.573466],[-21.758098,76.400557],[-21.569091,76.29369],[-21.488244,76.271882],[-21.416853,76.264027],[-21.18542,76.267955],[-20.887402,76.304025],[-20.783274,76.275164],[-20.56383,76.239843],[-20.435414,76.231058],[-20.279299,76.232453],[-20.103625,76.219069],[-19.862916,76.120677],[-19.957743,75.996679],[-19.806899,75.897383],[-19.566035,75.79496],[-19.508959,75.757495],[-19.485704,75.689592],[-19.480252,75.644789],[-19.462166,75.603861],[-19.431418,75.566912],[-19.399534,75.49441],[-19.366461,75.386407],[-19.375298,75.298195],[-19.425992,75.229827],[-19.526348,75.180218],[-19.676287,75.149367],[-19.798502,75.15748],[-19.893173,75.204531],[-20.02655,75.254683],[-20.198684,75.307962],[-20.484946,75.31424],[-20.90585,75.156912],[-21.093823,75.149083],[-21.246527,75.133399],[-21.409437,75.064772],[-21.649319,75.023457],[-21.861037,75.039864],[-22.232849,75.119704],[-22.097767,75.066374],[-21.904342,75.003898],[-21.783936,74.971496],[-21.695104,74.964468],[-21.597668,74.971962],[-21.457341,74.997567],[-21.140565,75.068545],[-21.056694,75.079397],[-20.985794,75.074358],[-20.927787,75.053429],[-20.861098,74.992555],[-20.785702,74.89176],[-20.795314,74.805977],[-20.889986,74.735206],[-20.970988,74.68986],[-21.038297,74.669861],[-21.038504,74.654152],[-20.861563,74.635961],[-20.611114,74.728204],[-20.531739,74.8429],[-20.417069,74.975191],[-20.214239,75.019246],[-19.984924,74.975191],[-19.799716,74.851711],[-19.537794,74.624541],[-19.427336,74.600925],[-19.287034,74.546406],[-19.225126,74.479485],[-19.241662,74.400214],[-19.271583,74.342646],[-19.31494,74.306783],[-19.369148,74.284045],[-19.466765,74.269498],[-19.646237,74.257948],[-20.04753,74.282262],[-20.256432,74.282831],[-20.230543,74.204618],[-20.653152,74.137336],[-21.129454,74.110877],[-21.580538,74.163458],[-21.954933,74.244306],[-21.832047,74.35727],[-21.761974,74.482741],[-21.942919,74.565733],[-21.982606,74.56749],[-21.920155,74.439229],[-21.97271,74.390033],[-22.177194,74.330166],[-22.321578,74.302545],[-22.334316,74.28637],[-22.263519,74.272392],[-22.217346,74.245494],[-22.195642,74.205703],[-22.220034,74.165551],[-22.290572,74.124985],[-22.328967,74.090956],[-22.335272,74.063412],[-22.270573,74.0299],[-22.134819,73.990471],[-21.987722,73.970989],[-21.298281,73.962462],[-21.0222,73.941275],[-20.367304,73.848232],[-20.337978,73.81968],[-20.448901,73.653024],[-20.509647,73.492879],[-20.636745,73.463578],[-21.325902,73.456654],[-21.548007,73.431694],[-21.872871,73.358107],[-22.185049,73.269895],[-22.346899,73.269223],[-22.98748,73.346247],[-23.233202,73.397691],[-23.760611,73.543108],[-24.157745,73.764438],[-24.339904,73.672428],[-24.451267,73.628529],[-24.566299,73.60574],[-24.677274,73.602174],[-24.784192,73.617936],[-24.905451,73.652766],[-25.108849,73.733691],[-25.35147,73.813634],[-25.521279,73.851617],[-25.527739,73.840816],[-25.427435,73.793816],[-25.280519,73.739582],[-24.908887,73.580186],[-24.778301,73.539904],[-24.791246,73.511276],[-25.025909,73.485799],[-25.310749,73.430996],[-25.450069,73.390663],[-25.665456,73.292839],[-25.74018,73.277646],[-26.062331,73.253048],[-26.168526,73.259017],[-26.406729,73.312941],[-26.765493,73.348185],[-26.976694,73.379526],[-27.270397,73.436293],[-27.169396,73.374178],[-26.603616,73.279507],[-26.541837,73.248966],[-26.657644,73.192122],[-26.728596,73.1714],[-26.863316,73.167007],[-27.061857,73.178893],[-27.264894,73.176464],[-27.472374,73.159798],[-27.56162,73.138482],[-27.532577,73.11254],[-27.483149,73.088924],[-27.413334,73.067633],[-27.348041,73.06784],[-27.189885,73.132436],[-27.070048,73.137035],[-26.753245,73.121118],[-26.432851,73.171477],[-26.202013,73.193233],[-26.028767,73.198788],[-25.399013,73.275786],[-25.268297,73.361956],[-25.057044,73.396502],[-24.587202,73.422961],[-24.132656,73.409395],[-23.898975,73.398311],[-23.709607,73.316791],[-23.455772,73.259069],[-23.244105,73.193259],[-22.996059,73.171581],[-22.852295,73.083963],[-22.450175,72.986088],[-22.194221,72.965056],[-22.036298,72.918444],[-22.023482,72.720781],[-22.006765,72.635463],[-22.074823,72.399199],[-22.280211,72.344783],[-22.239283,72.220243],[-22.293207,72.119552],[-22.49751,72.157741],[-22.706826,72.223912],[-23.208035,72.326567],[-23.674363,72.392584],[-23.855593,72.452425],[-24.069068,72.498753],[-24.358611,72.687295],[-24.547204,72.921725],[-24.629964,73.037661],[-24.788559,73.044121],[-24.992474,73.013063],[-25.170551,72.980249],[-25.255869,72.924128],[-25.860845,72.846872],[-26.080444,72.794007],[-26.205785,72.795557],[-26.657592,72.71582],[-26.47657,72.677657],[-26.392104,72.672825],[-26.209454,72.694374],[-26.099797,72.721918],[-25.687961,72.79734],[-25.357413,72.810233],[-25.237498,72.842789],[-24.984826,72.889195],[-24.813312,72.901494],[-24.789463,72.889763],[-24.771041,72.868627],[-24.649989,72.582495],[-24.700683,72.50635],[-24.836928,72.473354],[-25.128021,72.419197],[-25.203727,72.392946],[-25.117841,72.346954],[-24.844189,72.39031],[-24.666861,72.437336],[-24.572345,72.420231],[-24.417186,72.348246],[-24.242287,72.311349],[-23.797715,72.20071],[-23.587134,72.139783],[-23.290898,72.081027],[-22.955751,71.99943],[-22.868495,71.970646],[-22.562157,71.928271],[-22.496864,71.913802],[-22.370231,71.769831],[-22.264501,71.753812],[-21.959662,71.744665],[-22.013328,71.688803],[-22.311036,71.564573],[-22.46498,71.524885],[-22.50322,71.500442],[-22.488596,71.456672],[-22.479656,71.383447],[-22.417593,71.248675],[-22.347778,71.373473],[-22.299047,71.432333],[-22.233779,71.449954],[-22.169571,71.452538],[-21.961445,71.508194],[-21.752258,71.478325],[-21.697947,71.337429],[-21.671204,71.205938],[-21.689627,71.092405],[-21.666579,70.915878],[-21.674511,70.856295],[-21.625134,70.804619],[-21.573923,70.590498],[-21.522686,70.526238],[-21.625548,70.468567],[-21.943513,70.443452],[-22.069293,70.471874],[-22.384132,70.462392],[-22.38452,70.513112],[-22.399868,70.5713],[-22.401134,70.611918],[-22.422114,70.64866],[-22.437023,70.860016],[-22.526087,70.807823],[-22.531332,70.764983],[-22.555026,70.72142],[-22.609648,70.49332],[-22.690677,70.437303],[-22.942599,70.450791],[-23.19062,70.442496],[-23.327821,70.450997],[-23.791798,70.555177],[-23.9714,70.649486],[-24.130356,70.79108],[-24.22849,70.923371],[-24.265748,71.046361],[-24.377008,71.146407],[-24.562216,71.22356],[-24.781014,71.286088],[-25.033402,71.333941],[-25.25499,71.395694],[-25.44578,71.471245],[-25.655844,71.530027],[-25.885133,71.571937],[-26.211444,71.589946],[-26.68852,71.583331],[-27.010671,71.630563],[-27.08723,71.626559],[-27.162316,71.602219],[-27.107022,71.532688],[-26.737226,71.500804],[-26.451997,71.493518],[-26.074088,71.498039],[-25.842706,71.480185],[-25.757802,71.439929],[-25.699434,71.368331],[-25.667549,71.265314],[-25.742247,71.183588],[-26.014117,71.092819],[-26.157519,71.050289],[-26.575995,70.968692],[-26.717924,70.950502],[-27.067335,70.944921],[-27.33569,70.952775],[-27.688744,70.993471],[-27.888912,71.001713],[-28.303125,71.007165],[-28.398468,70.992928],[-28.291549,70.949313],[-28.115875,70.924612],[-27.992162,70.895208],[-27.97932,70.839501],[-28.023865,70.756767],[-28.069857,70.699018],[-28.145641,70.655688],[-28.417485,70.573522],[-28.530062,70.54758],[-29.036827,70.461513],[-29.07207,70.444951],[-28.953473,70.447225],[-28.63313,70.477766],[-28.540888,70.476887],[-28.015029,70.402266],[-27.596088,70.406711],[-26.747277,70.475544],[-26.677488,70.4742],[-26.62178,70.4634],[-26.565427,70.437561],[-26.508428,70.396634],[-26.576822,70.357075],[-26.77066,70.318886],[-27.072502,70.281188],[-27.203244,70.255712],[-27.328146,70.217161],[-27.560819,70.124454],[-27.628851,70.028206],[-27.384163,69.991594],[-27.274195,70.037947],[-27.144487,70.140835],[-27.02775,70.201219],[-26.752134,70.242173],[-26.415669,70.221347],[-26.155711,70.245583],[-25.624839,70.346973],[-25.529909,70.353174],[-24.74882,70.295089],[-24.041008,70.181195],[-23.667335,70.139311],[-23.173231,70.114584],[-22.2845,70.125849],[-22.206598,70.107917],[-22.235459,70.067558],[-22.287058,70.033374],[-22.435111,69.985754],[-22.614945,69.954232],[-22.726204,69.945343],[-22.820927,69.922864],[-23.033627,69.90085],[-23.088249,69.88297],[-23.014559,69.804835],[-23.049544,69.792743],[-23.236974,69.791451],[-23.552536,69.74055],[-23.811642,69.744167],[-23.865721,69.736726],[-23.816551,69.717812],[-23.76428,69.681328],[-23.708961,69.627223],[-23.739398,69.588621],[-23.855593,69.565573],[-23.943623,69.55808],[-24.247507,69.590378],[-24.296651,69.585572],[-24.252287,69.562369],[-24.227043,69.526971],[-24.220919,69.479274],[-24.295566,69.439328],[-24.451086,69.407082],[-24.740577,69.318405],[-24.866616,69.293083],[-25.132517,69.272129],[-25.18856,69.260527],[-25.080453,69.192469],[-25.092416,69.165184],[-25.272199,69.091623],[-25.544017,69.045708],[-25.581172,69.020955],[-25.606338,68.954448],[-25.626131,68.927989],[-25.698012,68.889904],[-25.955878,68.817298],[-26.138606,68.781177],[-26.229246,68.751566],[-26.341436,68.702163],[-26.482926,68.675912],[-26.653716,68.672863],[-26.81536,68.654363],[-27.081132,68.601808],[-27.266263,68.584341],[-27.851214,68.493494],[-28.126469,68.478999],[-28.364568,68.44652],[-28.854357,68.359833],[-29.087676,68.331953],[-29.249527,68.298777],[-29.426209,68.28932],[-29.713581,68.310818],[-29.868507,68.311593],[-29.963799,68.298545],[-30.051132,68.271905],[-30.195516,68.19899],[-30.318118,68.193331],[-30.720006,68.251183],[-30.711867,68.224957],[-30.605672,68.162351],[-30.610736,68.11791],[-30.849739,68.072848],[-30.978569,68.061324],[-31.16848,68.07985],[-31.419472,68.128477],[-31.74201,68.229996],[-32.137258,68.384922],[-32.327427,68.437322],[-32.313655,68.387609],[-32.269627,68.339033],[-32.195239,68.291672],[-32.180123,68.257281],[-32.224229,68.23599],[-32.282365,68.225242],[-32.354583,68.225087],[-32.366856,68.213046],[-32.24893,68.139123],[-32.155939,68.063184],[-32.164569,67.991096],[-32.27482,67.922831],[-32.369543,67.882782],[-32.448712,67.870948],[-32.918011,67.7007],[-33.048727,67.679254],[-33.108154,67.658222],[-33.156989,67.626725],[-33.293595,67.485752],[-33.348863,67.442705],[-33.458495,67.38674],[-33.504461,67.377025],[-33.517561,67.354184],[-33.497743,67.318165],[-33.527974,67.258169],[-33.608176,67.17422],[-33.881363,66.942271],[-34.101634,66.725927],[-34.198269,66.655079],[-34.26891,66.625029],[-34.313611,66.635778],[-34.422855,66.630197],[-34.475875,66.592137],[-34.523934,66.52333],[-34.576256,66.470878],[-34.632842,66.434782],[-35.074675,66.279159],[-35.188596,66.250272],[-35.290864,66.268565],[-35.411735,66.261537],[-35.662055,66.343754],[-35.705489,66.373985],[-35.867237,66.441423],[-35.861862,66.406231],[-35.834706,66.386853],[-35.812098,66.358379],[-35.755512,66.323549],[-35.630068,66.139943],[-35.729312,66.10227],[-35.817912,66.059224],[-36.044177,65.986619],[-36.288736,65.864869],[-36.379169,65.830814],[-36.399246,65.930085],[-36.388988,65.959695],[-36.527248,66.007703],[-36.522752,65.973131],[-36.537015,65.940885],[-36.637267,65.812314],[-36.665172,65.790067],[-36.714498,65.795054],[-36.822165,65.77136],[-36.932417,65.782548],[-37.0259,65.841124],[-37.062797,65.871432],[-37.2332,65.788104],[-37.315985,65.790248],[-37.329835,65.720175],[-37.410088,65.656354],[-37.516077,65.628708],[-37.663768,65.630878],[-37.754227,65.593051],[-37.954784,65.633617],[-38.001267,65.709633],[-37.842284,65.813813],[-37.797351,65.856782],[-37.826523,65.909672],[-37.787843,65.977989],[-37.484476,66.194642],[-37.278701,66.304377],[-37.29069,66.323911],[-37.569898,66.347837],[-37.813914,66.385509],[-38.051677,66.398428],[-38.156632,66.385612],[-37.989149,66.32267],[-37.752341,66.261537],[-37.868897,66.203143],[-37.969434,66.141131],[-38.073459,65.972563],[-38.139966,65.903523],[-38.398116,65.982846],[-38.520356,66.009666],[-38.442661,65.921661],[-38.216344,65.838307],[-38.201875,65.810867],[-38.203373,65.711726],[-38.636732,65.624367],[-39.088978,65.611138],[-39.413403,65.586281],[-39.960914,65.556206],[-40.173563,65.556154],[-40.191546,65.522513],[-39.655972,65.368878],[-39.57794,65.340767],[-39.652561,65.28785],[-39.7632,65.254932],[-39.937273,65.141606],[-40.028016,65.102538],[-40.253119,65.048898],[-40.66759,65.108739],[-40.880548,65.081971],[-41.084438,65.100833],[-41.088701,65.035359],[-41.027749,64.987558],[-40.966021,64.868857],[-40.829285,64.878056],[-40.655497,64.915314],[-40.521087,64.825475],[-40.432694,64.67321],[-40.278389,64.595954],[-40.20984,64.536268],[-40.182245,64.47994],[-40.278466,64.42382],[-40.477653,64.344445],[-40.698518,64.329717],[-40.686452,64.26693],[-40.781743,64.221765],[-40.984547,64.234994],[-41.079399,64.266517],[-41.177714,64.281451],[-41.581022,64.298324],[-41.174975,64.177401],[-41.030565,64.121048],[-40.966331,64.154431],[-40.825694,64.162544],[-40.617774,64.131719],[-40.652345,63.927726],[-40.561265,63.762362],[-40.550413,63.725258],[-40.771537,63.626194],[-40.77518,63.533642],[-40.906852,63.507855],[-41.048729,63.513798],[-41.056171,63.412254],[-41.152263,63.34895],[-41.13521,63.309263],[-41.107718,63.273761],[-41.195464,63.209217],[-41.27471,63.130669],[-41.387907,63.061888],[-41.447878,63.068967],[-41.627919,63.064523],[-41.844469,63.070259],[-42.019729,63.159608],[-42.092412,63.189373],[-42.174526,63.208804],[-42.142952,63.151339],[-42.093988,63.116768],[-41.932267,63.052224],[-41.634482,62.972436],[-41.643602,62.91585],[-41.723236,62.891252],[-41.908961,62.737101],[-41.9749,62.733794],[-42.058254,62.694003],[-42.315603,62.707336],[-42.42371,62.723149],[-42.741132,62.71302],[-42.849084,62.726663],[-42.941663,62.720229],[-42.85526,62.676691],[-42.673695,62.637521],[-42.467144,62.598195],[-42.152977,62.568481],[-42.164346,62.512205],[-42.243152,62.466058],[-42.197961,62.397122],[-42.233076,62.347719],[-42.248165,62.289066],[-42.321494,62.152744],[-42.236124,62.059184],[-42.143055,62.013528],[-42.153856,61.953428],[-42.110189,61.857207],[-42.24969,61.771372],[-42.365419,61.774602],[-42.530422,61.755301],[-42.585302,61.717473],[-42.323638,61.681739],[-42.347358,61.617428],[-42.418723,61.537019],[-42.493757,61.362818],[-42.646022,61.064128],[-42.717051,60.767506],[-43.044085,60.523696],[-43.159944,60.516927],[-43.189064,60.507263],[-43.348356,60.519769],[-43.598315,60.576044],[-43.791998,60.594596],[-43.922688,60.595371],[-43.939535,60.567363],[-43.831169,60.521991],[-43.665495,60.503],[-43.533074,60.473002],[-43.295646,60.444993],[-43.213016,60.390681],[-43.156482,60.332855],[-43.164827,60.301022],[-43.165318,60.263428],[-43.122918,60.061218],[-43.234797,59.991326],[-43.320141,59.928125],[-43.616867,59.93691],[-43.668492,59.958924],[-43.955038,60.025484],[-43.937416,59.994219],[-43.730116,59.90376],[-43.657924,59.858621],[-43.70619,59.849319],[-43.789828,59.845934],[-43.906565,59.815471],[-44.116966,59.831955],[-44.105416,59.877741],[-44.06547,59.924818],[-44.161717,59.916782],[-44.268972,59.892934],[-44.331268,59.901719],[-44.38359,59.899083],[-44.412942,59.922622],[-44.453457,60.014554],[-44.404933,60.060779],[-44.231326,60.180255],[-44.176109,60.244385],[-44.224349,60.273531],[-44.348321,60.204801],[-44.476349,60.095531],[-44.533142,60.029514],[-44.613292,60.016647],[-44.812195,60.049927],[-45.379266,60.202941],[-45.362342,60.295958],[-45.367768,60.37293],[-45.202507,60.382697],[-45.082281,60.416235],[-44.974691,60.45724],[-44.853536,60.531913],[-44.742431,60.655264],[-44.756746,60.664618],[-45.082695,60.50716],[-45.283303,60.454553],[-45.380506,60.444941],[-45.428849,60.468247],[-45.590287,60.518839],[-45.69519,60.541835],[-45.934322,60.579455],[-45.976516,60.599712],[-46.046615,60.615732],[-46.141958,60.776497],[-46.018658,60.971783],[-45.933754,61.02842],[-45.879856,61.094152],[-45.849418,61.181175],[-45.870218,61.218305],[-45.942255,61.205541],[-45.975689,61.175801],[-45.970418,61.129189],[-46.011734,61.09684],[-46.296703,61.022374],[-46.582397,60.962067],[-46.717789,60.904913],[-46.805639,60.860316],[-46.874446,60.816392],[-46.979711,60.820345],[-47.12487,60.811353],[-47.224425,60.782854],[-47.369713,60.80032],[-47.464643,60.842643],[-47.579054,60.847475],[-47.70747,60.827089],[-47.79625,60.828871],[-47.78886,60.800165],[-47.729923,60.729498],[-47.827902,60.724769],[-48.013963,60.721979],[-48.107497,60.742443],[-48.180826,60.769263],[-48.241934,60.806831],[-48.205192,60.855924],[-47.905959,60.945738],[-47.770309,60.997776],[-47.858779,61.015656],[-48.146151,60.999481],[-48.193952,61.012917],[-48.386447,61.004752],[-48.378127,61.138491],[-48.424946,61.171693],[-48.428175,61.187377],[-48.494838,61.224687],[-48.557883,61.233989],[-48.597157,61.247425],[-48.922073,61.277449],[-48.964499,61.352018],[-48.987211,61.428706],[-49.049197,61.523894],[-49.204743,61.548698],[-49.289053,61.589962],[-49.222261,61.632104],[-49.193116,61.685641],[-49.265204,61.710084],[-49.311222,61.747808],[-49.304504,61.772302],[-49.362873,61.838525],[-49.380288,61.890176],[-49.31347,61.938623],[-49.129761,61.993426],[-49.070539,62.015491],[-49.039663,62.039366],[-48.828694,62.079674],[-49.00814,62.108199],[-49.120459,62.112591],[-49.202288,62.099311],[-49.277917,62.045774],[-49.348559,62.01022],[-49.623787,61.998593],[-49.664276,62.016964],[-49.68337,62.092593],[-49.667712,62.150884],[-49.553456,62.232739],[-49.685282,62.273357],[-49.80605,62.286534],[-49.943354,62.324465],[-50.070194,62.364514],[-50.179154,62.411126],[-50.28522,62.466213],[-50.319223,62.47319],[-50.280905,62.530757],[-50.25933,62.578093],[-50.255997,62.679792],[-50.298733,62.721986],[-50.203752,62.808776],[-50.076008,62.903758],[-49.793105,63.044628],[-50.092234,62.976776],[-50.338343,62.828775],[-50.390097,62.822006],[-50.40821,62.848826],[-50.501589,62.944944],[-50.572024,62.971144],[-50.603521,63.000031],[-50.743512,63.051294],[-50.804284,63.090775],[-50.89048,63.166946],[-51.013108,63.257586],[-51.187568,63.436438],[-51.468868,63.642266],[-51.538192,63.758021],[-51.451066,63.904782],[-51.547494,64.006119],[-51.280069,64.05299],[-50.897585,64.105545],[-50.69938,64.149289],[-50.585021,64.162337],[-50.341883,64.170347],[-50.260699,64.214272],[-50.395962,64.203162],[-50.486629,64.208898],[-50.492313,64.229361],[-50.458723,64.265845],[-50.437071,64.312819],[-50.483373,64.304344],[-50.721033,64.223315],[-51.072303,64.15903],[-51.346654,64.123115],[-51.391095,64.124975],[-51.487136,64.103271],[-51.542275,64.097018],[-51.584908,64.103193],[-51.682008,64.164766],[-51.707846,64.205074],[-51.5338,64.314214],[-51.403756,64.463197],[-51.231519,64.560607],[-51.109898,64.572803],[-50.906525,64.567584],[-50.834928,64.559005],[-50.857717,64.61678],[-50.849216,64.644685],[-50.684343,64.678197],[-50.492106,64.693157],[-50.355112,64.682564],[-50.268916,64.614764],[-50.158225,64.489552],[-50.009009,64.447281],[-50.015546,64.507432],[-50.092958,64.584895],[-50.121638,64.703751],[-50.219927,64.753877],[-50.298862,64.778553],[-50.517014,64.766486],[-50.648169,64.853303],[-50.677883,64.885187],[-50.681294,64.927562],[-50.812164,65.051844],[-50.854255,65.113984],[-50.92376,65.196744],[-50.960657,65.201137],[-50.913708,65.096983],[-50.852343,65.02368],[-50.764854,64.862553],[-50.721575,64.797621],[-50.780177,64.746126],[-50.891048,64.695225],[-50.989079,64.664839],[-51.220615,64.628484],[-51.17085,64.707782],[-51.13894,64.785736],[-51.255367,64.758115],[-51.363629,64.701555],[-51.40094,64.623084],[-51.470445,64.551822],[-51.676763,64.377053],[-51.758076,64.279953],[-51.83497,64.231997],[-51.922613,64.218768],[-51.998681,64.256802],[-52.063173,64.346099],[-52.093404,64.415913],[-52.097021,64.597091],[-52.088882,64.68153],[-52.124048,64.795425],[-52.235437,65.060525],[-52.259027,65.154938],[-52.447594,65.205116],[-52.450359,65.221342],[-52.499684,65.275034],[-52.537718,65.328829],[-52.506221,65.348466],[-52.461443,65.362677],[-52.1796,65.441949],[-51.970724,65.530729],[-51.721075,65.66992],[-51.619169,65.713199],[-51.252938,65.746478],[-51.090364,65.751026],[-51.091915,65.775779],[-51.146407,65.785623],[-51.393808,65.779138],[-51.723452,65.723482],[-51.779883,65.703432],[-51.924138,65.616822],[-52.035371,65.569486],[-52.34822,65.461328],[-52.551257,65.461379],[-52.760908,65.590803],[-52.994951,65.566024],[-53.152926,65.574551],[-53.198969,65.594033],[-53.233748,65.770844],[-53.106365,65.977136],[-53.243721,65.979074],[-53.272221,65.987394],[-53.344697,66.034368],[-53.392033,66.04832],[-53.356944,66.07328],[-53.017895,66.170897],[-52.510898,66.36241],[-52.292642,66.43765],[-52.157922,66.470103],[-52.056094,66.50731],[-51.932173,66.5879],[-51.891194,66.623169],[-51.822103,66.651539],[-51.676349,66.683579],[-51.517108,66.732051],[-51.258571,66.841192],[-51.224981,66.881551],[-51.28105,66.890982],[-51.401973,66.853749],[-51.647695,66.754014],[-51.823059,66.697867],[-52.421239,66.446694],[-52.675849,66.355227],[-52.814445,66.296884],[-52.921932,66.241125],[-53.035775,66.201437],[-53.156052,66.177718],[-53.412755,66.159941],[-53.538768,66.139374],[-53.614681,66.154489],[-53.648089,66.273526],[-53.622613,66.344039],[-53.634705,66.413673],[-53.57073,66.513305],[-53.475697,66.583817],[-53.435777,66.622187],[-53.418749,66.648542],[-53.222689,66.721457],[-53.114634,66.753807],[-53.038282,66.826826],[-52.603114,66.852716],[-52.491054,66.850132],[-52.431419,66.859899],[-52.386849,66.881138],[-52.42974,66.897545],[-52.56012,66.909095],[-52.906688,66.906872],[-53.226926,66.919378],[-53.373093,66.931936],[-53.443606,66.924649],[-53.560007,66.94594],[-53.687157,66.986454],[-53.884406,67.135541],[-53.805496,67.326899],[-53.798571,67.418185],[-53.547915,67.49818],[-53.41384,67.524716],[-53.223593,67.584971],[-52.969552,67.687238],[-52.666444,67.749715],[-52.511983,67.761291],[-52.383567,67.752351],[-51.909074,67.663725],[-51.665058,67.646362],[-51.450601,67.667705],[-51.181418,67.636518],[-50.705349,67.508903],[-50.613468,67.52792],[-50.640108,67.558822],[-51.171057,67.693594],[-51.167957,67.73385],[-51.032073,67.744392],[-50.886992,67.783537],[-50.968873,67.806663],[-51.321461,67.78656],[-51.423238,67.754469],[-51.765233,67.737829],[-51.943878,67.765166],[-52.104204,67.778706],[-52.34481,67.836893],[-52.546219,67.817928],[-52.673265,67.794958],[-52.898368,67.773228],[-52.979603,67.757777],[-53.418801,67.574584],[-53.603596,67.536498],[-53.735216,67.549004],[-53.642818,67.668273],[-53.616205,67.71535],[-53.61636,67.766613],[-53.57799,67.836816],[-53.352914,67.970528],[-53.211372,68.116928],[-53.151582,68.207775],[-53.040969,68.217904],[-52.889841,68.204545],[-52.43607,68.14566],[-52.058522,68.075483],[-51.779986,68.056725],[-51.596871,68.054761],[-51.518374,68.077137],[-51.456492,68.116075],[-51.432669,68.143024],[-51.414686,68.198215],[-51.393705,68.217749],[-51.33252,68.24183],[-51.207282,68.325546],[-51.169119,68.385206],[-51.210176,68.419907],[-51.293427,68.416341],[-51.456104,68.3935],[-51.478015,68.383992],[-51.475044,68.365388],[-51.632398,68.273068],[-51.804016,68.251803],[-52.198565,68.220797],[-52.378503,68.218627],[-52.69838,68.261518],[-52.746801,68.278365],[-52.780029,68.309888],[-53.172511,68.302756],[-53.289817,68.293248],[-53.38317,68.297382],[-53.337385,68.352159],[-53.21331,68.412982],[-53.039444,68.610903],[-52.89382,68.661546],[-52.604613,68.708726],[-52.302797,68.70113],[-51.780658,68.548193],[-51.623148,68.534835],[-51.478687,68.547186],[-51.133307,68.598449],[-51.069952,68.619171],[-50.945696,68.682681],[-50.80064,68.791254],[-50.80772,68.816988],[-51.030213,68.756294],[-51.148888,68.739939],[-51.249399,68.739939],[-51.156045,68.938428],[-51.119717,69.090512],[-51.084835,69.128261],[-50.792269,69.116867],[-50.392655,69.137382],[-50.297389,69.17061],[-50.298888,69.185338],[-50.459369,69.205518],[-50.5366,69.247867],[-50.671036,69.234482],[-50.851051,69.206267],[-51.076928,69.209471],[-51.057808,69.27479],[-50.892237,69.411784],[-50.875184,69.474209],[-50.810588,69.599008],[-50.804077,69.663035],[-50.720258,69.725331],[-50.459085,69.769721],[-50.349479,69.796257],[-50.343433,69.825247],[-50.499987,69.935783],[-50.460274,69.966324],[-50.33749,69.994126],[-50.291705,70.014435],[-50.322969,70.027173],[-50.436089,70.039343],[-50.609851,70.014951],[-50.80232,70.003221],[-50.972723,70.039885],[-51.105712,70.05743],[-51.189945,70.0519],[-51.418846,69.989217],[-51.499073,69.98715],[-51.598085,70.004565],[-52.254634,70.058928],[-52.336025,70.0781],[-52.571256,70.1721],[-52.765068,70.234137],[-53.023037,70.301885],[-53.357513,70.353329],[-53.768521,70.38852],[-54.014424,70.421671],[-54.135631,70.468386],[-54.343292,70.571197],[-54.501164,70.656876],[-54.530775,70.699251],[-54.438015,70.751599],[-54.343551,70.789219],[-54.165836,70.820122],[-53.859162,70.80989],[-53.694443,70.796092],[-53.513059,70.766585],[-53.376013,70.761056],[-53.091327,70.769376],[-52.801965,70.750565],[-52.630425,70.729921],[-52.405219,70.686745],[-51.78381,70.503242],[-51.524446,70.439473],[-51.411688,70.431774],[-50.946859,70.363612],[-50.872393,70.364904],[-50.682121,70.396892],[-50.663259,70.417563],[-50.727544,70.437975],[-50.932674,70.453839],[-51.173331,70.52908],[-51.322857,70.588767],[-51.339884,70.687546],[-51.320428,70.742866],[-51.282833,70.768032],[-51.256607,70.852704],[-51.396082,70.903011],[-51.493544,70.918876],[-51.752675,70.992256],[-51.774328,71.010446],[-51.650123,71.019025],[-51.528425,71.014012],[-51.267098,70.976857],[-51.130104,70.971741],[-51.03042,70.986262],[-51.018922,71.0013],[-51.177801,71.043442],[-51.376652,71.119018],[-51.791924,71.130129],[-52.061365,71.121654],[-52.233602,71.147544],[-52.416873,71.189712],[-52.534566,71.200461],[-52.775016,71.174002],[-52.896688,71.170695],[-53.007586,71.179997],[-53.117037,71.312908],[-53.087865,71.352751],[-53.002108,71.369959],[-52.937306,71.412851],[-52.891831,71.45768],[-52.749436,71.501527],[-51.967262,71.599144],[-51.769909,71.67175],[-51.778591,71.682912],[-51.911735,71.669424],[-52.081906,71.636713],[-52.195775,71.629995],[-52.656289,71.672266],[-52.728068,71.662655],[-52.914568,71.601883],[-53.167524,71.535944],[-53.284081,71.539923],[-53.440092,71.57899],[-53.464845,71.606792],[-53.476033,71.640175],[-53.304751,71.685909],[-53.249716,71.710145],[-53.138896,71.775206],[-53.144528,71.8074],[-53.333664,71.789753],[-53.35834,71.819648],[-53.355265,71.870911],[-53.373636,71.935764],[-53.420093,71.99974],[-53.575406,72.098028],[-53.639795,72.123324],[-53.692893,72.159678],[-53.809888,72.29259],[-53.775989,72.325818],[-53.672016,72.351036],[-53.652172,72.362663],[-53.900529,72.341735],[-53.927736,72.318816],[-53.880892,72.284968],[-53.847457,72.239829],[-53.82751,72.18345],[-53.792887,72.134099],[-53.702918,72.080019],[-53.630984,72.05152],[-53.513653,71.976279],[-53.462519,71.893545],[-53.477583,71.849956],[-53.568637,71.805566],[-53.715424,71.757687],[-53.759891,71.718],[-53.779658,71.678519],[-53.894095,71.64201],[-53.964349,71.655678],[-54.019901,71.657849],[-53.954272,71.592685],[-53.912053,71.525919],[-53.963006,71.458998],[-54.098915,71.418483],[-54.172709,71.417295],[-54.317738,71.384454],[-54.689034,71.367246],[-54.818302,71.375282],[-55.055394,71.408613],[-55.33641,71.426752],[-55.447902,71.471762],[-55.594017,71.553514],[-55.667811,71.626739],[-55.669335,71.69149],[-55.629803,71.738645],[-55.549239,71.768281],[-55.452424,71.957675],[-55.315584,72.110689],[-54.970903,72.268406],[-54.872614,72.325456],[-54.84011,72.356101],[-54.840601,72.379407],[-54.896334,72.394212],[-55.320132,72.199573],[-55.581434,72.17885],[-55.659491,72.22262],[-55.635823,72.300419],[-55.589289,72.318506],[-55.377932,72.311142],[-55.295715,72.354395],[-55.427981,72.419869],[-55.568747,72.437026],[-55.601717,72.453485],[-55.45679,72.503249],[-55.12185,72.499606],[-55.046247,72.534436],[-54.924936,72.571953],[-54.790397,72.641613],[-54.740012,72.700214],[-54.728695,72.750495],[-54.757737,72.791061],[-54.760838,72.83173],[-54.737945,72.872503],[-54.773085,72.917565],[-54.866232,72.966864],[-55.073093,73.01513],[-55.133993,72.960637],[-55.198434,72.938236],[-55.288919,72.933223],[-55.372403,72.956167],[-55.459503,72.964384],[-55.545131,72.984899],[-55.634015,72.991411],[-55.66856,73.007895],[-55.690833,73.054094],[-55.692771,73.11285],[-55.592312,73.14029],[-55.45232,73.161891],[-55.358708,73.202922],[-55.297162,73.262298],[-55.288273,73.327101],[-55.332043,73.397381],[-55.445732,73.460503],[-55.65621,73.399086],[-55.738866,73.383996],[-55.757935,73.427947],[-55.787054,73.460503],[-55.87555,73.504661],[-55.991977,73.536804],[-56.104063,73.558172],[-56.109154,73.590754],[-56.082644,73.627496],[-56.033008,73.67031],[-55.968413,73.759581],[-55.897332,73.751597],[-55.838292,73.759736],[-55.872398,73.833426],[-55.9295,73.895386],[-55.996551,73.93063],[-55.998928,73.945926],[-56.014457,73.963858],[-56.06621,74.007266],[-56.124243,74.039047],[-56.2254,74.129119],[-56.29847,74.163432],[-56.392211,74.181209],[-56.493135,74.182191],[-56.655193,74.158523],[-56.954296,74.131186],[-57.191129,74.118215],[-57.230558,74.125295],[-57.112116,74.159453],[-56.937501,74.195058],[-56.706352,74.219191],[-56.638966,74.278386],[-56.6639,74.329572],[-56.654314,74.378148],[-56.717695,74.429256],[-56.656019,74.457574],[-56.445541,74.4861],[-56.350302,74.490492],[-56.25545,74.526821],[-56.522048,74.614309],[-56.801334,74.67167],[-56.871148,74.694976],[-56.932566,74.733346],[-56.985534,74.786753],[-57.071653,74.840213],[-57.190871,74.893775],[-57.364788,74.945452],[-57.813184,75.039968],[-57.967102,75.105158],[-58.108825,75.204919],[-58.179673,75.247449],[-58.253312,75.278971],[-58.565515,75.352739],[-58.603472,75.385296],[-58.281192,75.472086],[-58.249669,75.506709],[-58.381315,75.612026],[-58.516216,75.689075],[-58.66308,75.716412],[-58.881465,75.730468],[-59.081608,75.764678],[-59.263612,75.818887],[-59.445307,75.858574],[-59.717435,75.896298],[-60.172782,75.993295],[-60.874625,76.09719],[-61.188249,76.157884],[-61.374827,76.180002],[-61.620859,76.185634],[-62.096669,76.242323],[-62.49618,76.260462],[-62.742883,76.252142],[-62.823447,76.261547],[-63.005813,76.319089],[-63.291299,76.352058],[-63.438861,76.339475],[-63.622003,76.277877],[-63.843074,76.217157],[-63.96038,76.20894],[-64.135201,76.264492],[-64.223206,76.303302],[-64.307284,76.316505],[-64.38733,76.304025],[-64.543419,76.253072],[-64.692066,76.216253],[-64.91195,76.172508],[-65.08765,76.151528],[-65.313217,76.146412],[-65.369906,76.130547],[-65.456774,76.129824],[-65.573718,76.144241],[-65.683298,76.172715],[-65.785462,76.215348],[-65.875715,76.238318],[-65.954057,76.241677],[-66.134046,76.219637],[-66.361784,76.154783],[-66.465757,76.139177],[-66.553245,76.145947],[-66.659957,76.166152],[-66.874052,76.21788],[-66.992598,76.212919],[-67.078691,76.194833],[-67.05479,76.151838],[-66.853924,76.049984],[-66.674814,75.977378],[-66.8262,75.9688],[-68.148703,76.067037],[-68.317271,76.090756],[-68.560616,76.150184],[-68.763058,76.186642],[-69.107559,76.280874],[-69.372892,76.331879],[-69.460871,76.371747],[-69.484074,76.399187],[-69.39966,76.436265],[-68.86499,76.561374],[-68.660713,76.586618],[-68.24539,76.616771],[-68.147204,76.635633],[-68.114286,76.650645],[-68.223375,76.677697],[-68.767399,76.668034],[-69.252072,76.686121],[-69.67383,76.735885],[-69.74721,76.75237],[-69.818627,76.782781],[-69.88808,76.827068],[-69.872215,76.8766],[-69.771033,76.931429],[-69.711734,76.969049],[-69.694268,76.989435],[-70.224468,76.854586],[-70.441328,76.807353],[-70.613152,76.821823],[-70.733661,76.844199],[-70.792831,76.869081],[-70.790635,76.896495],[-70.77123,76.916494],[-70.734643,76.929],[-71.015065,76.984862],[-71.14144,77.028684],[-71.154876,77.0739],[-71.055451,77.120513],[-70.958092,77.154361],[-70.862853,77.175445],[-70.603695,77.193841],[-69.65657,77.228981],[-68.978316,77.195288],[-68.747478,77.306935],[-68.591596,77.342515],[-68.135525,77.379567],[-67.43376,77.384683],[-66.937976,77.364219],[-66.705768,77.338019],[-66.389431,77.280296],[-66.371292,77.297685],[-66.44767,77.349801],[-66.45307,77.393054],[-66.325274,77.468192],[-66.266441,77.515372],[-66.306438,77.564517],[-66.445344,77.61565],[-66.691195,77.681202],[-66.823564,77.686628],[-66.970661,77.670867],[-67.147369,77.634538],[-67.514659,77.542942],[-67.688059,77.52377],[-67.977344,77.518886],[-68.137282,77.530462],[-68.291898,77.544208],[-68.533512,77.592784],[-68.621516,77.601879],[-68.728228,77.580588],[-68.853673,77.52886],[-68.974544,77.492635],[-69.090894,77.471912],[-69.199647,77.462921],[-69.351394,77.467158],[-69.976757,77.54767],[-70.118169,77.583482],[-70.12636,77.637794],[-70.318312,77.6904],[-70.535405,77.699547],[-70.561915,77.717169],[-70.286609,77.798249],[-70.081505,77.831399],[-70.114423,77.841373],[-70.412389,77.843104],[-70.61354,77.800006],[-70.728726,77.79272],[-70.993594,77.791531],[-71.271613,77.813132],[-71.389849,77.832045],[-71.512374,77.875402],[-71.64991,77.899793],[-72.064924,77.936794],[-72.158536,77.956947],[-72.24729,77.990434],[-72.586313,78.085208],[-72.79152,78.154868],[-72.818082,78.194349],[-72.581301,78.279098],[-72.570965,78.298735],[-72.672458,78.335322],[-72.714781,78.362297],[-72.679718,78.399556],[-72.472522,78.482032],[-72.395576,78.504356],[-72.023686,78.552777],[-71.651306,78.62316],[-71.515629,78.638973],[-71.394758,78.642642],[-70.90577,78.638456],[-70.754074,78.655819],[-70.625399,78.690133],[-70.414198,78.724885],[-69.973553,78.777672],[-68.993483,78.857409],[-68.929637,78.866814],[-68.923953,78.88193],[-69.011958,78.923038],[-69.03051,78.942882],[-68.82985,78.979727],[-68.377061,79.037863],[-68.067519,79.06582],[-67.868332,79.067887],[-67.707748,79.080367],[-67.482232,79.116877],[-67.35454,79.123336],[-66.583734,79.137676],[-66.242747,79.117807],[-66.075341,79.11822],[-65.967854,79.132379],[-65.825537,79.173721],[-65.559765,79.276453],[-65.419877,79.340248],[-65.287792,79.437322],[-65.11695,79.588992],[-64.989232,79.736942],[-64.904637,79.881274],[-64.838983,79.969176],[-64.792267,80.000647],[-64.632406,80.040567],[-64.465724,80.071702],[-64.179152,80.099246],[-64.2053,80.112113],[-64.326792,80.13361],[-64.439911,80.141853],[-64.544608,80.136918],[-64.735268,80.104465],[-64.98223,80.082451],[-65.222112,80.085913],[-65.394892,80.077748],[-65.553409,80.047982],[-65.810448,80.024056],[-65.98191,80.029482],[-66.291478,80.07227],[-66.447696,80.08028],[-66.843666,80.076198],[-66.959499,80.092062],[-67.060656,80.12312],[-67.141297,80.166477],[-67.201448,80.222184],[-67.193154,80.280061],[-67.05063,80.384525],[-66.995905,80.412999],[-66.610089,80.529607],[-66.3723,80.584177],[-66.135699,80.625002],[-65.963307,80.648979],[-65.800991,80.659728],[-65.645187,80.68505],[-65.358201,80.766517],[-65.062173,80.836306],[-64.693798,80.966014],[-64.51554,81.000017],[-63.891547,81.056448],[-63.721996,81.057327],[-63.578026,81.043271],[-63.441729,81.013867],[-63.0586,80.885606],[-63.028654,80.889533],[-63.095471,80.938109],[-63.235204,81.083371],[-63.212518,81.143135],[-62.993255,81.206982],[-62.903364,81.21835],[-62.671931,81.214113],[-62.298879,81.194372],[-62.049385,81.172772],[-61.860353,81.13758],[-61.635612,81.115721],[-61.519108,81.116806],[-61.435986,81.133601],[-61.316975,81.188481],[-61.162049,81.281499],[-61.099986,81.396117],[-61.130733,81.532336],[-61.17595,81.631865],[-61.235688,81.6946],[-61.202925,81.746871],[-61.015056,81.80958],[-60.842844,81.855392],[-60.432378,81.920142],[-60.099453,81.937376],[-59.90192,81.93301],[-59.642297,81.90265],[-59.281932,81.88402],[-58.956783,81.825187],[-58.429787,81.690053],[-58.079938,81.622227],[-57.790317,81.591764],[-57.504857,81.539881],[-57.082867,81.429914],[-56.862053,81.382733],[-56.730692,81.365628],[-56.615143,81.362915],[-56.658138,81.394309],[-56.859676,81.459938],[-57.168391,81.532181],[-57.853052,81.661992],[-58.230084,81.753666],[-58.568202,81.858208],[-58.816766,81.920426],[-59.268005,81.982076],[-59.261804,82.006623],[-58.717367,82.093077],[-57.716885,82.168318],[-56.589383,82.227126],[-56.211964,82.221131],[-55.548671,82.245729],[-55.48622,82.282885],[-55.343619,82.299576],[-54.725905,82.351356],[-54.548861,82.350633],[-54.277043,82.326086],[-53.987319,82.279267],[-53.853245,82.236867],[-53.671344,82.164081],[-53.582047,82.061581],[-53.595534,81.73806],[-53.590754,81.676875],[-53.555692,81.653259],[-53.430118,81.688399],[-53.279998,81.753615],[-53.145019,81.799762],[-53.041201,81.870972],[-52.968518,81.967142],[-52.925549,82.038404],[-53.101947,82.118941],[-53.110758,82.251233],[-53.022572,82.321746],[-52.77561,82.321746],[-51.753993,82.078246],[-51.351847,82.02564],[-50.894459,81.895208],[-50.360073,81.909058],[-49.867028,81.893038],[-49.648824,81.897792],[-49.541079,81.918049],[-49.694274,81.972103],[-50.394851,82.120724],[-50.713126,82.237358],[-50.935542,82.382827],[-50.989931,82.460135],[-50.819554,82.474088],[-50.037121,82.472434],[-48.861198,82.405435],[-47.357414,82.173641],[-46.61733,82.096953],[-45.29108,81.828804],[-44.890949,81.78829],[-44.729486,81.779815],[-44.607608,81.812939],[-44.532444,81.848906],[-44.526889,81.89681],[-44.591019,81.956677],[-44.627736,82.025898],[-44.637089,82.104446],[-44.547069,82.260044],[-44.333206,82.31079],[-44.23887,82.368151],[-44.326591,82.471711],[-44.577222,82.542611],[-45.552459,82.725235],[-45.556568,82.747017],[-45.359603,82.770969],[-45.067424,82.784973],[-42.65075,82.741461],[-42.232972,82.725493],[-42.054637,82.709836],[-41.976554,82.689165],[-41.876456,82.680328],[-41.357263,82.704978],[-41.369614,82.749988],[-41.434416,82.778617],[-44.239206,82.856803],[-44.761965,82.883546],[-45.027918,82.885587],[-45.302992,82.865072],[-45.873318,82.854891],[-46.136817,82.858819],[-46.478165,82.951888],[-46.169063,83.063871],[-45.908898,83.061339],[-45.414613,83.017672],[-45.121762,83.07865],[-44.656959,83.129061],[-44.197297,83.146811],[-43.194567,83.255125],[-43.009307,83.264582],[-42.775549,83.258794],[-42.259534,83.231974],[-42.054585,83.205154],[-41.819767,83.147767],[-41.683497,83.130017],[-41.521956,83.126761],[-41.300161,83.100768],[-40.979379,83.184871],[-40.689475,83.275176],[-40.356808,83.332201],[-39.88632,83.298921],[-39.588431,83.25559],[-39.316044,83.203914],[-38.931107,83.175337],[-38.278382,82.998862],[-38.15627,82.998655],[-38.098599,83.01359],[-38.037001,83.046275],[-38.014883,83.094825],[-37.934785,83.160764],[-37.992792,83.185104],[-38.539554,83.258174],[-38.642933,83.286286],[-38.74781,83.332588],[-38.749567,83.370829],[-38.648256,83.401008],[-38.54144,83.414805],[-38.187922,83.4023],[-38.071107,83.412118],[-37.96083,83.437646],[-37.828021,83.48555],[-37.723325,83.497746],[-37.486931,83.499141],[-37.123,83.468394],[-36.804492,83.46581],[-36.68959,83.479944],[-36.672123,83.509916],[-36.644424,83.528959],[-36.606494,83.536968],[-35.451862,83.538622],[-35.165548,83.545753],[-34.941634,83.568439],[-34.667801,83.571127],[-34.428332,83.557587],[-34.131916,83.528649],[-33.837361,83.529992],[-33.398318,83.577224],[-32.984415,83.5996],[-30.702927,83.593399],[-29.952869,83.564822]]]]},"type":"Feature","properties":{"ISO_A2":"GL","NAME":"Greenland"}},{"geometry":{"type":"Polygon","coordinates":[[[-89.161477,17.81483],[-89.171089,17.572287],[-89.182174,17.291193],[-89.190364,17.084694],[-89.201268,16.809],[-89.21243,16.527131],[-89.227649,16.142839],[-89.237493,15.894431],[-89.232817,15.888695],[-89.113599,15.900658],[-88.937176,15.889831],[-88.894052,15.890607],[-88.839972,15.86898],[-88.798347,15.862495],[-88.708637,15.806529],[-88.603372,15.76418],[-88.536244,15.849627],[-88.571591,15.901097],[-88.597997,15.927349],[-88.593967,15.950267],[-88.22833,15.729014],[-88.271428,15.694882],[-88.364549,15.616024],[-88.533299,15.4812],[-88.684478,15.360484],[-88.829947,15.251007],[-88.960999,15.15246],[-88.976424,15.142694],[-89.142589,15.07231],[-89.17034,15.039909],[-89.2061,14.90059],[-89.222378,14.86607],[-89.192225,14.78871],[-89.162201,14.66926],[-89.171787,14.606887],[-89.286715,14.529966],[-89.339425,14.460746],[-89.362602,14.415994],[-89.383247,14.427621],[-89.418826,14.431083],[-89.500862,14.413772],[-89.54055,14.409922],[-89.573623,14.390078],[-89.57693,14.347083],[-89.555019,14.277268],[-89.547164,14.24125],[-89.570264,14.224662],[-89.671265,14.182701],[-89.711134,14.141334],[-89.749348,14.077022],[-89.793713,14.050125],[-89.839963,14.05506],[-89.8727,14.045603],[-89.942696,13.997363],[-90.048167,13.904061],[-90.104753,13.834763],[-90.10589,13.783035],[-90.095193,13.736526],[-90.479123,13.900909],[-90.606919,13.929021],[-91.146059,13.925559],[-91.377337,13.990206],[-91.640912,14.114953],[-91.819093,14.228227],[-92.23514,14.545392],[-92.209043,14.571023],[-92.187055,14.630089],[-92.159925,14.691042],[-92.176461,14.761322],[-92.186383,14.818372],[-92.155661,14.901313],[-92.158555,14.963557],[-92.144215,15.001927],[-92.09874,15.026732],[-92.074788,15.074222],[-92.204341,15.237675],[-92.204263,15.275011],[-92.187158,15.3209],[-92.082152,15.495566],[-91.95725,15.703228],[-91.819429,15.932361],[-91.736591,16.070182],[-91.433974,16.070441],[-91.23378,16.070647],[-90.979583,16.070828],[-90.703244,16.071061],[-90.521988,16.071216],[-90.447161,16.072689],[-90.459873,16.162373],[-90.450132,16.261385],[-90.416982,16.351302],[-90.416982,16.390989],[-90.471087,16.439565],[-90.575784,16.467832],[-90.634075,16.510724],[-90.634385,16.565139],[-90.659965,16.630923],[-90.710711,16.708128],[-90.816027,16.787089],[-90.975811,16.867808],[-91.111875,16.976199],[-91.224168,17.112263],[-91.319201,17.199777],[-91.392323,17.236416],[-91.409635,17.255872],[-91.195513,17.254089],[-90.992967,17.252436],[-90.991624,17.447462],[-90.990435,17.620734],[-90.989143,17.816432],[-90.622034,17.816122],[-90.183585,17.815709],[-89.728833,17.815347],[-89.371542,17.815011],[-89.161477,17.81483]]]},"type":"Feature","properties":{"ISO_A2":"GT","NAME":"Guatemala"}},{"geometry":{"type":"Polygon","coordinates":[[[144.741791,13.259294],[144.699519,13.257537],[144.662829,13.29105],[144.650013,13.313503],[144.64929,13.42869],[144.790367,13.526875],[144.836669,13.622373],[144.875426,13.614621],[144.909636,13.599015],[144.940848,13.570335],[144.779928,13.41112],[144.741791,13.259294]]]},"type":"Feature","properties":{"ISO_A2":"GU","NAME":"Guam"}},{"geometry":{"type":"Polygon","coordinates":[[[-57.194772,5.548447],[-57.247895,5.485273],[-57.257507,5.445146],[-57.291872,5.373962],[-57.318563,5.335334],[-57.279625,5.24676],[-57.235312,5.242884],[-57.21844,5.231541],[-57.207329,5.214204],[-57.20981,5.195394],[-57.226863,5.178496],[-57.26929,5.157024],[-57.309597,5.105864],[-57.305773,5.049563],[-57.330991,5.020185],[-57.412175,5.004604],[-57.570925,5.004475],[-57.648853,5.000677],[-57.711097,4.991065],[-57.751999,4.954478],[-57.804115,4.929053],[-57.844913,4.923059],[-57.881087,4.880633],[-57.917054,4.820404],[-57.904858,4.779295],[-57.867883,4.724311],[-57.845973,4.668191],[-57.874731,4.577085],[-57.906253,4.506805],[-57.924702,4.453114],[-57.949765,4.349942],[-58.010743,4.23646],[-58.054513,4.171942],[-58.054306,4.101662],[-58.03224,4.001927],[-57.9077,3.85669],[-57.866566,3.787263],[-57.832666,3.675952],[-57.720373,3.588308],[-57.649473,3.517408],[-57.656113,3.423719],[-57.646734,3.394522],[-57.602758,3.370957],[-57.549634,3.352819],[-57.490594,3.354318],[-57.43791,3.362276],[-57.425611,3.375453],[-57.303654,3.377107],[-57.28996,3.353594],[-57.28288,3.218874],[-57.277919,3.164303],[-57.248981,3.142263],[-57.231617,3.108906],[-57.230558,3.078572],[-57.225003,3.003073],[-57.206916,2.963385],[-57.20981,2.882822],[-57.197382,2.853263],[-57.163611,2.833264],[-57.121133,2.775541],[-57.105113,2.768255],[-57.096897,2.747843],[-57.060439,2.665677],[-57.041939,2.641131],[-57.028942,2.637488],[-57.023491,2.608988],[-56.99711,2.532197],[-56.979307,2.513232],[-56.945227,2.456827],[-56.931481,2.395358],[-56.886419,2.325957],[-56.84053,2.277122],[-56.819808,2.226634],[-56.761155,2.11491],[-56.704363,2.036491],[-56.627184,2.016001],[-56.562718,2.005098],[-56.522358,1.974815],[-56.4828,1.94213],[-56.525511,1.927273],[-56.563544,1.907248],[-56.616461,1.922674],[-56.689816,1.914302],[-56.766245,1.892185],[-56.836732,1.881229],[-56.96954,1.916395],[-57.010029,1.921253],[-57.037598,1.936471],[-57.092685,2.005821],[-57.118911,2.01396],[-57.189604,1.981611],[-57.275568,1.959235],[-57.317504,1.963472],[-57.366777,1.94014],[-57.412717,1.908928],[-57.500438,1.77382],[-57.545758,1.726071],[-57.594412,1.704108],[-57.691744,1.704806],[-57.795666,1.700026],[-57.873413,1.667263],[-57.946354,1.650597],[-57.982838,1.648427],[-57.995137,1.574323],[-58.011776,1.539958],[-58.034669,1.520243],[-58.091332,1.514378],[-58.142234,1.516988],[-58.173084,1.547864],[-58.230419,1.56329],[-58.28114,1.574323],[-58.314213,1.591944],[-58.340671,1.587552],[-58.362711,1.556675],[-58.380359,1.530217],[-58.395784,1.481719],[-58.472963,1.466267],[-58.506062,1.438646],[-58.486864,1.347773],[-58.495675,1.312272],[-58.511875,1.284676],[-58.605074,1.279147],[-58.684604,1.281059],[-58.730337,1.247521],[-58.787233,1.208505],[-58.821753,1.201219],[-58.862526,1.203596],[-58.916631,1.248865],[-58.968514,1.304572],[-59.100392,1.343665],[-59.231185,1.376015],[-59.316968,1.464614],[-59.337251,1.508177],[-59.377688,1.527349],[-59.479439,1.632407],[-59.535689,1.7],[-59.596615,1.718035],[-59.666611,1.746302],[-59.663769,1.79524],[-59.668523,1.842343],[-59.698547,1.861463],[-59.740741,1.874175],[-59.756192,1.900634],[-59.751774,1.962387],[-59.743505,2.121628],[-59.75521,2.274125],[-59.849132,2.327042],[-59.889646,2.362957],[-59.960779,2.588369],[-59.994317,2.689991],[-59.995919,2.765413],[-59.972303,2.990464],[-59.945664,3.087822],[-59.873032,3.283082],[-59.831149,3.349227],[-59.828823,3.398578],[-59.833061,3.46214],[-59.854403,3.587482],[-59.73162,3.666547],[-59.679013,3.6998],[-59.670202,3.752717],[-59.604444,3.819664],[-59.575402,3.883458],[-59.55114,3.933533],[-59.557754,3.959991],[-59.586409,3.975417],[-59.620205,4.023166],[-59.691209,4.160392],[-59.716892,4.188168],[-59.738544,4.226771],[-59.727486,4.287646],[-59.69971,4.353533],[-59.703275,4.381102],[-59.745805,4.416656],[-59.833345,4.475929],[-59.906105,4.480321],[-59.962355,4.501689],[-60.045012,4.504583],[-60.111157,4.511198],[-60.148649,4.533238],[-60.140923,4.569644],[-60.124567,4.597652],[-60.068964,4.666666],[-60.031782,4.740512],[-60.026744,4.812704],[-60.015478,4.907504],[-59.999381,4.989851],[-59.990674,5.082843],[-60.078084,5.144002],[-60.105964,5.194231],[-60.142034,5.238802],[-60.181722,5.238802],[-60.241666,5.257974],[-60.335201,5.199295],[-60.408814,5.210147],[-60.459534,5.188082],[-60.5764,5.1925],[-60.651357,5.221154],[-60.742127,5.202034],[-60.953974,5.437395],[-61.167217,5.674202],[-61.376791,5.906978],[-61.390795,5.938759],[-61.303126,6.049502],[-61.224965,6.129187],[-61.159491,6.174404],[-61.128692,6.214298],[-61.152308,6.385114],[-61.151016,6.446532],[-61.181609,6.513401],[-61.203597,6.588384],[-61.177216,6.650912],[-61.145616,6.694553],[-61.104766,6.711374],[-61.007098,6.726618],[-60.938006,6.732768],[-60.913563,6.757831],[-60.873359,6.786925],[-60.820856,6.788475],[-60.717916,6.768321],[-60.671046,6.805967],[-60.58609,6.857101],[-60.395042,6.945364],[-60.352099,7.00288],[-60.322049,7.092022],[-60.325485,7.133983],[-60.345071,7.150003],[-60.392406,7.164524],[-60.464934,7.16654],[-60.523199,7.143699],[-60.583222,7.156204],[-60.633322,7.211085],[-60.636164,7.256612],[-60.606554,7.320845],[-60.62371,7.363323],[-60.719208,7.498664],[-60.71864,7.535923],[-60.649445,7.596643],[-60.610093,7.648319],[-60.556376,7.772032],[-60.513639,7.813167],[-60.380598,7.82761],[-60.346802,7.853991],[-60.278925,7.919414],[-60.178156,7.99406],[-60.032403,8.053566],[-59.990725,8.162009],[-59.964861,8.191593],[-59.84908,8.248696],[-59.828927,8.279133],[-59.83164,8.305953],[-60.01752,8.549298],[-59.980623,8.532606],[-59.836523,8.373804],[-59.756709,8.339517],[-59.739966,8.338742],[-59.739294,8.380006],[-59.66612,8.362591],[-59.476907,8.254018],[-59.200257,8.074598],[-58.811573,7.7356],[-58.701063,7.606642],[-58.626597,7.545896],[-58.511074,7.39805],[-58.477304,7.325806],[-58.480585,7.038124],[-58.58293,6.843665],[-58.60789,6.697318],[-58.613471,6.502549],[-58.672951,6.390773],[-58.593989,6.451493],[-58.569494,6.627244],[-58.502289,6.734008],[-58.414982,6.851184],[-58.298452,6.87927],[-58.172878,6.829403],[-58.071799,6.820618],[-57.982579,6.785891],[-57.792875,6.598512],[-57.607563,6.450408],[-57.540152,6.331552],[-57.343678,6.272124],[-57.227509,6.178435],[-57.19025,6.097303],[-57.167254,5.885016],[-57.205288,5.564596],[-57.194772,5.548447]]]},"type":"Feature","properties":{"ISO_A2":"GY","NAME":"Guyana"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[114.232025,22.210531],[114.20722,22.195183],[114.138801,22.268383],[114.13446,22.292231],[114.187377,22.296624],[114.246908,22.263551],[114.243601,22.233527],[114.232025,22.210531]]],[[[113.997724,22.210479],[113.877318,22.210453],[113.851583,22.220453],[113.838871,22.241692],[113.881556,22.280294],[114.043923,22.333417],[114.003305,22.277555],[113.997724,22.210479]]],[[[114.335275,22.39623],[114.290523,22.373777],[114.287836,22.325304],[114.267992,22.295539],[114.139008,22.348455],[114.032864,22.375895],[113.937263,22.364992],[113.902536,22.396101],[113.896438,22.428166],[114.006716,22.484054],[114.015398,22.511908],[114.018291,22.51444],[114.050331,22.542991],[114.097873,22.551259],[114.122885,22.565005],[114.188204,22.565005],[114.228201,22.553947],[114.266028,22.540976],[114.269646,22.536764],[114.291143,22.499454],[114.284528,22.457596],[114.325249,22.437416],[114.335275,22.39623]]]]},"type":"Feature","properties":{"ISO_A2":"HK","NAME":"Hong Kong"}},{"geometry":{"type":"Polygon","coordinates":[[[73.70747,-53.137066],[73.587994,-53.184609],[73.465108,-53.184195],[73.413225,-53.146782],[73.33633,-53.029889],[73.285481,-53.021518],[73.253855,-52.989323],[73.251167,-52.975836],[73.305324,-52.966327],[73.38811,-52.999917],[73.585721,-53.027099],[73.731241,-53.091178],[73.837798,-53.112778],[73.795114,-53.129883],[73.70747,-53.137066]]]},"type":"Feature","properties":{"ISO_A2":"HM","NAME":"Heard I. and McDonald Is."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-85.783957,16.002848],[-85.483691,15.899495],[-85.163659,15.91815],[-85.04824,15.973961],[-84.973723,15.989877],[-84.646094,15.883579],[-84.559665,15.801982],[-84.492305,15.79392],[-84.44006,15.812575],[-84.426004,15.829473],[-84.490367,15.84725],[-84.519616,15.872778],[-84.261415,15.8226],[-83.775475,15.436862],[-83.765295,15.405442],[-83.972802,15.519621],[-84.082743,15.510888],[-84.11132,15.49244],[-84.105171,15.430118],[-84.095068,15.400947],[-84.047965,15.397588],[-84.013187,15.414408],[-83.92743,15.394048],[-83.870637,15.352758],[-83.801649,15.289248],[-83.760463,15.220363],[-83.715918,15.219226],[-83.672174,15.260723],[-83.589673,15.265761],[-83.535929,15.219381],[-83.497947,15.22212],[-83.55107,15.294002],[-83.676127,15.365419],[-83.646387,15.368416],[-83.369195,15.24],[-83.290879,15.078925],[-83.225586,15.042286],[-83.157528,14.993064],[-83.415032,15.008051],[-83.536523,14.977019],[-83.58975,14.907566],[-83.635484,14.876431],[-83.673647,14.883562],[-83.750929,14.856251],[-83.867304,14.794498],[-83.972259,14.771088],[-84.065793,14.786075],[-84.092949,14.770907],[-84.100313,14.750624],[-84.114421,14.731013],[-84.150801,14.72042],[-84.192401,14.726027],[-84.23922,14.747834],[-84.263973,14.738532],[-84.26666,14.698121],[-84.291929,14.687373],[-84.339782,14.706338],[-84.393655,14.691765],[-84.453548,14.64368],[-84.537651,14.633422],[-84.645965,14.661069],[-84.72981,14.713366],[-84.789186,14.790364],[-84.860448,14.809742],[-84.985143,14.752433],[-85.037336,14.685564],[-85.048653,14.644739],[-85.036509,14.607662],[-85.059402,14.58296],[-85.117305,14.570584],[-85.161334,14.52516],[-85.191513,14.446612],[-85.197559,14.385996],[-85.179472,14.343311],[-85.208334,14.31184],[-85.284195,14.291634],[-85.373776,14.223887],[-85.477077,14.1087],[-85.57981,14.02824],[-85.681922,13.982558],[-85.731221,13.931863],[-85.727707,13.876053],[-85.733934,13.858689],[-85.753442,13.852049],[-85.786696,13.844452],[-85.983764,13.965685],[-86.040376,14.05015],[-86.089236,14.037231],[-86.151222,13.994598],[-86.238219,13.899462],[-86.331753,13.770064],[-86.376944,13.755646],[-86.610238,13.77487],[-86.733641,13.76345],[-86.758962,13.746138],[-86.77059,13.698751],[-86.76351,13.63524],[-86.729584,13.407244],[-86.710697,13.313374],[-86.7293,13.284357],[-86.792139,13.279784],[-86.873555,13.266477],[-86.918229,13.223586],[-86.928797,13.179403],[-86.933164,13.117546],[-86.958898,13.053725],[-87.009309,13.007837],[-87.059177,12.991455],[-87.337273,12.97926],[-87.332545,13.084731],[-87.412773,13.127468],[-87.458455,13.215421],[-87.498375,13.274926],[-87.485145,13.310609],[-87.489125,13.352906],[-87.60227,13.385592],[-87.708362,13.360063],[-87.769366,13.376652],[-87.814221,13.399157],[-87.737016,13.451376],[-87.731668,13.483079],[-87.756473,13.505998],[-87.781897,13.521371],[-87.774223,13.580308],[-87.75854,13.649942],[-87.715312,13.812671],[-87.731461,13.841068],[-87.802258,13.889979],[-87.891968,13.894992],[-87.991032,13.879618],[-88.038729,13.90463],[-88.080458,13.960595],[-88.151022,13.987338],[-88.276234,13.942663],[-88.4085,13.875381],[-88.449143,13.850989],[-88.482681,13.854245],[-88.497642,13.904526],[-88.504334,13.964213],[-88.51255,13.978966],[-88.58314,14.000128],[-88.665616,14.015527],[-88.707603,14.032064],[-88.747368,14.072268],[-88.845967,14.124771],[-88.868317,14.163658],[-89.000169,14.252722],[-89.02686,14.296957],[-89.057117,14.329152],[-89.120524,14.370234],[-89.170133,14.360312],[-89.337255,14.411369],[-89.362602,14.415994],[-89.339425,14.460746],[-89.286715,14.529966],[-89.171787,14.606887],[-89.162201,14.66926],[-89.192225,14.78871],[-89.222378,14.86607],[-89.2061,14.90059],[-89.17034,15.039909],[-89.142589,15.07231],[-88.976424,15.142694],[-88.960999,15.15246],[-88.829947,15.251007],[-88.684478,15.360484],[-88.533299,15.4812],[-88.364549,15.616024],[-88.271428,15.694882],[-88.22833,15.729014],[-88.131101,15.701006],[-88.054594,15.764826],[-88.010411,15.786194],[-87.907006,15.862624],[-87.874941,15.879341],[-87.701851,15.910657],[-87.618161,15.909882],[-87.544961,15.832367],[-87.486902,15.790199],[-87.377478,15.826476],[-87.285881,15.834434],[-86.907248,15.762346],[-86.757025,15.79423],[-86.480814,15.801051],[-86.356661,15.783223],[-86.181194,15.885181],[-86.068539,15.90567],[-85.936274,15.953419],[-85.953921,16.002228],[-85.98565,16.024164],[-85.783957,16.002848]]],[[[-86.419939,16.37838],[-86.580291,16.300246],[-86.630417,16.301744],[-86.556959,16.362128],[-86.438258,16.413856],[-86.337825,16.439229],[-86.255505,16.428197],[-86.419939,16.37838]]],[[[-85.870955,16.461528],[-85.947203,16.403624],[-85.960975,16.429669],[-85.924207,16.483309],[-85.878241,16.513954],[-85.833799,16.510879],[-85.844419,16.487728],[-85.870955,16.461528]]]]},"type":"Feature","properties":{"ISO_A2":"HN","NAME":"Honduras"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.607845,42.769018],[17.744271,42.70034],[17.344192,42.79036],[17.389564,42.798628],[17.431939,42.800385],[17.607845,42.769018]]],[[[16.650695,42.996601],[16.835593,42.968644],[16.971088,42.981511],[17.093665,42.964355],[17.169836,42.932599],[17.188233,42.917045],[17.089324,42.914874],[16.977496,42.927793],[16.850682,42.895522],[16.738855,42.91273],[16.696377,42.93371],[16.666301,42.95991],[16.650695,42.996601]]],[[[17.219859,43.025901],[17.723601,42.850666],[17.667583,42.897124],[17.740241,42.915469],[17.801994,42.902239],[17.841268,42.84506],[17.918834,42.807413],[18.044511,42.741267],[18.123886,42.690573],[18.303979,42.599416],[18.346612,42.586652],[18.436374,42.559728],[18.438079,42.52296],[18.476681,42.481102],[18.517454,42.432914],[18.332969,42.52787],[18.16068,42.634013],[17.823853,42.797414],[17.585005,42.837153],[17.258203,42.968437],[17.045399,43.014894],[17.126428,43.025591],[17.219859,43.025901]]],[[[17.194021,43.125792],[17.124154,43.115405],[16.67922,43.123156],[16.549822,43.143878],[16.405852,43.197364],[16.376499,43.213745],[16.5214,43.229248],[16.655966,43.213745],[16.697307,43.174936],[17.061109,43.143878],[17.194021,43.125792]]],[[[16.78526,43.270641],[16.62744,43.268083],[16.490291,43.28617],[16.423112,43.317227],[16.428176,43.343401],[16.44895,43.387068],[16.601602,43.3819],[16.834353,43.350843],[16.8913,43.314643],[16.873627,43.297926],[16.78526,43.270641]]],[[[15.371393,43.973854],[15.437229,43.899517],[15.374183,43.914788],[15.308554,43.96078],[15.270004,44.010751],[15.371393,43.973854]]],[[[15.23104,44.062324],[15.246646,44.027055],[15.121899,44.093304],[15.074563,44.137823],[15.065778,44.157667],[15.23104,44.062324]]],[[[15.188768,43.922358],[15.203031,43.907708],[15.201687,43.897734],[15.149804,43.911816],[15.135852,43.907294],[14.891319,44.125524],[14.865067,44.16795],[14.952504,44.117204],[15.188768,43.922358]]],[[[15.188458,44.335718],[15.16262,44.309182],[15.097921,44.358145],[15.038597,44.393001],[14.996119,44.434342],[14.912816,44.485864],[14.884704,44.544723],[14.760474,44.664768],[14.741871,44.697375],[14.803779,44.648696],[14.855352,44.618259],[14.898037,44.610817],[15.006454,44.534207],[15.113011,44.435738],[15.239928,44.350213],[15.213573,44.347578],[15.188458,44.335718]]],[[[14.831477,44.758922],[14.856592,44.714842],[14.762541,44.754659],[14.678205,44.769877],[14.660325,44.799798],[14.672417,44.824344],[14.690504,44.848167],[14.75417,44.844808],[14.763781,44.821399],[14.831477,44.758922]]],[[[14.488139,44.660065],[14.480388,44.621256],[14.419513,44.670323],[14.388921,44.758302],[14.312439,44.900412],[14.302518,44.94041],[14.342205,44.979942],[14.340035,45.019991],[14.285878,45.144635],[14.33125,45.164995],[14.358225,45.167424],[14.36918,45.08097],[14.393778,45.031257],[14.467365,44.970201],[14.452586,44.8692],[14.467572,44.725358],[14.482558,44.693345],[14.488139,44.660065]]],[[[14.81029,44.977048],[14.68699,44.955628],[14.628286,44.993946],[14.61299,45.025443],[14.511704,45.035391],[14.450415,45.079213],[14.43791,45.098643],[14.524623,45.146805],[14.571132,45.224733],[14.629939,45.178018],[14.70115,45.090065],[14.739183,45.065492],[14.81029,44.977048]]],[[[16.748053,46.416418],[16.871456,46.339291],[16.939979,46.253663],[17.032687,46.18731],[17.149579,46.140336],[17.242183,46.076619],[17.310603,45.996159],[17.406307,45.951097],[17.529194,45.94133],[17.607019,45.913787],[17.639678,45.868363],[17.706392,45.827255],[17.807161,45.790409],[17.963844,45.770281],[18.263929,45.765476],[18.290595,45.764442],[18.358291,45.753022],[18.437304,45.767336],[18.533577,45.79612],[18.564686,45.813302],[18.665972,45.907482],[18.721783,45.899369],[18.83299,45.910841],[18.900325,45.931719],[18.905389,45.931719],[18.9011,45.907637],[18.893555,45.865521],[18.839088,45.835756],[18.894485,45.767103],[18.947299,45.655818],[18.917843,45.600834],[18.953706,45.557995],[19.055096,45.527247],[19.064294,45.515],[19.033288,45.502184],[19.007657,45.465804],[19.004659,45.399503],[19.093078,45.336923],[19.272808,45.27796],[19.330273,45.26809],[19.352235,45.24543],[19.382311,45.230624],[19.399984,45.212486],[19.401018,45.189077],[19.388099,45.173005],[19.303039,45.167269],[19.205991,45.167786],[19.136951,45.196234],[19.13075,45.175486],[19.129716,45.151715],[19.062847,45.137194],[19.100054,44.973793],[19.085275,44.926767],[19.060522,44.911006],[19.037577,44.917517],[19.009517,44.919377],[18.995461,44.904029],[19.00714,44.8692],[18.941304,44.865169],[18.836401,44.883256],[18.788342,44.914881],[18.780177,44.947205],[18.779402,44.977229],[18.746071,45.026503],[18.662561,45.077456],[18.488309,45.085853],[18.42392,45.102002],[18.357567,45.120554],[18.284962,45.1343],[18.217937,45.13293],[18.137219,45.119365],[17.996297,45.141819],[17.9486,45.111872],[17.874393,45.077249],[17.812794,45.078102],[17.690114,45.158381],[17.653476,45.163497],[17.546247,45.122569],[17.502632,45.120347],[17.469146,45.133318],[17.324142,45.163962],[17.25872,45.170576],[17.21066,45.156055],[17.125394,45.171765],[16.918689,45.276565],[16.790789,45.196854],[16.530702,45.216724],[16.453497,45.161998],[16.365027,45.058335],[16.293404,45.008829],[16.23103,45.026606],[16.157288,45.072236],[16.028355,45.189593],[15.963191,45.210807],[15.888261,45.215742],[15.82289,45.202771],[15.788112,45.178948],[15.761498,45.007512],[15.737985,44.85641],[15.736642,44.765795],[15.880044,44.68195],[16.049078,44.537592],[16.103441,44.521004],[16.130313,44.47372],[16.169845,44.352022],[16.214235,44.215131],[16.300122,44.12449],[16.377533,44.059637],[16.472049,44.002586],[16.590492,43.913186],[16.687695,43.815052],[16.71343,43.778827],[16.901894,43.649016],[17.084622,43.516569],[17.248074,43.470215],[17.273809,43.445772],[17.275256,43.343866],[17.293033,43.305626],[17.402225,43.198914],[17.624795,43.042748],[17.65053,43.006574],[17.657765,42.980064],[17.643451,42.959755],[17.585108,42.938361],[17.537359,42.962236],[17.32993,43.114914],[17.129425,43.21111],[16.903082,43.392416],[16.600258,43.464066],[16.393966,43.543337],[16.268909,43.531245],[16.131036,43.506285],[16.045977,43.50551],[15.985516,43.519773],[15.942624,43.568969],[15.949135,43.607003],[15.941487,43.656638],[15.820564,43.735935],[15.655613,43.81128],[15.499447,43.908767],[15.185874,44.172136],[15.122933,44.256782],[15.184634,44.272905],[15.23135,44.271458],[15.284266,44.288822],[15.369739,44.289261],[15.471025,44.271975],[15.381315,44.328276],[15.269797,44.383493],[14.981339,44.602937],[14.895246,44.706574],[14.885221,44.818247],[14.906512,44.971364],[14.854629,45.081021],[14.632006,45.222899],[14.550461,45.297726],[14.38613,45.342116],[14.312646,45.337801],[14.268514,45.282533],[14.236372,45.159673],[14.090644,44.997615],[14.041965,44.92718],[13.965794,44.835662],[13.899751,44.829357],[13.860787,44.837419],[13.742448,44.991518],[13.629277,45.108177],[13.613464,45.163445],[13.603335,45.2314],[13.517139,45.481798],[13.577911,45.516886],[13.615221,45.476759],[13.878667,45.42839],[13.935615,45.449784],[13.970135,45.482599],[13.970341,45.503347],[13.992821,45.509445],[14.08558,45.477845],[14.161234,45.485131],[14.282984,45.48663],[14.369904,45.481462],[14.427368,45.50575],[14.505192,45.595202],[14.534028,45.645276],[14.568858,45.657213],[14.591802,45.651271],[14.608545,45.610085],[14.649473,45.571482],[14.733602,45.508489],[14.793082,45.478206],[14.847084,45.467354],[14.9,45.492676],[14.954571,45.49991],[15.110479,45.450792],[15.242098,45.441413],[15.339457,45.467044],[15.326693,45.502288],[15.291191,45.541536],[15.283543,45.579673],[15.290106,45.612668],[15.356975,45.645483],[15.35372,45.659926],[15.272949,45.717727],[15.277032,45.732609],[15.454075,45.797618],[15.624762,45.834024],[15.652203,45.862162],[15.668067,45.904459],[15.675612,45.983705],[15.666207,46.048507],[15.596909,46.109227],[15.592568,46.139975],[15.609001,46.171937],[15.635976,46.20072],[15.704241,46.213252],[15.784288,46.233974],[15.847591,46.257874],[15.933322,46.277641],[16.000708,46.305391],[16.066493,46.37133],[16.106438,46.382208],[16.227413,46.372829],[16.253303,46.389107],[16.236766,46.48383],[16.258419,46.507885],[16.301207,46.521398],[16.321206,46.534628],[16.427659,46.524396],[16.516181,46.499901],[16.569976,46.484992],[16.748053,46.416418]]]]},"type":"Feature","properties":{"ISO_A2":"HR","NAME":"Croatia"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-72.804569,18.777666],[-72.822216,18.707127],[-73.077989,18.790895],[-73.285237,18.896728],[-73.276426,18.954063],[-73.170593,18.967292],[-73.069152,18.932023],[-72.919239,18.861459],[-72.804569,18.777666]]],[[[-71.95431,19.721665],[-71.834731,19.696731],[-71.779231,19.718151],[-71.757397,19.688178],[-71.711457,19.486589],[-71.706961,19.421967],[-71.75316,19.324454],[-71.746494,19.285852],[-71.647223,19.19596],[-71.645311,19.163508],[-71.657042,19.130745],[-71.74205,19.045504],[-71.80711,18.987007],[-71.786388,18.920034],[-71.733626,18.856395],[-71.727063,18.80322],[-71.743212,18.732888],[-71.824241,18.645529],[-71.866486,18.614161],[-71.986867,18.610337],[-72.00038,18.597883],[-71.940384,18.512617],[-71.872584,18.416215],[-71.761893,18.34131],[-71.737244,18.270823],[-71.763754,18.203954],[-71.768327,18.039158],[-71.852947,18.119153],[-71.94612,18.186074],[-72.002059,18.212015],[-72.059834,18.228552],[-72.503553,18.219922],[-72.55324,18.208372],[-72.591894,18.186901],[-72.633287,18.176204],[-72.755243,18.156179],[-72.876657,18.151761],[-73.160077,18.205607],[-73.272266,18.233539],[-73.385128,18.251186],[-73.514835,18.245347],[-73.644026,18.229043],[-73.747328,18.190208],[-73.824713,18.121788],[-73.839183,18.058226],[-73.884968,18.041896],[-73.989432,18.143182],[-74.085395,18.215116],[-74.194639,18.269195],[-74.419018,18.346193],[-74.459971,18.39309],[-74.47811,18.449985],[-74.387521,18.624703],[-74.284452,18.656691],[-74.227712,18.662685],[-74.100329,18.641136],[-73.975996,18.601423],[-73.862489,18.575456],[-73.687021,18.565353],[-73.591575,18.522384],[-72.917275,18.455721],[-72.78935,18.434818],[-72.739431,18.44213],[-72.695971,18.468227],[-72.659771,18.51533],[-72.618043,18.55078],[-72.418106,18.558712],[-72.376094,18.574474],[-72.346741,18.623721],[-72.347646,18.674933],[-72.46521,18.743533],[-72.649126,18.894118],[-72.81108,19.071601],[-72.741213,19.131365],[-72.767956,19.240635],[-72.741808,19.341843],[-72.703205,19.441062],[-72.863428,19.526069],[-73.052745,19.610767],[-73.315519,19.637329],[-73.396341,19.658697],[-73.438354,19.72213],[-73.400527,19.807396],[-73.315313,19.854577],[-73.217799,19.88367],[-73.11778,19.903824],[-72.876528,19.928086],[-72.637034,19.900853],[-72.429915,19.813261],[-72.21985,19.744635],[-71.95431,19.721665]]],[[[-72.66406,20.037485],[-72.623469,20.014153],[-72.638842,19.985861],[-72.739792,20.00343],[-72.844256,20.03547],[-72.87844,20.02746],[-72.899343,20.031439],[-72.960347,20.062238],[-72.906759,20.085854],[-72.851465,20.093632],[-72.791029,20.091901],[-72.66406,20.037485]]]]},"type":"Feature","properties":{"ISO_A2":"HT","NAME":"Haiti"}},{"geometry":{"type":"Polygon","coordinates":[[[22.131859,48.405314],[22.227098,48.413428],[22.231129,48.412136],[22.253763,48.407381],[22.269473,48.360899],[22.27216,48.358005],[22.295105,48.327283],[22.316705,48.28664],[22.350192,48.256047],[22.423831,48.243309],[22.520155,48.205378],[22.582426,48.134013],[22.676322,48.104403],[22.683143,48.103627],[22.70154,48.107012],[22.769184,48.109622],[22.782207,48.095204],[22.836209,48.060297],[22.857241,48.029549],[22.846492,47.997045],[22.856104,47.960303],[22.87662,47.947255],[22.851763,47.922579],[22.676787,47.799047],[22.608367,47.76631],[22.562944,47.759566],[22.491372,47.772562],[22.417474,47.762666],[22.351432,47.736208],[22.29066,47.727836],[22.244617,47.696365],[22.185085,47.629031],[22.111963,47.572032],[22.037963,47.536608],[21.999722,47.505033],[21.995278,47.395712],[21.954247,47.364241],[21.899263,47.332563],[21.869291,47.304606],[21.785472,47.138157],[21.721806,47.084827],[21.661448,47.043899],[21.651423,47.006537],[21.652663,46.963775],[21.58414,46.878379],[21.49443,46.789728],[21.477067,46.753374],[21.497117,46.704281],[21.411024,46.647851],[21.361311,46.620772],[21.320177,46.607801],[21.294546,46.572455],[21.252223,46.486362],[21.26323,46.447734],[21.264573,46.412309],[21.191813,46.391536],[21.170419,46.352675],[21.151919,46.304357],[21.121636,46.282447],[21.039884,46.242242],[20.837002,46.259709],[20.760211,46.246221],[20.73737,46.217489],[20.732719,46.194442],[20.707398,46.172815],[20.660992,46.145659],[20.613657,46.133515],[20.508082,46.166924],[20.280964,46.132998],[20.241845,46.108607],[20.210167,46.126022],[20.161385,46.141887],[19.934112,46.161472],[19.844401,46.145892],[19.724512,46.151912],[19.61346,46.169172],[19.530726,46.155193],[19.457552,46.087368],[19.421275,46.06445],[19.392904,46.049799],[19.330221,46.028509],[19.278131,46.002877],[19.20842,45.984429],[19.146253,45.987012],[19.087342,46.016184],[19.066258,46.009518],[19.047654,45.982672],[19.015718,45.959727],[18.927868,45.931383],[18.905389,45.931719],[18.900325,45.931719],[18.83299,45.910841],[18.721783,45.899369],[18.665972,45.907482],[18.564686,45.813302],[18.533577,45.79612],[18.437304,45.767336],[18.358291,45.753022],[18.290595,45.764442],[18.263929,45.765476],[17.963844,45.770281],[17.807161,45.790409],[17.706392,45.827255],[17.639678,45.868363],[17.607019,45.913787],[17.529194,45.94133],[17.406307,45.951097],[17.310603,45.996159],[17.242183,46.076619],[17.149579,46.140336],[17.032687,46.18731],[16.939979,46.253663],[16.871456,46.339291],[16.748053,46.416418],[16.569976,46.484992],[16.516181,46.499901],[16.505691,46.52207],[16.418461,46.607233],[16.381254,46.638652],[16.384561,46.68082],[16.367198,46.704798],[16.335468,46.721619],[16.318415,46.782519],[16.308493,46.827995],[16.283585,46.857269],[16.093054,46.86329],[16.252579,46.971914],[16.331851,47.002196],[16.423887,46.996951],[16.453394,47.006769],[16.461249,47.022479],[16.476958,47.057851],[16.484813,47.09126],[16.492668,47.12268],[16.48285,47.140379],[16.438356,47.145908],[16.416859,47.223423],[16.439751,47.252749],[16.462592,47.273135],[16.434325,47.367445],[16.442904,47.399536],[16.514786,47.404549],[16.57442,47.424651],[16.622996,47.447569],[16.636639,47.476611],[16.676533,47.536013],[16.639739,47.608877],[16.432103,47.656316],[16.421303,47.674455],[16.46962,47.695074],[16.521142,47.724477],[16.551011,47.74737],[16.590957,47.750548],[16.647491,47.738999],[16.747588,47.686263],[16.785984,47.67864],[16.823087,47.693988],[16.862671,47.69727],[16.973414,47.695332],[17.066638,47.707553],[17.045606,47.763752],[17.045864,47.804524],[17.030103,47.837132],[17.039922,47.872944],[17.077749,47.900901],[17.089066,47.963636],[17.147357,48.005959],[17.17459,48.012057],[17.277271,48.004331],[17.301508,47.99335],[17.317321,47.990895],[17.480618,47.88762],[17.635286,47.809899],[17.761893,47.770159],[17.94798,47.766904],[18.14559,47.763416],[18.476268,47.776981],[18.724211,47.787161],[18.740593,47.806514],[18.778007,47.852893],[18.748344,47.892684],[18.750101,47.939451],[18.791856,48.000275],[18.914122,48.050814],[19.265109,48.073035],[19.466957,48.110707],[19.497498,48.162125],[19.564212,48.21282],[19.625397,48.223103],[19.709216,48.199797],[19.810088,48.15502],[19.89861,48.131326],[19.95039,48.146622],[20.128622,48.222018],[20.333777,48.295554],[20.474957,48.495102],[20.489995,48.526909],[20.643112,48.549698],[20.866613,48.545668],[20.98118,48.519674],[21.067324,48.505928],[21.19636,48.510605],[21.382395,48.553471],[21.451332,48.552231],[21.504662,48.521896],[21.56316,48.495722],[21.60264,48.463657],[21.632509,48.418492],[21.648581,48.40149],[21.674626,48.378365],[21.721496,48.346558],[21.766971,48.338109],[22.111343,48.393377],[22.131859,48.405314]]]},"type":"Feature","properties":{"ISO_A2":"HU","NAME":"Hungary"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[122.948909,-10.909256],[122.855892,-10.90967],[122.826126,-10.899128],[122.818478,-10.811071],[122.84566,-10.761772],[123.06146,-10.698416],[123.145796,-10.639919],[123.265376,-10.518169],[123.339686,-10.486233],[123.358497,-10.472487],[123.371106,-10.474864],[123.383095,-10.567572],[123.41286,-10.622659],[123.418131,-10.651288],[123.310748,-10.698416],[123.214836,-10.80611],[123.005236,-10.876338],[122.948909,-10.909256]]],[[[121.883031,-10.590309],[121.833112,-10.602195],[121.726141,-10.573153],[121.704644,-10.555686],[121.796318,-10.50742],[121.867011,-10.438897],[121.949487,-10.433006],[121.998373,-10.446959],[121.98132,-10.528401],[121.883031,-10.590309]]],[[[123.416271,-10.302678],[123.32594,-10.337508],[123.325527,-10.264128],[123.39529,-10.17142],[123.458749,-10.139898],[123.493889,-10.177001],[123.496783,-10.193951],[123.405109,-10.227127],[123.416271,-10.302678]]],[[[120.012448,-9.374725],[120.057613,-9.419735],[120.221117,-9.506344],[120.247989,-9.54288],[120.258324,-9.603134],[120.291087,-9.647886],[120.364777,-9.654656],[120.443636,-9.645561],[120.503684,-9.673983],[120.555567,-9.719045],[120.632565,-9.806481],[120.700364,-9.903116],[120.784493,-9.957015],[120.832656,-10.037527],[120.804234,-10.108478],[120.697987,-10.206612],[120.64042,-10.227903],[120.561768,-10.235602],[120.439192,-10.294048],[120.394543,-10.263508],[120.25543,-10.24232],[120.144843,-10.200101],[120.051928,-10.122896],[119.998392,-10.039749],[119.930695,-9.966471],[119.81277,-9.917482],[119.601103,-9.773512],[119.470362,-9.760541],[119.416515,-9.771083],[119.362565,-9.771806],[119.085476,-9.706952],[119.042378,-9.669074],[119.008374,-9.620498],[118.977369,-9.5728],[118.958765,-9.519367],[118.994112,-9.472031],[119.031422,-9.440199],[119.185625,-9.38444],[119.295902,-9.367232],[119.423956,-9.369867],[119.614746,-9.3524],[119.795096,-9.380512],[119.850804,-9.359583],[119.942064,-9.301447],[119.973794,-9.321601],[120.012448,-9.374725]]],[[[124.93685,-9.053452],[124.973282,-9.064304],[125.100354,-9.003998],[125.124435,-9.015418],[125.148982,-9.042549],[125.149447,-9.122905],[125.100509,-9.189826],[124.977519,-9.194942],[124.960156,-9.213804],[124.958606,-9.25468],[124.968269,-9.294264],[124.996949,-9.325994],[125.03364,-9.381856],[125.068108,-9.511926],[124.997983,-9.565359],[124.96305,-9.665663],[124.841817,-9.759766],[124.708388,-9.914123],[124.601831,-9.99293],[124.508194,-10.086154],[124.427579,-10.148683],[124.32681,-10.169818],[124.176018,-10.183306],[123.971069,-10.294824],[123.857588,-10.343606],[123.74731,-10.347172],[123.644164,-10.310895],[123.604786,-10.270122],[123.614088,-10.215035],[123.648298,-10.167803],[123.690156,-10.128787],[123.716408,-10.078609],[123.599412,-10.015151],[123.589283,-9.966833],[123.635792,-9.838056],[123.665868,-9.705299],[123.70938,-9.614865],[123.876811,-9.453169],[123.977167,-9.372916],[124.036388,-9.3416],[124.052408,-9.375396],[124.090131,-9.416428],[124.115556,-9.423145],[124.134573,-9.413844],[124.282316,-9.4279],[124.319316,-9.41374],[124.375695,-9.34992],[124.413006,-9.314315],[124.438224,-9.238557],[124.444425,-9.190343],[124.575477,-9.155358],[124.64586,-9.116704],[124.708182,-9.061824],[124.889773,-8.968445],[124.922277,-8.942503],[124.915094,-9.031541],[124.93685,-9.053452]]],[[[115.609926,-8.769852],[115.581917,-8.804165],[115.500888,-8.742877],[115.480528,-8.715385],[115.540576,-8.675387],[115.561453,-8.66991],[115.613233,-8.713215],[115.609926,-8.769852]]],[[[122.977331,-8.545215],[122.945498,-8.603971],[122.887828,-8.587331],[122.903537,-8.530693],[122.932786,-8.497104],[123.010507,-8.448321],[123.089469,-8.439795],[123.137942,-8.4569],[123.153134,-8.475813],[123.030041,-8.49483],[122.977331,-8.545215]]],[[[119.464057,-8.741017],[119.424887,-8.750525],[119.385509,-8.736056],[119.401632,-8.647069],[119.378894,-8.586504],[119.419926,-8.539065],[119.430158,-8.454936],[119.446487,-8.429201],[119.470568,-8.455711],[119.481731,-8.472971],[119.502091,-8.481084],[119.546946,-8.482634],[119.557282,-8.51886],[119.555525,-8.553379],[119.536301,-8.589398],[119.482867,-8.628259],[119.444007,-8.67177],[119.464057,-8.741017]]],[[[123.317465,-8.354787],[123.297208,-8.398608],[123.024977,-8.395508],[123.032625,-8.337837],[123.108279,-8.274792],[123.133497,-8.253811],[123.21711,-8.235414],[123.336069,-8.269004],[123.317465,-8.354787]]],[[[116.640767,-8.613893],[116.514263,-8.821012],[116.559325,-8.854395],[116.586507,-8.886124],[116.377217,-8.929015],[116.289884,-8.906174],[116.239345,-8.912117],[116.026748,-8.873101],[115.874612,-8.825611],[115.857352,-8.787887],[115.869341,-8.742774],[115.914403,-8.758018],[116.031605,-8.765201],[116.07646,-8.744944],[116.077701,-8.61136],[116.061164,-8.437417],[116.219811,-8.295204],[116.304353,-8.237946],[116.401505,-8.204202],[116.646968,-8.28275],[116.687483,-8.304144],[116.718902,-8.336028],[116.734095,-8.38693],[116.640767,-8.613893]]],[[[124.286605,-8.329465],[124.22573,-8.39127],[124.184389,-8.498757],[124.146665,-8.531417],[124.06574,-8.551674],[124.017268,-8.443877],[123.927764,-8.448941],[123.971482,-8.354063],[124.013754,-8.318613],[124.068737,-8.317787],[124.095816,-8.35613],[124.110492,-8.364295],[124.23958,-8.203375],[124.265625,-8.201721],[124.287122,-8.208646],[124.304485,-8.2288],[124.286605,-8.329465]]],[[[123.924767,-8.272415],[123.783897,-8.299596],[123.697804,-8.424447],[123.629178,-8.422483],[123.591557,-8.477932],[123.582669,-8.501651],[123.587837,-8.523872],[123.580188,-8.544956],[123.553007,-8.566764],[123.488721,-8.532347],[123.433841,-8.576065],[123.41069,-8.586607],[123.329971,-8.535654],[123.253283,-8.5386],[123.230132,-8.530693],[123.32501,-8.439019],[123.454615,-8.353702],[123.475905,-8.322231],[123.425159,-8.313394],[123.39498,-8.300578],[123.391259,-8.280476],[123.473218,-8.267092],[123.529959,-8.265232],[123.57316,-8.291535],[123.600549,-8.291328],[123.775939,-8.190456],[123.845495,-8.213348],[123.896138,-8.239238],[123.924767,-8.272415]]],[[[138.895119,-8.388687],[138.84551,-8.401709],[138.594259,-8.37153],[138.567181,-8.330241],[138.563357,-8.309105],[138.621027,-8.268487],[138.676631,-8.199241],[138.762724,-8.173403],[138.796211,-8.173609],[138.8976,-8.337527],[138.895119,-8.388687]]],[[[117.55637,-8.367293],[117.533632,-8.368016],[117.490431,-8.348689],[117.505934,-8.307038],[117.482163,-8.239238],[117.490534,-8.183428],[117.546138,-8.151905],[117.665097,-8.148288],[117.669231,-8.189216],[117.55637,-8.367293]]],[[[119.073797,-8.238825],[119.029975,-8.240065],[119.02088,-8.199861],[119.03659,-8.157796],[119.078758,-8.140226],[119.097775,-8.139193],[119.128264,-8.177175],[119.134878,-8.19707],[119.106766,-8.223425],[119.073797,-8.238825]]],[[[124.57558,-8.140846],[124.599558,-8.201721],[124.676866,-8.168028],[124.75221,-8.159553],[124.924086,-8.166013],[125.05028,-8.179552],[125.12459,-8.204822],[125.131722,-8.326468],[125.096788,-8.352823],[124.444218,-8.444601],[124.380656,-8.415093],[124.355542,-8.385896],[124.426028,-8.295772],[124.393575,-8.252984],[124.430679,-8.183221],[124.508607,-8.135472],[124.57558,-8.140846]]],[[[127.823444,-8.098782],[127.99842,-8.139089],[128.098879,-8.134852],[128.11924,-8.170715],[128.023535,-8.255361],[127.82086,-8.190249],[127.786237,-8.120279],[127.823444,-8.098782]]],[[[122.782924,-8.611722],[122.641538,-8.647224],[122.553791,-8.680917],[122.470179,-8.725462],[122.417262,-8.734712],[122.321454,-8.738278],[122.185752,-8.730268],[122.094181,-8.744686],[121.838693,-8.860389],[121.738337,-8.870414],[121.651314,-8.898733],[121.621238,-8.853775],[121.584548,-8.820598],[121.499592,-8.812227],[121.414636,-8.81481],[121.328336,-8.916871],[121.190877,-8.895477],[121.137547,-8.904469],[121.08618,-8.925966],[121.035227,-8.935423],[120.981794,-8.928344],[120.780979,-8.848814],[120.550503,-8.801891],[120.319509,-8.820288],[120.120865,-8.776983],[120.012137,-8.81016],[119.909405,-8.857599],[119.879122,-8.807576],[119.841399,-8.763547],[119.807912,-8.697608],[119.807085,-8.622936],[119.818144,-8.570484],[119.8476,-8.522839],[119.8661,-8.473178],[119.874782,-8.419796],[119.918293,-8.445066],[119.963768,-8.435505],[120.099161,-8.377525],[120.231142,-8.289881],[120.354132,-8.25779],[120.424929,-8.248902],[120.485597,-8.26611],[120.547195,-8.259857],[120.610241,-8.240479],[120.709563,-8.307813],[120.751317,-8.321507],[120.886089,-8.326675],[121.008666,-8.365536],[121.11822,-8.423568],[121.27666,-8.477932],[121.371951,-8.550847],[121.444505,-8.577822],[121.498455,-8.585109],[121.547961,-8.57529],[121.610386,-8.526198],[121.683457,-8.505889],[121.747122,-8.506612],[121.862877,-8.493952],[121.911763,-8.482169],[121.96654,-8.455194],[122.020077,-8.471886],[122.067102,-8.49669],[122.26306,-8.6249],[122.323211,-8.628362],[122.433488,-8.600767],[122.466561,-8.566454],[122.483615,-8.513537],[122.513794,-8.469612],[122.555858,-8.431526],[122.603504,-8.402484],[122.750058,-8.353082],[122.850517,-8.304402],[122.919144,-8.221927],[122.758533,-8.18596],[122.79233,-8.126584],[122.845763,-8.093252],[122.916973,-8.105603],[122.978261,-8.151905],[123.00596,-8.329052],[122.95542,-8.354115],[122.923588,-8.380935],[122.902194,-8.416282],[122.81114,-8.481136],[122.846797,-8.562164],[122.820028,-8.595754],[122.782924,-8.611722]]],[[[130.862225,-8.318717],[130.775201,-8.349929],[130.833389,-8.270761],[131.020148,-8.09134],[131.08743,-8.124517],[131.176417,-8.130718],[131.043712,-8.212057],[130.908113,-8.24575],[130.862225,-8.318717]]],[[[118.242426,-8.317787],[118.292346,-8.357216],[118.337924,-8.353547],[118.433216,-8.29324],[118.49068,-8.271433],[118.552175,-8.270451],[118.611913,-8.280631],[118.670617,-8.323471],[118.691805,-8.393493],[118.713819,-8.414938],[118.748339,-8.331119],[118.794227,-8.305849],[118.845697,-8.293034],[118.926209,-8.297633],[118.987807,-8.337734],[119.043824,-8.456693],[119.042067,-8.560924],[119.062531,-8.599785],[119.101082,-8.628207],[119.129711,-8.668153],[119.104183,-8.710011],[119.078861,-8.730423],[119.006307,-8.749646],[118.971477,-8.741172],[118.939335,-8.713111],[118.903265,-8.702724],[118.821202,-8.712129],[118.745858,-8.735487],[118.756193,-8.773624],[118.818102,-8.790781],[118.836705,-8.808868],[118.832675,-8.833362],[118.808283,-8.838323],[118.727875,-8.805302],[118.673615,-8.811917],[118.478588,-8.856462],[118.426911,-8.855428],[118.397869,-8.813415],[118.399936,-8.703758],[118.378956,-8.674612],[118.233951,-8.807834],[118.189923,-8.840545],[118.131529,-8.855945],[118.070654,-8.850622],[117.861261,-8.931496],[117.795425,-8.920127],[117.731657,-8.919972],[117.507898,-9.007564],[117.387905,-9.031955],[117.32641,-9.033712],[117.265018,-9.026167],[117.210241,-9.034074],[117.161252,-9.069214],[117.06131,-9.098979],[116.958164,-9.076397],[116.871141,-9.046166],[116.788458,-9.006323],[116.767994,-8.955474],[116.772129,-8.894341],[116.806958,-8.810935],[116.783084,-8.66469],[116.801274,-8.597924],[116.83507,-8.532399],[116.88623,-8.508266],[116.953099,-8.503408],[117.063687,-8.444394],[117.164869,-8.367189],[117.223574,-8.374527],[117.356692,-8.428477],[117.43462,-8.434937],[117.567119,-8.42641],[117.621792,-8.459587],[117.643393,-8.535499],[117.672849,-8.56325],[117.712123,-8.582577],[117.806071,-8.711148],[117.893197,-8.70443],[117.969575,-8.727994],[118.10414,-8.650273],[118.205943,-8.652185],[118.234882,-8.59193],[118.174007,-8.52749],[118.100523,-8.475245],[118.061042,-8.464289],[118.017841,-8.46739],[117.979083,-8.458915],[117.814856,-8.342074],[117.766383,-8.279029],[117.738374,-8.204615],[117.755221,-8.149476],[117.868289,-8.100849],[117.920999,-8.089067],[118.117473,-8.122295],[118.150649,-8.150045],[118.202842,-8.267247],[118.242426,-8.317787]]],[[[115.447868,-8.155161],[115.549361,-8.208336],[115.690954,-8.363572],[115.704287,-8.407083],[115.661395,-8.448218],[115.560006,-8.514157],[115.333767,-8.615701],[115.295009,-8.663657],[115.247157,-8.757553],[115.236098,-8.797551],[115.220182,-8.819565],[115.19424,-8.835429],[115.144941,-8.84902],[115.091508,-8.829383],[115.139773,-8.768922],[115.141634,-8.696885],[115.105667,-8.629499],[115.055024,-8.573016],[114.952085,-8.49638],[114.842117,-8.428529],[114.731323,-8.393906],[114.613191,-8.378351],[114.570919,-8.345382],[114.501776,-8.260839],[114.478935,-8.214744],[114.467566,-8.166323],[114.475318,-8.119452],[114.504257,-8.11661],[114.620012,-8.127721],[114.833022,-8.182601],[114.938442,-8.187097],[114.99818,-8.174436],[115.154036,-8.065761],[115.191036,-8.067518],[115.340175,-8.115473],[115.447868,-8.155161]]],[[[129.838824,-7.954605],[129.77981,-8.046485],[129.713457,-8.040698],[129.591915,-7.917398],[129.598736,-7.831356],[129.608968,-7.803399],[129.655477,-7.794821],[129.812986,-7.819729],[129.843579,-7.889389],[129.838824,-7.954605]]],[[[126.800974,-7.667904],[126.81441,-7.716531],[126.812756,-7.737874],[126.692867,-7.75348],[126.577318,-7.807637],[126.5182,-7.869959],[126.472105,-7.950367],[126.312942,-7.917708],[126.171038,-7.912333],[126.108406,-7.884015],[126.04009,-7.885875],[125.95162,-7.910886],[125.82615,-7.979254],[125.798244,-7.984577],[125.808373,-7.880707],[125.843203,-7.816732],[125.975288,-7.663356],[126.085359,-7.697359],[126.213619,-7.706764],[126.359347,-7.676792],[126.462907,-7.607856],[126.609564,-7.571786],[126.726353,-7.662219],[126.800974,-7.667904]]],[[[127.419437,-7.623049],[127.355255,-7.64651],[127.374996,-7.572509],[127.370655,-7.512771],[127.475248,-7.531065],[127.474008,-7.578504],[127.463982,-7.5969],[127.419437,-7.623049]]],[[[138.535348,-8.273603],[138.296293,-8.405171],[137.982824,-8.381969],[137.871823,-8.379643],[137.687751,-8.411734],[137.650337,-8.386103],[137.685167,-8.262234],[137.832548,-7.932177],[138.007525,-7.6416],[138.081836,-7.566256],[138.185395,-7.495304],[138.295466,-7.438512],[138.543823,-7.379601],[138.769856,-7.390401],[138.801998,-7.414638],[138.89946,-7.511583],[138.962609,-7.58796],[138.989067,-7.696119],[138.892949,-7.882154],[138.785979,-8.059094],[138.611726,-8.198311],[138.535348,-8.273603]]],[[[131.325555,-7.999511],[131.309226,-8.01088],[131.184996,-7.997858],[131.113785,-7.997393],[131.123397,-7.921842],[131.08681,-7.864998],[131.136833,-7.781695],[131.137763,-7.684905],[131.19006,-7.671831],[131.197398,-7.616744],[131.26003,-7.4705],[131.296823,-7.438047],[131.349223,-7.425438],[131.411028,-7.340172],[131.446168,-7.315367],[131.482652,-7.250668],[131.535258,-7.220593],[131.530918,-7.165092],[131.560683,-7.13574],[131.643469,-7.112796],[131.70083,-7.140236],[131.736073,-7.197028],[131.643882,-7.266895],[131.691115,-7.438874],[131.624452,-7.626149],[131.58032,-7.68227],[131.498465,-7.730639],[131.473557,-7.776631],[131.377025,-7.869132],[131.347776,-7.948093],[131.343436,-7.981476],[131.325555,-7.999511]]],[[[131.982053,-7.202092],[131.969547,-7.251392],[131.926862,-7.225037],[131.884488,-7.167469],[131.822889,-7.159201],[131.777518,-7.143905],[131.750749,-7.116826],[131.922315,-7.104527],[131.982053,-7.202092]]],[[[114.412583,-7.133466],[114.397596,-7.173154],[114.34685,-7.163232],[114.298791,-7.097603],[114.322149,-7.080343],[114.348917,-7.073418],[114.38354,-7.080653],[114.412583,-7.133466]]],[[[128.67011,-7.183282],[128.625048,-7.208604],[128.550221,-7.156307],[128.529757,-7.134603],[128.577299,-7.083237],[128.627736,-7.068767],[128.658328,-7.091091],[128.673211,-7.113364],[128.666906,-7.138014],[128.67011,-7.183282]]],[[[120.774365,-7.118997],[120.672356,-7.124681],[120.640833,-7.115793],[120.633392,-7.018228],[120.745529,-7.060137],[120.781703,-7.063083],[120.774365,-7.118997]]],[[[113.844555,-7.105354],[113.825538,-7.119927],[113.655833,-7.111762],[113.546382,-7.193411],[113.470728,-7.218422],[113.198497,-7.218319],[113.166044,-7.207363],[113.141859,-7.20757],[113.126976,-7.224107],[113.04047,-7.211808],[112.763794,-7.139667],[112.725864,-7.072798],[112.768755,-7.001278],[112.868077,-6.899889],[113.067342,-6.879942],[113.974677,-6.873017],[114.073585,-6.960143],[114.08299,-6.989392],[113.88538,-7.049027],[113.844555,-7.105354]]],[[[115.377072,-6.970789],[115.295836,-6.98779],[115.220285,-6.952547],[115.222146,-6.90516],[115.240542,-6.861235],[115.353714,-6.838445],[115.414485,-6.839737],[115.479184,-6.870226],[115.524246,-6.901852],[115.546054,-6.938646],[115.424097,-6.94061],[115.377072,-6.970789]]],[[[134.674395,-6.74982],[134.657445,-6.765323],[134.6314,-6.732922],[134.629126,-6.71282],[134.66344,-6.657733],[134.697649,-6.625693],[134.735683,-6.623316],[134.726071,-6.668688],[134.674395,-6.74982]]],[[[105.252832,-6.640421],[105.190407,-6.662487],[105.142761,-6.643057],[105.121367,-6.614945],[105.192267,-6.545595],[105.22565,-6.529059],[105.260583,-6.523891],[105.27743,-6.56146],[105.252832,-6.640421]]],[[[134.71615,-6.549419],[134.660856,-6.558928],[134.633674,-6.477279],[134.679046,-6.456091],[134.728552,-6.505907],[134.71615,-6.549419]]],[[[134.819502,-6.434129],[134.795111,-6.442345],[134.795318,-6.393046],[134.822913,-6.349586],[134.851852,-6.324575],[134.885855,-6.32349],[134.819502,-6.434129]]],[[[134.536832,-6.442294],[134.520399,-6.512729],[134.504276,-6.59138],[134.412499,-6.679695],[134.355965,-6.814829],[134.322789,-6.848729],[134.200005,-6.908777],[134.090865,-6.833743],[134.059135,-6.769354],[134.106988,-6.471594],[134.15422,-6.481413],[134.184812,-6.479346],[134.194631,-6.459812],[134.124558,-6.426429],[134.111225,-6.25538],[134.114636,-6.190785],[134.168069,-6.176315],[134.234215,-6.22639],[134.317724,-6.3161],[134.414979,-6.386742],[134.536832,-6.442294]]],[[[107.373942,-6.007643],[107.474712,-6.121745],[107.562975,-6.182723],[107.666741,-6.215796],[107.776088,-6.218897],[107.883782,-6.233314],[108.008839,-6.276981],[108.137617,-6.296721],[108.197458,-6.289073],[108.254509,-6.266594],[108.295023,-6.264992],[108.330163,-6.286076],[108.41915,-6.382763],[108.515888,-6.471181],[108.538006,-6.516243],[108.603635,-6.729201],[108.677842,-6.790541],[108.779645,-6.808318],[108.899431,-6.808421],[109.01839,-6.817258],[109.294239,-6.867022],[109.403689,-6.860201],[109.500634,-6.810178],[109.586934,-6.842579],[109.821028,-6.902421],[109.936267,-6.915857],[110.067111,-6.898752],[110.198473,-6.895134],[110.260898,-6.912394],[110.321153,-6.938388],[110.372726,-6.947741],[110.426263,-6.947224],[110.520934,-6.897253],[110.583566,-6.805682],[110.634312,-6.690134],[110.673999,-6.56978],[110.700768,-6.518051],[110.736941,-6.472318],[110.784174,-6.442656],[110.834817,-6.424207],[110.972276,-6.435679],[111.000698,-6.464721],[111.154384,-6.66905],[111.181565,-6.686672],[111.342072,-6.699539],[111.386514,-6.692873],[111.484493,-6.651842],[111.540303,-6.648276],[111.643553,-6.698764],[111.688098,-6.741655],[111.737604,-6.773488],[111.989888,-6.805941],[112.08735,-6.893377],[112.136753,-6.905056],[112.312349,-6.894411],[112.433582,-6.903041],[112.539209,-6.92645],[112.586958,-7.050577],[112.626025,-7.178011],[112.648763,-7.221264],[112.751909,-7.265034],[112.794283,-7.304515],[112.782915,-7.431691],[112.79449,-7.552459],[113.013598,-7.657723],[113.248416,-7.718185],[113.497703,-7.723818],[113.747507,-7.702992],[113.876285,-7.677205],[114.037308,-7.632144],[114.070691,-7.63297],[114.382714,-7.77105],[114.409275,-7.792444],[114.444209,-7.89559],[114.443278,-8.004576],[114.384987,-8.26332],[114.38137,-8.334323],[114.386951,-8.405171],[114.448859,-8.559322],[114.481726,-8.603764],[114.595,-8.684793],[114.599238,-8.727219],[114.583838,-8.769645],[114.459195,-8.7405],[114.38323,-8.70536],[114.339305,-8.647379],[114.276984,-8.614616],[114.159678,-8.62645],[113.940363,-8.568366],[113.692523,-8.477983],[113.253377,-8.286729],[113.133694,-8.288331],[113.018973,-8.312722],[112.89774,-8.361453],[112.771649,-8.396076],[112.678838,-8.409202],[112.586027,-8.399642],[112.35152,-8.353598],[112.115152,-8.323884],[111.509917,-8.305126],[111.338558,-8.261718],[111.055372,-8.239548],[110.830166,-8.20198],[110.607234,-8.149425],[110.038689,-7.890526],[109.852654,-7.828411],[109.28163,-7.704904],[109.193573,-7.694879],[108.986661,-7.704129],[108.856229,-7.667904],[108.741198,-7.667077],[108.570562,-7.70723],[108.517955,-7.736013],[108.451706,-7.79694],[108.335538,-7.794046],[108.220506,-7.782315],[107.917475,-7.724128],[107.804407,-7.688368],[107.695783,-7.635503],[107.597908,-7.56667],[107.546852,-7.541917],[107.284956,-7.471637],[107.071222,-7.447504],[106.631456,-7.415568],[106.535337,-7.394225],[106.455239,-7.368646],[106.411314,-7.31175],[106.416895,-7.239351],[106.448418,-7.176771],[106.491516,-7.113829],[106.519731,-7.053678],[106.1982,-6.927794],[105.944366,-6.858961],[105.834708,-6.845835],[105.724844,-6.846093],[105.600924,-6.860304],[105.478451,-6.853742],[105.42078,-6.833226],[105.361869,-6.826198],[105.302958,-6.841029],[105.255415,-6.835241],[105.24322,-6.777984],[105.273399,-6.729356],[105.335617,-6.674114],[105.370861,-6.664347],[105.386984,-6.75075],[105.404657,-6.76801],[105.459744,-6.786872],[105.483722,-6.78155],[105.580874,-6.671014],[105.608055,-6.616702],[105.655081,-6.469527],[105.706034,-6.497949],[105.7574,-6.480328],[105.786856,-6.456918],[105.868298,-6.116422],[105.936097,-6.016945],[106.028805,-5.934314],[106.075004,-5.914161],[106.165851,-5.964752],[106.349716,-5.984079],[106.459063,-6.017565],[106.56872,-6.021906],[106.675897,-6.038339],[106.825139,-6.098284],[106.877952,-6.091979],[106.931592,-6.073427],[107.011587,-6.00847],[107.046314,-5.904239],[107.162069,-5.957155],[107.331878,-5.978084],[107.373942,-6.007643]]],[[[124.051271,-5.973744],[124.042072,-6.021544],[124.005692,-5.966664],[123.972309,-5.939327],[123.975823,-5.880209],[124.022952,-5.90212],[124.051271,-5.973744]]],[[[120.528282,-6.298478],[120.487251,-6.464876],[120.468027,-6.406172],[120.460792,-6.254037],[120.435574,-6.180139],[120.451594,-6.094873],[120.446426,-5.876282],[120.477329,-5.775306],[120.534173,-5.903774],[120.549262,-5.969196],[120.528282,-6.298478]]],[[[112.719456,-5.811066],[112.697959,-5.846516],[112.602151,-5.843622],[112.586027,-5.803625],[112.648556,-5.730864],[112.69,-5.726213],[112.727311,-5.752775],[112.719456,-5.811066]]],[[[132.807119,-5.850754],[132.746347,-5.947079],[132.704903,-5.913127],[132.681442,-5.912559],[132.667282,-5.856025],[132.681338,-5.738823],[132.630179,-5.607048],[132.697875,-5.609011],[132.716478,-5.648337],[132.737769,-5.661721],[132.804328,-5.788845],[132.807119,-5.850754]]],[[[134.746949,-5.70699],[134.739094,-5.745644],[134.73837,-5.816802],[134.75501,-5.88269],[134.712222,-5.949662],[134.752116,-6.05007],[134.758111,-6.099989],[134.755837,-6.170631],[134.744468,-6.20236],[134.714186,-6.295068],[134.683903,-6.328141],[134.661166,-6.337287],[134.637601,-6.365296],[134.441128,-6.334858],[134.356172,-6.27047],[134.280517,-6.20081],[134.264394,-6.171664],[134.175407,-6.090377],[134.15484,-6.062885],[134.153083,-6.019529],[134.22512,-6.00847],[134.301911,-6.009814],[134.298604,-5.970695],[134.343046,-5.832977],[134.226154,-5.744404],[134.20538,-5.707197],[134.247238,-5.681978],[134.341289,-5.712881],[134.45632,-5.557542],[134.490324,-5.525089],[134.506447,-5.438479],[134.570835,-5.427317],[134.616517,-5.438582],[134.646076,-5.492429],[134.657859,-5.5393],[134.645456,-5.581313],[134.70075,-5.603017],[134.746949,-5.70699]]],[[[132.926285,-5.902017],[132.845049,-5.988006],[132.921634,-5.785228],[132.937653,-5.682599],[133.00876,-5.621414],[133.114697,-5.310632],[133.138468,-5.317866],[133.172885,-5.348149],[133.119658,-5.575938],[132.971036,-5.735825],[132.926285,-5.902017]]],[[[102.36722,-5.478683],[102.285881,-5.483541],[102.135503,-5.360551],[102.110801,-5.322517],[102.153486,-5.28624],[102.198444,-5.288824],[102.371767,-5.366442],[102.40546,-5.404786],[102.36722,-5.478683]]],[[[123.626801,-5.271564],[123.62277,-5.373057],[123.582669,-5.367372],[123.550113,-5.331819],[123.540914,-5.298333],[123.542775,-5.271099],[123.560655,-5.249757],[123.626801,-5.271564]]],[[[122.043021,-5.437962],[121.979563,-5.464731],[121.859363,-5.350319],[121.808514,-5.256165],[121.820709,-5.202938],[121.856676,-5.156274],[121.873729,-5.144647],[121.866288,-5.095968],[121.913623,-5.0723],[121.965713,-5.075607],[121.999923,-5.140823],[122.041058,-5.158806],[122.061831,-5.221335],[122.043021,-5.437962]]],[[[122.645155,-5.269445],[122.619317,-5.33585],[122.56392,-5.387474],[122.519685,-5.391195],[122.473693,-5.380705],[122.391941,-5.335436],[122.37127,-5.383082],[122.306984,-5.380912],[122.28311,-5.31952],[122.328999,-5.137722],[122.396281,-5.069819],[122.39008,-4.998506],[122.334476,-4.846577],[122.368893,-4.767202],[122.524439,-4.707154],[122.659935,-4.633877],[122.701896,-4.618684],[122.739723,-4.675011],[122.759877,-4.93391],[122.614046,-5.138652],[122.645155,-5.269445]]],[[[123.179799,-4.551195],[123.203054,-4.76622],[123.195716,-4.822703],[123.139492,-4.739917],[123.119235,-4.723484],[123.103835,-4.739969],[123.083888,-4.749012],[123.055156,-4.748289],[123.017949,-4.831694],[123.014642,-4.910243],[122.98653,-4.963056],[122.971647,-5.138497],[122.981052,-5.185781],[123.024667,-5.162424],[123.051435,-5.156429],[123.14993,-5.224022],[123.201917,-5.273321],[123.187344,-5.333059],[123.120682,-5.393211],[123.043374,-5.419359],[122.985703,-5.393521],[122.968753,-5.405768],[122.934646,-5.43667],[122.908808,-5.477443],[122.91625,-5.519301],[122.850207,-5.63795],[122.81207,-5.671333],[122.733108,-5.634953],[122.684429,-5.666165],[122.645052,-5.663375],[122.5849,-5.544622],[122.586451,-5.488915],[122.642158,-5.426283],[122.642571,-5.381118],[122.670166,-5.330889],[122.731455,-5.261952],[122.766491,-5.210121],[122.767628,-5.177203],[122.793673,-5.052456],[122.803802,-5.000108],[122.821475,-4.944452],[122.84938,-4.831281],[122.853308,-4.618374],[122.946842,-4.442674],[123.038309,-4.394719],[123.074586,-4.386864],[123.068902,-4.433579],[123.179799,-4.551195]]],[[[133.570793,-4.24589],[133.621849,-4.299324],[133.50289,-4.257414],[133.332978,-4.169616],[133.320886,-4.111067],[133.46434,-4.199795],[133.570793,-4.24589]]],[[[123.242328,-4.112979],[123.144556,-4.233281],[123.076137,-4.227184],[122.994694,-4.148015],[122.970923,-4.061354],[122.969063,-4.029986],[123.024873,-3.980997],[123.211942,-3.997533],[123.246979,-4.040942],[123.242328,-4.112979]]],[[[128.562623,-3.585466],[128.391574,-3.637865],[128.428368,-3.540455],[128.451519,-3.514772],[128.536268,-3.541334],[128.562623,-3.585466]]],[[[128.275612,-3.674659],[128.249878,-3.711143],[128.191793,-3.735276],[128.143217,-3.732743],[128.158927,-3.697707],[128.146835,-3.677191],[128.110868,-3.68639],[128.052267,-3.714553],[127.97806,-3.770984],[127.934341,-3.743079],[127.92504,-3.699309],[127.92752,-3.679413],[128.016197,-3.600865],[128.119136,-3.587533],[128.264347,-3.512292],[128.329149,-3.515909],[128.313646,-3.563658],[128.291012,-3.597661],[128.277473,-3.633163],[128.275612,-3.674659]]],[[[128.722407,-3.546915],[128.720133,-3.589186],[128.713312,-3.602519],[128.658741,-3.587791],[128.619571,-3.588566],[128.585154,-3.512188],[128.594973,-3.494825],[128.666493,-3.516736],[128.693571,-3.524487],[128.722407,-3.546915]]],[[[116.424139,-3.464439],[116.387759,-3.636729],[116.326574,-3.53906],[116.395304,-3.423305],[116.42693,-3.399947],[116.424139,-3.464439]]],[[[127.606299,-3.315094],[127.629244,-3.359226],[127.531058,-3.331321],[127.487754,-3.288223],[127.530438,-3.261558],[127.554519,-3.254323],[127.606299,-3.315094]]],[[[116.30332,-3.868136],[116.09341,-4.054067],[116.058787,-4.006939],[116.076977,-3.817493],[116.018376,-3.699877],[116.022407,-3.612441],[116.063541,-3.457928],[116.117388,-3.339589],[116.239345,-3.260317],[116.26973,-3.251119],[116.262082,-3.39478],[116.286473,-3.448833],[116.295155,-3.49498],[116.282029,-3.534719],[116.30518,-3.718584],[116.318616,-3.763026],[116.289264,-3.820903],[116.30332,-3.868136]]],[[[126.861125,-3.087873],[127.025456,-3.166008],[127.06287,-3.217013],[127.092325,-3.277526],[127.124675,-3.310857],[127.163536,-3.338039],[127.227304,-3.391007],[127.244254,-3.471106],[127.229578,-3.633008],[127.155164,-3.647219],[127.085091,-3.670887],[126.940914,-3.764576],[126.86991,-3.78287],[126.794152,-3.789122],[126.740306,-3.81372],[126.686355,-3.823591],[126.546622,-3.771707],[126.411127,-3.710626],[126.21455,-3.605154],[126.178376,-3.579368],[126.146647,-3.52273],[126.056523,-3.421031],[126.033992,-3.355867],[126.026447,-3.170504],[126.050115,-3.128129],[126.088252,-3.105443],[126.219614,-3.148128],[126.306224,-3.103221],[126.555097,-3.065187],[126.808312,-3.069115],[126.861125,-3.087873]]],[[[127.987878,-2.936513],[127.937752,-3.020022],[127.849592,-3.016353],[127.834296,-3.004416],[127.938372,-2.952326],[127.987878,-2.936513]]],[[[106.886427,-3.005243],[106.869684,-3.025293],[106.814287,-3.014441],[106.774289,-2.986846],[106.749174,-2.960439],[106.74287,-2.932792],[106.79682,-2.898893],[106.910612,-2.934032],[106.886427,-3.005243]]],[[[107.473368,-2.899513],[107.432854,-2.925247],[107.409289,-2.900546],[107.402468,-2.872951],[107.419314,-2.838121],[107.474401,-2.83471],[107.499723,-2.845046],[107.473368,-2.899513]]],[[[129.754695,-2.865871],[129.984345,-2.976666],[130.103408,-2.992944],[130.303602,-2.978526],[130.37905,-2.989326],[130.569943,-3.130816],[130.625547,-3.22802],[130.64167,-3.311942],[130.671125,-3.391524],[130.718047,-3.411316],[130.773444,-3.418757],[130.845585,-3.533272],[130.859951,-3.570273],[130.80507,-3.857697],[130.580381,-3.748815],[130.363134,-3.625205],[130.269703,-3.579264],[130.019589,-3.474671],[129.981141,-3.43886],[129.953133,-3.391576],[129.844199,-3.327135],[129.626641,-3.317162],[129.544992,-3.318867],[129.511713,-3.328479],[129.520394,-3.363205],[129.521635,-3.433692],[129.467684,-3.453226],[129.332809,-3.408681],[129.212093,-3.392661],[129.107603,-3.349201],[128.967456,-3.32605],[128.952057,-3.304191],[128.964046,-3.271635],[128.957845,-3.241146],[128.925392,-3.229312],[128.862553,-3.234944],[128.801782,-3.26564],[128.751242,-3.30047],[128.676932,-3.396588],[128.639001,-3.433434],[128.516631,-3.449143],[128.465885,-3.439893],[128.419273,-3.416019],[128.279953,-3.240525],[128.233031,-3.202647],[128.180631,-3.171692],[128.132055,-3.157378],[128.082136,-3.184043],[128.055781,-3.238562],[128.043999,-3.303312],[128.030046,-3.340519],[127.969998,-3.444286],[127.920389,-3.506039],[127.902302,-3.496272],[127.92783,-3.39726],[127.927933,-3.341449],[127.897134,-3.28228],[127.877911,-3.222077],[128.113348,-2.934549],[128.198511,-2.865923],[128.569858,-2.842203],[128.790516,-2.856673],[128.910716,-2.849645],[128.991124,-2.828561],[129.057684,-2.838483],[129.074323,-2.895068],[129.116285,-2.93703],[129.174369,-2.933516],[129.279582,-2.889022],[129.371153,-2.820551],[129.427377,-2.790734],[129.484221,-2.785773],[129.543029,-2.790372],[129.600493,-2.806133],[129.754695,-2.865871]]],[[[100.425116,-3.182906],[100.465114,-3.32853],[100.346154,-3.229208],[100.348428,-3.158825],[100.331995,-3.11304],[100.259958,-3.056919],[100.204354,-2.986846],[100.179343,-2.820241],[100.198567,-2.785514],[100.245592,-2.783241],[100.454572,-3.001935],[100.468834,-3.038936],[100.464287,-3.116864],[100.433901,-3.141307],[100.425116,-3.182906]]],[[[108.207173,-2.997698],[108.191774,-3.103014],[108.167279,-3.142805],[108.083563,-3.194895],[108.055245,-3.226831],[107.97711,-3.221767],[107.967291,-3.166576],[107.941143,-3.129266],[107.858151,-3.086323],[107.836653,-3.096658],[107.82177,-3.160789],[107.65961,-3.20554],[107.614445,-3.209365],[107.636769,-3.124822],[107.594911,-3.058366],[107.591604,-2.976614],[107.583852,-2.94075],[107.563492,-2.92008],[107.604936,-2.863132],[107.598115,-2.799674],[107.641626,-2.731564],[107.666328,-2.566303],[107.83779,-2.530233],[107.874687,-2.559688],[108.074365,-2.596999],[108.215131,-2.696941],[108.290579,-2.829956],[108.207173,-2.997698]]],[[[100.204044,-2.740969],[100.132731,-2.821378],[100.014908,-2.819724],[99.991861,-2.769805],[99.996822,-2.649295],[99.968193,-2.609815],[99.96933,-2.594105],[99.987933,-2.525375],[100.011911,-2.510286],[100.201977,-2.679681],[100.204044,-2.740969]]],[[[134.374258,-2.123539],[134.345216,-2.138732],[134.335088,-2.095221],[134.350797,-2.03693],[134.369504,-2.02768],[134.391001,-2.030728],[134.41901,-2.051709],[134.374258,-2.123539]]],[[[99.843033,-2.343061],[99.84789,-2.369726],[99.685109,-2.281773],[99.607078,-2.257485],[99.537418,-2.161573],[99.558916,-2.115478],[99.56181,-2.051192],[99.572145,-2.025768],[99.622064,-2.016569],[99.686453,-2.063388],[99.734822,-2.177696],[99.815748,-2.284356],[99.843033,-2.343061]]],[[[126.055076,-2.451271],[126.03792,-2.469461],[125.977872,-2.415408],[125.937564,-2.262756],[125.903251,-2.222138],[125.86284,-2.077134],[125.873278,-2.035896],[125.922784,-1.974815],[125.962782,-1.975745],[125.992651,-2.011815],[125.976011,-2.168084],[126.065721,-2.365798],[126.055076,-2.451271]]],[[[123.848182,-1.955488],[123.866062,-1.995692],[123.803534,-1.994348],[123.777282,-1.918694],[123.783484,-1.878283],[123.848182,-1.955488]]],[[[126.024277,-1.78971],[126.331752,-1.822886],[126.288137,-1.858853],[125.956477,-1.916627],[125.838862,-1.906188],[125.479194,-1.940088],[125.432582,-1.938124],[125.425967,-1.88221],[125.38721,-1.84304],[125.444777,-1.808933],[125.520845,-1.800872],[125.720316,-1.813791],[126.024277,-1.78971]]],[[[123.152514,-1.816478],[123.078824,-1.898954],[123.070866,-1.854925],[123.085852,-1.814824],[123.106419,-1.786712],[123.137528,-1.772656],[123.152514,-1.816478]]],[[[130.353315,-1.690491],[130.365407,-1.749815],[130.425042,-1.804592],[130.404268,-1.889858],[130.3806,-1.902674],[130.393313,-1.941638],[130.418841,-1.971249],[130.372642,-1.991868],[130.338949,-1.981791],[130.284172,-2.009386],[130.247998,-2.047782],[130.133484,-2.063905],[130.093383,-2.028351],[129.88647,-1.98639],[129.754385,-1.894458],[129.737642,-1.866914],[129.993647,-1.75891],[130.105785,-1.730488],[130.199629,-1.732245],[130.317968,-1.692041],[130.353315,-1.690491]]],[[[124.969561,-1.705477],[125.062992,-1.740979],[125.095858,-1.740824],[125.126761,-1.699327],[125.145778,-1.692558],[125.187946,-1.712918],[125.197661,-1.780304],[125.258226,-1.770899],[125.305354,-1.793947],[125.320237,-1.81007],[125.314036,-1.877146],[125.134719,-1.888928],[125.006768,-1.943085],[124.834479,-1.894406],[124.639142,-1.978225],[124.520596,-2.006957],[124.41776,-2.0052],[124.329703,-1.858853],[124.380863,-1.687494],[124.417553,-1.659278],[124.482976,-1.644292],[124.663947,-1.635921],[124.969561,-1.705477]]],[[[135.474243,-1.591789],[135.869154,-1.642018],[135.976124,-1.635507],[136.201537,-1.654937],[136.389639,-1.7216],[136.718611,-1.734002],[136.816693,-1.753846],[136.892554,-1.799735],[136.708586,-1.837665],[136.621873,-1.873012],[136.460849,-1.890479],[136.326077,-1.872495],[136.228099,-1.893683],[136.192545,-1.859163],[136.049195,-1.824126],[135.865743,-1.752192],[135.487575,-1.668373],[135.469695,-1.616232],[135.474243,-1.591789]]],[[[108.953071,-1.619591],[108.837936,-1.661655],[108.803726,-1.567811],[108.87721,-1.539802],[108.956895,-1.56409],[108.953071,-1.619591]]],[[[106.045651,-1.669407],[106.080068,-1.73824],[106.127197,-1.8002],[106.161717,-1.867018],[106.208846,-2.188703],[106.365942,-2.46481],[106.818421,-2.573331],[106.744317,-2.617928],[106.706593,-2.657977],[106.678791,-2.703969],[106.612025,-2.895482],[106.618536,-2.936151],[106.657604,-3.00116],[106.667216,-3.07175],[106.610578,-3.071388],[106.54681,-3.055524],[106.496063,-3.029014],[106.448728,-2.994236],[106.397361,-2.966589],[106.341654,-2.94876],[106.250083,-2.894035],[106.125853,-2.855381],[105.998729,-2.824892],[105.937234,-2.743605],[105.907985,-2.643301],[105.939095,-2.493439],[105.907572,-2.451943],[105.862407,-2.415408],[105.806803,-2.307456],[105.785822,-2.181365],[105.705311,-2.132634],[105.599064,-2.103127],[105.552762,-2.078994],[105.342852,-2.125141],[105.292519,-2.114289],[105.247664,-2.079356],[105.133356,-2.042614],[105.137697,-1.972696],[105.191027,-1.916937],[105.316187,-1.860506],[105.374788,-1.813171],[105.386467,-1.750746],[105.364246,-1.705064],[105.373134,-1.657315],[105.412719,-1.611064],[105.459537,-1.574736],[105.585421,-1.52678],[105.640405,-1.610444],[105.667587,-1.680414],[105.700866,-1.731005],[105.754506,-1.658658],[105.7204,-1.533911],[105.816105,-1.506058],[105.910053,-1.504972],[105.980953,-1.539182],[106.027358,-1.593132],[106.045651,-1.669407]]],[[[123.597552,-1.70434],[123.528615,-1.710851],[123.48252,-1.681396],[123.486654,-1.534841],[123.528512,-1.502802],[123.548562,-1.508176],[123.561378,-1.551895],[123.582049,-1.59091],[123.616362,-1.627446],[123.597552,-1.70434]]],[[[128.153036,-1.660518],[128.091748,-1.701136],[128.061259,-1.712402],[127.913774,-1.685116],[127.741071,-1.690801],[127.561651,-1.728525],[127.457678,-1.696692],[127.392152,-1.644809],[127.395046,-1.589825],[127.456748,-1.453709],[127.59183,-1.35077],[127.64671,-1.332373],[127.742932,-1.360278],[127.905092,-1.439033],[128.032837,-1.531637],[128.148695,-1.603674],[128.153036,-1.660518]]],[[[123.212356,-1.171246],[123.234266,-1.233671],[123.19799,-1.287725],[123.23778,-1.389321],[123.338549,-1.254032],[123.434771,-1.236772],[123.489341,-1.259303],[123.526858,-1.286071],[123.547219,-1.337437],[123.511872,-1.447405],[123.448724,-1.498875],[123.366971,-1.507143],[123.328628,-1.443064],[123.274884,-1.437173],[123.237367,-1.576906],[123.22052,-1.5983],[123.172978,-1.615973],[123.130397,-1.577474],[123.122955,-1.556029],[123.1829,-1.492777],[123.150344,-1.304468],[123.105179,-1.339815],[122.984359,-1.510657],[122.890411,-1.587241],[122.858475,-1.548277],[122.81083,-1.432109],[122.832224,-1.28297],[122.907981,-1.182201],[122.972474,-1.189126],[123.158302,-1.1575],[123.212356,-1.171246]]],[[[109.710234,-1.180651],[109.510866,-1.282764],[109.463634,-1.277493],[109.428184,-1.241216],[109.450302,-1.044122],[109.476036,-0.985314],[109.614633,-0.979113],[109.699485,-1.007328],[109.74341,-1.039316],[109.760567,-1.105204],[109.750748,-1.144994],[109.710234,-1.180651]]],[[[134.965333,-1.116056],[134.917378,-1.134246],[134.861774,-1.114195],[134.808857,-1.037611],[134.827874,-0.978803],[134.889266,-0.938495],[134.940839,-0.978906],[134.956755,-1.030583],[134.996236,-1.034097],[134.965333,-1.116056]]],[[[99.163901,-1.777979],[99.071814,-1.783508],[98.874306,-1.663722],[98.827694,-1.609979],[98.816325,-1.538252],[98.626983,-1.26137],[98.601765,-1.197808],[98.676075,-0.970535],[98.869035,-0.915654],[98.932597,-0.953998],[98.954818,-1.056214],[99.064992,-1.240699],[99.101476,-1.340125],[99.128864,-1.384205],[99.14044,-1.418466],[99.130621,-1.442341],[99.210306,-1.559233],[99.267254,-1.627756],[99.271491,-1.738498],[99.163901,-1.777979]]],[[[131.001854,-1.315527],[130.966611,-1.343432],[130.845171,-1.317284],[130.782333,-1.255479],[130.739338,-1.172538],[130.712053,-1.104428],[130.704405,-1.05022],[130.668025,-0.983971],[130.672985,-0.959786],[130.897158,-0.890023],[130.939429,-0.915344],[131.033067,-0.917618],[131.073891,-0.968261],[131.046193,-1.188196],[131.001854,-1.315527]]],[[[130.905323,-0.777472],[130.879795,-0.828425],[130.832459,-0.862841],[130.402408,-0.923923],[130.439098,-0.887439],[130.457288,-0.851162],[130.484263,-0.832559],[130.526948,-0.837313],[130.548135,-0.826254],[130.569529,-0.821913],[130.593714,-0.826668],[130.635468,-0.811578],[130.723215,-0.82243],[130.813442,-0.813852],[130.807034,-0.765069],[130.905323,-0.777472]]],[[[135.382982,-0.651381],[135.595682,-0.690449],[135.6733,-0.688278],[135.749058,-0.732513],[135.841249,-0.711636],[135.893545,-0.725795],[136.068728,-0.877724],[136.154718,-0.978286],[136.282669,-1.064689],[136.375273,-1.094041],[136.305407,-1.173106],[136.164743,-1.214758],[136.11038,-1.216825],[136.002583,-1.169696],[135.915043,-1.178377],[135.838768,-1.119466],[135.825643,-1.028309],[135.747094,-0.82305],[135.645705,-0.881961],[135.523852,-0.78729],[135.491089,-0.785016],[135.483441,-0.801036],[135.431661,-0.768893],[135.387736,-0.704918],[135.382982,-0.651381]]],[[[127.300375,-0.780986],[127.289006,-0.801553],[127.184516,-0.775301],[127.156404,-0.760935],[127.209114,-0.619342],[127.258207,-0.623476],[127.301305,-0.758403],[127.300375,-0.780986]]],[[[130.626683,-0.528701],[130.569116,-0.529993],[130.465453,-0.486533],[130.525914,-0.448758],[130.564155,-0.440955],[130.597435,-0.418217],[130.615935,-0.417287],[130.656966,-0.436562],[130.684251,-0.46917],[130.626683,-0.528701]]],[[[121.864324,-0.406848],[121.906802,-0.45129],[121.881274,-0.502656],[121.846858,-0.489841],[121.756114,-0.490822],[121.721801,-0.494698],[121.680976,-0.524981],[121.655241,-0.526221],[121.672398,-0.478782],[121.749292,-0.407055],[121.797352,-0.4177],[121.864324,-0.406848]]],[[[133.472608,-0.726209],[133.723652,-0.741401],[133.850259,-0.731428],[133.974489,-0.744347],[134.024926,-0.76972],[134.111535,-0.846821],[134.086731,-0.897361],[134.071951,-1.001851],[134.116186,-1.102413],[134.188223,-1.20313],[134.247134,-1.310566],[134.259537,-1.362966],[134.237212,-1.474122],[134.216955,-1.529054],[134.145435,-1.620831],[134.105851,-1.72098],[134.131276,-1.844487],[134.145435,-1.968717],[134.142748,-2.08287],[134.155667,-2.195215],[134.194838,-2.309058],[134.362063,-2.621028],[134.459938,-2.832333],[134.491254,-2.714253],[134.483296,-2.583046],[134.517919,-2.535607],[134.566908,-2.510441],[134.627473,-2.536692],[134.644733,-2.589816],[134.649074,-2.705881],[134.702094,-2.933619],[134.76979,-2.944006],[134.843377,-2.909228],[134.855366,-2.978784],[134.852679,-3.107665],[134.886785,-3.209881],[134.917171,-3.249931],[135.03737,-3.33313],[135.092147,-3.348581],[135.251517,-3.36858],[135.371613,-3.374884],[135.486645,-3.345119],[135.560749,-3.268741],[135.627722,-3.186007],[135.859129,-2.995269],[135.926205,-2.90406],[135.990697,-2.764224],[136.013021,-2.734303],[136.243291,-2.583098],[136.269543,-2.529509],[136.302513,-2.425691],[136.352432,-2.325232],[136.389949,-2.273298],[136.612261,-2.224308],[136.843255,-2.197643],[137.072078,-2.105091],[137.17109,-2.025509],[137.175741,-1.973109],[137.125512,-1.88128],[137.123444,-1.840921],[137.176464,-1.802112],[137.380586,-1.685633],[137.616541,-1.565847],[137.806193,-1.483165],[137.911097,-1.483837],[138.007835,-1.556546],[138.110878,-1.615922],[138.64976,-1.791105],[138.736163,-1.845468],[138.811403,-1.917815],[138.9192,-1.967838],[139.039503,-1.992074],[139.148851,-2.038893],[139.252617,-2.099251],[139.481853,-2.211803],[139.789535,-2.34828],[139.868393,-2.356445],[140.154577,-2.349985],[140.20398,-2.375669],[140.251005,-2.411997],[140.29462,-2.420369],[140.622559,-2.445845],[140.672995,-2.472045],[140.720538,-2.508115],[140.747409,-2.607127],[140.973494,-2.609763],[140.973545,-2.803394],[140.973649,-3.00669],[140.973752,-3.209985],[140.973855,-3.41328],[140.973959,-3.616575],[140.97401,-3.81987],[140.974062,-4.023165],[140.974165,-4.22646],[140.974269,-4.429755],[140.974321,-4.63305],[140.974372,-4.836345],[140.974476,-5.03964],[140.974579,-5.242935],[140.974631,-5.446231],[140.974682,-5.649526],[140.974786,-5.852821],[140.974889,-6.056116],[140.974941,-6.259411],[140.974992,-6.346124],[140.944038,-6.452267],[140.874637,-6.611482],[140.862338,-6.740053],[140.919543,-6.840047],[140.975199,-6.905366],[140.975199,-7.072591],[140.975302,-7.275886],[140.975406,-7.479181],[140.975509,-7.682476],[140.975561,-7.885772],[140.975612,-8.089067],[140.975716,-8.292362],[140.975819,-8.495657],[140.975871,-8.698952],[140.975922,-8.902247],[140.976026,-9.105594],[140.976129,-9.11872],[140.924556,-9.085027],[140.78658,-8.973716],[140.661523,-8.846747],[140.581011,-8.728304],[140.489751,-8.620455],[140.101661,-8.300578],[140.002959,-8.19552],[139.983322,-8.16653],[139.992623,-8.139348],[140.037375,-8.083951],[140.116957,-7.923702],[140.033758,-8.022714],[139.934746,-8.101211],[139.790775,-8.106327],[139.649388,-8.125395],[139.518544,-8.172782],[139.385632,-8.189112],[139.319176,-8.165806],[139.279075,-8.106947],[139.258301,-8.046589],[139.248793,-7.982407],[139.192982,-8.086173],[139.083221,-8.142862],[138.933463,-8.262441],[138.890572,-8.237791],[138.864734,-8.192264],[138.856155,-8.145084],[138.885094,-8.094751],[138.905455,-8.041214],[138.935944,-7.913108],[139.00302,-7.837557],[139.045704,-7.691365],[139.07361,-7.639275],[139.087976,-7.587185],[139.048908,-7.528274],[138.982969,-7.508172],[138.937907,-7.472463],[138.885507,-7.373193],[138.853158,-7.339655],[138.793627,-7.298882],[138.747945,-7.251443],[138.798381,-7.215735],[138.864837,-7.201317],[138.919304,-7.203591],[139.018006,-7.225915],[139.062551,-7.227104],[139.176859,-7.190414],[139.112574,-7.201782],[139.049012,-7.200542],[138.845717,-7.136308],[138.72004,-7.069852],[138.60139,-6.936476],[138.60015,-6.910792],[138.683763,-6.886556],[138.864527,-6.858444],[138.80851,-6.790386],[138.726654,-6.731165],[138.698129,-6.625693],[138.642215,-6.560426],[138.521602,-6.453766],[138.438713,-6.343385],[138.36833,-6.118593],[138.296293,-5.948991],[138.313863,-5.887547],[138.374634,-5.843622],[138.282754,-5.838558],[138.199658,-5.807035],[138.243583,-5.724456],[138.339598,-5.675674],[138.252161,-5.68818],[138.166482,-5.712054],[138.127414,-5.716498],[138.087107,-5.70916],[138.065919,-5.675984],[138.063129,-5.628855],[138.075531,-5.545759],[138.060855,-5.465247],[137.984994,-5.427627],[137.922259,-5.370111],[137.886809,-5.348872],[137.8403,-5.350526],[137.795238,-5.311975],[137.759065,-5.256165],[137.306689,-5.014371],[137.279817,-4.945383],[137.237856,-4.975665],[137.195895,-4.990444],[137.143702,-4.950757],[137.089235,-4.924454],[137.029703,-4.928691],[136.974616,-4.907349],[136.916945,-4.895101],[136.856794,-4.893189],[136.618876,-4.818724],[136.393773,-4.701263],[136.210632,-4.650672],[136.097461,-4.584733],[135.979742,-4.530834],[135.716605,-4.478383],[135.450162,-4.443088],[135.35394,-4.441796],[135.273118,-4.453165],[135.195603,-4.450684],[134.754183,-4.195403],[134.679666,-4.079131],[134.686901,-4.011124],[134.706538,-3.954745],[134.886475,-3.938519],[134.759764,-3.922138],[134.707675,-3.929837],[134.603392,-3.976088],[134.546858,-3.979292],[134.467172,-3.948596],[134.391001,-3.909942],[134.266151,-3.945805],[134.202382,-3.887049],[134.180472,-3.825089],[134.147089,-3.796822],[134.09996,-3.799716],[134.036915,-3.821937],[133.973869,-3.81801],[133.933148,-3.775583],[133.904003,-3.720134],[133.860698,-3.680395],[133.808505,-3.650009],[133.723032,-3.577921],[133.67828,-3.479477],[133.683448,-3.309203],[133.697194,-3.248174],[133.781633,-3.148903],[133.841474,-3.054749],[133.76737,-3.04431],[133.700398,-3.087511],[133.671976,-3.13185],[133.66071,-3.185593],[133.653165,-3.364394],[133.599422,-3.41607],[133.518186,-3.411936],[133.542268,-3.516374],[133.509195,-3.615541],[133.415144,-3.732123],[133.407186,-3.785195],[133.422275,-3.842556],[133.400881,-3.898987],[133.248746,-4.062284],[133.197999,-4.070087],[133.085138,-4.069002],[132.968556,-4.094892],[132.914399,-4.05691],[132.870061,-4.007455],[132.837091,-3.948906],[132.790892,-3.828086],[132.753892,-3.703598],[132.869751,-3.550946],[132.829753,-3.413021],[132.751412,-3.294631],[132.553491,-3.130713],[132.348232,-2.975064],[132.255008,-2.943489],[132.102046,-2.929588],[132.053883,-2.91455],[132.006341,-2.856104],[131.971201,-2.788615],[132.066906,-2.759521],[132.230616,-2.680405],[132.323324,-2.684229],[132.575505,-2.727172],[132.652916,-2.766187],[132.725057,-2.78908],[132.897242,-2.658184],[133.033772,-2.487445],[133.118831,-2.450289],[133.191075,-2.437784],[133.264972,-2.45432],[133.411423,-2.513955],[133.526558,-2.541705],[133.608724,-2.547131],[133.651615,-2.600616],[133.700088,-2.624646],[133.71094,-2.54403],[133.753314,-2.450703],[133.834653,-2.421661],[133.877648,-2.415046],[133.90483,-2.390913],[133.898938,-2.304459],[133.791038,-2.293658],[133.849742,-2.219657],[133.902452,-2.183639],[133.920539,-2.147466],[133.921573,-2.102042],[133.710319,-2.189168],[133.487801,-2.2256],[133.356233,-2.21573],[133.224871,-2.21449],[132.962768,-2.272574],[132.863239,-2.270249],[132.631005,-2.246633],[132.502641,-2.218417],[132.403319,-2.240431],[132.307614,-2.24224],[132.207362,-2.175733],[132.122199,-2.092378],[132.079928,-2.033209],[132.023394,-1.990317],[131.998383,-1.932543],[131.936164,-1.714985],[131.930376,-1.559646],[131.829814,-1.556546],[131.731422,-1.541198],[131.293723,-1.393455],[131.240806,-1.429732],[131.179208,-1.448335],[131.117816,-1.45526],[131.056735,-1.447663],[130.99586,-1.424719],[131.001027,-1.383998],[131.046193,-1.284107],[131.090531,-1.247314],[131.151819,-1.21884],[131.190783,-1.16582],[131.254139,-1.006915],[131.258996,-0.952655],[131.252072,-0.897206],[131.257239,-0.855451],[131.29641,-0.833592],[131.461568,-0.781812],[131.804286,-0.703781],[131.890896,-0.657169],[131.962416,-0.582445],[132.046028,-0.536969],[132.084476,-0.491133],[132.128401,-0.45408],[132.393811,-0.355482],[132.508016,-0.34742],[132.625114,-0.358893],[132.856418,-0.41739],[133.07718,-0.511855],[133.268486,-0.635775],[133.472608,-0.726209]]],[[[104.474171,-0.334708],[104.567809,-0.43186],[104.590133,-0.466586],[104.543934,-0.520536],[104.506521,-0.596656],[104.485333,-0.612934],[104.413813,-0.583685],[104.36317,-0.658616],[104.329787,-0.539037],[104.25713,-0.463279],[104.302295,-0.385713],[104.318728,-0.380132],[104.340743,-0.382612],[104.363584,-0.402817],[104.474171,-0.334708]]],[[[127.567025,-0.318895],[127.68247,-0.468343],[127.604956,-0.610143],[127.658596,-0.689415],[127.804323,-0.694479],[127.837913,-0.72409],[127.863338,-0.759902],[127.880184,-0.808684],[127.842254,-0.847752],[127.761122,-0.883718],[127.667588,-0.832042],[127.642886,-0.783983],[127.623869,-0.765999],[127.497882,-0.802483],[127.462742,-0.805997],[127.438248,-0.739024],[127.468633,-0.64301],[127.380577,-0.599601],[127.299961,-0.500279],[127.297067,-0.460282],[127.32952,-0.390932],[127.325076,-0.335845],[127.371172,-0.331607],[127.455197,-0.406331],[127.491681,-0.335948],[127.527338,-0.306596],[127.567025,-0.318895]]],[[[127.249939,-0.495318],[127.187307,-0.521157],[127.119197,-0.520536],[127.104418,-0.413876],[127.126432,-0.278587],[127.189684,-0.255746],[127.29004,-0.284375],[127.253039,-0.318688],[127.280531,-0.391035],[127.249939,-0.495318]]],[[[103.736542,-0.347937],[103.606317,-0.38287],[103.461313,-0.357652],[103.478986,-0.297501],[103.548956,-0.227531],[103.610968,-0.230528],[103.723933,-0.276624],[103.76424,-0.317758],[103.736542,-0.347937]]],[[[130.813339,-0.004082],[130.986558,-0.04656],[131.025832,-0.039946],[131.276876,-0.14981],[131.316874,-0.204277],[131.302714,-0.24107],[131.339715,-0.29037],[131.257549,-0.365714],[131.217862,-0.374085],[131.177761,-0.345973],[131.097766,-0.330057],[131.005368,-0.360753],[130.946457,-0.337602],[130.896641,-0.268459],[130.808378,-0.226497],[130.683527,-0.080667],[130.622136,-0.085938],[130.638259,-0.142988],[130.691279,-0.180609],[130.761352,-0.291403],[130.801556,-0.302152],[130.843104,-0.298328],[130.899225,-0.344475],[130.896331,-0.416047],[130.75019,-0.443849],[130.699754,-0.391552],[130.688695,-0.296571],[130.60653,-0.32861],[130.574904,-0.361786],[130.550822,-0.366437],[130.496252,-0.267425],[130.340499,-0.262258],[130.23663,-0.209703],[130.287686,-0.154719],[130.294921,-0.101492],[130.362513,-0.072863],[130.430933,-0.098495],[130.499559,-0.060099],[130.548342,-0.069918],[130.584309,-0.045423],[130.722388,-0.029817],[130.813339,-0.004082]]],[[[98.459241,-0.530458],[98.39971,-0.576812],[98.30969,-0.531854],[98.339972,-0.467878],[98.354751,-0.379305],[98.408805,-0.308973],[98.427098,-0.226497],[98.322919,-0.000775],[98.374492,0.00708],[98.41542,-0.017518],[98.484356,-0.16769],[98.544197,-0.257607],[98.520116,-0.379718],[98.459241,-0.530458]]],[[[104.778649,-0.175958],[104.807484,-0.192494],[104.843141,-0.140611],[104.908977,-0.211718],[104.949698,-0.247271],[105.005405,-0.282825],[104.950628,-0.284478],[104.92851,-0.317035],[104.914248,-0.323339],[104.702271,-0.208721],[104.566569,-0.245618],[104.473551,-0.212131],[104.447093,-0.189187],[104.497012,-0.126349],[104.542694,0.017725],[104.635608,-0.018448],[104.658449,-0.062838],[104.652765,-0.076016],[104.713536,-0.102991],[104.778649,-0.175958]]],[[[129.54892,-0.187017],[129.505615,-0.189807],[129.469235,-0.131413],[129.370119,-0.066404],[129.308831,0.045424],[129.541995,-0.139268],[129.54892,-0.187017]]],[[[127.45344,-0.005839],[127.448583,-0.036638],[127.417887,0.006357],[127.396803,0.016588],[127.419541,0.124437],[127.431323,0.142576],[127.44941,0.068988],[127.45344,-0.005839]]],[[[104.689248,0.059532],[104.698137,0.034675],[104.650905,0.062684],[104.622379,0.079634],[104.603466,0.09524],[104.499183,0.232079],[104.543831,0.223294],[104.659896,0.103095],[104.689248,0.059532]]],[[[103.284476,0.541931],[103.172132,0.536195],[103.139576,0.549062],[103.153322,0.643114],[103.187428,0.699751],[103.238174,0.698614],[103.295122,0.613968],[103.284476,0.541931]]],[[[127.419747,0.64208],[127.383987,0.631021],[127.373652,0.634845],[127.362903,0.675153],[127.382644,0.743572],[127.424812,0.744399],[127.442588,0.733444],[127.445896,0.683318],[127.419747,0.64208]]],[[[127.372618,0.791322],[127.338409,0.758455],[127.306059,0.769411],[127.286422,0.811889],[127.29283,0.842481],[127.319805,0.862015],[127.353808,0.847442],[127.372618,0.791322]]],[[[103.450151,0.664456],[103.429687,0.650865],[103.344421,0.777886],[103.365712,0.851111],[103.386072,0.86956],[103.433098,0.825015],[103.470305,0.778144],[103.497487,0.722695],[103.450151,0.664456]]],[[[103.828629,0.801037],[103.834004,0.772201],[103.742433,0.829975],[103.740056,0.871833],[103.751941,0.891367],[103.806615,0.846357],[103.828629,0.801037]]],[[[104.239353,0.834006],[104.176722,0.804861],[104.098173,0.896225],[104.101067,0.917464],[104.108302,0.933535],[104.122771,0.943974],[104.17052,0.896741],[104.227054,0.879895],[104.239353,0.834006]]],[[[103.027541,0.746621],[103.008731,0.708122],[102.971524,0.736545],[102.77629,0.779591],[102.710558,0.784397],[102.541576,0.831577],[102.490416,0.856641],[102.453933,0.889507],[102.466438,0.95033],[102.49145,0.986865],[102.506643,1.088771],[102.549224,1.130216],[102.63325,1.054406],[102.726164,0.989191],[102.780114,0.959373],[102.944135,0.892711],[103.002426,0.859276],[103.027541,0.746621]]],[[[103.423899,1.04836],[103.429687,0.993376],[103.363335,1.006812],[103.315379,1.071304],[103.354963,1.117245],[103.379974,1.133626],[103.404882,1.072545],[103.423899,1.04836]]],[[[103.166447,0.87018],[103.137199,0.841654],[103.086659,0.848166],[103.033432,0.882014],[102.963979,0.942682],[102.886361,0.996787],[102.787969,1.030945],[102.726474,1.04128],[102.701876,1.053734],[102.725544,1.158844],[102.79014,1.165459],[102.999429,1.06779],[103.067539,1.01477],[103.166447,0.87018]]],[[[104.024793,1.180548],[104.088045,1.137037],[104.139825,1.165562],[104.137758,1.1282],[104.127319,1.092388],[104.066134,0.989552],[103.963608,1.01322],[103.939837,1.0465],[103.932189,1.071408],[103.946968,1.087014],[103.95534,1.13745],[103.999782,1.137244],[104.024793,1.180548]]],[[[104.585379,1.216102],[104.591063,1.141068],[104.648114,1.104584],[104.662894,1.049497],[104.652868,0.961027],[104.599125,0.858966],[104.575147,0.831939],[104.504247,0.85261],[104.480682,0.886768],[104.471174,0.913485],[104.481096,0.932502],[104.428593,0.956479],[104.462389,0.995547],[104.439238,1.050427],[104.293924,1.016114],[104.251963,1.014874],[104.244211,1.077402],[104.250206,1.10262],[104.361827,1.181479],[104.428386,1.196051],[104.500113,1.180238],[104.585379,1.216102]]],[[[102.427164,0.990121],[102.380862,0.959787],[102.325258,1.007019],[102.279576,1.075697],[102.255495,1.147165],[102.234205,1.263954],[102.228623,1.347877],[102.256322,1.397073],[102.276476,1.395264],[102.358641,1.345655],[102.412902,1.260802],[102.442874,1.23424],[102.448868,1.15626],[102.428921,1.067274],[102.427164,0.990121]]],[[[97.481523,1.465079],[97.698357,1.183752],[97.786414,1.145925],[97.903203,1.018284],[97.931935,0.973946],[97.902066,0.884236],[97.876434,0.628334],[97.820417,0.564462],[97.683991,0.596088],[97.682544,0.641046],[97.603893,0.833903],[97.461266,0.94139],[97.405352,0.946971],[97.368868,1.056938],[97.296831,1.18737],[97.07917,1.425495],[97.244225,1.423634],[97.324427,1.481615],[97.34272,1.527917],[97.355949,1.539751],[97.481523,1.465079]]],[[[102.491863,1.459188],[102.499408,1.330927],[102.425201,1.364465],[102.36691,1.415469],[102.274202,1.453142],[102.161341,1.465441],[102.078658,1.498565],[102.020884,1.5582],[102.0183,1.58564],[102.023985,1.607964],[102.042175,1.625379],[102.469539,1.510037],[102.491863,1.459188]]],[[[124.888842,0.995288],[124.698156,0.825583],[124.639865,0.743572],[124.589016,0.655257],[124.514085,0.557124],[124.427579,0.470618],[124.384377,0.444986],[124.278027,0.398426],[124.216739,0.380391],[124.101397,0.374551],[123.753821,0.305511],[123.639616,0.29745],[123.525928,0.300344],[123.310437,0.317604],[123.265479,0.326595],[123.179489,0.415531],[123.082544,0.485862],[122.996865,0.49351],[122.909532,0.485965],[122.280733,0.481056],[122.060901,0.468034],[121.842,0.436563],[121.722731,0.450877],[121.604598,0.486121],[121.515715,0.49842],[121.425798,0.494802],[121.013007,0.441679],[120.909137,0.446795],[120.700364,0.514698],[120.579028,0.52834],[120.459965,0.510305],[120.349068,0.449224],[120.307003,0.408244],[120.192282,0.268511],[120.127376,0.166553],[120.078283,0.039739],[120.036012,-0.089917],[120.013274,-0.196215],[120.012137,-0.307164],[120.031775,-0.432066],[120.062884,-0.555521],[120.097404,-0.649934],[120.240651,-0.868267],[120.269796,-0.899221],[120.425342,-0.960613],[120.517533,-1.039419],[120.605073,-1.258476],[120.667395,-1.370097],[120.72858,-1.371492],[120.796999,-1.363689],[120.915855,-1.377848],[121.033677,-1.406529],[121.148502,-1.339504],[121.212581,-1.212484],[121.276866,-1.118123],[121.431379,-0.938599],[121.519332,-0.855555],[121.575556,-0.828528],[121.63271,-0.84031],[121.681183,-0.887852],[121.737717,-0.92568],[121.853162,-0.945988],[121.969641,-0.933276],[122.093664,-0.875037],[122.138106,-0.839225],[122.1749,-0.79375],[122.280009,-0.757008],[122.52971,-0.756646],[122.658798,-0.769824],[122.888758,-0.755199],[122.885554,-0.722074],[122.841112,-0.687038],[122.829433,-0.658874],[122.872221,-0.640736],[123.020429,-0.599756],[123.171531,-0.570714],[123.281499,-0.591488],[123.379684,-0.648539],[123.417408,-0.70745],[123.434151,-0.778195],[123.396324,-0.961595],[123.377927,-1.004124],[123.299585,-1.026035],[123.225791,-1.001747],[123.152721,-0.907076],[123.049368,-0.872401],[122.902814,-0.900927],[122.852481,-0.92816],[122.807419,-0.965987],[122.724633,-1.064276],[122.655697,-1.175225],[122.506662,-1.347824],[122.334166,-1.497893],[122.250657,-1.555305],[122.15764,-1.593959],[121.85864,-1.693281],[121.779885,-1.766972],[121.7187,-1.86278],[121.651004,-1.89544],[121.572662,-1.905723],[121.513855,-1.887791],[121.394689,-1.833738],[121.355415,-1.87818],[121.3488,-1.945979],[121.407505,-1.970112],[121.501969,-2.044991],[121.57504,-2.150876],[121.621858,-2.173614],[121.725935,-2.207979],[121.769756,-2.240896],[121.848201,-2.331589],[121.971915,-2.542428],[122.013979,-2.656427],[122.082605,-2.749548],[122.291688,-2.907626],[122.303367,-2.952223],[122.290448,-3.004209],[122.306571,-3.051545],[122.381192,-3.14234],[122.399072,-3.200838],[122.31732,-3.275097],[122.312772,-3.382739],[122.262646,-3.527433],[122.251381,-3.576267],[122.252931,-3.620451],[122.288071,-3.661585],[122.329102,-3.694193],[122.385326,-3.711453],[122.434522,-3.739875],[122.529193,-3.852633],[122.578596,-3.882295],[122.610015,-3.923481],[122.606708,-3.984666],[122.649909,-4.020478],[122.6897,-4.084453],[122.750368,-4.100008],[122.77879,-4.081663],[122.798221,-4.054171],[122.847933,-4.064558],[122.877286,-4.109103],[122.894339,-4.166309],[122.899817,-4.229354],[122.897336,-4.349088],[122.872325,-4.39198],[122.817548,-4.389913],[122.719672,-4.340768],[122.715022,-4.37627],[122.72174,-4.410738],[122.67182,-4.422159],[122.614769,-4.417353],[122.471419,-4.422107],[122.207146,-4.496366],[122.114231,-4.540239],[122.054183,-4.620131],[122.050049,-4.675322],[122.0732,-4.791697],[122.03806,-4.832418],[121.917034,-4.847973],[121.748052,-4.816708],[121.645733,-4.785651],[121.588682,-4.759606],[121.514371,-4.681213],[121.486466,-4.581012],[121.541243,-4.282942],[121.556746,-4.24465],[121.583411,-4.210595],[121.611523,-4.156335],[121.618034,-4.092721],[121.537419,-4.014845],[121.415773,-3.984253],[121.31273,-3.919399],[120.914305,-3.555752],[120.891774,-3.520612],[120.890947,-3.460357],[120.906967,-3.40403],[121.037915,-3.205179],[121.054348,-3.167093],[121.070367,-3.010152],[121.06675,-2.880961],[121.052177,-2.751615],[120.990166,-2.670328],[120.879371,-2.645575],[120.765063,-2.641596],[120.653649,-2.667589],[120.543888,-2.732649],[120.34142,-2.869644],[120.261011,-2.949329],[120.254087,-3.052837],[120.300492,-3.154277],[120.360437,-3.246882],[120.392373,-3.348167],[120.436608,-3.707319],[120.435161,-3.747833],[120.382968,-3.852374],[120.362504,-4.085745],[120.384621,-4.415182],[120.420071,-4.617392],[120.404982,-4.727205],[120.310104,-4.963211],[120.281475,-5.09266],[120.279305,-5.146094],[120.390926,-5.392539],[120.416661,-5.490052],[120.430407,-5.591028],[120.311654,-5.541625],[120.256464,-5.544157],[120.200756,-5.55935],[120.077043,-5.575473],[119.951573,-5.577592],[119.907648,-5.596247],[119.818454,-5.661773],[119.764401,-5.688283],[119.717272,-5.693347],[119.557385,-5.611078],[119.463127,-5.521678],[119.376207,-5.424837],[119.360394,-5.314197],[119.390677,-5.200612],[119.433568,-5.079173],[119.519558,-4.877376],[119.515527,-4.741881],[119.544879,-4.630828],[119.594075,-4.523186],[119.611748,-4.423554],[119.623634,-4.034327],[119.611438,-3.999756],[119.493616,-3.768555],[119.480077,-3.729746],[119.47925,-3.667424],[119.491963,-3.60779],[119.494546,-3.55415],[119.467468,-3.513015],[119.419822,-3.475395],[119.362151,-3.458962],[119.239988,-3.475291],[118.994629,-3.537613],[118.922178,-3.482733],[118.867711,-3.398087],[118.832778,-3.280161],[118.812521,-3.156655],[118.821823,-3.040641],[118.858099,-2.928503],[118.828954,-2.850058],[118.783685,-2.76474],[118.783272,-2.720816],[118.809007,-2.682368],[118.853345,-2.650226],[118.907502,-2.631415],[118.958145,-2.597412],[119.092194,-2.482897],[119.135292,-2.382335],[119.138186,-2.258466],[119.172292,-2.140024],[119.240815,-2.030935],[119.321844,-1.929649],[119.348199,-1.825263],[119.308304,-1.65964],[119.324117,-1.584244],[119.310372,-1.495671],[119.309028,-1.408182],[119.359154,-1.243438],[119.508189,-0.906714],[119.653503,-0.727914],[119.711381,-0.680733],[119.786725,-0.763932],[119.844292,-0.861911],[119.845223,-0.773234],[119.829823,-0.686314],[119.771739,-0.483639],[119.721819,-0.08847],[119.735875,-0.051004],[119.786518,-0.056999],[119.838298,-0.022117],[119.865583,0.040101],[119.811736,0.186914],[119.809256,0.238694],[119.913229,0.445089],[119.998081,0.520227],[120.035185,0.566581],[120.056476,0.692516],[120.100608,0.74011],[120.156521,0.774165],[120.229799,0.86124],[120.269589,0.970794],[120.293877,0.979165],[120.322506,0.983144],[120.366534,0.887543],[120.41604,0.848682],[120.516603,0.817521],[120.602489,0.854418],[120.626467,0.902374],[120.65892,0.943664],[120.71101,0.986658],[120.754935,1.035648],[120.803614,1.149284],[120.868003,1.252844],[120.912134,1.288966],[120.965464,1.311807],[121.024582,1.325759],[121.081736,1.32762],[121.208447,1.262507],[121.281724,1.249795],[121.356758,1.254549],[121.404094,1.243594],[121.440061,1.214396],[121.47272,1.155537],[121.513234,1.104739],[121.550648,1.079676],[121.591783,1.067945],[121.867425,1.088513],[122.108237,1.031152],[122.436589,1.018078],[122.549347,0.984488],[122.657454,0.940563],[122.789849,0.862893],[122.838322,0.845685],[122.892478,0.849974],[122.960071,0.922993],[123.012781,0.938961],[123.066525,0.941803],[123.278088,0.928057],[123.846632,0.838192],[123.930761,0.850439],[124.273686,1.022263],[124.410835,1.185096],[124.533722,1.230468],[124.575373,1.304055],[124.600178,1.392422],[124.643689,1.416141],[124.746732,1.441411],[124.78766,1.467559],[124.860627,1.576028],[124.94703,1.672146],[124.989301,1.701033],[125.110948,1.685686],[125.164898,1.643673],[125.233731,1.502286],[125.221639,1.478721],[125.14092,1.40839],[125.117459,1.378883],[125.028059,1.180238],[124.96677,1.082622],[124.888842,0.995288]]],[[[101.708138,2.078426],[101.762295,1.996519],[101.773561,1.943448],[101.73408,1.882573],[101.719404,1.789142],[101.602719,1.71571],[101.500813,1.733176],[101.46774,1.759376],[101.403454,1.901331],[101.409655,2.021686],[101.450273,2.067833],[101.544738,2.060753],[101.640752,2.126692],[101.708138,2.078426]]],[[[127.7327,0.848166],[127.805357,0.825945],[127.881011,0.832146],[127.918632,0.876794],[127.92907,0.934724],[127.967311,1.042572],[128.055264,1.115643],[128.116966,1.127063],[128.160787,1.157811],[128.153139,1.237909],[128.15748,1.316612],[128.222489,1.400638],[128.42413,1.51753],[128.539266,1.559233],[128.688404,1.572566],[128.705147,1.527711],[128.688094,1.463735],[128.716929,1.367307],[128.702666,1.106393],[128.668767,1.069444],[128.514564,0.979269],[128.345996,0.907128],[128.298867,0.876794],[128.257216,0.804964],[128.260626,0.733806],[128.397982,0.638824],[128.611199,0.549941],[128.655227,0.508238],[128.683753,0.438475],[128.691608,0.36034],[128.743284,0.323236],[128.815424,0.305356],[128.863277,0.268356],[128.899554,0.216266],[128.540402,0.337913],[128.446455,0.391553],[128.332767,0.397961],[128.220629,0.414239],[128.106114,0.460902],[127.983124,0.471858],[127.924419,0.438113],[127.901372,0.372277],[127.887419,0.298328],[127.914601,0.206293],[127.912224,0.150534],[127.888969,0.049506],[127.977853,-0.248305],[128.089474,-0.485241],[128.253495,-0.731686],[128.334627,-0.816281],[128.425474,-0.89271],[128.278093,-0.870024],[128.233444,-0.787704],[128.046376,-0.706055],[128.010822,-0.657324],[127.888969,-0.42354],[127.853313,-0.379925],[127.740865,-0.300343],[127.691565,-0.241897],[127.674822,-0.162935],[127.687431,-0.079943],[127.681333,0.034882],[127.685468,0.149035],[127.708722,0.288096],[127.668621,0.336776],[127.616221,0.382923],[127.555346,0.489635],[127.537053,0.610867],[127.541807,0.680682],[127.567025,0.742539],[127.600718,0.796024],[127.607953,0.848217],[127.520413,0.924027],[127.428532,1.139982],[127.420264,1.251965],[127.537156,1.467456],[127.534676,1.572049],[127.55793,1.634216],[127.570643,1.700155],[127.631724,1.843712],[127.73146,1.966134],[127.899925,2.137338],[127.96421,2.1747],[128.036454,2.199039],[128.042758,2.157078],[128.031286,2.119871],[127.906746,1.94567],[127.890106,1.906292],[127.886799,1.832963],[127.946434,1.789659],[128.010926,1.70124],[128.023741,1.583521],[128.025912,1.458103],[128.011753,1.331754],[127.987671,1.289586],[127.885352,1.162772],[127.652808,1.01384],[127.632964,0.977202],[127.634411,0.936119],[127.677406,0.886561],[127.7327,0.848166]]],[[[97.334142,2.075636],[97.328354,2.05326],[97.225105,2.158473],[97.108316,2.216919],[97.156582,2.232215],[97.252803,2.216041],[97.291457,2.200848],[97.328664,2.148551],[97.334142,2.075636]]],[[[128.453896,2.051761],[128.29587,2.034708],[128.259903,2.082509],[128.217942,2.297483],[128.330389,2.469359],[128.472086,2.570489],[128.568618,2.596121],[128.602104,2.59762],[128.688507,2.473699],[128.623188,2.224412],[128.547534,2.097082],[128.453896,2.051761]]],[[[125.407467,2.651621],[125.397235,2.629556],[125.360028,2.746809],[125.390827,2.805359],[125.435269,2.783861],[125.446431,2.762984],[125.403953,2.707019],[125.407467,2.651621]]],[[[96.463704,2.360011],[96.400969,2.35071],[96.340611,2.372052],[96.290485,2.429568],[96.021974,2.595759],[95.938465,2.598446],[95.87976,2.640924],[95.80855,2.6556],[95.732999,2.766498],[95.717186,2.825978],[95.77217,2.854968],[95.806276,2.915998],[95.89578,2.889075],[95.997893,2.781381],[96.101556,2.741228],[96.129771,2.72092],[96.18,2.661337],[96.417299,2.515196],[96.443033,2.465638],[96.459363,2.415822],[96.463704,2.360011]]],[[[108.887442,2.905404],[108.838866,2.853004],[108.786569,2.885664],[108.867081,2.991911],[108.885685,2.99899],[108.887442,2.905404]]],[[[105.760294,2.86303],[105.71854,2.859206],[105.706137,2.888868],[105.707894,2.940079],[105.704174,2.980904],[105.692185,3.011341],[105.692185,3.062501],[105.730632,3.036973],[105.760294,3.013046],[105.794504,2.995941],[105.822203,2.984366],[105.836775,2.976511],[105.809387,2.903957],[105.760294,2.86303]]],[[[106.285223,3.15712],[106.283673,3.088236],[106.21453,3.128543],[106.200991,3.204869],[106.223728,3.229571],[106.271167,3.21629],[106.285223,3.15712]]],[[[117.658379,3.280524],[117.64577,3.247761],[117.560297,3.328221],[117.53756,3.386357],[117.547895,3.431987],[117.636779,3.43607],[117.68091,3.407544],[117.658379,3.280524]]],[[[125.658098,3.436018],[125.63319,3.405426],[125.511543,3.461133],[125.517538,3.549603],[125.501208,3.593218],[125.468549,3.639106],[125.455319,3.684168],[125.468859,3.733261],[125.543479,3.670422],[125.585647,3.5711],[125.643525,3.476532],[125.658098,3.436018]]],[[[126.851823,3.768452],[126.835494,3.756929],[126.79963,3.783904],[126.777513,3.813411],[126.778856,3.843177],[126.804488,3.857904],[126.856991,3.812429],[126.857818,3.787211],[126.851823,3.768452]]],[[[126.719325,3.874648],[126.721805,3.832531],[126.661241,3.928391],[126.63747,4.041924],[126.685529,4.001436],[126.739686,3.917746],[126.719325,3.874648]]],[[[117.884722,4.186153],[117.917898,4.0905],[117.922859,4.054275],[117.736824,4.004019],[117.6251,4.12148],[117.649078,4.168996],[117.745402,4.166929],[117.884722,4.186153]]],[[[108.316004,3.689646],[108.179578,3.653059],[108.10041,3.704529],[108.186193,3.767987],[108.216372,3.772147],[108.236112,3.784576],[108.243243,3.810362],[108.088524,3.852117],[108.044496,3.888962],[108.002328,3.982858],[108.003465,4.042596],[108.202006,4.200467],[108.248308,4.217159],[108.255542,4.151737],[108.392898,3.986165],[108.39879,3.875991],[108.393519,3.8362],[108.316004,3.689646]]],[[[116.553124,4.359838],[116.589091,4.338444],[116.638648,4.339115],[116.697818,4.354954],[116.843494,4.340149],[117.100636,4.337074],[117.277524,4.299324],[117.450898,4.192897],[117.537353,4.171374],[117.574457,4.170598],[117.566189,4.162304],[117.497459,4.133391],[117.465316,4.076082],[117.559367,3.988336],[117.565982,3.929941],[117.639052,3.877981],[117.728246,3.796745],[117.73176,3.770261],[117.762042,3.733881],[117.777235,3.689232],[117.714397,3.644842],[117.629854,3.636316],[117.567325,3.678277],[117.509655,3.730367],[117.494875,3.665565],[117.450433,3.628513],[117.287859,3.639313],[117.171587,3.638951],[117.055936,3.622673],[117.113813,3.612648],[117.16642,3.591977],[117.346254,3.426613],[117.384701,3.365376],[117.321862,3.243575],[117.352455,3.193759],[117.422011,3.165182],[117.506864,3.104565],[117.567222,3.098468],[117.61063,3.064361],[117.612387,3.004881],[117.637915,2.950828],[117.569186,2.929279],[117.637192,2.914965],[117.697653,2.887318],[117.664581,2.859257],[117.638846,2.825306],[117.666751,2.806909],[117.749743,2.775593],[117.785917,2.746758],[117.804934,2.668933],[117.885756,2.541757],[118.03417,2.377633],[118.066623,2.317843],[118.066313,2.262756],[118.041612,2.215421],[117.957069,2.159972],[117.88927,2.087005],[117.881105,2.06065],[117.789224,2.026853],[117.831289,2.001997],[117.864672,1.968407],[117.92844,1.866811],[118.080369,1.70186],[118.15685,1.640314],[118.471663,1.416451],[118.638991,1.31899],[118.852518,1.095851],[118.963416,1.044278],[118.984913,0.982111],[118.892413,0.886871],[118.757434,0.839226],[118.534812,0.813542],[118.311466,0.84708],[118.196124,0.874366],[118.095459,0.929143],[118.01629,1.039162],[117.911594,1.098693],[117.951901,1.031979],[117.977326,0.963817],[117.964304,0.889558],[117.923066,0.831371],[117.852579,0.788686],[117.776925,0.754011],[117.745092,0.72962],[117.553373,0.341013],[117.52216,0.235903],[117.463766,-0.200453],[117.462939,-0.323701],[117.548929,-0.554384],[117.556887,-0.675256],[117.573837,-0.727501],[117.562468,-0.770857],[117.521747,-0.796695],[117.357106,-0.867182],[117.24073,-0.92568],[117.146473,-1.008982],[117.070198,-1.112645],[117.003226,-1.187679],[116.913929,-1.223594],[116.849436,-1.218272],[116.797037,-1.183752],[116.760553,-1.117141],[116.739882,-1.044225],[116.726137,-1.098176],[116.72872,-1.150782],[116.759313,-1.207161],[116.770992,-1.266641],[116.753422,-1.327309],[116.715181,-1.375781],[116.611622,-1.428646],[116.554467,-1.473915],[116.545062,-1.553135],[116.51757,-1.598093],[116.477883,-1.632768],[116.332155,-1.712453],[116.299599,-1.744338],[116.275518,-1.784852],[116.353239,-1.778651],[116.424346,-1.784852],[116.429617,-1.864124],[116.451941,-1.923138],[116.423519,-2.052588],[116.313965,-2.139869],[116.368639,-2.158163],[116.418145,-2.186688],[116.528112,-2.207875],[116.565423,-2.299704],[116.549196,-2.41086],[116.529353,-2.510544],[116.450391,-2.538243],[116.401298,-2.519846],[116.352516,-2.521603],[116.316756,-2.551885],[116.307247,-2.603303],[116.37546,-2.577982],[116.37174,-2.706811],[116.353239,-2.832747],[116.330605,-2.9022],[116.288851,-2.958785],[116.225805,-2.976924],[116.166274,-2.934549],[116.154078,-2.983797],[116.172269,-3.025293],[116.257225,-3.126372],[116.205031,-3.148541],[116.167101,-3.18301],[116.150048,-3.233239],[116.057547,-3.348271],[116.016722,-3.432813],[115.999359,-3.523299],[115.956158,-3.594974],[115.258216,-3.906841],[114.693496,-4.169719],[114.652568,-4.151839],[114.625283,-4.111738],[114.605956,-3.703288],[114.536193,-3.494463],[114.525547,-3.376693],[114.445966,-3.481803],[114.397183,-3.471157],[114.34437,-3.444389],[114.304579,-3.410024],[114.301685,-3.364756],[114.34437,-3.235203],[114.292693,-3.306206],[114.236366,-3.361087],[114.177972,-3.354369],[114.127639,-3.32729],[114.109035,-3.285174],[114.082267,-3.278921],[113.95876,-3.394314],[113.795773,-3.456223],[113.705132,-3.455293],[113.633612,-3.419894],[113.637333,-3.332044],[113.630098,-3.246055],[113.610048,-3.195722],[113.566329,-3.177687],[113.526022,-3.184043],[113.409026,-3.22895],[113.367168,-3.223679],[113.343191,-3.246468],[113.033959,-2.933516],[112.971534,-3.187144],[112.758007,-3.322122],[112.60029,-3.400464],[112.443917,-3.371112],[112.284961,-3.321037],[112.126624,-3.381447],[111.954852,-3.529655],[111.907413,-3.552548],[111.858113,-3.551876],[111.822043,-3.532497],[111.834342,-3.420153],[111.835996,-3.307756],[111.823077,-3.057177],[111.809434,-3.008033],[111.760135,-2.9392],[111.694712,-2.889487],[111.658332,-2.925764],[111.625466,-2.975477],[111.494931,-2.973307],[111.367601,-2.933671],[111.259183,-2.956408],[111.044313,-3.05573],[110.930108,-3.07113],[110.868716,-3.048702],[110.829649,-2.995166],[110.852076,-2.946228],[110.899309,-2.908608],[110.811149,-2.938477],[110.735804,-2.988706],[110.703145,-3.020901],[110.668108,-3.004829],[110.574057,-2.891451],[110.377583,-2.933826],[110.350918,-2.946745],[110.302549,-2.985399],[110.25604,-2.966124],[110.232579,-2.925092],[110.224311,-2.688673],[110.124369,-2.23392],[110.096567,-2.001376],[110.074966,-1.946393],[109.959831,-1.862832],[109.963759,-1.742839],[110.023497,-1.642535],[110.036106,-1.525643],[110.019259,-1.398829],[109.983292,-1.274806],[109.938127,-1.181168],[109.873428,-1.101069],[109.787439,-1.011359],[109.681709,-0.944283],[109.453816,-0.868732],[109.333513,-0.875347],[109.288864,-0.845788],[109.258789,-0.807444],[109.270984,-0.732048],[109.311705,-0.680217],[109.366276,-0.667401],[109.372787,-0.638152],[109.257032,-0.577484],[109.160603,-0.494905],[109.130321,-0.445399],[109.121123,-0.390932],[109.121743,-0.265048],[109.149648,-0.18557],[109.164738,-0.142523],[109.194607,-0.009405],[109.257548,0.031161],[109.247317,0.055759],[109.220238,0.073846],[109.180757,0.117461],[109.148511,0.16769],[109.074821,0.252853],[108.944493,0.355638],[108.922789,0.532836],[108.905839,0.793957],[108.916794,0.912658],[108.958652,1.134608],[109.030896,1.204475],[109.088463,1.223905],[109.131561,1.253877],[109.096111,1.258166],[109.065415,1.247159],[109.010225,1.239666],[109.055494,1.438465],[109.075854,1.495878],[109.166701,1.607086],[109.273155,1.705478],[109.318113,1.821078],[109.378471,1.922725],[109.628895,2.027525],[109.538978,1.896215],[109.5489,1.848363],[109.570811,1.806298],[109.63582,1.776636],[109.65401,1.614889],[109.735762,1.522931],[109.818031,1.438956],[109.878492,1.397848],[109.944897,1.338058],[109.991664,1.282558],[110.04086,1.235739],[110.114757,1.19016],[110.315262,0.996012],[110.399081,0.939064],[110.461403,0.882065],[110.505741,0.861963],[110.614778,0.878138],[110.938066,1.017354],[110.996047,1.026346],[111.101312,1.050531],[111.286727,1.043192],[111.483149,0.995753],[111.546711,0.994358],[111.607379,1.022625],[111.691302,1.014202],[111.769747,0.999474],[111.809021,1.01167],[111.923122,1.113266],[112.078462,1.143341],[112.128588,1.243594],[112.167345,1.338162],[112.185742,1.439086],[112.250647,1.479652],[112.341598,1.51474],[112.476163,1.559078],[112.943008,1.567011],[112.988225,1.54758],[112.997992,1.49624],[112.988225,1.457121],[113.00657,1.433892],[113.068634,1.431799],[113.126253,1.408131],[113.359004,1.327154],[113.458222,1.302143],[113.513206,1.308396],[113.622243,1.235946],[113.681671,1.260595],[113.760323,1.311393],[113.835254,1.379864],[113.902381,1.43428],[113.999998,1.45526],[114.125985,1.452366],[114.27471,1.470892],[114.387054,1.500064],[114.512525,1.452005],[114.545908,1.467146],[114.567457,1.514146],[114.632207,1.617059],[114.66094,1.68628],[114.686158,1.819062],[114.703521,1.850792],[114.751063,1.868982],[114.799949,1.893942],[114.812713,1.933784],[114.830593,1.980009],[114.815814,2.018947],[114.78796,2.051606],[114.758711,2.162401],[114.768323,2.21294],[114.78641,2.250509],[114.836329,2.269371],[114.969086,2.350813],[115.086547,2.446156],[115.150832,2.492923],[115.179047,2.523205],[115.180856,2.566898],[115.129852,2.612399],[115.080759,2.634232],[115.077038,2.68702],[115.078899,2.723426],[115.093678,2.757816],[115.086547,2.791199],[115.08634,2.841119],[115.117553,2.894862],[115.189951,2.974444],[115.24695,3.025914],[115.310202,2.993926],[115.384203,3.008731],[115.45438,3.034311],[115.493137,3.12813],[115.499131,3.17314],[115.489726,3.208642],[115.514221,3.342406],[115.519957,3.361656],[115.566104,3.445733],[115.570651,3.502293],[115.544503,3.63368],[115.560885,3.733054],[115.568429,3.938778],[115.596076,3.97552],[115.627496,4.081973],[115.67881,4.193026],[115.782422,4.253746],[115.836837,4.333276],[115.860763,4.348055],[115.896213,4.348701],[116.02158,4.290694],[116.134441,4.355187],[116.236244,4.362551],[116.320321,4.353714],[116.367709,4.327333],[116.414528,4.308213],[116.51478,4.370793],[116.553124,4.359838]]],[[[126.81658,4.033501],[126.776272,4.012572],[126.711263,4.020272],[126.704442,4.071018],[126.770175,4.162227],[126.813583,4.2585],[126.767281,4.282581],[126.722116,4.34418],[126.720565,4.415803],[126.757359,4.547888],[126.812446,4.537191],[126.865156,4.47983],[126.886757,4.372524],[126.92107,4.291005],[126.847689,4.180004],[126.81658,4.033501]]],[[[96.49254,5.229345],[96.615219,5.220198],[96.842699,5.274459],[96.967756,5.269136],[97.085682,5.229914],[97.190378,5.207331],[97.451137,5.236037],[97.50023,5.228338],[97.547152,5.205884],[97.58746,5.170382],[97.706729,5.040132],[97.90837,4.879987],[97.966558,4.777486],[97.999838,4.662248],[98.020715,4.635195],[98.248401,4.414563],[98.273309,4.32232],[98.24127,4.19455],[98.307312,4.092877],[98.528281,3.997534],[98.658712,3.928133],[98.686514,3.885525],[98.705738,3.834753],[98.777981,3.759435],[98.868622,3.710342],[99.151189,3.581229],[99.521502,3.311168],[99.732342,3.183062],[99.906698,2.98819],[99.969433,2.894914],[100.021316,2.794248],[100.127253,2.647591],[100.30719,2.46662],[100.352769,2.411481],[100.401138,2.331641],[100.457052,2.257434],[100.523818,2.189169],[100.603606,2.136976],[100.685255,2.120078],[100.816823,1.989285],[100.88793,1.948253],[100.876665,2.050573],[100.816927,2.14018],[100.817754,2.194233],[100.828192,2.242602],[100.877078,2.283323],[100.935989,2.294744],[101.046163,2.257485],[101.225171,2.102249],[101.300825,2.011815],[101.357669,1.887017],[101.405108,1.757412],[101.476628,1.693075],[101.57502,1.670544],[101.684264,1.661243],[101.784826,1.6214],[102.019954,1.442135],[102.098089,1.357902],[102.157207,1.25889],[102.197928,1.141688],[102.223352,1.018698],[102.239062,0.990327],[102.389957,0.842016],[102.469229,0.779281],[102.566381,0.748843],[102.849464,0.715461],[102.949303,0.664197],[103.031779,0.578931],[103.066505,0.492012],[103.007491,0.415324],[102.786316,0.29776],[102.549948,0.216473],[102.779598,0.244482],[102.89587,0.278588],[103.00284,0.33197],[103.108673,0.399821],[103.276622,0.494544],[103.338943,0.513716],[103.412324,0.506946],[103.478883,0.480178],[103.578722,0.387057],[103.67267,0.288923],[103.742743,0.174408],[103.786771,0.046974],[103.706466,-0.019585],[103.589471,-0.068729],[103.42855,-0.191771],[103.4116,-0.240398],[103.444467,-0.271714],[103.405192,-0.3622],[103.49542,-0.418062],[103.509165,-0.465553],[103.431134,-0.533559],[103.438575,-0.575623],[103.53273,-0.754682],[103.577585,-0.795713],[103.721142,-0.886767],[103.940044,-0.979061],[104.061173,-1.021384],[104.198529,-1.054251],[104.257544,-1.053424],[104.360586,-1.038386],[104.381257,-1.074249],[104.425699,-1.250673],[104.446886,-1.362397],[104.478305,-1.600109],[104.518613,-1.698759],[104.515926,-1.819475],[104.568739,-1.921795],[104.676329,-1.987217],[104.791051,-2.040857],[104.845208,-2.092999],[104.844484,-2.171805],[104.826088,-2.23423],[104.78733,-2.282703],[104.668475,-2.385539],[104.647287,-2.429877],[104.630544,-2.543359],[104.650801,-2.59519],[104.698344,-2.598136],[104.735757,-2.570902],[104.878384,-2.418818],[104.917038,-2.392205],[104.970782,-2.370863],[105.025869,-2.35753],[105.286525,-2.35629],[105.397009,-2.380164],[105.495297,-2.429671],[105.582011,-2.491941],[105.899097,-2.887782],[106.044308,-3.10627],[106.05578,-3.160634],[106.058364,-3.217219],[106.033663,-3.260886],[105.901474,-3.410024],[105.885041,-3.451262],[105.843803,-3.613681],[105.851555,-3.730573],[105.89548,-3.779666],[105.930516,-3.832996],[105.927726,-3.881313],[105.840599,-4.121815],[105.831504,-4.162898],[105.886488,-4.553934],[105.890519,-4.659767],[105.879357,-4.793661],[105.887212,-5.009565],[105.816105,-5.676604],[105.802772,-5.716395],[105.748305,-5.818301],[105.676578,-5.817577],[105.618494,-5.799594],[105.57798,-5.760682],[105.555552,-5.712313],[105.522686,-5.67278],[105.349363,-5.549532],[105.303991,-5.570047],[105.128085,-5.722803],[105.081369,-5.74554],[105.022665,-5.726834],[104.930267,-5.681152],[104.639536,-5.520386],[104.621656,-5.571804],[104.618142,-5.641464],[104.675916,-5.816234],[104.683977,-5.892715],[104.631061,-5.907908],[104.601605,-5.904601],[104.480889,-5.803108],[104.369475,-5.690712],[104.242971,-5.538835],[104.15047,-5.466591],[104.066858,-5.385976],[103.83142,-5.079586],[103.770338,-5.032819],[103.405709,-4.81645],[103.332122,-4.765187],[103.238898,-4.675683],[103.138645,-4.596205],[102.918917,-4.470683],[102.537649,-4.152149],[102.371974,-3.969266],[102.187696,-3.674556],[102.127544,-3.599212],[101.817899,-3.377985],[101.649021,-3.244039],[101.578637,-3.16699],[101.414203,-2.898841],[101.366247,-2.80851],[101.305682,-2.728722],[101.206257,-2.66392],[101.11851,-2.5878],[100.944464,-2.345231],[100.889584,-2.248493],[100.848036,-2.1439],[100.855271,-1.934197],[100.486508,-1.299145],[100.393903,-1.101276],[100.308224,-0.826616],[100.289104,-0.798814],[100.087876,-0.552886],[100.016665,-0.474234],[99.930676,-0.400182],[99.860086,-0.313779],[99.721283,-0.032969],[99.669813,0.045062],[99.597673,0.102423],[99.334537,0.208618],[99.236455,0.267788],[99.159147,0.351762],[99.111708,0.458939],[99.059618,0.686367],[98.935491,1.031927],[98.796378,1.494638],[98.702534,1.701964],[98.595357,1.864589],[98.564248,1.902158],[98.086551,2.19506],[98.005109,2.23821],[97.918499,2.264203],[97.794992,2.282858],[97.700838,2.358564],[97.661977,2.494267],[97.640583,2.676426],[97.616812,2.785102],[97.59087,2.846597],[97.391296,2.975271],[97.313161,3.077073],[97.247946,3.189005],[97.188414,3.275718],[96.968996,3.575131],[96.893962,3.653731],[96.800944,3.708559],[96.525406,3.766618],[96.444687,3.816331],[96.310845,3.986346],[96.230127,4.072775],[95.987971,4.263254],[95.57859,4.661964],[95.494771,4.761363],[95.431932,4.865052],[95.38129,4.976157],[95.206623,5.284019],[95.220679,5.346237],[95.247034,5.410781],[95.243003,5.464292],[95.22378,5.51708],[95.227811,5.564803],[95.27959,5.592889],[95.396069,5.628804],[95.516992,5.624592],[95.628923,5.609089],[95.73734,5.579272],[95.841313,5.514522],[96.027348,5.351172],[96.133285,5.294277],[96.250901,5.267017],[96.49254,5.229345]]],[[[95.362169,5.812385],[95.342636,5.784143],[95.283208,5.798561],[95.217682,5.889512],[95.24197,5.90703],[95.282484,5.897754],[95.359172,5.876748],[95.365993,5.842693],[95.362169,5.812385]]]]},"type":"Feature","properties":{"ISO_A2":"ID","NAME":"Indonesia"}},{"geometry":{"type":"Polygon","coordinates":[[[-4.412051,54.185375],[-4.614286,54.058716],[-4.696064,54.081428],[-4.765776,54.069413],[-4.785335,54.073031],[-4.745545,54.118816],[-4.698726,54.224908],[-4.614829,54.26692],[-4.50866,54.376707],[-4.424737,54.40717],[-4.39554,54.402933],[-4.377195,54.392598],[-4.337998,54.269091],[-4.392285,54.225373],[-4.412051,54.185375]]]},"type":"Feature","properties":{"ISO_A2":"IM","NAME":"Isle of Man"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[93.890011,6.831056],[93.828826,6.748684],[93.709247,7.00071],[93.657984,7.016058],[93.65633,7.136257],[93.684132,7.183593],[93.822522,7.236613],[93.859005,7.206847],[93.929595,6.973476],[93.890011,6.831056]]],[[[93.733535,7.356502],[93.63845,7.261883],[93.597212,7.318727],[93.614266,7.358104],[93.654677,7.379912],[93.692504,7.410607],[93.733535,7.356502]]],[[[93.442596,7.877814],[93.365082,7.876574],[93.342034,7.91931],[93.309375,7.96401],[93.334489,8.006953],[93.37552,8.017909],[93.433708,7.948404],[93.447351,7.899105],[93.442596,7.877814]]],[[[93.536958,8.056614],[93.490035,8.019407],[93.478253,8.024472],[93.471742,8.052687],[93.469675,8.072634],[93.4612,8.108575],[93.456446,8.171853],[93.494066,8.224666],[93.531687,8.213763],[93.511636,8.159761],[93.536958,8.056614]]],[[[73.067406,8.269108],[73.05335,8.256706],[73.038829,8.251977],[73.028545,8.253502],[73.023429,8.265904],[73.026065,8.275309],[73.038984,8.264845],[73.055882,8.27456],[73.075158,8.306341],[73.07955,8.316521],[73.083581,8.311043],[73.079808,8.293086],[73.067406,8.269108]]],[[[93.140703,8.249523],[93.170572,8.212057],[93.115278,8.218517],[93.064222,8.274947],[93.077554,8.327864],[93.096984,8.349361],[93.140703,8.249523]]],[[[92.787443,9.136652],[92.743518,9.130968],[92.716543,9.165074],[92.713339,9.204865],[92.738557,9.230651],[92.762121,9.243906],[92.785789,9.240522],[92.80925,9.173394],[92.787443,9.136652]]],[[[92.502809,10.554886],[92.47263,10.520753],[92.369587,10.547419],[92.377132,10.650565],[92.352844,10.751127],[92.370724,10.793502],[92.447825,10.865539],[92.510354,10.897475],[92.553969,10.799806],[92.574329,10.704256],[92.502809,10.554886]]],[[[72.780343,11.202469],[72.773057,11.196113],[72.772437,11.214277],[72.781842,11.243319],[72.792694,11.262724],[72.79595,11.26045],[72.792901,11.241536],[72.78794,11.215905],[72.780343,11.202469]]],[[[92.693185,11.381166],[92.644506,11.361322],[92.595723,11.386437],[92.63386,11.426745],[92.640268,11.509117],[92.689981,11.463435],[92.68719,11.411242],[92.693185,11.381166]]],[[[93.017403,12.036837],[93.062155,11.899429],[92.981746,11.959477],[92.955391,12.00242],[92.995802,12.031772],[93.017403,12.036837]]],[[[92.717576,12.8649],[92.685743,12.799943],[92.679646,12.939262],[92.694425,12.956781],[92.710651,12.961586],[92.730909,12.948512],[92.717576,12.8649]]],[[[92.722744,11.536066],[92.70073,11.512528],[92.66838,11.538728],[92.575569,11.7182],[92.559653,11.833438],[92.533918,11.873384],[92.566474,11.930538],[92.607505,11.949529],[92.631897,12.013892],[92.640578,12.112233],[92.676442,12.192383],[92.694735,12.214707],[92.769253,12.215585],[92.788269,12.225766],[92.777624,12.302557],[92.734113,12.33594],[92.71892,12.357334],[92.720677,12.54125],[92.732046,12.615613],[92.759227,12.669098],[92.740004,12.779634],[92.75313,12.820871],[92.80708,12.878904],[92.830851,13.002617],[92.80894,13.039618],[92.8601,13.230562],[92.857309,13.3581],[92.924592,13.485844],[93.029392,13.543825],[93.062258,13.545478],[93.066702,13.436467],[93.076624,13.400681],[93.016059,13.336189],[93.073833,13.252111],[93.066082,13.221571],[93.042931,13.154856],[93.00469,13.089382],[92.95136,13.06251],[92.910019,12.975177],[92.886248,12.942311],[92.965003,12.850482],[92.990221,12.538511],[92.932653,12.45309],[92.863614,12.436037],[92.87953,12.227936],[92.867128,12.181427],[92.798811,12.079263],[92.786202,12.034666],[92.747652,11.992757],[92.763982,11.940408],[92.796744,11.917516],[92.797571,11.874676],[92.766979,11.764657],[92.764602,11.639135],[92.722744,11.536066]]],[[[78.719671,31.887666],[78.717087,31.890999],[78.658383,31.965336],[78.719671,31.887666],[78.687011,31.805501],[78.693471,31.740363],[78.753881,31.668352],[78.802973,31.61807],[78.755069,31.550271],[78.726699,31.471826],[78.758635,31.436583],[78.743494,31.323799],[78.757808,31.302482],[78.791656,31.293646],[78.844521,31.301501],[78.884932,31.246258],[78.848552,31.295997],[78.844521,31.301501],[78.899505,31.33137],[78.946014,31.337209],[78.973919,31.328631],[79.011074,31.414104],[79.043785,31.426222],[79.107141,31.402657],[79.232611,31.241763],[79.338755,31.105699],[79.361234,31.086966],[79.369657,31.079912],[79.388467,31.064202],[79.493164,30.993716],[79.565459,30.949093],[79.664264,30.965216],[79.794592,30.968265],[79.8719,30.924624],[79.9166,30.894187],[79.918512,30.889898],[79.924523,30.888793],[79.924559,30.888787],[80.0815,30.78192],[80.149454,30.789852],[80.19431,30.759208],[80.207125,30.683735],[80.186248,30.605316],[80.191209,30.568419],[80.260972,30.561339],[80.409594,30.509456],[80.540955,30.463541],[80.608858,30.448891],[80.682135,30.414836],[80.746782,30.360421],[80.873545,30.29058],[80.985476,30.237121],[81.010229,30.164516],[80.966149,30.180019],[80.907651,30.171905],[80.848171,30.139763],[80.819904,30.11935],[80.684099,29.994319],[80.612889,29.955846],[80.549068,29.899777],[80.401842,29.730253],[80.316886,29.572071],[80.254874,29.423321],[80.25596,29.31803],[80.232963,29.194627],[80.169557,29.124321],[80.130489,29.100395],[80.0846,28.994174],[80.051631,28.870331],[80.070699,28.830179],[80.149661,28.776047],[80.226556,28.723363],[80.324844,28.66639],[80.418585,28.612026],[80.47915,28.604895],[80.49579,28.635798],[80.517907,28.665176],[80.586999,28.649621],[80.671335,28.596239],[80.726215,28.553916],[80.750761,28.539705],[80.896127,28.468547],[81.016585,28.409584],[81.168927,28.335015],[81.206237,28.289385],[81.239,28.240861],[81.310831,28.176368],[81.486014,28.062215],[81.635514,27.980463],[81.757212,27.913826],[81.852606,27.867085],[81.896841,27.874475],[81.94521,27.899279],[81.987637,27.913749],[82.036988,27.900597],[82.111867,27.864966],[82.287722,27.756549],[82.451381,27.671825],[82.629923,27.68707],[82.677362,27.673453],[82.710848,27.596662],[82.733379,27.518992],[82.932799,27.467678],[83.064005,27.444553],[83.213867,27.402281],[83.289728,27.371017],[83.369413,27.410265],[83.383934,27.444811],[83.447134,27.465352],[83.551624,27.456361],[83.746961,27.395951],[83.828816,27.377812],[83.897184,27.435122],[84.024825,27.461683],[84.091074,27.491346],[84.229774,27.427835],[84.480818,27.348202],[84.610216,27.298696],[84.640756,27.249862],[84.654812,27.203663],[84.653831,27.09168],[84.685405,27.041037],[84.937172,26.926884],[85.020061,26.878515],[85.087344,26.86296],[85.125378,26.860996],[85.151526,26.84663],[85.174109,26.78157],[85.191782,26.766532],[85.240203,26.750357],[85.293016,26.741004],[85.456417,26.797228],[85.568452,26.839835],[85.648395,26.828983],[85.699917,26.781621],[85.70741,26.712659],[85.73733,26.639744],[85.794588,26.604165],[85.855721,26.600185],[86.007288,26.649381],[86.129399,26.611709],[86.241589,26.598015],[86.366129,26.574399],[86.414395,26.556312],[86.543638,26.496006],[86.701406,26.435053],[86.762487,26.441926],[87.016425,26.555434],[87.037923,26.54161],[87.089548,26.433219],[87.166804,26.394255],[87.287417,26.360303],[87.413559,26.422961],[87.513036,26.405004],[87.633339,26.399112],[87.748784,26.429317],[87.849243,26.436888],[87.995074,26.382369],[88.02701,26.39503],[88.054915,26.430015],[88.111552,26.58644],[88.161575,26.724777],[88.157234,26.807305],[88.111036,26.92846],[87.993162,27.086073],[87.984428,27.133951],[88.024116,27.40887],[88.067886,27.567362],[88.105558,27.642447],[88.147002,27.749211],[88.154237,27.798691],[88.15031,27.843314],[88.109795,27.870599],[88.098943,27.90455],[88.108969,27.933024],[88.141111,27.948914],[88.27516,27.968836],[88.425952,28.011676],[88.486103,28.034465],[88.53163,28.057357],[88.577932,28.09335],[88.621082,28.091826],[88.756216,28.039684],[88.803706,28.006921],[88.828615,27.907263],[88.848768,27.868661],[88.829906,27.767401],[88.749033,27.521886],[88.764897,27.429876],[88.832542,27.362826],[88.89135,27.316059],[88.881686,27.297481],[88.760402,27.218132],[88.738801,27.175603],[88.765673,27.13421],[88.813577,27.099018],[88.835177,27.065583],[88.857657,26.961481],[88.919152,26.932207],[89.040953,26.865027],[89.148233,26.816141],[89.332098,26.848646],[89.384188,26.82658],[89.47457,26.803429],[89.54516,26.79622],[89.586088,26.778934],[89.609187,26.762191],[89.606138,26.741133],[89.609962,26.719455],[89.710886,26.713899],[89.763855,26.701549],[89.943172,26.723951],[90.122954,26.754595],[90.206102,26.847509],[90.242327,26.854149],[90.345886,26.890323],[90.447637,26.850764],[90.559878,26.796556],[90.62034,26.780226],[90.739661,26.7717],[90.855778,26.77772],[91.1339,26.803403],[91.286552,26.789915],[91.426802,26.867094],[91.455844,26.866888],[91.517546,26.807305],[91.671593,26.802008],[91.753759,26.830766],[91.842074,26.852987],[91.898608,26.860066],[91.943773,26.860816],[91.998344,26.854976],[92.04971,26.874846],[92.073378,26.914843],[92.068107,26.975201],[92.0309,27.04083],[91.998654,27.079278],[91.992297,27.099897],[92.002581,27.147387],[92.031158,27.214308],[92.083455,27.290608],[92.044956,27.364712],[91.990799,27.450211],[91.951008,27.458298],[91.851272,27.438636],[91.743062,27.442511],[91.658106,27.493619],[91.594751,27.557646],[91.579351,27.611442],[91.597644,27.677019],[91.62586,27.737325],[91.631906,27.75996],[91.712573,27.75983],[91.824711,27.74642],[91.909408,27.729677],[91.977673,27.730349],[92.101283,27.807631],[92.157559,27.812256],[92.222258,27.826932],[92.250525,27.841479],[92.270058,27.830214],[92.341062,27.820757],[92.414856,27.824607],[92.480691,27.845949],[92.546734,27.879177],[92.664349,27.94894],[92.687759,27.98899],[92.687449,28.025732],[92.66559,28.049864],[92.643472,28.061543],[92.652567,28.093376],[92.701866,28.147119],[92.881856,28.228122],[93.034973,28.327651],[93.119205,28.402298],[93.157756,28.492731],[93.206539,28.590813],[93.251962,28.629467],[93.360534,28.654065],[93.664908,28.690239],[93.760768,28.729771],[93.902258,28.803203],[93.973623,28.860797],[94.013311,28.907538],[94.017652,28.959525],[94.111548,28.97588],[94.193455,29.059932],[94.293294,29.14463],[94.468064,29.216201],[94.62299,29.312423],[94.677043,29.297023],[94.73337,29.2516],[94.763136,29.201293],[94.769441,29.175868],[94.967516,29.144061],[94.998884,29.149177],[95.144715,29.104064],[95.279074,29.049545],[95.353074,29.035902],[95.389248,29.037401],[95.420202,29.054299],[95.45653,29.102281],[95.493789,29.137007],[95.51694,29.151193],[95.515803,29.206331],[95.710365,29.313818],[95.885031,29.390945],[96.035306,29.447143],[96.079593,29.424147],[96.128479,29.381385],[96.19478,29.272451],[96.234984,29.245786],[96.3372,29.261005],[96.355804,29.249068],[96.339732,29.209794],[96.270538,29.161218],[96.180827,29.117655],[96.12233,29.082075],[96.141346,28.963452],[96.137161,28.922602],[96.162224,28.909709],[96.346864,29.027427],[96.435695,29.050682],[96.467063,29.022286],[96.47714,28.959318],[96.550004,28.82961],[96.580906,28.763671],[96.395595,28.606523],[96.327382,28.525391],[96.329862,28.496814],[96.326141,28.468547],[96.278909,28.428188],[96.281493,28.412065],[96.319837,28.386511],[96.366449,28.367261],[96.389083,28.367933],[96.427686,28.406018],[96.602662,28.459917],[96.65284,28.449737],[96.77583,28.367054],[96.833036,28.362403],[96.980882,28.337702],[97.075346,28.368966],[97.145161,28.340312],[97.289493,28.23683],[97.322515,28.217994],[97.310267,28.155207],[97.302774,28.085986],[97.339154,28.030873],[97.343547,27.982349],[97.335124,27.937727],[97.306185,27.907082],[97.226086,27.890055],[97.157822,27.83688],[97.049715,27.760011],[96.962795,27.698284],[96.899698,27.643869],[96.876857,27.58674],[96.883627,27.514858],[96.90192,27.439592],[97.103768,27.163329],[97.102063,27.115425],[97.038088,27.102041],[96.95339,27.13328],[96.880268,27.177825],[96.797792,27.296215],[96.731646,27.33151],[96.665759,27.339262],[96.274207,27.278361],[96.190801,27.261282],[96.061455,27.217099],[95.970918,27.128086],[95.905289,27.046644],[95.837282,27.013804],[95.738374,26.950422],[95.463817,26.756042],[95.305067,26.672248],[95.201456,26.641397],[95.128695,26.597292],[95.089421,26.525513],[95.05981,26.473992],[95.05087,26.347281],[95.068957,26.191141],[95.108438,26.091431],[95.129315,26.070399],[95.132467,26.041253],[95.092935,25.987303],[95.040742,25.941311],[95.015214,25.912941],[94.991959,25.770469],[94.945761,25.70024],[94.861115,25.597198],[94.785874,25.519321],[94.667741,25.45886],[94.622886,25.410026],[94.579943,25.31985],[94.554415,25.243447],[94.55302,25.215722],[94.566507,25.191512],[94.615651,25.164588],[94.675286,25.138569],[94.70376,25.097848],[94.707584,25.048756],[94.663297,24.930985],[94.584077,24.767248],[94.493178,24.637644],[94.399437,24.51406],[94.377268,24.473752],[94.293036,24.321875],[94.219707,24.11318],[94.170252,23.972646],[94.127671,23.876476],[94.074754,23.872083],[94.010831,23.902934],[93.855491,23.943913],[93.755859,23.976909],[93.683357,24.006519],[93.633283,24.005357],[93.564036,23.986081],[93.493808,23.972852],[93.452157,23.987399],[93.355573,24.074112],[93.326273,24.06419],[93.307359,24.021867],[93.372523,23.774156],[93.41495,23.682095],[93.408077,23.528047],[93.391282,23.33917],[93.366012,23.132516],[93.349372,23.084948],[93.308031,23.030378],[93.253461,23.015495],[93.203851,23.036992],[93.164164,23.032031],[93.150935,22.997305],[93.16251,22.907956],[93.114244,22.805714],[93.078691,22.718226],[93.088199,22.633244],[93.105046,22.5471],[93.161993,22.360186],[93.162407,22.291895],[93.151141,22.230633],[93.121479,22.205182],[93.070578,22.20942],[93.042983,22.183995],[93.02195,22.145677],[92.964538,22.003774],[92.909451,21.988917],[92.854312,22.01013],[92.771423,22.104801],[92.720987,22.132448],[92.688947,22.130975],[92.674685,22.105989],[92.652619,22.0493],[92.630346,22.011318],[92.574897,21.97809],[92.561255,22.048034],[92.531851,22.410312],[92.50963,22.525705],[92.491388,22.685386],[92.464465,22.734427],[92.430462,22.821811],[92.393151,22.897026],[92.361629,22.929014],[92.341268,23.069807],[92.333827,23.242406],[92.33424,23.323822],[92.289385,23.492494],[92.24608,23.683619],[92.187066,23.675532],[92.152339,23.72186],[92.127018,23.721007],[92.044077,23.67778],[91.978551,23.692017],[91.929614,23.685996],[91.929511,23.59825],[91.937882,23.50469],[91.919175,23.471048],[91.790088,23.361029],[91.754224,23.287313],[91.757945,23.209798],[91.773861,23.106083],[91.75102,23.053529],[91.6949,23.004849],[91.619555,22.979683],[91.553564,22.991569],[91.511241,23.033711],[91.471399,23.141275],[91.436259,23.199902],[91.399465,23.213855],[91.37063,23.19799],[91.366754,23.130475],[91.368666,23.074561],[91.359364,23.068386],[91.338849,23.07699],[91.315233,23.104378],[91.25379,23.373638],[91.165526,23.581042],[91.160462,23.660623],[91.192501,23.762891],[91.231982,23.920478],[91.33642,24.018818],[91.350218,24.060496],[91.367064,24.093517],[91.392644,24.10008],[91.526383,24.090752],[91.571393,24.106591],[91.611132,24.152841],[91.6687,24.190074],[91.726526,24.205086],[91.772518,24.210667],[91.846208,24.175269],[91.876904,24.195319],[91.899021,24.26069],[91.931009,24.325544],[91.951628,24.356756],[92.001082,24.370916],[92.064128,24.374352],[92.085057,24.38616],[92.102006,24.408045],[92.117509,24.493957],[92.198073,24.685755],[92.22665,24.771021],[92.230577,24.786239],[92.228304,24.881324],[92.251248,24.89507],[92.384987,24.848768],[92.443174,24.849388],[92.475059,24.868508],[92.485446,24.903312],[92.468341,24.944137],[92.373411,25.01514],[92.204636,25.110948],[92.04971,25.169472],[91.763526,25.160635],[91.479719,25.142135],[91.396623,25.151618],[91.293115,25.177973],[91.038299,25.174071],[90.730204,25.159472],[90.613053,25.167741],[90.555331,25.166578],[90.439369,25.157715],[90.25044,25.184975],[90.119595,25.21996],[90.00384,25.258355],[89.866277,25.293159],[89.833308,25.292798],[89.814084,25.305355],[89.800907,25.336154],[89.796307,25.375816],[89.824884,25.560146],[89.799615,25.839586],[89.822921,25.941414],[89.709853,26.171219],[89.67094,26.213827],[89.619057,26.215687],[89.585726,26.186051],[89.572755,26.132307],[89.59141,26.072414],[89.549914,26.005261],[89.466922,25.983531],[89.36977,26.006113],[89.289207,26.03761],[89.186422,26.105952],[89.108287,26.202225],[89.101983,26.308343],[89.066791,26.376917],[89.018629,26.410275],[88.983385,26.41955],[88.951915,26.412135],[88.924113,26.375083],[88.948194,26.338005],[88.981525,26.286122],[88.970415,26.250904],[88.940752,26.245349],[88.896517,26.260516],[88.827994,26.252196],[88.761952,26.279378],[88.722161,26.281833],[88.682835,26.291703],[88.680613,26.352991],[88.620152,26.430661],[88.518246,26.517762],[88.418149,26.571531],[88.369935,26.564115],[88.345853,26.504791],[88.351434,26.48257],[88.386264,26.471537],[88.436752,26.437095],[88.447811,26.401024],[88.44037,26.369502],[88.377996,26.312038],[88.333968,26.257519],[88.235162,26.178092],[88.150723,26.087142],[88.129019,26.018231],[88.097393,25.956349],[88.084629,25.888239],[88.106591,25.841136],[88.147416,25.811448],[88.252887,25.789796],[88.363113,25.698173],[88.452307,25.574434],[88.502433,25.53702],[88.593487,25.495292],[88.769187,25.490486],[88.795387,25.456276],[88.820346,25.365506],[88.854763,25.333544],[88.944163,25.290782],[88.951656,25.25926],[88.929797,25.223009],[88.890109,25.19438],[88.817297,25.176241],[88.747586,25.168955],[88.677513,25.180479],[88.57385,25.187869],[88.456286,25.188437],[88.372932,24.961526],[88.313349,24.881841],[88.279501,24.881944],[88.18886,24.920598],[88.149793,24.914655],[88.045096,24.71304],[88.030317,24.664438],[88.023392,24.627851],[88.079048,24.549923],[88.145452,24.485793],[88.225034,24.460626],[88.287149,24.479746],[88.337533,24.453857],[88.396961,24.389261],[88.498557,24.346628],[88.642321,24.325957],[88.723505,24.274901],[88.733582,24.230924],[88.726605,24.186224],[88.71379,24.069642],[88.699837,24.002515],[88.622529,23.82635],[88.567338,23.674421],[88.595967,23.602177],[88.616431,23.572773],[88.635758,23.549984],[88.697666,23.493037],[88.740868,23.436606],[88.703971,23.292842],[88.724435,23.254963],[88.807582,23.229694],[88.897034,23.210418],[88.928092,23.186595],[88.850629,23.040506],[88.866958,22.938859],[88.899721,22.84349],[88.923492,22.687556],[88.926955,22.671149],[88.920702,22.632004],[88.971448,22.510926],[89.049945,22.274636],[89.055836,22.186243],[89.051443,22.093174],[89.027982,21.937214],[88.949331,21.937938],[89.019611,21.833655],[89.041935,21.758672],[89.05165,21.654105],[88.967107,21.641367],[88.907369,21.653097],[88.857553,21.744668],[88.834402,21.661365],[88.745002,21.584368],[88.712963,21.621962],[88.694669,21.662399],[88.691155,21.733506],[88.740248,22.005427],[88.730326,22.036071],[88.708312,22.056148],[88.659529,22.066948],[88.641546,22.121958],[88.566822,21.832104],[88.599791,21.713765],[88.584702,21.659738],[88.446002,21.614262],[88.305442,21.723326],[88.287459,21.758207],[88.279191,21.696893],[88.253663,21.622298],[88.122094,21.635811],[88.056775,21.694128],[88.09946,21.793528],[88.181005,22.032919],[88.196302,22.139553],[88.087058,22.217714],[87.994454,22.26567],[87.941434,22.374294],[87.961587,22.255024],[88.010783,22.21265],[88.083027,22.182729],[88.159301,22.121725],[88.104111,22.047388],[88.050781,22.001086],[87.948462,21.825438],[87.823715,21.727356],[87.678194,21.653511],[87.200704,21.544887],[87.100658,21.500755],[86.954104,21.365311],[86.859536,21.23674],[86.842276,21.106361],[86.895813,20.965594],[86.939324,20.745065],[86.975498,20.700132],[86.924545,20.619775],[86.835971,20.534328],[86.762487,20.419116],[86.769205,20.35589],[86.750395,20.313231],[86.498731,20.171637],[86.445814,20.088929],[86.376568,20.006712],[86.293679,20.053763],[86.245206,20.05304],[86.311972,19.987773],[86.302981,19.944674],[86.279519,19.919456],[86.216164,19.895788],[85.852879,19.791764],[85.574963,19.692907],[85.496932,19.696912],[85.511091,19.72691],[85.55977,19.753472],[85.555119,19.866876],[85.504063,19.887675],[85.459931,19.895892],[85.248575,19.757657],[85.162792,19.620896],[85.180775,19.594877],[85.228524,19.601336],[85.370841,19.678902],[85.436884,19.656888],[85.441638,19.626554],[85.225527,19.50837],[84.770981,19.125396],[84.749794,19.050104],[84.690779,18.964683],[84.609337,18.884326],[84.462783,18.689764],[84.181766,18.400583],[84.104148,18.292682],[83.654253,18.069853],[83.572295,18.003604],[83.388016,17.786667],[83.198364,17.609003],[82.976879,17.461829],[82.59313,17.273933],[82.359552,17.096218],[82.286482,16.978085],[82.281934,16.936072],[82.307255,16.878582],[82.350044,16.825175],[82.359759,16.7828],[82.338675,16.706526],[82.327099,16.664358],[82.258783,16.559868],[82.141477,16.485351],[81.761966,16.329495],[81.711736,16.334455],[81.401884,16.365255],[81.286129,16.337039],[81.238587,16.263969],[81.132133,15.961765],[81.030021,15.88146],[80.993434,15.808751],[80.978758,15.758367],[80.91778,15.759684],[80.86476,15.782215],[80.826002,15.765911],[80.781871,15.867352],[80.70787,15.8881],[80.646582,15.894999],[80.384892,15.792783],[80.293425,15.710721],[80.101085,15.323613],[80.05344,15.074016],[80.098605,14.798218],[80.165371,14.577819],[80.178703,14.478341],[80.170125,14.349409],[80.136225,14.28657],[80.111731,14.212234],[80.143667,14.058935],[80.224385,13.858224],[80.244126,13.773475],[80.245779,13.685857],[80.306551,13.485043],[80.265623,13.521294],[80.233377,13.605785],[80.156276,13.713789],[80.062121,13.60625],[80.114211,13.528735],[80.290324,13.4367],[80.342414,13.361304],[80.229139,12.690337],[80.143047,12.452005],[80.037523,12.295787],[79.981713,12.235455],[79.858516,11.988778],[79.77139,11.690243],[79.75413,11.575314],[79.793404,11.446666],[79.748962,11.370598],[79.693151,11.31254],[79.798985,11.338688],[79.835262,11.268873],[79.848594,11.196888],[79.850248,10.768852],[79.838156,10.322574],[79.75692,10.304333],[79.667417,10.299682],[79.588558,10.312342],[79.531611,10.329654],[79.390534,10.305935],[79.31457,10.256687],[79.253592,10.17478],[79.257829,10.035202],[78.996346,9.68313],[78.939916,9.565773],[78.919142,9.45286],[78.953145,9.393794],[79.019911,9.333332],[79.107037,9.308915],[79.275503,9.284602],[79.356324,9.252149],[79.411412,9.192359],[79.212871,9.255999],[78.979603,9.268582],[78.421498,9.105026],[78.27453,8.990201],[78.192468,8.890879],[78.136037,8.663399],[78.126322,8.511315],[78.060176,8.384553],[77.770271,8.189836],[77.587234,8.129892],[77.517574,8.078319],[77.301463,8.145291],[77.065922,8.315927],[76.96691,8.407291],[76.617267,8.847057],[76.553395,8.902764],[76.482908,9.090763],[76.471746,9.160836],[76.452316,9.188793],[76.419036,9.20781],[76.40312,9.236801],[76.324572,9.452085],[76.292429,9.676438],[76.242406,9.927095],[76.284677,9.909861],[76.343072,9.827359],[76.372321,9.707366],[76.375628,9.539883],[76.419553,9.520453],[76.458827,9.53624],[76.346482,9.922134],[76.248711,10.017942],[76.222769,10.024246],[76.195587,10.086155],[76.192693,10.163773],[76.201478,10.200644],[76.123344,10.327019],[76.096058,10.402259],[75.922529,10.784097],[75.844601,11.057568],[75.723781,11.361787],[75.64606,11.468396],[75.524517,11.70311],[75.422611,11.812199],[75.314607,11.958444],[75.229755,12.023349],[75.196682,12.057507],[74.945534,12.564556],[74.868226,12.844565],[74.802907,12.976857],[74.770558,13.077342],[74.682295,13.506928],[74.681674,13.583719],[74.670926,13.667642],[74.608501,13.849646],[74.498533,14.046326],[74.4667,14.168851],[74.467011,14.216497],[74.397144,14.407441],[74.382261,14.494749],[74.335029,14.575441],[74.280355,14.649494],[74.222994,14.70887],[74.088739,14.902217],[74.04068,14.949372],[73.949213,15.074739],[73.884307,15.30643],[73.800798,15.396993],[73.931953,15.396967],[73.851958,15.482492],[73.81382,15.538561],[73.771756,15.573055],[73.832837,15.659355],[73.732792,15.656926],[73.679875,15.708861],[73.607735,15.871073],[73.476063,16.054266],[73.453739,16.152089],[73.33757,16.459874],[73.239179,17.198537],[73.149055,17.527458],[73.156083,17.621922],[73.047149,17.906763],[72.993922,18.097707],[72.972115,18.259299],[72.943176,18.365598],[72.917131,18.576127],[72.87548,18.642842],[72.870932,18.683046],[72.898734,18.778957],[72.976869,18.927217],[73.005601,19.021113],[72.972011,19.153301],[72.900698,19.014499],[72.834655,18.975612],[72.803029,19.079301],[72.802719,19.218724],[72.794554,19.252081],[72.811608,19.2989],[72.987204,19.277454],[72.78794,19.362979],[72.763962,19.413182],[72.756417,19.450544],[72.799412,19.519842],[72.726548,19.578263],[72.697403,19.757115],[72.676009,19.797965],[72.667741,19.830935],[72.708978,20.078051],[72.881164,20.56319],[72.893773,20.672744],[72.87889,20.828496],[72.840547,20.952494],[72.82432,21.083597],[72.813881,21.117213],[72.75156,21.12915],[72.692442,21.177622],[72.623816,21.371952],[72.686551,21.43572],[72.734817,21.470783],[72.668361,21.4559],[72.613274,21.461843],[72.717557,21.551295],[72.810574,21.619921],[73.022448,21.699606],[73.112468,21.750456],[72.979143,21.70467],[72.83972,21.687255],[72.543097,21.696609],[72.5925,21.87758],[72.644073,21.937989],[72.700193,21.971941],[72.617511,21.961735],[72.52222,21.976204],[72.553019,22.15994],[72.62795,22.199627],[72.708772,22.207172],[72.809231,22.233294],[72.70195,22.263603],[72.590123,22.278124],[72.45597,22.2481],[72.332567,22.270217],[72.182809,22.2697],[72.242547,22.24518],[72.306419,22.189214],[72.27438,22.089763],[72.244304,22.027648],[72.161725,21.984834],[72.094442,21.919954],[72.075529,21.862981],[72.037185,21.823061],[72.102917,21.794587],[72.170923,21.77433],[72.210301,21.728209],[72.256603,21.66121],[72.254019,21.530986],[72.076562,21.224079],[72.015274,21.155712],[71.571063,20.970555],[71.3965,20.869786],[71.024637,20.738889],[70.879736,20.714498],[70.719332,20.74044],[70.485031,20.840175],[70.127327,21.094682],[70.034413,21.178811],[69.748435,21.505716],[69.54204,21.678574],[69.38546,21.839546],[69.191674,21.991526],[69.008842,22.196785],[68.969878,22.290268],[68.983521,22.385404],[69.05163,22.437287],[69.131316,22.416255],[69.194257,22.336079],[69.238906,22.30019],[69.276526,22.285513],[69.549171,22.408426],[69.655211,22.403542],[69.727558,22.465192],[69.819026,22.451756],[70.005887,22.54772],[70.084229,22.553507],[70.177247,22.572731],[70.327728,22.815765],[70.440486,22.970329],[70.513453,23.002472],[70.509319,23.040119],[70.489269,23.089495],[70.434595,23.077093],[70.396251,23.030119],[70.367933,22.973508],[70.339511,22.939737],[70.251144,22.970898],[70.191716,22.965653],[70.118232,22.947023],[69.849825,22.856435],[69.739651,22.775199],[69.664616,22.759076],[69.235909,22.848528],[68.817123,23.053684],[68.640699,23.189954],[68.529182,23.364052],[68.417457,23.571507],[68.453838,23.629514],[68.62716,23.754158],[68.776815,23.852084],[68.642353,23.80847],[68.496936,23.748008],[68.424899,23.705582],[68.343353,23.616853],[68.234936,23.596958],[68.192045,23.728914],[68.16507,23.857304],[68.234213,23.900557],[68.28253,23.927971],[68.381284,23.95089],[68.488719,23.967245],[68.586594,23.966599],[68.724105,23.964687],[68.728136,24.265625],[68.739608,24.292006],[68.758935,24.30725],[68.781156,24.31371],[68.799966,24.309059],[68.828285,24.263997],[68.863425,24.266478],[68.900839,24.292445],[68.984554,24.273092],[69.051527,24.286322],[69.119533,24.268648],[69.235082,24.268235],[69.443441,24.275366],[69.559196,24.273092],[69.634127,24.225188],[69.716189,24.172608],[69.805176,24.165244],[69.933747,24.171367],[70.021132,24.191573],[70.06516,24.240562],[70.098182,24.287484],[70.289074,24.356317],[70.489269,24.412179],[70.546785,24.418303],[70.565026,24.385773],[70.55588,24.331099],[70.579341,24.279035],[70.659491,24.246117],[70.716335,24.237978],[70.767288,24.245394],[70.805064,24.261982],[70.886196,24.34376],[70.928157,24.362338],[70.98283,24.36102],[71.044015,24.400087],[71.045307,24.430008],[71.00624,24.444348],[70.973219,24.48742],[70.979316,24.522457],[70.969808,24.571885],[70.976319,24.618756],[71.002364,24.653896],[71.047891,24.687744],[71.020709,24.757662],[70.950843,24.891608],[70.877772,25.062992],[70.800464,25.205852],[70.702486,25.331064],[70.65205,25.422893],[70.657217,25.625775],[70.648484,25.666935],[70.614791,25.69192],[70.569574,25.705976],[70.505909,25.685306],[70.448548,25.681327],[70.325196,25.685719],[70.264631,25.706545],[70.100249,25.910047],[70.078648,25.990042],[70.077718,26.071949],[70.132598,26.214783],[70.149238,26.347539],[70.156886,26.471434],[70.147688,26.506444],[70.114615,26.548044],[70.059321,26.57874],[69.911423,26.586129],[69.735878,26.627031],[69.600641,26.699094],[69.506952,26.742657],[69.481268,26.770976],[69.470003,26.804462],[69.494498,26.954169],[69.537027,27.122944],[69.56793,27.174595],[69.62157,27.22808],[69.661309,27.264486],[69.724819,27.312674],[69.896282,27.473621],[70.049812,27.694744],[70.144587,27.849024],[70.193886,27.894887],[70.244323,27.934135],[70.318427,27.981652],[70.403693,28.02506],[70.488597,28.023148],[70.569264,27.98377],[70.629054,27.937442],[70.649104,27.83533],[70.691582,27.769003],[70.737367,27.729031],[70.797932,27.709627],[70.87493,27.714433],[71.18473,27.831635],[71.29015,27.855251],[71.543003,27.869875],[71.716687,27.915092],[71.87027,27.962505],[71.888873,28.047487],[71.947991,28.177298],[72.128549,28.346358],[72.179192,28.42178],[72.233865,28.565802],[72.291949,28.697293],[72.341921,28.751915],[72.625624,28.896144],[72.903282,29.028771],[72.948757,29.088819],[73.128333,29.363919],[73.231117,29.550626],[73.257834,29.610699],[73.317313,29.773015],[73.381599,29.934349],[73.467485,29.971685],[73.658068,30.033206],[73.80917,30.093357],[73.886529,30.162035],[73.9334,30.222083],[73.924615,30.281614],[73.882705,30.352153],[73.891542,30.394062],[73.899293,30.435378],[74.009002,30.519688],[74.215605,30.768975],[74.33937,30.893567],[74.380401,30.893412],[74.509747,30.959661],[74.63284,31.034643],[74.625761,31.06875],[74.610309,31.11283],[74.539771,31.132674],[74.517705,31.18559],[74.534965,31.261374],[74.593928,31.465367],[74.581836,31.523942],[74.510005,31.712948],[74.526025,31.765142],[74.555532,31.818575],[74.635786,31.889733],[74.739449,31.948851],[75.071521,32.089334],[75.138804,32.104759],[75.254146,32.140312],[75.324684,32.215269],[75.333521,32.279219],[75.302618,32.318906],[75.233682,32.372133],[75.104078,32.420347],[74.987341,32.462205],[74.788903,32.457812],[74.685757,32.493805],[74.6578,32.51892],[74.643382,32.607726],[74.663226,32.757665],[74.632375,32.770894],[74.588243,32.753247],[74.48334,32.770997],[74.354563,32.768698],[74.305522,32.810427],[74.329965,32.860837],[74.32273,32.92799],[74.30361,32.991811],[74.283559,33.005117],[74.222064,33.02031],[74.126256,33.075423],[74.049155,33.143429],[74.003783,33.189447],[73.98983,33.221177],[73.994223,33.242209],[74.050395,33.301249],[74.117781,33.384112],[74.142586,33.455348],[74.149976,33.506999],[74.131269,33.545085],[74.069774,33.591697],[74.00399,33.632444],[73.977583,33.667816],[73.976498,33.721275],[74.000992,33.78817],[74.078404,33.838658],[74.215605,33.886562],[74.2509,33.946094],[74.246507,33.990174],[74.20899,34.003403],[74.112562,34.003687],[73.949884,34.018802],[73.922393,34.04309],[73.904099,34.075672],[73.903892,34.107996],[73.938309,34.144764],[73.979443,34.191298],[73.972364,34.236619],[73.924563,34.28783],[73.809945,34.325321],[73.794493,34.378238],[73.812115,34.422344],[73.850097,34.485286],[73.883119,34.529055],[73.961202,34.653466],[74.055873,34.680674],[74.171938,34.720878],[74.300406,34.765398],[74.497965,34.732041],[74.594135,34.715762],[74.788748,34.677729],[74.95189,34.64587],[75.118444,34.636827],[75.187535,34.639023],[75.264068,34.601351],[75.45248,34.536704],[75.605546,34.502752],[75.709209,34.503062],[75.862067,34.560268],[75.93829,34.612565],[76.041075,34.669925],[76.172436,34.667729],[76.45676,34.756122],[76.509987,34.740877],[76.594426,34.735865],[76.696332,34.786921],[76.749042,34.847537],[76.757517,34.877846],[76.782942,34.900196],[76.89172,34.93872],[77.000913,34.991999],[77.030678,35.062356],[77.04861,35.109899],[77.168499,35.171549],[77.292988,35.235524],[77.423419,35.3026],[77.571576,35.378771],[77.696943,35.443237],[77.799365,35.495922],[77.810889,35.484527],[77.851507,35.460782],[77.894915,35.448999],[77.945868,35.471634],[78.009482,35.490237],[78.04271,35.479798],[78.047412,35.449387],[78.009172,35.306941],[78.01222,35.251027],[78.075731,35.13491],[78.158465,34.946498],[78.236186,34.769816],[78.281971,34.653932],[78.32693,34.606389],[78.515756,34.557943],[78.670785,34.518152],[78.763079,34.452936],[78.86483,34.390356],[78.936402,34.35196],[78.970095,34.302609],[78.976916,34.258116],[78.970612,34.228195],[78.931751,34.188947],[78.753054,34.087687],[78.731763,34.055544],[78.726647,34.013402],[78.761735,33.887596],[78.78375,33.808789],[78.789951,33.650349],[78.801836,33.499713],[78.865088,33.431086],[78.916713,33.386774],[78.948494,33.346544],[79.012625,33.291457],[79.066523,33.250374],[79.112515,33.226267],[79.135201,33.171929],[79.121713,33.108109],[79.1028,33.052556],[79.108588,33.022636],[79.145536,33.001448],[79.202225,32.946051],[79.209563,32.864868],[79.205584,32.809031],[79.227909,32.758802],[79.233903,32.703069],[79.21654,32.564007],[79.219382,32.501066],[79.169876,32.497216],[79.127398,32.47577],[79.06704,32.388178],[78.99769,32.365157],[78.918987,32.35818],[78.837907,32.411975],[78.771244,32.46807],[78.753467,32.499257],[78.736724,32.558375],[78.700861,32.597003],[78.631563,32.578942],[78.526349,32.570777],[78.412558,32.557703],[78.391732,32.544732],[78.389665,32.519876],[78.417467,32.466701],[78.441342,32.397351],[78.455294,32.300328],[78.486093,32.236224],[78.495912,32.21576],[78.67771,32.023033],[78.725562,31.98381],[78.735484,31.957946],[78.719671,31.887666]]]]},"type":"Feature","properties":{"ISO_A2":"IN","NAME":"India"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[96.91825,-12.194191],[96.906571,-12.199772],[96.896753,-12.195534],[96.893962,-12.192537],[96.892929,-12.187163],[96.904401,-12.186543],[96.913392,-12.181788],[96.918973,-12.173313],[96.920524,-12.161531],[96.925278,-12.17321],[96.924348,-12.184682],[96.91825,-12.194191]]],[[[96.840425,-12.181788],[96.852001,-12.186853],[96.8674,-12.181478],[96.873602,-12.18768],[96.84952,-12.197395],[96.834844,-12.179721],[96.827713,-12.150679],[96.825852,-12.126185],[96.832674,-12.126185],[96.832674,-12.136003],[96.834224,-12.144168],[96.839495,-12.160291],[96.835671,-12.171246],[96.840425,-12.181788]]],[[[105.725361,-10.492951],[105.696836,-10.564161],[105.644332,-10.525042],[105.584078,-10.512485],[105.595653,-10.459671],[105.645469,-10.45223],[105.66986,-10.449388],[105.705517,-10.430629],[105.725361,-10.492951]]]]},"type":"Feature","properties":{"ISO_A2":"-99","NAME":"Indian Ocean Ter."}},{"geometry":{"type":"Polygon","coordinates":[[[72.491937,-7.377482],[72.468786,-7.41717],[72.429099,-7.43536],[72.407601,-7.334487],[72.349724,-7.263381],[72.372875,-7.263381],[72.427445,-7.299761],[72.447289,-7.395672],[72.467133,-7.36756],[72.462172,-7.337795],[72.473747,-7.309683],[72.465479,-7.278263],[72.435713,-7.230308],[72.445635,-7.220386],[72.493591,-7.261727],[72.498552,-7.2948],[72.491937,-7.377482]]]},"type":"Feature","properties":{"ISO_A2":"IO","NAME":"Br. Indian Ocean Ter."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-9.948199,53.913144],[-9.952436,53.884567],[-10.026514,53.920559],[-10.062507,53.959704],[-10.265699,53.977687],[-10.181027,54.016858],[-10.139763,54.005205],[-9.996361,54.003629],[-9.956131,53.987222],[-9.948199,53.913144]]],[[[-7.401429,55.00331],[-7.445974,54.905124],[-7.451245,54.877116],[-7.502198,54.825439],[-7.550412,54.767949],[-7.606429,54.745703],[-7.68999,54.728003],[-7.737481,54.710459],[-7.79727,54.719296],[-7.872925,54.717849],[-7.910597,54.698315],[-7.908737,54.683329],[-7.886154,54.666069],[-7.819853,54.639714],[-7.746266,54.61584],[-7.754405,54.594937],[-7.793808,54.571243],[-8.044335,54.512461],[-8.118956,54.476959],[-8.144794,54.453498],[-8.118233,54.41425],[-7.918452,54.296583],[-7.884449,54.283767],[-7.854941,54.21527],[-7.678776,54.186667],[-7.606533,54.143827],[-7.544418,54.133595],[-7.409439,54.137316],[-7.355179,54.121245],[-7.324509,54.13344],[-7.306732,54.155997],[-7.193044,54.214107],[-7.155449,54.239506],[-7.178083,54.274879],[-7.202578,54.301802],[-7.133487,54.355391],[-7.049693,54.408256],[-7.007732,54.406705],[-6.93616,54.37433],[-6.877223,54.329087],[-6.869265,54.294051],[-6.858336,54.268677],[-6.802603,54.214366],[-6.766584,54.195607],[-6.669536,54.184703],[-6.64685,54.163438],[-6.664213,54.084761],[-6.649821,54.058639],[-6.548148,54.057269],[-6.440273,54.063625],[-6.402575,54.060628],[-6.363663,54.077113],[-6.303667,54.09489],[-6.218013,54.08874],[-6.175742,54.053497],[-6.156931,54.01722],[-6.230674,54.003629],[-6.30762,54.011019],[-6.345163,53.987196],[-6.347617,53.941307],[-6.321572,53.882164],[-6.270103,53.840228],[-6.22902,53.745712],[-6.194862,53.640861],[-6.141842,53.577557],[-6.130938,53.498905],[-6.138767,53.460303],[-6.129078,53.39085],[-6.15166,53.366407],[-6.13471,53.301243],[-6.072285,53.166316],[-6.045,53.091178],[-6.027379,52.927106],[-6.071459,52.865637],[-6.13068,52.807268],[-6.169308,52.738125],[-6.199203,52.663452],[-6.217238,52.543098],[-6.345395,52.402021],[-6.39994,52.366933],[-6.463166,52.345384],[-6.325009,52.246682],[-6.437948,52.20268],[-6.561093,52.188804],[-6.697312,52.213506],[-6.782216,52.210483],[-6.859731,52.178572],[-6.890246,52.159246],[-6.914663,52.168547],[-6.965771,52.249498],[-7.003288,52.165912],[-7.081784,52.139298],[-7.216195,52.144957],[-7.440884,52.12271],[-7.527287,52.098887],[-7.563176,52.061629],[-7.589815,52.018531],[-7.624904,51.993106],[-7.664565,51.979722],[-7.838017,51.947992],[-7.872175,51.93528],[-7.952481,51.865775],[-8.057797,51.825571],[-8.145027,51.813504],[-8.222438,51.853993],[-8.254271,51.878332],[-8.290238,51.890683],[-8.409197,51.888771],[-8.371628,51.876265],[-8.347392,51.847688],[-8.33561,51.792963],[-8.349097,51.739323],[-8.407802,51.712038],[-8.477849,51.707025],[-8.588307,51.65137],[-8.734474,51.636177],[-8.81341,51.584914],[-9.296481,51.498226],[-9.32387,51.497219],[-9.390584,51.519285],[-9.462905,51.529051],[-9.534839,51.522178],[-9.737307,51.473706],[-9.835337,51.483344],[-9.710358,51.603724],[-9.542358,51.664444],[-9.524891,51.681083],[-9.579849,51.689274],[-9.899003,51.64708],[-10.009926,51.611114],[-10.120746,51.600675],[-10.069457,51.655555],[-9.926417,51.730719],[-9.849729,51.766091],[-9.802884,51.780147],[-9.749503,51.824279],[-9.598814,51.874405],[-10.084237,51.771],[-10.211697,51.78361],[-10.241747,51.812471],[-10.341069,51.798906],[-10.378689,51.868772],[-10.231592,51.974502],[-10.145835,52.020029],[-10.044058,52.044576],[-9.946054,52.079819],[-9.909648,52.122969],[-9.955821,52.136663],[-10.249524,52.125733],[-10.390239,52.134906],[-10.382617,52.16909],[-10.356675,52.206943],[-10.210947,52.271693],[-10.132089,52.28208],[-10.061758,52.275931],[-9.993131,52.259317],[-9.937321,52.237639],[-9.772111,52.250093],[-9.841048,52.291434],[-9.853243,52.375511],[-9.906056,52.403701],[-9.838464,52.442691],[-9.761104,52.466359],[-9.632197,52.546922],[-9.586309,52.559169],[-9.33126,52.578781],[-9.056134,52.621129],[-8.783438,52.679627],[-8.923274,52.712287],[-8.990273,52.755437],[-9.097889,52.668258],[-9.175403,52.634927],[-9.394253,52.617099],[-9.4635,52.626917],[-9.561013,52.653944],[-9.591347,52.64366],[-9.619537,52.622731],[-9.76436,52.579995],[-9.916573,52.569711],[-9.739607,52.648208],[-9.514995,52.781171],[-9.464895,52.823184],[-9.393633,52.896255],[-9.41575,52.928759],[-9.461975,52.947259],[-9.299246,53.097534],[-9.241885,53.124871],[-9.137628,53.129264],[-9.061147,53.153087],[-9.027454,53.15319],[-8.997197,53.162078],[-8.930121,53.207089],[-9.033552,53.235717],[-9.140315,53.250471],[-9.47076,53.234839],[-9.514194,53.238249],[-9.555174,53.252047],[-9.581735,53.271994],[-9.60176,53.323025],[-9.625996,53.334497],[-9.700591,53.334497],[-9.774075,53.318865],[-9.82539,53.320363],[-9.875774,53.342739],[-9.795417,53.394984],[-9.899003,53.407283],[-10.003932,53.396999],[-10.091265,53.412864],[-10.094004,53.445601],[-10.054368,53.478338],[-10.106251,53.509344],[-10.117,53.548515],[-10.061732,53.567842],[-10.001348,53.561408],[-9.87828,53.590424],[-9.720641,53.60448],[-9.855879,53.633109],[-9.9097,53.657604],[-9.912335,53.695095],[-9.901612,53.727212],[-9.745059,53.781498],[-9.578221,53.805398],[-9.59052,53.841158],[-9.578841,53.879812],[-9.747513,53.891026],[-9.914092,53.863741],[-9.896238,53.937587],[-9.856344,54.004301],[-9.848489,54.048303],[-9.856447,54.095355],[-9.934479,54.075253],[-9.943599,54.141605],[-9.977086,54.187132],[-10.092686,54.155764],[-10.089715,54.215812],[-10.056383,54.257825],[-9.995948,54.276041],[-9.935925,54.268109],[-9.824563,54.268884],[-9.717127,54.300458],[-9.562305,54.308546],[-9.315524,54.298624],[-9.145896,54.209611],[-9.1021,54.225528],[-9.034301,54.281803],[-9.002468,54.288004],[-8.746799,54.263458],[-8.588023,54.231109],[-8.545571,54.241186],[-8.568464,54.303611],[-8.623137,54.346864],[-8.554459,54.403553],[-8.471002,54.441923],[-8.415217,54.461069],[-8.286517,54.48484],[-8.230396,54.507268],[-8.192983,54.580131],[-8.133452,54.640799],[-8.456558,54.609303],[-8.763904,54.68121],[-8.715173,54.732008],[-8.650319,54.760895],[-8.538259,54.782961],[-8.527691,54.809471],[-8.471002,54.831537],[-8.377287,54.889466],[-8.411729,54.965069],[-8.393281,55.020389],[-8.325791,55.056433],[-8.304707,55.108213],[-8.27458,55.146298],[-8.137689,55.159889],[-8.006121,55.195288],[-7.958578,55.191877],[-7.803162,55.200042],[-7.750529,55.185779],[-7.762544,55.248359],[-7.667072,55.256472],[-7.629813,55.243993],[-7.613406,55.19968],[-7.570023,55.171361],[-7.556613,55.122217],[-7.585681,55.084235],[-7.634283,55.054986],[-7.589815,55.025065],[-7.658752,54.97096],[-7.584389,54.993982],[-7.478401,55.046976],[-7.48393,55.090281],[-7.501966,55.144748],[-7.531447,55.193841],[-7.517882,55.247972],[-7.458299,55.281794],[-7.301771,55.298795],[-7.365953,55.360213],[-7.308799,55.36582],[-7.246684,55.353004],[-7.15532,55.305152],[-7.060235,55.267635],[-6.961663,55.237869],[-7.056411,55.178312],[-7.172864,55.136997],[-7.218624,55.092012],[-7.376909,55.027701],[-7.401429,55.00331]]]]},"type":"Feature","properties":{"ISO_A2":"IE","NAME":"Ireland"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[56.188023,26.921148],[56.094902,26.801181],[55.954342,26.70111],[55.894191,26.73227],[55.847682,26.730823],[55.747223,26.69248],[55.674669,26.685813],[55.543204,26.617549],[55.423728,26.583132],[55.340426,26.585716],[55.311487,26.592641],[55.295054,26.639201],[55.296501,26.657572],[55.346937,26.647934],[55.531732,26.709998],[55.762623,26.811981],[55.784533,26.857172],[55.74743,26.930966],[55.757662,26.947658],[55.90711,26.909831],[56.074128,26.983366],[56.213964,27.003262],[56.279387,26.952102],[56.188023,26.921148]]],[[[45.000179,39.423537],[45.071647,39.362895],[45.113092,39.311554],[45.141255,39.254297],[45.190658,39.215643],[45.255925,39.194662],[45.335507,39.139136],[45.389199,39.095909],[45.479633,39.00625],[45.575027,38.972815],[45.92188,38.90791],[46.114426,38.877782],[46.170133,38.869049],[46.317721,38.912664],[46.49063,38.906669],[46.554812,38.904396],[46.783171,39.087408],[46.852572,39.148412],[46.988894,39.180193],[47.065479,39.252902],[47.188366,39.340958],[47.338434,39.423899],[47.476152,39.498365],[47.581778,39.543375],[47.772878,39.648588],[47.89225,39.685072],[47.995861,39.683935],[48.151097,39.560531],[48.281735,39.448342],[48.322146,39.399094],[48.257241,39.354962],[48.136008,39.312355],[48.112857,39.281091],[48.104382,39.241093],[48.109136,39.202827],[48.125466,39.171614],[48.274087,39.099112],[48.291037,39.05927],[48.292071,39.018859],[48.275121,38.993615],[48.241996,38.978939],[48.13854,38.95863],[48.05007,38.934988],[48.019323,38.911837],[47.992658,38.884294],[47.996482,38.853753],[48.02325,38.819052],[48.204686,38.724148],[48.225253,38.689215],[48.261272,38.642293],[48.305558,38.613483],[48.381264,38.605628],[48.417438,38.58625],[48.592673,38.411067],[48.635512,38.398742],[48.840358,38.437267],[48.868728,38.43551],[48.870743,38.392541],[48.901336,38.143667],[48.925107,38.015148],[48.959937,37.890142],[49.015334,37.776092],[49.080963,37.667598],[49.17119,37.600599],[49.372522,37.519984],[49.470087,37.496678],[49.726919,37.480503],[49.98065,37.444872],[50.130408,37.407123],[50.176297,37.380509],[50.214021,37.339582],[50.337941,37.14918],[50.533174,37.013684],[50.927465,36.810208],[51.118565,36.742564],[51.76204,36.61451],[52.190127,36.621744],[53.374138,36.868758],[53.767706,36.930304],[53.915397,36.930304],[53.827443,36.881186],[53.679442,36.853126],[53.768739,36.818476],[53.906302,36.812689],[53.97007,36.818321],[54.016269,36.849637],[54.023814,36.90134],[54.017199,36.952499],[53.951984,37.181762],[53.914157,37.343561],[54.191659,37.33245],[54.299766,37.353586],[54.458671,37.407562],[54.578922,37.440247],[54.639694,37.444743],[54.699432,37.470168],[54.745217,37.501897],[54.848673,37.722633],[54.900091,37.777953],[55.075533,37.902493],[55.224671,37.981325],[55.380889,38.051114],[55.578448,38.099742],[55.841274,38.094626],[56.050305,38.077521],[56.171176,38.078348],[56.228796,38.073387],[56.272049,38.080441],[56.296957,38.094833],[56.324139,38.191106],[56.366927,38.222525],[56.440669,38.249423],[56.544022,38.249604],[56.669957,38.256632],[56.774602,38.250043],[56.906635,38.213017],[57.079028,38.209968],[57.193543,38.216401],[57.260102,38.179582],[57.30811,38.13036],[57.331467,38.089303],[57.336687,38.032924],[57.335705,37.98993],[57.35374,37.973341],[57.423813,37.947684],[57.520965,37.928486],[57.710514,37.905284],[57.888178,37.860842],[57.980575,37.830456],[58.108836,37.783069],[58.261643,37.665815],[58.318125,37.647211],[58.3867,37.635326],[58.435689,37.63853],[58.550463,37.688165],[58.650198,37.651552],[58.700841,37.656229],[58.815459,37.683488],[58.937209,37.64964],[59.240808,37.520759],[59.274088,37.523756],[59.301735,37.510656],[59.326901,37.481175],[59.344729,37.444743],[59.367364,37.333742],[59.454955,37.252817],[59.562184,37.178894],[59.687241,37.138457],[59.94862,37.041615],[60.062773,36.962912],[60.17827,36.829432],[60.320691,36.653551],[60.341309,36.637661],[60.707902,36.642983],[61.11966,36.64257],[61.169941,36.572238],[61.160329,36.432712],[61.175109,36.289697],[61.212006,36.19053],[61.212419,36.099141],[61.182653,36.052838],[61.159502,35.999922],[61.152888,35.976771],[61.205804,35.943698],[61.252107,35.86763],[61.258721,35.761797],[61.23557,35.705573],[61.238877,35.659271],[61.262028,35.619583],[61.281872,35.553437],[61.278565,35.51375],[61.245492,35.474062],[61.225648,35.424453],[61.19919,35.361614],[61.189268,35.312005],[61.139659,35.288854],[61.099971,35.272318],[61.106586,35.209479],[61.126429,35.156562],[61.149581,35.093724],[61.123122,35.050729],[61.106586,35.00112],[61.070206,34.921745],[61.080127,34.855599],[61.04044,34.799375],[60.990831,34.749766],[60.957758,34.710078],[60.951143,34.653854],[60.914763,34.63401],[60.84531,34.587708],[60.802315,34.554635],[60.739476,34.544713],[60.726247,34.518255],[60.736169,34.491797],[60.762627,34.47526],[60.803917,34.418003],[60.889493,34.31943],[60.642686,34.307157],[60.570184,34.219643],[60.485797,34.094793],[60.527035,33.841966],[60.4859,33.711896],[60.510808,33.638903],[60.573853,33.588312],[60.654572,33.560407],[60.806397,33.558675],[60.906908,33.538987],[60.917037,33.505242],[60.859262,33.456227],[60.766865,33.363829],[60.718031,33.323548],[60.560521,33.137823],[60.561968,33.058783],[60.576541,32.99486],[60.644495,32.794381],[60.710434,32.599974],[60.829342,32.249401],[60.827275,32.167959],[60.789913,31.987092],[60.787535,31.877176],[60.80433,31.734497],[60.791618,31.6606],[60.820763,31.495184],[60.854043,31.483247],[61.11072,31.45113],[61.346468,31.421648],[61.660195,31.382426],[61.755022,31.2853],[61.814294,31.072548],[61.810832,30.913307],[61.784219,30.831917],[61.559478,30.599373],[61.331688,30.363728],[61.104157,30.128394],[60.868202,29.884378],[60.843398,29.858695],[61.034187,29.663409],[61.152164,29.542719],[61.318356,29.372626],[61.339491,29.331776],[61.337838,29.26501],[61.508628,29.006033],[61.56878,28.870925],[61.62304,28.791628],[61.758019,28.667656],[61.889897,28.546527],[62.032989,28.491026],[62.130554,28.47883],[62.353021,28.414752],[62.433895,28.363876],[62.564585,28.235176],[62.717599,28.252798],[62.749431,28.252901],[62.758009,28.243574],[62.762505,28.202077],[62.739768,28.002038],[62.782349,27.800526],[62.812011,27.49703],[62.800849,27.444553],[62.764314,27.356728],[62.762505,27.300194],[62.75279,27.265649],[62.763022,27.250172],[62.811598,27.229449],[62.915468,27.218416],[63.16677,27.252471],[63.196071,27.243919],[63.256222,27.207926],[63.301594,27.15147],[63.305211,27.124572],[63.242063,27.077676],[63.231469,26.99812],[63.250331,26.879238],[63.241546,26.864743],[63.186097,26.837613],[63.168062,26.665582],[63.157778,26.649769],[63.092924,26.632328],[62.786638,26.643904],[62.751602,26.639149],[62.636415,26.593648],[62.439218,26.561015],[62.385061,26.542644],[62.3123,26.490864],[62.259642,26.427483],[62.249668,26.369243],[62.239333,26.357048],[62.125955,26.369011],[62.089006,26.318239],[61.869795,26.24243],[61.842355,26.225945],[61.810005,26.165302],[61.780756,25.995855],[61.754401,25.843358],[61.737658,25.821112],[61.668619,25.768996],[61.661849,25.751297],[61.671357,25.69236],[61.640145,25.58464],[61.615392,25.286105],[61.587848,25.202338],[61.533123,25.195517],[61.490335,25.153659],[61.4122,25.102112],[61.243012,25.14198],[61.108653,25.183889],[60.663925,25.28223],[60.615143,25.329824],[60.587444,25.41354],[60.51055,25.437078],[60.400169,25.311582],[60.024688,25.384136],[59.897047,25.361811],[59.818396,25.400879],[59.616031,25.403256],[59.45604,25.481494],[59.227217,25.427751],[59.046143,25.417312],[58.797889,25.554616],[58.530826,25.592443],[58.314301,25.580868],[58.202887,25.591617],[58.02233,25.640812],[57.93665,25.691662],[57.79609,25.653008],[57.732528,25.72489],[57.33462,25.791553],[57.260929,25.918832],[57.205532,26.037222],[57.201398,26.158817],[57.104349,26.37144],[57.072,26.680051],[57.036033,26.80069],[56.982186,26.90549],[56.910459,26.99458],[56.812894,27.089975],[56.728145,27.127673],[56.356178,27.200226],[56.284348,27.19064],[56.118053,27.143124],[55.941113,27.037575],[55.650278,26.977553],[55.591574,26.932155],[55.518606,26.829913],[55.424039,26.770537],[55.294124,26.785936],[55.154598,26.725397],[54.895802,26.5567],[54.759273,26.505101],[54.644861,26.508925],[54.522078,26.589153],[54.247056,26.696614],[54.069289,26.732374],[53.822586,26.707724],[53.705797,26.725604],[53.507153,26.851772],[53.45496,26.943265],[53.341685,27.004502],[52.982534,27.141961],[52.691595,27.323371],[52.638162,27.391998],[52.602609,27.493387],[52.475898,27.616506],[52.191884,27.717275],[52.030757,27.8244],[51.842035,27.848249],[51.666335,27.844967],[51.589027,27.864217],[51.51854,27.910002],[51.278865,28.131358],[51.276075,28.218872],[51.128383,28.435138],[51.093864,28.512136],[51.062031,28.726128],[51.021206,28.782068],[50.867004,28.87015],[50.842923,28.927821],[50.875789,29.00438],[50.875789,29.062722],[50.795484,29.117422],[50.675181,29.146593],[50.646036,29.212222],[50.667946,29.339837],[50.649653,29.420065],[50.543613,29.548016],[50.38693,29.679067],[50.230144,29.872906],[50.168959,29.921249],[50.128961,30.048089],[50.0716,30.198545],[49.98313,30.209371],[49.554939,30.028968],[49.429986,30.130487],[49.054298,30.30691],[49.02815,30.333446],[49.002002,30.373909],[49.049027,30.397292],[49.096156,30.406775],[49.19031,30.375381],[49.247258,30.412485],[49.22452,30.472326],[49.130366,30.50943],[49.002002,30.506562],[49.037142,30.450467],[48.916839,30.397241],[48.891207,30.327658],[48.908674,30.241462],[48.919113,30.120901],[48.870123,30.062403],[48.8324,30.035505],[48.670859,30.028297],[48.595515,29.97507],[48.546526,29.962357],[48.478519,30.003802],[48.434594,30.037624],[48.398628,30.109609],[48.387569,30.159865],[48.401418,30.188339],[48.382608,30.230196],[48.331035,30.285439],[48.278945,30.315798],[48.226132,30.321354],[48.182362,30.355021],[48.147532,30.416826],[48.066141,30.457676],[48.01493,30.465634],[48.013431,30.656424],[48.012036,30.823623],[48.010641,30.989814],[47.836388,30.996455],[47.679498,31.002397],[47.679498,31.14151],[47.679498,31.40059],[47.753964,31.601379],[47.82998,31.794416],[47.714535,31.936449],[47.591493,32.087964],[47.51186,32.150829],[47.418119,32.340093],[47.3713,32.423758],[47.329804,32.455513],[47.285207,32.474013],[47.121393,32.466597],[46.968534,32.568426],[46.789113,32.687979],[46.569954,32.833939],[46.377046,32.929231],[46.298187,32.950237],[46.112772,32.957653],[46.093032,32.975869],[46.080423,33.028217],[46.080785,33.086534],[46.141091,33.174409],[46.145845,33.229652],[46.019961,33.415738],[45.980997,33.470128],[45.8732,33.492013],[45.894749,33.545653],[45.894698,33.581568],[45.879401,33.609758],[45.854493,33.623323],[45.822816,33.624795],[45.738325,33.602833],[45.673729,33.686678],[45.473276,33.925475],[45.408991,33.954517],[45.397054,33.970847],[45.446043,34.04402],[45.528622,34.152541],[45.542781,34.215535],[45.526865,34.284678],[45.43762,34.415135],[45.459375,34.470351],[45.497719,34.533861],[45.50082,34.581585],[45.560868,34.574531],[45.637452,34.573807],[45.661534,34.612668],[45.660087,34.748784],[45.67807,34.798445],[45.920898,35.028508],[46.041769,35.080159],[46.133753,35.127649],[46.154682,35.196741],[46.135768,35.232294],[46.117733,35.284255],[46.112049,35.321669],[46.01066,35.424815],[45.975416,35.476827],[45.971075,35.524189],[45.995053,35.608111],[46.037376,35.673172],[46.180985,35.711386],[46.262479,35.744123],[46.273383,35.773217],[46.167446,35.820553],[45.941413,35.835384],[45.776307,35.821819],[45.723494,35.83665],[45.644997,35.92835],[45.561643,35.977184],[45.483767,36.008552],[45.407751,36.00279],[45.361655,36.015347],[45.350907,36.054647],[45.241146,36.355972],[45.206574,36.397159],[45.155311,36.407365],[45.112368,36.409251],[45.083791,36.430025],[45.053147,36.471624],[45.031081,36.526091],[45.029428,36.59756],[45.033975,36.6589],[45.019247,36.69838],[44.981472,36.737706],[44.927832,36.765922],[44.880858,36.79933],[44.798434,37.063888],[44.765413,37.134995],[44.765154,37.142436],[44.766705,37.156337],[44.758333,37.217108],[44.79678,37.269767],[44.794196,37.290386],[44.715131,37.357152],[44.60413,37.423711],[44.574055,37.435416],[44.573125,37.506393],[44.577207,37.560188],[44.567234,37.608635],[44.546046,37.636308],[44.545271,37.658167],[44.589971,37.71036],[44.561239,37.744621],[44.397786,37.829242],[44.33624,37.871771],[44.222965,37.880169],[44.211286,37.908074],[44.228908,37.967192],[44.267924,38.038815],[44.329419,38.10925],[44.348952,38.146509],[44.372723,38.209735],[44.380888,38.254616],[44.449618,38.317765],[44.449876,38.33425],[44.430859,38.356781],[44.375772,38.36957],[44.3196,38.374712],[44.298516,38.386288],[44.290868,38.42011],[44.297844,38.557802],[44.280171,38.640691],[44.257072,38.700635],[44.271644,38.836054],[44.232474,38.86321],[44.170824,38.934368],[44.14452,38.994364],[44.158783,39.01674],[44.171857,39.056273],[44.18059,39.108078],[44.178058,39.144846],[44.121266,39.180606],[44.079098,39.21833],[44.074344,39.259981],[44.057549,39.310831],[44.033829,39.351035],[44.023184,39.377442],[44.043906,39.392945],[44.124056,39.405244],[44.240483,39.396795],[44.335413,39.396045],[44.389363,39.422142],[44.455922,39.666726],[44.516694,39.73127],[44.587129,39.768529],[44.725053,39.681713],[44.782104,39.651068],[44.817141,39.650422],[44.838173,39.62908],[45.000179,39.423537]]]]},"type":"Feature","properties":{"ISO_A2":"IR","NAME":"Iran"}},{"geometry":{"type":"Polygon","coordinates":[[[44.765154,37.142436],[44.765413,37.134995],[44.798434,37.063888],[44.880858,36.79933],[44.927832,36.765922],[44.981472,36.737706],[45.019247,36.69838],[45.033975,36.6589],[45.029428,36.59756],[45.031081,36.526091],[45.053147,36.471624],[45.083791,36.430025],[45.112368,36.409251],[45.155311,36.407365],[45.206574,36.397159],[45.241146,36.355972],[45.350907,36.054647],[45.361655,36.015347],[45.407751,36.00279],[45.483767,36.008552],[45.561643,35.977184],[45.644997,35.92835],[45.723494,35.83665],[45.776307,35.821819],[45.941413,35.835384],[46.167446,35.820553],[46.273383,35.773217],[46.262479,35.744123],[46.180985,35.711386],[46.037376,35.673172],[45.995053,35.608111],[45.971075,35.524189],[45.975416,35.476827],[46.01066,35.424815],[46.112049,35.321669],[46.117733,35.284255],[46.135768,35.232294],[46.154682,35.196741],[46.133753,35.127649],[46.041769,35.080159],[45.920898,35.028508],[45.67807,34.798445],[45.660087,34.748784],[45.661534,34.612668],[45.637452,34.573807],[45.560868,34.574531],[45.50082,34.581585],[45.497719,34.533861],[45.459375,34.470351],[45.43762,34.415135],[45.526865,34.284678],[45.542781,34.215535],[45.528622,34.152541],[45.446043,34.04402],[45.397054,33.970847],[45.408991,33.954517],[45.473276,33.925475],[45.673729,33.686678],[45.738325,33.602833],[45.822816,33.624795],[45.854493,33.623323],[45.879401,33.609758],[45.894698,33.581568],[45.894749,33.545653],[45.8732,33.492013],[45.980997,33.470128],[46.019961,33.415738],[46.145845,33.229652],[46.141091,33.174409],[46.080785,33.086534],[46.080423,33.028217],[46.093032,32.975869],[46.112772,32.957653],[46.298187,32.950237],[46.377046,32.929231],[46.569954,32.833939],[46.789113,32.687979],[46.968534,32.568426],[47.121393,32.466597],[47.285207,32.474013],[47.329804,32.455513],[47.3713,32.423758],[47.418119,32.340093],[47.51186,32.150829],[47.591493,32.087964],[47.714535,31.936449],[47.82998,31.794416],[47.753964,31.601379],[47.679498,31.40059],[47.679498,31.14151],[47.679498,31.002397],[47.836388,30.996455],[48.010641,30.989814],[48.012036,30.823623],[48.013431,30.656424],[48.01493,30.465634],[48.066141,30.457676],[48.147532,30.416826],[48.182362,30.355021],[48.226132,30.321354],[48.278945,30.315798],[48.331035,30.285439],[48.382608,30.230196],[48.401418,30.188339],[48.387569,30.159865],[48.398628,30.109609],[48.434594,30.037624],[48.478519,30.003802],[48.546526,29.962357],[48.454231,29.938457],[48.354599,29.956725],[48.141692,30.040906],[48.072756,30.043231],[47.982529,30.011321],[47.978705,29.982821],[47.753861,30.076614],[47.67278,30.095605],[47.643738,30.09731],[47.514857,30.09651],[47.331354,30.079689],[47.223299,30.0415],[47.148265,30.00096],[47.114365,29.961324],[47.102066,29.939982],[47.043672,29.822986],[46.975975,29.672866],[46.905799,29.537526],[46.769373,29.34746],[46.69377,29.259661],[46.531455,29.09626],[46.356478,29.063653],[45.949681,29.095847],[45.498908,29.131555],[45.050305,29.167109],[44.716475,29.193619],[44.690844,29.202352],[44.360683,29.435258],[44.099665,29.619329],[43.773742,29.849212],[43.440791,30.084004],[43.103085,30.322206],[42.857725,30.495193],[42.559811,30.717764],[42.288561,30.920387],[42.074414,31.080377],[41.799702,31.220369],[41.58509,31.329716],[41.272448,31.489034],[41.022489,31.616365],[40.808342,31.725454],[40.478853,31.893351],[40.369299,31.938981],[40.027821,31.994998],[39.704068,32.042515],[39.368636,32.091737],[39.145446,32.124499],[39.292775,32.24382],[39.247455,32.350997],[39.140071,32.331205],[39.041369,32.305651],[38.98158,32.472566],[39.057854,32.493185],[38.987419,32.710691],[38.914865,32.934657],[38.84505,33.150871],[38.77353,33.372201],[39.056717,33.514027],[39.268384,33.620015],[39.564438,33.768353],[39.850002,33.911367],[40.121975,34.047638],[40.421543,34.197732],[40.689486,34.332013],[40.935052,34.386584],[40.987039,34.429036],[41.099021,34.612306],[41.194675,34.768989],[41.19917,34.805318],[41.199584,35.027371],[41.216379,35.288182],[41.248315,35.427502],[41.30335,35.550621],[41.354096,35.640409],[41.359367,35.72459],[41.352649,35.809985],[41.300198,35.938969],[41.245576,36.073406],[41.251725,36.20301],[41.261802,36.272463],[41.296012,36.383361],[41.3542,36.46439],[41.416831,36.514645],[41.650151,36.566399],[41.78854,36.597146],[41.974058,36.740807],[42.083974,36.826021],[42.237298,36.961155],[42.350108,37.060581],[42.359048,37.094997],[42.358996,37.108588],[42.45589,37.12869],[42.635465,37.249277],[42.741092,37.361906],[42.774578,37.371879],[42.869094,37.334931],[42.936635,37.324776],[43.092491,37.367384],[43.185096,37.344853],[43.263127,37.316482],[43.306742,37.314622],[43.515876,37.244549],[43.568018,37.235867],[43.675815,37.227263],[43.836425,37.223516],[43.939985,37.269302],[44.013159,37.313537],[44.064629,37.312451],[44.114393,37.301858],[44.156251,37.282944],[44.191753,37.249845],[44.208392,37.202639],[44.201674,37.051821],[44.217487,37.01185],[44.245703,36.983324],[44.281876,36.978002],[44.325595,37.010764],[44.401921,37.058488],[44.496023,37.110526],[44.566045,37.158249],[44.605939,37.176026],[44.669346,37.173597],[44.730944,37.165277],[44.765154,37.142436]]]},"type":"Feature","properties":{"ISO_A2":"IQ","NAME":"Iraq"}},{"geometry":{"type":"Polygon","coordinates":[[[-15.543103,66.228516],[-15.428484,66.224795],[-15.240925,66.259108],[-15.162376,66.281691],[-14.969985,66.359722],[-14.85609,66.381427],[-14.680649,66.37613],[-14.595848,66.38153],[-14.593884,66.373985],[-14.701655,66.342307],[-14.788239,66.331455],[-14.912211,66.284275],[-15.029981,66.177873],[-15.117366,66.125628],[-15.116436,66.102425],[-15.010293,66.061291],[-14.894021,66.037882],[-14.787154,66.059069],[-14.740438,66.050852],[-14.698193,66.020208],[-14.67437,65.989874],[-14.668996,65.95985],[-14.688245,65.896986],[-14.752531,65.833811],[-14.839321,65.780895],[-14.8271,65.764255],[-14.757543,65.755677],[-14.42622,65.789964],[-14.391855,65.787406],[-14.372812,65.770353],[-14.369092,65.738727],[-14.35085,65.710098],[-14.318139,65.684466],[-14.328371,65.658267],[-14.473375,65.575326],[-14.3023,65.627519],[-14.166933,65.642298],[-13.935475,65.616047],[-13.8407,65.58592],[-13.785251,65.533003],[-13.705127,65.550521],[-13.670323,65.549513],[-13.617871,65.51936],[-13.616037,65.487166],[-13.654432,65.441329],[-13.667791,65.398954],[-13.707995,65.381591],[-13.783236,65.368982],[-13.804759,65.354771],[-13.771634,65.322525],[-13.722826,65.29095],[-13.65345,65.289503],[-13.641126,65.274982],[-13.639575,65.25749],[-13.648929,65.236949],[-13.671563,65.222867],[-13.707452,65.215141],[-13.754891,65.192507],[-13.580793,65.143001],[-13.558598,65.124656],[-13.556118,65.097681],[-13.569683,65.068096],[-13.599294,65.035927],[-13.651874,65.016859],[-13.777267,65.013706],[-13.853981,64.992881],[-13.827833,64.957999],[-13.829848,64.913997],[-13.852947,64.862139],[-13.951649,64.783643],[-14.04446,64.741888],[-14.135152,64.71481],[-14.297003,64.72437],[-14.385111,64.745196],[-14.375267,64.677448],[-14.465365,64.635693],[-14.448363,64.600838],[-14.416996,64.583087],[-14.432576,64.538309],[-14.47539,64.493996],[-14.547065,64.445937],[-14.628249,64.415965],[-14.789531,64.379843],[-14.927378,64.319666],[-15.02161,64.295921],[-15.255885,64.296903],[-15.494966,64.258197],[-15.83293,64.176677],[-16.060461,64.111255],[-16.236058,64.037229],[-16.468059,63.916357],[-16.640322,63.865456],[-16.739696,63.851762],[-16.933044,63.84091],[-17.095101,63.808121],[-17.63344,63.7466],[-17.815703,63.713011],[-17.839267,63.682366],[-17.91487,63.636374],[-17.919573,63.619735],[-17.88637,63.606867],[-17.880273,63.590176],[-17.946909,63.535735],[-18.080028,63.496331],[-18.142918,63.496951],[-18.219037,63.530851],[-18.252214,63.529663],[-18.265236,63.524495],[-18.266037,63.51385],[-18.222293,63.473206],[-18.302805,63.454267],[-18.653585,63.406699],[-19.250189,63.441968],[-19.486557,63.478503],[-19.77827,63.536587],[-19.951955,63.552038],[-20.198167,63.555811],[-20.400429,63.637098],[-20.494041,63.687353],[-20.501585,63.708205],[-20.490992,63.731976],[-20.469959,63.748202],[-20.438463,63.756987],[-20.371723,63.75784],[-20.363041,63.76492],[-20.413994,63.805201],[-20.462699,63.792127],[-20.592975,63.735335],[-20.65093,63.737402],[-20.727024,63.765772],[-20.729944,63.793367],[-20.878746,63.803909],[-21.008118,63.838378],[-21.136585,63.887935],[-21.155757,63.906823],[-21.094056,63.934444],[-21.105967,63.939818],[-21.152398,63.944521],[-21.246243,63.935426],[-21.387604,63.872794],[-21.448634,63.858376],[-22.372582,63.843752],[-22.606883,63.837241],[-22.652204,63.827732],[-22.693028,63.868505],[-22.729408,63.959455],[-22.742947,64.0194],[-22.733646,64.048391],[-22.701167,64.083221],[-22.650912,64.077278],[-22.603085,64.049631],[-22.559806,64.010331],[-22.510042,63.991443],[-22.187607,64.039192],[-22.056633,64.071335],[-22.001003,64.10185],[-21.935426,64.153759],[-21.865947,64.180321],[-21.83277,64.205435],[-21.767555,64.284862],[-21.722545,64.321759],[-21.668646,64.349044],[-21.605988,64.366614],[-21.463336,64.379171],[-21.55718,64.397852],[-21.646684,64.397827],[-21.951239,64.31393],[-22.053377,64.31393],[-22.049062,64.327004],[-22.006016,64.350698],[-21.901242,64.391625],[-21.973175,64.394674],[-22.000667,64.4132],[-22.003794,64.45219],[-21.950334,64.514977],[-21.702391,64.597814],[-21.61666,64.61001],[-21.590615,64.626392],[-21.623119,64.639724],[-21.674951,64.647682],[-21.924444,64.562571],[-22.106009,64.533064],[-22.159986,64.5388],[-22.253882,64.571873],[-22.28419,64.586549],[-22.32473,64.624428],[-22.320105,64.647217],[-22.233599,64.713983],[-22.247577,64.726902],[-22.307031,64.733491],[-22.467047,64.79496],[-22.720313,64.788811],[-23.346993,64.824364],[-23.476494,64.809274],[-23.689918,64.756564],[-23.81898,64.739149],[-23.878563,64.750622],[-23.932771,64.778527],[-23.981993,64.816096],[-24.026177,64.863431],[-24.00703,64.896453],[-23.924426,64.915211],[-23.863809,64.924151],[-23.693199,64.912731],[-23.485305,64.945855],[-23.352703,64.95278],[-23.314592,64.958025],[-23.236509,64.993268],[-23.19801,65.002131],[-23.13791,64.98978],[-23.108842,64.96588],[-22.899527,65.003009],[-22.827697,65.021665],[-22.819584,65.033085],[-22.788061,65.046469],[-22.683959,65.026367],[-22.5997,65.025747],[-22.494487,65.039545],[-22.308452,65.045642],[-21.892147,65.048795],[-21.829773,65.079077],[-21.800447,65.105897],[-21.763731,65.173748],[-21.780009,65.187701],[-22.039993,65.125224],[-22.099343,65.126206],[-22.400281,65.159331],[-22.509086,65.196796],[-22.473455,65.226872],[-22.313981,65.291622],[-22.149314,65.343557],[-21.906978,65.399729],[-21.850237,65.421511],[-21.844398,65.447375],[-22.005783,65.49347],[-22.311475,65.480706],[-22.389687,65.53538],[-22.643599,65.567781],[-22.812659,65.547421],[-22.902473,65.580493],[-23.122097,65.53476],[-23.604549,65.468614],[-23.796475,65.422777],[-23.899905,65.407558],[-24.018993,65.445024],[-24.223968,65.487192],[-24.454781,65.500343],[-24.475658,65.5252],[-24.341067,65.601216],[-24.248928,65.615013],[-24.156091,65.607985],[-23.978996,65.554965],[-23.856729,65.538377],[-24.010002,65.616202],[-24.006023,65.646123],[-24.017598,65.690926],[-24.065011,65.71015],[-24.111934,65.759707],[-24.092632,65.776451],[-24.032429,65.782342],[-23.909078,65.765598],[-23.615917,65.679609],[-23.471998,65.694802],[-23.392985,65.726505],[-23.285343,65.749992],[-23.315936,65.762239],[-23.569305,65.763712],[-23.704749,65.781205],[-23.77322,65.806371],[-23.832622,65.849211],[-23.811745,65.8689],[-23.741284,65.884558],[-23.524967,65.88001],[-23.667465,65.954321],[-23.766554,65.996954],[-23.777354,66.017573],[-23.770559,66.043463],[-23.757149,66.060774],[-23.737176,66.069456],[-23.488871,66.026099],[-23.434481,66.024239],[-23.484659,66.052248],[-23.593541,66.093408],[-23.598554,66.108833],[-23.552614,66.121597],[-23.529954,66.145007],[-23.527912,66.164385],[-23.452516,66.180999],[-23.376552,66.181749],[-23.300019,66.166608],[-23.062566,66.086251],[-23.028537,66.063668],[-23.017298,66.033954],[-23.028899,65.997057],[-23.019003,65.982149],[-22.926218,65.994835],[-22.852217,65.979281],[-22.815346,65.983518],[-22.723362,66.039018],[-22.659877,66.025944],[-22.621611,65.999951],[-22.6097,65.976464],[-22.604041,65.944192],[-22.620216,65.876961],[-22.61603,65.867504],[-22.55159,65.905435],[-22.441674,65.908277],[-22.427566,65.927372],[-22.424233,65.998091],[-22.433147,66.057674],[-22.445291,66.069998],[-22.806458,66.152603],[-22.869245,66.172085],[-22.947896,66.212755],[-22.93198,66.233218],[-22.861648,66.25146],[-22.755531,66.258747],[-22.509396,66.257765],[-22.484436,66.266317],[-22.532108,66.287737],[-22.64608,66.301586],[-22.672771,66.313937],[-22.686232,66.337708],[-22.821341,66.324686],[-22.972029,66.324169],[-23.11693,66.338742],[-23.119927,66.357242],[-23.062721,66.384372],[-22.944356,66.429434],[-22.889217,66.440648],[-22.723724,66.432741],[-22.559341,66.445402],[-22.426119,66.430106],[-22.320441,66.385509],[-22.170243,66.307116],[-21.966974,66.25699],[-21.948371,66.24128],[-21.840263,66.200171],[-21.625264,66.089713],[-21.406879,66.025583],[-21.396802,66.009253],[-21.432743,65.990081],[-21.51664,65.967602],[-21.497468,65.955096],[-21.387785,65.938766],[-21.308771,65.895332],[-21.303474,65.87647],[-21.374917,65.741879],[-21.412848,65.713354],[-21.456643,65.698264],[-21.65844,65.723586],[-21.610355,65.680746],[-21.466255,65.635167],[-21.433647,65.609691],[-21.455119,65.584679],[-21.439409,65.578892],[-21.386596,65.592431],[-21.364737,65.57822],[-21.373884,65.536362],[-21.396337,65.501635],[-21.432175,65.474066],[-21.421865,65.462154],[-21.365486,65.465823],[-21.312544,65.458692],[-21.229965,65.420607],[-21.162992,65.304231],[-21.129661,65.266611],[-21.105709,65.30002],[-21.075581,65.38495],[-21.047314,65.428358],[-21.020856,65.43027],[-20.998015,65.444533],[-20.978869,65.471172],[-20.939724,65.565171],[-20.804358,65.636433],[-20.73971,65.658267],[-20.678939,65.663072],[-20.649432,65.654184],[-20.54812,65.579512],[-20.486522,65.566954],[-20.454844,65.571037],[-20.411539,65.621731],[-20.356633,65.719038],[-20.344076,65.827714],[-20.373919,65.947706],[-20.356607,66.033231],[-20.292141,66.084365],[-20.207495,66.1001],[-20.102695,66.080463],[-20.026085,66.04925],[-19.87475,65.930136],[-19.752613,65.867789],[-19.647839,65.80079],[-19.593579,65.779034],[-19.489683,65.768079],[-19.461804,65.772368],[-19.443252,65.787819],[-19.433899,65.814433],[-19.456249,65.984913],[-19.427052,66.037985],[-19.382946,66.075709],[-19.195283,66.097878],[-19.093196,66.12152],[-18.993771,66.160355],[-18.911347,66.181129],[-18.845898,66.183919],[-18.77753,66.168778],[-18.706191,66.135757],[-18.594932,66.071316],[-18.45494,65.964527],[-18.276941,65.884713],[-18.183639,65.758002],[-18.163718,65.736556],[-18.141936,65.734076],[-18.118398,65.750561],[-18.103308,65.773918],[-18.099045,65.830297],[-18.148861,65.905047],[-18.315336,66.093175],[-18.31823,66.128832],[-18.297146,66.157409],[-18.179867,66.160561],[-17.906989,66.143302],[-17.819837,66.114104],[-17.634344,65.999176],[-17.582203,65.971374],[-17.550422,65.964398],[-17.539001,65.978299],[-17.467042,65.999641],[-17.417252,66.025531],[-17.334285,66.088886],[-17.15303,66.202833],[-17.115384,66.206192],[-17.062441,66.1972],[-16.969501,66.167383],[-16.925447,66.143457],[-16.838036,66.125241],[-16.74843,66.131623],[-16.624742,66.171594],[-16.485009,66.19596],[-16.437131,66.252545],[-16.428061,66.278384],[-16.54069,66.44672],[-16.49338,66.481162],[-16.249339,66.522917],[-16.035889,66.526069],[-15.985401,66.514648],[-15.850913,66.432845],[-15.759756,66.39171],[-15.71379,66.358586],[-15.702783,66.285722],[-15.647386,66.258798],[-15.543103,66.228516]]]},"type":"Feature","properties":{"ISO_A2":"IS","NAME":"Iceland"}},{"geometry":{"type":"Polygon","coordinates":[[[35.787253,32.734927],[35.734439,32.728881],[35.611243,32.682062],[35.5945,32.668006],[35.572847,32.64085],[35.569023,32.61987],[35.551453,32.395516],[35.484429,32.40164],[35.402625,32.450629],[35.386709,32.49303],[35.362162,32.507473],[35.30382,32.512925],[35.193232,32.534423],[35.065074,32.460422],[35.010504,32.338181],[34.999497,32.281079],[34.955934,32.160931],[34.971385,32.087086],[34.978775,31.991588],[34.989782,31.913298],[34.97831,31.866427],[34.953815,31.841261],[34.961153,31.823329],[34.983012,31.816818],[35.053189,31.837954],[35.127138,31.816766],[35.197986,31.776329],[35.203671,31.750026],[35.153441,31.734497],[35.034689,31.673235],[34.950921,31.602283],[34.929217,31.536577],[34.872735,31.396895],[34.880486,31.368163],[34.907771,31.351317],[35.101196,31.366199],[35.276689,31.422785],[35.408723,31.482937],[35.450529,31.479319],[35.422882,31.325375],[35.423502,31.324832],[35.400661,31.230497],[35.409653,31.214452],[35.439315,31.132415],[35.38304,30.982269],[35.320149,30.860184],[35.297825,30.802255],[35.23664,30.673477],[35.17406,30.523925],[35.140625,30.420908],[35.14817,30.384321],[35.132667,30.195315],[35.141607,30.141675],[35.068175,29.97786],[35.053447,29.896935],[35.02394,29.787071],[34.973401,29.555018],[34.904257,29.477322],[34.869841,29.563932],[34.791086,29.812082],[34.735069,29.982046],[34.658588,30.191439],[34.529655,30.446049],[34.517821,30.507363],[34.489916,30.596298],[34.401032,30.827809],[34.32853,30.995008],[34.24528,31.208328],[34.348322,31.292922],[34.350183,31.362763],[34.525573,31.525621],[34.524126,31.541641],[34.477358,31.584842],[34.484025,31.59231],[34.678431,31.895728],[34.803798,32.196355],[34.921827,32.614082],[35.005853,32.826601],[35.077063,32.967213],[35.108586,33.083666],[35.223308,33.091986],[35.308884,33.079557],[35.411255,33.075708],[35.49311,33.119503],[35.53254,33.250477],[35.579255,33.271458],[35.602871,33.240607],[35.627211,33.275049],[35.734439,33.332591],[35.787459,33.369772],[35.840738,33.415661],[35.869108,33.431758],[35.85159,33.37047],[35.83712,33.330524],[35.837017,33.278227],[35.858824,33.249547],[35.888487,33.19247],[35.906677,33.135704],[35.868075,33.088575],[35.871744,33.039353],[35.881976,32.99809],[35.913498,32.949591],[35.856861,32.862336],[35.801464,32.78234],[35.787253,32.734927]]]},"type":"Feature","properties":{"ISO_A2":"IL","NAME":"Israel"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[12.051285,36.757033],[12.00333,36.745974],[11.940595,36.780391],[11.93646,36.828605],[11.948036,36.843049],[12.024207,36.820931],[12.048081,36.77636],[12.051285,36.757033]]],[[[15.576548,38.220303],[15.508852,38.106667],[15.475676,38.062948],[15.23445,37.784826],[15.206855,37.72054],[15.189802,37.650725],[15.16479,37.589541],[15.131097,37.53187],[15.099471,37.458618],[15.105673,37.375497],[15.116938,37.334724],[15.14598,37.308007],[15.193626,37.282867],[15.230316,37.244342],[15.174092,37.209202],[15.236001,37.138715],[15.288711,37.096909],[15.295739,37.05518],[15.294498,37.013271],[15.185151,36.9348],[15.142363,36.891599],[15.115801,36.83925],[15.104329,36.785249],[15.116318,36.736466],[15.112597,36.687838],[15.002423,36.693885],[14.889665,36.723547],[14.775977,36.710421],[14.614333,36.766593],[14.555422,36.776774],[14.501885,36.798684],[14.36732,36.972834],[14.259109,37.046421],[14.142941,37.103679],[14.024292,37.107141],[13.905436,37.10063],[13.800636,37.135873],[13.587109,37.25416],[13.360973,37.348728],[13.264958,37.410327],[13.221137,37.451823],[13.169873,37.479315],[13.040372,37.506548],[12.9241,37.570524],[12.871184,37.575174],[12.757289,37.567371],[12.698998,37.571815],[12.64019,37.594346],[12.526812,37.66951],[12.454362,37.773767],[12.435551,37.819759],[12.486814,37.938718],[12.547689,38.052949],[12.601639,38.084937],[12.664375,38.107907],[12.702305,38.141703],[12.734345,38.183044],[12.85072,38.063723],[12.902706,38.034836],[12.95552,38.041296],[13.049054,38.084084],[13.056805,38.130903],[13.159952,38.190331],[13.291106,38.191442],[13.351671,38.180538],[13.383504,38.12682],[13.433527,38.110232],[13.491301,38.103101],[13.681574,38.00073],[13.734904,37.984038],[13.788854,37.981222],[13.936648,38.024191],[14.050026,38.040521],[14.287738,38.016827],[14.416206,38.042588],[14.505916,38.045482],[14.636761,38.085066],[14.73722,38.150772],[14.78962,38.166999],[14.845844,38.171676],[14.981959,38.167567],[15.118798,38.15271],[15.176056,38.168058],[15.224012,38.211053],[15.279616,38.23038],[15.340697,38.217332],[15.498724,38.290867],[15.568383,38.29588],[15.634633,38.267587],[15.576548,38.220303]]],[[[8.478894,39.067512],[8.421429,38.968629],[8.360968,39.038677],[8.358591,39.098777],[8.366756,39.115933],[8.440653,39.090612],[8.478894,39.067512]]],[[[13.938302,40.705629],[13.893654,40.696974],[13.867712,40.708756],[13.853553,40.724078],[13.871226,40.761802],[13.962073,40.7394],[13.960833,40.718187],[13.938302,40.705629]]],[[[8.286037,41.039847],[8.252758,40.994139],[8.205629,40.997446],[8.224026,41.031294],[8.26733,41.099145],[8.320247,41.121883],[8.343708,41.101626],[8.318903,41.062765],[8.286037,41.039847]]],[[[9.632002,40.882053],[9.682024,40.818103],[9.794369,40.556181],[9.805221,40.49957],[9.782793,40.441511],[9.754165,40.400273],[9.642957,40.268395],[9.659493,40.159229],[9.700731,40.091817],[9.706726,40.017041],[9.686055,39.924385],[9.617015,39.35442],[9.583632,39.253573],[9.562445,39.166033],[9.486377,39.139575],[9.388089,39.167532],[9.264169,39.21678],[9.206911,39.213834],[9.149344,39.196988],[9.101801,39.211302],[9.056326,39.239181],[9.022633,39.04325],[8.966616,38.96372],[8.88135,38.912871],[8.801148,38.909692],[8.718569,38.92672],[8.648496,38.926565],[8.595372,38.964314],[8.553308,39.030331],[8.486232,39.110507],[8.418122,39.205721],[8.410784,39.291788],[8.399105,39.48157],[8.418639,39.523066],[8.447061,39.562805],[8.461014,39.647709],[8.451195,39.721658],[8.471039,39.748117],[8.510726,39.721658],[8.540492,39.73158],[8.538632,39.769666],[8.547727,39.839222],[8.495844,39.897436],[8.407787,39.917254],[8.399312,39.97818],[8.408614,40.037634],[8.455123,40.077606],[8.470832,40.130729],[8.471246,40.292683],[8.40913,40.352369],[8.385359,40.4427],[8.353217,40.500526],[8.295546,40.558662],[8.230227,40.605971],[8.189919,40.651628],[8.180824,40.771052],[8.203768,40.87071],[8.224232,40.913343],[8.245213,40.907012],[8.310118,40.857506],[8.363242,40.846344],[8.468455,40.83433],[8.571911,40.850194],[8.698932,40.895256],[8.821198,40.949904],[8.998138,41.110359],[9.107176,41.142915],[9.16309,41.185135],[9.182107,41.242186],[9.228409,41.257069],[9.282979,41.201671],[9.350778,41.195884],[9.455165,41.150124],[9.500227,41.106328],[9.538777,41.05367],[9.575674,41.030519],[9.615362,41.01729],[9.62115,41.004888],[9.58973,40.992485],[9.55366,40.932127],[9.574021,40.914764],[9.632002,40.882053]]],[[[10.395159,42.858134],[10.428335,42.819195],[10.432263,42.796587],[10.409939,42.770981],[10.419344,42.713207],[10.335628,42.761137],[10.209021,42.736901],[10.131299,42.742043],[10.109802,42.785037],[10.127579,42.810307],[10.248191,42.815759],[10.285708,42.828084],[10.358986,42.822296],[10.395159,42.858134]]],[[[12.130764,46.984781],[12.154122,46.935275],[12.268016,46.835875],[12.330131,46.759833],[12.388319,46.702654],[12.479166,46.6725],[12.598642,46.654104],[12.699825,46.647437],[12.805555,46.625888],[13.168737,46.572661],[13.351568,46.557934],[13.490061,46.555557],[13.69997,46.520262],[13.679713,46.462901],[13.637132,46.448535],[13.563234,46.4151],[13.478485,46.369211],[13.399524,46.317535],[13.378181,46.261595],[13.399627,46.224957],[13.421021,46.212296],[13.449753,46.22351],[13.491766,46.216611],[13.544683,46.19656],[13.632481,46.177027],[13.634961,46.157751],[13.616565,46.133102],[13.548042,46.089125],[13.486443,46.039542],[13.480294,46.009233],[13.487684,45.98709],[13.509181,45.973783],[13.600545,45.979778],[13.613981,45.961691],[13.569642,45.834128],[13.58344,45.812372],[13.663487,45.791986],[13.721674,45.761264],[13.831177,45.680416],[13.87474,45.614839],[13.844768,45.59285],[13.775935,45.581973],[13.719866,45.587579],[13.783273,45.627241],[13.628347,45.770953],[13.55817,45.770695],[13.465153,45.709949],[13.206357,45.771367],[13.156748,45.746562],[13.120161,45.697883],[13.030244,45.637499],[12.903016,45.610782],[12.761216,45.544275],[12.611665,45.497223],[12.497563,45.46167],[12.432141,45.467923],[12.536114,45.544921],[12.491775,45.54629],[12.353799,45.491978],[12.274321,45.446064],[12.248793,45.368833],[12.225642,45.241528],[12.28631,45.207732],[12.392453,45.039809],[12.523401,44.967953],[12.497977,44.89943],[12.46356,44.845222],[12.384495,44.798351],[12.319073,44.833129],[12.278868,44.832225],[12.248379,44.72249],[12.305017,44.429433],[12.396277,44.223864],[12.486814,44.134206],[12.691143,43.994705],[12.907047,43.921195],[13.295344,43.686093],[13.508251,43.611654],[13.564165,43.571294],[13.693252,43.38991],[13.804667,43.180362],[13.924866,42.851545],[14.010442,42.689565],[14.182732,42.506424],[14.540746,42.244269],[14.866101,42.052524],[15.168718,41.93403],[15.404983,41.91323],[15.964018,41.93943],[16.06148,41.928139],[16.164626,41.896203],[16.189121,41.814011],[16.151294,41.758485],[16.033678,41.700762],[15.913789,41.620871],[15.900456,41.512066],[16.012594,41.435404],[16.551889,41.232031],[17.10338,41.062171],[17.275153,40.975432],[17.47421,40.840557],[17.955008,40.655193],[18.03614,40.564966],[18.328215,40.370869],[18.46061,40.221059],[18.485828,40.104839],[18.422576,39.986862],[18.393431,39.903637],[18.343718,39.821394],[18.219384,39.852555],[18.077894,39.936942],[17.864987,40.280177],[17.476174,40.314956],[17.395765,40.340225],[17.257686,40.399085],[17.249418,40.437868],[17.215311,40.486418],[17.179965,40.502799],[17.03124,40.513471],[16.928197,40.458073],[16.807067,40.326479],[16.669608,40.137189],[16.529978,39.859686],[16.521917,39.747548],[16.597778,39.638924],[16.824327,39.578334],[16.9992,39.481596],[17.114542,39.380594],[17.122914,39.136578],[17.17459,38.998111],[17.098523,38.919356],[16.951451,38.939794],[16.755494,38.88972],[16.616692,38.800138],[16.559021,38.714795],[16.574213,38.493542],[16.545585,38.409077],[16.282448,38.249552],[16.144162,38.086358],[16.109746,38.018662],[16.056829,37.941845],[15.72455,37.939132],[15.645795,38.034216],[15.643108,38.175396],[15.700158,38.26229],[15.822321,38.302985],[15.904797,38.483491],[15.878855,38.613922],[15.926915,38.671748],[15.97239,38.712573],[16.065511,38.736447],[16.196769,38.759237],[16.209998,38.941112],[16.107472,39.02382],[16.071505,39.139446],[16.023653,39.353593],[15.854361,39.626496],[15.76372,39.870073],[15.69282,39.990169],[15.585127,40.052853],[15.390927,40.052129],[15.294498,40.070035],[14.95085,40.238991],[14.926976,40.264726],[14.929146,40.309581],[14.986093,40.377484],[14.947646,40.469339],[14.906925,40.556078],[14.839539,40.630001],[14.765745,40.668422],[14.611233,40.644755],[14.556972,40.626409],[14.459407,40.632714],[14.382719,40.599874],[14.339931,40.598814],[14.460544,40.728729],[14.428091,40.759321],[14.308925,40.812651],[14.147178,40.820713],[14.102323,40.827172],[14.075865,40.79397],[14.044342,40.812238],[14.047649,40.870296],[13.859754,41.129996],[13.733353,41.235623],[13.669688,41.254485],[13.55476,41.232186],[13.361903,41.27854],[13.246871,41.28885],[13.183413,41.277687],[13.088638,41.243839],[13.040992,41.266215],[13.024249,41.300942],[12.84917,41.408739],[12.630888,41.469665],[12.205695,41.812642],[12.075263,41.940851],[11.807063,42.082031],[11.637357,42.287548],[11.498451,42.362918],[11.296293,42.423302],[11.249681,42.415706],[11.188909,42.393123],[11.141263,42.389894],[11.10323,42.416584],[11.14178,42.444076],[11.184775,42.456582],[11.167825,42.535156],[10.937762,42.738735],[10.803093,42.804313],[10.765162,42.844672],[10.737154,42.899966],[10.708422,42.93632],[10.644653,42.957172],[10.590186,42.953606],[10.514842,42.967507],[10.517322,43.065124],[10.532308,43.140158],[10.520836,43.203823],[10.447559,43.371203],[10.320538,43.513107],[10.245814,43.852104],[10.18804,43.947499],[10.047687,44.019949],[9.73091,44.101184],[9.289387,44.319259],[9.195956,44.323005],[8.930339,44.407781],[8.765801,44.422302],[8.551964,44.346131],[8.292342,44.136531],[8.081605,43.918922],[8.005021,43.876754],[7.733306,43.802572],[7.493114,43.767148],[7.49053,43.822958],[7.482004,43.864894],[7.522673,43.911067],[7.589697,43.96543],[7.651502,44.033643],[7.677134,44.083149],[7.665042,44.116041],[7.63724,44.16485],[7.599464,44.168364],[7.370899,44.127384],[7.318551,44.137978],[7.149362,44.201695],[6.967255,44.280011],[6.90023,44.335744],[6.874857,44.392019],[6.893874,44.428193],[6.878578,44.463281],[6.842921,44.510694],[6.875167,44.564567],[6.931908,44.631643],[6.96033,44.67717],[7.007872,44.688978],[7.030713,44.716702],[6.992679,44.82729],[6.972836,44.845041],[6.939866,44.858761],[6.889327,44.860285],[6.801115,44.883152],[6.738225,44.921393],[6.724685,44.973017],[6.691406,45.022601],[6.634769,45.06818],[6.627689,45.11797],[6.692284,45.144299],[6.780341,45.145333],[6.842301,45.135643],[6.981207,45.215587],[7.032367,45.222589],[7.078359,45.239926],[7.116806,45.349041],[7.146365,45.381726],[7.153393,45.40095],[7.126108,45.423688],[7.01366,45.500505],[6.962397,45.580577],[6.881472,45.670339],[6.806231,45.710001],[6.790935,45.740878],[6.789178,45.7801],[6.804474,45.814568],[6.940796,45.868363],[7.021102,45.925776],[7.055725,45.903788],[7.129002,45.880404],[7.327956,45.91234],[7.451566,45.944457],[7.538589,45.978176],[7.59254,45.972233],[7.787876,45.921848],[7.852369,45.94748],[7.993135,46.0159],[8.014219,46.051892],[8.12522,46.160955],[8.127287,46.187595],[8.081502,46.256014],[8.095661,46.271026],[8.231932,46.341203],[8.298543,46.403421],[8.370683,46.445124],[8.422566,46.446028],[8.436829,46.431895],[8.442927,46.402801],[8.438483,46.28286],[8.45843,46.245911],[8.5654,46.159818],[8.641674,46.110803],[8.818511,46.077136],[8.826779,46.061013],[8.777997,45.996211],[8.885174,45.918696],[8.904294,45.861955],[8.953697,45.830045],[9.02377,45.845677],[9.046714,45.875598],[9.019171,45.928101],[8.998914,45.983111],[9.003048,46.014892],[9.022375,46.051479],[9.071002,46.102458],[9.203449,46.219246],[9.251095,46.286762],[9.259725,46.391277],[9.260138,46.4752],[9.304373,46.49556],[9.399354,46.480677],[9.427621,46.482331],[9.440592,46.43081],[9.481055,46.348799],[9.5287,46.306218],[9.579602,46.296115],[9.639495,46.295882],[9.787754,46.346034],[9.884441,46.367764],[9.93927,46.361796],[9.971671,46.327663],[10.041021,46.238108],[10.080553,46.22798],[10.128354,46.238212],[10.1452,46.253534],[10.129904,46.287976],[10.109647,46.362855],[10.081897,46.420733],[10.04562,46.447915],[10.03823,46.483184],[10.061226,46.546797],[10.087013,46.599895],[10.1375,46.614364],[10.195533,46.621082],[10.272273,46.564858],[10.363068,46.547082],[10.430609,46.550053],[10.442495,46.582842],[10.438257,46.618834],[10.39795,46.665033],[10.406011,46.734874],[10.45283,46.864943],[10.479392,46.855125],[10.579747,46.85373],[10.689301,46.846392],[10.759788,46.79332],[10.828931,46.775233],[10.927323,46.769497],[10.993262,46.77699],[11.025095,46.796989],[11.06349,46.85913],[11.133925,46.936179],[11.24441,46.975686],[11.433184,46.983076],[11.527545,46.997416],[11.625523,46.996563],[11.699369,46.984678],[11.775643,46.986073],[11.969482,47.039713],[12.169418,47.082139],[12.197168,47.074982],[12.20125,47.0609],[12.16549,47.028189],[12.130764,46.984781]],[[12.396897,43.934554],[12.426353,43.894091],[12.485264,43.901429],[12.514668,43.952976],[12.503661,43.98977],[12.441081,43.982406],[12.396897,43.934554]]]]},"type":"Feature","properties":{"ISO_A2":"IT","NAME":"Italy"}},{"geometry":{"type":"Polygon","coordinates":[[[-77.26148,18.457427],[-77.13955,18.421512],[-77.013795,18.402934],[-76.959354,18.401874],[-76.90822,18.390428],[-76.793292,18.304284],[-76.700739,18.25718],[-76.349856,18.151864],[-76.232757,17.970325],[-76.210795,17.913532],[-76.301435,17.879839],[-76.415537,17.868212],[-76.524626,17.866222],[-76.625395,17.900975],[-76.669372,17.92764],[-76.774326,17.940456],[-76.748281,17.964873],[-76.794842,17.976319],[-76.853236,17.973709],[-76.896257,17.904127],[-76.944135,17.848782],[-77.035964,17.854104],[-77.071311,17.901285],[-77.119473,17.880098],[-77.158411,17.845061],[-77.204998,17.71494],[-77.279877,17.779561],[-77.361448,17.833718],[-77.463871,17.856068],[-77.670757,17.859737],[-77.768167,17.877385],[-77.849403,17.987481],[-77.881313,18.01903],[-77.962988,18.047581],[-78.044481,18.173852],[-78.073627,18.191164],[-78.294079,18.218061],[-78.339502,18.287204],[-78.325963,18.349759],[-78.252453,18.426266],[-78.216719,18.448099],[-78.094504,18.444818],[-77.978155,18.467839],[-77.926866,18.500706],[-77.873432,18.522229],[-77.451598,18.467038],[-77.354239,18.466444],[-77.26148,18.457427]]]},"type":"Feature","properties":{"ISO_A2":"JM","NAME":"Jamaica"}},{"geometry":{"type":"Polygon","coordinates":[[[-2.018631,49.231259],[-2.009898,49.180797],[-2.053745,49.169816],[-2.09103,49.187386],[-2.165676,49.187386],[-2.235827,49.176378],[-2.220479,49.266373],[-2.082245,49.255392],[-2.018631,49.231259]]]},"type":"Feature","properties":{"ISO_A2":"JE","NAME":"Jersey"}},{"geometry":{"type":"Polygon","coordinates":[[[39.145446,32.124499],[38.997083,32.007452],[38.962356,31.994895],[38.769655,31.946474],[38.375518,31.847462],[38.111452,31.781161],[37.77385,31.696334],[37.49335,31.625874],[37.215641,31.55611],[36.958551,31.491515],[37.10526,31.355167],[37.329432,31.146833],[37.479036,31.007772],[37.655511,30.828945],[37.81302,30.669291],[37.98009,30.499999],[37.86294,30.442638],[37.669722,30.348122],[37.64993,30.33094],[37.633548,30.313292],[37.553605,30.144569],[37.490715,30.011708],[37.469217,29.995069],[37.199466,29.946312],[36.92708,29.897064],[36.755256,29.866033],[36.703889,29.831668],[36.591855,29.666097],[36.476099,29.495125],[36.282778,29.355366],[36.068476,29.200544],[36.015456,29.190467],[35.860375,29.214238],[35.595275,29.254855],[35.339166,29.294078],[35.163776,29.32095],[34.950818,29.353532],[34.982185,29.48448],[34.973401,29.555018],[35.02394,29.787071],[35.053447,29.896935],[35.068175,29.97786],[35.141607,30.141675],[35.132667,30.195315],[35.14817,30.384321],[35.140625,30.420908],[35.17406,30.523925],[35.23664,30.673477],[35.297825,30.802255],[35.320149,30.860184],[35.38304,30.982269],[35.439315,31.132415],[35.409653,31.214452],[35.400661,31.230497],[35.423502,31.324832],[35.422882,31.325375],[35.450529,31.479319],[35.465463,31.562363],[35.499467,31.672382],[35.558998,31.765529],[35.531506,31.984921],[35.53471,32.103002],[35.57202,32.237878],[35.551453,32.395516],[35.569023,32.61987],[35.572847,32.64085],[35.5945,32.668006],[35.611243,32.682062],[35.734439,32.728881],[35.787253,32.734927],[35.89474,32.713792],[35.956441,32.666714],[36.059484,32.533777],[36.219784,32.495097],[36.284277,32.457451],[36.372126,32.386938],[36.4792,32.361307],[36.818404,32.317304],[37.08893,32.465512],[37.317547,32.590776],[37.577428,32.733067],[37.754161,32.829831],[38.055745,32.99486],[38.254286,33.099246],[38.515665,33.236628],[38.77353,33.372201],[38.84505,33.150871],[38.914865,32.934657],[38.987419,32.710691],[39.057854,32.493185],[38.98158,32.472566],[39.041369,32.305651],[39.140071,32.331205],[39.247455,32.350997],[39.292775,32.24382],[39.145446,32.124499]]]},"type":"Feature","properties":{"ISO_A2":"JO","NAME":"Jordan"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[123.888697,24.28012],[123.825548,24.266064],[123.74979,24.283298],[123.680647,24.288053],[123.679821,24.317792],[123.752374,24.348488],[123.753718,24.391302],[123.771495,24.414453],[123.934895,24.362027],[123.928178,24.323658],[123.888697,24.28012]]],[[[124.293116,24.51592],[124.234309,24.358048],[124.18563,24.335052],[124.13571,24.34761],[124.084757,24.435821],[124.120414,24.469644],[124.17023,24.451841],[124.210538,24.458662],[124.302005,24.58713],[124.324019,24.566356],[124.293116,24.51592]]],[[[125.444157,24.743141],[125.359408,24.717096],[125.268974,24.732496],[125.283547,24.871919],[125.314966,24.852385],[125.334603,24.804688],[125.401886,24.776834],[125.444157,24.743141]]],[[[142.188148,26.616515],[142.169958,26.615688],[142.10712,26.721522],[142.12531,26.726483],[142.16169,26.709946],[142.202204,26.648761],[142.188148,26.616515]]],[[[128.258766,26.652792],[128.162441,26.606955],[128.126991,26.55223],[128.037901,26.533575],[127.951291,26.456473],[127.867059,26.442495],[127.869229,26.380586],[127.904782,26.328109],[127.848765,26.318962],[127.790164,26.25509],[127.785513,26.208685],[127.80639,26.171219],[127.8036,26.152513],[127.729393,26.097167],[127.653118,26.094738],[127.649707,26.154476],[127.654875,26.199176],[127.727015,26.307904],[127.728876,26.433942],[127.795848,26.448515],[127.820446,26.466059],[127.92597,26.555692],[127.945503,26.593933],[127.89083,26.631036],[127.89486,26.674961],[127.907263,26.693591],[127.994286,26.679457],[128.029633,26.646849],[128.046789,26.643309],[128.097639,26.667778],[128.121617,26.711419],[128.216495,26.796866],[128.254838,26.881874],[128.33163,26.812111],[128.310959,26.720695],[128.258766,26.652792]]],[[[128.998152,27.720789],[128.956191,27.702495],[128.899967,27.727765],[128.882811,27.842435],[128.907615,27.898013],[128.951644,27.910235],[128.989781,27.811119],[129.016446,27.770217],[128.998152,27.720789]]],[[[129.324024,28.104926],[129.330535,28.081594],[129.232453,28.101127],[129.192456,28.192491],[129.257361,28.176162],[129.277308,28.144742],[129.324024,28.104926]]],[[[129.452595,28.208976],[129.366399,28.127741],[129.274931,28.200863],[129.164654,28.249775],[129.217054,28.262926],[129.247853,28.282538],[129.25085,28.313595],[129.322474,28.359613],[129.464584,28.39527],[129.509646,28.397518],[129.560599,28.43103],[129.577135,28.46126],[129.598012,28.475859],[129.689583,28.517484],[129.714594,28.469606],[129.71046,28.432115],[129.641731,28.411289],[129.574655,28.361163],[129.512643,28.298738],[129.456729,28.272331],[129.439056,28.254761],[129.452595,28.208976]]],[[[130.622756,30.263011],[130.508241,30.24141],[130.445609,30.26469],[130.388042,30.388197],[130.497182,30.465505],[130.64353,30.388946],[130.673296,30.366881],[130.622756,30.263011]]],[[[130.95979,30.396905],[130.872146,30.386311],[130.870286,30.44424],[130.939946,30.575111],[130.947387,30.671203],[131.01219,30.792281],[131.039888,30.818894],[131.060352,30.828454],[131.082676,30.790886],[131.057458,30.642471],[130.992553,30.529971],[130.95979,30.396905]]],[[[129.718005,31.657138],[129.686792,31.639671],[129.706843,31.718271],[129.787251,31.787104],[129.793659,31.742456],[129.718005,31.657138]]],[[[130.381014,32.423706],[130.292544,32.419313],[130.25606,32.431018],[130.241694,32.462773],[130.365407,32.527214],[130.461422,32.515742],[130.418531,32.457709],[130.381014,32.423706]]],[[[130.082531,32.229661],[130.003466,32.193978],[129.993337,32.228162],[129.960161,32.243769],[130.017315,32.291828],[130.015351,32.313687],[129.979281,32.346165],[130.021242,32.468871],[130.00977,32.521633],[130.167797,32.541218],[130.196632,32.491583],[130.199526,32.340559],[130.082531,32.229661]]],[[[128.665356,32.783865],[128.704113,32.756864],[128.761061,32.772341],[128.806019,32.775984],[128.838575,32.76291],[128.8794,32.693328],[128.894489,32.652167],[128.821316,32.646328],[128.790413,32.636716],[128.750519,32.586125],[128.692951,32.604754],[128.657295,32.628422],[128.64913,32.661986],[128.665356,32.783865]]],[[[139.841108,33.05607],[139.823848,33.045477],[139.775686,33.078214],[139.768968,33.107178],[139.777443,33.125162],[139.808862,33.129244],[139.873664,33.09351],[139.841108,33.05607]]],[[[129.076907,32.84027],[129.051896,32.829469],[129.01965,32.919645],[128.997222,32.951865],[129.034946,32.969073],[129.109773,33.132577],[129.123623,33.067698],[129.152768,33.003335],[129.181914,32.993103],[129.153492,32.946206],[129.111634,32.928843],[129.076907,32.84027]]],[[[129.491766,33.223037],[129.421382,33.175831],[129.370429,33.176037],[129.416938,33.231099],[129.423139,33.257376],[129.461897,33.331247],[129.537964,33.357757],[129.5699,33.361039],[129.508095,33.284325],[129.491766,33.223037]]],[[[129.795726,33.748845],[129.726583,33.707349],[129.674804,33.739698],[129.700022,33.828892],[129.717282,33.858399],[129.776399,33.829176],[129.795726,33.748845]]],[[[131.17466,33.6026],[131.309226,33.572731],[131.365966,33.570871],[131.41878,33.58441],[131.498878,33.623581],[131.583007,33.652391],[131.643055,33.637792],[131.696282,33.602859],[131.724187,33.553818],[131.710648,33.502348],[131.615564,33.391838],[131.537429,33.274093],[131.717056,33.252079],[131.89658,33.254611],[131.854722,33.181644],[131.847797,33.118082],[131.902678,33.087774],[131.94929,33.047053],[131.937198,33.01013],[131.910429,32.973698],[132.008615,32.919025],[132.002207,32.882386],[131.976679,32.843965],[131.732146,32.592843],[131.660315,32.465616],[131.610293,32.325469],[131.564611,32.223021],[131.531124,32.116748],[131.505699,32.001949],[131.460224,31.883481],[131.475314,31.778397],[131.460018,31.67078],[131.337234,31.404698],[131.249694,31.409633],[131.139727,31.441828],[131.070791,31.436867],[131.035134,31.377697],[131.098386,31.256129],[130.902222,31.112055],[130.685698,31.015161],[130.684148,31.059293],[130.704508,31.094097],[130.735721,31.12208],[130.758355,31.155799],[130.789774,31.269074],[130.774271,31.383227],[130.708952,31.526086],[130.704198,31.577453],[130.749363,31.598175],[130.779749,31.604118],[130.796285,31.624065],[130.796906,31.671297],[130.776235,31.706282],[130.714533,31.717651],[130.655105,31.718426],[130.613454,31.665406],[130.556093,31.563087],[130.528085,31.459682],[130.540487,31.403096],[130.565912,31.352402],[130.644563,31.267472],[130.621516,31.217526],[130.588753,31.178511],[130.31063,31.266877],[130.250582,31.273182],[130.200663,31.291889],[130.147229,31.408522],[130.260608,31.436583],[130.294197,31.45069],[130.3066,31.487794],[130.321999,31.601482],[130.268979,31.696334],[130.224227,31.730105],[130.18795,31.768862],[130.210998,31.848961],[130.195805,31.949859],[130.194462,32.090755],[130.214099,32.115043],[130.319105,32.143516],[130.394966,32.21899],[130.462042,32.304928],[130.560331,32.456081],[130.640533,32.619224],[130.563225,32.626355],[130.497802,32.656922],[130.569426,32.734126],[130.547308,32.831588],[130.440442,32.951374],[130.381737,33.092554],[130.287273,33.154798],[130.23756,33.177613],[130.176892,33.144541],[130.126869,33.104853],[130.173171,33.012972],[130.167797,32.931789],[130.175031,32.851303],[130.22216,32.846833],[130.280038,32.866857],[130.326443,32.85262],[130.353522,32.810349],[130.36086,32.755882],[130.340396,32.701829],[130.297711,32.674983],[130.245518,32.677153],[130.193015,32.706299],[130.152087,32.747872],[130.054109,32.770817],[129.950756,32.721724],[129.85257,32.62173],[129.768545,32.570984],[129.808129,32.645243],[129.826732,32.725341],[129.785908,32.781643],[129.689996,32.875229],[129.667776,32.929412],[129.662298,32.994937],[129.679041,33.059972],[129.777743,32.985532],[129.828283,32.892695],[129.900836,32.851897],[129.991683,32.851535],[129.921817,32.987961],[129.896805,33.022377],[129.798724,33.083588],[129.665088,33.186605],[129.580132,33.236266],[129.610105,33.34365],[129.659921,33.364992],[129.702089,33.359825],[129.844199,33.321765],[129.857531,33.375224],[129.836654,33.403827],[129.825699,33.437003],[129.91913,33.483486],[130.072092,33.521804],[130.103408,33.53971],[130.13059,33.578183],[130.168003,33.598311],[130.275077,33.597691],[130.365097,33.634485],[130.439408,33.734246],[130.457185,33.788946],[130.48385,33.834602],[130.669575,33.915475],[130.715567,33.9278],[130.839694,33.917801],[130.953175,33.872041],[131.009089,33.77582],[131.058078,33.672829],[131.17466,33.6026]]],[[[132.266067,33.945163],[132.314539,33.908577],[132.430501,33.923537],[132.444867,33.913176],[132.411071,33.879922],[132.359911,33.84703],[132.267307,33.871499],[132.208809,33.872868],[132.200644,33.9278],[132.207982,33.947799],[132.266067,33.945163]]],[[[132.578399,34.115179],[132.54946,34.075078],[132.46099,34.087274],[132.496337,34.121949],[132.523519,34.164065],[132.543466,34.172643],[132.560105,34.126909],[132.578399,34.115179]]],[[[129.279479,34.123395],[129.21447,34.082829],[129.186461,34.144996],[129.214883,34.320644],[129.33715,34.284755],[129.335083,34.230831],[129.279479,34.123395]]],[[[134.357412,34.256333],[134.495698,34.214759],[134.637498,34.226593],[134.635224,34.043969],[134.655378,33.982629],[134.695272,33.927749],[134.674808,33.847805],[134.738887,33.82052],[134.548718,33.729285],[134.377049,33.608388],[134.306562,33.526817],[134.24269,33.439432],[134.20569,33.346957],[134.181609,33.247222],[134.124144,33.28678],[133.958676,33.44832],[133.85398,33.492685],[133.685618,33.516301],[133.631978,33.511004],[133.285953,33.35998],[133.239961,33.249599],[133.145599,33.083149],[133.100848,33.028217],[133.051135,33.012456],[133.015995,32.983878],[132.977238,32.841975],[132.869957,32.754616],[132.804328,32.752006],[132.69219,32.775933],[132.641754,32.762471],[132.709037,32.902488],[132.601963,32.919541],[132.495096,32.916596],[132.492616,33.00765],[132.427814,33.059378],[132.475769,33.12648],[132.477113,33.181153],[132.505225,33.211281],[132.515044,33.255361],[132.511426,33.293059],[132.445384,33.304608],[132.405179,33.331247],[132.412828,33.430466],[132.374897,33.434058],[132.281053,33.416772],[132.085819,33.340162],[132.032592,33.339981],[132.114448,33.394577],[132.287874,33.469508],[132.365905,33.512451],[132.536024,33.632934],[132.643098,33.689934],[132.698908,33.790909],[132.716272,33.852249],[132.752342,33.906174],[132.784278,33.992447],[132.839468,34.021231],[132.935173,34.095335],[132.990157,34.088152],[133.051238,33.997124],[133.133714,33.927283],[133.193038,33.933226],[133.298872,33.969012],[133.349825,33.977048],[133.472091,33.972785],[133.582059,34.017149],[133.62681,34.069394],[133.64345,34.134687],[133.602626,34.243853],[133.655542,34.232846],[133.706289,34.237342],[133.825558,34.306847],[133.948341,34.348059],[134.075879,34.35842],[134.219229,34.319042],[134.357412,34.256333]]],[[[134.351831,34.483658],[134.333227,34.463788],[134.315347,34.468956],[134.251888,34.423067],[134.238143,34.467044],[134.188223,34.496318],[134.182125,34.519237],[134.325992,34.534378],[134.372295,34.522389],[134.351831,34.483658]]],[[[134.932777,34.288114],[134.824463,34.202926],[134.730619,34.208894],[134.68349,34.246954],[134.667884,34.294134],[134.757284,34.368187],[134.834282,34.472676],[134.904148,34.519082],[134.960786,34.544946],[135.004711,34.544067],[134.905492,34.398288],[134.932777,34.288114]]],[[[129.385622,34.353666],[129.365365,34.305503],[129.297462,34.339584],[129.266663,34.370461],[129.329398,34.521872],[129.32206,34.579311],[129.325884,34.607294],[129.451045,34.686565],[129.472439,34.671347],[129.48019,34.649462],[129.469131,34.61551],[129.475332,34.54045],[129.381488,34.416453],[129.385622,34.353666]]],[[[139.456429,34.726511],[139.44568,34.679537],[139.39235,34.689873],[139.366925,34.720491],[139.370026,34.775449],[139.426146,34.775862],[139.456429,34.726511]]],[[[133.370495,36.203837],[133.32471,36.166527],[133.239237,36.178774],[133.189938,36.232621],[133.206164,36.293418],[133.295668,36.340134],[133.381244,36.246367],[133.370495,36.203837]]],[[[138.344042,37.822136],[138.249061,37.819578],[138.225186,37.829371],[138.282754,37.854176],[138.287921,37.895775],[138.322234,37.969517],[138.321718,37.990808],[138.246167,37.99458],[138.249991,38.078451],[138.306318,38.161134],[138.461347,38.291461],[138.503619,38.31593],[138.510026,38.258957],[138.462794,38.124314],[138.453596,38.075687],[138.575139,38.065532],[138.497004,37.903914],[138.344042,37.822136]]],[[[141.229344,41.372669],[141.268721,41.353833],[141.45548,41.404734],[141.419926,41.251177],[141.399979,41.096355],[141.413622,40.839368],[141.430468,40.723354],[141.462818,40.611139],[141.542296,40.53073],[141.646269,40.473654],[141.797061,40.291184],[141.877883,40.067219],[141.935037,39.958492],[141.977825,39.844442],[141.990848,39.792248],[141.991881,39.7399],[141.979065,39.66838],[141.993225,39.610528],[141.976895,39.428834],[141.909509,39.218692],[141.900827,39.111334],[141.842123,39.090017],[141.806569,39.040408],[141.776184,39.017412],[141.742491,38.999584],[141.693605,38.995165],[141.658568,38.974831],[141.644719,38.917935],[141.622291,38.865147],[141.57971,38.816494],[141.546327,38.762828],[141.518732,38.632009],[141.50881,38.497857],[141.467469,38.404142],[141.368147,38.379751],[141.254252,38.381378],[141.108421,38.337944],[141.077312,38.312545],[140.962073,38.148886],[140.929,38.052871],[140.927967,37.949596],[140.960006,37.822601],[141.003414,37.698449],[141.036281,37.467222],[141.001657,37.114634],[140.968378,37.002057],[140.895101,36.925731],[140.8396,36.890307],[140.791851,36.846873],[140.729943,36.731893],[140.627313,36.502785],[140.618838,36.445295],[140.619252,36.385583],[140.591553,36.30781],[140.57357,36.231329],[140.590416,36.142445],[140.621939,36.059246],[140.759605,35.845719],[140.813452,35.782519],[140.874017,35.724951],[140.639199,35.661286],[140.596824,35.632037],[140.457401,35.510236],[140.412856,35.394791],[140.416473,35.266995],[140.392909,35.221158],[140.354668,35.181445],[140.314774,35.155012],[140.158918,35.096463],[140.059183,35.038275],[139.959757,34.947299],[139.92038,34.899627],[139.844002,34.914872],[139.79925,34.956936],[139.843278,35.009853],[139.829636,35.072149],[139.851443,35.232346],[139.826432,35.296657],[139.906117,35.345285],[139.944151,35.423006],[140.027143,35.485199],[140.086364,35.540415],[140.096906,35.585167],[140.04368,35.633329],[139.987456,35.668211],[139.909734,35.668366],[139.834804,35.658056],[139.786331,35.61209],[139.770105,35.549562],[139.773929,35.520364],[139.767831,35.494836],[139.650009,35.409131],[139.665512,35.319498],[139.700031,35.273971],[139.74406,35.252396],[139.730831,35.22152],[139.67502,35.149276],[139.635953,35.142145],[139.564122,35.243275],[139.474412,35.298543],[139.363514,35.298104],[139.249413,35.278002],[139.1627,35.210719],[139.134071,35.154857],[139.115778,35.097135],[139.121979,34.956497],[139.086012,34.839166],[139.015629,34.73602],[138.982659,34.698399],[138.89667,34.628403],[138.837448,34.619231],[138.795177,34.651012],[138.761071,34.699226],[138.804479,34.875753],[138.802722,34.974816],[138.903594,35.025253],[138.820912,35.095688],[138.719626,35.124058],[138.577206,35.086489],[138.537002,35.044114],[138.509613,34.987167],[138.433132,34.915182],[138.348693,34.847692],[138.253195,34.732686],[138.189116,34.596338],[137.978999,34.640909],[137.864278,34.650883],[137.748523,34.647395],[137.543367,34.664215],[137.318058,34.636387],[137.061743,34.582825],[137.077039,34.621453],[137.287776,34.703489],[137.295424,34.727596],[137.275166,34.772503],[137.222663,34.774699],[137.096573,34.759016],[137.032184,34.76594],[137.005932,34.814103],[136.963248,34.834902],[136.934722,34.815188],[136.944127,34.72155],[136.912915,34.709019],[136.871263,34.7331],[136.884596,34.80586],[136.856174,34.912495],[136.85297,34.978692],[136.897102,35.035562],[136.851833,35.059514],[136.804187,35.050316],[136.743519,35.022979],[136.690086,34.984118],[136.576915,34.789556],[136.53299,34.678375],[136.615775,34.589052],[136.841601,34.464202],[136.880255,34.433609],[136.881185,34.380486],[136.853693,34.324055],[136.792199,34.29925],[136.544462,34.257728],[136.329901,34.176829],[136.267889,34.09487],[136.072553,33.778197],[135.91618,33.561699],[135.695315,33.486949],[135.452849,33.553379],[135.394248,33.628749],[135.346809,33.721999],[135.256685,33.806257],[135.175346,33.89806],[135.127907,34.006968],[135.135349,34.182617],[135.100105,34.288373],[135.131938,34.316536],[135.265573,34.380822],[135.309292,34.416814],[135.384739,34.500427],[135.411818,34.546961],[135.415952,34.617474],[135.35518,34.654319],[135.198291,34.65295],[135.041711,34.631013],[134.929883,34.661838],[134.784983,34.747053],[134.740024,34.765243],[134.583755,34.770591],[134.472237,34.754778],[134.362683,34.723669],[134.246928,34.71385],[134.208274,34.697676],[134.074535,34.593108],[133.968288,34.527298],[133.876408,34.494613],[133.67797,34.48588],[133.578648,34.464718],[133.474365,34.430121],[133.445323,34.433144],[133.335665,34.385343],[133.209782,34.343976],[133.142395,34.302454],[133.018992,34.329584],[132.774563,34.255222],[132.656534,34.246075],[132.534474,34.287055],[132.421303,34.353356],[132.312575,34.324934],[132.238058,34.227007],[132.201988,34.032032],[132.159406,33.944233],[132.146487,33.838762],[132.090263,33.855479],[131.763151,34.045261],[131.740517,34.05203],[131.476141,34.019371],[131.407928,34.00361],[131.322765,33.965188],[131.232641,33.94798],[131.150372,33.975653],[131.071824,34.020663],[130.996377,34.007279],[130.918862,33.97573],[130.8892,34.261837],[130.904289,34.29956],[130.951831,34.349687],[131.004231,34.392578],[131.132286,34.407357],[131.261787,34.393482],[131.354391,34.413197],[131.432526,34.469808],[131.515001,34.550139],[131.608019,34.615458],[131.734109,34.667083],[131.856066,34.72633],[131.963139,34.809348],[132.064735,34.899989],[132.158166,34.966522],[132.259555,35.022307],[132.414068,35.156278],[132.619017,35.306837],[132.697668,35.418329],[132.746554,35.448999],[132.922977,35.511269],[133.156968,35.558838],[133.267246,35.556538],[133.37649,35.458818],[133.435297,35.472202],[133.494932,35.497472],[133.615442,35.51145],[133.739362,35.49525],[133.860284,35.494888],[133.981311,35.507213],[134.214061,35.539278],[134.336534,35.577906],[134.456114,35.627903],[134.882238,35.66325],[135.174313,35.747069],[135.220512,35.741126],[135.26547,35.721799],[135.268777,35.659684],[135.232087,35.591885],[135.267744,35.550879],[135.326965,35.525532],[135.601884,35.517729],[135.680328,35.503105],[135.79505,35.54951],[135.903157,35.606871],[136.016225,35.682499],[136.09529,35.76761],[136.02222,35.874141],[136.0062,35.990568],[136.067488,36.116866],[136.156268,36.223319],[136.261792,36.287708],[136.358943,36.36176],[136.555831,36.57198],[136.698147,36.742047],[136.749307,36.951027],[136.719231,37.198402],[136.843462,37.382111],[136.962317,37.413686],[137.198582,37.497479],[137.322605,37.522051],[137.341209,37.485464],[137.337488,37.437457],[137.152073,37.283151],[137.045826,37.219718],[136.982264,37.200029],[136.923973,37.171995],[136.899892,37.117657],[136.99446,37.026732],[137.018541,36.959605],[137.01265,36.895113],[137.016681,36.837209],[137.123755,36.774086],[137.246331,36.753157],[137.297697,36.753778],[137.342553,36.770366],[137.482596,36.924749],[137.514118,36.951543],[137.913164,37.064611],[138.109534,37.151066],[138.218055,37.17339],[138.319961,37.218426],[138.54837,37.392137],[138.63281,37.472183],[138.709394,37.560628],[138.770579,37.663438],[138.818845,37.774697],[138.885094,37.843969],[139.247139,38.009101],[139.363928,38.099018],[139.401032,38.142582],[139.445783,38.268776],[139.476789,38.399827],[139.520817,38.50256],[139.580142,38.598885],[139.659724,38.697018],[139.749124,38.78815],[139.801937,38.881581],[139.878625,39.104952],[139.912318,39.228562],[139.93857,39.273159],[139.97712,39.310624],[140.010813,39.358063],[140.036548,39.411135],[140.048124,39.463741],[140.064764,39.624403],[140.054635,39.749279],[139.99469,39.855087],[139.945184,39.885111],[139.891234,39.886868],[139.810309,39.877747],[139.741476,39.920871],[139.755429,39.958957],[139.825708,39.966036],[139.873664,39.985699],[139.907977,40.021743],[139.97247,40.136982],[140.011123,40.260334],[140.014431,40.314878],[139.964098,40.414329],[139.923894,40.533909],[139.92286,40.598452],[139.966682,40.672763],[140.029314,40.733173],[140.085331,40.747358],[140.146102,40.75157],[140.201293,40.774927],[140.252349,40.808776],[140.281288,40.846112],[140.326246,40.947682],[140.343506,41.005663],[140.315291,41.160899],[140.344436,41.203299],[140.385881,41.229783],[140.441278,41.209681],[140.498019,41.205676],[140.564165,41.211826],[140.627623,41.195419],[140.639612,41.155628],[140.679403,40.893267],[140.702451,40.857816],[140.74865,40.830325],[140.800739,40.834304],[140.845801,40.875128],[140.876187,40.929543],[140.936028,40.940757],[141.118549,40.882285],[141.183145,40.92404],[141.225416,40.988454],[141.262107,41.102685],[141.244227,41.205599],[141.200405,41.243581],[141.155136,41.236734],[141.115035,41.208493],[141.070387,41.193067],[140.800533,41.138833],[140.801876,41.253658],[140.859547,41.42543],[140.891483,41.479768],[140.936855,41.505581],[141.050233,41.475712],[141.105837,41.455868],[141.229344,41.372669]]],[[[139.481233,42.080998],[139.458392,42.075623],[139.434621,42.084098],[139.411574,42.159675],[139.431314,42.199569],[139.495806,42.227449],[139.558438,42.2352],[139.505108,42.096397],[139.481233,42.080998]]],[[[141.295386,45.119313],[141.225933,45.112182],[141.145318,45.153885],[141.135293,45.206182],[141.19379,45.247833],[141.251875,45.232485],[141.310062,45.17856],[141.329183,45.150474],[141.295386,45.119313]]],[[[141.072764,45.33284],[141.034007,45.26933],[140.982124,45.363795],[140.971685,45.465494],[141.001657,45.464822],[141.056744,45.449578],[141.069974,45.40002],[141.072764,45.33284]]],[[[143.824327,44.116997],[143.949488,44.111933],[144.005505,44.116636],[144.101416,44.101546],[144.481858,43.949566],[144.596683,43.930239],[144.715229,43.927991],[144.798532,43.940212],[144.871912,43.981915],[145.101562,44.166142],[145.342788,44.333883],[145.369556,44.327372],[145.369659,44.281277],[145.351986,44.229781],[145.245223,44.076173],[145.126367,43.869364],[145.101045,43.764564],[145.139699,43.662503],[145.214113,43.578219],[145.272921,43.462877],[145.340824,43.302525],[145.436115,43.282216],[145.487895,43.279736],[145.58329,43.327795],[145.67362,43.388876],[145.751238,43.396266],[145.83299,43.385931],[145.725607,43.343453],[145.624218,43.291311],[145.537401,43.192687],[145.505052,43.174213],[145.404799,43.180259],[145.347439,43.176693],[145.230133,43.135507],[145.12709,43.088843],[145.028802,43.031637],[144.921418,43.000941],[144.80711,42.993707],[144.63079,42.94694],[144.516172,42.943581],[144.301508,42.984431],[144.197225,42.97363],[143.969331,42.881388],[143.762109,42.748166],[143.580931,42.598718],[143.429519,42.41891],[143.368645,42.325143],[143.332161,42.220369],[143.3272,42.151019],[143.313661,42.084331],[143.278728,42.037822],[143.23656,42.000176],[143.111709,42.022216],[142.906347,42.118334],[142.508232,42.257938],[142.087896,42.471749],[141.851321,42.579055],[141.406594,42.546938],[140.986154,42.342119],[140.948431,42.359585],[140.787614,42.500016],[140.709789,42.555594],[140.616771,42.571329],[140.547628,42.569547],[140.480449,42.559366],[140.385468,42.487174],[140.350534,42.435085],[140.323559,42.37607],[140.315291,42.334264],[140.32666,42.293336],[140.416577,42.200732],[140.527578,42.131796],[140.577704,42.11867],[140.684261,42.123476],[140.733767,42.116344],[140.912257,41.9778],[141.107697,41.84804],[141.151002,41.805097],[141.078655,41.759829],[140.999487,41.737427],[140.907503,41.74324],[140.816346,41.760397],[140.659869,41.815587],[140.593,41.768562],[140.48913,41.67216],[140.431666,41.56736],[140.384951,41.519275],[140.270126,41.456023],[140.148686,41.42326],[140.085124,41.434086],[140.036652,41.4738],[140.00916,41.521316],[139.995311,41.576429],[140.021252,41.69575],[140.084194,41.803237],[140.108379,41.91292],[140.056805,42.067355],[140.024146,42.099575],[139.895162,42.190035],[139.835424,42.278092],[139.820954,42.387594],[139.828499,42.448133],[139.860125,42.581742],[139.891131,42.649232],[139.950559,42.671427],[140.015051,42.684785],[140.114683,42.732947],[140.224134,42.795528],[140.328623,42.866841],[140.432286,42.954123],[140.486443,43.049879],[140.397456,43.16734],[140.379266,43.237103],[140.392392,43.303145],[140.486857,43.338208],[140.584525,43.311724],[140.780689,43.214985],[140.819136,43.205477],[140.953805,43.200955],[141.138186,43.179949],[141.245053,43.185065],[141.296316,43.199637],[141.374141,43.279658],[141.412278,43.381487],[141.398326,43.512512],[141.397602,43.642608],[141.446798,43.748648],[141.600691,43.918999],[141.644719,44.019458],[141.660842,44.263603],[141.716342,44.371194],[141.760991,44.482531],[141.782178,44.716366],[141.71903,44.941081],[141.655778,45.051204],[141.583017,45.155952],[141.593766,45.255946],[141.652574,45.348653],[141.654021,45.376559],[141.667973,45.40126],[141.778147,45.418908],[141.829514,45.438777],[141.87871,45.483322],[141.937724,45.509522],[141.980822,45.483503],[142.016376,45.43795],[142.171612,45.325632],[142.416041,45.125024],[142.704086,44.819177],[142.884747,44.670142],[143.075123,44.534905],[143.288546,44.396644],[143.511892,44.277556],[143.654622,44.221358],[143.759112,44.131622],[143.824327,44.116997]]]]},"type":"Feature","properties":{"ISO_A2":"JP","NAME":"Japan"}},{"geometry":{"type":"Polygon","coordinates":[[[77.799365,35.495922],[77.696943,35.443237],[77.571576,35.378771],[77.423419,35.3026],[77.292988,35.235524],[77.168499,35.171549],[77.04861,35.109899],[77.004478,35.196353],[76.978899,35.246428],[76.927739,35.346628],[76.882264,35.435718],[76.812759,35.571808],[76.76687,35.6617],[76.878853,35.613305],[77.090003,35.552042],[77.294848,35.508143],[77.446519,35.475613],[77.520054,35.473416],[77.572557,35.47184],[77.724073,35.480574],[77.799365,35.495922]]]},"type":"Feature","properties":{"ISO_A2":"-99","NAME":""}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[50.184462,44.854627],[50.148702,44.826463],[50.095268,44.830623],[49.995119,44.936947],[50.023025,45.044744],[50.059405,45.066784],[50.109841,45.081951],[50.116559,45.058232],[50.045349,45.010018],[50.038838,44.949143],[50.098162,44.88155],[50.184462,44.854627]]],[[[50.311689,44.972087],[50.277273,44.9586],[50.256189,45.02242],[50.294946,45.075905],[50.349723,45.082985],[50.330913,44.998442],[50.311689,44.972087]]],[[[52.682397,45.411802],[52.664827,45.401312],[52.598371,45.428183],[52.55424,45.473969],[52.608913,45.528048],[52.659556,45.518049],[52.692939,45.46074],[52.682397,45.411802]]],[[[70.087381,55.176762],[70.182466,55.162473],[70.293312,55.183583],[70.371447,55.212237],[70.41718,55.253165],[70.486272,55.282362],[70.738143,55.305152],[70.790336,55.261123],[70.910173,55.127979],[70.99177,54.950496],[71.126284,54.715058],[71.185557,54.599329],[71.159202,54.538635],[71.159822,54.455436],[71.152122,54.364072],[71.052749,54.260487],[71.09316,54.212221],[71.336452,54.158348],[71.677155,54.178037],[71.887375,54.221497],[72.004474,54.205684],[72.065607,54.231625],[72.105398,54.308468],[72.186013,54.325625],[72.26916,54.272114],[72.329467,54.181448],[72.387293,54.123027],[72.383055,54.053652],[72.404294,53.964458],[72.446772,53.941824],[72.530281,53.975775],[72.585988,53.995929],[72.599166,54.023059],[72.575601,54.056494],[72.564284,54.090445],[72.582681,54.121606],[72.622317,54.134345],[72.741069,54.1245],[72.91403,54.107344],[73.119289,53.980736],[73.229928,53.957818],[73.276592,53.955622],[73.38072,53.962856],[73.505622,53.99934],[73.589958,54.04497],[73.617967,54.067398],[73.666439,54.06347],[73.712431,54.042386],[73.715532,53.996213],[73.678945,53.929448],[73.554198,53.868288],[73.399375,53.811496],[73.305686,53.707213],[73.285687,53.598408],[73.326873,53.543166],[73.361858,53.506192],[73.371832,53.454386],[73.40692,53.447539],[73.469965,53.468907],[73.642926,53.576265],[73.731138,53.602775],[73.858934,53.619725],[74.068637,53.611405],[74.209972,53.576472],[74.277306,53.527741],[74.351514,53.48764],[74.402777,53.504435],[74.429287,53.550737],[74.430424,53.603705],[74.451921,53.647243],[74.681468,53.754394],[74.83412,53.825707],[74.88683,53.834027],[74.988942,53.819248],[75.052194,53.826689],[75.220195,53.893817],[75.377033,53.970143],[75.392329,54.021742],[75.398116,54.068483],[75.437184,54.08967],[75.656809,54.106],[75.692879,54.114785],[75.880619,54.16796],[76.140552,54.258549],[76.266591,54.311982],[76.496499,54.335702],[76.539184,54.35105],[76.61551,54.38712],[76.759377,54.436884],[76.837305,54.442362],[76.788988,54.321878],[76.70305,54.182455],[76.654577,54.145274],[76.421723,54.151527],[76.422033,54.113519],[76.458569,54.055254],[76.484769,54.022543],[76.513087,53.993216],[76.575719,53.942522],[76.820665,53.822658],[77.132429,53.670135],[77.469256,53.498776],[77.704384,53.379171],[77.799365,53.317418],[77.859982,53.269178],[78.033511,53.094951],[78.198049,52.929689],[78.4755,52.638441],[78.721428,52.357011],[78.992057,52.047392],[79.14874,51.8681],[79.468824,51.49311],[79.554349,51.378001],[79.716458,51.16003],[79.859653,50.955443],[79.986209,50.774576],[80.065945,50.75822],[80.072043,50.807287],[80.086357,50.839998],[80.127234,50.858369],[80.220251,50.911776],[80.270377,50.924592],[80.345205,50.919114],[80.423598,50.94627],[80.452278,50.997611],[80.433623,51.092644],[80.421531,51.136362],[80.448092,51.183362],[80.491036,51.201733],[80.55067,51.21659],[80.605499,51.224212],[80.650457,51.277361],[80.735258,51.293407],[80.813135,51.283485],[80.877317,51.281444],[80.934058,51.242764],[80.96558,51.189796],[81.026765,51.185713],[81.127276,51.191062],[81.14097,51.146568],[81.112393,51.072387],[81.077511,51.014923],[81.071465,50.96875],[81.124589,50.94627],[81.319099,50.966398],[81.388242,50.956477],[81.410153,50.909761],[81.437748,50.871055],[81.451597,50.823668],[81.431392,50.771139],[81.465911,50.739849],[81.633912,50.739125],[81.752044,50.764395],[81.933687,50.766359],[82.098069,50.710858],[82.211912,50.719437],[82.326376,50.741916],[82.493962,50.727602],[82.611733,50.771475],[82.69302,50.826329],[82.718497,50.869505],[82.76082,50.893354],[82.919053,50.893121],[83.019202,50.897255],[83.092789,50.960611],[83.160227,50.989214],[83.273708,50.994562],[83.357321,50.994562],[83.58139,50.935754],[83.717764,50.887178],[83.859822,50.818035],[83.945088,50.774653],[84.002397,50.676881],[84.099291,50.604715],[84.175927,50.520534],[84.194479,50.437438],[84.257834,50.288223],[84.323256,50.239156],[84.400926,50.239156],[84.499008,50.218744],[84.607322,50.202388],[84.838987,50.09131],[84.924047,50.087977],[84.989469,50.061415],[84.999701,50.010281],[84.975206,49.95106],[85.000786,49.894164],[85.076492,49.82161],[85.13654,49.75071],[85.210127,49.66485],[85.232607,49.615809],[85.29188,49.599453],[85.371616,49.623948],[85.498482,49.605396],[85.880474,49.556562],[85.933597,49.550438],[85.974422,49.49933],[86.029612,49.503439],[86.092968,49.50548],[86.180869,49.49933],[86.242157,49.54633],[86.292439,49.587516],[86.417961,49.638469],[86.522244,49.707767],[86.610145,49.769133],[86.675516,49.777298],[86.728691,49.748695],[86.730706,49.695546],[86.665336,49.656711],[86.614228,49.609711],[86.626475,49.562686],[86.714377,49.558603],[86.812097,49.48791],[86.952967,49.322054],[87.000922,49.287328],[87.070582,49.254591],[87.148045,49.239811],[87.233673,49.216144],[87.296873,49.147646],[87.322815,49.08579],[87.229952,49.10584],[87.048516,49.109923],[86.937981,49.097572],[86.885994,49.09057],[86.808324,49.049694],[86.753134,49.008818],[86.728588,48.939339],[86.757837,48.860739],[86.717942,48.697183],[86.663734,48.635533],[86.549425,48.528614],[86.48328,48.50536],[86.372537,48.48624],[86.265567,48.454562],[86.056122,48.423711],[85.829831,48.408053],[85.749371,48.385083],[85.692217,48.311832],[85.651547,48.250544],[85.626381,48.203983],[85.562251,48.051873],[85.525974,47.915629],[85.56163,47.746466],[85.588296,47.558493],[85.586642,47.493665],[85.641832,47.397417],[85.669841,47.338403],[85.656612,47.254635],[85.577237,47.188489],[85.529746,47.100795],[85.484788,47.06351],[85.355338,47.046741],[85.233485,47.036354],[85.110599,46.961217],[85.012207,46.90923],[84.858263,46.843188],[84.786174,46.830734],[84.746021,46.864375],[84.719563,46.939332],[84.666646,46.972379],[84.592284,46.974962],[84.532443,46.975789],[84.338863,46.99615],[84.215149,46.994703],[84.122028,46.978631],[84.01604,46.970518],[83.83264,46.997855],[83.71394,47.021058],[83.6341,47.043201],[83.443517,47.108649],[83.193093,47.186552],[83.090308,47.209367],[83.029434,47.185957],[83.02008,47.141464],[83.004061,47.033512],[82.974915,46.966022],[82.800042,46.624441],[82.692245,46.386678],[82.555096,46.158682],[82.511687,46.005797],[82.429729,45.811933],[82.348132,45.671528],[82.315214,45.594943],[82.312216,45.563705],[82.326634,45.519935],[82.451639,45.471953],[82.582536,45.442601],[82.61163,45.424256],[82.625789,45.374414],[82.621086,45.293101],[82.597005,45.215948],[82.558971,45.155435],[82.521454,45.125489],[82.478718,45.123577],[82.396656,45.162463],[82.323379,45.205871],[82.266586,45.219101],[82.122771,45.194864],[81.989239,45.161843],[81.9449,45.160861],[81.867489,45.1821],[81.789664,45.226025],[81.758865,45.310826],[81.692048,45.349377],[81.602079,45.310826],[81.334705,45.246205],[81.040356,45.16913],[80.853339,45.129313],[80.780114,45.135566],[80.634799,45.126496],[80.509226,45.104999],[80.414968,45.075104],[80.228209,45.033996],[80.059227,45.006452],[79.95019,44.944079],[79.871849,44.883772],[79.875259,44.860828],[79.932103,44.825171],[79.997164,44.797214],[80.127854,44.803777],[80.255029,44.808118],[80.360811,44.770291],[80.455431,44.74608],[80.481527,44.714635],[80.455431,44.684069],[80.40055,44.676912],[80.381482,44.655414],[80.391042,44.626811],[80.355023,44.551984],[80.336316,44.438399],[80.35492,44.326494],[80.365359,44.223296],[80.358951,44.171309],[80.35523,44.097283],[80.395796,44.047183],[80.431556,43.951762],[80.495997,43.892102],[80.593458,43.685086],[80.650819,43.564163],[80.703839,43.427065],[80.665392,43.352987],[80.667769,43.31007],[80.729781,43.274284],[80.757014,43.20434],[80.785746,43.161552],[80.777788,43.118945],[80.751226,43.102512],[80.617023,43.128272],[80.507004,43.085768],[80.390215,43.043135],[80.374505,43.020398],[80.371301,42.995619],[80.383342,42.97376],[80.450676,42.935545],[80.543694,42.911696],[80.53894,42.873507],[80.424011,42.855782],[80.250275,42.797285],[80.202216,42.734472],[80.165009,42.66551],[80.161857,42.625538],[80.179323,42.518335],[80.205782,42.399428],[80.255081,42.274164],[80.259112,42.235407],[80.233067,42.207812],[80.209347,42.190035],[80.07132,42.303],[79.921045,42.413122],[79.803429,42.438469],[79.598377,42.456634],[79.490115,42.457564],[79.428258,42.483505],[79.367797,42.547222],[79.29545,42.604842],[79.203001,42.666001],[79.164812,42.759018],[79.126674,42.775736],[79.059857,42.763798],[78.947977,42.766692],[78.885139,42.774883],[78.791501,42.790825],[78.64226,42.82873],[78.524231,42.864671],[78.375919,42.871492],[78.290033,42.864335],[78.023124,42.857514],[77.801691,42.895237],[77.622477,42.902239],[77.512199,42.900069],[77.459283,42.904746],[77.368591,42.904462],[77.235524,42.912626],[77.057343,42.970659],[76.988097,42.973605],[76.944069,42.971486],[76.646516,42.928801],[76.50916,42.918879],[76.218118,42.923737],[75.932192,42.928491],[75.840363,42.937483],[75.789565,42.932935],[75.681768,42.830487],[75.635673,42.814596],[75.36618,42.836972],[75.047647,42.904384],[74.817532,42.978152],[74.622247,43.056184],[74.363864,43.179432],[74.209093,43.240358],[74.186821,43.205296],[74.145893,43.194082],[74.086259,43.188604],[73.949161,43.195038],[73.886064,43.132561],[73.718529,43.087887],[73.612024,43.047915],[73.556265,43.002802],[73.450225,42.703027],[73.421906,42.593524],[73.492961,42.40904],[73.411623,42.419762],[73.31597,42.466995],[73.282897,42.504124],[73.190809,42.526862],[72.855119,42.561123],[72.792436,42.603472],[72.752955,42.637915],[72.666087,42.66042],[72.5432,42.677757],[72.275826,42.757675],[72.161828,42.760672],[71.816836,42.822193],[71.760561,42.821495],[71.734774,42.818885],[71.600829,42.778655],[71.514219,42.766925],[71.422028,42.783177],[71.256664,42.733568],[71.167367,42.667422],[71.093573,42.586522],[71.022776,42.53544],[71.002002,42.459062],[70.952393,42.419375],[70.892862,42.34],[70.892862,42.293698],[70.946812,42.248662],[70.860409,42.207243],[70.764549,42.194169],[70.71525,42.168667],[70.66254,42.107456],[70.613241,42.054746],[70.584302,42.036039],[70.540118,42.03945],[70.489114,42.080248],[70.415992,42.078543],[70.328917,42.027978],[70.225874,41.946019],[70.095598,41.820497],[69.959999,41.754041],[69.788123,41.6973],[69.663893,41.672134],[69.565139,41.629036],[69.400963,41.541909],[69.368304,41.490569],[69.249293,41.460234],[69.15364,41.42525],[69.064963,41.366933],[69.043466,41.264122],[68.98688,41.20503],[68.851229,41.123847],[68.737128,41.041888],[68.662817,40.961531],[68.584062,40.876265],[68.559257,40.829291],[68.55657,40.765135],[68.593674,40.711288],[68.60065,40.659973],[68.572642,40.622637],[68.495695,40.608633],[68.41508,40.619433],[68.291884,40.656123],[68.160264,40.721752],[68.112256,40.75405],[68.047712,40.809292],[68.057066,40.860607],[68.090345,40.960265],[68.113031,41.028607],[68.059391,41.061267],[68.019704,41.096252],[67.991385,41.130048],[67.93573,41.196581],[67.865708,41.180252],[67.805092,41.163922],[67.73507,41.187254],[67.528003,41.177151],[67.371578,41.169529],[67.224972,41.162372],[67.03873,41.153302],[66.814299,41.142399],[66.749755,41.157075],[66.709655,41.179141],[66.668675,41.270763],[66.645317,41.348639],[66.601651,41.494315],[66.572557,41.60697],[66.537882,41.741277],[66.514989,41.889381],[66.49866,41.994879],[66.328799,41.998341],[66.1932,42.001106],[66.009594,42.004878],[66.011196,42.088749],[66.013211,42.194479],[66.015537,42.314782],[66.04985,42.472731],[66.062717,42.605152],[66.078479,42.766641],[66.088814,42.873404],[66.100286,42.990839],[66.005615,42.954588],[65.901073,42.914513],[65.802992,42.87697],[65.735657,42.972106],[65.670235,43.064581],[65.570706,43.205167],[65.496189,43.310535],[65.366532,43.372004],[65.270466,43.417531],[65.170937,43.494193],[65.084844,43.573671],[65.003144,43.649067],[64.905475,43.714696],[64.811786,43.693922],[64.706056,43.652969],[64.604098,43.613462],[64.496146,43.57163],[64.443178,43.551192],[64.318121,43.558944],[64.208825,43.565713],[64.013282,43.577857],[63.848124,43.588115],[63.679659,43.598631],[63.444841,43.61323],[63.207026,43.627983],[63.047708,43.608501],[62.846221,43.583903],[62.634451,43.558013],[62.459371,43.536645],[62.237835,43.509567],[62.072005,43.489335],[61.990253,43.492126],[61.887623,43.577237],[61.723241,43.713559],[61.623608,43.79619],[61.525888,43.877193],[61.38507,43.993956],[61.271537,44.082297],[61.160691,44.168622],[61.097026,44.248256],[61.065348,44.348404],[61.007884,44.393776],[60.879209,44.455065],[60.741078,44.520849],[60.602947,44.586633],[60.464764,44.652417],[60.326633,44.718201],[60.188502,44.783985],[60.050319,44.849769],[59.912188,44.915553],[59.774057,44.981312],[59.635926,45.04707],[59.497795,45.112854],[59.359612,45.178638],[59.221481,45.244422],[59.08335,45.310206],[58.945167,45.37599],[58.807036,45.441774],[58.668905,45.507558],[58.555217,45.555359],[58.449435,45.542905],[58.291099,45.509419],[58.125166,45.474382],[57.961041,45.439682],[57.666692,45.377437],[57.477298,45.33744],[57.329245,45.303643],[57.171684,45.267702],[56.96503,45.220599],[56.791862,45.181067],[56.588774,45.134765],[56.409146,45.093785],[56.257941,45.059317],[56.100483,45.023402],[55.975684,44.994928],[55.975839,44.765382],[55.975943,44.535835],[55.976046,44.306288],[55.97615,44.076741],[55.976253,43.847195],[55.976356,43.617648],[55.97646,43.388101],[55.976563,43.15858],[55.976666,42.92906],[55.97677,42.699513],[55.976873,42.469966],[55.976976,42.240419],[55.97708,42.010873],[55.977183,41.781326],[55.977286,41.551779],[55.977441,41.322233],[55.934912,41.324145],[55.839104,41.310812],[55.678597,41.278824],[55.54522,41.262753],[55.487032,41.272261],[55.434374,41.296291],[55.388382,41.346908],[55.319755,41.408403],[55.249579,41.45809],[55.162349,41.560228],[55.101888,41.638699],[54.952336,41.810006],[54.931665,41.864008],[54.903657,41.91907],[54.853841,41.965191],[54.677986,42.078207],[54.472882,42.180165],[54.271912,42.280004],[54.214913,42.304188],[54.120966,42.335194],[54.005159,42.335892],[53.926404,42.329768],[53.685385,42.29685],[53.500797,42.258248],[53.250114,42.205848],[53.055914,42.147738],[53.012558,42.13071],[52.870499,42.060585],[52.696918,41.944365],[52.493881,41.78037],[52.46763,41.885867],[52.458638,42.048364],[52.462152,42.100635],[52.517239,42.237164],[52.573256,42.330853],[52.618318,42.428212],[52.638472,42.555646],[52.596614,42.760181],[52.550002,42.805475],[52.493985,42.820281],[52.434247,42.824441],[52.324383,42.816147],[52.273016,42.799817],[52.18372,42.868753],[52.075612,42.879786],[52.018562,42.860537],[51.960787,42.850563],[51.898259,42.869606],[51.844102,42.910456],[51.811029,42.954433],[51.785191,43.004326],[51.700338,43.104036],[51.616002,43.158451],[51.514096,43.170492],[51.347802,43.167365],[51.295402,43.174109],[51.292404,43.230695],[51.313385,43.355649],[51.313902,43.420864],[51.30181,43.482359],[51.274111,43.532899],[51.238971,43.57672],[51.139649,43.648757],[51.064821,43.750146],[50.939868,43.958557],[50.830727,44.192755],[50.782668,44.228024],[50.685,44.265076],[50.471783,44.294764],[50.331119,44.325486],[50.275619,44.355122],[50.252571,44.406489],[50.252985,44.461498],[50.26456,44.526559],[50.297426,44.581569],[50.409461,44.624047],[50.652443,44.633348],[50.860389,44.628749],[51.048802,44.530461],[51.11071,44.507826],[51.177166,44.501367],[51.310698,44.532424],[51.376637,44.541209],[51.543552,44.531003],[51.493736,44.577538],[51.431104,44.601929],[51.366302,44.599862],[51.310284,44.618776],[51.218197,44.709003],[51.057897,44.81158],[51.02069,44.854007],[51.009321,44.921806],[51.040327,44.980304],[51.153705,45.040249],[51.249926,45.121691],[51.294058,45.229798],[51.333435,45.279614],[51.415704,45.357878],[51.539624,45.342866],[51.732584,45.399477],[52.048741,45.388393],[52.426805,45.404645],[52.531088,45.39865],[52.772004,45.343512],[52.910704,45.319715],[53.078962,45.307519],[53.200402,45.331962],[53.085783,45.407358],[52.83753,45.496706],[52.773864,45.572774],[52.887449,45.779532],[53.041548,45.967892],[53.135289,46.191651],[53.109038,46.414066],[53.063976,46.475303],[53.078549,46.547443],[53.132395,46.60837],[53.170223,46.669038],[53.13746,46.742031],[53.069454,46.856055],[53.034624,46.892926],[52.915975,46.954395],[52.677643,46.957108],[52.483236,46.990672],[52.420294,46.963697],[52.384844,46.922097],[52.340299,46.894761],[52.188784,46.839519],[52.138244,46.828615],[52.085534,46.839622],[52.01112,46.901892],[51.945078,46.894864],[51.744573,46.933725],[51.650109,47.018061],[51.615175,47.02992],[51.290854,47.097332],[51.177993,47.110148],[50.920024,47.040695],[50.732749,46.951656],[50.679832,46.938737],[50.582887,46.882281],[50.52842,46.873289],[50.472299,46.882927],[50.419279,46.879516],[50.306211,46.794948],[50.101573,46.696427],[49.99977,46.63426],[49.886289,46.595657],[49.760508,46.571473],[49.631524,46.567597],[49.584395,46.545221],[49.43722,46.537263],[49.34751,46.51915],[49.344203,46.485535],[49.362083,46.410191],[49.285809,46.436804],[49.20571,46.385696],[49.232272,46.337172],[49.184264,46.348851],[48.958955,46.442127],[48.774315,46.507937],[48.610139,46.56646],[48.586006,46.577106],[48.541151,46.605631],[48.509215,46.649969],[48.502394,46.698649],[48.518517,46.734305],[48.558359,46.757146],[48.605333,46.765931],[48.647088,46.758697],[48.693597,46.736837],[48.776382,46.710327],[48.883611,46.705418],[48.950325,46.725779],[48.959317,46.774587],[48.831883,46.954938],[48.714319,47.100485],[48.600682,47.262309],[48.55252,47.320988],[48.413097,47.456483],[48.275689,47.589964],[48.167014,47.708768],[48.109963,47.745406],[47.934677,47.760703],[47.600175,47.790003],[47.481939,47.803904],[47.387268,47.768661],[47.292338,47.740936],[47.20206,47.792458],[47.130798,47.876768],[47.093281,47.94772],[47.111574,48.020118],[47.119016,48.126985],[47.0646,48.232457],[47.004346,48.284469],[46.85314,48.323588],[46.660904,48.412239],[46.609228,48.573883],[46.702607,48.805548],[46.852985,48.969621],[46.962229,49.038351],[47.014268,49.098347],[47.031373,49.150282],[47.018143,49.199917],[46.953444,49.252601],[46.852985,49.303864],[46.802084,49.367065],[46.823116,49.50225],[46.889572,49.696967],[46.991943,49.85272],[47.129609,49.939045],[47.248362,50.000876],[47.295232,50.058495],[47.297713,50.140247],[47.294716,50.217504],[47.326445,50.273521],[47.376364,50.318118],[47.429178,50.35796],[47.503592,50.402712],[47.599658,50.413564],[47.70575,50.377959],[47.849669,50.282306],[48.060715,50.093583],[48.18138,49.970025],[48.224788,49.93194],[48.334962,49.858249],[48.434284,49.828535],[48.599959,49.874682],[48.759019,49.928322],[48.810282,49.962377],[48.843252,50.013123],[48.81793,50.099836],[48.784806,50.156422],[48.749459,50.228459],[48.700521,50.353774],[48.666001,50.550351],[48.625125,50.612673],[48.655149,50.619856],[48.734731,50.606885],[48.808422,50.601304],[48.913738,50.644558],[49.058691,50.726077],[49.323429,50.851728],[49.379498,50.934669],[49.424611,51.027015],[49.497992,51.083601],[49.666302,51.102307],[49.82221,51.131892],[49.932332,51.19716],[50.10488,51.254598],[50.246887,51.289505],[50.309312,51.321571],[50.353702,51.369733],[50.516328,51.505616],[50.643917,51.589177],[50.756158,51.675141],[50.793934,51.729194],[50.882455,51.719169],[51.017899,51.681652],[51.16342,51.647442],[51.269925,51.594474],[51.290751,51.540188],[51.301086,51.497425],[51.344546,51.47536],[51.395964,51.471277],[51.473479,51.482026],[51.609078,51.48399],[51.775424,51.55427],[52.007141,51.672712],[52.21917,51.70935],[52.330997,51.68129],[52.423085,51.594215],[52.496207,51.512153],[52.571189,51.481638],[52.617802,51.480786],[52.635113,51.479545],[52.728131,51.498149],[52.735033,51.497882],[52.820477,51.494583],[52.902642,51.466936],[53.038344,51.463732],[53.227377,51.484971],[53.247272,51.493601],[53.338119,51.482362],[53.448655,51.444509],[53.534645,51.399576],[53.688124,51.251807],[53.776491,51.213722],[53.956841,51.161167],[54.041487,51.115175],[54.139776,51.040761],[54.191142,50.995725],[54.297906,50.91405],[54.421516,50.780312],[54.443323,50.67391],[54.471435,50.583812],[54.517427,50.541153],[54.555254,50.535779],[54.596182,50.550662],[54.63618,50.591615],[54.649977,50.660164],[54.637937,50.781061],[54.606259,50.879892],[54.56559,50.91126],[54.546056,50.946038],[54.572928,50.990221],[54.641657,51.011564],[54.72713,50.998076],[54.868,50.941361],[55.014813,50.869763],[55.195215,50.744707],[55.361097,50.665306],[55.542274,50.601795],[55.686245,50.582856],[55.797659,50.602028],[55.929227,50.653756],[56.049685,50.713546],[56.104514,50.776281],[56.143995,50.844649],[56.325637,50.936064],[56.491467,51.019522],[56.566915,51.00451],[56.620245,50.980868],[56.790363,51.031614],[56.849636,51.045541],[57.011745,51.065204],[57.179022,51.036058],[57.312502,50.946555],[57.44221,50.888884],[57.557862,50.89555],[57.653773,50.925135],[57.717025,50.980945],[57.764878,51.046884],[57.828905,51.089027],[57.838827,51.091662],[58.045171,51.068873],[58.174723,51.072258],[58.188418,51.08174],[58.359157,51.063834],[58.547465,50.971049],[58.664564,50.868317],[58.814012,50.737213],[58.883672,50.694451],[58.984855,50.676132],[59.064333,50.6682],[59.170838,50.647917],[59.45232,50.620425],[59.495108,50.604302],[59.523943,50.582804],[59.497795,50.511077],[59.523013,50.492861],[59.751216,50.543944],[59.812401,50.582029],[59.887797,50.690188],[59.955183,50.799277],[60.005258,50.839688],[60.058588,50.850281],[60.112124,50.834158],[60.186745,50.76977],[60.288031,50.704141],[60.424767,50.679129],[60.508483,50.669181],[60.637984,50.66373],[60.942306,50.695511],[61.226888,50.774782],[61.389411,50.86103],[61.465013,50.990221],[61.512194,51.137034],[61.585058,51.22969],[61.554724,51.324594],[61.411373,51.414743],[61.363108,51.441873],[61.014808,51.492361],[60.993311,51.52869],[60.973571,51.537061],[60.630336,51.616953],[60.464764,51.651163],[60.418307,51.703924],[60.387508,51.773016],[60.280383,51.834614],[60.067476,51.890631],[60.030321,51.933264],[60.065512,51.976466],[60.233667,52.024499],[60.42549,52.125604],[60.499336,52.146326],[60.670333,52.150822],[60.828411,52.233375],[60.937604,52.280582],[60.994551,52.336857],[60.979462,52.394787],[60.821228,52.569815],[60.774358,52.675803],[60.802315,52.744739],[60.893265,52.819412],[60.944735,52.860159],[61.00654,52.933358],[61.047468,52.972478],[61.206941,52.989066],[61.400728,52.99599],[61.53364,52.978524],[61.719365,52.969403],[61.888554,52.955889],[61.974181,52.943745],[62.037123,52.966121],[62.082702,53.005421],[62.0811,53.057434],[62.014696,53.10787],[61.766184,53.173912],[61.659834,53.228483],[61.576221,53.222436],[61.436798,53.239386],[61.310966,53.275198],[61.19919,53.287135],[61.16281,53.336745],[61.185961,53.406198],[61.228956,53.445885],[61.311638,53.465729],[61.400935,53.455807],[61.4985,53.484643],[61.52656,53.501567],[61.534932,53.523297],[61.51917,53.554483],[61.474109,53.58027],[61.409926,53.587039],[61.336132,53.56518],[61.247972,53.550995],[61.098524,53.583112],[60.979462,53.62174],[60.98556,53.657397],[61.073513,53.710469],[61.1132,53.753463],[61.1132,53.812995],[61.1132,53.882448],[61.143689,53.963838],[61.231023,54.019494],[61.333704,54.049259],[61.598132,53.994947],[61.928654,53.946475],[61.985654,53.954407],[62.002345,53.97991],[62.040276,54.002647],[62.499007,54.013163],[62.588252,54.044453],[62.632694,54.06931],[63.073959,54.105225],[63.126617,54.13928],[63.191316,54.171061],[63.292706,54.170441],[63.413628,54.183205],[63.58199,54.22191],[63.701311,54.243227],[63.721206,54.24501],[63.84709,54.236483],[64.003877,54.267101],[64.037415,54.279736],[64.062943,54.302913],[64.19942,54.347432],[64.461213,54.384174],[64.525085,54.36216],[64.649935,54.352238],[64.809305,54.368568],[64.926714,54.396628],[64.995444,54.368775],[65.088358,54.340172],[65.15776,54.364408],[65.192228,54.441122],[65.237393,54.516053],[65.315941,54.551554],[65.37816,54.564473],[65.434435,54.593309],[65.476913,54.623281],[65.707752,54.618682],[65.914199,54.693303],[65.954714,54.659506],[66.222656,54.667361],[66.5554,54.71542],[66.75451,54.737899],[67.098365,54.788181],[67.257321,54.828798],[67.484698,54.854482],[67.693419,54.872413],[67.829896,54.943572],[67.939915,54.9537],[68.073861,54.959591],[68.15582,54.976696],[68.209408,55.003051],[68.244031,55.052428],[68.225324,55.115241],[68.206204,55.160923],[68.30196,55.186503],[68.438438,55.194409],[68.524789,55.204848],[68.712943,55.308511],[68.842961,55.358353],[68.977216,55.389617],[69.246967,55.372512],[69.493257,55.35688],[69.740271,55.307374],[69.870185,55.245646],[69.981703,55.19906],[70.087381,55.176762]]]]},"type":"Feature","properties":{"ISO_A2":"KZ","NAME":"Kazakhstan"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[40.994428,-2.158421],[40.957325,-2.167258],[40.976445,-2.109793],[41.085999,-2.036516],[41.130647,-2.053053],[41.139226,-2.069796],[41.136849,-2.085092],[41.118142,-2.100078],[40.994428,-2.158421]]],[[[35.287593,5.384064],[35.325317,5.364892],[35.377872,5.38515],[35.423967,5.413287],[35.468667,5.419101],[35.745033,5.344015],[35.791438,5.278567],[35.788441,5.208106],[35.800327,5.156947],[35.779243,5.10558],[35.756143,4.950473],[35.763068,4.808027],[35.845595,4.702659],[35.919854,4.619848],[35.978714,4.503834],[36.021967,4.468126],[36.081963,4.449729],[36.271823,4.444716],[36.552994,4.437249],[36.823623,4.430117],[36.848273,4.427327],[36.905582,4.411462],[37.154559,4.254547],[37.382504,4.110835],[37.575464,3.985933],[37.762894,3.864622],[37.94495,3.746748],[38.086182,3.648822],[38.225295,3.619004],[38.451534,3.604845],[38.608062,3.600091],[38.752756,3.559008],[38.967834,3.520586],[39.128289,3.500898],[39.225492,3.47878],[39.494468,3.456094],[39.538858,3.469194],[39.657507,3.577818],[39.790367,3.754241],[39.842199,3.851445],[40.014126,3.947976],[40.31602,4.082723],[40.52872,4.177652],[40.765243,4.273021],[40.872679,4.190339],[41.020835,4.057453],[41.087239,3.991953],[41.140466,3.962963],[41.220926,3.943558],[41.318956,3.943093],[41.372493,3.946168],[41.481944,3.963273],[41.737742,3.979034],[41.884038,3.977742],[41.760945,3.801629],[41.61346,3.590479],[41.341746,3.201665],[41.134988,2.997078],[40.97877,2.842411],[40.964404,2.814661],[40.965076,2.64232],[40.96673,2.22095],[40.970037,1.378159],[40.973241,0.53542],[40.976548,-0.307319],[40.978202,-0.728741],[40.97877,-0.870282],[41.115816,-1.047429],[41.249813,-1.220545],[41.42696,-1.449472],[41.52189,-1.572255],[41.537599,-1.613183],[41.532742,-1.695348],[41.386963,-1.867018],[41.267487,-1.945049],[41.106876,-1.982359],[41.058714,-1.975228],[40.995565,-1.95063],[40.970761,-1.991816],[40.952157,-2.055947],[40.916604,-2.042459],[40.889732,-2.023494],[40.905855,-2.137492],[40.922391,-2.193716],[40.898207,-2.269939],[40.820175,-2.336343],[40.813147,-2.39236],[40.644165,-2.539431],[40.40449,-2.555658],[40.278503,-2.628625],[40.222486,-2.688363],[40.179801,-2.819001],[40.194787,-3.019195],[40.128125,-3.173294],[40.115412,-3.250602],[39.991699,-3.3507],[39.936818,-3.442477],[39.896304,-3.535856],[39.860957,-3.576784],[39.8191,-3.786074],[39.761429,-3.913042],[39.745822,-3.95521],[39.731663,-3.993244],[39.686911,-4.067917],[39.657972,-4.11918],[39.637095,-4.152873],[39.490954,-4.478434],[39.376956,-4.625505],[39.287556,-4.608556],[39.228128,-4.665503],[39.221772,-4.692375],[39.190146,-4.677285],[39.115422,-4.62349],[38.961891,-4.512954],[38.808412,-4.40247],[38.654881,-4.291934],[38.501351,-4.181398],[38.34782,-4.070862],[38.194289,-3.960326],[38.04081,-3.849791],[37.887279,-3.739255],[37.797207,-3.674452],[37.757468,-3.636108],[37.726152,-3.559782],[37.711011,-3.540817],[37.670135,-3.516788],[37.622024,-3.511517],[37.608175,-3.497047],[37.608692,-3.460254],[37.625332,-3.407234],[37.681866,-3.305741],[37.687963,-3.246158],[37.676853,-3.178462],[37.65918,-3.070045],[37.643883,-3.045447],[37.542133,-2.988603],[37.328967,-2.869592],[37.115802,-2.750581],[36.902637,-2.631622],[36.689471,-2.512611],[36.476306,-2.3936],[36.263141,-2.274641],[36.050027,-2.15563],[35.836862,-2.03662],[35.623697,-1.917609],[35.410583,-1.798598],[35.197418,-1.679587],[34.984253,-1.560576],[34.771087,-1.441565],[34.557922,-1.322555],[34.344757,-1.203595],[34.131591,-1.084585],[34.051545,-1.039885],[33.979404,-1.002057],[33.903233,-1.002057],[33.899978,-0.831629],[33.924369,-0.397857],[33.921527,-0.017001],[33.943127,0.173788],[34.03723,0.294556],[34.080535,0.382458],[34.111748,0.505137],[34.160995,0.605183],[34.272565,0.686418],[34.292615,0.731274],[34.410851,0.867286],[34.481751,1.042159],[34.535236,1.101535],[34.602002,1.156467],[34.649131,1.185303],[34.726697,1.214241],[34.787572,1.230726],[34.798631,1.244524],[34.803798,1.272843],[34.783541,1.38113],[34.809535,1.416684],[34.850927,1.489005],[34.898366,1.556494],[34.941258,1.599257],[34.965236,1.643363],[34.976449,1.719637],[34.978206,1.773639],[34.977535,1.861902],[34.964047,2.062407],[34.913973,2.2302],[34.883018,2.417941],[34.905756,2.479694],[34.866224,2.589687],[34.846638,2.595733],[34.814495,2.619815],[34.773413,2.723426],[34.742459,2.818123],[34.723287,2.841946],[34.589135,2.924757],[34.522575,3.119991],[34.447851,3.163476],[34.407234,3.357521],[34.39943,3.412712],[34.441857,3.60624],[34.437671,3.650579],[34.392867,3.691506],[34.267087,3.733157],[34.165078,3.812998],[34.178204,3.840877],[34.185748,3.869764],[34.132005,3.889169],[33.976097,4.220208],[34.17686,4.41911],[34.380207,4.620674],[34.639829,4.875465],[34.878368,5.109585],[35.084453,5.311872],[35.268318,5.492301],[35.263822,5.457936],[35.264649,5.412047],[35.287593,5.384064]]]]},"type":"Feature","properties":{"ISO_A2":"KE","NAME":"Kenya"}},{"geometry":{"type":"Polygon","coordinates":[[[80.209347,42.190035],[80.229191,42.129832],[80.246193,42.05981],[80.235134,42.043481],[80.21622,42.032422],[79.909676,42.015007],[79.840429,41.995732],[79.766119,41.898864],[79.503861,41.821013],[79.354412,41.781068],[79.293589,41.782825],[79.14843,41.719133],[78.742615,41.560048],[78.543144,41.459589],[78.442892,41.41755],[78.36238,41.371609],[78.348841,41.325204],[78.346257,41.28146],[78.123428,41.075633],[77.95641,41.050699],[77.81523,41.055608],[77.719318,41.024292],[77.581756,40.992769],[77.283996,41.014344],[77.18209,41.010727],[76.98665,41.039149],[76.90774,41.024189],[76.824076,40.982305],[76.708424,40.818129],[76.661192,40.779656],[76.639798,40.742216],[76.622176,40.662376],[76.577889,40.577885],[76.520942,40.511248],[76.480169,40.449521],[76.39635,40.389809],[76.318525,40.352266],[76.258322,40.430737],[76.206078,40.408387],[76.156623,40.376476],[76.062314,40.387535],[76.004281,40.371438],[75.871989,40.303199],[75.677169,40.305809],[75.655982,40.32927],[75.617431,40.516597],[75.583532,40.605325],[75.555575,40.625195],[75.520796,40.627546],[75.24102,40.480294],[75.111312,40.45412],[75.004549,40.449495],[74.865591,40.493498],[74.835102,40.482594],[74.811124,40.458771],[74.801254,40.42854],[74.841768,40.34498],[74.830503,40.328495],[74.767767,40.329864],[74.679866,40.310615],[74.613048,40.272167],[74.411923,40.137189],[74.242683,40.092023],[74.085122,40.074298],[74.020526,40.059364],[73.991587,40.043138],[73.938774,39.978826],[73.884617,39.877928],[73.856247,39.82868],[73.83537,39.800155],[73.839762,39.762845],[73.88255,39.714553],[73.914693,39.606472],[73.907148,39.578515],[73.872783,39.533298],[73.822915,39.488959],[73.715739,39.462269],[73.631661,39.448859],[73.575592,39.457618],[73.470431,39.460589],[73.387387,39.442709],[73.336175,39.412375],[73.234941,39.374548],[73.109264,39.361939],[72.949377,39.357081],[72.872483,39.360388],[72.639939,39.385994],[72.563354,39.377209],[72.490232,39.357391],[72.357734,39.33685],[72.287195,39.273727],[72.249782,39.215694],[72.229989,39.20753],[72.147359,39.260756],[72.08421,39.310624],[72.042817,39.352172],[71.990986,39.350906],[71.805984,39.275587],[71.778596,39.277965],[71.725679,39.306593],[71.735394,39.377726],[71.73219,39.422994],[71.672659,39.44705],[71.546259,39.453096],[71.503315,39.478831],[71.505899,39.517071],[71.517423,39.553865],[71.503005,39.582184],[71.470346,39.603681],[71.404252,39.597868],[71.328494,39.568696],[71.27289,39.535313],[71.202765,39.51981],[71.118068,39.513557],[71.065048,39.493404],[71.004845,39.411858],[70.799327,39.394702],[70.733078,39.413305],[70.678611,39.471286],[70.607866,39.564407],[70.568024,39.575853],[70.501154,39.587351],[70.392065,39.581874],[70.244839,39.542625],[70.209286,39.574975],[70.171097,39.584199],[70.136784,39.557586],[70.101644,39.560583],[69.955968,39.55309],[69.772103,39.556759],[69.666993,39.574897],[69.598781,39.57376],[69.463337,39.532058],[69.391506,39.532471],[69.297714,39.524823],[69.280299,39.665848],[69.229087,39.761088],[69.244745,39.827078],[69.2788,39.91777],[69.307274,39.968543],[69.36541,39.947071],[69.431969,39.909786],[69.476256,39.919708],[69.487883,39.95043],[69.470985,39.990634],[69.468711,40.020736],[69.493671,40.060346],[69.530258,40.097294],[69.76523,40.158014],[69.966768,40.202223],[70.071517,40.172768],[70.274398,40.104839],[70.37894,40.069854],[70.45139,40.049235],[70.515107,39.949913],[70.556862,39.954512],[70.599236,39.974511],[70.624093,39.998954],[70.644298,40.083445],[70.738608,40.131142],[70.946399,40.187573],[70.960971,40.220646],[70.957974,40.238888],[70.990582,40.254908],[71.094503,40.271237],[71.304671,40.286895],[71.376191,40.275191],[71.457478,40.242014],[71.52042,40.208967],[71.580468,40.210259],[71.629871,40.217132],[71.650903,40.207985],[71.666768,40.178633],[71.692503,40.152356],[71.772653,40.188038],[71.845413,40.23434],[71.902723,40.240955],[71.955639,40.258602],[71.971091,40.289479],[72.012587,40.340742],[72.131236,40.438617],[72.192886,40.45443],[72.23278,40.454379],[72.234692,40.438617],[72.253967,40.4242],[72.357682,40.401669],[72.389308,40.427378],[72.405948,40.46306],[72.369774,40.519749],[72.369051,40.543469],[72.38259,40.565147],[72.40202,40.578092],[72.567488,40.524348],[72.604075,40.525434],[72.679626,40.555613],[72.748873,40.608684],[72.773884,40.650387],[73.112881,40.786038],[73.136963,40.810636],[73.132105,40.828516],[72.989995,40.860116],[72.926019,40.842443],[72.866591,40.842314],[72.830986,40.862157],[72.658335,40.869935],[72.620405,40.88381],[72.505942,40.981685],[72.427393,41.018944],[72.364038,41.043438],[72.294947,41.039924],[72.213091,41.014241],[72.187356,41.025946],[72.180638,41.066848],[72.180949,41.118472],[72.164257,41.17374],[72.115371,41.186582],[72.052429,41.164749],[71.958481,41.187047],[71.878641,41.195005],[71.857971,41.311381],[71.825725,41.361042],[71.792445,41.413131],[71.757719,41.428014],[71.700668,41.454007],[71.697205,41.51558],[71.685165,41.532995],[71.664908,41.541211],[71.637519,41.534183],[71.602276,41.503255],[71.619639,41.435456],[71.606203,41.367424],[71.585584,41.33324],[71.545587,41.308073],[71.50006,41.307479],[71.42084,41.34187],[71.408386,41.136042],[71.39309,41.123382],[71.298832,41.152475],[71.223384,41.139918],[71.11073,41.152631],[71.025929,41.186582],[70.962573,41.195987],[70.860461,41.2249],[70.782481,41.262495],[70.734422,41.400522],[70.688843,41.449822],[70.645848,41.460364],[70.471389,41.412666],[70.407827,41.449563],[70.290056,41.496847],[70.200914,41.514469],[70.176988,41.539997],[70.180967,41.571416],[70.454956,41.72505],[70.562908,41.830806],[70.630914,41.875506],[70.727704,41.90522],[70.803358,41.922635],[70.841909,42.019632],[70.856585,42.03082],[70.910328,42.038003],[71.032181,42.077794],[71.228552,42.162905],[71.232324,42.186263],[71.212636,42.206442],[71.129953,42.250005],[71.036005,42.28468],[70.979006,42.266568],[70.946812,42.248662],[70.892862,42.293698],[70.892862,42.34],[70.952393,42.419375],[71.002002,42.459062],[71.022776,42.53544],[71.093573,42.586522],[71.167367,42.667422],[71.256664,42.733568],[71.422028,42.783177],[71.514219,42.766925],[71.600829,42.778655],[71.734774,42.818885],[71.760561,42.821495],[71.816836,42.822193],[72.161828,42.760672],[72.275826,42.757675],[72.5432,42.677757],[72.666087,42.66042],[72.752955,42.637915],[72.792436,42.603472],[72.855119,42.561123],[73.190809,42.526862],[73.282897,42.504124],[73.31597,42.466995],[73.411623,42.419762],[73.492961,42.40904],[73.421906,42.593524],[73.450225,42.703027],[73.556265,43.002802],[73.612024,43.047915],[73.718529,43.087887],[73.886064,43.132561],[73.949161,43.195038],[74.086259,43.188604],[74.145893,43.194082],[74.186821,43.205296],[74.209093,43.240358],[74.363864,43.179432],[74.622247,43.056184],[74.817532,42.978152],[75.047647,42.904384],[75.36618,42.836972],[75.635673,42.814596],[75.681768,42.830487],[75.789565,42.932935],[75.840363,42.937483],[75.932192,42.928491],[76.218118,42.923737],[76.50916,42.918879],[76.646516,42.928801],[76.944069,42.971486],[76.988097,42.973605],[77.057343,42.970659],[77.235524,42.912626],[77.368591,42.904462],[77.459283,42.904746],[77.512199,42.900069],[77.622477,42.902239],[77.801691,42.895237],[78.023124,42.857514],[78.290033,42.864335],[78.375919,42.871492],[78.524231,42.864671],[78.64226,42.82873],[78.791501,42.790825],[78.885139,42.774883],[78.947977,42.766692],[79.059857,42.763798],[79.126674,42.775736],[79.164812,42.759018],[79.203001,42.666001],[79.29545,42.604842],[79.367797,42.547222],[79.428258,42.483505],[79.490115,42.457564],[79.598377,42.456634],[79.803429,42.438469],[79.921045,42.413122],[80.07132,42.303],[80.209347,42.190035]],[[71.206176,39.892552],[71.215633,39.906789],[71.179304,39.979834],[71.228655,40.04815],[71.130263,40.059674],[71.080344,40.079879],[71.02412,40.149152],[71.005413,40.152278],[70.976268,40.133261],[70.960661,40.087967],[70.974356,40.038874],[71.014508,40.005775],[71.041018,39.994898],[71.044842,39.992546],[71.043654,39.97632],[71.011769,39.895136],[71.064221,39.88493],[71.156257,39.883457],[71.206176,39.892552]],[[71.779629,39.950223],[71.789913,39.995337],[71.765315,39.99327],[71.736583,39.980971],[71.681237,39.968672],[71.668938,39.946115],[71.705835,39.917409],[71.752964,39.907151],[71.779629,39.950223]],[[70.701659,39.82527],[70.698248,39.845863],[70.664142,39.855449],[70.567094,39.866585],[70.497744,39.882424],[70.482758,39.882734],[70.489269,39.863045],[70.518621,39.828164],[70.559549,39.790905],[70.612052,39.786745],[70.701659,39.82527]]]},"type":"Feature","properties":{"ISO_A2":"KG","NAME":"Kyrgyzstan"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[103.317756,10.718519],[103.281272,10.67971],[103.222981,10.759576],[103.223498,10.781978],[103.317756,10.718519]]],[[[103.045111,11.285048],[103.027334,11.275488],[103.010488,11.275798],[102.993331,11.290422],[102.994985,11.348093],[103.007491,11.383285],[103.036843,11.389951],[103.045111,11.285048]]],[[[107.535225,14.649959],[107.493212,14.545753],[107.44846,14.451237],[107.364434,14.368684],[107.360403,14.307861],[107.331413,14.126632],[107.342627,14.068883],[107.36216,14.01948],[107.389445,13.992996],[107.462309,13.815643],[107.52861,13.654206],[107.593981,13.521656],[107.605453,13.437811],[107.545508,13.225446],[107.475435,13.030368],[107.481533,12.933113],[107.511505,12.835728],[107.543545,12.705891],[107.55543,12.539984],[107.538119,12.431774],[107.506441,12.364543],[107.445979,12.295684],[107.393373,12.260492],[107.330018,12.319042],[107.279633,12.321574],[107.212092,12.303978],[107.158969,12.277029],[107.050655,12.175898],[106.930662,12.077506],[106.764677,12.05234],[106.700133,11.979321],[106.630939,11.969192],[106.499629,11.965523],[106.413898,11.948418],[106.417773,11.911702],[106.410797,11.738405],[106.412502,11.697788],[106.39917,11.687039],[106.339897,11.68182],[106.23918,11.70833],[106.102961,11.751273],[106.006067,11.757991],[105.956251,11.682491],[105.926589,11.652932],[105.889899,11.648385],[105.851451,11.635001],[105.838532,11.601334],[105.83538,11.55914],[105.853984,11.487077],[105.860908,11.372433],[105.856051,11.294298],[105.891656,11.244844],[106.099498,11.078678],[106.16089,11.037104],[106.167918,11.012326],[106.131538,10.921969],[106.163991,10.794949],[106.098878,10.797274],[105.990151,10.851793],[105.938165,10.885176],[105.875223,10.858511],[105.853312,10.863575],[105.81073,10.926052],[105.755127,10.989975],[105.697766,10.994058],[105.576533,10.968917],[105.452716,10.951425],[105.405794,10.951632],[105.386467,10.940082],[105.314688,10.845178],[105.284251,10.861456],[105.159504,10.897578],[105.045713,10.911376],[105.022303,10.886855],[105.036101,10.809392],[105.061112,10.73379],[105.046384,10.701673],[104.983856,10.661933],[104.901277,10.590258],[104.850531,10.534474],[104.815442,10.520779],[104.689662,10.52326],[104.564295,10.515948],[104.514065,10.463341],[104.466988,10.422362],[104.42637,10.411251],[104.262401,10.541269],[103.93715,10.586615],[103.901803,10.64395],[103.870487,10.655112],[103.840515,10.580543],[103.661921,10.508945],[103.587094,10.552199],[103.532213,10.604624],[103.540481,10.668703],[103.592054,10.721051],[103.680835,10.758568],[103.721866,10.890137],[103.654273,11.058705],[103.595052,11.107746],[103.53242,11.146658],[103.466687,11.083975],[103.41129,10.976746],[103.353619,10.921556],[103.272177,10.909257],[103.152805,10.913701],[103.106503,11.073795],[103.091103,11.211099],[103.107433,11.367782],[103.12552,11.46067],[103.010591,11.588647],[103.004183,11.710603],[102.948683,11.773494],[102.932353,11.741687],[102.933903,11.706676],[102.91809,11.732101],[102.736603,12.089805],[102.706217,12.255686],[102.73743,12.383379],[102.75562,12.426244],[102.703272,12.493501],[102.629736,12.569905],[102.499563,12.66995],[102.490726,12.828313],[102.461684,13.01502],[102.422617,13.077962],[102.362982,13.192993],[102.330788,13.288233],[102.319729,13.540001],[102.336317,13.56031],[102.428456,13.567596],[102.546899,13.585683],[102.565554,13.626352],[102.544677,13.659942],[102.620434,13.716941],[102.728851,13.841894],[102.812826,13.972455],[102.873287,14.054879],[102.909254,14.136734],[103.031055,14.252515],[103.199365,14.332614],[103.313519,14.351321],[103.432426,14.378606],[103.546373,14.417415],[103.600374,14.421084],[103.741916,14.374162],[103.818346,14.362173],[103.898599,14.362819],[103.981798,14.357909],[104.054352,14.362741],[104.227675,14.395504],[104.411643,14.369562],[104.575767,14.390026],[104.77901,14.427854],[104.878798,14.403979],[104.969696,14.3661],[104.982461,14.289438],[105.003441,14.254427],[105.033672,14.227401],[105.074135,14.227452],[105.125966,14.280963],[105.169116,14.336102],[105.183327,14.346256],[105.185549,14.319075],[105.206995,14.259388],[105.245649,14.200529],[105.284871,14.161461],[105.350242,14.109553],[105.392668,14.107098],[105.531574,14.156139],[105.739727,14.08498],[105.764067,14.049065],[105.831504,13.976615],[105.904471,13.924525],[106.066839,13.921166],[106.124716,14.049117],[106.096708,14.127097],[106.004155,14.262902],[105.978886,14.343027],[106.008341,14.357186],[106.165231,14.372353],[106.190759,14.388114],[106.225382,14.476223],[106.267912,14.466197],[106.354987,14.454777],[106.446971,14.515032],[106.501438,14.578206],[106.531152,14.549396],[106.563708,14.505058],[106.599209,14.479401],[106.665459,14.441289],[106.738219,14.387727],[106.783488,14.33512],[106.819919,14.314682],[106.913195,14.329384],[106.938052,14.327317],[106.992157,14.391008],[107.030191,14.425683],[107.062385,14.415787],[107.109359,14.416691],[107.206614,14.497901],[107.262321,14.572108],[107.292707,14.592391],[107.379834,14.555313],[107.414715,14.562884],[107.465151,14.664997],[107.519412,14.705098],[107.535225,14.649959]]]]},"type":"Feature","properties":{"ISO_A2":"KH","NAME":"Cambodia"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-151.782642,-11.441007],[-151.790859,-11.45682],[-151.806672,-11.451239],[-151.815947,-11.431188],[-151.819126,-11.409277],[-151.81326,-11.391811],[-151.80277,-11.392638],[-151.791117,-11.414342],[-151.782642,-11.441007]]],[[[-155.863814,-5.626685],[-155.88712,-5.631801],[-155.914379,-5.631594],[-155.927919,-5.61852],[-155.92859,-5.607668],[-155.919366,-5.607564],[-155.910814,-5.609476],[-155.872289,-5.611285],[-155.862367,-5.61914],[-155.863814,-5.626685]]],[[[-174.512934,-4.675063],[-174.5011,-4.688396],[-174.501049,-4.694752],[-174.506759,-4.693615],[-174.52389,-4.689688],[-174.529238,-4.681626],[-174.516758,-4.686845],[-174.511487,-4.685657],[-174.523063,-4.673978],[-174.533088,-4.665296],[-174.540684,-4.661679],[-174.540839,-4.657338],[-174.531383,-4.659457],[-174.512934,-4.675063]]],[[[-172.214573,-4.511094],[-172.20832,-4.518018],[-172.193903,-4.516055],[-172.180958,-4.514815],[-172.188838,-4.521636],[-172.215245,-4.524426],[-172.228345,-4.507063],[-172.212196,-4.493937],[-172.197856,-4.491715],[-172.196383,-4.495384],[-172.19721,-4.499518],[-172.203876,-4.499518],[-172.214754,-4.502619],[-172.214573,-4.511094]]],[[[-171.233212,-4.4635],[-171.243005,-4.468099],[-171.254554,-4.466497],[-171.261789,-4.459779],[-171.261944,-4.449185],[-171.25241,-4.441641],[-171.239387,-4.444121],[-171.231894,-4.453733],[-171.233212,-4.4635]]],[[[-154.956247,-4.087967],[-154.959011,-4.093858],[-154.971078,-4.085797],[-154.994642,-4.071121],[-155.014589,-4.054894],[-155.015029,-4.048073],[-154.986943,-4.038565],[-154.951234,-4.031071],[-154.943379,-4.041562],[-154.950046,-4.055928],[-154.956247,-4.087967]]],[[[-171.085133,-3.135467],[-171.089784,-3.143219],[-171.096709,-3.136914],[-171.091748,-3.125132],[-171.087717,-3.115055],[-171.080999,-3.120378],[-171.085133,-3.135467]]],[[[-171.697602,-2.766394],[-171.664994,-2.785514],[-171.639673,-2.811249],[-171.627632,-2.847009],[-171.628433,-2.855898],[-171.647373,-2.855536],[-171.670627,-2.844477],[-171.687318,-2.829749],[-171.696078,-2.825667],[-171.6983,-2.822308],[-171.678378,-2.82453],[-171.655382,-2.839826],[-171.63851,-2.846699],[-171.639724,-2.829233],[-171.660214,-2.798537],[-171.672642,-2.787995],[-171.688042,-2.779107],[-171.705974,-2.773112],[-171.718169,-2.77859],[-171.724784,-2.781329],[-171.727652,-2.774146],[-171.725146,-2.767841],[-171.718893,-2.761382],[-171.697602,-2.766394]]],[[[174.773239,-1.211864],[174.778924,-1.263385],[174.755979,-1.256409],[174.748435,-1.236462],[174.740993,-1.184579],[174.716809,-1.133677],[174.744094,-1.14732],[174.766625,-1.187059],[174.773239,-1.211864]]],[[[169.551078,-0.873745],[169.541724,-0.876019],[169.522914,-0.865632],[169.525601,-0.852609],[169.538675,-0.846925],[169.555263,-0.856537],[169.551078,-0.873745]]],[[[174.508656,-0.80176],[174.47641,-0.829045],[174.464008,-0.80424],[174.479717,-0.773648],[174.452742,-0.64704],[174.407784,-0.62978],[174.381015,-0.591798],[174.394038,-0.591798],[174.43879,-0.626576],[174.474756,-0.642183],[174.495427,-0.725692],[174.508656,-0.80176]]],[[[173.032777,1.013117],[173.086521,0.973429],[173.079493,0.946247],[173.061406,0.915242],[172.991126,0.835453],[172.969939,0.842791],[173.038565,0.914725],[173.065023,0.962681],[173.025646,0.999061],[173.009936,0.990948],[173.003735,0.990948],[172.990092,1.025106],[173.003735,1.025106],[173.032777,1.013117]]],[[[173.038358,1.342089],[173.01128,1.338368],[173.028643,1.358729],[173.143365,1.381363],[173.153287,1.387564],[173.17189,1.375162],[173.171477,1.36338],[173.163105,1.35754],[173.106364,1.357075],[173.061716,1.346326],[173.038358,1.342089]]],[[[173.029366,1.717363],[172.993296,1.713074],[173.020375,1.727492],[173.027816,1.747336],[173.023682,1.809347],[173.037738,1.804386],[173.042699,1.778755],[173.045179,1.741548],[173.029366,1.717363]]],[[[173.018721,1.845727],[173.023682,1.822576],[172.966631,1.885415],[172.932732,1.925929],[172.934799,1.943706],[172.950095,1.932544],[172.969112,1.9127],[172.981514,1.89699],[173.018721,1.845727]]],[[[-157.342148,1.855546],[-157.175775,1.739842],[-157.246159,1.731729],[-157.420101,1.78754],[-157.578955,1.902055],[-157.53149,1.926859],[-157.508184,1.885673],[-157.435863,1.847278],[-157.39323,1.927686],[-157.365169,1.946083],[-157.492164,2.029282],[-157.441883,2.025045],[-157.321865,1.968562],[-157.342148,1.855546]]],[[[172.844262,3.051235],[172.770364,3.01253],[172.75052,3.033045],[172.777289,3.033872],[172.826898,3.071079],[172.88705,3.073973],[172.880228,3.053509],[172.844262,3.051235]]],[[[172.969629,3.129215],[172.906273,3.095884],[172.88705,3.101258],[172.962497,3.1488],[172.962187,3.142909],[172.969629,3.129215]]],[[[-159.33908,3.923533],[-159.259343,3.839197],[-159.274743,3.796564],[-159.332285,3.800466],[-159.358717,3.815323],[-159.313681,3.822661],[-159.30624,3.838371],[-159.326807,3.863175],[-159.354195,3.880539],[-159.373212,3.880539],[-159.37776,3.846639],[-159.40905,3.873252],[-159.390963,3.899556],[-159.369026,3.916996],[-159.33908,3.923533]]]]},"type":"Feature","properties":{"ISO_A2":"KI","NAME":"Kiribati"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-62.532224,17.121849],[-62.582428,17.10061],[-62.624932,17.129575],[-62.615268,17.199106],[-62.574702,17.201043],[-62.534162,17.170141],[-62.532224,17.121849]]],[[[-62.630694,17.239982],[-62.65648,17.224427],[-62.702007,17.286025],[-62.775543,17.30282],[-62.838898,17.339252],[-62.840474,17.347055],[-62.839415,17.365323],[-62.827038,17.386407],[-62.794611,17.402607],[-62.713738,17.353256],[-62.675807,17.290935],[-62.640512,17.26228],[-62.630694,17.239982]]]]},"type":"Feature","properties":{"ISO_A2":"KN","NAME":"St. Kitts and Nevis"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.326894,33.223657],[126.282039,33.201514],[126.240181,33.214846],[126.229019,33.225259],[126.178686,33.282568],[126.165664,33.312024],[126.199357,33.368093],[126.337643,33.460387],[126.69545,33.549322],[126.759839,33.553249],[126.901123,33.515112],[126.931198,33.44385],[126.90536,33.382381],[126.872804,33.341169],[126.709196,33.27169],[126.581762,33.238333],[126.326894,33.223657]]],[[[126.753018,34.344002],[126.769865,34.296434],[126.689043,34.305426],[126.646151,34.351134],[126.651836,34.390356],[126.699998,34.395885],[126.753018,34.344002]]],[[[126.23367,34.370512],[126.169694,34.355164],[126.133831,34.389581],[126.108613,34.398728],[126.122876,34.443944],[126.227055,34.532725],[126.247519,34.563343],[126.343844,34.54492],[126.379914,34.497946],[126.335472,34.426426],[126.23367,34.370512]]],[[[127.799052,34.615019],[127.787787,34.584065],[127.737351,34.63091],[127.787167,34.682121],[127.799052,34.615019]]],[[[126.171968,34.731162],[126.158739,34.707003],[126.115227,34.714212],[126.070579,34.783045],[126.052079,34.837564],[126.007534,34.867484],[126.078434,34.914846],[126.168558,34.829683],[126.171968,34.731162]]],[[[128.065806,34.80586],[128.054644,34.708063],[127.983951,34.703205],[127.941783,34.766276],[127.896824,34.735503],[127.873466,34.734986],[127.838223,34.813328],[127.832229,34.874487],[127.915428,34.921021],[127.965657,34.893013],[128.038004,34.878595],[128.065806,34.80586]]],[[[128.74101,34.798548],[128.646649,34.736846],[128.519525,34.81958],[128.489243,34.865288],[128.585981,34.932261],[128.66794,35.008768],[128.72189,35.013574],[128.74101,34.798548]]],[[[126.417535,36.492605],[126.403789,36.42788],[126.33754,36.470539],[126.318523,36.612546],[126.386632,36.571153],[126.417535,36.492605]]],[[[130.916071,37.478488],[130.870596,37.448722],[130.816853,37.478488],[130.810238,37.509907],[130.83835,37.537192],[130.903669,37.553729],[130.934262,37.529751],[130.916071,37.478488]]],[[[126.520681,37.736793],[126.51603,37.604682],[126.460839,37.610366],[126.423322,37.623647],[126.407199,37.649433],[126.369372,37.77201],[126.411644,37.822679],[126.493602,37.782552],[126.520681,37.736793]]],[[[128.374624,38.623457],[128.618847,38.176094],[128.852425,37.887068],[129.051586,37.677649],[129.335186,37.274547],[129.418282,37.05903],[129.426137,36.925524],[129.473472,36.741892],[129.433061,36.636627],[129.44505,36.470694],[129.42717,36.385505],[129.392547,36.322693],[129.391307,36.202132],[129.402469,36.137665],[129.403502,36.052167],[129.425723,36.018784],[129.458279,36.006459],[129.509749,36.037594],[129.572898,36.050539],[129.561735,35.947651],[129.485461,35.687383],[129.419109,35.497834],[129.328985,35.332779],[129.21416,35.181858],[129.076804,35.122714],[128.980066,35.101527],[128.795684,35.093905],[128.642618,35.119562],[128.510947,35.100959],[128.458134,35.06941],[128.418859,35.015667],[128.447695,34.93208],[128.443974,34.870378],[128.387647,34.875081],[128.275922,34.910996],[128.152312,34.915879],[128.094538,34.933604],[128.036247,35.021997],[127.976716,35.01869],[127.87326,34.96629],[127.71482,34.954688],[127.659113,34.926344],[127.639372,34.889705],[127.662523,34.843403],[127.742208,34.78258],[127.71544,34.721033],[127.632448,34.69026],[127.565372,34.76594],[127.523617,34.840096],[127.477005,34.844282],[127.404244,34.823094],[127.389672,34.743022],[127.423468,34.688477],[127.479072,34.625225],[127.401144,34.552517],[127.380577,34.500633],[127.324559,34.463297],[127.173457,34.54616],[127.194955,34.60502],[127.260584,34.661657],[127.268645,34.720362],[127.247045,34.75514],[127.030727,34.60688],[126.897402,34.438854],[126.826295,34.451076],[126.79653,34.494303],[126.754775,34.511847],[126.610804,34.403533],[126.584346,34.317544],[126.531429,34.314237],[126.508278,34.350617],[126.506418,34.42839],[126.481717,34.493941],[126.332579,34.589646],[126.264469,34.673233],[126.301056,34.719974],[126.425596,34.694575],[126.524505,34.697882],[126.504971,34.73757],[126.472828,34.756354],[126.538561,34.778678],[126.593338,34.824386],[126.547966,34.836789],[126.478513,34.81033],[126.420739,34.823404],[126.397794,34.932803],[126.327411,35.045096],[126.291134,35.154134],[126.360587,35.216869],[126.395934,35.314408],[126.460426,35.455614],[126.492776,35.501296],[126.582279,35.534472],[126.614112,35.571007],[126.564916,35.58974],[126.486574,35.606328],[126.488435,35.647075],[126.541868,35.669348],[126.601606,35.714203],[126.717361,35.768825],[126.753018,35.871971],[126.719635,35.897887],[126.647495,35.922407],[126.663721,35.974497],[126.693487,36.014184],[126.682325,36.037956],[126.597059,36.105032],[126.540421,36.166165],[126.557268,36.235851],[126.544245,36.341193],[126.551893,36.429663],[126.548276,36.477619],[126.506625,36.585622],[126.487711,36.693807],[126.433038,36.678046],[126.388803,36.651148],[126.230673,36.68926],[126.180857,36.691611],[126.160599,36.771916],[126.217133,36.870928],[126.351595,36.958184],[126.428697,36.969036],[126.486988,37.007457],[126.577732,37.019601],[126.686665,36.960328],[126.784437,36.948443],[126.838801,36.846072],[126.872081,36.824471],[126.879109,36.862066],[126.957967,36.906146],[126.97688,36.939399],[126.959724,36.957615],[126.86898,36.975754],[126.787435,37.102723],[126.776066,37.158197],[126.746403,37.193544],[126.790535,37.294907],[126.696174,37.410688],[126.650285,37.44712],[126.656797,37.551145],[126.607601,37.61742],[126.580212,37.653774],[126.563366,37.71651],[126.577732,37.744725],[126.620726,37.755474],[126.633852,37.781854],[126.664548,37.800742],[126.666512,37.827924],[126.666822,37.917169],[126.75431,37.978974],[126.87885,38.106072],[126.940087,38.175603],[127.009643,38.240509],[127.09031,38.283865],[127.169582,38.304536],[127.29407,38.313269],[127.532712,38.305001],[127.579479,38.312494],[127.745516,38.319263],[127.784635,38.307688],[127.905299,38.300427],[128.038934,38.308541],[128.106269,38.327325],[128.168642,38.359313],[128.223109,38.416984],[128.279333,38.523773],[128.339484,38.607876],[128.374624,38.623457]]]]},"type":"Feature","properties":{"ISO_A2":"KR","NAME":"S. Korea"}},{"geometry":{"type":"Polygon","coordinates":[[[21.562488,42.247525],[21.560834,42.24768],[21.389527,42.219801],[21.331701,42.187167],[21.297543,42.13009],[21.286639,42.100402],[21.256305,42.099498],[21.206075,42.128953],[21.142513,42.174997],[21.059728,42.171276],[20.778091,42.071024],[20.750393,42.018366],[20.744192,41.904316],[20.724968,41.873517],[20.694892,41.853802],[20.578517,41.86623],[20.566166,41.873698],[20.581411,41.917442],[20.575416,42.013095],[20.52281,42.171483],[20.485448,42.223366],[20.408295,42.274965],[20.348247,42.308813],[20.240501,42.338966],[20.185776,42.425886],[20.103559,42.524666],[20.063975,42.547274],[20.070331,42.557093],[20.089244,42.631558],[20.06568,42.685819],[20.029506,42.732017],[20.054259,42.760078],[20.130017,42.759768],[20.192597,42.754652],[20.215128,42.798835],[20.344371,42.827955],[20.468859,42.857901],[20.486843,42.879063],[20.458421,42.924564],[20.475061,42.953037],[20.623992,43.034169],[20.648538,43.070963],[20.657582,43.09985],[20.637635,43.130391],[20.609626,43.178398],[20.623165,43.19863],[20.700577,43.226354],[20.763415,43.2586],[20.800622,43.261081],[20.823773,43.23793],[20.823773,43.213952],[20.844444,43.173437],[20.890746,43.151656],[20.967692,43.116025],[21.057041,43.091685],[21.127011,43.043006],[21.222612,42.956216],[21.237081,42.913221],[21.323174,42.874696],[21.403066,42.83152],[21.390664,42.751422],[21.662482,42.681504],[21.723873,42.681969],[21.752915,42.669799],[21.752192,42.651505],[21.730643,42.595462],[21.619074,42.423251],[21.609875,42.387439],[21.529983,42.350025],[21.518925,42.328424],[21.541559,42.28083],[21.562488,42.247525]]]},"type":"Feature","properties":{"ISO_A2":"-99","NAME":"Kosovo"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[48.275431,29.624342],[48.218277,29.60194],[48.179726,29.611423],[48.142519,29.66527],[48.081438,29.798905],[48.114717,29.848799],[48.113477,29.870218],[48.120092,29.886316],[48.138902,29.896573],[48.158539,29.959567],[48.18479,29.978842],[48.227682,29.936313],[48.348191,29.782653],[48.347365,29.719969],[48.340233,29.694699],[48.275431,29.624342]]],[[[48.136111,29.618115],[48.143449,29.572459],[48.089499,29.579099],[48.048365,29.597522],[47.96961,29.61672],[47.817474,29.487399],[47.725284,29.416964],[47.7227,29.393038],[47.845276,29.365727],[47.935297,29.366606],[47.998135,29.385545],[48.051465,29.355366],[48.086295,29.275474],[48.100351,29.21075],[48.183757,28.979394],[48.2529,28.901285],[48.3392,28.763258],[48.371239,28.691841],[48.389636,28.631586],[48.442449,28.542909],[48.268713,28.540506],[48.049605,28.537509],[47.871941,28.535468],[47.671333,28.533168],[47.58307,28.627969],[47.553201,28.731554],[47.521265,28.837827],[47.433208,28.989549],[47.138756,29.026187],[46.98228,29.045669],[46.724828,29.074608],[46.531455,29.09626],[46.69377,29.259661],[46.769373,29.34746],[46.905799,29.537526],[46.975975,29.672866],[47.043672,29.822986],[47.102066,29.939982],[47.114365,29.961324],[47.148265,30.00096],[47.223299,30.0415],[47.331354,30.079689],[47.514857,30.09651],[47.643738,30.09731],[47.67278,30.095605],[47.753861,30.076614],[47.978705,29.982821],[47.973641,29.945924],[48.00568,29.835802],[48.077304,29.715577],[48.136111,29.618115]]]]},"type":"Feature","properties":{"ISO_A2":"KW","NAME":"Kuwait"}},{"geometry":{"type":"Polygon","coordinates":[[[102.127441,22.379203],[102.183045,22.284041],[102.301384,22.178156],[102.442667,22.027131],[102.487471,21.957756],[102.582504,21.904322],[102.609686,21.851741],[102.631286,21.771333],[102.640795,21.71144],[102.661982,21.676042],[102.695365,21.662089],[102.738567,21.677954],[102.771071,21.709657],[102.798201,21.797946],[102.815926,21.807377],[102.845227,21.734772],[102.876233,21.722292],[102.917677,21.712939],[102.949613,21.681364],[102.959225,21.626225],[102.94858,21.569795],[102.909616,21.506336],[102.887498,21.439958],[102.872305,21.337509],[102.851221,21.265937],[102.883777,21.202608],[103.104436,20.891645],[103.210786,20.84064],[103.463587,20.779843],[103.554641,20.737856],[103.635049,20.697083],[103.714424,20.716927],[103.790492,20.809531],[103.882011,20.861414],[104.052026,20.941203],[104.101326,20.945492],[104.195325,20.913943],[104.349631,20.821081],[104.461407,20.733748],[104.530395,20.687962],[104.583208,20.646699],[104.57525,20.600242],[104.532721,20.55487],[104.478615,20.5296],[104.40787,20.485727],[104.367821,20.441388],[104.392212,20.424774],[104.496185,20.413664],[104.618865,20.374493],[104.656486,20.328501],[104.661963,20.288994],[104.676898,20.224709],[104.698757,20.20533],[104.812652,20.216828],[104.847792,20.202462],[104.888616,20.169105],[104.929182,20.082805],[104.92789,20.018132],[104.845776,19.947181],[104.815132,19.904031],[104.8018,19.836154],[104.743199,19.754738],[104.587859,19.618751],[104.546311,19.61056],[104.259869,19.685517],[104.127112,19.68084],[104.062827,19.678437],[104.031976,19.67513],[104.013424,19.646476],[104.05151,19.564155],[104.06293,19.482584],[104.027532,19.420469],[103.932034,19.366079],[103.896377,19.339983],[103.891623,19.304972],[103.918391,19.268514],[104.006344,19.23092],[104.108612,19.195573],[104.445801,18.983829],[104.517941,18.934064],[104.613284,18.860632],[104.716534,18.8034],[104.993106,18.728315],[105.115166,18.67886],[105.146482,18.650981],[105.145396,18.616797],[105.113512,18.573027],[105.087002,18.496236],[105.085813,18.450114],[105.114546,18.405285],[105.163225,18.338726],[105.273192,18.235373],[105.333499,18.189639],[105.400006,18.179252],[105.458245,18.154293],[105.518552,18.07745],[105.588522,17.983709],[105.597617,17.918286],[105.627279,17.834416],[105.691461,17.737858],[105.779518,17.644453],[105.902766,17.528646],[105.973563,17.446997],[106.006274,17.415268],[106.269514,17.216779],[106.333386,17.143683],[106.42599,17.002528],[106.465367,16.981858],[106.502264,16.954082],[106.525932,16.876619],[106.533684,16.821041],[106.546189,16.650741],[106.593628,16.600072],[106.637502,16.537957],[106.656467,16.492611],[106.696103,16.458996],[106.739563,16.452536],[106.791549,16.490312],[106.832373,16.526278],[106.85108,16.515607],[106.892732,16.396519],[106.930662,16.353111],[107.001976,16.311821],[107.069775,16.279833],[107.217363,16.136354],[107.296428,16.084031],[107.350068,16.067392],[107.39637,16.043],[107.410116,15.997835],[107.392029,15.951636],[107.36061,15.921716],[107.188838,15.83862],[107.165893,15.802498],[107.189561,15.747256],[107.232607,15.678061],[107.279426,15.618711],[107.338803,15.560498],[107.459519,15.465826],[107.564318,15.391619],[107.621679,15.309867],[107.65315,15.255219],[107.633668,15.189848],[107.589692,15.118432],[107.555327,15.05704],[107.496312,15.021435],[107.480344,14.979861],[107.504632,14.915937],[107.524476,14.871832],[107.513779,14.81739],[107.519412,14.705098],[107.465151,14.664997],[107.414715,14.562884],[107.379834,14.555313],[107.292707,14.592391],[107.262321,14.572108],[107.206614,14.497901],[107.109359,14.416691],[107.062385,14.415787],[107.030191,14.425683],[106.992157,14.391008],[106.938052,14.327317],[106.913195,14.329384],[106.819919,14.314682],[106.783488,14.33512],[106.738219,14.387727],[106.665459,14.441289],[106.599209,14.479401],[106.563708,14.505058],[106.531152,14.549396],[106.501438,14.578206],[106.446971,14.515032],[106.354987,14.454777],[106.267912,14.466197],[106.225382,14.476223],[106.190759,14.388114],[106.165231,14.372353],[106.008341,14.357186],[105.978886,14.343027],[106.004155,14.262902],[106.096708,14.127097],[106.124716,14.049117],[106.066839,13.921166],[105.904471,13.924525],[105.831504,13.976615],[105.764067,14.049065],[105.739727,14.08498],[105.531574,14.156139],[105.392668,14.107098],[105.350242,14.109553],[105.284871,14.161461],[105.245649,14.200529],[105.206995,14.259388],[105.185549,14.319075],[105.183327,14.346256],[105.243633,14.367857],[105.342129,14.416691],[105.422692,14.471623],[105.475557,14.530121],[105.497365,14.590686],[105.500207,14.661224],[105.523099,14.843306],[105.546664,14.932474],[105.533435,15.041614],[105.49044,15.127604],[105.49044,15.256588],[105.505839,15.319608],[105.513178,15.360871],[105.573742,15.41322],[105.615652,15.488254],[105.638906,15.585948],[105.641025,15.656538],[105.622111,15.699972],[105.562373,15.741262],[105.462018,15.780407],[105.398921,15.829861],[105.373186,15.889676],[105.375615,15.94218],[105.406311,15.987448],[105.330656,16.03791],[105.148755,16.09354],[105.047159,16.160254],[105.025765,16.238001],[104.949904,16.339933],[104.81937,16.466075],[104.75064,16.647537],[104.743509,16.88437],[104.759012,17.077149],[104.816062,17.300288],[104.739685,17.461673],[104.655917,17.546733],[104.539232,17.609287],[104.428179,17.698972],[104.322656,17.815812],[104.196204,17.98836],[104.048719,18.216718],[103.949552,18.319011],[103.898857,18.295292],[103.792249,18.316479],[103.629675,18.382548],[103.487978,18.418153],[103.366952,18.42332],[103.288249,18.408412],[103.251713,18.373478],[103.248923,18.338984],[103.279619,18.304981],[103.263186,18.278471],[103.199675,18.259454],[103.148516,18.22173],[103.091206,18.138247],[103.092343,18.141399],[103.09038,18.137059],[103.091206,18.138247],[103.051312,18.028512],[102.991368,17.986241],[102.89866,17.976888],[102.807451,17.945572],[102.717638,17.892242],[102.675211,17.851753],[102.680069,17.824106],[102.660638,17.817957],[102.616817,17.83333],[102.596043,17.869607],[102.598213,17.926761],[102.552531,17.965105],[102.45879,17.984639],[102.351872,18.045927],[102.231672,18.14897],[102.148215,18.203876],[102.101499,18.210646],[102.034578,18.169847],[101.947452,18.081481],[101.875467,18.046418],[101.818623,18.064634],[101.774801,18.033422],[101.744105,17.952703],[101.687468,17.889399],[101.563651,17.820515],[101.555021,17.81235],[101.413686,17.718738],[101.299688,17.625023],[101.1675,17.49901],[101.105178,17.479528],[101.04575,17.509965],[100.955885,17.541126],[100.908497,17.583862],[100.998983,17.797183],[101.113239,18.033525],[101.143935,18.142614],[101.148741,18.222144],[101.137527,18.286869],[101.092776,18.354539],[101.050608,18.407042],[101.046939,18.441975],[101.060426,18.479027],[101.106315,18.533546],[101.165536,18.618295],[101.22052,18.792755],[101.286304,18.977137],[101.279896,19.088913],[101.226617,19.211541],[101.197575,19.327916],[101.220778,19.486614],[101.211941,19.548342],[101.154632,19.579219],[100.966478,19.610793],[100.906017,19.605367],[100.858165,19.585058],[100.806798,19.541934],[100.743908,19.514752],[100.625466,19.499844],[100.513586,19.553484],[100.420155,19.644486],[100.397624,19.756107],[100.46625,19.888916],[100.514516,19.996351],[100.543042,20.088697],[100.539941,20.132363],[100.519477,20.177916],[100.491572,20.184091],[100.431524,20.240729],[100.37313,20.340361],[100.317991,20.385888],[100.266004,20.377309],[100.218049,20.339586],[100.174124,20.272768],[100.139759,20.245431],[100.114954,20.257679],[100.122499,20.316641],[100.12963,20.372219],[100.18389,20.589105],[100.249313,20.73026],[100.326104,20.795682],[100.407443,20.823225],[100.493329,20.812993],[100.565159,20.825112],[100.622933,20.859554],[100.617662,20.879269],[100.549346,20.884229],[100.522216,20.921927],[100.536169,20.992388],[100.566658,21.038174],[100.613683,21.059335],[100.65921,21.13039],[100.703135,21.25139],[100.75662,21.312653],[100.819511,21.314203],[100.927514,21.366216],[101.080373,21.468664],[101.138923,21.567469],[101.196645,21.522046],[101.175354,21.407531],[101.205585,21.383295],[101.2199,21.342419],[101.211838,21.278236],[101.224447,21.223718],[101.247908,21.197311],[101.281498,21.184134],[101.443607,21.230797],[101.54236,21.23426],[101.583908,21.203564],[101.621632,21.184444],[101.668606,21.169638],[101.704779,21.150131],[101.728086,21.156383],[101.783483,21.204132],[101.800536,21.212607],[101.802086,21.235965],[101.763122,21.278882],[101.722918,21.314927],[101.724158,21.395025],[101.743485,21.533828],[101.747206,21.605762],[101.743899,21.777999],[101.736509,21.826523],[101.69956,21.882489],[101.602925,21.989718],[101.575795,22.055269],[101.560241,22.120924],[101.561842,22.16242],[101.537245,22.209859],[101.52448,22.253655],[101.567889,22.276393],[101.619978,22.327449],[101.646178,22.405403],[101.671448,22.462324],[101.707518,22.486586],[101.738783,22.495268],[101.760022,22.490307],[101.841774,22.388479],[101.945437,22.439406],[102.024398,22.439199],[102.091474,22.41225],[102.127441,22.379203]]]},"type":"Feature","properties":{"ISO_A2":"LA","NAME":"Laos"}},{"geometry":{"type":"Polygon","coordinates":[[[35.869108,33.431758],[35.840738,33.415661],[35.787459,33.369772],[35.734439,33.332591],[35.627211,33.275049],[35.602871,33.240607],[35.579255,33.271458],[35.53254,33.250477],[35.49311,33.119503],[35.411255,33.075708],[35.308884,33.079557],[35.223308,33.091986],[35.108586,33.083666],[35.155095,33.159992],[35.203464,33.258978],[35.25142,33.392639],[35.335756,33.503485],[35.510835,33.879741],[35.611811,34.032187],[35.647881,34.248246],[35.804254,34.437381],[35.921353,34.493295],[35.977887,34.547401],[35.976233,34.629204],[36.151106,34.62861],[36.263554,34.632848],[36.296317,34.678685],[36.383909,34.657885],[36.43295,34.613495],[36.388611,34.566908],[36.32629,34.513346],[36.329907,34.4996],[36.376467,34.495182],[36.455532,34.466165],[36.504366,34.432369],[36.584982,34.221219],[36.535166,34.134325],[36.457548,34.05681],[36.422821,34.049834],[36.354918,34.011335],[36.297816,33.958651],[36.277817,33.92532],[36.282261,33.894185],[36.362825,33.855143],[36.365099,33.839356],[36.348562,33.827031],[36.283346,33.835609],[36.199372,33.839537],[36.149814,33.839485],[36.092247,33.831579],[36.018815,33.783933],[35.986155,33.752643],[35.96843,33.732412],[35.942385,33.667558],[35.971686,33.623116],[36.02667,33.597924],[36.034473,33.585056],[36.022225,33.562525],[35.967552,33.534594],[35.926521,33.500281],[35.914738,33.465374],[35.869108,33.431758]]]},"type":"Feature","properties":{"ISO_A2":"LB","NAME":"Lebanon"}},{"geometry":{"type":"Polygon","coordinates":[[[-8.486427,7.558505],[-8.467255,7.547033],[-8.437154,7.516389],[-8.408758,7.411796],[-8.29662,7.074039],[-8.302356,6.980944],[-8.324499,6.920043],[-8.325119,6.860408],[-8.332587,6.801549],[-8.401213,6.705121],[-8.603578,6.50782],[-8.587868,6.490509],[-8.539551,6.468081],[-8.490355,6.456376],[-8.449892,6.4625],[-8.399301,6.413175],[-8.34486,6.351292],[-8.287111,6.319046],[-8.203861,6.290727],[-8.130997,6.287549],[-8.068959,6.298401],[-7.9816,6.286154],[-7.888634,6.234865],[-7.85551,6.150168],[-7.833237,6.076374],[-7.80094,6.038934],[-7.796547,5.975088],[-7.730375,5.919045],[-7.636143,5.907702],[-7.513929,5.842021],[-7.482794,5.845535],[-7.469435,5.853726],[-7.454397,5.841298],[-7.423702,5.651335],[-7.39993,5.550592],[-7.412436,5.509897],[-7.428921,5.477883],[-7.429825,5.324507],[-7.485196,5.236425],[-7.494137,5.139816],[-7.509794,5.108474],[-7.568912,5.080672],[-7.569326,5.006465],[-7.585035,4.916754],[-7.591185,4.821541],[-7.574648,4.572305],[-7.571599,4.386425],[-7.54496,4.351311],[-7.659992,4.366814],[-7.998266,4.508717],[-8.259051,4.590004],[-9.132176,5.054627],[-9.374745,5.241076],[-9.654392,5.518682],[-10.27637,6.077614],[-10.41817,6.167324],[-10.5971,6.210939],[-10.70761,6.258481],[-10.785589,6.310158],[-10.849048,6.465084],[-11.004542,6.557378],[-11.291605,6.688223],[-11.507535,6.90653],[-11.454541,6.95123],[-11.37669,7.094658],[-11.267653,7.232634],[-11.166135,7.314412],[-11.08539,7.398567],[-11.000227,7.463033],[-10.878064,7.538222],[-10.69128,7.736427],[-10.647484,7.759372],[-10.617589,7.896418],[-10.570848,8.071161],[-10.516743,8.125267],[-10.389567,8.15759],[-10.359801,8.187924],[-10.314636,8.310863],[-10.285749,8.45411],[-10.283217,8.485141],[-10.233065,8.48881],[-10.147411,8.519739],[-10.097647,8.505838],[-10.07571,8.4646],[-10.064341,8.429873],[-9.804745,8.519196],[-9.781981,8.53767],[-9.768287,8.53457],[-9.735602,8.453955],[-9.716895,8.458864],[-9.701185,8.48217],[-9.6839,8.484444],[-9.663565,8.47354],[-9.643204,8.436049],[-9.610183,8.40233],[-9.553907,8.378636],[-9.518251,8.346106],[-9.52223,8.260013],[-9.508484,8.176245],[-9.484118,8.156996],[-9.471148,8.106999],[-9.464559,8.052093],[-9.451123,8.023232],[-9.441563,7.967912],[-9.446369,7.90851],[-9.436344,7.866704],[-9.394951,7.794615],[-9.369113,7.703819],[-9.368932,7.639534],[-9.383995,7.57189],[-9.411487,7.509981],[-9.459753,7.442543],[-9.463835,7.415878],[-9.435103,7.398412],[-9.391643,7.394898],[-9.355315,7.408695],[-9.263279,7.377715],[-9.215168,7.333325],[-9.172845,7.278445],[-9.134812,7.250591],[-9.117603,7.215891],[-9.052336,7.225477],[-8.976578,7.258885],[-8.960972,7.274595],[-8.938441,7.266146],[-8.889633,7.262709],[-8.855526,7.322809],[-8.827957,7.391952],[-8.769149,7.46678],[-8.740236,7.495718],[-8.73264,7.543545],[-8.729462,7.605273],[-8.708326,7.658913],[-8.65975,7.688368],[-8.607299,7.687955],[-8.578851,7.677051],[-8.564407,7.625116],[-8.522291,7.585558],[-8.486427,7.558505]]]},"type":"Feature","properties":{"ISO_A2":"LR","NAME":"Liberia"}},{"geometry":{"type":"Polygon","coordinates":[[[25.150486,31.654967],[25.111987,31.626907],[25.057262,31.567169],[25.02269,31.51402],[24.929983,31.427488],[24.852675,31.334832],[24.859909,31.199181],[24.877583,31.061257],[24.929466,30.926485],[24.973959,30.776571],[24.961402,30.678541],[24.923006,30.558032],[24.877583,30.457547],[24.726429,30.250609],[24.703226,30.201077],[24.71165,30.131546],[24.803685,29.886057],[24.810817,29.808723],[24.865904,29.570263],[24.916133,29.376295],[24.971737,29.22385],[24.980264,29.181888],[24.980264,28.957328],[24.980264,28.732768],[24.980264,28.508209],[24.980264,28.283649],[24.980264,28.059089],[24.980264,27.834529],[24.980264,27.609943],[24.980264,27.385383],[24.980264,27.160823],[24.980264,26.936237],[24.980264,26.711677],[24.980264,26.487117],[24.980264,26.262557],[24.980264,26.037998],[24.980264,25.813438],[24.980264,25.588878],[24.980264,25.364318],[24.980264,25.139758],[24.980264,24.915198],[24.980264,24.690638],[24.980264,24.466078],[24.980264,24.241518],[24.980264,24.016932],[24.980264,23.792372],[24.980264,23.567812],[24.980264,23.343227],[24.980264,23.118667],[24.980264,22.894107],[24.980264,22.669547],[24.980264,22.444987],[24.980264,22.220427],[24.980264,21.995867],[24.980109,21.497551],[24.979902,20.999235],[24.979695,20.50092],[24.97954,20.002578],[24.976388,20.000795],[24.973287,19.999038],[24.970187,19.997255],[24.967035,19.995472],[24.720383,19.995576],[24.47368,19.995705],[24.226976,19.995834],[23.980325,19.995937],[23.980325,19.871113],[23.980325,19.746289],[23.980325,19.621464],[23.980325,19.49664],[23.501233,19.733214],[23.022192,19.969789],[22.5431,20.206364],[22.064008,20.442939],[21.584915,20.679513],[21.105823,20.916088],[20.626731,21.152663],[20.147639,21.389237],[19.668547,21.625812],[19.189454,21.862387],[18.710414,22.098961],[18.231322,22.335536],[17.752229,22.572111],[17.273189,22.808686],[16.794097,23.04526],[16.315005,23.281835],[15.98412,23.445236],[15.62714,23.285737],[15.347467,23.160705],[14.978962,22.996168],[14.97891,22.996271],[14.555629,22.782537],[14.230739,22.618465],[14.215546,22.619679],[14.200663,22.623736],[13.862648,22.902091],[13.598581,23.119545],[13.481276,23.180187],[12.983632,23.29124],[12.488778,23.401673],[11.96788,23.517867],[11.873053,23.694833],[11.767013,23.892599],[11.624231,24.139715],[11.536898,24.290843],[11.507649,24.31433],[11.108242,24.434013],[10.686097,24.55137],[10.438981,24.480211],[10.395883,24.485586],[10.325809,24.530234],[10.255839,24.591032],[10.218632,24.67622],[10.119517,24.790218],[10.028153,25.051029],[10.019058,25.258562],[10.000713,25.332097],[9.781088,25.624276],[9.581255,25.890125],[9.448189,26.067143],[9.422402,26.147086],[9.437905,26.24553],[9.491442,26.333742],[9.68497,26.438232],[9.859326,26.551971],[9.883252,26.63083],[9.894415,26.847922],[9.837157,26.915825],[9.795402,27.044784],[9.752511,27.219321],[9.74755,27.330864],[9.825271,27.55297],[9.915964,27.785694],[9.858241,28.043301],[9.815608,28.560221],[9.842531,28.967018],[9.820724,29.114786],[9.805221,29.176927],[9.745948,29.368957],[9.672619,29.566981],[9.640166,29.636408],[9.546219,29.795934],[9.390983,29.993648],[9.310264,30.115242],[9.420955,30.179321],[9.518727,30.229421],[9.637996,30.282338],[9.807391,30.342231],[9.895035,30.387293],[9.9325,30.425352],[10.059727,30.580098],[10.125925,30.665984],[10.216359,30.783212],[10.256046,30.864938],[10.256976,30.940799],[10.243334,31.032111],[10.17264,31.250961],[10.11497,31.463765],[10.159876,31.545801],[10.195998,31.585101],[10.27465,31.684966],[10.306017,31.704835],[10.475774,31.736022],[10.543677,31.802555],[10.595457,31.885754],[10.608893,31.92955],[10.682997,31.975413],[10.77157,32.021198],[10.826399,32.080678],[11.005148,32.172714],[11.16829,32.256765],[11.358046,32.345235],[11.505014,32.413681],[11.535968,32.473367],[11.533798,32.52494],[11.453906,32.642581],[11.453906,32.781694],[11.459229,32.897372],[11.467238,32.965714],[11.50243,33.155548],[11.504549,33.181954],[11.657098,33.118909],[11.81347,33.093717],[12.279902,32.858563],[12.427076,32.829082],[12.753568,32.801047],[13.138041,32.897346],[13.283458,32.914632],[13.536363,32.82425],[13.647777,32.798825],[13.835363,32.791823],[14.155653,32.709787],[14.237095,32.681261],[14.423854,32.550313],[14.513357,32.511091],[15.176573,32.39115],[15.266903,32.311671],[15.359094,32.159691],[15.363125,31.971201],[15.414078,31.834233],[15.496346,31.656776],[15.595772,31.531099],[15.705946,31.426402],[15.832243,31.361006],[16.123078,31.264449],[16.451017,31.227293],[16.781539,31.214736],[17.349257,31.081514],[17.830468,30.92757],[17.949323,30.851916],[18.190446,30.777295],[18.669796,30.415663],[18.936447,30.290451],[19.123722,30.266112],[19.29167,30.288074],[19.589843,30.413751],[19.713247,30.488372],[20.013177,30.800678],[20.111569,30.963718],[20.150946,31.078594],[20.141128,31.195486],[20.103817,31.300519],[20.019998,31.410641],[19.96119,31.556007],[19.92636,31.817516],[19.973386,31.999081],[20.030953,32.10786],[20.121491,32.218731],[20.370571,32.430786],[20.621098,32.580156],[21.062312,32.775519],[21.31873,32.77769],[21.424667,32.799187],[21.63592,32.937292],[21.721393,32.942486],[21.839422,32.908663],[22.187411,32.918249],[22.34058,32.87988],[22.523411,32.793942],[22.754095,32.740534],[22.916875,32.687152],[23.090612,32.618759],[23.129679,32.448123],[23.110455,32.397403],[23.106218,32.331464],[23.286362,32.213822],[23.797649,32.158683],[23.898418,32.127187],[24.038977,32.037011],[24.129721,32.009235],[24.479777,31.996549],[24.683899,32.015953],[24.878513,31.984301],[24.950653,31.953735],[25.024964,31.883351],[25.114984,31.712328],[25.150486,31.654967]]]},"type":"Feature","properties":{"ISO_A2":"LY","NAME":"Libya"}},{"geometry":{"type":"Polygon","coordinates":[[[-60.895218,13.821999],[-60.951416,13.717561],[-61.060634,13.783087],[-61.073114,13.865562],[-61.063554,13.915585],[-60.996659,14.010928],[-60.944569,14.072836],[-60.908085,14.093352],[-60.886769,14.011135],[-60.895218,13.821999]]]},"type":"Feature","properties":{"ISO_A2":"LC","NAME":"Saint Lucia"}},{"geometry":{"type":"Polygon","coordinates":[[[9.580222,47.057386],[9.502294,47.062735],[9.487721,47.062244],[9.479453,47.097513],[9.48431,47.172677],[9.527512,47.270758],[9.536814,47.254635],[9.542136,47.234146],[9.551076,47.212235],[9.555779,47.185492],[9.57185,47.157923],[9.601202,47.132059],[9.610504,47.107151],[9.595725,47.075835],[9.580222,47.057386]]]},"type":"Feature","properties":{"ISO_A2":"LI","NAME":"Liechtenstein"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[79.874846,9.050714],[79.903681,8.975008],[79.821102,9.02684],[79.766842,9.069757],[79.747618,9.104613],[79.859963,9.0657],[79.874846,9.050714]]],[[[79.969517,9.630679],[79.906885,9.619827],[79.857379,9.68636],[79.8457,9.714653],[79.858619,9.734393],[79.872262,9.744315],[79.888488,9.741163],[79.911949,9.679151],[79.969517,9.630679]]],[[[79.982333,9.812683],[80.078451,9.807464],[80.180977,9.810022],[80.252807,9.796327],[80.376004,9.642332],[80.711074,9.366354],[80.893492,9.085906],[80.910028,9.024514],[80.935453,8.971494],[80.979171,8.956947],[81.015965,8.932633],[81.198279,8.661952],[81.21926,8.608415],[81.216263,8.549427],[81.227011,8.505528],[81.274554,8.483617],[81.333982,8.472093],[81.372842,8.431449],[81.422142,8.215209],[81.422142,8.147849],[81.435991,8.11891],[81.665434,7.782471],[81.678767,7.741543],[81.676286,7.710925],[81.682901,7.684467],[81.727343,7.625013],[81.796692,7.464816],[81.832039,7.428436],[81.874104,7.288315],[81.876894,7.02045],[81.861391,6.901284],[81.818603,6.756203],[81.767754,6.614325],[81.712666,6.511851],[81.637426,6.425138],[81.379974,6.240911],[81.306283,6.203859],[80.97111,6.088388],[80.724096,5.979041],[80.49579,5.949353],[80.26738,6.009763],[80.095297,6.153165],[80.007241,6.364418],[79.946986,6.584508],[79.859343,6.829299],[79.79206,7.585222],[79.759917,7.796475],[79.707828,8.065684],[79.712995,8.182343],[79.749789,8.294223],[79.749686,8.048863],[79.783482,8.018451],[79.808907,8.050026],[79.831954,8.304041],[79.850868,8.411554],[79.941818,8.691511],[79.943679,8.741172],[79.927969,8.846437],[79.928899,8.899199],[80.064808,9.095673],[80.099638,9.209981],[80.118345,9.326873],[80.110904,9.453273],[80.086306,9.577814],[80.196067,9.538126],[80.256425,9.49477],[80.318023,9.465417],[80.367942,9.480481],[80.4283,9.480972],[80.385306,9.548771],[80.257561,9.611274],[80.045791,9.649876],[79.979542,9.699382],[79.954014,9.742351],[79.967037,9.792633],[79.982333,9.812683]]]]},"type":"Feature","properties":{"ISO_A2":"LK","NAME":"Sri Lanka"}},{"geometry":{"type":"Polygon","coordinates":[[[28.736882,-30.101987],[28.646913,-30.126585],[28.634356,-30.128755],[28.576685,-30.123019],[28.499584,-30.12891],[28.439122,-30.142501],[28.392097,-30.147565],[28.315461,-30.218465],[28.176141,-30.409823],[28.139037,-30.449872],[28.128702,-30.525113],[28.096404,-30.584541],[28.05682,-30.63105],[28.018166,-30.642315],[27.901842,-30.623815],[27.753066,-30.600044],[27.66656,-30.542321],[27.589665,-30.466409],[27.549047,-30.411218],[27.506569,-30.380936],[27.491945,-30.363986],[27.431432,-30.33851],[27.408591,-30.325332],[27.388437,-30.315927],[27.364046,-30.279237],[27.34968,-30.247352],[27.355364,-30.158624],[27.312679,-30.105707],[27.239712,-30.015325],[27.193514,-29.941325],[27.130468,-29.840194],[27.091763,-29.753687],[27.051713,-29.664029],[27.056933,-29.625633],[27.095225,-29.599278],[27.207466,-29.554216],[27.294489,-29.519335],[27.356811,-29.455308],[27.424921,-29.360016],[27.458045,-29.302759],[27.491015,-29.276611],[27.527137,-29.236096],[27.590285,-29.146489],[27.660462,-29.046961],[27.735599,-28.940094],[27.830374,-28.909088],[27.959875,-28.873379],[28.084415,-28.78],[28.232623,-28.701245],[28.471885,-28.615824],[28.583455,-28.594172],[28.625829,-28.581718],[28.652649,-28.597892],[28.681175,-28.646778],[28.721792,-28.687706],[28.816154,-28.758916],[28.856255,-28.776073],[28.953716,-28.881441],[29.057999,-28.953736],[29.177992,-29.036935],[29.259744,-29.078276],[29.301344,-29.089852],[29.335915,-29.163698],[29.370952,-29.218475],[29.390692,-29.269686],[29.386765,-29.31976],[29.348886,-29.441975],[29.29354,-29.566929],[29.249202,-29.618812],[29.195149,-29.651626],[29.142232,-29.700977],[29.121975,-29.801126],[29.098049,-29.919052],[29.029009,-29.967576],[28.975317,-29.999409],[28.90111,-30.038425],[28.736882,-30.101987]]]},"type":"Feature","properties":{"ISO_A2":"LS","NAME":"Lesotho"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[21.031719,55.350472],[20.95777,55.2789],[20.899789,55.286652],[21.014046,55.401942],[21.057661,55.476795],[21.087943,55.583093],[21.114815,55.616502],[21.115745,55.568185],[21.103859,55.487725],[21.031719,55.350472]]],[[[24.943832,56.325606],[25.069871,56.200394],[25.206968,56.178406],[25.585756,56.130166],[25.663219,56.104844],[25.876333,55.99436],[26.004232,55.940152],[26.085519,55.896899],[26.209594,55.812123],[26.281218,55.750447],[26.401107,55.703784],[26.542856,55.672416],[26.59355,55.667507],[26.590863,55.622652],[26.566575,55.546481],[26.51924,55.44814],[26.469578,55.371943],[26.457641,55.342462],[26.495313,55.318019],[26.681297,55.306444],[26.760207,55.293344],[26.77571,55.273112],[26.73442,55.246757],[26.675044,55.224898],[26.648431,55.204202],[26.601198,55.130201],[26.29176,55.13958],[26.25078,55.124491],[26.231298,55.090152],[26.215847,55.050387],[26.175178,55.003284],[26.093012,54.962304],[25.964441,54.947163],[25.85928,54.919284],[25.780835,54.833268],[25.722492,54.717875],[25.723939,54.636019],[25.731691,54.590363],[25.724766,54.564241],[25.685182,54.535793],[25.620328,54.460397],[25.567618,54.377069],[25.547361,54.331826],[25.557541,54.31069],[25.616866,54.310096],[25.702597,54.292991],[25.748124,54.259686],[25.765074,54.221187],[25.765177,54.179794],[25.749261,54.156979],[25.680531,54.140468],[25.573044,54.139874],[25.510412,54.159614],[25.49739,54.175246],[25.527362,54.215141],[25.505606,54.264957],[25.461165,54.292785],[25.370576,54.251211],[25.283656,54.251263],[25.179528,54.214262],[25.111418,54.154938],[25.046048,54.133079],[24.869521,54.145171],[24.825648,54.118997],[24.789216,53.998229],[24.768184,53.974639],[24.620751,53.979832],[24.478537,53.93185],[24.317927,53.89299],[24.236588,53.919965],[24.19132,53.950454],[24.103935,53.945028],[24.008488,53.931644],[23.944461,53.938982],[23.872528,53.9357],[23.733673,53.912265],[23.55911,53.91981],[23.484644,53.939809],[23.477668,53.958955],[23.482991,54.005954],[23.481389,54.079025],[23.453639,54.143465],[23.370078,54.200465],[23.282331,54.240307],[23.170297,54.281442],[23.087511,54.299451],[23.042191,54.304179],[23.031959,54.327873],[23.015526,54.348363],[22.976717,54.366346],[22.893931,54.390531],[22.823755,54.395776],[22.766239,54.356786],[22.724329,54.405594],[22.679836,54.493005],[22.684435,54.562923],[22.709653,54.632609],[22.831196,54.838462],[22.824685,54.871276],[22.736576,54.928844],[22.627436,54.970702],[22.567284,55.05912],[22.346368,55.064236],[22.137853,55.059379],[22.072379,55.063668],[21.873942,55.10072],[21.682739,55.160354],[21.554685,55.195288],[21.447094,55.234407],[21.389217,55.275541],[21.297594,55.264456],[21.235738,55.264121],[21.236358,55.2712],[21.201115,55.343806],[21.237908,55.455013],[21.171142,55.617742],[21.061898,55.813441],[21.053837,56.022937],[21.046085,56.070066],[21.314699,56.188147],[21.65349,56.314547],[21.73054,56.325994],[22.042872,56.400795],[22.084575,56.406764],[22.365901,56.392889],[22.586921,56.375112],[22.773215,56.377283],[22.875534,56.396455],[22.968293,56.380435],[23.042966,56.324056],[23.11986,56.33067],[23.195876,56.367154],[23.612647,56.333823],[23.70675,56.334598],[23.812738,56.329249],[24.008178,56.295272],[24.120678,56.264266],[24.367898,56.283025],[24.47368,56.284058],[24.528973,56.296306],[24.699506,56.381288],[24.773196,56.395886],[24.840996,56.411182],[24.903059,56.398212],[24.943832,56.325606]]]]},"type":"Feature","properties":{"ISO_A2":"LT","NAME":"Lithuania"}},{"geometry":{"type":"Polygon","coordinates":[[[6.116506,50.120972],[6.108341,50.094229],[6.109736,50.034362],[6.138158,49.974314],[6.204924,49.915145],[6.256032,49.87215],[6.324607,49.837888],[6.440879,49.805307],[6.487284,49.798485],[6.493795,49.754379],[6.484804,49.707819],[6.444599,49.682032],[6.406772,49.64498],[6.37835,49.599608],[6.348481,49.512689],[6.344295,49.452744],[6.277323,49.477549],[6.242183,49.494344],[6.181049,49.498943],[6.119916,49.485197],[6.074079,49.45463],[6.011396,49.445458],[5.959461,49.45463],[5.92892,49.477549],[5.901377,49.48977],[5.823449,49.505066],[5.789704,49.538269],[5.815439,49.553823],[5.837608,49.578344],[5.856573,49.612838],[5.880396,49.644774],[5.803708,49.732159],[5.787998,49.758875],[5.724953,49.808278],[5.72578,49.833341],[5.740766,49.857164],[5.735289,49.875638],[5.744074,49.919641],[5.788102,49.96124],[5.817402,50.012684],[5.866908,50.082835],[5.976307,50.167171],[6.054752,50.154303],[6.089065,50.154588],[6.110046,50.123763],[6.116506,50.120972]]]},"type":"Feature","properties":{"ISO_A2":"LU","NAME":"Luxembourg"}},{"geometry":{"type":"Polygon","coordinates":[[[27.351954,57.528117],[27.469672,57.524034],[27.511117,57.50817],[27.538712,57.429802],[27.672761,57.368127],[27.796888,57.316941],[27.828617,57.293299],[27.838229,57.247695],[27.830219,57.194468],[27.814561,57.166899],[27.762781,57.135117],[27.717409,57.054631],[27.711105,56.978073],[27.639481,56.845652],[27.655708,56.843223],[27.806086,56.867072],[27.848667,56.853429],[27.881534,56.82418],[27.892076,56.741085],[27.941375,56.703723],[27.991604,56.645328],[28.007521,56.599853],[28.103174,56.545722],[28.110874,56.510685],[28.169268,56.386869],[28.191696,56.315555],[28.202031,56.260391],[28.17335,56.190343],[28.147926,56.14293],[28.117902,56.145824],[28.032015,56.133292],[27.896313,56.076164],[27.694207,55.941547],[27.642272,55.91173],[27.589458,55.809204],[27.576746,55.798791],[27.45913,55.803493],[27.427091,55.805948],[27.309217,55.803907],[27.05254,55.830546],[26.953063,55.812924],[26.822477,55.70921],[26.771834,55.694017],[26.620215,55.679651],[26.59355,55.667507],[26.542856,55.672416],[26.401107,55.703784],[26.281218,55.750447],[26.209594,55.812123],[26.085519,55.896899],[26.004232,55.940152],[25.876333,55.99436],[25.663219,56.104844],[25.585756,56.130166],[25.206968,56.178406],[25.069871,56.200394],[24.943832,56.325606],[24.903059,56.398212],[24.840996,56.411182],[24.773196,56.395886],[24.699506,56.381288],[24.528973,56.296306],[24.47368,56.284058],[24.367898,56.283025],[24.120678,56.264266],[24.008178,56.295272],[23.812738,56.329249],[23.70675,56.334598],[23.612647,56.333823],[23.195876,56.367154],[23.11986,56.33067],[23.042966,56.324056],[22.968293,56.380435],[22.875534,56.396455],[22.773215,56.377283],[22.586921,56.375112],[22.365901,56.392889],[22.084575,56.406764],[22.042872,56.400795],[21.73054,56.325994],[21.65349,56.314547],[21.314699,56.188147],[21.046085,56.070066],[21.014976,56.258944],[21.031409,56.636595],[21.071303,56.823715],[21.257442,56.932753],[21.350769,57.017657],[21.40503,57.130983],[21.421463,57.235835],[21.459187,57.322445],[21.728731,57.571008],[21.942361,57.597828],[22.231439,57.666816],[22.554624,57.724255],[22.616945,57.651158],[22.648675,57.595348],[23.037798,57.392104],[23.13681,57.32384],[23.287292,57.089746],[23.647787,56.971045],[23.93118,57.00851],[24.054325,57.066129],[24.281237,57.172325],[24.382626,57.250046],[24.403193,57.325003],[24.362989,57.645319],[24.301597,57.784122],[24.322526,57.870602],[24.362472,57.866184],[24.4589,57.907861],[24.77578,57.985246],[24.839032,57.988735],[24.911276,58.004573],[25.111057,58.063433],[25.175136,58.032117],[25.228724,57.996564],[25.258283,57.99615],[25.272701,58.009379],[25.26867,58.03222],[25.282623,58.048498],[25.339983,58.039429],[25.571287,57.942768],[25.660171,57.920186],[25.72089,57.91383],[25.793806,57.868561],[25.991106,57.838201],[26.015188,57.814766],[26.03038,57.785569],[26.215072,57.662734],[26.298064,57.601084],[26.462085,57.544472],[26.532675,57.531011],[26.819738,57.588733],[26.899785,57.608784],[26.966034,57.609145],[27.03342,57.57876],[27.187106,57.538349],[27.32658,57.525481],[27.351954,57.528117]]]},"type":"Feature","properties":{"ISO_A2":"LV","NAME":"Latvia"}},{"geometry":{"type":"Polygon","coordinates":[[[113.478893,22.195545],[113.481063,22.217456],[113.494189,22.241537],[113.527055,22.245929],[113.548139,22.222623],[113.545504,22.221486],[113.49884,22.201668],[113.484164,22.197767],[113.478893,22.195545]]]},"type":"Feature","properties":{"ISO_A2":"MO","NAME":"Macau"}},{"geometry":{"type":"Polygon","coordinates":[[[-63.011168,18.068942],[-63.123019,18.068942],[-63.115005,18.090705],[-63.06307,18.115355],[-63.024778,18.113107],[-63.00943,18.104322],[-63.011168,18.068942]]]},"type":"Feature","properties":{"ISO_A2":"MF","NAME":"St. Martin"}},{"geometry":{"type":"Polygon","coordinates":[[[-4.628342,35.206404],[-4.329989,35.161472],[-3.982413,35.243405],[-3.78798,35.244929],[-3.693232,35.279966],[-3.590602,35.228315],[-3.394723,35.211805],[-3.206,35.239116],[-3.063063,35.317224],[-2.972216,35.407296],[-2.957953,35.363087],[-2.953613,35.315157],[-2.925966,35.287097],[-2.869561,35.172634],[-2.839924,35.12783],[-2.731404,35.135194],[-2.636836,35.112689],[-2.423723,35.123489],[-2.219626,35.104188],[-2.190765,35.0298],[-2.131776,34.970837],[-1.920885,34.835574],[-1.795621,34.751884],[-1.792211,34.723204],[-1.832441,34.654629],[-1.849649,34.607319],[-1.816602,34.55709],[-1.739449,34.496086],[-1.733274,34.467044],[-1.751851,34.433247],[-1.791797,34.367928],[-1.706919,34.176054],[-1.692656,33.990277],[-1.714696,33.858192],[-1.714128,33.781814],[-1.702965,33.716857],[-1.631239,33.566763],[-1.679194,33.318664],[-1.625089,33.18335],[-1.550727,33.073589],[-1.510006,32.877632],[-1.450009,32.784821],[-1.352134,32.703379],[-1.296375,32.67568],[-1.188242,32.608475],[-1.111012,32.552277],[-1.065537,32.468303],[-1.162585,32.39916],[-1.240306,32.337587],[-1.262114,32.271131],[-1.22594,32.164549],[-1.22594,32.107239],[-1.275343,32.088998],[-1.477036,32.094889],[-1.635166,32.09954],[-1.816964,32.104811],[-2.072814,32.115017],[-2.231279,32.121321],[-2.448398,32.130003],[-2.523251,32.125688],[-2.722593,32.095767],[-2.863411,32.074709],[-2.887183,32.068844],[-2.930849,32.042541],[-2.961132,31.963941],[-2.988236,31.87423],[-3.017356,31.834285],[-3.43981,31.704551],[-3.604606,31.686774],[-3.70026,31.700081],[-3.768162,31.689539],[-3.826738,31.661892],[-3.846659,31.619879],[-3.849553,31.566394],[-3.837099,31.51234],[-3.796429,31.4371],[-3.789143,31.361807],[-3.815162,31.308839],[-3.821389,31.255457],[-3.833404,31.197812],[-3.811829,31.166599],[-3.770979,31.161793],[-3.730154,31.135387],[-3.672509,31.111383],[-3.624502,31.065753],[-3.626905,31.000925],[-3.666825,30.964028],[-3.702017,30.944468],[-3.860069,30.927234],[-3.985358,30.913514],[-4.148785,30.809593],[-4.322857,30.698876],[-4.52915,30.625547],[-4.619635,30.604799],[-4.77854,30.552373],[-4.968244,30.465376],[-5.061934,30.326418],[-5.180118,30.166169],[-5.293651,30.058657],[-5.448783,29.956931],[-5.593322,29.917967],[-5.775017,29.86903],[-6.004305,29.831254],[-6.166517,29.818955],[-6.214809,29.810687],[-6.357617,29.80831],[-6.427612,29.816139],[-6.479728,29.820376],[-6.500864,29.809111],[-6.507892,29.783764],[-6.510708,29.726015],[-6.520553,29.659844],[-6.565666,29.603878],[-6.597757,29.57897],[-6.635378,29.56879],[-6.755112,29.583853],[-6.855545,29.601604],[-7.094936,29.625169],[-7.142427,29.619588],[-7.160203,29.612663],[-7.234902,29.574888],[-7.349753,29.494737],[-7.427681,29.424974],[-7.485765,29.392237],[-7.624594,29.37521],[-7.685133,29.349527],[-7.943877,29.174757],[-7.998912,29.132434],[-8.265175,28.980505],[-8.340493,28.930172],[-8.399301,28.880175],[-8.558335,28.767857],[-8.659905,28.718609],[-8.678405,28.689386],[-8.683366,28.620734],[-8.683366,28.469244],[-8.683366,28.323698],[-8.683366,28.112031],[-8.683366,27.90039],[-8.683366,27.656452],[-8.817828,27.656426],[-8.81778,27.655898],[-8.813901,27.61387],[-8.7846,27.530878],[-8.774368,27.460546],[-8.788993,27.41657],[-8.802687,27.36094],[-8.796822,27.308204],[-8.774368,27.250585],[-8.753853,27.191002],[-8.753853,27.150979],[-8.794884,27.120696],[-8.88909,27.104082],[-9.0019,27.09044],[-9.084427,27.09044],[-9.20845,27.100207],[-9.285603,27.098243],[-9.352989,27.098243],[-9.413037,27.088476],[-9.487297,27.050391],[-9.569824,26.990808],[-9.673332,26.910735],[-9.735343,26.860945],[-9.817845,26.850196],[-9.900346,26.850196],[-9.98091,26.890245],[-10.03269,26.910735],[-10.066848,26.908797],[-10.12302,26.880478],[-10.189424,26.860945],[-10.251436,26.860945],[-10.354944,26.900994],[-10.478967,26.960551],[-10.551263,26.990808],[-10.654254,27.000574],[-10.757762,27.020108],[-10.830057,27.010341],[-10.922816,27.010341],[-11.04684,26.970318],[-11.150347,26.941017],[-11.263622,26.910735],[-11.392555,26.883424],[-11.361291,26.793559],[-11.316849,26.744724],[-11.316849,26.68416],[-11.337881,26.633413],[-11.399893,26.583597],[-11.47069,26.520113],[-11.511669,26.470323],[-11.553191,26.400973],[-11.583964,26.360924],[-11.637191,26.295501],[-11.684527,26.213491],[-11.699203,26.162693],[-11.71822,26.104092],[-11.754858,26.086522],[-11.880846,26.070915],[-11.960892,26.0504],[-12.030733,26.030866],[-12.056804,25.996346],[-12.06099,25.990817],[-12.08104,25.920485],[-12.08104,25.870721],[-12.101039,25.830672],[-12.13083,25.731065],[-12.170854,25.640244],[-12.201136,25.520096],[-12.230927,25.420516],[-12.270951,25.260319],[-12.311,25.110948],[-12.360816,24.970311],[-12.400865,24.880471],[-12.431122,24.830681],[-12.500963,24.770116],[-12.561011,24.731049],[-12.630826,24.680277],[-12.710924,24.630487],[-12.820762,24.570904],[-12.911119,24.520106],[-12.94786,24.497265],[-12.991165,24.470315],[-13.061006,24.400992],[-13.12108,24.300378],[-13.161103,24.220331],[-13.230944,24.090416],[-13.280734,24.02011],[-13.310991,23.981069],[-13.391089,23.94102],[-13.480929,23.910737],[-13.581026,23.870714],[-13.661099,23.830639],[-13.770963,23.790641],[-13.840778,23.750592],[-13.89111,23.691009],[-13.931108,23.620703],[-13.980924,23.520115],[-14.020973,23.410768],[-14.040972,23.340436],[-14.101046,23.100192],[-14.121071,22.960563],[-14.141069,22.870697],[-14.170887,22.760368],[-14.190885,22.59043],[-14.190885,22.450775],[-14.210936,22.370702],[-14.221168,22.310163],[-14.270984,22.240813],[-14.311033,22.191023],[-14.380822,22.120717],[-14.440896,22.080668],[-14.460895,22.040619],[-14.520969,21.990854],[-14.581017,21.910756],[-14.630833,21.86094],[-14.621066,21.820891],[-14.610808,21.750585],[-14.64109,21.680279],[-14.670856,21.600181],[-14.750955,21.5006],[-14.840794,21.450784],[-14.971148,21.441017],[-15.150853,21.441017],[-15.290973,21.450784],[-15.460911,21.450784],[-15.610799,21.470318],[-15.750945,21.490833],[-15.920857,21.5006],[-16.041005,21.5006],[-16.190867,21.481066],[-16.581024,21.481066],[-16.730937,21.470318],[-16.95113,21.430268],[-17.002962,21.420734],[-17.003065,21.420708],[-16.930847,21.900007],[-16.793259,22.159733],[-16.683989,22.274351],[-16.514413,22.333521],[-16.358738,22.594538],[-16.304322,22.834834],[-16.201848,22.94537],[-16.169757,23.031928],[-16.210271,23.097919],[-16.113688,23.227523],[-15.996718,23.425496],[-15.942613,23.55262],[-15.805955,23.749507],[-15.789263,23.792863],[-15.801666,23.84224],[-15.855202,23.800356],[-15.912563,23.727596],[-15.980724,23.670338],[-15.952819,23.740825],[-15.899334,23.844436],[-15.777791,23.952957],[-15.58633,24.072743],[-15.188628,24.478816],[-15.03887,24.548838],[-14.904304,24.719783],[-14.856064,24.871609],[-14.842913,25.220115],[-14.794905,25.404134],[-14.707055,25.547692],[-14.602307,25.808554],[-14.522726,25.92524],[-14.470558,26.163055],[-14.413895,26.253695],[-14.312454,26.296741],[-14.16838,26.415416],[-13.952114,26.488771],[-13.695903,26.642922],[-13.575781,26.735087],[-13.49576,26.872675],[-13.409822,27.146612],[-13.256162,27.434605],[-13.177396,27.651839],[-13.175986,27.655728],[-13.040697,27.76983],[-12.94892,27.914162],[-12.793632,27.978422],[-12.468897,28.009428],[-11.986085,28.129291],[-11.552674,28.310107],[-11.43015,28.382015],[-11.299072,28.526063],[-11.080972,28.713752],[-10.673813,28.939216],[-10.48646,29.064945],[-10.200612,29.380378],[-10.010495,29.641395],[-9.852649,29.80924],[-9.743482,29.958198],[-9.667105,30.109274],[-9.6238,30.352618],[-9.652919,30.447548],[-9.773145,30.603145],[-9.853915,30.64459],[-9.875516,30.717919],[-9.832392,30.847291],[-9.833348,31.069603],[-9.808698,31.42462],[-9.674959,31.710985],[-9.34746,32.086388],[-9.286585,32.240591],[-9.249146,32.485821],[-9.245864,32.572482],[-8.836251,32.920472],[-8.596266,33.187174],[-8.51286,33.252415],[-8.301193,33.374346],[-7.562349,33.640298],[-7.144675,33.830313],[-6.900969,33.969064],[-6.755758,34.132904],[-6.353121,34.776095],[-5.957564,35.68113],[-5.924801,35.7858],[-5.747964,35.815954],[-5.62283,35.828924],[-5.522241,35.861997],[-5.397391,35.9299],[-5.277812,35.902718],[-5.337653,35.856546],[-5.337653,35.745209],[-5.252697,35.614726],[-5.105342,35.467758],[-4.837219,35.281283],[-4.628342,35.206404]]]},"type":"Feature","properties":{"ISO_A2":"MA","NAME":"Morocco"}},{"geometry":{"type":"Polygon","coordinates":[[[7.438699,43.750456],[7.377721,43.73175],[7.380098,43.753247],[7.394981,43.765339],[7.414411,43.77092],[7.436942,43.761464],[7.438699,43.750456]]]},"type":"Feature","properties":{"ISO_A2":"MC","NAME":"Monaco"}},{"geometry":{"type":"Polygon","coordinates":[[[28.21247,45.450456],[28.16255,45.51376],[28.111959,45.569157],[28.0747,45.598974],[28.090306,45.612746],[28.130821,45.628275],[28.159811,45.647137],[28.156297,45.713076],[28.134955,45.788859],[28.115525,45.825524],[28.113561,45.883039],[28.099712,45.972595],[28.119194,46.138683],[28.199654,46.347559],[28.244354,46.451274],[28.222598,46.508066],[28.239496,46.640823],[28.204718,46.7064],[28.149941,46.79208],[28.071806,46.978425],[27.974189,47.043227],[27.853835,47.114489],[27.802365,47.16831],[27.767949,47.227583],[27.69617,47.286416],[27.614108,47.340547],[27.515871,47.47563],[27.464815,47.536685],[27.44926,47.553118],[27.336864,47.639754],[27.277953,47.717966],[27.248136,47.782252],[27.230824,47.841731],[27.152069,47.959295],[27.080342,48.047662],[27.012233,48.1105],[26.980762,48.155045],[26.900973,48.211114],[26.787285,48.255815],[26.713801,48.263463],[26.618975,48.259845],[26.640472,48.294158],[26.847075,48.38715],[26.90056,48.371931],[27.008512,48.368262],[27.228499,48.371415],[27.336967,48.432703],[27.403785,48.41565],[27.458459,48.44309],[27.549254,48.477713],[27.562225,48.470401],[27.573749,48.464897],[27.714412,48.449498],[27.820039,48.41627],[27.890629,48.365214],[27.963389,48.333562],[28.038423,48.321289],[28.080126,48.295812],[28.088498,48.257055],[28.158829,48.237986],[28.291018,48.238555],[28.347138,48.213052],[28.326984,48.161428],[28.340524,48.144452],[28.387549,48.162125],[28.423051,48.146881],[28.442016,48.108692],[28.463049,48.090502],[28.530486,48.150317],[28.601696,48.1444],[28.773779,48.11957],[28.865815,47.995675],[28.923175,47.95113],[28.973353,47.932992],[29.036967,47.952345],[29.092933,47.975418],[29.125385,47.96454],[29.194838,47.882401],[29.211168,47.775017],[29.210755,47.731557],[29.186054,47.65859],[29.150914,47.580869],[29.122957,47.530381],[29.134894,47.489686],[29.159802,47.455657],[29.200575,47.444495],[29.333745,47.375713],[29.383406,47.328042],[29.455701,47.292643],[29.510633,47.290705],[29.539159,47.270991],[29.549339,47.246806],[29.541794,47.185544],[29.510995,47.128028],[29.515026,47.091105],[29.563498,47.047516],[29.568666,46.996718],[29.571973,46.964007],[29.59776,46.938841],[29.719768,46.882927],[29.877846,46.828925],[29.918102,46.782416],[29.942493,46.723763],[29.934742,46.62501],[29.924303,46.538865],[30.131009,46.423084],[30.107496,46.401587],[30.075715,46.377841],[29.878053,46.36022],[29.8379,46.350556],[29.752014,46.437786],[29.706797,46.448741],[29.664577,46.416754],[29.614968,46.398822],[29.555075,46.407762],[29.491048,46.434685],[29.458802,46.453754],[29.432808,46.455976],[29.392863,46.436907],[29.339533,46.445072],[29.304858,46.466621],[29.254576,46.392621],[29.223881,46.376963],[29.204554,46.379366],[29.200833,46.504965],[29.186209,46.523956],[29.146263,46.526902],[29.049938,46.497033],[28.958367,46.458482],[28.927465,46.424118],[28.930565,46.362235],[28.943691,46.288415],[29.006271,46.176484],[28.971906,46.12765],[28.947722,46.049928],[28.849537,45.978641],[28.738742,45.937145],[28.729337,45.851982],[28.667636,45.793846],[28.562319,45.735813],[28.491626,45.665792],[28.509506,45.617836],[28.513743,45.572412],[28.501754,45.541562],[28.499067,45.517739],[28.471368,45.507197],[28.310345,45.498567],[28.264869,45.483865],[28.21247,45.450456]]]},"type":"Feature","properties":{"ISO_A2":"MD","NAME":"Moldova"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[49.936415,-16.902896],[49.823967,-17.086554],[49.855696,-16.933178],[49.985921,-16.712416],[50.023025,-16.695363],[49.936415,-16.902896]]],[[[48.342197,-13.363835],[48.34354,-13.40037],[48.211972,-13.385281],[48.191198,-13.259914],[48.255691,-13.25609],[48.269747,-13.20462],[48.308917,-13.198212],[48.351085,-13.309523],[48.342197,-13.363835]]],[[[49.5383,-12.432161],[49.584188,-12.536754],[49.637828,-12.637058],[49.80495,-12.87973],[49.87647,-12.973006],[49.937448,-13.072225],[49.967214,-13.270197],[50.073461,-13.577931],[50.173816,-14.04028],[50.204616,-14.514411],[50.235311,-14.73202],[50.313446,-14.936814],[50.441294,-15.149308],[50.482738,-15.385676],[50.404603,-15.629123],[50.291535,-15.858515],[50.262286,-15.90151],[50.208956,-15.960421],[50.184978,-15.957837],[50.094441,-15.898667],[50.020441,-15.801723],[49.926596,-15.573571],[49.892593,-15.457712],[49.853319,-15.439419],[49.743765,-15.449548],[49.66439,-15.521585],[49.649921,-15.566956],[49.666974,-15.695734],[49.69705,-15.811386],[49.710485,-15.92895],[49.712759,-16.076744],[49.742318,-16.121496],[49.785933,-16.159117],[49.830995,-16.255907],[49.839056,-16.486487],[49.811358,-16.603069],[49.733947,-16.703063],[49.738597,-16.758357],[49.767226,-16.815149],[49.739734,-16.849462],[49.636898,-16.89287],[49.595247,-16.931111],[49.53954,-17.032914],[49.449313,-17.240653],[49.437117,-17.346641],[49.493651,-17.669515],[49.477838,-17.898494],[49.36291,-18.336348],[49.296867,-18.544036],[49.203333,-18.792289],[49.060086,-19.119608],[48.918079,-19.530435],[48.797466,-19.953252],[48.708273,-20.207345],[48.606987,-20.457511],[48.468494,-20.899964],[48.350775,-21.348981],[48.175902,-21.843059],[47.93447,-22.39393],[47.908425,-22.465864],[47.858299,-22.747293],[47.804142,-22.991465],[47.739443,-23.233362],[47.604051,-23.633079],[47.588651,-23.756379],[47.557955,-23.874615],[47.427627,-24.125245],[47.37254,-24.21847],[47.333576,-24.317585],[47.311665,-24.443159],[47.272908,-24.564392],[47.177307,-24.787221],[47.03499,-24.979043],[46.938148,-25.048755],[46.728549,-25.149886],[46.622302,-25.170401],[46.386761,-25.172778],[46.158661,-25.230398],[45.920846,-25.341347],[45.692229,-25.468419],[45.604586,-25.528726],[45.507951,-25.563194],[45.205748,-25.570532],[45.11521,-25.543092],[44.812903,-25.334216],[44.695804,-25.299747],[44.473803,-25.271119],[44.406727,-25.25329],[44.345852,-25.226108],[44.256141,-25.116865],[44.078064,-25.024622],[44.03538,-24.995735],[44.008301,-24.93207],[43.989904,-24.863443],[43.943706,-24.786755],[43.909599,-24.640615],[43.851515,-24.538399],[43.687494,-24.357944],[43.670027,-24.300325],[43.656798,-24.108812],[43.662069,-23.979208],[43.646049,-23.741858],[43.664756,-23.630237],[43.722324,-23.529675],[43.698759,-23.420947],[43.637574,-23.306536],[43.61463,-23.188197],[43.569568,-23.080451],[43.397796,-22.886355],[43.357488,-22.790857],[43.329583,-22.691896],[43.264884,-22.383646],[43.257133,-22.276314],[43.266641,-22.0493],[43.290516,-21.932511],[43.33227,-21.851224],[43.342709,-21.790453],[43.369787,-21.738259],[43.410508,-21.696453],[43.437793,-21.646637],[43.501872,-21.356474],[43.583108,-21.291982],[43.703617,-21.254981],[43.800149,-21.179224],[43.855649,-21.076853],[43.91115,-20.865858],[44.063078,-20.656207],[44.117235,-20.546084],[44.239708,-20.379738],[44.348125,-20.14554],[44.381095,-20.035108],[44.404659,-19.922039],[44.432255,-19.674251],[44.452925,-19.550848],[44.448791,-19.428685],[44.386573,-19.303111],[44.238778,-19.075218],[44.234024,-19.032636],[44.245703,-18.863189],[44.233094,-18.740665],[44.17873,-18.618501],[44.10876,-18.503521],[44.040031,-18.288444],[44.006648,-17.932962],[44.013676,-17.804494],[43.993522,-17.690289],[43.943602,-17.581407],[43.979362,-17.391651],[44.421403,-16.702649],[44.435769,-16.621517],[44.417992,-16.411298],[44.427087,-16.289083],[44.442487,-16.243711],[44.47618,-16.217253],[44.551834,-16.204489],[44.909228,-16.174516],[44.955117,-16.153277],[45.044207,-16.095141],[45.166783,-15.982848],[45.222904,-15.950447],[45.271273,-15.962333],[45.302382,-16.010444],[45.342173,-16.036695],[45.486351,-15.985846],[45.541748,-15.984244],[45.598282,-15.992564],[45.62474,-15.945796],[45.640553,-15.883113],[45.661534,-15.838826],[45.700188,-15.813763],[45.885913,-15.800069],[46.004252,-15.782137],[46.157524,-15.738316],[46.190494,-15.746842],[46.314104,-15.90461],[46.351517,-15.918201],[46.399576,-15.924609],[46.441641,-15.895929],[46.341285,-15.81335],[46.326196,-15.766738],[46.331467,-15.713718],[46.38521,-15.600133],[46.475127,-15.513523],[46.674702,-15.381851],[46.882028,-15.229561],[46.942282,-15.219071],[46.993235,-15.243152],[47.032303,-15.422676],[47.027445,-15.452235],[47.060518,-15.456369],[47.099172,-15.434148],[47.133382,-15.361749],[47.135139,-15.301598],[47.107337,-15.243875],[47.093798,-15.195041],[47.092557,-15.150083],[47.197667,-15.044043],[47.280453,-14.942653],[47.318693,-14.821782],[47.351973,-14.766075],[47.4391,-14.70334],[47.464731,-14.713262],[47.485092,-14.764318],[47.496357,-14.81832],[47.474033,-14.87196],[47.442097,-14.92498],[47.429178,-14.995725],[47.478374,-15.009419],[47.524676,-14.992211],[47.592579,-14.864312],[47.66999,-14.743286],[47.715982,-14.680344],[47.774066,-14.636677],[47.870391,-14.645514],[47.964132,-14.672541],[47.81148,-14.544848],[47.773343,-14.369872],[47.95514,-14.067306],[47.956897,-14.004313],[47.983149,-13.984883],[47.995551,-13.96044],[47.901397,-13.858172],[47.88362,-13.807477],[47.896023,-13.730634],[47.940981,-13.662422],[47.981805,-13.614621],[48.03989,-13.596276],[48.085882,-13.622527],[48.187168,-13.706502],[48.255277,-13.719317],[48.337753,-13.638702],[48.405035,-13.537985],[48.506425,-13.468738],[48.621353,-13.426002],[48.796433,-13.267459],[48.910328,-12.935851],[48.919423,-12.839009],[48.894205,-12.721704],[48.853794,-12.610134],[48.786304,-12.470866],[48.803874,-12.440016],[48.899579,-12.458464],[48.931722,-12.439085],[49.035695,-12.315785],[49.207054,-12.079624],[49.263484,-12.080193],[49.31206,-12.123911],[49.330147,-12.188661],[49.363943,-12.236307],[49.479802,-12.348393],[49.5383,-12.432161]]]]},"type":"Feature","properties":{"ISO_A2":"MG","NAME":"Madagascar"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[73.416584,3.231224],[73.395293,3.229416],[73.382064,3.246495],[73.384906,3.271403],[73.401546,3.288792],[73.427746,3.289825],[73.442732,3.274297],[73.434981,3.250164],[73.416584,3.231224]]],[[[73.512237,4.164526],[73.494822,4.155199],[73.478647,4.15892],[73.473066,4.170728],[73.481128,4.188117],[73.49477,4.210441],[73.504124,4.234626],[73.517818,4.247648],[73.52836,4.243307],[73.52712,4.229665],[73.522159,4.211061],[73.519058,4.186877],[73.512237,4.164526]]]]},"type":"Feature","properties":{"ISO_A2":"MV","NAME":"Maldives"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-91.683701,18.677362],[-91.796148,18.654211],[-91.816096,18.675863],[-91.589133,18.778027],[-91.550298,18.773661],[-91.536733,18.759992],[-91.654245,18.711468],[-91.683701,18.677362]]],[[[-110.914439,18.74144],[-110.974823,18.720356],[-111.063655,18.781645],[-111.039935,18.830117],[-110.989421,18.863138],[-110.942112,18.801721],[-110.914439,18.74144]]],[[[-86.939649,20.303309],[-86.991403,20.272148],[-87.019437,20.382322],[-86.977993,20.489809],[-86.927841,20.551511],[-86.828571,20.558797],[-86.763277,20.579054],[-86.755009,20.551769],[-86.808778,20.468467],[-86.939649,20.303309]]],[[[-86.714004,21.239324],[-86.696305,21.191032],[-86.713642,21.196794],[-86.73638,21.233304],[-86.75289,21.278805],[-86.739041,21.279968],[-86.726923,21.26431],[-86.714004,21.239324]]],[[[-106.502253,21.610826],[-106.531373,21.528505],[-106.607027,21.561475],[-106.634183,21.613151],[-106.639377,21.697849],[-106.59739,21.712163],[-106.536412,21.676352],[-106.523828,21.652322],[-106.502253,21.610826]]],[[[-109.805101,24.151058],[-109.826753,24.14757],[-109.877939,24.200642],[-109.90047,24.330918],[-109.890315,24.344819],[-109.793784,24.183382],[-109.795618,24.16359],[-109.805101,24.151058]]],[[[-111.698861,24.393602],[-111.712297,24.34637],[-112.013287,24.533387],[-111.940862,24.551112],[-111.85681,24.537986],[-111.698861,24.393602]]],[[[-110.567406,25.003487],[-110.53888,24.891556],[-110.590195,24.908041],[-110.6574,24.968864],[-110.703444,25.046637],[-110.699284,25.081441],[-110.690215,25.087823],[-110.595234,25.042141],[-110.567406,25.003487]]],[[[-112.057263,24.545686],[-112.077365,24.534575],[-112.16289,24.650279],[-112.175473,24.729576],[-112.21051,24.76314],[-112.296758,24.78965],[-112.222318,24.951139],[-112.159427,25.285666],[-112.131677,25.224352],[-112.198391,24.885458],[-112.195007,24.841068],[-112.163794,24.799649],[-112.13023,24.729576],[-112.126251,24.653999],[-112.067469,24.583642],[-112.057263,24.545686]]],[[[-111.100267,26.020583],[-111.087762,25.984512],[-111.094454,25.974074],[-111.135252,25.999189],[-111.204499,25.849714],[-111.224678,25.835891],[-111.182924,26.040633],[-111.139283,26.06983],[-111.090862,26.07567],[-111.100267,26.020583]]],[[[-115.170587,28.069398],[-115.184282,28.037255],[-115.352953,28.10397],[-115.260401,28.220552],[-115.273992,28.342766],[-115.233555,28.368372],[-115.196994,28.327884],[-115.148521,28.172105],[-115.170587,28.069398]]],[[[-118.242751,28.941929],[-118.285513,28.903766],[-118.40008,29.11228],[-118.401346,29.162742],[-118.367808,29.187573],[-118.312308,29.18287],[-118.312075,29.130522],[-118.265515,29.086442],[-118.24735,29.04337],[-118.242751,28.941929]]],[[[-112.203094,29.00531],[-112.278438,28.769355],[-112.355281,28.773128],[-112.514083,28.847593],[-112.531007,28.893999],[-112.469848,29.167729],[-112.423546,29.203644],[-112.285053,29.240412],[-112.263426,29.206771],[-112.24875,29.125974],[-112.203094,29.00531]]],[[[-113.15562,29.052232],[-113.162777,29.034766],[-113.264761,29.096726],[-113.496323,29.307643],[-113.580607,29.413218],[-113.594404,29.462698],[-113.587221,29.573027],[-113.50795,29.559901],[-113.415914,29.485927],[-113.375813,29.417481],[-113.373849,29.338933],[-113.202155,29.301829],[-113.177944,29.131917],[-113.15562,29.052232]]],[[[-114.694156,31.705636],[-114.727255,31.701373],[-114.789215,31.747416],[-114.78459,31.789791],[-114.771077,31.79408],[-114.709065,31.756873],[-114.687929,31.724214],[-114.694156,31.705636]]],[[[-112.938966,31.916269],[-112.464732,31.768242],[-111.990471,31.620241],[-111.516211,31.472239],[-111.041976,31.324212],[-110.688535,31.324858],[-110.335094,31.32553],[-109.981653,31.32615],[-109.628212,31.326822],[-109.274771,31.327468],[-108.921331,31.328114],[-108.56789,31.328786],[-108.214449,31.329432],[-108.213803,31.441905],[-108.213157,31.554379],[-108.212485,31.666853],[-108.211839,31.779327],[-107.992033,31.778164],[-107.772202,31.777027],[-107.55237,31.77589],[-107.332539,31.774753],[-107.112707,31.773616],[-106.892876,31.77248],[-106.673044,31.771343],[-106.453212,31.77018],[-106.445383,31.768397],[-106.43603,31.76447],[-106.346966,31.678997],[-106.255705,31.544664],[-106.148063,31.450923],[-106.024091,31.397774],[-105.812709,31.241039],[-105.513993,30.980771],[-105.275817,30.807267],[-105.098153,30.720554],[-104.978832,30.645933],[-104.917854,30.583353],[-104.835895,30.447651],[-104.681331,30.134362],[-104.681331,29.990521],[-104.622213,29.854276],[-104.503977,29.677672],[-104.400625,29.573751],[-104.312206,29.542435],[-104.21552,29.479906],[-104.110616,29.386114],[-103.989745,29.323172],[-103.852906,29.291081],[-103.663977,29.2069],[-103.422932,29.070681],[-103.257697,29.001124],[-103.168297,28.998179],[-103.090007,29.041871],[-103.022828,29.132201],[-102.956811,29.190363],[-102.892009,29.216382],[-102.865679,29.258034],[-102.877823,29.315317],[-102.834002,29.443965],[-102.734189,29.643953],[-102.614945,29.752344],[-102.476246,29.769088],[-102.385657,29.806656],[-102.343076,29.864973],[-102.26892,29.871174],[-102.163087,29.82526],[-101.990901,29.795701],[-101.752337,29.782472],[-101.611596,29.786968],[-101.568704,29.80924],[-101.54638,29.808078],[-101.544623,29.783531],[-101.509302,29.773118],[-101.440392,29.776839],[-101.380344,29.742552],[-101.303527,29.634083],[-101.038969,29.460398],[-101.038633,29.460295],[-101.016335,29.400661],[-100.924144,29.314697],[-100.754594,29.182508],[-100.658631,29.068536],[-100.636307,28.972805],[-100.549697,28.821342],[-100.398905,28.614223],[-100.331726,28.50255],[-100.348159,28.486427],[-100.336273,28.428136],[-100.296043,28.327677],[-100.221267,28.242617],[-100.111946,28.172958],[-100.00141,28.047849],[-99.889634,27.867292],[-99.754267,27.729936],[-99.595311,27.635885],[-99.505316,27.548345],[-99.484258,27.467394],[-99.485834,27.398044],[-99.51007,27.340321],[-99.499813,27.285518],[-99.455138,27.233713],[-99.440256,27.170125],[-99.457722,27.081706],[-99.456534,27.056669],[-99.456508,27.056618],[-99.443537,27.03667],[-99.30246,26.884716],[-99.229932,26.761933],[-99.172365,26.565924],[-99.172081,26.564141],[-99.107769,26.446913],[-99.015269,26.398957],[-98.87321,26.381232],[-98.765232,26.340408],[-98.691412,26.276458],[-98.598291,26.237856],[-98.485869,26.224575],[-98.378124,26.182356],[-98.275029,26.111197],[-98.082793,26.06443],[-97.801415,26.042054],[-97.587242,25.984202],[-97.440274,25.890823],[-97.375627,25.871806],[-97.35816,25.870514],[-97.349737,25.884777],[-97.338653,25.911184],[-97.281783,25.941621],[-97.146235,25.961465],[-97.164451,25.754914],[-97.224913,25.585467],[-97.424074,25.233085],[-97.507066,25.014546],[-97.667651,24.389984],[-97.717027,23.980604],[-97.728603,23.787954],[-97.742659,23.760669],[-97.727388,23.732247],[-97.765862,23.306175],[-97.745191,22.942373],[-97.758368,22.886045],[-97.816711,22.77631],[-97.857794,22.624511],[-97.841619,22.557099],[-97.842498,22.510306],[-97.782372,22.279312],[-97.763278,22.105834],[-97.584787,21.80854],[-97.484509,21.704825],[-97.36015,21.61496],[-97.314494,21.564214],[-97.33687,21.437917],[-97.387564,21.373941],[-97.409191,21.272552],[-97.434151,21.356475],[-97.424435,21.465331],[-97.3848,21.523803],[-97.38343,21.566694],[-97.456578,21.612376],[-97.590394,21.762031],[-97.753795,22.026666],[-97.637549,21.603643],[-97.597603,21.535895],[-97.566546,21.507706],[-97.514533,21.477992],[-97.501097,21.432025],[-97.500606,21.398022],[-97.357153,21.103983],[-97.194992,20.800074],[-97.18631,20.71703],[-97.121456,20.614969],[-96.708691,20.188277],[-96.456071,19.869795],[-96.368376,19.56723],[-96.315356,19.472869],[-96.289543,19.343729],[-96.123972,19.199087],[-96.073381,19.105656],[-95.984678,19.053773],[-95.913055,18.897193],[-95.778128,18.805519],[-95.810374,18.803865],[-95.928196,18.85009],[-95.920341,18.819575],[-95.821071,18.754644],[-95.626819,18.690591],[-95.578295,18.690436],[-95.654931,18.723664],[-95.719837,18.768364],[-95.697099,18.774927],[-95.561448,18.719116],[-95.181833,18.700719],[-95.014712,18.570598],[-94.798136,18.514581],[-94.681631,18.348493],[-94.546213,18.17486],[-94.459784,18.166643],[-94.392269,18.165972],[-94.189026,18.195272],[-93.873128,18.304464],[-93.7644,18.357898],[-93.55232,18.430452],[-93.227947,18.443784],[-93.127333,18.423449],[-92.884764,18.46864],[-92.769112,18.524141],[-92.72896,18.574525],[-92.710124,18.611681],[-92.485305,18.664804],[-92.441019,18.675295],[-92.213177,18.684855],[-92.10321,18.704388],[-91.97376,18.715886],[-91.880381,18.637777],[-91.880484,18.59964],[-91.942651,18.563415],[-91.913557,18.528533],[-91.802996,18.47063],[-91.5997,18.447195],[-91.533968,18.456548],[-91.44046,18.541866],[-91.27525,18.624445],[-91.278764,18.720666],[-91.308323,18.773273],[-91.356279,18.77658],[-91.367751,18.806088],[-91.334213,18.876807],[-91.343049,18.900604],[-91.445576,18.832804],[-91.469192,18.832985],[-91.457875,18.864663],[-91.436661,18.889803],[-91.13593,19.037495],[-91.058932,19.098214],[-90.955011,19.151648],[-90.739262,19.352256],[-90.693167,19.729855],[-90.65012,19.79595],[-90.50708,19.91186],[-90.49168,19.946793],[-90.48243,20.025729],[-90.486358,20.224037],[-90.478296,20.379997],[-90.48411,20.556368],[-90.458452,20.713723],[-90.435172,20.757545],[-90.353136,21.009416],[-90.182914,21.120882],[-89.887634,21.252657],[-89.819783,21.274619],[-88.87873,21.414094],[-88.746696,21.448149],[-88.584923,21.538686],[-88.466713,21.569381],[-88.251042,21.566901],[-88.184793,21.578942],[-88.171744,21.591447],[-88.171383,21.60354],[-88.131643,21.61589],[-88.006819,21.604056],[-87.773732,21.549486],[-87.688828,21.535843],[-87.480443,21.472436],[-87.250896,21.44696],[-87.217927,21.457993],[-87.187618,21.477294],[-87.164286,21.514191],[-87.188264,21.546437],[-87.210589,21.543957],[-87.249449,21.526593],[-87.295751,21.52494],[-87.386676,21.551476],[-87.368512,21.573722],[-87.275753,21.571629],[-87.216454,21.582404],[-87.128449,21.621471],[-87.034759,21.592248],[-86.911692,21.462825],[-86.824075,21.42169],[-86.817073,21.234208],[-86.803843,21.20005],[-86.771752,21.150544],[-86.815522,21.005204],[-86.864718,20.885082],[-86.926213,20.786483],[-87.05959,20.631247],[-87.22126,20.507276],[-87.421403,20.231375],[-87.467162,20.102132],[-87.465844,19.998521],[-87.431945,19.898476],[-87.441737,19.861501],[-87.466232,19.824165],[-87.506875,19.827498],[-87.585811,19.779465],[-87.687691,19.637122],[-87.690068,19.593714],[-87.645317,19.553923],[-87.587284,19.572992],[-87.511681,19.574723],[-87.469384,19.586453],[-87.424762,19.583353],[-87.434735,19.501704],[-87.482665,19.443723],[-87.512896,19.425585],[-87.567001,19.41574],[-87.627514,19.382693],[-87.658675,19.352359],[-87.655781,19.257843],[-87.622088,19.250505],[-87.5508,19.320966],[-87.509459,19.317503],[-87.501062,19.287815],[-87.593537,19.046383],[-87.653016,18.798543],[-87.733554,18.655037],[-87.761821,18.446161],[-87.804092,18.357071],[-87.853237,18.268989],[-87.881969,18.273872],[-87.95969,18.44089],[-88.039065,18.483885],[-88.056454,18.524451],[-88.011108,18.726868],[-88.031727,18.838902],[-88.073792,18.834458],[-88.12676,18.773066],[-88.196782,18.719659],[-88.195309,18.642635],[-88.275743,18.514555],[-88.295664,18.472413],[-88.37243,18.482309],[-88.461262,18.476779],[-88.522989,18.445903],[-88.586189,18.290512],[-88.743596,18.071636],[-88.806331,17.965519],[-88.857387,17.928828],[-88.897824,17.91454],[-88.942628,17.939629],[-89.050425,17.999729],[-89.133546,17.97079],[-89.162356,17.901957],[-89.161477,17.81483],[-89.371542,17.815011],[-89.728833,17.815347],[-90.183585,17.815709],[-90.622034,17.816122],[-90.989143,17.816432],[-90.990435,17.620734],[-90.991624,17.447462],[-90.992967,17.252436],[-91.195513,17.254089],[-91.409635,17.255872],[-91.392323,17.236416],[-91.319201,17.199777],[-91.224168,17.112263],[-91.111875,16.976199],[-90.975811,16.867808],[-90.816027,16.787089],[-90.710711,16.708128],[-90.659965,16.630923],[-90.634385,16.565139],[-90.634075,16.510724],[-90.575784,16.467832],[-90.471087,16.439565],[-90.416982,16.390989],[-90.416982,16.351302],[-90.450132,16.261385],[-90.459873,16.162373],[-90.447161,16.072689],[-90.521988,16.071216],[-90.703244,16.071061],[-90.979583,16.070828],[-91.23378,16.070647],[-91.433974,16.070441],[-91.736591,16.070182],[-91.819429,15.932361],[-91.95725,15.703228],[-92.082152,15.495566],[-92.187158,15.3209],[-92.204263,15.275011],[-92.204341,15.237675],[-92.074788,15.074222],[-92.09874,15.026732],[-92.144215,15.001927],[-92.158555,14.963557],[-92.155661,14.901313],[-92.186383,14.818372],[-92.176461,14.761322],[-92.159925,14.691042],[-92.187055,14.630089],[-92.209043,14.571023],[-92.23514,14.545392],[-92.264544,14.567793],[-92.530961,14.839663],[-92.808929,15.138585],[-92.918406,15.23615],[-93.02442,15.31028],[-93.166917,15.44805],[-93.541158,15.750408],[-93.734351,15.888488],[-93.916045,16.053568],[-94.078955,16.145268],[-94.239875,16.205058],[-94.311292,16.239371],[-94.374182,16.284743],[-94.409038,16.287352],[-94.426401,16.226245],[-94.370177,16.19542],[-94.302817,16.169349],[-94.249513,16.167515],[-94.193418,16.145578],[-94.028338,16.062043],[-94.001285,16.018971],[-94.47074,16.186558],[-94.661503,16.201905],[-94.682277,16.228235],[-94.587115,16.3158],[-94.616829,16.347555],[-94.650755,16.351819],[-94.752816,16.291228],[-94.790798,16.287172],[-94.797438,16.327066],[-94.792916,16.364583],[-94.858675,16.419722],[-94.900429,16.417499],[-94.934717,16.379104],[-95.023523,16.306266],[-95.020835,16.277637],[-94.84604,16.24658],[-94.785811,16.229087],[-94.799428,16.209657],[-94.949341,16.210019],[-95.134368,16.176946],[-95.4644,15.974684],[-95.771771,15.887816],[-96.213553,15.693048],[-96.408658,15.683126],[-96.510848,15.651913],[-96.807961,15.726431],[-97.184683,15.909262],[-97.754803,15.966829],[-98.138965,16.206298],[-98.520286,16.304845],[-98.762183,16.534753],[-98.907962,16.544572],[-99.001678,16.581469],[-99.348039,16.664771],[-99.690654,16.719652],[-100.024509,16.920518],[-100.242997,16.984183],[-100.4319,17.064075],[-100.847792,17.200501],[-101.001943,17.276103],[-101.147826,17.393099],[-101.385486,17.514228],[-101.487081,17.615359],[-101.600305,17.651584],[-101.762413,17.842012],[-101.847059,17.922266],[-101.918709,17.959783],[-101.9955,17.972702],[-102.216598,17.957406],[-102.546991,18.041431],[-102.699566,18.062825],[-103.018487,18.186849],[-103.441587,18.325368],[-103.580261,18.484402],[-103.698936,18.632972],[-103.912463,18.828463],[-104.045633,18.911818],[-104.276989,19.010985],[-104.405198,19.091186],[-104.602964,19.152888],[-104.938499,19.309364],[-105.045236,19.443258],[-105.107687,19.562217],[-105.286384,19.706498],[-105.482083,19.976094],[-105.532442,20.075364],[-105.570398,20.22781],[-105.615899,20.316331],[-105.66941,20.385578],[-105.642151,20.435988],[-105.542596,20.497922],[-105.377077,20.511875],[-105.260133,20.579054],[-105.244682,20.634167],[-105.252304,20.668506],[-105.327054,20.752971],[-105.420097,20.775399],[-105.492367,20.776613],[-105.510867,20.808756],[-105.456322,20.843818],[-105.393975,20.926113],[-105.301939,21.026572],[-105.237059,21.119176],[-105.224993,21.249711],[-105.233261,21.380401],[-105.208715,21.490833],[-105.43144,21.618267],[-105.457408,21.672476],[-105.527455,21.818462],[-105.649127,21.988064],[-105.645484,22.326906],[-105.79178,22.627508],[-105.943347,22.777008],[-106.021714,22.829046],[-106.234544,23.060918],[-106.402234,23.195587],[-106.566487,23.449473],[-106.728777,23.610704],[-106.935483,23.88123],[-107.084853,24.016105],[-107.764941,24.471917],[-107.726597,24.471917],[-107.527255,24.360038],[-107.493692,24.369366],[-107.488912,24.423988],[-107.511908,24.489177],[-107.548882,24.504758],[-107.602005,24.490133],[-107.673681,24.503569],[-107.709518,24.525041],[-107.816695,24.539019],[-107.951183,24.614906],[-108.008802,24.693532],[-108.015107,24.783423],[-108.207653,24.974807],[-108.280775,25.081518],[-108.24331,25.073664],[-108.192047,25.030669],[-108.140086,25.018396],[-108.079651,25.01806],[-108.0357,25.035346],[-108.051487,25.067049],[-108.092828,25.093507],[-108.37369,25.194328],[-108.466242,25.265125],[-108.696409,25.382895],[-108.750979,25.424237],[-108.787256,25.538028],[-108.843583,25.543299],[-108.893141,25.51157],[-109.028792,25.480461],[-109.063467,25.516686],[-109.068479,25.551567],[-108.972774,25.588464],[-108.884873,25.696055],[-108.886578,25.733468],[-108.93518,25.690293],[-109.008354,25.642001],[-109.084085,25.615026],[-109.196482,25.592547],[-109.253972,25.608773],[-109.304279,25.633139],[-109.384946,25.727164],[-109.425615,26.032572],[-109.354146,26.138482],[-109.270637,26.243127],[-109.199686,26.305216],[-109.15881,26.258346],[-109.116719,26.252739],[-109.146356,26.305733],[-109.216015,26.355291],[-109.240639,26.404668],[-109.243275,26.449962],[-109.276244,26.533885],[-109.482872,26.71036],[-109.676091,26.69682],[-109.754768,26.702918],[-109.828355,26.770123],[-109.890935,26.883424],[-109.921735,26.978173],[-109.925636,27.028661],[-109.944007,27.079355],[-110.277165,27.162218],[-110.377314,27.233273],[-110.477773,27.322648],[-110.519373,27.395589],[-110.560636,27.450159],[-110.592701,27.544314],[-110.615465,27.65392],[-110.578258,27.795642],[-110.529889,27.864217],[-110.759022,27.915196],[-110.848629,27.917573],[-110.920795,27.888892],[-110.986088,27.92597],[-111.121403,27.966975],[-111.282427,28.115261],[-111.471692,28.384004],[-111.680051,28.470536],[-111.74723,28.563942],[-111.832445,28.648122],[-111.90704,28.752509],[-111.918615,28.797907],[-111.94081,28.823176],[-112.044887,28.895885],[-112.161779,29.018901],[-112.192035,29.117965],[-112.223506,29.26948],[-112.301408,29.322913],[-112.3782,29.347718],[-112.393212,29.419703],[-112.38869,29.460088],[-112.414528,29.53644],[-112.572916,29.71953],[-112.653118,29.870063],[-112.697147,29.916831],[-112.738384,29.985457],[-112.759236,30.125681],[-112.824787,30.30014],[-112.951756,30.510024],[-113.057667,30.651023],[-113.110429,30.793315],[-113.086994,30.93806],[-113.105003,31.027202],[-113.118594,31.048105],[-113.107948,31.077302],[-113.072783,31.060895],[-113.042939,31.087018],[-113.046712,31.179234],[-113.083635,31.207191],[-113.186161,31.236052],[-113.231429,31.255974],[-113.480794,31.293594],[-113.623498,31.345891],[-113.633007,31.467614],[-113.699954,31.523322],[-113.759407,31.557764],[-113.947742,31.629362],[-113.977508,31.592723],[-114.0027,31.52513],[-114.080912,31.510377],[-114.149306,31.507379],[-114.264079,31.554457],[-114.548661,31.733541],[-114.608813,31.762273],[-114.697619,31.777415],[-114.741311,31.806483],[-114.933599,31.90074],[-114.895049,31.850614],[-114.839496,31.798524],[-114.789887,31.647113],[-114.848152,31.53792],[-114.881871,31.156393],[-114.844664,31.08048],[-114.761052,30.958757],[-114.703381,30.765203],[-114.685449,30.62118],[-114.633307,30.506872],[-114.649766,30.238155],[-114.629923,30.156299],[-114.550496,30.02225],[-114.403399,29.89647],[-114.3726,29.830221],[-114.179227,29.734309],[-114.061921,29.609511],[-113.828938,29.439444],[-113.755454,29.367458],[-113.545312,29.102255],[-113.538491,29.023371],[-113.499733,28.92671],[-113.381833,28.946657],[-113.328917,28.87307],[-113.335015,28.839067],[-113.320726,28.813151],[-113.258869,28.818836],[-113.205591,28.798785],[-113.09366,28.511748],[-113.033586,28.472603],[-112.95664,28.455886],[-112.870831,28.424208],[-112.865224,28.350621],[-112.868454,28.291968],[-112.795694,28.207116],[-112.80807,28.092187],[-112.74934,27.994881],[-112.758228,27.900623],[-112.734044,27.82595],[-112.552633,27.657485],[-112.32921,27.523437],[-112.282598,27.347478],[-112.191441,27.186661],[-112.098165,27.145966],[-112.003959,27.079097],[-112.015586,27.009721],[-112.009075,26.967088],[-111.883139,26.840171],[-111.86265,26.678527],[-111.754,26.572694],[-111.723408,26.564425],[-111.69943,26.580962],[-111.77852,26.68726],[-111.816839,26.756248],[-111.821799,26.865105],[-111.795264,26.879703],[-111.56967,26.707621],[-111.545899,26.579205],[-111.470167,26.506651],[-111.464509,26.408466],[-111.418517,26.349968],[-111.404564,26.265064],[-111.332114,26.125434],[-111.330357,25.931337],[-111.291625,25.789796],[-111.149541,25.5726],[-111.034406,25.526969],[-111.013606,25.420309],[-110.893949,25.144254],[-110.755637,24.994599],[-110.686778,24.867681],[-110.67727,24.788513],[-110.729024,24.671518],[-110.734527,24.589869],[-110.659338,24.34146],[-110.546994,24.214181],[-110.421472,24.183382],[-110.399664,24.165114],[-110.409638,24.130982],[-110.367418,24.100467],[-110.319953,24.139457],[-110.296828,24.19488],[-110.320883,24.259191],[-110.325095,24.305959],[-110.303753,24.339445],[-110.262877,24.344509],[-110.022788,24.174597],[-109.982532,24.109356],[-109.893183,24.033004],[-109.811302,23.939004],[-109.775981,23.8649],[-109.710533,23.803819],[-109.676556,23.661553],[-109.509615,23.597888],[-109.420861,23.480117],[-109.414995,23.405548],[-109.458068,23.214759],[-109.495688,23.159827],[-109.63046,23.078643],[-109.728413,22.981853],[-109.823033,22.922167],[-109.923414,22.88589],[-110.006277,22.894055],[-110.08604,23.005469],[-110.180608,23.341521],[-110.244092,23.412266],[-110.288766,23.517686],[-110.362715,23.604916],[-110.62996,23.737311],[-110.764913,23.876992],[-110.895551,23.970268],[-111.036163,24.105247],[-111.419318,24.329006],[-111.578223,24.443004],[-111.682893,24.555814],[-111.750383,24.55416],[-111.802473,24.542533],[-111.822265,24.57341],[-111.825184,24.631804],[-111.848258,24.670071],[-112.072534,24.840034],[-112.119042,24.934034],[-112.128499,25.043123],[-112.07796,25.323984],[-112.055739,25.488212],[-112.069872,25.572832],[-112.093333,25.584382],[-112.114598,25.630374],[-112.119766,25.765508],[-112.173819,25.912579],[-112.377269,26.21393],[-112.526072,26.273487],[-112.658415,26.31674],[-113.020744,26.583261],[-113.119266,26.716509],[-113.143192,26.792163],[-113.155827,26.946237],[-113.205746,26.856966],[-113.272254,26.790975],[-113.425862,26.795781],[-113.598539,26.721315],[-113.701245,26.791337],[-113.756617,26.870841],[-113.840979,26.96652],[-113.935934,26.985278],[-113.996473,26.987707],[-114.110032,27.105943],[-114.201835,27.143511],[-114.333377,27.158033],[-114.445257,27.218158],[-114.479699,27.283606],[-114.498277,27.37621],[-114.539876,27.431091],[-114.715602,27.53956],[-114.85872,27.659191],[-114.993492,27.736033],[-115.03318,27.798872],[-115.036487,27.841867],[-114.823554,27.82993],[-114.57003,27.783937],[-114.448487,27.796857],[-114.372703,27.841195],[-114.300563,27.873002],[-114.289039,27.838559],[-114.302268,27.775721],[-114.232686,27.718102],[-114.137214,27.671438],[-114.069337,27.675675],[-114.135043,27.726628],[-114.175377,27.83055],[-114.157342,27.867963],[-114.158401,27.919666],[-114.252659,27.908013],[-114.265888,27.934471],[-114.185273,28.013277],[-114.09272,28.221353],[-114.048485,28.426146],[-114.145482,28.605438],[-114.309245,28.729926],[-114.664003,29.094581],[-114.875928,29.281882],[-114.93732,29.351594],[-114.993518,29.384408],[-115.16635,29.427222],[-115.311173,29.531944],[-115.565292,29.680049],[-115.673812,29.756375],[-115.748692,29.935744],[-115.808326,29.960187],[-115.789542,30.084185],[-115.815638,30.303629],[-115.858194,30.359827],[-115.995808,30.414475],[-116.028571,30.563561],[-116.035341,30.705465],[-116.062161,30.804167],[-116.296281,30.970487],[-116.309613,31.050973],[-116.309665,31.127325],[-116.333462,31.202799],[-116.458519,31.361006],[-116.609543,31.49906],[-116.66215,31.564895],[-116.66848,31.698608],[-116.722043,31.734549],[-116.701708,31.743644],[-116.652099,31.740337],[-116.623884,31.757984],[-116.620809,31.851079],[-116.847978,31.997375],[-116.913659,32.198552],[-117.034763,32.305031],[-117.063133,32.343607],[-117.128271,32.533363],[-116.842113,32.554783],[-116.555955,32.576203],[-116.269823,32.597623],[-115.983664,32.619043],[-115.697506,32.640463],[-115.411374,32.661883],[-115.125215,32.683303],[-114.839057,32.704722],[-114.724775,32.715342],[-114.788001,32.564808],[-114.835957,32.508326],[-114.361722,32.360299],[-113.887462,32.212298],[-113.413201,32.064296],[-112.938966,31.916269]]]]},"type":"Feature","properties":{"ISO_A2":"MX","NAME":"Mexico"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.635052,5.830084],[169.615415,5.799801],[169.590507,5.80192],[169.612211,5.824399],[169.627094,5.855819],[169.651071,5.945115],[169.700371,5.977051],[169.734581,6.014155],[169.726312,5.975708],[169.672569,5.935194],[169.635052,5.830084]]],[[[171.577362,7.048252],[171.614776,7.0266],[171.688363,7.028253],[171.756783,6.973166],[171.730428,6.976629],[171.693324,7.000142],[171.659424,7.010063],[171.614156,7.00717],[171.592762,7.016265],[171.577362,7.048252]]],[[[171.101939,7.138221],[171.226996,7.086958],[171.393704,7.110936],[171.366936,7.095536],[171.304717,7.08117],[171.263273,7.068768],[171.235367,7.068768],[171.202295,7.073522],[171.095531,7.109282],[171.03569,7.156101],[171.050366,7.171759],[171.101939,7.138221]]],[[[168.830243,7.30896],[168.815463,7.29356],[168.719242,7.302759],[168.67511,7.321931],[168.679348,7.336245],[168.755519,7.322473],[168.830243,7.30896]]],[[[166.89031,11.153066],[166.86442,11.146219],[166.844731,11.153376],[166.85889,11.166295],[166.888139,11.168647],[166.899353,11.165055],[166.89031,11.153066]]]]},"type":"Feature","properties":{"ISO_A2":"MH","NAME":"Marshall Is."}},{"geometry":{"type":"Polygon","coordinates":[[[22.344042,42.313955],[22.498245,42.165101],[22.582736,42.10482],[22.682316,42.059138],[22.796056,42.025704],[22.836777,41.993613],[22.909176,41.835199],[22.943954,41.775099],[22.991961,41.757193],[23.00364,41.73983],[23.005656,41.716963],[22.951499,41.605626],[22.929691,41.356081],[22.915997,41.336289],[22.859256,41.337374],[22.78386,41.331999],[22.755128,41.312724],[22.724794,41.17852],[22.603613,41.140202],[22.493542,41.118524],[22.400783,41.123407],[22.237692,41.155163],[22.184465,41.158625],[22.138835,41.140538],[21.993314,41.130978],[21.929442,41.107414],[21.779477,40.950446],[21.627497,40.896315],[21.575769,40.868927],[21.459703,40.903602],[21.404151,40.907193],[21.323691,40.867144],[21.147578,40.863139],[21.100035,40.856163],[20.964281,40.84991],[20.958545,40.871511],[20.933482,40.903137],[20.870179,40.917916],[20.740781,40.905255],[20.70931,40.928355],[20.656032,41.06168],[20.614484,41.083074],[20.567872,41.127826],[20.488962,41.272623],[20.48705,41.336082],[20.492424,41.391427],[20.448602,41.521264],[20.475577,41.554105],[20.516195,41.574775],[20.516609,41.627072],[20.505136,41.706499],[20.553144,41.862355],[20.566166,41.873698],[20.578517,41.86623],[20.694892,41.853802],[20.724968,41.873517],[20.744192,41.904316],[20.750393,42.018366],[20.778091,42.071024],[21.059728,42.171276],[21.142513,42.174997],[21.206075,42.128953],[21.256305,42.099498],[21.286639,42.100402],[21.297543,42.13009],[21.331701,42.187167],[21.389527,42.219801],[21.560834,42.24768],[21.562488,42.247525],[21.618247,42.242125],[21.739273,42.267705],[21.814617,42.303103],[21.853064,42.308374],[21.904121,42.322068],[21.977501,42.320053],[22.052019,42.304653],[22.14669,42.325014],[22.239707,42.358138],[22.27707,42.349844],[22.317429,42.321706],[22.344042,42.313955]]]},"type":"Feature","properties":{"ISO_A2":"MK","NAME":"Macedonia"}},{"geometry":{"type":"Polygon","coordinates":[[[4.227629,19.14276],[4.228197,18.968041],[4.229024,18.704362],[4.230006,18.410608],[4.230884,18.139462],[4.231918,17.830514],[4.232745,17.582183],[4.233675,17.288428],[4.234657,16.996379],[4.202979,16.962712],[4.191197,16.7982],[4.182153,16.581779],[4.121279,16.35771],[4.014877,16.192733],[3.976223,16.035559],[3.947077,15.945642],[3.907183,15.896808],[3.897985,15.838],[3.876901,15.755292],[3.843001,15.701703],[3.816543,15.674031],[3.709572,15.641681],[3.52054,15.483086],[3.504262,15.356324],[3.289081,15.391102],[3.060103,15.427198],[3.029407,15.424847],[3.010494,15.40831],[3.001037,15.34095],[2.689686,15.329891],[2.420814,15.320383],[2.088173,15.30935],[1.859401,15.301728],[1.569135,15.286457],[1.30021,15.272272],[1.121307,15.126105],[0.960076,14.986941],[0.947415,14.982109],[0.718644,14.954901],[0.433028,14.979008],[0.286241,14.980197],[0.2287,14.963686],[0.217486,14.911493],[0.007318,14.984822],[-0.235872,15.059417],[-0.405422,15.012521],[-0.432294,15.02854],[-0.454463,15.05965],[-0.536551,15.077866],[-0.666465,15.069778],[-0.760439,15.047764],[-0.907975,14.937409],[-1.019183,14.841342],[-1.049569,14.819509],[-1.20496,14.761528],[-1.493676,14.626058],[-1.657335,14.526788],[-1.695059,14.508469],[-1.767794,14.486041],[-1.879776,14.481494],[-1.973026,14.456534],[-2.057156,14.194638],[-2.113225,14.168438],[-2.457235,14.274116],[-2.526894,14.258303],[-2.586736,14.227581],[-2.778843,14.073715],[-2.873953,13.950725],[-2.925888,13.786756],[-2.918499,13.736371],[-2.917103,13.679475],[-2.950848,13.648444],[-2.997228,13.637101],[-3.038698,13.63909],[-3.19843,13.672861],[-3.248608,13.65834],[-3.270182,13.577466],[-3.266746,13.400759],[-3.301731,13.28074],[-3.396712,13.243714],[-3.469938,13.196404],[-3.527609,13.18271],[-3.575771,13.194208],[-3.85348,13.373551],[-3.947299,13.40218],[-4.051194,13.382439],[-4.151033,13.306217],[-4.196198,13.256168],[-4.258675,13.197334],[-4.328697,13.119045],[-4.310248,13.052485],[-4.260639,12.975332],[-4.22524,12.879473],[-4.227101,12.793716],[-4.480625,12.672224],[-4.459851,12.630392],[-4.421921,12.581584],[-4.421559,12.493088],[-4.428691,12.337593],[-4.479902,12.281783],[-4.546048,12.226463],[-4.586924,12.155021],[-4.627231,12.120191],[-4.699346,12.076188],[-4.79797,12.032108],[-4.968993,11.993299],[-5.10591,11.967539],[-5.157535,11.942372],[-5.230192,11.890282],[-5.288121,11.827909],[-5.301996,11.760471],[-5.29055,11.683318],[-5.270293,11.61986],[-5.244765,11.576761],[-5.229365,11.522475],[-5.250242,11.375766],[-5.299852,11.205931],[-5.347394,11.130277],[-5.424237,11.088729],[-5.490486,11.042375],[-5.468575,10.931039],[-5.457077,10.77141],[-5.475655,10.64395],[-5.479014,10.565092],[-5.507023,10.483443],[-5.523559,10.426005],[-5.556606,10.439932],[-5.694298,10.433214],[-5.84385,10.389547],[-5.896198,10.354717],[-5.907567,10.307226],[-5.940691,10.275084],[-5.988699,10.239117],[-6.034562,10.194804],[-6.117218,10.201884],[-6.196851,10.232141],[-6.238373,10.261648],[-6.241293,10.279218],[-6.21499,10.322368],[-6.19264,10.369445],[-6.190676,10.40027],[-6.21778,10.476286],[-6.239717,10.558116],[-6.230648,10.597493],[-6.250233,10.717925],[-6.261137,10.724074],[-6.365652,10.692836],[-6.404151,10.68511],[-6.425855,10.671804],[-6.432599,10.648756],[-6.407536,10.572352],[-6.423918,10.559149],[-6.482596,10.561216],[-6.564607,10.586434],[-6.654136,10.656456],[-6.676357,10.63377],[-6.686124,10.578011],[-6.691963,10.51202],[-6.669329,10.392183],[-6.693281,10.349446],[-6.7532,10.357146],[-6.83366,10.356991],[-6.903837,10.345054],[-6.950345,10.342315],[-6.979491,10.299578],[-6.991738,10.251881],[-6.963833,10.198706],[-6.968174,10.176227],[-6.989464,10.155659],[-7.017111,10.143257],[-7.039746,10.144756],[-7.10491,10.203538],[-7.182321,10.225681],[-7.363163,10.259348],[-7.385048,10.340119],[-7.414787,10.341307],[-7.456568,10.383914],[-7.497961,10.439777],[-7.532842,10.436831],[-7.562117,10.421225],[-7.661155,10.427452],[-7.749082,10.342289],[-7.81422,10.236585],[-7.884061,10.185761],[-7.96093,10.163463],[-7.990644,10.162507],[-7.974469,10.229531],[-7.985683,10.278443],[-8.007283,10.321877],[-8.231508,10.437994],[-8.266648,10.486001],[-8.301581,10.617569],[-8.324112,10.749525],[-8.321709,10.826936],[-8.306361,10.896079],[-8.312743,10.949771],[-8.337393,10.990621],[-8.404469,11.029921],[-8.474697,11.04837],[-8.563529,10.996693],[-8.606213,10.986978],[-8.646211,10.990492],[-8.666726,11.009483],[-8.66391,11.035864],[-8.567301,11.176992],[-8.520301,11.235955],[-8.463535,11.280707],[-8.425294,11.304737],[-8.400696,11.339412],[-8.398526,11.366542],[-8.407466,11.386282],[-8.470718,11.412224],[-8.568722,11.478059],[-8.621148,11.485087],[-8.664969,11.515008],[-8.711427,11.617792],[-8.733079,11.637481],[-8.779743,11.64823],[-8.822014,11.673267],[-8.82005,11.807109],[-8.818293,11.922503],[-8.913843,12.108564],[-8.950843,12.225611],[-8.998954,12.345913],[-9.043086,12.402344],[-9.120471,12.449938],[-9.215556,12.482882],[-9.300021,12.490272],[-9.365185,12.47929],[-9.395364,12.464666],[-9.393633,12.442238],[-9.340846,12.366041],[-9.331544,12.323744],[-9.340174,12.282765],[-9.358105,12.255428],[-9.405002,12.252457],[-9.486831,12.22866],[-9.58773,12.182487],[-9.658294,12.143109],[-9.71475,12.042469],[-9.754024,12.029912],[-9.820687,12.042495],[-10.010624,12.116444],[-10.1671,12.177448],[-10.274871,12.212666],[-10.339906,12.19029],[-10.372772,12.179541],[-10.465816,12.138691],[-10.589503,11.990276],[-10.61901,11.941235],[-10.643712,11.925526],[-10.677353,11.899429],[-10.709237,11.898706],[-10.734921,11.916456],[-10.743034,11.927257],[-10.806492,12.034305],[-10.876152,12.151868],[-10.933203,12.205198],[-11.004542,12.207498],[-11.065805,12.170782],[-11.129263,12.095024],[-11.209672,12.024874],[-11.260677,12.004074],[-11.30517,12.015417],[-11.414621,12.104016],[-11.492445,12.166958],[-11.502212,12.198636],[-11.474565,12.247186],[-11.447564,12.319248],[-11.418083,12.377669],[-11.389403,12.404411],[-11.382426,12.479239],[-11.448779,12.531949],[-11.450562,12.557709],[-11.444076,12.627602],[-11.414362,12.7755],[-11.417437,12.831879],[-11.390384,12.942001],[-11.433948,12.99161],[-11.444128,13.028249],[-11.492807,13.086953],[-11.548773,13.170256],[-11.561666,13.23697],[-11.581329,13.290016],[-11.634969,13.369856],[-11.67445,13.382388],[-11.758269,13.394532],[-11.772222,13.367066],[-11.803357,13.327301],[-11.831675,13.315803],[-11.877771,13.364533],[-11.895212,13.406314],[-11.894591,13.444451],[-11.957068,13.510907],[-12.05422,13.63307],[-12.044143,13.733865],[-11.984198,13.788099],[-11.96637,13.828975],[-11.960892,13.875277],[-11.9881,13.930778],[-12.020113,13.974677],[-12.011173,14.071829],[-12.019183,14.206498],[-12.068379,14.274219],[-12.112899,14.323312],[-12.175246,14.376668],[-12.228395,14.458601],[-12.20682,14.571126],[-12.186537,14.64815],[-12.280614,14.809045],[-12.104708,14.745354],[-12.081557,14.76636],[-12.02156,14.804936],[-11.940945,14.886921],[-11.872836,14.995157],[-11.842243,15.129413],[-11.828756,15.244858],[-11.798447,15.342733],[-11.760181,15.425545],[-11.675897,15.512051],[-11.596728,15.573262],[-11.502677,15.636824],[-11.455238,15.625403],[-11.365631,15.536752],[-11.169313,15.358649],[-11.00741,15.222921],[-10.948241,15.151143],[-10.895583,15.150471],[-10.815097,15.281755],[-10.731975,15.394926],[-10.696577,15.422676],[-10.586558,15.434846],[-10.493152,15.439807],[-10.411788,15.437921],[-10.262081,15.416036],[-10.193739,15.396063],[-10.129557,15.383712],[-9.941429,15.373791],[-9.755084,15.401489],[-9.577834,15.437249],[-9.446937,15.45823],[-9.440323,15.511663],[-9.447712,15.574864],[-9.426577,15.623052],[-9.385339,15.667623],[-9.350561,15.67739],[-9.335471,15.525668],[-9.293717,15.502827],[-9.176825,15.496109],[-8.987043,15.496109],[-8.783102,15.496109],[-8.579135,15.496135],[-8.375194,15.49616],[-8.171253,15.49616],[-7.967312,15.49616],[-7.763371,15.49616],[-7.559404,15.49616],[-7.355489,15.496186],[-7.151522,15.496212],[-6.947555,15.496212],[-6.743614,15.496212],[-6.539673,15.496212],[-6.335732,15.496212],[-6.131791,15.496238],[-5.927824,15.496264],[-5.723883,15.496264],[-5.5125,15.496264],[-5.455605,15.789398],[-5.403566,16.057883],[-5.3599,16.282882],[-5.509606,16.442046],[-5.628669,16.568653],[-5.656264,16.809569],[-5.684738,17.058236],[-5.713212,17.306903],[-5.741685,17.55557],[-5.770159,17.804237],[-5.798633,18.052904],[-5.827106,18.301571],[-5.85558,18.550238],[-5.884054,18.798879],[-5.912528,19.04752],[-5.941001,19.296187],[-5.969475,19.544854],[-5.997949,19.793521],[-6.026422,20.042188],[-6.054896,20.290855],[-6.08337,20.539522],[-6.111844,20.788189],[-6.140317,21.036856],[-6.168791,21.285523],[-6.197265,21.53419],[-6.225738,21.782857],[-6.254212,22.031524],[-6.282686,22.280191],[-6.31116,22.528858],[-6.339633,22.777499],[-6.368107,23.02614],[-6.396581,23.274807],[-6.425054,23.523474],[-6.453528,23.772141],[-6.482002,24.020808],[-6.510476,24.269475],[-6.538949,24.518142],[-6.567397,24.766809],[-6.594088,24.99465],[-6.287182,24.994805],[-5.959812,24.99496],[-5.640787,24.995167],[-5.172883,24.995426],[-4.82262,24.995581],[-4.517006,24.804507],[-4.240304,24.623562],[-3.912805,24.409466],[-3.585331,24.195345],[-3.257858,23.981224],[-2.930384,23.767128],[-2.602911,23.553007],[-2.275411,23.338886],[-1.947912,23.12479],[-1.620438,22.910669],[-1.292965,22.696548],[-0.965491,22.482452],[-0.638018,22.268331],[-0.310544,22.05421],[0.016981,21.840114],[0.344455,21.625993],[0.671928,21.411872],[0.999402,21.197776],[1.145543,21.102226],[1.159134,21.062487],[1.172776,20.981975],[1.164095,20.891335],[1.165748,20.817438],[1.208846,20.767312],[1.290237,20.713594],[1.610631,20.555593],[1.636004,20.524355],[1.647373,20.458855],[1.685407,20.378369],[1.753206,20.331602],[1.832374,20.296849],[1.928803,20.272691],[2.219327,20.247808],[2.280822,20.210317],[2.406189,20.063866],[2.474196,20.035031],[2.667776,19.992914],[2.807922,19.969453],[2.865696,19.95594],[2.99251,19.916588],[3.13028,19.85021],[3.20366,19.789697],[3.203402,19.770757],[3.20273,19.718306],[3.201645,19.560408],[3.22707,19.473566],[3.255853,19.410934],[3.254406,19.372616],[3.219628,19.345383],[3.192343,19.312077],[3.177253,19.268178],[3.137876,19.212161],[3.106095,19.150098],[3.119686,19.103175],[3.174205,19.072893],[3.255957,19.013258],[3.323446,18.988402],[3.356467,18.986645],[3.400857,18.988428],[3.438736,18.996153],[3.683476,19.041629],[3.91018,19.083745],[4.227629,19.14276]]]},"type":"Feature","properties":{"ISO_A2":"ML","NAME":"Mali"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.566171,35.852721],[14.532684,35.820191],[14.436463,35.821664],[14.352334,35.872281],[14.3513,35.978399],[14.448348,35.957444],[14.537025,35.886285],[14.566171,35.852721]]],[[[14.313473,36.027569],[14.253632,36.012143],[14.194204,36.042245],[14.180354,36.060383],[14.263243,36.075809],[14.303758,36.062295],[14.320914,36.03625],[14.313473,36.027569]]]]},"type":"Feature","properties":{"ISO_A2":"MT","NAME":"Malta"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.182566,9.933451],[98.134403,9.875367],[98.118073,9.877899],[98.140294,9.974637],[98.220703,10.045227],[98.291706,10.051325],[98.283438,10.007607],[98.231245,9.953966],[98.182566,9.933451]]],[[[98.209747,10.952717],[98.293463,10.779704],[98.284368,10.753142],[98.271449,10.739913],[98.251709,10.744461],[98.218119,10.837763],[98.155384,10.89794],[98.080453,10.886623],[98.142568,10.963155],[98.167269,10.980312],[98.209747,10.952717]]],[[[98.541717,10.961502],[98.518979,10.959383],[98.497998,10.964241],[98.477431,10.979744],[98.526524,11.086972],[98.541717,10.961502]]],[[[98.221633,11.478214],[98.216155,11.455787],[98.209334,11.456562],[98.18732,11.472401],[98.201066,11.567201],[98.2391,11.644716],[98.278167,11.758404],[98.299664,11.783002],[98.307519,11.722902],[98.283748,11.594073],[98.263284,11.523638],[98.221633,11.478214]]],[[[98.553809,11.744865],[98.528384,11.538676],[98.464822,11.567201],[98.434747,11.567098],[98.396816,11.683551],[98.399503,11.714841],[98.376456,11.791477],[98.523527,11.804913],[98.553809,11.744865]]],[[[98.075492,11.692362],[98.083554,11.636809],[98.021128,11.695876],[98.01038,11.860258],[98.059576,11.756699],[98.080763,11.733186],[98.075492,11.692362]]],[[[98.515982,11.90501],[98.474331,11.899429],[98.454487,12.06128],[98.466269,12.084276],[98.525284,12.005159],[98.60962,11.956661],[98.576443,11.925086],[98.515982,11.90501]]],[[[98.136677,12.150421],[98.125101,12.144892],[98.108462,12.148096],[98.075389,12.164477],[98.037251,12.232484],[98.057302,12.280103],[98.071358,12.291808],[98.104844,12.287803],[98.122518,12.278708],[98.128409,12.261216],[98.118487,12.223389],[98.12014,12.191298],[98.136677,12.150421]]],[[[98.066087,12.389787],[98.060299,12.35351],[98.002318,12.278992],[97.951779,12.322297],[97.938653,12.346068],[97.990226,12.393817],[98.045106,12.386996],[98.059886,12.397848],[98.066087,12.389787]]],[[[98.413973,12.597939],[98.4364,12.570499],[98.468233,12.571326],[98.459448,12.473709],[98.3809,12.353665],[98.334494,12.336198],[98.313927,12.335992],[98.331394,12.511433],[98.302558,12.611582],[98.31217,12.678193],[98.396506,12.647135],[98.413973,12.597939]]],[[[98.315477,13.099072],[98.309173,12.934715],[98.259253,13.014012],[98.250778,13.10442],[98.254602,13.188549],[98.265351,13.202244],[98.268555,13.189376],[98.298631,13.151678],[98.315477,13.099072]]],[[[94.804891,15.819345],[94.784323,15.793868],[94.743396,15.81211],[94.733474,15.823065],[94.828042,15.933033],[94.83817,15.892105],[94.804891,15.819345]]],[[[94.476745,15.945952],[94.411943,15.848387],[94.387862,15.994166],[94.493695,16.075324],[94.545992,16.152839],[94.601285,16.205523],[94.618649,16.141315],[94.566145,16.019307],[94.476745,15.945952]]],[[[97.575057,16.25322],[97.53723,16.240146],[97.480386,16.305723],[97.469121,16.461011],[97.516353,16.4969],[97.541984,16.505091],[97.578985,16.486048],[97.593248,16.460779],[97.599552,16.42954],[97.58932,16.397346],[97.575057,16.25322]]],[[[93.69085,18.684286],[93.674004,18.675656],[93.569927,18.759579],[93.487555,18.867531],[93.618296,18.888822],[93.744697,18.865515],[93.745524,18.808051],[93.718342,18.715705],[93.69085,18.684286]]],[[[93.714828,19.558238],[93.829446,19.475297],[93.874715,19.481033],[93.945718,19.428634],[93.947475,19.408144],[93.934039,19.365407],[93.902,19.33205],[93.815287,19.298667],[93.755859,19.325694],[93.732295,19.416283],[93.662221,19.458916],[93.644031,19.495089],[93.68837,19.54444],[93.714828,19.558238]]],[[[93.491792,19.892585],[93.51329,19.754763],[93.444664,19.80644],[93.419549,19.877598],[93.412831,19.950359],[93.491792,19.892585]]],[[[93.010168,19.9239],[93.023294,19.828867],[92.975235,19.868012],[92.912706,19.999813],[92.91467,20.086475],[92.959525,20.046167],[93.010168,19.9239]]],[[[97.730087,28.407104],[97.769051,28.356151],[97.81649,28.356331],[97.864962,28.363592],[97.887596,28.356487],[97.934054,28.313828],[98.022317,28.211534],[98.061643,28.185877],[98.098953,28.142262],[98.118383,28.055239],[98.130476,27.967596],[98.241063,27.66317],[98.274188,27.599091],[98.298838,27.550102],[98.350462,27.538087],[98.392424,27.587076],[98.408857,27.639476],[98.452523,27.657227],[98.50451,27.647667],[98.599801,27.598833],[98.651167,27.572452],[98.676799,27.421918],[98.68238,27.245314],[98.674835,27.19064],[98.716486,27.044939],[98.729509,26.877404],[98.738501,26.785756],[98.739379,26.698164],[98.731886,26.583416],[98.709458,26.429705],[98.671838,26.29855],[98.685584,26.189358],[98.663156,26.139438],[98.571999,26.114065],[98.564093,26.072414],[98.591016,26.003684],[98.65463,25.917772],[98.656283,25.863564],[98.625381,25.826693],[98.558357,25.823256],[98.465546,25.788865],[98.401674,25.677968],[98.333822,25.586785],[98.296615,25.568827],[98.17254,25.59451],[98.142878,25.571101],[98.099573,25.41571],[98.064071,25.34897],[98.010741,25.292513],[97.962011,25.259311],[97.917982,25.236134],[97.819487,25.251844],[97.767345,25.158051],[97.714946,25.034338],[97.71076,24.970362],[97.737942,24.869878],[97.723886,24.841998],[97.670659,24.820113],[97.583274,24.774819],[97.529375,24.631184],[97.531442,24.491684],[97.563275,24.443857],[97.623582,24.422928],[97.666628,24.379959],[97.67071,24.312728],[97.708176,24.228754],[97.690606,24.130801],[97.568288,23.988484],[97.564567,23.911047],[97.629628,23.887147],[97.686058,23.898076],[97.755615,23.931873],[97.837677,23.986288],[98.016891,24.065456],[98.212538,24.110622],[98.367257,24.119019],[98.499445,24.115686],[98.564144,24.098839],[98.58342,24.069797],[98.76439,24.116074],[98.802373,24.118683],[98.835084,24.121215],[98.833999,24.090571],[98.701604,23.964067],[98.676747,23.905104],[98.680881,23.841801],[98.73509,23.783096],[98.787697,23.737854],[98.832242,23.624372],[98.797877,23.520425],[98.819736,23.482546],[98.858855,23.440094],[98.882574,23.38033],[98.885572,23.307467],[98.863764,23.191246],[99.05507,23.130578],[99.22028,23.103345],[99.340841,23.095903],[99.418046,23.069264],[99.464554,23.046242],[99.497266,23.004617],[99.507136,22.959142],[99.466777,22.927283],[99.385179,22.825119],[99.338257,22.688693],[99.343218,22.586529],[99.337689,22.498059],[99.243069,22.370366],[99.205345,22.282568],[99.172376,22.192496],[99.173409,22.153325],[99.192995,22.125988],[99.233354,22.110175],[99.303117,22.100615],[99.388642,22.110795],[99.592712,22.089143],[99.825359,22.049688],[99.917705,22.02801],[99.947884,21.988322],[99.940391,21.901609],[99.925612,21.820813],[99.940701,21.758724],[99.978218,21.701621],[100.041263,21.68276],[100.095524,21.660668],[100.105756,21.617053],[100.089271,21.557909],[100.116763,21.511168],[100.147614,21.480524],[100.214741,21.46298],[100.350547,21.501013],[100.445683,21.484064],[100.531363,21.458096],[100.604588,21.471765],[100.67709,21.504941],[100.835117,21.655164],[101.019395,21.736374],[101.079753,21.755856],[101.120681,21.746115],[101.130809,21.735573],[101.128174,21.70511],[101.147294,21.581629],[101.138923,21.567469],[101.080373,21.468664],[100.927514,21.366216],[100.819511,21.314203],[100.75662,21.312653],[100.703135,21.25139],[100.65921,21.13039],[100.613683,21.059335],[100.566658,21.038174],[100.536169,20.992388],[100.522216,20.921927],[100.549346,20.884229],[100.617662,20.879269],[100.622933,20.859554],[100.565159,20.825112],[100.493329,20.812993],[100.407443,20.823225],[100.326104,20.795682],[100.249313,20.73026],[100.18389,20.589105],[100.12963,20.372219],[100.122499,20.316641],[100.003643,20.379583],[99.95424,20.415447],[99.890368,20.424413],[99.825256,20.384492],[99.773373,20.341291],[99.720146,20.325426],[99.638704,20.320465],[99.53163,20.342841],[99.45887,20.363047],[99.447966,20.352066],[99.487499,20.260624],[99.501658,20.187734],[99.485897,20.149856],[99.451532,20.118307],[99.399235,20.093451],[99.337947,20.07893],[99.283687,20.080403],[99.196922,20.115155],[99.130776,20.116602],[99.074191,20.099368],[99.039774,20.073659],[99.020654,20.041774],[98.987374,19.861398],[98.95797,19.804941],[98.916733,19.772902],[98.875805,19.769595],[98.819529,19.778483],[98.760618,19.771067],[98.493864,19.70133],[98.454952,19.694457],[98.371288,19.689186],[98.29367,19.687248],[98.239048,19.690685],[98.111045,19.762153],[98.049034,19.76975],[98.015031,19.749492],[97.991259,19.65371],[97.916432,19.592861],[97.8168,19.459975],[97.793494,19.265853],[97.803881,19.130486],[97.71417,18.996464],[97.706057,18.93179],[97.754013,18.620828],[97.745848,18.588168],[97.72771,18.572019],[97.671589,18.561245],[97.577331,18.528714],[97.515113,18.497734],[97.484934,18.49422],[97.397032,18.517526],[97.373933,18.517966],[97.380651,18.494298],[97.450827,18.359655],[97.523794,18.295886],[97.599345,18.302966],[97.632263,18.290357],[97.622445,18.258033],[97.65159,18.173723],[97.7197,18.037401],[97.739957,17.935314],[97.698564,17.833537],[97.706419,17.797105],[97.729053,17.775815],[97.793029,17.681247],[97.929351,17.533297],[98.06309,17.373307],[98.174607,17.239878],[98.256566,17.147636],[98.438881,16.975657],[98.471178,16.895041],[98.478103,16.732235],[98.523113,16.638158],[98.564713,16.570927],[98.593652,16.514806],[98.660779,16.330425],[98.689305,16.305413],[98.835446,16.417551],[98.869345,16.394193],[98.888259,16.351896],[98.888517,16.298101],[98.865521,16.237045],[98.817927,16.180796],[98.59236,16.050674],[98.573963,15.938614],[98.55815,15.768624],[98.554481,15.559748],[98.565281,15.403556],[98.556961,15.367667],[98.537273,15.350691],[98.452161,15.357357],[98.32943,15.278577],[98.286125,15.2716],[98.232278,15.241344],[98.19104,15.204085],[98.177915,15.147396],[98.202099,14.975934],[98.246024,14.814755],[98.332117,14.696493],[98.400227,14.602985],[98.495001,14.47289],[98.570035,14.359925],[98.721189,14.235721],[98.933631,14.04984],[99.014659,13.947159],[99.086231,13.822774],[99.136823,13.716682],[99.156046,13.575761],[99.171704,13.496903],[99.1762,13.233043],[99.137133,13.172995],[99.107367,13.103542],[99.123903,13.030781],[99.173513,12.961328],[99.173513,12.881953],[99.219815,12.739739],[99.29733,12.652871],[99.37195,12.594219],[99.405023,12.547917],[99.394275,12.473606],[99.41634,12.394825],[99.432412,12.309016],[99.462901,12.190212],[99.522949,12.089676],[99.614726,11.781193],[99.612504,11.749671],[99.572868,11.687142],[99.515197,11.630686],[99.477939,11.612496],[99.442644,11.554385],[99.358824,11.389434],[99.190153,11.105266],[99.025356,10.919954],[98.887122,10.788334],[98.78687,10.708442],[98.757207,10.660952],[98.757259,10.62359],[98.775346,10.55703],[98.76837,10.430836],[98.746924,10.350841],[98.71845,10.266015],[98.702534,10.190386],[98.657989,10.179069],[98.562594,10.034969],[98.521253,10.107239],[98.496862,10.182531],[98.52301,10.353115],[98.464926,10.675834],[98.500996,10.718933],[98.535619,10.740688],[98.598871,10.864402],[98.675559,10.986901],[98.682587,11.133119],[98.744702,11.240399],[98.730026,11.330006],[98.733333,11.435245],[98.746355,11.521287],[98.741394,11.591696],[98.790694,11.665076],[98.87596,11.71975],[98.8402,11.739232],[98.80475,11.779255],[98.693645,11.718355],[98.636285,11.738405],[98.624916,11.801451],[98.639075,11.869147],[98.644966,11.910307],[98.689511,11.956738],[98.686307,12.04712],[98.66388,12.126702],[98.696333,12.225249],[98.6306,12.225507],[98.600318,12.245325],[98.619128,12.299999],[98.678763,12.348471],[98.624399,12.44074],[98.664707,12.539958],[98.663156,12.66238],[98.635665,12.770487],[98.637111,12.84826],[98.59515,12.986029],[98.57603,13.161936],[98.487146,13.293091],[98.421311,13.483777],[98.245404,13.733477],[98.248401,13.840396],[98.238996,13.934473],[98.200342,13.980181],[98.149493,13.647591],[98.110632,13.71291],[98.09823,13.898325],[98.072598,13.986485],[98.100193,14.161513],[97.998391,14.335301],[97.976583,14.461495],[97.909714,14.652698],[97.929351,14.695537],[98.018751,14.652594],[97.936482,14.763905],[97.8692,14.738739],[97.812252,14.858938],[97.799747,15.184913],[97.743729,15.306766],[97.774218,15.430945],[97.710346,15.875517],[97.584256,16.019591],[97.609267,16.143873],[97.640583,16.25384],[97.633658,16.457652],[97.664664,16.520439],[97.725953,16.56855],[97.668437,16.551626],[97.619602,16.537234],[97.505088,16.525297],[97.375896,16.522971],[97.331041,16.671799],[97.267479,16.743113],[97.211772,16.892561],[97.178286,17.062008],[97.200197,17.095391],[97.100254,17.164534],[97.074519,17.206909],[96.970133,17.317315],[96.851484,17.401005],[96.877736,17.342198],[96.909775,17.304836],[96.850864,17.20293],[96.908535,17.03095],[96.857995,16.92119],[96.81066,16.778356],[96.765391,16.71035],[96.622454,16.563899],[96.506699,16.514341],[96.431148,16.504936],[96.364382,16.520491],[96.282216,16.59599],[96.262166,16.659113],[96.248937,16.765334],[96.220308,16.780578],[96.189095,16.768331],[96.237671,16.631233],[96.236741,16.567413],[96.324281,16.444449],[96.293068,16.410058],[96.135042,16.342517],[96.080988,16.353369],[96.042851,16.339933],[96.032102,16.284639],[96.012362,16.253737],[95.763282,16.169039],[95.711399,16.073386],[95.679463,15.976751],[95.555646,15.837845],[95.389558,15.722762],[95.348423,15.729299],[95.301501,15.75617],[95.307806,15.880426],[95.364753,15.985433],[95.34677,16.097622],[95.333024,16.033259],[95.225847,15.876809],[95.176961,15.825675],[95.078362,15.839137],[94.942557,15.81826],[94.89119,15.979102],[94.892224,16.038169],[94.882199,16.087959],[94.897908,16.140824],[94.893154,16.182837],[94.860184,16.102428],[94.847782,16.032872],[94.798173,15.971067],[94.66154,15.904404],[94.656217,15.988792],[94.651412,16.06486],[94.680764,16.133279],[94.676526,16.242058],[94.719935,16.398741],[94.716627,16.452484],[94.703295,16.511938],[94.679007,16.425561],[94.665261,16.336109],[94.637666,16.309082],[94.58754,16.288799],[94.495762,16.186144],[94.441605,16.094367],[94.298978,16.007602],[94.223841,16.016465],[94.214229,16.126613],[94.27128,16.517287],[94.327297,16.572167],[94.353445,16.639967],[94.399954,16.86817],[94.452457,16.954469],[94.473128,17.13544],[94.494315,17.166549],[94.564492,17.308556],[94.588986,17.569315],[94.560048,17.698972],[94.494315,17.824597],[94.430753,18.20168],[94.265802,18.507243],[94.252159,18.6092],[94.170717,18.732397],[94.245752,18.741182],[94.091342,18.849212],[94.070052,18.893395],[94.038942,19.14617],[94.044937,19.287402],[94.022406,19.268798],[94.001529,19.181775],[93.941067,19.146067],[93.968042,18.995068],[93.961324,18.958378],[93.929182,18.899674],[93.800094,18.9606],[93.705526,19.026901],[93.598143,19.188493],[93.493033,19.36949],[93.53055,19.397576],[93.578609,19.401168],[93.728057,19.266525],[93.824899,19.238464],[93.886084,19.271925],[93.962048,19.329337],[93.998118,19.440881],[93.960704,19.481705],[93.887841,19.503926],[93.839575,19.534131],[93.769915,19.609553],[93.761027,19.648026],[93.739529,19.697248],[93.668733,19.732],[93.611682,19.776054],[93.659844,19.854137],[93.706973,19.91217],[93.581813,19.909586],[93.439082,20.009425],[93.409627,20.038338],[93.362291,20.058285],[93.249947,20.070093],[93.156619,20.040793],[93.198994,19.898346],[93.190622,19.851218],[93.129541,19.858013],[93.0019,20.074847],[93.040347,20.129805],[93.095538,20.181327],[93.068356,20.18869],[93.015129,20.185254],[93.066805,20.37762],[93.035386,20.406171],[93.018746,20.346045],[92.990738,20.288013],[92.882114,20.152155],[92.82837,20.17758],[92.791163,20.211428],[92.843563,20.282638],[92.871675,20.301784],[92.891106,20.340309],[92.850695,20.414852],[92.786926,20.469035],[92.735663,20.562673],[92.708998,20.563965],[92.732666,20.453377],[92.722847,20.295609],[92.608022,20.469862],[92.378372,20.717573],[92.324112,20.791832],[92.311916,20.864437],[92.286233,20.931591],[92.268456,21.004687],[92.264425,21.061454],[92.214764,21.112691],[92.192027,21.202272],[92.179573,21.293119],[92.208253,21.35787],[92.279722,21.427581],[92.330571,21.439777],[92.372636,21.409029],[92.471855,21.362986],[92.539189,21.31981],[92.568541,21.263328],[92.599857,21.270149],[92.63169,21.306193],[92.625282,21.350738],[92.593449,21.467346],[92.584251,21.609017],[92.582804,21.940315],[92.574897,21.97809],[92.630346,22.011318],[92.652619,22.0493],[92.674685,22.105989],[92.688947,22.130975],[92.720987,22.132448],[92.771423,22.104801],[92.854312,22.01013],[92.909451,21.988917],[92.964538,22.003774],[93.02195,22.145677],[93.042983,22.183995],[93.070578,22.20942],[93.121479,22.205182],[93.151141,22.230633],[93.162407,22.291895],[93.161993,22.360186],[93.105046,22.5471],[93.088199,22.633244],[93.078691,22.718226],[93.114244,22.805714],[93.16251,22.907956],[93.150935,22.997305],[93.164164,23.032031],[93.203851,23.036992],[93.253461,23.015495],[93.308031,23.030378],[93.349372,23.084948],[93.366012,23.132516],[93.391282,23.33917],[93.408077,23.528047],[93.41495,23.682095],[93.372523,23.774156],[93.307359,24.021867],[93.326273,24.06419],[93.355573,24.074112],[93.452157,23.987399],[93.493808,23.972852],[93.564036,23.986081],[93.633283,24.005357],[93.683357,24.006519],[93.755859,23.976909],[93.855491,23.943913],[94.010831,23.902934],[94.074754,23.872083],[94.127671,23.876476],[94.170252,23.972646],[94.219707,24.11318],[94.293036,24.321875],[94.377268,24.473752],[94.399437,24.51406],[94.493178,24.637644],[94.584077,24.767248],[94.663297,24.930985],[94.707584,25.048756],[94.70376,25.097848],[94.675286,25.138569],[94.615651,25.164588],[94.566507,25.191512],[94.55302,25.215722],[94.554415,25.243447],[94.579943,25.31985],[94.622886,25.410026],[94.667741,25.45886],[94.785874,25.519321],[94.861115,25.597198],[94.945761,25.70024],[94.991959,25.770469],[95.015214,25.912941],[95.040742,25.941311],[95.092935,25.987303],[95.132467,26.041253],[95.129315,26.070399],[95.108438,26.091431],[95.068957,26.191141],[95.05087,26.347281],[95.05981,26.473992],[95.089421,26.525513],[95.128695,26.597292],[95.201456,26.641397],[95.305067,26.672248],[95.463817,26.756042],[95.738374,26.950422],[95.837282,27.013804],[95.905289,27.046644],[95.970918,27.128086],[96.061455,27.217099],[96.190801,27.261282],[96.274207,27.278361],[96.665759,27.339262],[96.731646,27.33151],[96.797792,27.296215],[96.880268,27.177825],[96.95339,27.13328],[97.038088,27.102041],[97.102063,27.115425],[97.103768,27.163329],[96.90192,27.439592],[96.883627,27.514858],[96.876857,27.58674],[96.899698,27.643869],[96.962795,27.698284],[97.049715,27.760011],[97.157822,27.83688],[97.226086,27.890055],[97.306185,27.907082],[97.335124,27.937727],[97.343547,27.982349],[97.339154,28.030873],[97.302774,28.085986],[97.310267,28.155207],[97.322515,28.217994],[97.356466,28.254503],[97.431449,28.353903],[97.477699,28.425655],[97.50209,28.456325],[97.537902,28.510224],[97.599242,28.517045],[97.658877,28.500018],[97.694637,28.469348],[97.730087,28.407104]]]]},"type":"Feature","properties":{"ISO_A2":"MM","NAME":"Myanmar"}},{"geometry":{"type":"Polygon","coordinates":[[[19.194364,43.533312],[19.191625,43.521039],[19.196431,43.484995],[19.218755,43.449958],[19.298285,43.41394],[19.41466,43.342833],[19.551551,43.212246],[19.614441,43.173437],[19.671027,43.163955],[19.78115,43.109772],[19.858044,43.096543],[19.944034,43.08166],[20.167896,42.968489],[20.268458,42.935467],[20.339978,42.892886],[20.347627,42.852785],[20.344371,42.827955],[20.215128,42.798835],[20.192597,42.754652],[20.130017,42.759768],[20.054259,42.760078],[20.029506,42.732017],[20.06568,42.685819],[20.089244,42.631558],[20.070331,42.557093],[20.063975,42.547274],[20.045733,42.54991],[19.939073,42.506708],[19.859801,42.486348],[19.788281,42.476167],[19.754484,42.496941],[19.737793,42.525157],[19.740739,42.606909],[19.727819,42.63453],[19.703376,42.647966],[19.654439,42.628587],[19.59744,42.565438],[19.544575,42.491954],[19.465096,42.41537],[19.399571,42.341912],[19.328981,42.249256],[19.280715,42.172568],[19.330841,42.129289],[19.361434,42.069112],[19.352132,42.024024],[19.361123,41.997747],[19.345466,41.918863],[19.342417,41.869073],[19.186457,41.948628],[19.122275,42.060482],[18.894279,42.249463],[18.632899,42.378085],[18.61905,42.398368],[18.633416,42.423147],[18.645922,42.442733],[18.591558,42.444205],[18.553524,42.428496],[18.517454,42.432914],[18.476681,42.481102],[18.438079,42.52296],[18.436374,42.559728],[18.453944,42.564482],[18.48004,42.579184],[18.534921,42.620138],[18.545928,42.641584],[18.543292,42.674191],[18.466036,42.777234],[18.455029,42.844104],[18.443867,42.968437],[18.460145,42.997893],[18.488464,43.012155],[18.623597,43.027684],[18.62184,43.124603],[18.630005,43.153645],[18.656877,43.193927],[18.67424,43.230824],[18.749223,43.283534],[18.851077,43.346347],[18.895622,43.348207],[18.93469,43.339448],[18.978666,43.28542],[19.026674,43.292448],[19.036699,43.357302],[18.97386,43.442387],[18.940219,43.496725],[18.950709,43.526672],[18.97417,43.542355],[19.028327,43.532511],[19.080055,43.517706],[19.112767,43.527757],[19.16434,43.535431],[19.194364,43.533312]]]},"type":"Feature","properties":{"ISO_A2":"ME","NAME":"Montenegro"}},{"geometry":{"type":"Polygon","coordinates":[[[116.683297,49.823781],[116.589711,49.684797],[116.402125,49.406184],[116.243375,49.170384],[116.159659,49.037472],[116.098268,48.936135],[116.034396,48.840017],[116.025507,48.782294],[115.953781,48.68938],[115.820559,48.577242],[115.791672,48.455699],[115.796581,48.346352],[115.785522,48.248218],[115.639484,48.186206],[115.525073,48.130861],[115.557629,47.945032],[115.616385,47.874804],[115.711676,47.798943],[115.81167,47.738223],[115.898228,47.686935],[115.993881,47.711326],[116.074858,47.789538],[116.23118,47.858216],[116.317169,47.859844],[116.378251,47.844057],[116.513436,47.839561],[116.651929,47.864521],[116.760553,47.869792],[116.901165,47.853074],[116.951652,47.836564],[117.069733,47.806385],[117.197064,47.74029],[117.285896,47.666341],[117.350801,47.652182],[117.383977,47.675747],[117.455136,47.741376],[117.555337,47.804679],[117.676673,47.908291],[117.768398,47.987872],[117.840487,47.999861],[117.979187,47.999629],[118.04187,48.01893],[118.147032,48.028903],[118.239688,47.999499],[118.49838,47.983996],[118.567781,47.943275],[118.690513,47.822249],[118.759914,47.757602],[118.88032,47.725098],[118.953132,47.702928],[119.017573,47.685358],[119.081962,47.654146],[119.097258,47.616267],[119.122941,47.558493],[119.162422,47.525213],[119.235234,47.492554],[119.290838,47.472632],[119.308563,47.430723],[119.325926,47.410181],[119.376672,47.380881],[119.526947,47.255927],[119.600173,47.222441],[119.711174,47.149991],[119.757269,47.090046],[119.759853,47.027001],[119.788534,46.978812],[119.862689,46.906595],[119.897829,46.857812],[119.884135,46.791434],[119.895866,46.732858],[119.867237,46.67219],[119.747451,46.62718],[119.706626,46.606019],[119.620223,46.603952],[119.474082,46.626663],[119.331869,46.613796],[119.16206,46.638678],[119.028528,46.692189],[118.957163,46.734848],[118.84394,46.760221],[118.7903,46.747095],[118.722914,46.691879],[118.648706,46.701646],[118.580442,46.691879],[118.40438,46.70317],[118.308676,46.717045],[118.15685,46.678572],[118.071274,46.666583],[117.910457,46.619325],[117.813512,46.537702],[117.741268,46.518143],[117.67104,46.522096],[117.620501,46.551991],[117.546862,46.588268],[117.438134,46.586252],[117.405578,46.570879],[117.392142,46.537573],[117.356382,46.436649],[117.356899,46.391303],[117.333438,46.362028],[117.269049,46.352261],[117.155981,46.355104],[116.978783,46.36177],[116.859048,46.387944],[116.787011,46.376679],[116.688878,46.321979],[116.619373,46.313091],[116.562581,46.28981],[116.516692,46.209066],[116.44481,46.158785],[116.357632,46.096566],[116.264563,45.963035],[116.21299,45.886889],[116.229113,45.845729],[116.240585,45.795991],[116.197642,45.739379],[116.109843,45.686695],[116.039563,45.676928],[115.934144,45.626156],[115.789139,45.534792],[115.681032,45.458259],[115.539439,45.439501],[115.439497,45.419967],[115.217495,45.396196],[115.162614,45.390253],[114.919218,45.37829],[114.738764,45.419605],[114.6443,45.413275],[114.560171,45.389995],[114.517227,45.364621],[114.502241,45.316304],[114.487255,45.271733],[114.419094,45.20259],[114.281066,45.11089],[114.16743,45.04986],[114.080303,44.971157],[114.030332,44.94258],[113.930907,44.912298],[113.87706,44.896175],[113.752158,44.825921],[113.652629,44.76347],[113.587,44.745719],[113.507935,44.762333],[113.455638,44.767449],[113.300919,44.791633],[113.196119,44.794837],[113.049462,44.81034],[112.706744,44.883462],[112.596776,44.917672],[112.499314,45.010922],[112.411309,45.05818],[112.292092,45.063038],[112.11293,45.062934],[112.032676,45.081616],[111.898007,45.064046],[111.75104,44.969555],[111.681483,44.899172],[111.62128,44.827135],[111.547435,44.672907],[111.514775,44.569812],[111.489454,44.511573],[111.410905,44.419201],[111.402224,44.367266],[111.429561,44.32236],[111.486198,44.271613],[111.519736,44.191877],[111.602625,44.107127],[111.683757,44.041136],[111.836926,43.934683],[111.880334,43.878924],[111.931752,43.814949],[111.942863,43.75242],[111.933147,43.711441],[111.878164,43.680177],[111.771142,43.664596],[111.719724,43.621162],[111.640762,43.563181],[111.547331,43.496312],[111.50351,43.492798],[111.45111,43.474918],[111.186836,43.391977],[111.086481,43.368774],[111.007209,43.341386],[110.913313,43.256869],[110.839571,43.194108],[110.748517,43.110806],[110.708571,43.073883],[110.627491,42.990529],[110.520934,42.895263],[110.461713,42.844155],[110.429622,42.813589],[110.400424,42.773669],[110.288907,42.74274],[110.196819,42.710003],[110.058016,42.6606],[109.858752,42.606263],[109.698038,42.553785],[109.595564,42.510532],[109.44317,42.455962],[109.339817,42.438366],[109.131665,42.440562],[108.874523,42.426455],[108.687351,42.416119],[108.546481,42.429323],[108.333936,42.43679],[108.171206,42.447332],[108.062324,42.427178],[107.805957,42.405836],[107.7487,42.400978],[107.292345,42.34925],[107.090756,42.321551],[106.906064,42.308865],[106.770052,42.288737],[106.693209,42.26357],[106.579056,42.227345],[106.518801,42.211584],[106.317211,42.140581],[105.867574,41.994],[105.566404,41.875119],[105.517053,41.854732],[105.314327,41.770887],[105.197124,41.738047],[105.115476,41.663297],[105.05057,41.615936],[104.982047,41.595523],[104.860297,41.643737],[104.773688,41.64118],[104.498252,41.658698],[104.498252,41.876979],[104.305189,41.846154],[103.997301,41.796984],[103.711117,41.751302],[103.449738,41.855843],[103.247889,41.936562],[103.07281,42.005963],[102.806883,42.052007],[102.575217,42.092108],[102.15669,42.158099],[101.972929,42.215873],[101.879911,42.292328],[101.713823,42.465806],[101.659976,42.500042],[101.579102,42.523555],[101.495283,42.538747],[101.313744,42.537869],[101.091949,42.551305],[100.772588,42.587788],[100.519064,42.616805],[100.086325,42.670729],[99.983799,42.677344],[99.757456,42.629465],[99.467862,42.568203],[98.94686,42.61621],[98.71628,42.638741],[98.248246,42.684501],[97.718925,42.736281],[97.205674,42.789792],[96.832984,42.760233],[96.625296,42.743851],[96.385466,42.720338],[96.352393,42.746797],[96.342471,42.849323],[96.299476,42.928698],[96.168425,43.014481],[96.080317,43.096129],[95.912523,43.20651],[95.859607,43.275963],[95.842037,43.383709],[95.687317,43.664053],[95.591199,43.853628],[95.56717,43.892257],[95.52557,43.953958],[95.47131,43.986178],[95.356433,44.005971],[95.325531,44.039354],[95.325531,44.104879],[95.343669,44.195391],[95.36682,44.261536],[95.350284,44.278073],[95.049837,44.259418],[94.865972,44.303343],[94.711976,44.350833],[94.494315,44.472531],[94.364711,44.519505],[94.199346,44.645182],[93.957914,44.674948],[93.868152,44.724195],[93.755239,44.831941],[93.656434,44.900981],[93.516235,44.944466],[93.294388,44.983172],[92.916065,45.020172],[92.787856,45.035727],[92.578928,45.011],[92.423796,45.008933],[92.172596,45.035236],[92.029763,45.068516],[91.852823,45.069342],[91.737791,45.068955],[91.584364,45.076525],[91.510053,45.098229],[91.441065,45.124739],[91.312081,45.118125],[91.221802,45.144506],[91.137724,45.193934],[91.049978,45.217447],[90.953601,45.215897],[90.913965,45.193934],[90.877275,45.196105],[90.853245,45.262871],[90.763173,45.370668],[90.749583,45.418933],[90.694444,45.474641],[90.661836,45.525232],[90.670724,45.59515],[90.709637,45.730801],[90.795936,45.853532],[90.85247,45.885417],[90.887094,45.921642],[90.959751,45.985075],[91.001712,46.035769],[90.996803,46.10499],[90.947555,46.177311],[90.911536,46.270639],[90.918254,46.324253],[90.971429,46.38797],[91.033906,46.528995],[91.028894,46.566073],[91.004244,46.595735],[90.997888,46.66108],[90.985692,46.749033],[90.910555,46.883237],[90.869937,46.954499],[90.799037,46.985143],[90.715528,47.00385],[90.643387,47.100304],[90.552954,47.213992],[90.496213,47.285176],[90.476473,47.328817],[90.467481,47.408166],[90.42521,47.504077],[90.380665,47.556632],[90.347488,47.596992],[90.330642,47.655154],[90.31333,47.676186],[90.19096,47.702102],[90.103214,47.745406],[90.066575,47.803542],[90.053863,47.85049],[90.02787,47.877698],[89.958675,47.886328],[89.910461,47.844315],[89.831344,47.823309],[89.778169,47.827003],[89.725614,47.85248],[89.693213,47.879145],[89.638488,47.909066],[89.560973,48.003944],[89.479221,48.029058],[89.329876,48.024873],[89.196344,47.980896],[89.115677,47.987717],[89.047671,48.002548],[88.971138,48.049936],[88.917808,48.089003],[88.83833,48.101715],[88.681853,48.170548],[88.57602,48.220184],[88.566822,48.317413],[88.517109,48.384489],[88.413963,48.403428],[88.30999,48.47208],[88.158165,48.509081],[88.062563,48.537839],[87.979726,48.555124],[87.967375,48.581066],[87.972233,48.603339],[88.010628,48.640416],[88.050161,48.67504],[88.060083,48.707156],[88.02794,48.735604],[87.942157,48.765292],[87.831828,48.791647],[87.809142,48.835727],[87.743203,48.881616],[87.754727,48.918565],[87.806868,48.945488],[87.859836,48.965539],[87.872187,49.000136],[87.83467,49.031917],[87.816325,49.08026],[87.825213,49.11633],[87.81431,49.162322],[87.818289,49.16209],[87.934767,49.16457],[87.988046,49.186895],[88.028457,49.219787],[88.115738,49.256296],[88.13429,49.298438],[88.13553,49.381482],[88.192581,49.451711],[88.337792,49.472562],[88.393344,49.482846],[88.45241,49.472691],[88.544394,49.482561],[88.633174,49.486153],[88.68268,49.464526],[88.747896,49.446233],[88.831663,49.448455],[88.860344,49.481528],[88.863858,49.527623],[88.900135,49.539715],[88.945403,49.507676],[88.97057,49.48375],[89.008397,49.472795],[89.109476,49.501372],[89.180014,49.532248],[89.202907,49.595681],[89.24399,49.627049],[89.29918,49.611132],[89.395608,49.611546],[89.474983,49.660535],[89.579163,49.699706],[89.654094,49.717457],[89.669493,49.750504],[89.63425,49.82329],[89.643862,49.903052],[89.744218,49.948114],[89.878008,49.95354],[89.97733,49.98434],[90.004977,50.069296],[90.053759,50.093739],[90.103731,50.103299],[90.224498,50.116709],[90.311315,50.151151],[90.364852,50.166912],[90.516884,50.213318],[90.655066,50.222387],[90.714391,50.259413],[90.760693,50.305974],[90.838053,50.32375],[90.917169,50.364135],[91.021556,50.415476],[91.062793,50.422607],[91.233842,50.452399],[91.300608,50.46338],[91.340813,50.470046],[91.41502,50.468031],[91.446491,50.522188],[91.52168,50.56203],[91.596921,50.575518],[91.634128,50.615154],[91.706372,50.665538],[91.804247,50.693599],[91.956537,50.697629],[92.104022,50.691997],[92.192337,50.700575],[92.265304,50.775196],[92.278998,50.812222],[92.295793,50.849816],[92.354808,50.864182],[92.426328,50.803075],[92.486427,50.765067],[92.578928,50.725431],[92.626626,50.688302],[92.681351,50.683186],[92.73866,50.710936],[92.779329,50.778658],[92.856482,50.789097],[92.941283,50.778219],[92.963556,50.744913],[92.970687,50.712512],[93.009858,50.654531],[93.103082,50.603914],[93.222558,50.606524],[93.270514,50.615593],[93.386786,50.608487],[93.501094,50.59748],[93.625634,50.585569],[93.662015,50.583683],[93.795391,50.577637],[93.989902,50.568852],[94.075788,50.572831],[94.251074,50.556398],[94.286989,50.511387],[94.319339,50.404908],[94.346882,50.303416],[94.354686,50.221844],[94.400161,50.179651],[94.458503,50.165724],[94.496899,50.132832],[94.564595,50.087951],[94.614721,50.023717],[94.675493,50.028084],[94.718074,50.043251],[94.811247,50.048186],[94.930309,50.043767],[95.01294,50.00824],[95.044359,49.96155],[95.111435,49.935454],[95.166264,49.943825],[95.32951,49.944135],[95.38563,49.94119],[95.441751,49.915506],[95.522676,49.911217],[95.567221,49.943825],[95.707781,49.965994],[95.789327,50.012503],[95.851907,50.012917],[95.899449,49.990567],[95.935726,49.96],[95.989521,49.973591],[96.018563,49.998757],[96.065537,49.998706],[96.111684,49.982479],[96.229713,49.954083],[96.315083,49.90114],[96.381125,49.896024],[96.466391,49.911527],[96.505769,49.91871],[96.543286,49.89251],[96.598425,49.878403],[96.640179,49.897833],[96.711699,49.911553],[96.985739,49.882795],[97.049146,49.829879],[97.097671,49.805048],[97.136945,49.761717],[97.208568,49.730789],[97.359773,49.741434],[97.418323,49.773035],[97.540848,49.843108],[97.589372,49.911476],[97.650918,49.933593],[97.720682,49.944652],[97.785587,49.944549],[97.853955,49.946771],[97.936637,49.996794],[98.00392,50.01426],[98.103397,50.077822],[98.121949,50.106606],[98.170163,50.180581],[98.200032,50.227684],[98.250262,50.30246],[98.277288,50.423021],[98.292688,50.486944],[98.279459,50.533247],[98.220496,50.557199],[98.144997,50.568542],[98.078851,50.603811],[98.02981,50.644635],[98.001181,50.702048],[97.961959,50.769149],[97.964181,50.817699],[97.953174,50.855165],[97.919843,50.887178],[97.856126,50.943351],[97.825275,50.98526],[97.835713,51.051665],[97.910851,51.165172],[97.917879,51.217882],[97.927387,51.250722],[97.923253,51.280488],[97.946921,51.348416],[97.989141,51.377071],[98.037613,51.449935],[98.103087,51.483524],[98.184684,51.485747],[98.219928,51.505616],[98.237446,51.578402],[98.276823,51.634549],[98.303075,51.674288],[98.352788,51.717619],[98.640522,51.80118],[98.760101,51.905101],[98.802579,51.957449],[98.848675,52.070052],[98.893116,52.117284],[98.958125,52.10173],[99.034297,52.035403],[99.091347,52.03486],[99.176148,51.998868],[99.40709,51.923549],[99.532354,51.899881],[99.612866,51.892518],[99.719268,51.871614],[99.787894,51.827534],[99.921633,51.755523],[100.034546,51.737101],[100.230399,51.729814],[100.468886,51.726094],[100.53622,51.713459],[100.710783,51.661576],[100.90364,51.604241],[101.085386,51.553029],[101.223207,51.513264],[101.304546,51.474739],[101.381233,51.452622],[101.464329,51.471484],[101.570886,51.467195],[101.821155,51.421048],[101.979233,51.382213],[102.111525,51.353455],[102.155656,51.313767],[102.160049,51.260851],[102.142324,51.216047],[102.151936,51.107527],[102.194517,51.050683],[102.210227,50.974305],[102.226195,50.901441],[102.215084,50.82943],[102.235031,50.791215],[102.276579,50.768684],[102.316577,50.718455],[102.303348,50.665538],[102.285726,50.634687],[102.288413,50.58513],[102.336421,50.544254],[102.406856,50.536192],[102.469436,50.525702],[102.54633,50.461313],[102.683324,50.387157],[102.765438,50.366538],[102.859696,50.333259],[103.039427,50.300625],[103.161745,50.290729],[103.233833,50.264271],[103.304372,50.200295],[103.421212,50.187066],[103.496246,50.164949],[103.632879,50.138594],[103.723209,50.153838],[103.802636,50.176059],[103.856121,50.171822],[103.958492,50.157275],[104.078743,50.154226],[104.179667,50.169444],[104.259921,50.214455],[104.353868,50.275278],[104.466316,50.306129],[104.596386,50.317187],[104.685373,50.341837],[104.976983,50.382894],[105.094702,50.389948],[105.185962,50.429609],[105.266681,50.460486],[105.383573,50.473715],[105.541651,50.441263],[105.692546,50.414184],[105.875223,50.405373],[105.996507,50.367908],[106.082497,50.332587],[106.217837,50.304578],[106.368422,50.317601],[106.574456,50.328789],[106.711089,50.312588],[106.853768,50.248303],[106.941307,50.196678],[107.040216,50.086452],[107.143052,50.033019],[107.233279,49.989404],[107.347019,49.986665],[107.630981,49.983099],[107.786837,49.96],[107.916545,49.947804],[107.947809,49.924705],[107.934838,49.849025],[107.938766,49.740737],[107.936751,49.690998],[107.965431,49.653533],[108.009511,49.646892],[108.033799,49.593976],[108.098033,49.56266],[108.213064,49.524781],[108.406954,49.396365],[108.522503,49.341485],[108.61366,49.322804],[108.733033,49.335645],[108.919895,49.335361],[109.236671,49.334896],[109.453712,49.296345],[109.528695,49.269887],[109.750335,49.23932],[109.994558,49.205627],[110.19992,49.17041],[110.321359,49.215859],[110.427813,49.219993],[110.529616,49.187076],[110.631108,49.137595],[110.709811,49.14297],[110.827944,49.166147],[111.2042,49.304278],[111.336646,49.355851],[111.429251,49.342622],[111.511881,49.360915],[111.574823,49.376418],[111.735588,49.39776],[111.833412,49.4036],[111.934491,49.416028],[112.079702,49.424219],[112.375136,49.514601],[112.494922,49.532326],[112.697338,49.507263],[112.806427,49.523592],[112.914793,49.569223],[113.05556,49.616248],[113.092095,49.692523],[113.164183,49.797193],[113.319058,49.87432],[113.44551,49.941603],[113.574184,50.007025],[113.732417,50.061544],[113.881142,50.101102],[114.070691,50.204739],[114.221793,50.257269],[114.297034,50.274399],[114.386331,50.255486],[114.553969,50.241456],[114.674892,50.245693],[114.743157,50.233678],[114.879583,50.183035],[115.003348,50.138594],[115.098019,50.059425],[115.274546,49.948864],[115.364979,49.91176],[115.429213,49.89649],[115.587963,49.886051],[115.717723,49.880625],[115.795237,49.905895],[115.92603,49.952145],[116.134545,50.010798],[116.216814,50.009273],[116.351121,49.978087],[116.55116,49.920312],[116.631569,49.877059],[116.683297,49.823781]]]},"type":"Feature","properties":{"ISO_A2":"MN","NAME":"Mongolia"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[145.26486,14.158103],[145.215354,14.111335],[145.179594,14.120973],[145.157373,14.136889],[145.152102,14.163606],[145.232407,14.18947],[145.26548,14.180246],[145.26486,14.158103]]],[[[145.662355,14.970508],[145.621014,14.919555],[145.591558,14.998826],[145.5867,15.030814],[145.624838,15.06014],[145.647369,15.059495],[145.662355,14.970508]]],[[[145.751962,15.133159],[145.749171,15.107244],[145.698218,15.113522],[145.684266,15.125124],[145.713204,15.215299],[145.786378,15.256899],[145.821932,15.265373],[145.788549,15.222637],[145.782347,15.17463],[145.751962,15.133159]]],[[[145.712067,16.339106],[145.69026,16.332156],[145.658324,16.335799],[145.636,16.351509],[145.631039,16.377967],[145.695531,16.379621],[145.719509,16.359777],[145.712067,16.339106]]],[[[145.77749,18.078948],[145.729121,18.056934],[145.789272,18.15543],[145.807462,18.172638],[145.835471,18.136774],[145.77749,18.078948]]],[[[145.70845,18.762524],[145.678064,18.72524],[145.652536,18.752654],[145.645508,18.806785],[145.690157,18.801618],[145.70659,18.790481],[145.70845,18.762524]]]]},"type":"Feature","properties":{"ISO_A2":"MP","NAME":"N. Mariana Is."}},{"geometry":{"type":"Polygon","coordinates":[[[32.886138,-26.849317],[32.776532,-26.851022],[32.58874,-26.855725],[32.477739,-26.858515],[32.353457,-26.861616],[32.199565,-26.833504],[32.112903,-26.839498],[32.105979,-26.519983],[32.077918,-26.449806],[32.048308,-26.347177],[32.041383,-26.28129],[32.059987,-26.215092],[32.068875,-26.110137],[32.060503,-26.018308],[31.968468,-25.972213],[31.948262,-25.957588],[31.928263,-25.885396],[31.920254,-25.77393],[31.984539,-25.631975],[31.979371,-25.359434],[31.987019,-25.263471],[31.985779,-25.07387],[31.984436,-24.844065],[31.983195,-24.638289],[31.985831,-24.460677],[31.966659,-24.376445],[31.950588,-24.330298],[31.907955,-24.236195],[31.858293,-24.040238],[31.799641,-23.892236],[31.723986,-23.794568],[31.699957,-23.743098],[31.675566,-23.674265],[31.604097,-23.552929],[31.545599,-23.482339],[31.529631,-23.425805],[31.53175,-23.279457],[31.466689,-23.016683],[31.419302,-22.825118],[31.347989,-22.617534],[31.30024,-22.478576],[31.29316,-22.454701],[31.287837,-22.402043],[31.429534,-22.298845],[31.571541,-22.15348],[31.737681,-21.983361],[31.88594,-21.831535],[32.01632,-21.698055],[32.194759,-21.515379],[32.371079,-21.334873],[32.41242,-21.311825],[32.429783,-21.297046],[32.353612,-21.136487],[32.476189,-20.95009],[32.482803,-20.828858],[32.477636,-20.712999],[32.492415,-20.659772],[32.529312,-20.613057],[32.672559,-20.516112],[32.780873,-20.361548],[32.869653,-20.217215],[32.992746,-19.984878],[33.004942,-19.930204],[33.006751,-19.873825],[32.972696,-19.795381],[32.890479,-19.668101],[32.830792,-19.558186],[32.777669,-19.388739],[32.830947,-19.241461],[32.849964,-19.152474],[32.849809,-19.104363],[32.826193,-19.058836],[32.766248,-19.024317],[32.716484,-19.001889],[32.699741,-18.940911],[32.699224,-18.86846],[32.721962,-18.828411],[32.85446,-18.763661],[32.884536,-18.728521],[32.900297,-18.68904],[32.901692,-18.632919],[32.942517,-18.492669],[32.993056,-18.359603],[32.996415,-18.312577],[32.978484,-18.271443],[32.964686,-18.196253],[32.955539,-18.082875],[32.954712,-17.765375],[32.980757,-17.43754],[32.969285,-17.251608],[32.884432,-17.037823],[32.876268,-16.883569],[32.937918,-16.775927],[32.947994,-16.712313],[32.902881,-16.7042],[32.810225,-16.697637],[32.741754,-16.677638],[32.635869,-16.589426],[32.452004,-16.515736],[32.243231,-16.448711],[31.939891,-16.428816],[31.687606,-16.214152],[31.489892,-16.179736],[31.426227,-16.152347],[31.236264,-16.023673],[30.938763,-16.011684],[30.630151,-15.999178],[30.43776,-15.995354],[30.40939,-15.978198],[30.398124,-15.800741],[30.396057,-15.643076],[30.379831,-15.505875],[30.350582,-15.349709],[30.305675,-15.288834],[30.252138,-15.183207],[30.224956,-15.066935],[30.221753,-15.010505],[30.231881,-14.990351],[30.44608,-14.907514],[30.537702,-14.866534],[30.673353,-14.819095],[30.915147,-14.753311],[31.130896,-14.694658],[31.328455,-14.637659],[31.537951,-14.577146],[31.623062,-14.536683],[31.728896,-14.496066],[31.98211,-14.414417],[32.054509,-14.386512],[32.199926,-14.340778],[32.272894,-14.323001],[32.553186,-14.22957],[32.874511,-14.122497],[32.987165,-14.08498],[33.201726,-14.013356],[33.243584,-14.04307],[33.389931,-14.289463],[33.505273,-14.434106],[33.636428,-14.568206],[33.658287,-14.561643],[33.696062,-14.530327],[33.761433,-14.517305],[33.969844,-14.487126],[34.049426,-14.485265],[34.101826,-14.449299],[34.208744,-14.42377],[34.332509,-14.408578],[34.374987,-14.424856],[34.505315,-14.598127],[34.524126,-14.730728],[34.551204,-14.922396],[34.557612,-15.015931],[34.555493,-15.140936],[34.540869,-15.297309],[34.434932,-15.477195],[34.414778,-15.56675],[34.358038,-15.705243],[34.283055,-15.773455],[34.246106,-15.829421],[34.248225,-15.887505],[34.288326,-15.936081],[34.375969,-16.023724],[34.403048,-16.08031],[34.395141,-16.130901],[34.395555,-16.199269],[34.416432,-16.246812],[34.44134,-16.274459],[34.528105,-16.319159],[34.612699,-16.431503],[34.75884,-16.567102],[34.933351,-16.760372],[35.01531,-16.819542],[35.079854,-16.833908],[35.112152,-16.898503],[35.09422,-16.973847],[35.043991,-17.016894],[35.064609,-17.078595],[35.093031,-17.110945],[35.124554,-17.127275],[35.201397,-17.131099],[35.272555,-17.118438],[35.290384,-17.096941],[35.281185,-16.807811],[35.229819,-16.639242],[35.178349,-16.573303],[35.167187,-16.560229],[35.185274,-16.504884],[35.24279,-16.375383],[35.291469,-16.247173],[35.322423,-16.193171],[35.358493,-16.160512],[35.599305,-16.125889],[35.708859,-16.095813],[35.755317,-16.058296],[35.791232,-15.958664],[35.819964,-15.680335],[35.830299,-15.418903],[35.805391,-15.265631],[35.839911,-15.034689],[35.892724,-14.891804],[35.866679,-14.863744],[35.847197,-14.670939],[35.690411,-14.465525],[35.488511,-14.201045],[35.375753,-14.058728],[35.247492,-13.896878],[35.013811,-13.643456],[34.906841,-13.551679],[34.850514,-13.516022],[34.661585,-13.48667],[34.61151,-13.437887],[34.563658,-13.360166],[34.545675,-13.216299],[34.542574,-13.108709],[34.521283,-12.925774],[34.482888,-12.666772],[34.465835,-12.590704],[34.412091,-12.395884],[34.360828,-12.210572],[34.357831,-12.164735],[34.375969,-12.120242],[34.462941,-11.983764],[34.524746,-11.886974],[34.553943,-11.834109],[34.606291,-11.690087],[34.61859,-11.620221],[34.659518,-11.588646],[34.826536,-11.575676],[34.9595,-11.578104],[35.182638,-11.574849],[35.418231,-11.583169],[35.451408,-11.589525],[35.504428,-11.604821],[35.564321,-11.602341],[35.630983,-11.58198],[35.704725,-11.532164],[35.785444,-11.452944],[35.911328,-11.454649],[36.08217,-11.537332],[36.175498,-11.609265],[36.191311,-11.670657],[36.305671,-11.706314],[36.518681,-11.716235],[36.673814,-11.684299],[36.771069,-11.610402],[36.872716,-11.571283],[36.978859,-11.566942],[37.059165,-11.592212],[37.113838,-11.647144],[37.21838,-11.686521],[37.372892,-11.710448],[37.541719,-11.675101],[37.72486,-11.580636],[37.829299,-11.481935],[37.855033,-11.379098],[37.885367,-11.316673],[37.920197,-11.294762],[38.017297,-11.282102],[38.176564,-11.278691],[38.315109,-11.311092],[38.491739,-11.413308],[38.60336,-11.345354],[38.794769,-11.228927],[38.987522,-11.167277],[39.170974,-11.166863],[39.321559,-11.122577],[39.439174,-11.03452],[39.563456,-10.978554],[39.694404,-10.954783],[39.817084,-10.912357],[39.988702,-10.820838],[40.166262,-10.687461],[40.347439,-10.551552],[40.463556,-10.464322],[40.516731,-10.567365],[40.611713,-10.661519],[40.555075,-10.716193],[40.486656,-10.765182],[40.59714,-10.830708],[40.516111,-10.929617],[40.506189,-10.99845],[40.52686,-11.025425],[40.544533,-11.065577],[40.49141,-11.178904],[40.421027,-11.265617],[40.402837,-11.332073],[40.465158,-11.449378],[40.433119,-11.657324],[40.49358,-11.844445],[40.510427,-11.940408],[40.531511,-12.00459],[40.501435,-12.119415],[40.509187,-12.312892],[40.523139,-12.392783],[40.487069,-12.492209],[40.548357,-12.526522],[40.58081,-12.635508],[40.572025,-12.758446],[40.553318,-12.824592],[40.447692,-12.904793],[40.435186,-12.935903],[40.43684,-12.983135],[40.568718,-12.984633],[40.573265,-13.057756],[40.56448,-13.11522],[40.569545,-13.22343],[40.551975,-13.29371],[40.582877,-13.374015],[40.545153,-13.462899],[40.558176,-13.531473],[40.55983,-13.620305],[40.590525,-13.845046],[40.595693,-14.122807],[40.602514,-14.167404],[40.64954,-14.198823],[40.715582,-14.214481],[40.713102,-14.290652],[40.639928,-14.390077],[40.635587,-14.451831],[40.646129,-14.538699],[40.726641,-14.420722],[40.77501,-14.42129],[40.818108,-14.467592],[40.812114,-14.535495],[40.826997,-14.569085],[40.820589,-14.63492],[40.844567,-14.718636],[40.835162,-14.7915],[40.77594,-14.842453],[40.700699,-14.929786],[40.687367,-15.01159],[40.694395,-15.06523],[40.642202,-15.082387],[40.61781,-15.115511],[40.653157,-15.192664],[40.650987,-15.26098],[40.559003,-15.473422],[40.31385,-15.763947],[40.208016,-15.867093],[40.108798,-15.979334],[40.108901,-16.025275],[40.099186,-16.065324],[39.983637,-16.225521],[39.859717,-16.251773],[39.790884,-16.294561],[39.844628,-16.435637],[39.764529,-16.468193],[39.625416,-16.579401],[39.242287,-16.792618],[39.181722,-16.842021],[39.084364,-16.972865],[38.956,-17.004595],[38.88479,-17.041595],[38.757562,-17.055134],[38.713224,-17.045729],[38.669919,-17.050328],[38.633332,-17.078285],[38.380738,-17.170166],[38.144887,-17.242771],[38.086906,-17.275948],[38.048252,-17.321371],[37.839479,-17.393202],[37.512264,-17.570658],[37.244476,-17.73995],[37.050586,-17.909242],[36.99953,-17.934926],[36.939379,-17.993475],[36.919225,-18.080085],[36.899588,-18.128971],[36.756134,-18.307358],[36.540127,-18.518198],[36.49801,-18.575765],[36.412176,-18.692967],[36.403701,-18.769758],[36.32722,-18.793116],[36.262934,-18.719632],[36.235649,-18.861329],[36.183146,-18.871406],[36.124958,-18.842364],[35.980057,-18.912489],[35.85376,-18.993414],[35.651292,-19.163843],[35.365315,-19.493952],[34.947872,-19.812692],[34.890822,-19.821787],[34.852374,-19.820547],[34.721013,-19.709546],[34.649389,-19.701381],[34.713468,-19.767217],[34.755739,-19.821994],[34.744991,-19.929481],[34.749952,-20.090815],[34.698172,-20.404387],[34.705096,-20.473014],[34.764731,-20.561897],[34.877076,-20.670831],[34.982289,-20.806223],[35.117578,-21.195192],[35.128016,-21.395335],[35.267646,-21.650926],[35.272917,-21.76172],[35.329348,-22.037363],[35.325627,-22.260398],[35.315705,-22.396824],[35.382988,-22.454598],[35.407793,-22.40256],[35.400868,-22.316209],[35.418851,-22.177664],[35.456368,-22.115911],[35.493782,-22.124747],[35.504841,-22.190118],[35.530059,-22.248151],[35.540291,-22.302669],[35.542048,-22.376567],[35.490268,-22.657686],[35.505771,-22.772098],[35.575431,-22.963094],[35.494402,-23.185199],[35.376993,-23.707803],[35.370379,-23.798237],[35.398801,-23.837666],[35.462053,-23.851102],[35.485307,-23.784439],[35.522514,-23.785008],[35.541945,-23.824437],[35.489648,-24.065559],[35.438075,-24.171186],[35.25483,-24.430291],[35.155922,-24.541396],[34.992107,-24.65064],[34.607325,-24.821275],[33.836002,-25.067979],[33.530078,-25.18885],[33.347453,-25.260938],[32.96112,-25.490382],[32.792138,-25.644378],[32.722582,-25.820904],[32.655919,-25.901778],[32.590394,-26.004097],[32.647444,-26.091999],[32.703462,-26.158455],[32.769607,-26.203],[32.803921,-26.241447],[32.848879,-26.26806],[32.894044,-26.129929],[32.916368,-26.086883],[32.954919,-26.083627],[32.933628,-26.252299],[32.889187,-26.830455],[32.886138,-26.849317]],[[34.719359,-12.110682],[34.746024,-12.088357],[34.756256,-12.059057],[34.755946,-12.03079],[34.738996,-12.013065],[34.714915,-12.002781],[34.67993,-12.008879],[34.667476,-12.047585],[34.662102,-12.10076],[34.684219,-12.118692],[34.719359,-12.110682]],[[34.641638,-12.013685],[34.624275,-11.984746],[34.591408,-11.971052],[34.553995,-11.982266],[34.541592,-12.018646],[34.580453,-12.065775],[34.621794,-12.066602],[34.641638,-12.013685]]]},"type":"Feature","properties":{"ISO_A2":"MZ","NAME":"Mozambique"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-16.373362,19.706446],[-16.437544,19.609294],[-16.465966,19.646398],[-16.476999,19.710348],[-16.420181,19.801944],[-16.393232,19.849254],[-16.343648,19.86623],[-16.373362,19.706446]]],[[[-6.168791,21.285523],[-6.140317,21.036856],[-6.111844,20.788189],[-6.08337,20.539522],[-6.054896,20.290855],[-6.026422,20.042188],[-5.997949,19.793521],[-5.969475,19.544854],[-5.941001,19.296187],[-5.912528,19.04752],[-5.884054,18.798879],[-5.85558,18.550238],[-5.827106,18.301571],[-5.798633,18.052904],[-5.770159,17.804237],[-5.741685,17.55557],[-5.713212,17.306903],[-5.684738,17.058236],[-5.656264,16.809569],[-5.628669,16.568653],[-5.509606,16.442046],[-5.3599,16.282882],[-5.403566,16.057883],[-5.455605,15.789398],[-5.5125,15.496264],[-5.723883,15.496264],[-5.927824,15.496264],[-6.131791,15.496238],[-6.335732,15.496212],[-6.539673,15.496212],[-6.743614,15.496212],[-6.947555,15.496212],[-7.151522,15.496212],[-7.355489,15.496186],[-7.559404,15.49616],[-7.763371,15.49616],[-7.967312,15.49616],[-8.171253,15.49616],[-8.375194,15.49616],[-8.579135,15.496135],[-8.783102,15.496109],[-8.987043,15.496109],[-9.176825,15.496109],[-9.293717,15.502827],[-9.335471,15.525668],[-9.350561,15.67739],[-9.385339,15.667623],[-9.426577,15.623052],[-9.447712,15.574864],[-9.440323,15.511663],[-9.446937,15.45823],[-9.577834,15.437249],[-9.755084,15.401489],[-9.941429,15.373791],[-10.129557,15.383712],[-10.193739,15.396063],[-10.262081,15.416036],[-10.411788,15.437921],[-10.493152,15.439807],[-10.586558,15.434846],[-10.696577,15.422676],[-10.731975,15.394926],[-10.815097,15.281755],[-10.895583,15.150471],[-10.948241,15.151143],[-11.00741,15.222921],[-11.169313,15.358649],[-11.365631,15.536752],[-11.455238,15.625403],[-11.502677,15.636824],[-11.596728,15.573262],[-11.675897,15.512051],[-11.760181,15.425545],[-11.798447,15.342733],[-11.828756,15.244858],[-11.842243,15.129413],[-11.872836,14.995157],[-11.940945,14.886921],[-12.02156,14.804936],[-12.081557,14.76636],[-12.104708,14.745354],[-12.280614,14.809045],[-12.302525,14.817003],[-12.408669,14.889014],[-12.45988,14.974642],[-12.543544,15.039005],[-12.659635,15.082077],[-12.735238,15.131273],[-12.770326,15.18667],[-12.813166,15.223541],[-12.858512,15.242532],[-12.862646,15.262376],[-12.851897,15.289661],[-12.862724,15.340408],[-12.930859,15.453011],[-12.994318,15.504894],[-13.048526,15.496625],[-13.079274,15.510423],[-13.097903,15.535279],[-13.105293,15.571763],[-13.142371,15.603337],[-13.206449,15.616877],[-13.257997,15.700386],[-13.297012,15.853865],[-13.347552,15.973496],[-13.409641,16.059175],[-13.454083,16.091137],[-13.486949,16.097002],[-13.498163,16.110309],[-13.506999,16.135217],[-13.555524,16.144054],[-13.623556,16.118293],[-13.684689,16.126923],[-13.71492,16.168781],[-13.756648,16.172502],[-13.809798,16.138033],[-13.868476,16.148162],[-13.932607,16.202861],[-13.96816,16.257199],[-13.975033,16.311149],[-14.085672,16.418843],[-14.300078,16.58028],[-14.533733,16.65596],[-14.786689,16.645883],[-14.928618,16.653532],[-14.959521,16.678905],[-14.990604,16.676889],[-15.02192,16.647485],[-15.055225,16.640974],[-15.090572,16.657381],[-15.112638,16.644927],[-15.121423,16.603586],[-15.210565,16.582606],[-15.37996,16.581986],[-15.516696,16.556612],[-15.620772,16.50659],[-15.768205,16.485092],[-15.958995,16.49212],[-16.074026,16.510465],[-16.1133,16.540128],[-16.168336,16.547052],[-16.239029,16.531291],[-16.302307,16.451322],[-16.358117,16.30717],[-16.404342,16.224901],[-16.441032,16.204541],[-16.4801,16.097209],[-16.502062,15.917323],[-16.535238,15.838362],[-16.535729,16.28681],[-16.481314,16.454241],[-16.463641,16.601519],[-16.346697,16.926409],[-16.207481,17.192594],[-16.078884,17.545854],[-16.030334,17.887952],[-16.046715,18.223126],[-16.084982,18.521195],[-16.15012,18.718186],[-16.213113,19.003336],[-16.305924,19.153818],[-16.476198,19.285076],[-16.514464,19.361971],[-16.474777,19.390626],[-16.371295,19.410237],[-16.305252,19.512659],[-16.444882,19.473153],[-16.283419,19.787165],[-16.23319,20.00095],[-16.241174,20.141252],[-16.210426,20.227913],[-16.333752,20.41586],[-16.429767,20.652357],[-16.479195,20.689797],[-16.530433,20.709537],[-16.534903,20.653985],[-16.562704,20.604169],[-16.62252,20.634167],[-16.728353,20.806146],[-16.87607,21.086155],[-16.927902,21.114784],[-16.971155,21.07644],[-16.998259,21.039698],[-17.048049,20.806146],[-17.063992,20.898854],[-17.042391,21.007994],[-17.005907,21.142431],[-16.964566,21.329241],[-16.836357,21.329396],[-16.607043,21.329654],[-16.377729,21.329939],[-16.14844,21.330223],[-15.919126,21.330481],[-15.689812,21.330765],[-15.460524,21.33105],[-15.231209,21.331308],[-15.001895,21.331592],[-14.772607,21.331877],[-14.543267,21.332135],[-14.313953,21.332419],[-14.084639,21.332703],[-13.85535,21.332962],[-13.62601,21.333246],[-13.396722,21.33353],[-13.167434,21.333789],[-13.016228,21.333944],[-13.025117,21.466778],[-13.032196,21.572094],[-13.041757,21.713817],[-13.051213,21.854765],[-13.06067,21.995738],[-13.069584,22.128185],[-13.078473,22.26045],[-13.086767,22.383259],[-13.094311,22.495992],[-13.107334,22.560742],[-13.155961,22.689313],[-13.166478,22.753211],[-13.153274,22.82052],[-13.120873,22.884056],[-13.031499,23.00025],[-12.895977,23.089573],[-12.739604,23.192719],[-12.620413,23.271345],[-12.559357,23.290801],[-12.372883,23.318009],[-12.226199,23.377488],[-12.08334,23.435443],[-12.023421,23.46756],[-12.016289,23.576442],[-12.016289,23.697882],[-12.016289,23.834049],[-12.016289,23.970191],[-12.016289,24.106333],[-12.016289,24.2425],[-12.016289,24.378641],[-12.016289,24.514783],[-12.016289,24.65095],[-12.016289,24.787092],[-12.016289,24.923234],[-12.016289,25.059401],[-12.016289,25.195543],[-12.016289,25.331684],[-12.016289,25.467851],[-12.016289,25.603993],[-12.016289,25.740135],[-12.016289,25.876302],[-12.016289,25.995416],[-11.86666,25.995416],[-11.680341,25.995416],[-11.494047,25.995416],[-11.307728,25.995416],[-11.121409,25.995442],[-10.935089,25.995468],[-10.74877,25.995468],[-10.562451,25.995468],[-10.376131,25.995468],[-10.189812,25.995468],[-10.003492,25.995468],[-9.817173,25.995468],[-9.630854,25.995494],[-9.444508,25.99552],[-9.258215,25.99552],[-9.071921,25.99552],[-8.885628,25.99552],[-8.682204,25.99552],[-8.682152,26.109466],[-8.6821,26.273177],[-8.682333,26.497711],[-8.682617,26.723124],[-8.682875,26.921329],[-8.683082,27.119275],[-8.683366,27.285932],[-8.495316,27.175344],[-8.307265,27.064757],[-8.119215,26.954169],[-7.931164,26.843556],[-7.743114,26.732942],[-7.555063,26.622355],[-7.367012,26.511767],[-7.178936,26.40118],[-6.99086,26.290592],[-6.802809,26.180004],[-6.614759,26.069417],[-6.426708,25.958803],[-6.238658,25.84819],[-6.050607,25.737602],[-5.862557,25.627015],[-5.674506,25.516427],[-5.516945,25.423771],[-5.275021,25.27453],[-5.049505,25.135469],[-4.82262,24.995581],[-5.172883,24.995426],[-5.640787,24.995167],[-5.959812,24.99496],[-6.287182,24.994805],[-6.594088,24.99465],[-6.567397,24.766809],[-6.538949,24.518142],[-6.510476,24.269475],[-6.482002,24.020808],[-6.453528,23.772141],[-6.425054,23.523474],[-6.396581,23.274807],[-6.368107,23.02614],[-6.339633,22.777499],[-6.31116,22.528858],[-6.282686,22.280191],[-6.254212,22.031524],[-6.225738,21.782857],[-6.197265,21.53419],[-6.168791,21.285523]]]]},"type":"Feature","properties":{"ISO_A2":"MR","NAME":"Mauritania"}},{"geometry":{"type":"Polygon","coordinates":[[[-62.148449,16.740322],[-62.154263,16.681204],[-62.221623,16.699498],[-62.22307,16.751588],[-62.191341,16.804401],[-62.175786,16.809569],[-62.148449,16.740322]]]},"type":"Feature","properties":{"ISO_A2":"MS","NAME":"Montserrat"}},{"geometry":{"type":"Polygon","coordinates":[[[57.651293,-20.484899],[57.524789,-20.513218],[57.383299,-20.503709],[57.328315,-20.450018],[57.31767,-20.427642],[57.365109,-20.406454],[57.362111,-20.337621],[57.385779,-20.228584],[57.416062,-20.183832],[57.486445,-20.143938],[57.515074,-20.055985],[57.575742,-19.997177],[57.656564,-19.989942],[57.737179,-20.098463],[57.791956,-20.212564],[57.780691,-20.326976],[57.724983,-20.368834],[57.70669,-20.434876],[57.651293,-20.484899]]]},"type":"Feature","properties":{"ISO_A2":"MU","NAME":"Mauritius"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[34.719359,-12.110682],[34.684219,-12.118692],[34.662102,-12.10076],[34.667476,-12.047585],[34.67993,-12.008879],[34.714915,-12.002781],[34.738996,-12.013065],[34.755946,-12.03079],[34.756256,-12.059057],[34.746024,-12.088357],[34.719359,-12.110682]]],[[[34.641638,-12.013685],[34.621794,-12.066602],[34.580453,-12.065775],[34.541592,-12.018646],[34.553995,-11.982266],[34.591408,-11.971052],[34.624275,-11.984746],[34.641638,-12.013685]]],[[[33.330917,-9.51916],[33.420937,-9.608044],[33.467756,-9.619723],[33.527494,-9.607475],[33.697664,-9.598122],[33.766239,-9.610886],[33.854192,-9.662976],[33.888816,-9.670107],[33.943903,-9.672174],[33.953669,-9.65817],[33.959354,-9.627371],[33.949587,-9.565359],[33.962093,-9.531718],[33.995579,-9.495441],[34.088597,-9.537764],[34.320882,-9.73155],[34.327807,-9.756562],[34.475963,-9.948798],[34.524229,-10.030137],[34.524229,-10.073132],[34.569911,-10.24108],[34.579988,-10.319835],[34.569756,-10.379676],[34.571616,-10.427632],[34.589548,-10.496155],[34.583554,-10.525094],[34.636522,-10.625604],[34.661843,-10.710044],[34.667114,-10.792468],[34.652335,-10.872876],[34.605671,-10.990285],[34.597661,-11.037517],[34.607893,-11.080512],[34.638124,-11.127124],[34.688457,-11.177457],[34.726439,-11.238177],[34.752174,-11.309439],[34.773774,-11.341685],[34.800905,-11.34091],[34.850617,-11.351917],[34.890615,-11.393568],[34.93702,-11.463434],[34.952627,-11.54374],[34.9595,-11.578104],[34.826536,-11.575676],[34.659518,-11.588646],[34.61859,-11.620221],[34.606291,-11.690087],[34.553943,-11.834109],[34.524746,-11.886974],[34.462941,-11.983764],[34.375969,-12.120242],[34.357831,-12.164735],[34.360828,-12.210572],[34.412091,-12.395884],[34.465835,-12.590704],[34.482888,-12.666772],[34.521283,-12.925774],[34.542574,-13.108709],[34.545675,-13.216299],[34.563658,-13.360166],[34.61151,-13.437887],[34.661585,-13.48667],[34.850514,-13.516022],[34.906841,-13.551679],[35.013811,-13.643456],[35.247492,-13.896878],[35.375753,-14.058728],[35.488511,-14.201045],[35.690411,-14.465525],[35.847197,-14.670939],[35.866679,-14.863744],[35.892724,-14.891804],[35.839911,-15.034689],[35.805391,-15.265631],[35.830299,-15.418903],[35.819964,-15.680335],[35.791232,-15.958664],[35.755317,-16.058296],[35.708859,-16.095813],[35.599305,-16.125889],[35.358493,-16.160512],[35.322423,-16.193171],[35.291469,-16.247173],[35.24279,-16.375383],[35.185274,-16.504884],[35.167187,-16.560229],[35.178349,-16.573303],[35.229819,-16.639242],[35.281185,-16.807811],[35.290384,-17.096941],[35.272555,-17.118438],[35.201397,-17.131099],[35.124554,-17.127275],[35.093031,-17.110945],[35.064609,-17.078595],[35.043991,-17.016894],[35.09422,-16.973847],[35.112152,-16.898503],[35.079854,-16.833908],[35.01531,-16.819542],[34.933351,-16.760372],[34.75884,-16.567102],[34.612699,-16.431503],[34.528105,-16.319159],[34.44134,-16.274459],[34.416432,-16.246812],[34.395555,-16.199269],[34.395141,-16.130901],[34.403048,-16.08031],[34.375969,-16.023724],[34.288326,-15.936081],[34.248225,-15.887505],[34.246106,-15.829421],[34.283055,-15.773455],[34.358038,-15.705243],[34.414778,-15.56675],[34.434932,-15.477195],[34.540869,-15.297309],[34.555493,-15.140936],[34.557612,-15.015931],[34.551204,-14.922396],[34.524126,-14.730728],[34.505315,-14.598127],[34.374987,-14.424856],[34.332509,-14.408578],[34.208744,-14.42377],[34.101826,-14.449299],[34.049426,-14.485265],[33.969844,-14.487126],[33.761433,-14.517305],[33.696062,-14.530327],[33.658287,-14.561643],[33.636428,-14.568206],[33.505273,-14.434106],[33.389931,-14.289463],[33.243584,-14.04307],[33.201726,-14.013356],[33.148086,-13.940958],[33.103592,-13.959199],[33.042356,-14.010049],[33.009283,-14.023743],[32.992126,-14.022193],[32.981222,-14.009325],[32.967528,-13.976873],[32.920296,-13.883855],[32.867224,-13.817399],[32.811,-13.791561],[32.765163,-13.761072],[32.785369,-13.73141],[32.806711,-13.710274],[32.797513,-13.688518],[32.771778,-13.656582],[32.672042,-13.610332],[32.67044,-13.590436],[32.758445,-13.550335],[32.814049,-13.502741],[32.851825,-13.457008],[32.899729,-13.357014],[32.938538,-13.257382],[32.967631,-13.224981],[32.977657,-13.158886],[32.971145,-13.084317],[32.990472,-12.989439],[32.999981,-12.899626],[32.970525,-12.864744],[32.945617,-12.804386],[32.975176,-12.701343],[33.021582,-12.630495],[33.243429,-12.556546],[33.397941,-12.489832],[33.430652,-12.460479],[33.483259,-12.403429],[33.512301,-12.347721],[33.491424,-12.331082],[33.369984,-12.329686],[33.340115,-12.308344],[33.252369,-12.112594],[33.300996,-11.888215],[33.30513,-11.800003],[33.303942,-11.690811],[33.288335,-11.611126],[33.249991,-11.577639],[33.226427,-11.534851],[33.232732,-11.417701],[33.268388,-11.403903],[33.345541,-11.249132],[33.379751,-11.157923],[33.338668,-11.085163],[33.293245,-10.981138],[33.272729,-10.915044],[33.26136,-10.89334],[33.29278,-10.852309],[33.344869,-10.812673],[33.40316,-10.801769],[33.464759,-10.783062],[33.659062,-10.590516],[33.661543,-10.553102],[33.626196,-10.48861],[33.553746,-10.391303],[33.537623,-10.351564],[33.528941,-10.234672],[33.500105,-10.199687],[33.393549,-10.120932],[33.311486,-10.037992],[33.337118,-9.953966],[33.350967,-9.862188],[33.310453,-9.811856],[33.250043,-9.759559],[33.212681,-9.682975],[33.195731,-9.62613],[33.148086,-9.603496],[33.104471,-9.602669],[33.072431,-9.638223],[33.037808,-9.635019],[32.996002,-9.622823],[32.982101,-9.573627],[32.979827,-9.520349],[32.951043,-9.484227],[32.923345,-9.433997],[32.919882,-9.407384],[32.937297,-9.399684],[32.974039,-9.394982],[33.130516,-9.495906],[33.22529,-9.500453],[33.330917,-9.51916]]]]},"type":"Feature","properties":{"ISO_A2":"MW","NAME":"Malawi"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.389305,2.415305],[111.358712,2.402179],[111.31148,2.437578],[111.300421,2.741177],[111.333494,2.768307],[111.355095,2.764431],[111.378349,2.709344],[111.376282,2.576329],[111.38052,2.45892],[111.389305,2.415305]]],[[[104.221577,2.73172],[104.173311,2.721333],[104.146853,2.728206],[104.129076,2.767222],[104.169797,2.856829],[104.184783,2.871711],[104.22323,2.774198],[104.221577,2.73172]]],[[[101.318602,2.9885],[101.268062,2.970413],[101.265478,2.996458],[101.274263,3.032838],[101.311263,3.067358],[101.32842,3.047618],[101.318602,2.9885]]],[[[117.884722,4.186153],[117.745402,4.166929],[117.649078,4.168996],[117.666751,4.203981],[117.6621,4.25018],[117.707989,4.262427],[117.761422,4.252351],[117.884722,4.186153]]],[[[100.289,5.294716],[100.263782,5.267017],[100.191022,5.282882],[100.203941,5.446851],[100.245489,5.46778],[100.310188,5.437937],[100.338816,5.410058],[100.289,5.294716]]],[[[99.848097,6.465704],[99.918687,6.358579],[99.883444,6.31083],[99.86577,6.297084],[99.823292,6.312742],[99.782571,6.271607],[99.743711,6.263287],[99.704747,6.337546],[99.656584,6.367157],[99.646249,6.418368],[99.710534,6.42736],[99.749188,6.409635],[99.821639,6.445033],[99.848097,6.465704]]],[[[100.563919,6.467513],[100.629548,6.447979],[100.715641,6.48069],[100.754502,6.460071],[100.793776,6.426171],[100.816513,6.331629],[100.873926,6.245407],[100.988803,6.257655],[101.02942,6.245304],[101.053501,6.242565],[101.075929,6.166084],[101.086471,6.033689],[101.075619,5.956484],[100.992782,5.846207],[100.981671,5.771043],[101.025183,5.724509],[101.081717,5.674899],[101.113963,5.636762],[101.147656,5.643041],[101.190651,5.668724],[101.22977,5.733707],[101.257003,5.789363],[101.404178,5.851684],[101.556106,5.907753],[101.576777,5.902017],[101.601375,5.877161],[101.649951,5.795977],[101.678425,5.778821],[101.719507,5.770604],[101.790717,5.779363],[101.873606,5.825278],[101.917221,5.911397],[101.936135,5.979325],[102.055197,6.096682],[102.068323,6.184687],[102.101086,6.242255],[102.273995,6.203394],[102.340141,6.172027],[102.534341,5.862537],[102.790243,5.644927],[102.898557,5.563743],[102.982479,5.524934],[103.097098,5.408456],[103.196936,5.26216],[103.415838,4.850299],[103.453872,4.669483],[103.468755,4.393272],[103.420489,3.976864],[103.361991,3.769124],[103.37336,3.671094],[103.453562,3.520612],[103.42948,3.378554],[103.444983,3.260576],[103.439506,2.933103],[103.485188,2.836571],[103.537277,2.774766],[103.812196,2.580463],[103.83235,2.508478],[103.967742,2.261206],[104.21858,1.722841],[104.288446,1.480685],[104.280385,1.415573],[104.250102,1.388598],[104.176412,1.364878],[104.114917,1.412266],[104.094246,1.446165],[104.100551,1.488333],[104.076159,1.529778],[104.016008,1.579284],[103.981488,1.623622],[103.991203,1.550035],[103.991513,1.454795],[103.915136,1.446682],[103.816847,1.476551],[103.694581,1.449679],[103.549783,1.332839],[103.480227,1.32948],[103.42731,1.429836],[103.400025,1.497842],[103.356823,1.546159],[102.896903,1.792346],[102.727094,1.855546],[102.548294,2.042408],[102.145631,2.248494],[101.889936,2.449412],[101.781209,2.57359],[101.519726,2.683661],[101.406865,2.813472],[101.351364,2.838948],[101.29545,2.885199],[101.354258,3.011134],[101.330177,3.142496],[101.299895,3.25329],[101.11541,3.472036],[101.024769,3.624689],[100.85124,3.776721],[100.781787,3.864467],[100.715434,3.966218],[100.757085,4.001823],[100.795533,4.023372],[100.760289,4.097218],[100.661071,4.225737],[100.614562,4.373428],[100.614562,4.652223],[100.473382,5.044292],[100.352666,5.58767],[100.37406,5.777994],[100.343261,5.984183],[100.263265,6.182517],[100.158362,6.324214],[100.119088,6.441984],[100.138002,6.488674],[100.161256,6.64161],[100.176759,6.671841],[100.216653,6.686621],[100.261457,6.682693],[100.345431,6.549885],[100.563919,6.467513]]],[[[116.807682,6.691065],[116.788045,6.606109],[116.812436,6.607892],[116.913309,6.659645],[117.018522,6.797389],[117.07795,6.916839],[117.128489,6.968877],[117.229878,6.93999],[117.252409,6.919216],[117.245278,6.833382],[117.254993,6.783462],[117.294061,6.676905],[117.38036,6.612258],[117.499216,6.571486],[117.6097,6.512626],[117.645667,6.473662],[117.669645,6.42674],[117.693726,6.349974],[117.695586,6.272331],[117.615901,6.196521],[117.649801,6.073583],[117.64453,6.001882],[117.617245,5.940697],[117.50118,5.884654],[117.817646,5.940413],[117.895781,5.972271],[118.003785,6.0533],[118.061766,5.983434],[118.115819,5.862485],[118.072308,5.832073],[117.934745,5.787502],[117.928027,5.769209],[117.973606,5.706267],[118.031173,5.712132],[118.144655,5.754223],[118.249144,5.820575],[118.299787,5.819748],[118.353117,5.806054],[118.456367,5.763447],[118.514141,5.728901],[118.563027,5.684511],[118.59486,5.592114],[118.713715,5.558524],[118.957318,5.428997],[119.002587,5.417809],[119.050026,5.415225],[119.17839,5.430909],[119.223452,5.412642],[119.255595,5.365926],[119.266343,5.308126],[119.262829,5.245907],[119.249703,5.198753],[119.219628,5.159815],[119.132191,5.100464],[118.912463,5.022898],[118.672064,4.964038],[118.551348,4.968121],[118.381849,5.018505],[118.320044,5.011994],[118.260513,4.988843],[118.185376,4.828517],[118.324179,4.668682],[118.56251,4.502154],[118.59517,4.460658],[118.586281,4.409679],[118.548351,4.379268],[118.498018,4.36237],[118.364073,4.335756],[118.22868,4.316016],[118.117266,4.287594],[118.008229,4.250232],[117.895574,4.262918],[117.741062,4.337565],[117.696517,4.342836],[117.649801,4.304492],[117.603809,4.200002],[117.574457,4.170598],[117.537353,4.171374],[117.450898,4.192897],[117.277524,4.299324],[117.100636,4.337074],[116.843494,4.340149],[116.697818,4.354954],[116.638648,4.339115],[116.589091,4.338444],[116.553124,4.359838],[116.51478,4.370793],[116.414528,4.308213],[116.367709,4.327333],[116.320321,4.353714],[116.236244,4.362551],[116.134441,4.355187],[116.02158,4.290694],[115.896213,4.348701],[115.860763,4.348055],[115.836837,4.333276],[115.782422,4.253746],[115.67881,4.193026],[115.627496,4.081973],[115.596076,3.97552],[115.568429,3.938778],[115.560885,3.733054],[115.544503,3.63368],[115.570651,3.502293],[115.566104,3.445733],[115.519957,3.361656],[115.514221,3.342406],[115.489726,3.208642],[115.499131,3.17314],[115.493137,3.12813],[115.45438,3.034311],[115.384203,3.008731],[115.310202,2.993926],[115.24695,3.025914],[115.189951,2.974444],[115.117553,2.894862],[115.08634,2.841119],[115.086547,2.791199],[115.093678,2.757816],[115.078899,2.723426],[115.077038,2.68702],[115.080759,2.634232],[115.129852,2.612399],[115.180856,2.566898],[115.179047,2.523205],[115.150832,2.492923],[115.086547,2.446156],[114.969086,2.350813],[114.836329,2.269371],[114.78641,2.250509],[114.768323,2.21294],[114.758711,2.162401],[114.78796,2.051606],[114.815814,2.018947],[114.830593,1.980009],[114.812713,1.933784],[114.799949,1.893942],[114.751063,1.868982],[114.703521,1.850792],[114.686158,1.819062],[114.66094,1.68628],[114.632207,1.617059],[114.567457,1.514146],[114.545908,1.467146],[114.512525,1.452005],[114.387054,1.500064],[114.27471,1.470892],[114.125985,1.452366],[113.999998,1.45526],[113.902381,1.43428],[113.835254,1.379864],[113.760323,1.311393],[113.681671,1.260595],[113.622243,1.235946],[113.513206,1.308396],[113.458222,1.302143],[113.359004,1.327154],[113.126253,1.408131],[113.068634,1.431799],[113.00657,1.433892],[112.988225,1.457121],[112.997992,1.49624],[112.988225,1.54758],[112.943008,1.567011],[112.476163,1.559078],[112.341598,1.51474],[112.250647,1.479652],[112.185742,1.439086],[112.167345,1.338162],[112.128588,1.243594],[112.078462,1.143341],[111.923122,1.113266],[111.809021,1.01167],[111.769747,0.999474],[111.691302,1.014202],[111.607379,1.022625],[111.546711,0.994358],[111.483149,0.995753],[111.286727,1.043192],[111.101312,1.050531],[110.996047,1.026346],[110.938066,1.017354],[110.614778,0.878138],[110.505741,0.861963],[110.461403,0.882065],[110.399081,0.939064],[110.315262,0.996012],[110.114757,1.19016],[110.04086,1.235739],[109.991664,1.282558],[109.944897,1.338058],[109.878492,1.397848],[109.818031,1.438956],[109.735762,1.522931],[109.65401,1.614889],[109.63582,1.776636],[109.570811,1.806298],[109.5489,1.848363],[109.538978,1.896215],[109.628895,2.027525],[109.694318,1.888774],[109.719639,1.85782],[109.86485,1.76444],[109.984533,1.717622],[110.114034,1.698605],[110.245912,1.694729],[110.298312,1.701188],[110.349265,1.71974],[110.399494,1.699845],[110.675136,1.54802],[110.782003,1.520838],[110.894968,1.532465],[110.939926,1.517324],[111.09847,1.400897],[111.145185,1.386944],[111.223217,1.395832],[111.123481,1.449007],[111.057955,1.48668],[111.028706,1.557838],[111.046587,1.633647],[111.110149,1.684084],[111.154177,1.738757],[111.16999,1.902313],[111.198102,1.985099],[111.250915,2.063854],[111.268175,2.139766],[111.208851,2.197644],[111.195518,2.297173],[111.208644,2.379648],[111.24213,2.435769],[111.295874,2.398769],[111.351374,2.364455],[111.406151,2.367866],[111.443875,2.38156],[111.4508,2.42409],[111.440464,2.498091],[111.443255,2.63431],[111.512501,2.743037],[111.623192,2.817968],[111.727785,2.853831],[112.118873,2.914706],[112.737336,3.070459],[112.920477,3.130714],[112.987863,3.161926],[113.044707,3.205231],[113.140206,3.343517],[113.320143,3.561488],[113.44613,3.740573],[113.71216,4.001436],[113.92393,4.243204],[113.952559,4.288705],[113.987802,4.420712],[113.990386,4.482827],[113.984288,4.545821],[114.012504,4.575251],[114.053638,4.592847],[114.063818,4.592692],[114.095134,4.565251],[114.168825,4.526933],[114.224119,4.477867],[114.261016,4.414253],[114.287629,4.354747],[114.289593,4.304182],[114.322976,4.262815],[114.416562,4.255839],[114.447102,4.203568],[114.512215,4.113548],[114.571746,4.049055],[114.608333,4.023992],[114.654067,4.037661],[114.725018,4.096546],[114.776178,4.168816],[114.810439,4.26651],[114.783516,4.280747],[114.83111,4.354515],[114.840257,4.393221],[114.818294,4.428774],[114.790131,4.463914],[114.779279,4.553004],[114.7599,4.666486],[114.746722,4.718084],[114.78424,4.754826],[114.864545,4.801774],[114.944747,4.856241],[115.026809,4.899727],[115.028824,4.821127],[115.026757,4.691368],[115.051562,4.582666],[115.107011,4.39043],[115.170573,4.364204],[115.246692,4.347229],[115.290617,4.352603],[115.319246,4.365289],[115.326739,4.380767],[115.2793,4.456369],[115.266691,4.633981],[115.227933,4.750563],[115.168454,4.866706],[115.13998,4.899753],[115.374901,4.932774],[115.427611,4.969206],[115.519802,5.048917],[115.554528,5.09354],[115.58202,5.194154],[115.466885,5.254098],[115.42172,5.330528],[115.419033,5.413158],[115.556389,5.566689],[115.603931,5.603431],[115.624498,5.548886],[115.685063,5.535089],[115.740874,5.532996],[115.796891,5.536148],[115.877093,5.613508],[115.918434,5.724948],[116.059717,5.88238],[116.11005,6.003251],[116.138369,6.129523],[116.494729,6.521669],[116.538241,6.582699],[116.749804,6.97712],[116.776159,6.99022],[116.833003,6.952057],[116.84985,6.82669],[116.841995,6.772093],[116.807682,6.691065]]],[[[117.141615,7.168193],[117.080637,7.115277],[117.060173,7.178839],[117.064307,7.260694],[117.146886,7.33702],[117.264088,7.351645],[117.280728,7.290615],[117.266775,7.2208],[117.239387,7.184781],[117.141615,7.168193]]]]},"type":"Feature","properties":{"ISO_A2":"MY","NAME":"Malaysia"}},{"geometry":{"type":"Polygon","coordinates":[[[23.380671,-17.640628],[23.59487,-17.599442],[23.799251,-17.560168],[24.03691,-17.520946],[24.227131,-17.489578],[24.274932,-17.481],[24.732889,-17.517742],[24.932411,-17.543477],[25.001761,-17.568591],[25.092143,-17.634324],[25.2588,-17.793591],[25.21596,-17.787596],[24.909105,-17.821393],[24.792213,-17.864594],[24.530524,-18.052748],[24.474868,-18.028512],[24.412185,-17.989444],[24.358958,-17.97823],[24.243926,-18.023447],[24.129308,-18.077501],[24.002597,-18.154137],[23.898366,-18.229223],[23.864311,-18.269479],[23.700497,-18.424353],[23.647167,-18.449468],[23.599728,-18.459958],[23.580608,-18.452879],[23.560144,-18.386423],[23.459788,-18.231032],[23.298661,-18.027375],[23.251532,-18.007479],[23.219389,-17.999728],[23.099913,-18.009598],[22.752751,-18.067166],[22.460056,-18.11569],[22.011401,-18.19863],[21.529673,-18.265603],[21.232534,-18.306841],[20.9741,-18.31883],[20.974358,-18.520523],[20.974978,-18.928508],[20.975599,-19.336442],[20.976219,-19.744376],[20.976839,-20.15231],[20.977459,-20.560243],[20.978079,-20.968177],[20.978699,-21.376111],[20.979268,-21.784045],[20.979526,-21.961967],[20.970999,-22.000156],[20.82274,-22.000156],[20.487515,-22.000156],[20.205361,-22.000156],[19.977365,-22.000156],[19.977623,-22.242621],[19.977933,-22.529271],[19.978243,-22.81592],[19.978554,-23.102517],[19.978915,-23.389166],[19.979277,-23.675816],[19.979587,-23.962413],[19.979897,-24.249062],[19.980207,-24.535711],[19.980466,-24.751977],[19.980466,-24.776782],[19.980414,-25.196756],[19.980414,-25.641587],[19.980414,-26.086366],[19.980414,-26.531145],[19.980414,-26.975976],[19.980414,-27.420755],[19.980414,-27.865534],[19.980414,-28.310365],[19.980414,-28.451286],[19.877836,-28.449426],[19.67144,-28.503893],[19.539821,-28.574638],[19.482873,-28.661661],[19.407219,-28.714474],[19.312651,-28.733285],[19.271,-28.777726],[19.282265,-28.847955],[19.245782,-28.901646],[19.161756,-28.93875],[19.026054,-28.92795],[18.838778,-28.869142],[18.600343,-28.855241],[18.310852,-28.886247],[18.102699,-28.871674],[17.976092,-28.811316],[17.84163,-28.7769],[17.699313,-28.768321],[17.616786,-28.743103],[17.447959,-28.698145],[17.415713,-28.621043],[17.395869,-28.562649],[17.34781,-28.501154],[17.34259,-28.451648],[17.380314,-28.413924],[17.385689,-28.353204],[17.358713,-28.269437],[17.31205,-28.228613],[17.2458,-28.230886],[17.204563,-28.198847],[17.18844,-28.132494],[17.149372,-28.082265],[17.056251,-28.031002],[16.933313,-28.069656],[16.87528,-28.127947],[16.841174,-28.218897],[16.810116,-28.264579],[16.794562,-28.340854],[16.787482,-28.394701],[16.755753,-28.452165],[16.723042,-28.475523],[16.689452,-28.464981],[16.6262,-28.487925],[16.487087,-28.572881],[16.447555,-28.617529],[16.335055,-28.536501],[16.007116,-28.231713],[15.890948,-28.152545],[15.719072,-27.965786],[15.341524,-27.386493],[15.287574,-27.274976],[15.215743,-26.995096],[15.132854,-26.787564],[15.123759,-26.667881],[15.16324,-26.600185],[15.139056,-26.507994],[15.096578,-26.425829],[14.9678,-26.318032],[14.931213,-25.958157],[14.845223,-25.725716],[14.863724,-25.533583],[14.822589,-25.358607],[14.818558,-25.246366],[14.837162,-25.033149],[14.768019,-24.787996],[14.627976,-24.54801],[14.501575,-24.201985],[14.483385,-24.050366],[14.496924,-23.642846],[14.47243,-23.476655],[14.473877,-23.281111],[14.423854,-23.078643],[14.403287,-22.968055],[14.43853,-22.880567],[14.459304,-22.908162],[14.495684,-22.921391],[14.519972,-22.805171],[14.525966,-22.702542],[14.462818,-22.44912],[14.321845,-22.189911],[13.973235,-21.767612],[13.888073,-21.606691],[13.839393,-21.473263],[13.45058,-20.916707],[13.284388,-20.523967],[13.168323,-20.184659],[13.042129,-20.028183],[12.458186,-18.926751],[12.328685,-18.751052],[12.095727,-18.540935],[12.04126,-18.470655],[11.951343,-18.270461],[11.77585,-18.001743],[11.733475,-17.751009],[11.721693,-17.466789],[11.743036,-17.249231],[11.902561,-17.226597],[12.013923,-17.168512],[12.114331,-17.164533],[12.213343,-17.209957],[12.318453,-17.213419],[12.359277,-17.205875],[12.548154,-17.212696],[12.656571,-17.160503],[12.785142,-17.108258],[12.859246,-17.062576],[12.963168,-17.015447],[13.101144,-16.967698],[13.179485,-16.971677],[13.275707,-16.989557],[13.403709,-17.00785],[13.476005,-17.039993],[13.561736,-17.141227],[13.694389,-17.233521],[13.792006,-17.288402],[13.904196,-17.360697],[13.937992,-17.388757],[13.987395,-17.404157],[14.017522,-17.408911],[14.225881,-17.397749],[14.414707,-17.387672],[14.61795,-17.387982],[15.000563,-17.388551],[15.383175,-17.389119],[15.765787,-17.389688],[16.1484,-17.390256],[16.531012,-17.390824],[16.913624,-17.391393],[17.296237,-17.391961],[17.678849,-17.39253],[17.835377,-17.392788],[18.108797,-17.395992],[18.396428,-17.399403],[18.428261,-17.405191],[18.460403,-17.424621],[18.486655,-17.442811],[18.588147,-17.570038],[18.718062,-17.70326],[18.826014,-17.766305],[18.955308,-17.803564],[19.07649,-17.817672],[19.189454,-17.808473],[19.377143,-17.825475],[19.639349,-17.868625],[19.911788,-17.881337],[20.194354,-17.863664],[20.392998,-17.887435],[20.507617,-17.952547],[20.625129,-17.996679],[20.745535,-18.019778],[20.908316,-18.006084],[21.113471,-17.955751],[21.287931,-17.962986],[21.368805,-17.999469],[21.416864,-18.00071],[21.718447,-17.947741],[21.96081,-17.905212],[22.32425,-17.837516],[22.624077,-17.781602],[23.068236,-17.698868],[23.380671,-17.640628]]]},"type":"Feature","properties":{"ISO_A2":"NA","NAME":"Namibia"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.54443,-22.623218],[167.512701,-22.661097],[167.473427,-22.653346],[167.443764,-22.639186],[167.42206,-22.618516],[167.443454,-22.541414],[167.529444,-22.579242],[167.54443,-22.623218]]],[[[168.010965,-21.429958],[168.057887,-21.448406],[168.139122,-21.445254],[168.120726,-21.615786],[168.006417,-21.643123],[167.966833,-21.641624],[167.941305,-21.605761],[167.875883,-21.582093],[167.879087,-21.523595],[167.815421,-21.392647],[167.926009,-21.372804],[167.988434,-21.33787],[167.98492,-21.369755],[167.994635,-21.40691],[168.010965,-21.429958]]],[[[167.400873,-21.16062],[167.346199,-21.168785],[167.273232,-21.096748],[167.133912,-21.060678],[167.072624,-20.997219],[167.03273,-20.922599],[167.111692,-20.904098],[167.189413,-20.803536],[167.136393,-20.766122],[167.045029,-20.759508],[167.055778,-20.720234],[167.203986,-20.673518],[167.268891,-20.700597],[167.297933,-20.732533],[167.293489,-20.891489],[167.360875,-20.942132],[167.430535,-21.055304],[167.430328,-21.087033],[167.400873,-21.16062]]],[[[166.546765,-20.698736],[166.493538,-20.708555],[166.557824,-20.617087],[166.559684,-20.561174],[166.585419,-20.450483],[166.582525,-20.413379],[166.624693,-20.418237],[166.670788,-20.450173],[166.617872,-20.477561],[166.600302,-20.525362],[166.602162,-20.585306],[166.622522,-20.596314],[166.588829,-20.661943],[166.546765,-20.698736]]],[[[164.202308,-20.246051],[164.31517,-20.308889],[164.435989,-20.282224],[164.588125,-20.381133],[164.975698,-20.681011],[165.111917,-20.744573],[165.191809,-20.768861],[165.252373,-20.817954],[165.306634,-20.887045],[165.380531,-20.935879],[165.412467,-20.981355],[165.420529,-21.042798],[165.447194,-21.080573],[165.582379,-21.179999],[165.662788,-21.267177],[165.774616,-21.311722],[165.822881,-21.36376],[165.885306,-21.389133],[165.949489,-21.44236],[166.057802,-21.483908],[166.303369,-21.637232],[166.492918,-21.782804],[166.587486,-21.872825],[166.689702,-21.953027],[166.820133,-22.017002],[166.9424,-22.090176],[167.004308,-22.261483],[166.970305,-22.322875],[166.900025,-22.353312],[166.835016,-22.355483],[166.774141,-22.376153],[166.570639,-22.265566],[166.522167,-22.249184],[166.46801,-22.256057],[166.437727,-22.231511],[166.416437,-22.196216],[166.29231,-22.155081],[166.176658,-22.089194],[166.143172,-22.044442],[166.123741,-21.988735],[166.096043,-21.956644],[165.933055,-21.907965],[165.823398,-21.853808],[165.743816,-21.777327],[165.620206,-21.724255],[165.42766,-21.615011],[165.328648,-21.580026],[165.241935,-21.525508],[165.010114,-21.326863],[164.927432,-21.289811],[164.855292,-21.201548],[164.655614,-20.992052],[164.559496,-20.905855],[164.454696,-20.829116],[164.374494,-20.739302],[164.312896,-20.632745],[164.169752,-20.480145],[164.152182,-20.414981],[164.158073,-20.347957],[164.123657,-20.304858],[164.065056,-20.278607],[164.037254,-20.233648],[164.040561,-20.172877],[164.059681,-20.141509],[164.202308,-20.246051]]],[[[159.951818,-19.311741],[159.936419,-19.333135],[159.928254,-19.174282],[159.95988,-19.114647],[159.975073,-19.238257],[159.951818,-19.311741]]]]},"type":"Feature","properties":{"ISO_A2":"NC","NAME":"New Caledonia"}},{"geometry":{"type":"Polygon","coordinates":[[[14.978962,22.996168],[15.088929,22.418348],[15.172284,21.922073],[15.177865,21.605813],[15.181844,21.523389],[15.215847,21.46745],[15.293672,21.411536],[15.607347,20.954406],[15.540323,20.874876],[15.587142,20.733308],[15.668481,20.672382],[15.929343,20.39984],[15.963191,20.346174],[15.948825,20.30318],[15.766252,19.982553],[15.73504,19.904057],[15.69866,19.495193],[15.672925,19.206787],[15.63763,18.810842],[15.595514,18.337072],[15.561562,17.937252],[15.516707,17.408473],[15.474332,16.908374],[15.212126,16.633895],[14.746728,16.146612],[14.367992,15.75015],[14.178184,15.48474],[13.807096,14.966089],[13.642403,14.630787],[13.513625,14.4555],[13.448203,14.380647],[13.50577,14.134435],[13.606333,13.704616],[13.426912,13.701774],[13.323869,13.670845],[13.193851,13.573074],[13.048434,13.534523],[12.871649,13.448999],[12.759976,13.380372],[12.654763,13.326551],[12.51012,13.194337],[12.463198,13.093775],[12.319073,13.073673],[12.118,13.090416],[11.989997,13.191805],[11.693374,13.29769],[11.501035,13.34053],[11.411945,13.353604],[10.958846,13.371536],[10.475878,13.33022],[10.229588,13.281024],[10.184629,13.270095],[10.045155,13.206171],[9.929244,13.135245],[9.615879,12.81064],[9.201537,12.821492],[8.957624,12.857458],[8.750608,12.908153],[8.456001,13.059668],[8.095041,13.291179],[7.955721,13.322753],[7.830509,13.340917],[7.788703,13.337894],[7.357825,13.107159],[7.274729,13.112275],[7.17303,13.086333],[7.106058,13.029076],[7.056758,13.000189],[7.00503,12.995538],[6.937179,13.008199],[6.870568,13.043287],[6.804267,13.10765],[6.626552,13.364249],[6.589913,13.40913],[6.514052,13.485405],[6.38636,13.603614],[6.299802,13.658805],[6.247144,13.67299],[6.184253,13.663662],[5.838176,13.765362],[5.491996,13.872849],[5.415773,13.85918],[5.361616,13.836882],[5.241934,13.757248],[5.100857,13.742727],[4.921695,13.749135],[4.823355,13.759781],[4.664811,13.733219],[4.559443,13.7018],[4.421415,13.647514],[4.24215,13.501063],[4.190783,13.482123],[4.14753,13.457732],[4.087379,13.055482],[4.038751,12.934663],[3.947904,12.775034],[3.769207,12.622176],[3.646682,12.529985],[3.64384,12.405264],[3.634176,12.201607],[3.632523,12.061564],[3.640636,11.970381],[3.620069,11.926973],[3.611801,11.887285],[3.618415,11.827754],[3.647354,11.799642],[3.664717,11.762435],[3.653142,11.731842],[3.595419,11.696289],[3.531702,11.787446],[3.449847,11.851938],[3.35993,11.880464],[3.299106,11.927128],[3.267377,11.991878],[3.149555,12.118072],[2.87815,12.367721],[2.850193,12.373664],[2.805235,12.383844],[2.728547,12.353639],[2.681366,12.312815],[2.648449,12.296769],[2.598426,12.29434],[2.469338,12.262818],[2.365985,12.221942],[2.363298,12.188429],[2.412649,11.99932],[2.389188,11.897052],[2.343351,11.945989],[2.194419,12.136469],[2.091377,12.277959],[2.07298,12.309352],[2.058407,12.357954],[2.068536,12.379141],[2.10936,12.393869],[2.203824,12.412576],[2.221394,12.427226],[2.226252,12.466061],[2.211576,12.538408],[2.159745,12.636438],[2.104606,12.701292],[2.073807,12.713953],[2.017376,12.716227],[1.956191,12.707442],[1.840953,12.62786],[1.789793,12.613261],[1.67104,12.619798],[1.564949,12.635405],[1.500508,12.676462],[1.308685,12.834256],[1.096812,13.001119],[1.007877,13.024813],[0.987258,13.041892],[0.973099,13.170359],[0.976716,13.32451],[0.988446,13.364843],[1.076865,13.340788],[1.170916,13.329574],[1.201198,13.357531],[1.125957,13.41236],[1.01785,13.46786],[0.977749,13.551938],[0.946589,13.581135],[0.897909,13.610927],[0.842254,13.626404],[0.78603,13.650046],[0.747789,13.674514],[0.684537,13.685392],[0.618185,13.703402],[0.522325,13.839724],[0.429204,13.972119],[0.374065,14.07635],[0.354842,14.139034],[0.382489,14.245823],[0.354583,14.288017],[0.25061,14.396434],[0.16382,14.497203],[0.185059,14.652956],[0.202784,14.782793],[0.203817,14.865062],[0.217486,14.911493],[0.2287,14.963686],[0.286241,14.980197],[0.433028,14.979008],[0.718644,14.954901],[0.947415,14.982109],[0.960076,14.986941],[1.121307,15.126105],[1.30021,15.272272],[1.569135,15.286457],[1.859401,15.301728],[2.088173,15.30935],[2.420814,15.320383],[2.689686,15.329891],[3.001037,15.34095],[3.010494,15.40831],[3.029407,15.424847],[3.060103,15.427198],[3.289081,15.391102],[3.504262,15.356324],[3.52054,15.483086],[3.709572,15.641681],[3.816543,15.674031],[3.843001,15.701703],[3.876901,15.755292],[3.897985,15.838],[3.907183,15.896808],[3.947077,15.945642],[3.976223,16.035559],[4.014877,16.192733],[4.121279,16.35771],[4.182153,16.581779],[4.191197,16.7982],[4.202979,16.962712],[4.234657,16.996379],[4.233675,17.288428],[4.232745,17.582183],[4.231918,17.830514],[4.230884,18.139462],[4.230006,18.410608],[4.229024,18.704362],[4.228197,18.968041],[4.227629,19.14276],[4.445755,19.18454],[4.671322,19.227767],[5.00138,19.291071],[5.358722,19.359542],[5.748363,19.434215],[5.836626,19.479147],[6.130665,19.731974],[6.26337,19.846153],[6.527075,20.072961],[6.73068,20.248067],[6.989372,20.470534],[7.263361,20.694499],[7.481745,20.873093],[7.825187,21.075561],[8.343036,21.380866],[8.860886,21.686144],[9.378684,21.991423],[9.896533,22.296727],[10.414383,22.602006],[10.932181,22.907284],[11.45003,23.212589],[11.96788,23.517867],[12.488778,23.401673],[12.983632,23.29124],[13.481276,23.180187],[13.598581,23.119545],[13.862648,22.902091],[14.200663,22.623736],[14.215546,22.619679],[14.230739,22.618465],[14.555629,22.782537],[14.97891,22.996271],[14.978962,22.996168]]]},"type":"Feature","properties":{"ISO_A2":"NE","NAME":"Niger"}},{"geometry":{"type":"Polygon","coordinates":[[[167.939445,-29.01766],[167.959805,-29.028305],[167.978099,-29.0343],[167.990398,-29.042051],[167.988641,-29.059001],[167.979029,-29.075641],[167.96766,-29.082772],[167.964146,-29.085356],[167.961872,-29.088457],[167.960632,-29.092177],[167.960735,-29.096312],[167.954741,-29.082152],[167.944406,-29.072954],[167.93376,-29.072127],[167.926526,-29.082772],[167.920428,-29.082772],[167.918257,-29.07192],[167.914227,-29.061895],[167.912366,-29.0528],[167.916397,-29.045152],[167.924045,-29.03585],[167.924562,-29.028512],[167.918567,-29.025101],[167.906165,-29.028099],[167.920634,-29.013939],[167.939445,-29.01766]]]},"type":"Feature","properties":{"ISO_A2":"NF","NAME":"Norfolk Island"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[7.300774,4.41818],[7.203933,4.387639],[7.140474,4.395133],[7.227394,4.527321],[7.271422,4.498899],[7.327956,4.48722],[7.300774,4.41818]]],[[[5.838176,13.765362],[6.184253,13.663662],[6.247144,13.67299],[6.299802,13.658805],[6.38636,13.603614],[6.514052,13.485405],[6.589913,13.40913],[6.626552,13.364249],[6.804267,13.10765],[6.870568,13.043287],[6.937179,13.008199],[7.00503,12.995538],[7.056758,13.000189],[7.106058,13.029076],[7.17303,13.086333],[7.274729,13.112275],[7.357825,13.107159],[7.788703,13.337894],[7.830509,13.340917],[7.955721,13.322753],[8.095041,13.291179],[8.456001,13.059668],[8.750608,12.908153],[8.957624,12.857458],[9.201537,12.821492],[9.615879,12.81064],[9.929244,13.135245],[10.045155,13.206171],[10.184629,13.270095],[10.229588,13.281024],[10.475878,13.33022],[10.958846,13.371536],[11.411945,13.353604],[11.501035,13.34053],[11.693374,13.29769],[11.989997,13.191805],[12.118,13.090416],[12.319073,13.073673],[12.463198,13.093775],[12.51012,13.194337],[12.654763,13.326551],[12.759976,13.380372],[12.871649,13.448999],[13.048434,13.534523],[13.193851,13.573074],[13.323869,13.670845],[13.426912,13.701774],[13.606333,13.704616],[13.763481,13.489565],[13.932359,13.258493],[14.063927,13.078504],[14.160097,12.61277],[14.170329,12.524068],[14.177616,12.484096],[14.184902,12.447199],[14.197459,12.383792],[14.272855,12.356507],[14.415379,12.344131],[14.518938,12.298268],[14.58095,12.222045],[14.587048,12.209436],[14.619707,12.15099],[14.627149,12.108693],[14.618209,11.986607],[14.597383,11.829821],[14.56183,11.728716],[14.581674,11.591179],[14.575421,11.532423],[14.559763,11.49227],[14.496097,11.446123],[14.409488,11.401191],[14.202369,11.26815],[14.143251,11.248539],[14.056744,11.244999],[13.9814,11.211848],[13.892103,11.140096],[13.699867,10.873135],[13.535329,10.605064],[13.478485,10.383242],[13.41451,10.171447],[13.269867,10.036184],[13.249765,9.960064],[13.243719,9.915933],[13.23881,9.814027],[13.221188,9.645148],[13.198761,9.563758],[13.175455,9.539625],[13.019392,9.48831],[12.929475,9.426247],[12.87568,9.303541],[12.855991,9.170733],[12.824468,9.01945],[12.806536,8.886616],[12.782249,8.81786],[12.731141,8.745642],[12.651559,8.667766],[12.582726,8.624125],[12.403512,8.595548],[12.311321,8.419745],[12.233393,8.282337],[12.231119,8.227379],[12.155982,7.942487],[12.025189,7.727772],[12.016611,7.651988],[12.016042,7.589744],[11.852435,7.400737],[11.809181,7.345056],[11.767375,7.272244],[11.808613,7.201938],[11.85476,7.137963],[11.861426,7.116413],[11.787012,7.05621],[11.657511,6.951566],[11.580048,6.888856],[11.562995,6.854621],[11.551678,6.697266],[11.529147,6.655046],[11.477574,6.597401],[11.401764,6.533917],[11.324611,6.484669],[11.237278,6.450537],[11.153356,6.437928],[11.106485,6.45772],[11.079665,6.505521],[11.032536,6.697886],[11.008662,6.739124],[10.954195,6.776538],[10.846501,6.881802],[10.737567,6.988308],[10.606206,7.063083],[10.578094,7.057709],[10.55639,7.037452],[10.519079,6.930456],[10.482337,6.891259],[10.413143,6.87772],[10.293098,6.876738],[10.205507,6.891595],[10.18556,6.912808],[10.167731,6.959162],[10.143598,6.996421],[10.038902,6.921412],[9.874261,6.803254],[9.820724,6.783927],[9.779848,6.760182],[9.725639,6.649982],[9.659907,6.531979],[9.574021,6.470406],[9.490201,6.418627],[9.442142,6.373384],[9.373361,6.31964],[9.238744,6.186109],[9.06015,6.009065],[8.997157,5.917727],[8.935042,5.780991],[8.898816,5.629683],[8.859129,5.463749],[8.800941,5.197435],[8.715572,5.046876],[8.640538,4.926986],[8.58514,4.832832],[8.555892,4.755214],[8.543799,4.757798],[8.51486,4.724725],[8.431351,4.746222],[8.393628,4.813763],[8.342054,4.82477],[8.252758,4.923989],[8.233741,4.907453],[8.327998,4.656099],[8.293065,4.557603],[8.028482,4.555381],[7.800796,4.522257],[7.644216,4.525357],[7.565668,4.560911],[7.530734,4.655168],[7.517402,4.645453],[7.509444,4.594914],[7.459834,4.555226],[7.284341,4.547681],[7.206723,4.612044],[7.143885,4.684107],[7.076602,4.716147],[7.086937,4.685864],[7.164142,4.615584],[7.154737,4.514402],[7.01335,4.397303],[6.923226,4.390688],[6.867829,4.441125],[6.8392,4.523497],[6.824731,4.645246],[6.787627,4.724725],[6.76768,4.724725],[6.786077,4.65199],[6.792175,4.59264],[6.793105,4.469159],[6.860388,4.373325],[6.757035,4.343559],[6.715177,4.342423],[6.633012,4.340252],[6.617302,4.375806],[6.601592,4.455181],[6.579991,4.475954],[6.554567,4.341415],[6.499996,4.331932],[6.462066,4.333173],[6.299802,4.303872],[6.263628,4.309427],[6.25598,4.334464],[6.275307,4.371697],[6.270966,4.432107],[6.214639,4.385495],[6.205544,4.292296],[6.173298,4.277414],[6.07656,4.290643],[5.970726,4.338599],[5.906441,4.387743],[5.798644,4.455956],[5.587804,4.64721],[5.553594,4.7332],[5.493236,4.838775],[5.448174,4.945848],[5.383269,5.12899],[5.403216,5.14227],[5.452102,5.126561],[5.475976,5.153846],[5.38823,5.173767],[5.37004,5.195032],[5.364148,5.259292],[5.367972,5.337762],[5.439286,5.365306],[5.500884,5.378638],[5.531787,5.426387],[5.549667,5.47424],[5.385852,5.401738],[5.232373,5.4838],[5.199197,5.533539],[5.215837,5.571676],[5.289114,5.577489],[5.393811,5.574492],[5.456649,5.611699],[5.418099,5.624722],[5.350299,5.623275],[5.325288,5.64795],[5.327355,5.707507],[5.305341,5.694356],[5.276298,5.641568],[5.172842,5.602759],[5.112381,5.641568],[5.106283,5.728126],[5.093054,5.76709],[5.042101,5.797528],[4.861027,6.026299],[4.633547,6.217166],[4.431389,6.348605],[4.125878,6.411392],[3.48664,6.408937],[3.450777,6.427076],[3.489948,6.457281],[3.546068,6.477434],[3.751637,6.583836],[3.717014,6.597944],[3.50328,6.531333],[3.43021,6.525003],[3.335538,6.396923],[2.772472,6.375735],[2.706481,6.36925],[2.708031,6.42767],[2.735678,6.595722],[2.753662,6.661764],[2.774642,6.711735],[2.752938,6.771628],[2.731751,6.852838],[2.721416,6.980272],[2.747719,7.01983],[2.756762,7.067915],[2.750613,7.143234],[2.750509,7.395053],[2.765806,7.422519],[2.783944,7.443396],[2.785133,7.476857],[2.751026,7.541917],[2.719349,7.616254],[2.720434,7.723095],[2.707721,7.826603],[2.686017,7.873757],[2.702347,8.049819],[2.711494,8.27301],[2.703071,8.371841],[2.723586,8.441914],[2.734645,8.614022],[2.732888,8.782539],[2.774849,9.048544],[2.898097,9.061359],[3.044962,9.083839],[3.110436,9.188277],[3.148056,9.320594],[3.136171,9.45162],[3.164696,9.494666],[3.223401,9.565644],[3.329544,9.667033],[3.325203,9.778473],[3.354452,9.812812],[3.404785,9.838625],[3.476718,9.851905],[3.55723,9.907303],[3.602085,10.004558],[3.645907,10.16013],[3.576557,10.26834],[3.577901,10.292499],[3.604152,10.350686],[3.646579,10.409003],[3.68022,10.427788],[3.758458,10.412698],[3.771791,10.417607],[3.783831,10.435901],[3.834474,10.607441],[3.82972,10.653769],[3.756805,10.768723],[3.744867,10.850449],[3.73417,10.971915],[3.716394,11.079608],[3.695361,11.120329],[3.656242,11.154591],[3.638879,11.176837],[3.487829,11.395429],[3.490568,11.499195],[3.553923,11.6319],[3.595419,11.696289],[3.653142,11.731842],[3.664717,11.762435],[3.647354,11.799642],[3.618415,11.827754],[3.611801,11.887285],[3.620069,11.926973],[3.640636,11.970381],[3.632523,12.061564],[3.634176,12.201607],[3.64384,12.405264],[3.646682,12.529985],[3.769207,12.622176],[3.947904,12.775034],[4.038751,12.934663],[4.087379,13.055482],[4.14753,13.457732],[4.190783,13.482123],[4.24215,13.501063],[4.421415,13.647514],[4.559443,13.7018],[4.664811,13.733219],[4.823355,13.759781],[4.921695,13.749135],[5.100857,13.742727],[5.241934,13.757248],[5.361616,13.836882],[5.415773,13.85918],[5.491996,13.872849],[5.838176,13.765362]]]]},"type":"Feature","properties":{"ISO_A2":"NG","NAME":"Nigeria"}},{"geometry":{"type":"Polygon","coordinates":[[[-83.157528,14.993064],[-83.18533,14.9564],[-83.215897,14.932371],[-83.279872,14.812791],[-83.30199,14.80212],[-83.306331,14.890513],[-83.344365,14.902088],[-83.389013,14.870669],[-83.413714,14.825349],[-83.374854,14.766127],[-83.340696,14.765301],[-83.299199,14.749023],[-83.187733,14.340107],[-83.211711,14.26714],[-83.280828,14.153607],[-83.346587,14.056972],[-83.412319,13.99651],[-83.493761,13.7388],[-83.567323,13.320324],[-83.514458,12.943965],[-83.541226,12.596286],[-83.517946,12.51412],[-83.510918,12.411827],[-83.565255,12.393404],[-83.5959,12.396505],[-83.627216,12.459343],[-83.623676,12.514534],[-83.591223,12.579362],[-83.578071,12.66716],[-83.593367,12.713074],[-83.625355,12.6129],[-83.681657,12.568122],[-83.718373,12.552619],[-83.754236,12.50195],[-83.716228,12.406737],[-83.667316,12.337051],[-83.651245,12.28708],[-83.669228,12.227523],[-83.680416,12.024331],[-83.697702,12.029964],[-83.715556,12.057404],[-83.767181,12.059264],[-83.773331,11.977383],[-83.769352,11.931623],[-83.813199,11.896406],[-83.828883,11.861033],[-83.792968,11.836177],[-83.753358,11.821268],[-83.704601,11.82455],[-83.664319,11.723884],[-83.651736,11.642029],[-83.74496,11.566478],[-83.776612,11.503949],[-83.829374,11.428166],[-83.859062,11.353648],[-83.867899,11.300034],[-83.831854,11.130535],[-83.76793,11.010233],[-83.714058,10.933855],[-83.641969,10.917215],[-83.658945,10.836858],[-83.712947,10.785879],[-83.811184,10.743246],[-83.919291,10.735366],[-84.096205,10.775699],[-84.168345,10.78035],[-84.196586,10.801718],[-84.204958,10.841328],[-84.255549,10.90073],[-84.348283,10.979899],[-84.401845,10.974473],[-84.489178,10.991629],[-84.634183,11.045631],[-84.701155,11.052194],[-84.797351,11.005892],[-84.909153,10.945301],[-85.178955,11.039947],[-85.36835,11.106454],[-85.538727,11.166295],[-85.584202,11.189447],[-85.621409,11.184486],[-85.653655,11.153066],[-85.690552,11.097462],[-85.702644,11.08152],[-85.722281,11.06625],[-85.744321,11.062116],[-85.7452,11.088574],[-85.828502,11.198748],[-85.961156,11.33135],[-86.468903,11.738302],[-86.655532,11.981543],[-86.755603,12.156623],[-86.850972,12.247728],[-87.125219,12.434125],[-87.188445,12.508358],[-87.460134,12.757568],[-87.667537,12.90358],[-87.670173,12.965669],[-87.585036,13.043313],[-87.543307,13.039695],[-87.497961,12.984169],[-87.424374,12.921124],[-87.389647,12.920659],[-87.338591,12.949933],[-87.337273,12.97926],[-87.059177,12.991455],[-87.009309,13.007837],[-86.958898,13.053725],[-86.933164,13.117546],[-86.928797,13.179403],[-86.918229,13.223586],[-86.873555,13.266477],[-86.792139,13.279784],[-86.7293,13.284357],[-86.710697,13.313374],[-86.729584,13.407244],[-86.76351,13.63524],[-86.77059,13.698751],[-86.758962,13.746138],[-86.733641,13.76345],[-86.610238,13.77487],[-86.376944,13.755646],[-86.331753,13.770064],[-86.238219,13.899462],[-86.151222,13.994598],[-86.089236,14.037231],[-86.040376,14.05015],[-85.983764,13.965685],[-85.786696,13.844452],[-85.753442,13.852049],[-85.733934,13.858689],[-85.727707,13.876053],[-85.731221,13.931863],[-85.681922,13.982558],[-85.57981,14.02824],[-85.477077,14.1087],[-85.373776,14.223887],[-85.284195,14.291634],[-85.208334,14.31184],[-85.179472,14.343311],[-85.197559,14.385996],[-85.191513,14.446612],[-85.161334,14.52516],[-85.117305,14.570584],[-85.059402,14.58296],[-85.036509,14.607662],[-85.048653,14.644739],[-85.037336,14.685564],[-84.985143,14.752433],[-84.860448,14.809742],[-84.789186,14.790364],[-84.72981,14.713366],[-84.645965,14.661069],[-84.537651,14.633422],[-84.453548,14.64368],[-84.393655,14.691765],[-84.339782,14.706338],[-84.291929,14.687373],[-84.26666,14.698121],[-84.263973,14.738532],[-84.23922,14.747834],[-84.192401,14.726027],[-84.150801,14.72042],[-84.114421,14.731013],[-84.100313,14.750624],[-84.092949,14.770907],[-84.065793,14.786075],[-83.972259,14.771088],[-83.867304,14.794498],[-83.750929,14.856251],[-83.673647,14.883562],[-83.635484,14.876431],[-83.58975,14.907566],[-83.536523,14.977019],[-83.415032,15.008051],[-83.157528,14.993064]]]},"type":"Feature","properties":{"ISO_A2":"NI","NAME":"Nicaragua"}},{"geometry":{"type":"Polygon","coordinates":[[[-169.803428,-19.083021],[-169.90381,-19.137901],[-169.948329,-19.072892],[-169.908745,-18.99021],[-169.86159,-18.968661],[-169.834021,-18.966025],[-169.793429,-19.04261],[-169.803428,-19.083021]]]},"type":"Feature","properties":{"ISO_A2":"NU","NAME":"Niue"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.205805,12.144582],[-68.25433,12.032082],[-68.282235,12.08226],[-68.287247,12.171712],[-68.307143,12.206749],[-68.348432,12.228091],[-68.371067,12.257547],[-68.369258,12.301937],[-68.219474,12.231243],[-68.205805,12.144582]]],[[[-62.937522,17.495651],[-62.961707,17.475032],[-62.983101,17.476892],[-62.997157,17.496839],[-62.999586,17.530377],[-62.979329,17.521179],[-62.971784,17.516063],[-62.965428,17.509293],[-62.937522,17.495651]]],[[[-63.232672,17.623137],[-63.241586,17.619597],[-63.254506,17.628666],[-63.252154,17.64528],[-63.241638,17.651817],[-63.233473,17.647218],[-63.22691,17.634118],[-63.232672,17.623137]]],[[[4.22613,51.386476],[4.211454,51.348752],[4.172593,51.307101],[4.039991,51.247079],[3.902067,51.207676],[3.830754,51.212585],[3.781919,51.233204],[3.755668,51.254856],[3.681822,51.275682],[3.580278,51.286172],[3.517129,51.263641],[3.471964,51.242247],[3.432483,51.245761],[3.402821,51.263641],[3.380083,51.291133],[3.350111,51.377691],[3.425765,51.393504],[3.589476,51.399395],[3.716497,51.369165],[3.883412,51.354488],[4.011053,51.395933],[4.111512,51.360638],[4.22613,51.386476]]],[[[3.949144,51.739478],[4.046813,51.684908],[4.067587,51.667493],[4.075131,51.64876],[3.951005,51.62703],[3.819023,51.694003],[3.731793,51.678241],[3.69903,51.709893],[3.698514,51.729711],[3.789051,51.746454],[3.949144,51.739478]]],[[[4.886141,53.070714],[4.787129,52.999814],[4.726771,53.019606],[4.709201,53.03604],[4.739794,53.091333],[4.886451,53.183317],[4.886141,53.070714]]],[[[5.108557,53.308013],[4.923762,53.23458],[4.907949,53.246259],[5.027011,53.310183],[5.108557,53.308013]]],[[[4.22613,51.386476],[4.1389,51.401514],[4.006505,51.443217],[3.821917,51.409395],[3.693553,51.449883],[3.586893,51.453914],[3.52054,51.48616],[3.448916,51.540756],[3.499559,51.576645],[3.548652,51.589099],[3.743989,51.596024],[3.885996,51.574217],[4.141277,51.455748],[4.205769,51.456704],[4.274086,51.471639],[4.239359,51.503885],[4.175487,51.519285],[4.080506,51.551117],[4.004748,51.595869],[4.182618,51.610287],[4.15802,51.633438],[4.134559,51.672919],[3.946871,51.810533],[3.97891,51.847792],[4.026039,51.927735],[4.084847,51.994088],[4.131769,52.011916],[4.208767,52.058993],[4.376302,52.19684],[4.482859,52.309185],[4.56213,52.442587],[4.678299,52.809774],[4.712715,52.872122],[4.768733,52.941317],[4.839116,52.928268],[4.888002,52.908347],[5.061221,52.960644],[5.358361,53.096501],[5.446004,53.214065],[5.531993,53.268687],[5.873575,53.375192],[6.062194,53.407102],[6.353235,53.415293],[6.563558,53.434284],[6.816256,53.441183],[6.912374,53.375373],[6.968185,53.327288],[7.057998,53.300571],[7.197318,53.282278],[7.188947,53.187193],[7.189928,52.999504],[7.179541,52.966225],[7.117065,52.887005],[7.050867,52.744791],[7.032987,52.65136],[7.013143,52.633532],[6.748457,52.6341],[6.710733,52.617874],[6.70541,52.597668],[6.718794,52.573587],[6.712438,52.549661],[6.691613,52.530179],[6.702981,52.499225],[6.748818,52.464033],[6.832483,52.442277],[6.922038,52.440262],[6.968133,52.444112],[7.001826,52.418971],[7.035158,52.380214],[7.032625,52.331483],[7.019603,52.266035],[6.97728,52.205496],[6.855065,52.135784],[6.80034,52.111212],[6.749025,52.098681],[6.724479,52.080232],[6.712955,52.0569],[6.715642,52.036204],[6.802407,51.980187],[6.80034,51.967397],[6.775225,51.938277],[6.741842,51.910889],[6.517566,51.853941],[6.424962,51.858385],[6.372149,51.830015],[6.355716,51.824666],[6.297115,51.850737],[6.166528,51.880761],[6.117229,51.8704],[6.089841,51.853941],[6.007572,51.833994],[5.948764,51.802678],[5.948505,51.762396],[6.052737,51.658242],[6.089375,51.637779],[6.091132,51.598918],[6.141569,51.550084],[6.193245,51.488899],[6.198878,51.449986],[6.192832,51.410609],[6.166218,51.35485],[6.075836,51.224109],[6.074751,51.199046],[6.082451,51.179977],[6.113353,51.174706],[6.136918,51.164836],[6.129993,51.147421],[5.961063,51.056677],[5.939204,51.040812],[5.868407,51.045308],[5.857503,51.030115],[5.867167,51.005673],[5.89471,50.984227],[5.95512,50.972935],[6.006848,50.949965],[6.048448,50.904903],[5.993929,50.750443],[5.797404,50.754525],[5.747071,50.759589],[5.693637,50.774679],[5.693587,50.774742],[5.669091,50.805943],[5.63948,50.843615],[5.647542,50.866663],[5.736632,50.932137],[5.749965,50.950224],[5.740818,50.959913],[5.749758,50.988748],[5.818281,51.086417],[5.827118,51.125639],[5.796473,51.153054],[5.752393,51.169487],[5.608785,51.198451],[5.540417,51.239302],[5.508739,51.27501],[5.476855,51.285035],[5.429777,51.272995],[5.31087,51.259714],[5.214183,51.278963],[5.099875,51.346479],[5.073417,51.406811],[5.059464,51.453139],[5.030939,51.469107],[4.992595,51.445361],[4.943916,51.407767],[4.848056,51.403271],[4.820667,51.412056],[4.816068,51.43283],[4.81059,51.452725],[4.784184,51.477375],[4.755658,51.491095],[4.63396,51.421719],[4.588795,51.421926],[4.531693,51.448591],[4.503426,51.474688],[4.440897,51.459805],[4.384777,51.427611],[4.404,51.367097],[4.373718,51.355987],[4.304471,51.361516],[4.22613,51.386476]]],[[[5.325804,53.385734],[5.23258,53.377802],[5.190206,53.39178],[5.415101,53.431468],[5.557418,53.44356],[5.582636,53.438082],[5.325804,53.385734]]],[[[5.929282,53.458856],[5.731981,53.44263],[5.665319,53.454877],[5.65426,53.466504],[5.708107,53.473377],[5.876262,53.475083],[5.928248,53.465006],[5.929282,53.458856]]],[[[6.333392,53.510739],[6.193245,53.476788],[6.159242,53.483919],[6.167717,53.493738],[6.290914,53.514977],[6.333392,53.510739]]],[[[6.734711,53.582518],[6.642107,53.579211],[6.668565,53.605669],[6.754554,53.625513],[6.800857,53.625513],[6.734711,53.582518]]]]},"type":"Feature","properties":{"ISO_A2":"NL","NAME":"Netherlands"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[5.085819,60.30756],[5.089023,60.188781],[4.996936,60.197773],[4.955595,60.2433],[4.943502,60.272394],[4.950737,60.341149],[4.930066,60.412075],[4.957248,60.447267],[4.990631,60.452047],[5.050162,60.388976],[5.085819,60.30756]]],[[[4.958695,61.084566],[4.870122,61.071906],[4.799015,61.082732],[4.82444,61.17823],[4.861647,61.193836],[4.91539,61.199366],[4.973268,61.148232],[4.958695,61.084566]]],[[[8.102689,63.337581],[8.004711,63.336909],[7.888232,63.352361],[7.815368,63.385072],[7.803999,63.413907],[7.938358,63.449822],[8.073544,63.470803],[8.136176,63.431322],[8.14093,63.366417],[8.102689,63.337581]]],[[[8.470832,63.667122],[8.35611,63.664796],[8.287071,63.687172],[8.451298,63.731821],[8.708854,63.774299],[8.733452,63.801326],[8.764664,63.804633],[8.809209,63.771457],[8.814894,63.725981],[8.786472,63.70345],[8.470832,63.667122]]],[[[11.231491,64.865886],[11.178987,64.838058],[11.062509,64.860382],[10.832548,64.843122],[10.739841,64.870304],[10.813428,64.923221],[11.020961,64.978721],[11.132582,64.976189],[11.246167,64.907925],[11.231491,64.865886]]],[[[11.967983,65.626537],[11.901837,65.595712],[11.778331,65.604523],[11.765101,65.630981],[11.800345,65.683898],[11.875379,65.705912],[11.972324,65.701546],[12.003226,65.679454],[11.967983,65.626537]]],[[[12.509552,65.901973],[12.429454,65.899053],[12.430177,65.939955],[12.476066,65.97711],[12.548826,66.001915],[12.64236,66.008529],[12.747057,66.011372],[12.778786,65.991683],[12.718635,65.963881],[12.509552,65.901973]]],[[[12.419945,66.043282],[12.327341,66.036641],[12.342741,66.080773],[12.417671,66.122657],[12.446403,66.151311],[12.461286,66.185004],[12.527432,66.210533],[12.62076,66.177925],[12.62262,66.122476],[12.576421,66.071936],[12.419945,66.043282]]],[[[12.971746,67.8741],[12.824055,67.821261],[12.877902,67.917767],[12.95769,68.015487],[13.068071,68.071323],[13.122848,68.049438],[13.097733,68.002671],[13.09825,67.956421],[13.074582,67.934562],[12.971746,67.8741]]],[[[13.87288,68.265343],[13.932308,68.248238],[14.087647,68.253199],[14.118859,68.246817],[14.096742,68.218627],[14.029253,68.187569],[13.887659,68.168527],[13.823994,68.121114],[13.778415,68.104991],[13.656149,68.10481],[13.584008,68.093828],[13.495228,68.05166],[13.424225,68.08277],[13.404381,68.060704],[13.391462,68.021223],[13.352085,68.009648],[13.229405,67.995385],[13.199536,68.087266],[13.255966,68.120597],[13.300201,68.160439],[13.368001,68.166537],[13.428669,68.163256],[13.538016,68.249013],[13.687671,68.273404],[13.7841,68.276143],[13.87288,68.265343]]],[[[15.207165,68.943131],[15.337183,68.842413],[15.396611,68.783605],[15.348449,68.672398],[15.222048,68.616329],[15.027021,68.606355],[14.890285,68.611006],[14.803986,68.637981],[14.793237,68.668264],[14.743421,68.677204],[14.612059,68.638317],[14.520799,68.633072],[14.404734,68.663225],[14.373418,68.711413],[14.496718,68.771875],[14.553665,68.818823],[14.690401,68.814715],[14.724611,68.80009],[14.801815,68.790944],[14.848841,68.847555],[14.837989,68.886648],[14.872405,68.913882],[15.03746,68.894296],[15.03777,69.000543],[15.101849,69.007985],[15.1281,69.003954],[15.175539,68.981526],[15.207165,68.943131]]],[[[15.76031,68.561242],[15.772402,68.554214],[15.908621,68.650487],[16.059516,68.680511],[16.068921,68.713997],[16.127419,68.74645],[16.120804,68.799367],[16.15057,68.842362],[16.227568,68.853782],[16.275627,68.868303],[16.328854,68.876313],[16.425179,68.841535],[16.479646,68.802932],[16.547342,68.716529],[16.51923,68.63302],[16.337949,68.567856],[16.193978,68.538452],[16.048457,68.463677],[15.975284,68.402492],[15.912445,68.389263],[15.872758,68.394249],[15.837411,68.409055],[15.763617,68.409106],[15.682485,68.355983],[15.437539,68.312859],[15.341421,68.325287],[15.336976,68.378204],[15.279719,68.373837],[15.187838,68.310404],[15.098025,68.289217],[15.037666,68.282706],[14.926872,68.30658],[14.628906,68.198473],[14.349543,68.178268],[14.257559,68.190773],[14.257249,68.256919],[14.437806,68.341565],[14.585808,68.400321],[15.095337,68.44143],[15.412631,68.615812],[15.489215,68.80531],[15.564249,68.873755],[15.529006,68.912383],[15.443637,68.919179],[15.438469,68.978581],[15.483014,69.043435],[15.649515,69.132576],[15.742016,69.170507],[15.892705,69.277891],[15.965362,69.302075],[16.048044,69.302075],[16.129486,69.273911],[16.11481,69.216396],[15.992647,69.112629],[15.811676,69.024211],[15.833794,68.960726],[15.905831,68.908507],[15.923504,68.819211],[15.927948,68.733221],[15.790695,68.617052],[15.76031,68.561242]]],[[[17.503046,69.596217],[17.623245,69.539063],[17.677299,69.55653],[17.783649,69.563041],[17.862817,69.542965],[17.927413,69.506662],[18.0041,69.504983],[18.052263,69.457518],[18.076757,69.395764],[18.02105,69.349617],[17.942089,69.328688],[17.920695,69.274325],[17.950667,69.198154],[17.77352,69.172031],[17.568158,69.160378],[17.487853,69.19681],[17.323625,69.130018],[17.160948,69.025942],[17.082503,69.013669],[17.077025,69.046638],[16.960133,69.069376],[16.810478,69.07072],[16.815439,69.095137],[16.842621,69.112371],[16.971812,69.137899],[16.997547,69.190609],[16.974086,69.284712],[16.996927,69.330394],[17.001784,69.361916],[17.08302,69.398839],[17.360832,69.381476],[17.394525,69.416693],[17.373441,69.438888],[17.229884,69.477672],[17.251898,69.50382],[17.355561,69.527126],[17.453643,69.530201],[17.483099,69.569656],[17.488163,69.586864],[17.503046,69.596217]]],[[[29.956136,69.796774],[29.766173,69.767525],[29.744262,69.791606],[29.785914,69.829046],[29.835833,69.905552],[29.913968,69.902452],[29.992929,69.873255],[30.055148,69.838399],[29.956136,69.796774]]],[[[20.779228,70.089727],[20.725278,70.066525],[20.642596,70.057016],[20.598051,70.071434],[20.534695,70.080891],[20.464209,70.076576],[20.405091,70.119131],[20.411705,70.154891],[20.492734,70.203338],[20.654895,70.230856],[20.786049,70.219538],[20.819432,70.205457],[20.779228,70.089727]]],[[[19.255083,70.066421],[19.34376,70.011954],[19.422308,70.017199],[19.445873,70.037741],[19.499513,70.047921],[19.607827,70.019137],[19.592324,69.970148],[19.442359,69.908421],[19.334769,69.820286],[19.197102,69.799822],[19.130853,69.810442],[19.00776,69.759567],[18.909161,69.706702],[18.806945,69.639832],[18.800641,69.605364],[18.784725,69.579009],[18.410277,69.552809],[18.274161,69.535498],[18.129881,69.557873],[18.061565,69.602108],[18.083475,69.626138],[18.227446,69.63575],[18.231993,69.676755],[18.268477,69.701818],[18.315089,69.715487],[18.349299,69.767886],[18.406246,69.781555],[18.51239,69.768662],[18.584013,69.806592],[18.624321,69.813052],[18.674034,69.781632],[18.697908,69.82486],[18.674034,69.864315],[18.686539,69.890928],[18.823792,69.960123],[18.88322,70.010559],[18.968693,70.043012],[19.050962,70.037844],[19.074939,70.085697],[19.050962,70.134686],[19.060057,70.166596],[19.132714,70.244136],[19.212709,70.24747],[19.249399,70.178559],[19.255083,70.066421]]],[[[19.767507,70.216696],[19.818357,70.204966],[19.868689,70.212252],[19.910444,70.201917],[19.99416,70.149259],[20.084283,70.128562],[20.088521,70.102052],[20.005942,70.07624],[19.897215,70.068462],[19.780839,70.077428],[19.746733,70.110501],[19.71087,70.16533],[19.613511,70.219073],[19.599042,70.266151],[19.683791,70.273592],[19.767507,70.216696]]],[[[23.615334,70.549312],[23.633938,70.502519],[23.640966,70.463942],[23.547741,70.408157],[23.332767,70.334984],[23.34517,70.315295],[23.270652,70.296485],[23.159135,70.282635],[23.100327,70.296071],[23.108388,70.358858],[23.090612,70.377617],[23.005966,70.35276],[22.917909,70.384671],[22.917806,70.416762],[22.94106,70.444589],[23.022502,70.486912],[23.158411,70.516058],[23.248018,70.505128],[23.546708,70.617085],[23.578954,70.593676],[23.615334,70.549312]]],[[[24.017583,70.567373],[23.827104,70.527504],[23.71662,70.561843],[23.670111,70.597086],[23.66329,70.675221],[23.689128,70.722789],[23.778425,70.747362],[23.836509,70.729378],[23.852012,70.71434],[23.956399,70.699613],[24.078355,70.650572],[24.017583,70.567373]]],[[[23.440564,70.815781],[23.420927,70.784414],[23.387131,70.753924],[23.305172,70.721678],[23.068184,70.594089],[22.928864,70.573522],[22.884733,70.553497],[22.829129,70.541534],[22.656013,70.559053],[22.60537,70.533163],[22.557518,70.515851],[22.432254,70.509185],[22.358667,70.514818],[22.168704,70.562102],[22.055739,70.613313],[21.994554,70.657109],[22.170048,70.656308],[22.232576,70.666901],[22.350295,70.657677],[22.420988,70.70261],[22.570747,70.697184],[22.858068,70.728396],[22.963591,70.710981],[23.204713,70.815471],[23.280161,70.812732],[23.395606,70.842601],[23.440564,70.815781]]],[[[27.89807,70.677908],[27.998839,70.664266],[28.21557,70.704367],[28.271794,70.667987],[28.202754,70.576907],[28.191075,70.440197],[28.165961,70.360408],[28.165961,70.287648],[28.192936,70.248581],[28.280062,70.403403],[28.309828,70.443091],[28.437365,70.501382],[28.484804,70.618791],[28.609345,70.759686],[28.749801,70.841516],[28.831553,70.863944],[29.102338,70.86074],[29.218506,70.82994],[29.321136,70.761469],[29.397617,70.734132],[29.639049,70.705039],[29.721938,70.668555],[29.737441,70.646825],[29.796456,70.64251],[29.95934,70.694367],[30.065173,70.702972],[30.237669,70.62215],[30.203046,70.562308],[30.213174,70.543317],[30.42205,70.547193],[30.59589,70.52368],[30.926309,70.401129],[30.960622,70.343872],[30.944086,70.274419],[30.468973,70.197834],[30.26299,70.124712],[29.925853,70.096471],[28.781117,70.145434],[28.804268,70.092518],[29.601325,69.976763],[29.646904,69.94369],[29.621376,69.874082],[29.620962,69.818219],[29.635949,69.780108],[29.694653,69.74458],[29.792115,69.727889],[29.990345,69.736674],[30.088221,69.717554],[30.155193,69.745924],[30.180101,69.841164],[30.237566,69.862222],[30.348773,69.834549],[30.397246,69.732824],[30.428355,69.722282],[30.484372,69.794862],[30.594546,69.789642],[30.714436,69.795714],[30.869775,69.783441],[30.924139,69.65177],[30.922485,69.605829],[30.896647,69.561232],[30.860732,69.538417],[30.788901,69.528521],[30.615372,69.532552],[30.379676,69.584694],[30.22754,69.633786],[30.180153,69.635853],[30.159741,69.629859],[30.196534,69.580559],[30.186716,69.542784],[30.163772,69.501598],[30.131887,69.464236],[30.08729,69.432868],[29.994066,69.392457],[29.832732,69.360469],[29.388315,69.298148],[29.35302,69.27063],[29.209928,69.097023],[29.170861,69.071521],[29.118564,69.049946],[28.96586,69.021989],[28.891911,69.060591],[28.832638,69.118986],[28.846281,69.176889],[29.024875,69.287967],[29.191738,69.366722],[29.238815,69.39393],[29.333435,69.473021],[29.141612,69.671458],[28.800341,69.731506],[28.411734,69.822767],[28.269159,69.871446],[28.047208,69.971698],[27.889905,70.061667],[27.747898,70.064819],[27.591732,70.042237],[27.348026,69.960045],[27.205709,69.918678],[27.127523,69.906483],[27.108661,69.904674],[26.934253,69.928135],[26.740208,69.933044],[26.584248,69.926326],[26.525441,69.915061],[26.308193,69.781942],[26.156161,69.714711],[26.072445,69.69156],[26.011519,69.652648],[25.961547,69.588621],[25.850236,69.36649],[25.767244,69.282671],[25.748692,69.231433],[25.768174,69.076146],[25.748331,68.990156],[25.646631,68.919153],[25.575266,68.887165],[25.480905,68.880628],[25.35714,68.862464],[25.249136,68.821329],[25.172862,68.76526],[25.086872,68.639583],[24.941351,68.593281],[24.802445,68.60651],[24.703226,68.652812],[24.490526,68.688676],[24.331983,68.711517],[24.154113,68.760868],[23.997326,68.798437],[23.854028,68.80593],[23.772534,68.758387],[23.707008,68.713842],[23.462475,68.677617],[23.323982,68.648988],[23.144355,68.64258],[23.071698,68.674361],[22.811042,68.69529],[22.500673,68.720198],[22.410911,68.719888],[22.382903,68.776629],[22.300427,68.855849],[22.079717,68.992792],[21.98949,69.041135],[21.819681,69.154487],[21.621812,69.270708],[21.593752,69.273601],[21.461254,69.277503],[21.266847,69.273705],[21.143754,69.247246],[21.066136,69.214122],[21.052596,69.186552],[21.127837,69.080822],[21.104531,69.054442],[21.065722,69.041729],[20.889299,69.071443],[20.675875,69.069479],[20.622183,69.036872],[20.491959,69.033306],[20.116736,69.020904],[20.282308,68.934346],[20.337136,68.899645],[20.34804,68.848718],[20.319411,68.754047],[20.239985,68.673121],[20.147432,68.607337],[19.968838,68.542018],[20.240036,68.477526],[20.055965,68.390374],[19.96982,68.356396],[19.870033,68.362236],[19.691233,68.392415],[19.258959,68.46533],[19.052615,68.492719],[18.868234,68.501142],[18.769842,68.500031],[18.378651,68.562379],[18.303049,68.555402],[18.162592,68.528401],[18.147037,68.467759],[18.155926,68.316864],[18.176648,68.200644],[18.124972,68.133464],[18.073295,68.087834],[17.916664,67.964896],[17.564747,68.048457],[17.324659,68.103802],[17.170456,68.030111],[16.783606,67.895029],[16.585582,67.628327],[16.57411,67.619568],[16.457115,67.551769],[16.30715,67.520608],[16.193565,67.505182],[16.127419,67.425807],[16.281518,67.312067],[16.360686,67.252019],[16.434274,67.155074],[16.420734,67.093373],[16.403475,67.054977],[16.237697,66.976403],[15.884126,66.768845],[15.557015,66.552088],[15.422966,66.489844],[15.483737,66.305979],[15.374907,66.252029],[15.153318,66.191051],[15.040044,66.167538],[14.917984,66.153714],[14.543226,66.129349],[14.609941,65.932255],[14.63521,65.845025],[14.63459,65.793271],[14.595833,65.742861],[14.549531,65.646407],[14.479664,65.301441],[14.426231,65.264337],[14.352437,65.170854],[14.115139,64.946165],[13.924763,64.796769],[13.650258,64.581536],[13.873551,64.513556],[14.077622,64.463998],[14.119893,64.38775],[14.148005,64.260316],[14.141184,64.173525],[14.063256,64.09552],[14.002691,64.040742],[13.960523,64.014],[13.670721,64.040639],[13.299581,64.074797],[13.203463,64.075081],[12.987559,64.050484],[12.792739,63.999996],[12.690006,63.95744],[12.662463,63.94049],[12.532703,63.843545],[12.301916,63.671204],[12.175206,63.595963],[12.212102,63.492249],[11.999919,63.291693],[12.138619,63.089173],[12.144613,63.082506],[12.2182,63.000651],[12.141047,62.947838],[12.108646,62.919467],[12.119602,62.825933],[12.139807,62.72134],[12.121927,62.660026],[12.114537,62.59189],[12.303466,62.285604],[12.301399,62.213774],[12.291994,62.16742],[12.233703,61.976837],[12.155362,61.720729],[12.292098,61.653446],[12.486814,61.572986],[12.596058,61.541308],[12.757496,61.445681],[12.880796,61.352276],[12.863691,61.290264],[12.828189,61.221845],[12.776409,61.173992],[12.727833,61.10826],[12.706026,61.059839],[12.68303,61.046817],[12.467591,61.04152],[12.353748,61.023201],[12.294165,61.002685],[12.314629,60.892149],[12.445267,60.689629],[12.553787,60.545633],[12.588617,60.450729],[12.552857,60.354508],[12.515857,60.305208],[12.514616,60.238882],[12.486091,60.106771],[12.402065,60.040056],[12.291943,59.967244],[12.169211,59.912881],[12.071853,59.89761],[11.988292,59.891332],[11.93212,59.863685],[11.88127,59.782449],[11.834296,59.697183],[11.680765,59.59228],[11.684848,59.555745],[11.743397,59.431463],[11.798174,59.28987],[11.751872,59.157578],[11.712185,59.018672],[11.642732,58.926068],[11.543513,58.892995],[11.470752,58.909531],[11.388277,59.036526],[11.386416,59.065697],[11.365953,59.104558],[11.132168,59.143212],[11.090827,59.141817],[10.998947,59.164451],[10.945048,59.170859],[10.834512,59.183933],[10.742528,59.296019],[10.644963,59.389192],[10.63101,59.428156],[10.634421,59.602512],[10.604449,59.680027],[10.595354,59.764569],[10.533859,59.695788],[10.569515,59.587113],[10.493758,59.541482],[10.398156,59.519339],[10.407148,59.455648],[10.446422,59.443581],[10.454587,59.377513],[10.431333,59.279638],[10.243127,59.06208],[10.205197,59.038671],[10.179358,59.009267],[10.083137,59.0288],[9.959527,58.968236],[9.842531,58.95852],[9.800157,59.027043],[9.635102,59.117787],[9.557277,59.112671],[9.627144,59.067919],[9.69608,59.009732],[9.65691,58.971181],[9.618462,58.946041],[9.551076,58.932992],[9.309954,58.856821],[9.39584,58.805662],[9.322977,58.747577],[9.238641,58.738999],[9.193785,58.711843],[9.178076,58.675024],[8.928375,58.569965],[8.521372,58.300576],[8.312185,58.224457],[8.166148,58.145288],[8.03737,58.147252],[7.875623,58.079969],[7.465932,58.020955],[7.194114,58.047672],[7.004875,58.024211],[6.903383,58.070513],[6.890257,58.102294],[6.895321,58.120742],[6.912271,58.142885],[6.877028,58.15074],[6.80282,58.154538],[6.771091,58.13224],[6.76675,58.08152],[6.731403,58.068291],[6.590533,58.097333],[6.555083,58.123429],[6.605726,58.176346],[6.692439,58.224043],[6.67673,58.233784],[6.659883,58.262749],[6.617612,58.266418],[6.491521,58.259416],[6.389099,58.267968],[6.054649,58.375145],[5.976514,58.432299],[5.706866,58.523612],[5.585944,58.620402],[5.517317,58.726493],[5.522485,58.822663],[5.555558,58.975186],[5.612195,59.012884],[5.854248,58.959451],[6.098987,58.870257],[6.137331,58.87465],[6.214122,58.944697],[6.363261,59.000947],[6.321093,59.016476],[6.099401,58.951958],[6.017028,58.987718],[5.889181,59.060504],[5.889181,59.097969],[5.948712,59.135461],[5.968556,59.186155],[5.937343,59.234007],[5.951813,59.299068],[6.050721,59.368159],[6.198929,59.438078],[6.305693,59.505567],[6.41535,59.547115],[6.403878,59.560964],[6.278511,59.534532],[6.158622,59.489651],[6.017338,59.414462],[5.845256,59.353483],[5.717925,59.329816],[5.65736,59.31023],[5.564033,59.291213],[5.467605,59.203803],[5.362288,59.166337],[5.173256,59.162539],[5.131604,59.226463],[5.185038,59.453658],[5.242192,59.564323],[5.304927,59.642561],[5.403526,59.655739],[5.472462,59.7131],[5.52972,59.7131],[5.579536,59.686616],[5.772185,59.660958],[5.86727,59.733977],[5.990984,59.744674],[6.216603,59.818365],[6.211952,59.8318],[6.0593,59.815574],[5.966696,59.813171],[5.833991,59.794697],[5.763504,59.807926],[5.730431,59.863065],[5.783554,59.912777],[5.996461,60.031478],[6.069945,60.083516],[6.111803,60.132066],[6.105188,60.165113],[6.140535,60.233481],[6.348688,60.352983],[6.518083,60.407553],[6.573584,60.360605],[6.526351,60.213638],[6.526868,60.152944],[6.660917,60.36722],[6.719931,60.418173],[6.787111,60.454088],[6.949685,60.478221],[6.995677,60.511966],[6.806334,60.500804],[6.346931,60.419103],[6.153351,60.346239],[6.101778,60.290145],[5.967419,60.205576],[5.904374,60.150644],[5.876572,60.070029],[5.800918,60.026233],[5.698805,60.010032],[5.557005,59.907765],[5.494476,59.825573],[5.3534,59.760125],[5.263896,59.709741],[5.234441,59.691783],[5.186071,59.642303],[5.145764,59.638841],[5.110727,59.667805],[5.104836,59.731703],[5.119202,59.833687],[5.187105,59.907067],[5.219558,59.978768],[5.174393,60.045689],[5.205708,60.087961],[5.265446,60.086462],[5.376447,60.067238],[5.494476,60.070287],[5.688573,60.123204],[5.657671,60.154106],[5.573851,60.158499],[5.417375,60.154106],[5.285807,60.205731],[5.183591,60.308412],[5.137082,60.445613],[5.168191,60.484836],[5.546463,60.624569],[5.648369,60.687976],[5.589354,60.69428],[5.447347,60.617334],[5.244052,60.569559],[5.115791,60.635989],[5.049129,60.707509],[5.010785,60.858534],[5.024634,60.936126],[5.008615,61.038187],[5.095431,61.071337],[5.192479,61.05369],[5.288184,61.047178],[5.505225,61.056118],[5.983956,61.117355],[6.292567,61.080975],[6.417934,61.084282],[6.60986,61.136992],[6.777809,61.142418],[6.903383,61.102162],[6.972112,61.055963],[6.980587,60.994158],[7.038672,60.952921],[7.077946,60.966331],[7.04663,61.015268],[7.040118,61.091155],[7.544997,61.177145],[7.604528,61.210528],[7.403921,61.222155],[7.34656,61.3006],[7.452496,61.419249],[7.442574,61.434597],[7.33116,61.372017],[7.27628,61.283934],[7.298087,61.213628],[7.27597,61.180969],[7.173547,61.165983],[6.942553,61.160531],[6.794345,61.1904],[6.656989,61.206574],[6.610274,61.229079],[6.62588,61.279283],[6.599939,61.28967],[6.543095,61.244531],[6.492555,61.154614],[6.383518,61.133866],[6.082554,61.167274],[5.646818,61.147586],[5.451275,61.102369],[5.324564,61.108234],[5.106696,61.187532],[5.021637,61.250577],[4.989908,61.377701],[5.002723,61.433615],[5.172429,61.457128],[5.258315,61.455474],[5.338724,61.485498],[5.267617,61.505032],[5.167571,61.543376],[5.099462,61.620167],[4.996626,61.64523],[4.927793,61.710704],[4.910326,61.809587],[4.930066,61.878316],[4.98505,61.90046],[5.117032,61.885422],[5.465331,61.896946],[5.793269,61.827079],[6.015788,61.787495],[6.466717,61.807416],[6.730783,61.86979],[6.682311,61.886998],[6.39592,61.850954],[6.13113,61.852452],[5.664492,61.922913],[5.473082,61.945625],[5.266893,61.9356],[5.159613,61.956994],[5.096464,62.026679],[5.14318,62.159927],[5.240952,62.188659],[5.293868,62.153907],[5.357741,62.151711],[5.422336,62.207366],[5.484244,62.239095],[5.533337,62.310874],[5.718132,62.378932],[5.796267,62.384668],[5.908301,62.416035],[5.979821,62.407147],[6.025607,62.375676],[6.083484,62.349631],[6.208955,62.352784],[6.580095,62.407276],[6.619989,62.42327],[6.692336,62.468074],[6.457105,62.448075],[6.261768,62.416294],[6.136091,62.407483],[6.118418,62.447171],[6.16472,62.48244],[6.23748,62.519905],[6.272827,62.583829],[6.352925,62.611114],[6.439432,62.609667],[6.618335,62.621268],[6.744633,62.637882],[6.961157,62.626746],[7.283824,62.602303],[7.49177,62.542824],[7.570112,62.548172],[7.653104,62.564011],[7.690725,62.585586],[7.527427,62.610287],[7.518125,62.645531],[7.538383,62.672066],[7.804723,62.720978],[8.095455,62.73183],[8.045535,62.771259],[7.408365,62.711754],[7.24207,62.752346],[7.110812,62.751984],[7.024926,62.728833],[6.779979,62.700721],[6.734917,62.72072],[6.78153,62.789656],[6.928187,62.902724],[6.940383,62.930474],[7.008492,62.957656],[7.389038,63.023285],[7.571869,63.099534],[7.654345,63.109197],[7.735993,63.103849],[7.860327,63.112789],[8.100622,63.090981],[8.211106,62.995483],[8.310532,62.965511],[8.623174,62.846242],[8.609222,62.880555],[8.33854,63.042199],[8.235188,63.082171],[8.157983,63.161546],[8.184441,63.236502],[8.271464,63.286577],[8.580179,63.313397],[8.635577,63.342336],[8.641054,63.3921],[8.593719,63.426129],[8.480134,63.424191],[8.386496,63.445275],[8.360761,63.498863],[8.398175,63.535089],[8.576149,63.601183],[8.67361,63.622628],[8.842386,63.645883],[9.135804,63.593638],[9.158129,63.566249],[9.07586,63.500414],[9.084128,63.463413],[9.156062,63.459305],[9.323597,63.570384],[9.520691,63.585706],[9.602236,63.609554],[9.696907,63.624566],[9.832196,63.524185],[9.891521,63.492042],[9.936066,63.478865],[9.979164,63.395252],[10.021022,63.390808],[10.080553,63.432718],[10.188557,63.454783],[10.340072,63.469356],[10.590909,63.447213],[10.704494,63.463594],[10.760201,63.461295],[10.706768,63.536329],[10.673592,63.558033],[10.725268,63.625006],[10.779218,63.651154],[10.952541,63.698179],[11.117906,63.719212],[11.225806,63.763808],[11.370707,63.80484],[11.347969,63.837706],[11.307662,63.87574],[11.213817,63.878117],[11.175577,63.898891],[11.294639,63.94819],[11.457627,64.002967],[11.429205,64.02449],[11.306628,64.048856],[11.21361,64.030511],[11.075221,63.988136],[10.914301,63.921112],[10.9667,63.901578],[11.047316,63.845199],[10.934868,63.770216],[10.339142,63.571055],[10.055025,63.512713],[9.923973,63.521782],[9.892761,63.576223],[9.832299,63.616479],[9.767497,63.699523],[9.65722,63.697301],[9.594588,63.678956],[9.567303,63.706163],[9.614742,63.794814],[9.707966,63.864888],[9.864442,63.917804],[9.939476,63.981754],[10.009963,64.083169],[10.236202,64.179649],[10.565588,64.418316],[10.833995,64.494462],[10.932284,64.577712],[11.090414,64.614532],[11.225393,64.679515],[11.331329,64.685923],[11.523876,64.744395],[11.632913,64.813925],[11.561703,64.81824],[11.392514,64.772998],[11.29681,64.754782],[11.303527,64.829377],[11.349933,64.905909],[11.489356,64.975853],[12.159703,65.178968],[12.226572,65.145352],[12.306567,65.086002],[12.508415,65.099438],[12.738375,65.214418],[12.915522,65.339268],[12.819817,65.31746],[12.715328,65.266352],[12.511722,65.195297],[12.417568,65.184084],[12.363824,65.193334],[12.333956,65.240721],[12.263366,65.256121],[12.199597,65.245475],[12.133864,65.279142],[12.122185,65.362367],[12.206211,65.486236],[12.272874,65.568143],[12.344808,65.630155],[12.627788,65.806139],[12.688869,65.902179],[12.81682,65.952874],[12.983012,65.941608],[13.033138,65.956233],[12.976087,66.019175],[12.794909,66.069094],[12.783747,66.100436],[13.387121,66.182782],[13.674442,66.179992],[13.759708,66.221023],[13.915874,66.247378],[14.034213,66.297556],[13.973132,66.319725],[13.681367,66.273604],[13.498949,66.2519],[13.41637,66.252597],[13.352085,66.236732],[13.118817,66.230686],[13.068174,66.430829],[13.104658,66.539401],[13.191578,66.537179],[13.211421,66.640816],[13.311777,66.701872],[13.450373,66.715515],[13.52024,66.741637],[13.621112,66.794812],[13.788027,66.782487],[13.959489,66.794321],[13.917011,66.819384],[13.704104,66.851682],[13.651601,66.907079],[13.726635,66.938059],[13.808387,66.960771],[13.880218,66.964879],[14.022328,67.073116],[14.108834,67.119263],[14.205573,67.111227],[14.340345,67.15895],[14.472636,67.142672],[14.600691,67.173885],[14.775564,67.194503],[15.415731,67.202462],[15.434748,67.246697],[15.300079,67.256929],[14.824449,67.268297],[14.58157,67.267419],[14.479251,67.255947],[14.441734,67.271398],[14.448348,67.297856],[14.536612,67.33974],[14.57847,67.386016],[14.754996,67.499033],[14.961909,67.574274],[15.120555,67.555024],[15.289124,67.483168],[15.409427,67.474176],[15.465341,67.450922],[15.552984,67.351755],[15.594428,67.348525],[15.575721,67.443842],[15.691477,67.521409],[15.661298,67.542803],[15.487355,67.514794],[15.35403,67.54394],[15.248713,67.602127],[15.218637,67.65538],[15.28406,67.707961],[15.345761,67.734419],[15.303903,67.765296],[15.04087,67.682587],[14.854732,67.663312],[14.781351,67.674888],[14.821039,67.749844],[14.798921,67.80935],[15.048415,67.955775],[15.134301,67.972699],[15.274448,67.960917],[15.400848,67.919627],[15.506682,67.926242],[15.621403,67.948282],[15.605797,67.987866],[15.356923,68.003601],[15.292845,68.036468],[15.315996,68.068765],[15.486838,68.10282],[15.656647,68.164367],[15.85126,68.182195],[16.007943,68.228704],[16.038122,68.218162],[16.064581,68.19992],[16.120804,68.027347],[16.260744,67.886554],[16.312317,67.881464],[16.258574,68.001198],[16.3087,68.035641],[16.372159,68.061841],[16.392002,68.091606],[16.319242,68.101735],[16.259711,68.144523],[16.174755,68.281233],[16.203797,68.316761],[16.387868,68.389573],[16.618862,68.40629],[16.864945,68.35526],[16.951348,68.354691],[17.094078,68.368385],[17.336131,68.410347],[17.478551,68.426315],[17.552862,68.426263],[17.571155,68.44745],[17.502322,68.461093],[17.480205,68.474322],[17.426151,68.481918],[17.202392,68.459284],[16.584859,68.466441],[16.525328,68.490678],[16.514372,68.532587],[16.579898,68.592661],[16.651831,68.625786],[16.884685,68.68542],[17.131182,68.693482],[17.390804,68.799367],[17.490023,68.878742],[17.546247,69.001112],[17.704584,69.100072],[18.101459,69.156296],[18.117478,69.181178],[18.075414,69.232622],[18.078721,69.325226],[18.187552,69.433127],[18.259795,69.470592],[18.293178,69.475088],[18.378755,69.439844],[18.482624,69.364862],[18.645508,69.321867],[18.859035,69.314477],[18.915879,69.335613],[18.749998,69.378401],[18.624424,69.434367],[18.614502,69.490591],[18.674034,69.520356],[18.766638,69.517049],[18.882806,69.523354],[18.99112,69.561129],[19.00683,69.587691],[19.011274,69.623709],[19.038352,69.660399],[19.197309,69.747836],[19.686995,69.804732],[19.722445,69.781632],[19.695987,69.612961],[19.639763,69.50382],[19.64152,69.424006],[19.736811,69.50382],[19.864659,69.722101],[19.96057,69.824627],[20.068987,69.883435],[20.146399,69.896716],[20.223086,69.927205],[20.324269,69.945317],[20.355171,69.921908],[20.387211,69.867622],[20.332744,69.676936],[20.338221,69.61663],[20.27714,69.535859],[20.043769,69.355664],[20.054518,69.332668],[20.107228,69.341194],[20.197662,69.37096],[20.48674,69.542086],[20.739437,69.520511],[20.742538,69.534516],[20.661509,69.584694],[20.562497,69.632804],[20.532732,69.692336],[20.545961,69.851086],[20.622028,69.913924],[20.84031,69.907309],[20.971051,69.915991],[21.032133,69.887466],[21.163081,69.889481],[21.253721,70.003221],[21.432935,70.013194],[21.590238,69.938057],[21.779581,69.887466],[21.931716,69.814705],[21.974711,69.834549],[21.892545,70.004254],[21.802732,70.066059],[21.607808,70.098202],[21.400379,70.174477],[21.346325,70.208273],[21.35573,70.233414],[21.538768,70.257676],[21.780304,70.229874],[21.995485,70.293358],[22.054396,70.275969],[22.21945,70.309197],[22.321976,70.264497],[22.384815,70.277726],[22.421195,70.337619],[22.684538,70.374774],[22.85166,70.340461],[22.941163,70.304985],[22.982815,70.236747],[23.04648,70.101871],[23.176911,70.029059],[23.25794,69.993299],[23.353851,69.983377],[23.400153,70.019757],[23.310236,70.063579],[23.286052,70.104817],[23.32915,70.207239],[23.37938,70.247444],[23.661223,70.399734],[23.897177,70.478747],[24.038461,70.485362],[24.285577,70.66238],[24.355547,70.6946],[24.42004,70.70199],[24.403503,70.745295],[24.268214,70.772683],[24.26346,70.826323],[24.441847,70.891539],[24.658061,71.001041],[24.764721,71.008431],[24.831694,70.978045],[25.042224,70.928617],[25.171208,70.872005],[25.264639,70.843506],[25.325411,70.849423],[25.375537,70.891952],[25.435998,70.911848],[25.56984,70.900686],[25.649732,70.873349],[25.71195,70.869731],[25.768174,70.853195],[25.781403,70.816815],[25.665648,70.777127],[25.468244,70.671966],[25.273527,70.552386],[25.209242,70.489393],[25.146403,70.324028],[24.994268,70.218195],[24.982692,70.143988],[25.043877,70.109054],[25.211826,70.136494],[25.418842,70.235506],[25.470518,70.340565],[25.988109,70.625405],[26.230885,70.782605],[26.506941,70.912778],[26.66135,70.939727],[26.734007,70.853557],[26.675509,70.740954],[26.558204,70.669149],[26.644607,70.636206],[26.628173,70.550888],[26.601198,70.503449],[26.583938,70.453788],[26.585075,70.410018],[26.666104,70.421697],[26.989392,70.511355],[27.071247,70.608455],[27.147315,70.681216],[27.183695,70.744054],[27.309372,70.803586],[27.546464,70.803999],[27.555662,70.827408],[27.269065,70.909987],[27.235268,70.947194],[27.331696,70.996752],[27.597107,71.09132],[27.733532,71.080881],[27.815078,71.059384],[28.141673,71.043002],[28.392304,70.975306],[28.382692,70.869421],[28.326881,70.825186],[28.271897,70.797953],[27.950987,70.717596],[27.89807,70.677908]]],[[[25.586273,71.142066],[25.853544,71.103851],[25.945011,71.104652],[26.077613,71.033132],[26.146859,71.039488],[26.133837,70.995822],[25.999685,70.9751],[25.791325,70.962491],[25.760216,70.953809],[25.582036,70.960785],[25.48199,71.019593],[25.314972,71.034114],[25.315282,71.052976],[25.423492,71.097418],[25.586273,71.142066]]],[[[-8.953556,70.839139],[-9.045773,70.832679],[-9.098871,70.8549],[-8.964641,70.91593],[-8.520818,71.030652],[-8.343697,71.140128],[-8.001367,71.177697],[-7.978836,71.1169],[-8.00209,71.041245],[-8.302356,70.981146],[-8.635359,70.940425],[-8.953556,70.839139]]],[[[19.219323,74.391015],[19.098504,74.352154],[18.917533,74.410652],[18.797437,74.485686],[18.861206,74.51416],[19.182943,74.517932],[19.261491,74.478968],[19.27472,74.456748],[19.219323,74.391015]]],[[[21.608118,78.59572],[21.745577,78.572026],[22.04313,78.576935],[22.207358,78.407669],[22.299549,78.228197],[22.449307,78.215226],[22.734561,78.239927],[22.988912,78.251968],[23.11924,78.238636],[23.351681,78.186287],[23.451933,78.149468],[23.3646,78.120503],[23.1519,78.088102],[23.116657,77.991519],[23.330597,77.957878],[23.68396,77.875428],[23.883018,77.864757],[24.238242,77.898553],[24.571451,77.834423],[24.901871,77.756598],[24.129825,77.658232],[24.061922,77.630611],[23.954952,77.557695],[23.841263,77.497751],[23.736154,77.462352],[23.50516,77.401426],[23.380826,77.380342],[23.10136,77.385044],[22.996664,77.360782],[22.899512,77.311354],[22.80174,77.2758],[22.553693,77.266654],[22.426983,77.315901],[22.468841,77.331094],[22.486617,77.36011],[22.442486,77.429331],[22.678957,77.500128],[22.732597,77.53935],[22.685365,77.553509],[22.620356,77.549634],[22.448274,77.571157],[22.397217,77.570098],[22.25459,77.52886],[22.056876,77.501161],[21.856165,77.494133],[21.049909,77.440958],[20.92816,77.459665],[20.873176,77.565317],[21.201115,77.6195],[21.251447,77.710916],[21.33413,77.771791],[21.430868,77.812098],[21.608428,77.916071],[21.653077,77.923513],[21.210416,78.005782],[21.03544,78.059163],[20.844961,78.165875],[20.786463,78.252149],[20.528287,78.325607],[20.560223,78.4194],[20.372741,78.41201],[20.227944,78.477846],[20.362716,78.514794],[21.046912,78.556756],[21.454742,78.59758],[21.608118,78.59572]]],[[[26.876014,78.648921],[26.729459,78.646466],[26.459605,78.72026],[26.407722,78.784339],[26.455781,78.810487],[26.585902,78.811469],[26.788784,78.723955],[27.007582,78.697496],[26.876014,78.648921]]],[[[11.250301,78.610706],[11.26167,78.541718],[11.424244,78.548591],[11.616273,78.475107],[11.825666,78.436091],[11.884887,78.409323],[11.929432,78.374906],[12.056143,78.305608],[12.116398,78.232589],[11.965089,78.224838],[11.756523,78.329018],[11.586508,78.388239],[11.372464,78.438778],[11.199244,78.441259],[11.121316,78.463273],[10.84061,78.644735],[10.78883,78.686541],[10.628427,78.75385],[10.55763,78.837514],[10.55825,78.902936],[10.77281,78.887485],[10.960809,78.846402],[11.1239,78.753359],[11.152942,78.724446],[11.078218,78.68605],[11.155009,78.640575],[11.250301,78.610706]]],[[[29.047044,78.912083],[29.345424,78.905778],[29.645147,78.921643],[29.69672,78.904745],[29.310594,78.852086],[28.881163,78.880095],[28.494519,78.887201],[28.037907,78.828729],[27.889078,78.852138],[28.121002,78.908465],[28.37401,78.927069],[28.414731,78.961434],[28.511159,78.967325],[28.845196,78.970839],[29.047044,78.912083]]],[[[16.786707,79.906751],[16.838487,79.904787],[16.888923,79.915432],[16.925613,79.943441],[16.966438,79.958944],[17.219445,79.940754],[17.578183,79.884685],[17.68474,79.857038],[17.834602,79.800039],[17.956145,79.704231],[17.859716,79.63501],[17.732592,79.56951],[17.687531,79.533337],[17.733936,79.48135],[17.715022,79.430759],[17.66872,79.385956],[17.86106,79.437064],[18.272094,79.600568],[18.333279,79.610697],[18.397358,79.605167],[18.581429,79.571577],[18.748448,79.488172],[18.785241,79.460576],[18.815214,79.426677],[18.83237,79.384741],[18.822965,79.336656],[18.807462,79.30317],[18.720026,79.281492],[18.677858,79.261726],[18.772219,79.260253],[18.880119,79.234285],[18.979028,79.179147],[19.089409,79.157029],[19.490211,79.175684],[19.750867,79.146849],[19.893597,79.056208],[20.113739,79.076698],[20.114463,79.12499],[20.162728,79.14566],[20.458214,79.129227],[20.611073,79.106645],[20.767239,79.059154],[20.500692,78.981381],[20.720317,78.906708],[21.089597,78.852655],[21.312219,78.795837],[21.352526,78.77204],[21.388803,78.740414],[21.243903,78.699434],[21.096315,78.676283],[20.724761,78.672304],[20.387004,78.643262],[19.768747,78.622695],[19.676763,78.609569],[19.654956,78.597838],[19.618575,78.562156],[19.380657,78.479784],[19.15049,78.379402],[19.055612,78.318941],[18.983782,78.234243],[18.957634,78.182463],[19.00869,78.132285],[18.995151,78.081513],[18.822035,78.041697],[18.712274,78.040095],[18.574608,78.047975],[18.439216,78.025057],[18.430638,77.990589],[18.438699,77.942065],[18.403973,77.79396],[18.361908,77.682287],[18.298759,77.578547],[18.227963,77.522607],[18.137426,77.507052],[17.847107,77.496769],[17.623348,77.399384],[17.442481,77.225261],[17.348637,77.156893],[17.152576,77.048941],[17.187923,77.010649],[17.249004,76.969204],[17.142034,76.894945],[16.97667,76.811643],[16.979873,76.779396],[17.035581,76.720382],[17.062659,76.65899],[16.935122,76.606177],[16.700511,76.579305],[16.461869,76.609329],[16.345804,76.644754],[16.23811,76.70152],[16.123802,76.738546],[16.004533,76.760767],[15.546783,76.886418],[15.124173,77.085114],[14.73846,77.162371],[14.486899,77.199009],[14.365769,77.234485],[14.247534,77.282105],[14.145318,77.335616],[14.05044,77.403234],[14.004241,77.445196],[13.995663,77.508189],[14.026049,77.54519],[14.071317,77.564129],[14.377655,77.579658],[14.487829,77.570873],[14.596246,77.537955],[14.695052,77.525062],[14.920774,77.688798],[16.205967,77.782488],[16.619172,77.798662],[17.033307,77.797706],[16.968711,77.841967],[16.914038,77.897985],[16.852956,77.911575],[16.539694,77.880208],[16.060033,77.847135],[15.826352,77.847083],[15.585333,77.869149],[15.344831,77.857005],[15.096888,77.809049],[14.846877,77.778664],[14.603894,77.766468],[14.089921,77.771377],[13.962487,77.796234],[13.791128,77.853801],[13.74958,77.883283],[13.71413,77.91943],[13.68054,78.028106],[13.717644,78.057613],[13.770147,78.074615],[13.823994,78.085027],[13.936958,78.08557],[14.047753,78.066863],[14.307272,78.005058],[14.248154,78.071385],[14.994672,78.151199],[15.341421,78.220962],[15.519394,78.232693],[15.698091,78.227603],[15.658714,78.264706],[15.657164,78.299045],[15.783874,78.327054],[15.875341,78.339095],[16.15026,78.352866],[16.776992,78.350463],[17.002921,78.369377],[17.172006,78.417126],[16.991759,78.400486],[16.811202,78.397282],[16.726556,78.407178],[16.535353,78.448855],[16.44864,78.503555],[16.696583,78.612902],[16.782573,78.663623],[16.530495,78.656284],[16.446263,78.638508],[16.157495,78.538152],[15.944071,78.493039],[15.680625,78.47136],[15.417385,78.473247],[15.359921,78.487561],[15.279409,78.55412],[15.254191,78.589053],[15.264939,78.608277],[15.348345,78.663157],[15.39165,78.72119],[15.384209,78.771213],[15.322714,78.781212],[15.225252,78.732301],[15.137299,78.664243],[15.016272,78.630136],[14.891836,78.639464],[14.838712,78.665586],[14.79241,78.705584],[14.743524,78.720958],[14.689264,78.720932],[14.577643,78.704964],[14.467159,78.675379],[14.505296,78.630498],[14.515424,78.580579],[14.467779,78.540943],[14.431812,78.492496],[14.545603,78.461955],[14.638311,78.414594],[14.499508,78.392373],[14.363289,78.35992],[14.238232,78.309846],[14.110488,78.270882],[13.907606,78.266748],[13.655012,78.245147],[13.150236,78.237499],[12.912835,78.301061],[12.86953,78.33124],[12.822194,78.351471],[12.664685,78.384777],[12.434725,78.482962],[12.257888,78.594686],[12.138309,78.605538],[11.961679,78.642384],[11.86556,78.674242],[11.773783,78.716384],[11.746291,78.766252],[11.755179,78.811676],[11.861013,78.831907],[11.611002,78.882937],[11.365436,78.950375],[11.45618,78.973009],[11.547544,78.982983],[12.274941,78.904486],[12.323414,78.914253],[12.403305,78.953217],[12.374987,78.966343],[12.253134,78.975361],[12.087252,78.975076],[12.045808,78.983138],[11.981832,79.025306],[11.925712,79.077241],[11.901941,79.111864],[11.892742,79.152327],[12.016145,79.213098],[12.083945,79.267513],[11.978318,79.29268],[11.679318,79.291181],[11.57979,79.283481],[11.616377,79.205295],[11.521189,79.151293],[11.338874,79.109125],[11.208133,79.129641],[11.10726,79.232942],[10.975382,79.304875],[10.925773,79.350196],[10.888049,79.415411],[10.834409,79.46285],[10.737567,79.520159],[10.724958,79.555506],[10.73705,79.581654],[10.810741,79.640927],[10.75462,79.69033],[10.686201,79.733583],[10.68217,79.758233],[10.746352,79.78867],[10.804023,79.798799],[10.865931,79.796577],[11.049589,79.7603],[11.150359,79.716995],[11.185292,79.720457],[11.250611,79.784872],[11.343628,79.799393],[11.702366,79.820606],[12.101722,79.737562],[12.205178,79.719088],[12.287757,79.713119],[12.245175,79.750016],[12.21913,79.797894],[12.280005,79.815955],[12.602466,79.773219],[12.753465,79.775803],[13.107552,79.831717],[13.692839,79.860965],[13.914117,79.816937],[13.925693,79.793399],[13.921145,79.761695],[13.906986,79.752212],[13.777588,79.71529],[13.039235,79.685136],[12.555337,79.569459],[13.215142,79.588062],[13.333791,79.574781],[13.383607,79.480782],[13.431666,79.470912],[13.601268,79.457218],[13.716197,79.429157],[13.833709,79.375672],[13.957216,79.339654],[14.029563,79.344149],[14.055814,79.383114],[14.026359,79.429312],[14.011166,79.481919],[14.019847,79.538685],[14.039795,79.585633],[14.178391,79.618706],[14.379825,79.725987],[14.593663,79.798721],[14.831788,79.766398],[15.052343,79.675344],[15.251297,79.545481],[15.443947,79.406781],[15.660161,79.23488],[15.76403,79.174289],[15.858495,79.159923],[16.294541,78.981071],[16.343737,78.97611],[16.25351,79.112122],[16.02758,79.342367],[15.875135,79.519255],[15.840718,79.586874],[15.81612,79.681855],[15.825732,79.709037],[15.845162,79.733609],[15.95575,79.835127],[16.100237,79.884427],[16.056622,79.953931],[16.093829,80.007313],[16.245655,80.049481],[16.386628,80.052582],[16.523984,80.020516],[16.786707,79.906751]]],[[[32.526005,80.119141],[31.577639,80.081469],[31.481934,80.107901],[33.019101,80.217946],[33.09858,80.228695],[33.38404,80.242312],[33.629297,80.21743],[33.556639,80.198128],[32.526005,80.119141]]],[[[18.741626,80.300939],[18.524999,80.245593],[18.16223,80.288175],[18.205535,80.331789],[18.291731,80.358351],[18.519314,80.348352],[18.741626,80.300939]]],[[[20.897877,80.249934],[20.99844,80.238824],[21.549207,80.242906],[21.654834,80.218463],[21.696692,80.159164],[21.780614,80.138778],[21.897713,80.132473],[22.190201,80.059713],[22.28973,80.049223],[22.37634,80.089634],[22.442692,80.190299],[22.446206,80.308328],[22.417888,80.365534],[22.450754,80.402224],[22.548836,80.416461],[22.672033,80.412663],[22.792542,80.433024],[22.896825,80.46899],[23.008033,80.473951],[23.251325,80.446666],[23.315404,80.42522],[23.250085,80.380882],[23.22466,80.31763],[23.114589,80.18694],[23.353335,80.178879],[23.687991,80.206526],[23.772947,80.244405],[23.952885,80.304608],[24.14295,80.295151],[24.234108,80.303135],[24.280203,80.329283],[24.297566,80.360418],[24.402676,80.355199],[24.546647,80.295151],[24.613619,80.285823],[24.736299,80.3013],[24.785909,80.30068],[24.907038,80.276677],[25.471345,80.233087],[25.666888,80.209781],[25.751121,80.188026],[25.836284,80.175158],[26.436764,80.175468],[26.860821,80.160017],[27.017194,80.125471],[27.148348,80.059248],[27.198578,79.906596],[27.079825,79.865358],[26.221067,79.677462],[26.005886,79.617053],[25.902016,79.561397],[25.72642,79.439751],[25.641154,79.403009],[25.239111,79.34508],[25.14506,79.338853],[24.842856,79.367249],[24.750562,79.364613],[24.383349,79.30162],[24.256845,79.263483],[24.132925,79.215475],[23.947717,79.194288],[23.758788,79.205631],[22.90375,79.230668],[22.789131,79.264361],[22.6957,79.32906],[22.865509,79.411871],[21.911459,79.381072],[20.861084,79.397841],[20.805583,79.40952],[20.760831,79.441508],[20.39951,79.463393],[20.128208,79.489619],[19.900212,79.533802],[19.674593,79.591163],[19.746733,79.617983],[19.821147,79.633641],[20.01483,79.640255],[20.18712,79.632297],[20.493457,79.632762],[20.564874,79.690537],[20.686831,79.707176],[20.784086,79.748569],[20.460695,79.774666],[20.123454,79.778542],[19.898662,79.744177],[19.638109,79.728622],[19.399984,79.726581],[18.942131,79.736322],[18.724987,79.760765],[18.428054,79.824534],[18.324701,79.859699],[18.284807,79.887346],[18.255351,79.929178],[18.594659,79.966721],[18.726434,79.996254],[18.855935,80.036614],[18.343821,80.059558],[18.129467,80.093406],[17.916871,80.143119],[18.08947,80.171127],[18.779247,80.193503],[18.961871,80.174796],[19.142946,80.138675],[19.343347,80.116428],[19.537133,80.163221],[19.354716,80.18539],[19.191418,80.263215],[19.156898,80.301869],[19.178292,80.331531],[19.263765,80.335975],[19.32743,80.323108],[19.568449,80.249986],[19.751074,80.227196],[19.802234,80.294712],[19.810398,80.326829],[19.777119,80.35339],[19.691336,80.402354],[19.614338,80.462531],[19.733297,80.477853],[19.851119,80.471212],[20.104334,80.429975],[20.359409,80.400933],[20.475887,80.371632],[20.693445,80.298665],[20.897877,80.249934]]]]},"type":"Feature","properties":{"ISO_A2":"NO","NAME":"Norway"}},{"geometry":{"type":"Polygon","coordinates":[[[88.109795,27.870599],[88.15031,27.843314],[88.154237,27.798691],[88.147002,27.749211],[88.105558,27.642447],[88.067886,27.567362],[88.024116,27.40887],[87.984428,27.133951],[87.993162,27.086073],[88.111036,26.92846],[88.157234,26.807305],[88.161575,26.724777],[88.111552,26.58644],[88.054915,26.430015],[88.02701,26.39503],[87.995074,26.382369],[87.849243,26.436888],[87.748784,26.429317],[87.633339,26.399112],[87.513036,26.405004],[87.413559,26.422961],[87.287417,26.360303],[87.166804,26.394255],[87.089548,26.433219],[87.037923,26.54161],[87.016425,26.555434],[86.762487,26.441926],[86.701406,26.435053],[86.543638,26.496006],[86.414395,26.556312],[86.366129,26.574399],[86.241589,26.598015],[86.129399,26.611709],[86.007288,26.649381],[85.855721,26.600185],[85.794588,26.604165],[85.73733,26.639744],[85.70741,26.712659],[85.699917,26.781621],[85.648395,26.828983],[85.568452,26.839835],[85.456417,26.797228],[85.293016,26.741004],[85.240203,26.750357],[85.191782,26.766532],[85.174109,26.78157],[85.151526,26.84663],[85.125378,26.860996],[85.087344,26.86296],[85.020061,26.878515],[84.937172,26.926884],[84.685405,27.041037],[84.653831,27.09168],[84.654812,27.203663],[84.640756,27.249862],[84.610216,27.298696],[84.480818,27.348202],[84.229774,27.427835],[84.091074,27.491346],[84.024825,27.461683],[83.897184,27.435122],[83.828816,27.377812],[83.746961,27.395951],[83.551624,27.456361],[83.447134,27.465352],[83.383934,27.444811],[83.369413,27.410265],[83.289728,27.371017],[83.213867,27.402281],[83.064005,27.444553],[82.932799,27.467678],[82.733379,27.518992],[82.710848,27.596662],[82.677362,27.673453],[82.629923,27.68707],[82.451381,27.671825],[82.287722,27.756549],[82.111867,27.864966],[82.036988,27.900597],[81.987637,27.913749],[81.94521,27.899279],[81.896841,27.874475],[81.852606,27.867085],[81.757212,27.913826],[81.635514,27.980463],[81.486014,28.062215],[81.310831,28.176368],[81.239,28.240861],[81.206237,28.289385],[81.168927,28.335015],[81.016585,28.409584],[80.896127,28.468547],[80.750761,28.539705],[80.726215,28.553916],[80.671335,28.596239],[80.586999,28.649621],[80.517907,28.665176],[80.49579,28.635798],[80.47915,28.604895],[80.418585,28.612026],[80.324844,28.66639],[80.226556,28.723363],[80.149661,28.776047],[80.070699,28.830179],[80.051631,28.870331],[80.0846,28.994174],[80.130489,29.100395],[80.169557,29.124321],[80.232963,29.194627],[80.25596,29.31803],[80.254874,29.423321],[80.316886,29.572071],[80.401842,29.730253],[80.549068,29.899777],[80.612889,29.955846],[80.684099,29.994319],[80.819904,30.11935],[80.848171,30.139763],[80.907651,30.171905],[80.966149,30.180019],[81.010229,30.164516],[81.055601,30.09899],[81.110326,30.036797],[81.177195,30.039872],[81.255123,30.093306],[81.417129,30.337606],[81.641921,30.387525],[81.85488,30.362411],[82.043396,30.32678],[82.098948,30.245079],[82.13538,30.158986],[82.158944,30.115165],[82.220646,30.06385],[82.486573,29.94148],[82.640827,29.831203],[82.854302,29.683382],[83.013931,29.618089],[83.155421,29.612663],[83.235209,29.554605],[83.355202,29.439134],[83.456694,29.306325],[83.583508,29.183594],[83.671048,29.187624],[83.790472,29.227415],[83.935993,29.279505],[84.021983,29.253874],[84.101358,29.219974],[84.127816,29.156308],[84.175565,29.036393],[84.228689,28.91175],[84.312146,28.868109],[84.410796,28.803927],[84.46547,28.752922],[84.650627,28.659543],[84.676775,28.621535],[84.71424,28.595542],[84.759406,28.579238],[84.796871,28.560221],[84.85511,28.553606],[85.069154,28.609675],[85.126308,28.602647],[85.159071,28.592234],[85.160105,28.571848],[85.121451,28.484256],[85.088584,28.372274],[85.122432,28.315946],[85.212143,28.29264],[85.410632,28.276026],[85.678316,28.277447],[85.759448,28.220655],[85.84027,28.135363],[85.921712,27.989713],[85.954113,27.928218],[85.994576,27.910416],[86.064132,27.934703],[86.075501,27.994571],[86.078705,28.083583],[86.136996,28.114331],[86.174203,28.091696],[86.217921,28.022088],[86.328612,27.959534],[86.408711,27.928657],[86.484933,27.939535],[86.516921,27.963513],[86.554541,28.085211],[86.614434,28.103014],[86.690502,28.094926],[86.719648,28.070638],[86.750395,28.022088],[86.842379,27.99917],[86.933846,27.968474],[87.020094,27.928657],[87.141379,27.838327],[87.290724,27.82192],[87.46415,27.823832],[87.555307,27.821842],[87.62259,27.815202],[87.682741,27.821403],[87.860715,27.886102],[87.933372,27.89083],[88.023341,27.883415],[88.109795,27.870599]]]},"type":"Feature","properties":{"ISO_A2":"NP","NAME":"Nepal"}},{"geometry":{"type":"Polygon","coordinates":[[[166.958419,-0.516609],[166.938989,-0.550819],[166.916458,-0.546478],[166.907053,-0.52374],[166.913564,-0.499142],[166.938989,-0.489376],[166.955629,-0.496972],[166.958419,-0.516609]]]},"type":"Feature","properties":{"ISO_A2":"NR","NAME":"Nauru"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.178232,-52.497312],[169.233526,-52.548265],[169.127589,-52.570279],[169.076016,-52.551831],[169.039843,-52.528473],[169.021756,-52.495452],[169.079117,-52.498862],[169.128623,-52.485168],[169.178232,-52.497312]]],[[[166.2211,-50.761501],[166.242907,-50.845733],[166.187924,-50.846043],[166.073202,-50.822686],[166.037649,-50.786719],[166.013257,-50.777934],[165.971399,-50.819482],[165.904117,-50.821497],[165.88913,-50.807699],[165.915589,-50.763051],[166.073822,-50.679025],[166.103174,-50.573088],[166.101314,-50.538982],[166.225131,-50.530921],[166.254276,-50.543943],[166.267505,-50.558619],[166.25934,-50.577223],[166.209524,-50.612053],[166.207561,-50.652463],[166.220376,-50.694321],[166.179449,-50.714682],[166.200739,-50.750855],[166.2211,-50.761501]]],[[[168.14491,-46.862204],[168.145324,-46.902098],[168.04104,-46.887835],[168.043211,-46.932587],[168.12548,-46.956152],[168.155969,-46.988294],[168.241442,-46.978993],[168.260665,-47.027052],[168.240925,-47.070046],[168.183874,-47.101569],[168.014996,-47.117485],[167.905545,-47.179911],[167.81077,-47.170402],[167.784932,-47.176035],[167.676308,-47.243008],[167.554869,-47.263678],[167.522002,-47.258665],[167.538746,-47.199031],[167.628973,-47.14229],[167.630936,-47.087823],[167.654087,-47.044208],[167.740904,-47.013616],[167.742041,-46.956875],[167.800745,-46.906542],[167.765295,-46.797608],[167.784002,-46.699837],[167.955774,-46.694462],[168.14491,-46.862204]]],[[[166.746339,-45.655869],[166.740965,-45.705014],[166.729183,-45.729663],[166.694559,-45.729922],[166.64247,-45.724444],[166.591723,-45.701758],[166.559167,-45.708166],[166.531985,-45.699846],[166.567125,-45.644397],[166.685671,-45.615045],[166.731456,-45.638713],[166.746339,-45.655869]]],[[[166.979503,-45.179723],[167.022705,-45.299819],[166.931134,-45.276874],[166.892687,-45.240494],[166.962657,-45.180343],[166.979503,-45.179723]]],[[[-176.17645,-44.321687],[-176.220789,-44.330575],[-176.214587,-44.273525],[-176.229315,-44.236731],[-176.154694,-44.224535],[-176.122577,-44.26846],[-176.17645,-44.321687]]],[[[-176.177639,-43.740327],[-176.213502,-43.766269],[-176.274842,-43.764822],[-176.381735,-43.866831],[-176.375224,-43.79066],[-176.407392,-43.760894],[-176.499144,-43.768026],[-176.516559,-43.784769],[-176.454934,-43.804923],[-176.441266,-43.816085],[-176.500151,-43.860113],[-176.439096,-43.954681],[-176.38543,-43.951477],[-176.333572,-44.025271],[-176.333857,-44.048422],[-176.45279,-44.076844],[-176.515551,-44.116635],[-176.571542,-44.114981],[-176.598001,-44.10723],[-176.629368,-44.036123],[-176.631565,-44.006254],[-176.562757,-43.954061],[-176.523767,-43.900938],[-176.555135,-43.851948],[-176.634562,-43.820219],[-176.807936,-43.834585],[-176.847675,-43.82394],[-176.761091,-43.757897],[-176.667221,-43.765132],[-176.56609,-43.71759],[-176.177639,-43.740327]]],[[[173.914687,-40.863707],[173.780845,-40.921791],[173.78622,-40.881432],[173.812368,-40.793634],[173.873346,-40.749347],[173.903318,-40.746246],[173.964503,-40.713018],[173.957992,-40.786812],[173.914687,-40.863707]]],[[[173.115356,-41.279289],[173.230801,-41.284198],[173.337771,-41.210973],[173.447325,-41.15139],[173.562461,-41.102039],[173.73785,-40.988971],[173.783842,-40.972383],[173.897531,-40.95073],[173.94714,-40.924117],[174.002434,-40.917761],[173.952824,-40.984837],[173.889882,-41.007212],[173.879857,-41.031397],[173.915101,-41.070154],[173.860324,-41.124415],[173.862391,-41.192059],[173.797795,-41.271951],[173.897117,-41.239343],[173.933394,-41.187356],[173.914687,-41.158004],[173.957579,-41.099868],[174.024034,-41.072221],[173.997576,-41.028141],[173.999436,-40.99326],[174.080568,-41.006179],[174.121186,-41.004732],[174.153226,-40.990934],[174.211827,-40.985457],[174.223816,-41.024369],[174.30257,-41.019563],[174.273942,-41.068759],[174.213687,-41.125603],[174.199528,-41.160123],[174.103099,-41.217432],[174.038607,-41.241875],[174.138136,-41.248231],[174.283554,-41.171543],[174.37006,-41.103744],[174.367579,-41.188338],[174.297299,-41.264303],[174.237148,-41.312207],[174.169555,-41.327038],[174.102066,-41.365899],[174.069303,-41.429461],[174.07292,-41.47168],[174.092351,-41.505218],[174.16108,-41.561804],[174.083669,-41.670789],[174.169969,-41.657199],[174.217098,-41.677766],[174.28314,-41.740604],[174.243349,-41.813106],[174.215444,-41.85021],[174.047289,-42.003069],[173.973908,-42.080532],[173.888022,-42.130193],[173.889159,-42.211635],[173.83986,-42.270856],[173.589229,-42.473945],[173.545097,-42.517921],[173.34759,-42.840847],[173.221189,-42.97655],[173.148842,-43.022748],[173.072361,-43.060214],[172.888807,-43.124241],[172.807985,-43.197776],[172.718584,-43.258755],[172.624017,-43.272449],[172.62691,-43.299527],[172.687475,-43.314617],[172.734707,-43.354821],[172.699671,-43.399676],[172.632181,-43.427892],[172.562212,-43.436005],[172.526658,-43.464789],[172.69347,-43.444325],[172.740392,-43.467837],[172.749177,-43.517292],[172.766644,-43.56194],[172.807054,-43.621006],[172.947304,-43.658575],[173.073188,-43.676197],[173.098096,-43.703534],[173.116906,-43.797843],[173.093962,-43.844094],[173.065643,-43.874583],[173.023372,-43.885435],[172.920639,-43.891429],[172.8177,-43.870087],[172.74928,-43.813088],[172.554667,-43.831381],[172.502784,-43.84368],[172.476015,-43.833396],[172.583812,-43.773555],[172.527278,-43.739449],[172.480356,-43.726685],[172.429713,-43.746477],[172.395607,-43.777844],[172.385271,-43.829572],[172.350442,-43.859338],[172.296595,-43.867865],[172.220734,-43.825025],[172.145803,-43.763582],[172.035525,-43.701725],[172.052269,-43.740017],[172.137225,-43.833758],[172.179806,-43.895977],[172.080794,-43.945638],[171.977648,-43.98424],[171.890625,-44.006926],[171.808356,-44.042324],[171.712031,-44.097515],[171.659011,-44.117152],[171.517831,-44.118392],[171.44259,-44.135807],[171.417475,-44.208671],[171.364559,-44.254973],[171.240742,-44.26412],[171.28539,-44.278744],[171.312985,-44.301895],[171.231027,-44.521158],[171.213147,-44.612212],[171.19785,-44.767913],[171.146277,-44.912297],[170.998999,-44.911419],[171.022874,-44.93705],[171.134185,-44.977771],[171.113308,-45.039214],[170.990731,-45.151507],[170.939675,-45.216413],[170.889962,-45.373923],[170.815238,-45.519185],[170.70062,-45.68424],[170.69969,-45.713954],[170.73979,-45.756018],[170.78847,-45.79245],[170.79126,-45.843816],[170.776274,-45.870947],[170.721807,-45.878026],[170.674161,-45.895751],[170.41919,-45.94102],[170.335474,-45.991766],[170.266848,-46.082613],[170.186129,-46.160851],[169.918239,-46.334381],[169.760729,-46.479747],[169.729103,-46.521398],[169.686625,-46.551629],[169.342253,-46.620462],[169.09865,-46.630693],[168.965842,-46.61302],[168.837788,-46.57819],[168.766784,-46.566305],[168.631495,-46.587595],[168.572274,-46.611056],[168.466441,-46.587905],[168.382105,-46.605372],[168.357197,-46.58837],[168.325674,-46.545737],[168.343038,-46.489048],[168.319783,-46.447139],[168.266246,-46.418717],[168.23028,-46.385695],[168.189145,-46.362183],[168.077317,-46.352984],[167.900377,-46.367815],[167.841983,-46.366265],[167.722094,-46.227101],[167.682199,-46.192942],[167.539469,-46.148501],[167.490583,-46.154702],[167.414205,-46.228858],[167.368937,-46.241467],[167.100323,-46.249425],[166.830778,-46.225499],[166.73156,-46.197903],[166.712129,-46.133721],[166.916665,-45.957246],[166.85641,-45.980914],[166.730319,-46.052693],[166.649911,-46.041685],[166.727012,-45.963292],[166.73373,-45.928307],[166.717917,-45.889343],[166.612704,-45.955386],[166.493125,-45.963912],[166.477622,-45.902779],[166.488267,-45.831879],[166.512865,-45.811725],[166.836049,-45.774518],[166.952528,-45.75023],[167.003274,-45.712093],[166.809901,-45.699071],[166.797706,-45.645637],[166.825611,-45.602849],[166.990872,-45.531742],[166.869019,-45.549881],[166.733937,-45.543576],[166.743032,-45.46849],[166.778379,-45.409683],[166.919972,-45.407926],[166.875634,-45.367618],[166.869226,-45.311239],[166.908603,-45.307467],[167.05216,-45.383224],[167.15572,-45.410923],[167.112105,-45.353924],[167.117789,-45.318009],[167.145281,-45.301834],[167.230134,-45.290362],[167.206776,-45.280233],[167.127298,-45.265816],[167.032833,-45.222407],[167.022705,-45.176674],[167.025909,-45.123602],[167.127918,-45.050738],[167.188173,-45.094146],[167.259486,-45.082261],[167.205019,-45.048154],[167.171843,-44.997098],[167.194581,-44.963457],[167.410795,-44.827909],[167.466192,-44.958341],[167.479214,-44.915036],[167.482108,-44.873953],[167.45627,-44.838296],[167.459991,-44.802381],[167.485002,-44.771427],[167.577606,-44.740835],[167.698116,-44.641306],[167.786999,-44.595004],[167.859346,-44.624666],[167.908956,-44.664715],[167.901514,-44.625028],[167.866374,-44.592058],[167.856556,-44.500694],[168.018406,-44.358739],[168.196173,-44.223657],[168.366602,-44.082012],[168.457449,-44.030542],[168.651029,-43.972148],[168.774846,-43.996539],[168.806472,-43.991991],[168.99044,-43.889982],[169.066508,-43.863524],[169.135961,-43.899904],[169.178956,-43.913133],[169.135754,-43.819857],[169.16955,-43.777069],[169.323133,-43.701518],[169.515266,-43.623642],[169.66151,-43.591189],[169.769204,-43.538479],[169.833903,-43.537032],[169.824084,-43.497138],[169.83504,-43.459001],[169.89085,-43.461585],[169.908007,-43.446598],[169.859017,-43.426031],[170.017561,-43.349447],[170.103757,-43.265007],[170.148819,-43.247592],[170.189643,-43.222064],[170.240286,-43.163877],[170.300024,-43.144601],[170.355731,-43.153593],[170.396039,-43.182222],[170.374335,-43.134679],[170.302815,-43.107601],[170.379502,-43.06626],[170.458671,-43.037734],[170.535875,-43.058457],[170.61184,-43.091788],[170.535875,-43.040732],[170.523576,-43.008951],[170.61556,-42.972415],[170.665376,-42.961253],[170.735243,-43.029776],[170.725321,-42.975516],[170.741651,-42.927354],[170.840353,-42.848599],[170.969957,-42.718374],[171.011402,-42.763694],[171.01781,-42.81873],[171.011712,-42.885082],[171.038377,-42.862086],[171.047575,-42.801883],[171.027732,-42.69605],[171.189582,-42.500506],[171.221311,-42.478647],[171.257072,-42.465315],[171.313399,-42.460147],[171.296036,-42.430536],[171.252214,-42.401959],[171.296449,-42.302586],[171.322597,-42.189104],[171.360218,-42.079963],[171.420576,-41.973097],[171.486205,-41.794761],[171.536331,-41.757554],[171.672137,-41.744738],[171.731668,-41.719624],[171.83068,-41.655183],[171.948089,-41.538653],[172.010721,-41.444757],[172.0933,-41.201567],[172.139498,-40.947216],[172.27272,-40.7587],[172.46816,-40.622171],[172.640656,-40.51825],[172.711143,-40.496701],[172.830206,-40.490086],[172.943687,-40.518715],[172.73264,-40.543778],[172.711143,-40.605376],[172.704425,-40.66775],[172.72892,-40.723664],[172.766747,-40.77348],[172.86917,-40.82035],[172.988645,-40.848256],[173.042286,-40.953624],[173.052104,-41.078578],[173.068641,-41.185858],[173.115356,-41.279289]]],[[[175.543218,-36.279336],[175.551176,-36.333854],[175.474592,-36.314424],[175.44462,-36.273289],[175.358733,-36.230656],[175.346228,-36.217789],[175.336616,-36.134797],[175.381678,-36.094799],[175.389533,-36.077694],[175.409376,-36.070925],[175.44431,-36.114695],[175.512626,-36.176965],[175.543218,-36.279336]]],[[[173.269455,-34.934818],[173.284545,-34.980552],[173.339942,-34.947944],[173.381283,-34.896474],[173.447842,-34.844333],[173.438644,-34.928565],[173.472647,-34.946962],[173.693719,-35.005615],[173.739297,-35.054604],[173.78622,-35.068608],[173.812781,-35.041168],[173.843994,-35.026285],[173.923886,-35.057136],[174.10403,-35.142868],[174.118912,-35.172375],[174.109714,-35.216403],[174.118809,-35.26286],[174.1432,-35.299964],[174.203248,-35.308594],[174.282933,-35.253558],[174.320347,-35.246685],[174.373367,-35.32451],[174.393108,-35.368539],[174.384943,-35.367092],[174.419152,-35.410758],[174.464731,-35.454063],[174.543486,-35.582066],[174.531704,-35.626921],[174.508553,-35.667435],[174.580693,-35.785567],[174.533461,-35.793732],[174.39104,-35.773733],[174.395795,-35.79735],[174.478684,-35.884114],[174.548757,-36.006691],[174.604878,-36.080536],[174.802178,-36.309463],[174.772413,-36.390905],[174.777063,-36.444597],[174.751742,-36.490847],[174.819231,-36.612132],[174.777167,-36.649804],[174.749158,-36.774034],[174.718669,-36.795842],[174.722493,-36.841162],[174.801971,-36.853202],[174.849927,-36.872581],[174.891372,-36.909426],[174.91721,-36.865036],[174.95204,-36.852944],[175.047021,-36.912217],[175.245149,-36.971335],[175.299512,-36.993246],[175.326487,-37.040943],[175.346641,-37.15613],[175.385398,-37.206928],[175.460949,-37.216694],[175.542495,-37.201398],[175.568126,-37.159334],[175.5519,-37.046524],[175.493195,-36.865708],[175.492885,-36.8069],[175.501257,-36.748041],[175.487408,-36.689543],[175.457952,-36.634301],[175.426326,-36.591926],[175.385605,-36.556321],[175.399764,-36.500821],[175.460846,-36.475654],[175.49764,-36.522628],[175.528025,-36.579317],[175.681504,-36.746956],[175.772145,-36.735122],[175.78062,-36.804627],[175.842218,-36.875113],[175.876221,-36.957744],[175.921076,-37.204602],[175.990116,-37.437043],[176.114553,-37.538329],[176.129022,-37.586698],[176.053265,-37.561686],[176.029907,-37.576259],[176.037865,-37.60065],[176.108455,-37.645144],[176.191137,-37.667003],[176.243124,-37.663851],[176.2917,-37.680077],[176.614781,-37.830972],[176.770017,-37.889677],[177.161827,-37.985795],[177.273965,-37.993443],[177.335977,-37.990807],[177.453283,-37.957373],[177.558289,-37.897428],[177.648929,-37.807821],[177.727374,-37.705605],[177.812744,-37.655944],[177.909482,-37.616928],[177.957955,-37.580652],[178.009218,-37.554917],[178.272147,-37.566854],[178.360721,-37.618427],[178.475959,-37.659768],[178.536214,-37.692118],[178.515957,-37.757643],[178.447124,-37.854382],[178.394,-37.960267],[178.347285,-38.200872],[178.315452,-38.44401],[178.267703,-38.551135],[178.18068,-38.633714],[178.084872,-38.693917],[177.976145,-38.722287],[177.932116,-38.860263],[177.910412,-39.021752],[177.916613,-39.06237],[177.95134,-39.094564],[177.965603,-39.14252],[177.908759,-39.239517],[177.875479,-39.225461],[177.82866,-39.14469],[177.786182,-39.110894],[177.655854,-39.085728],[177.522942,-39.073842],[177.407497,-39.081128],[177.2966,-39.115803],[177.128755,-39.186083],[177.076768,-39.22174],[177.031189,-39.266905],[176.954088,-39.367623],[176.935795,-39.490716],[176.939205,-39.555311],[176.966594,-39.605179],[177.109841,-39.673185],[176.967937,-39.910742],[176.842157,-40.157859],[176.77074,-40.228397],[176.688781,-40.293458],[176.611577,-40.441976],[176.476495,-40.569978],[176.385131,-40.667698],[176.313817,-40.768984],[176.251702,-40.876884],[176.118687,-41.029123],[176.059983,-41.129686],[175.982881,-41.213246],[175.839634,-41.320113],[175.687292,-41.411736],[175.4471,-41.538239],[175.380334,-41.580046],[175.309744,-41.610638],[175.222204,-41.574465],[175.204531,-41.534984],[175.184687,-41.449046],[175.16567,-41.417368],[175.053946,-41.39122],[174.906048,-41.432923],[174.881346,-41.424035],[174.875249,-41.404346],[174.875042,-41.278255],[174.900157,-41.24265],[174.865637,-41.223065],[174.83153,-41.230765],[174.819748,-41.262907],[174.841246,-41.290761],[174.757013,-41.325333],[174.669576,-41.326263],[174.642911,-41.312672],[174.635367,-41.289417],[174.656554,-41.251229],[174.684873,-41.217691],[174.847757,-41.058785],[175.016739,-40.847636],[175.162466,-40.621603],[175.2005,-40.505331],[175.25414,-40.289375],[175.210112,-40.199458],[175.155955,-40.114915],[175.009297,-39.952186],[174.813754,-39.860202],[174.68725,-39.84718],[174.567464,-39.813022],[174.454706,-39.735145],[174.352076,-39.643316],[174.148678,-39.568127],[173.934324,-39.509113],[173.812161,-39.425759],[173.783016,-39.376201],[173.763689,-39.318788],[173.766376,-39.265355],[173.781672,-39.211198],[173.806063,-39.169547],[173.844304,-39.139316],[174.07137,-39.031261],[174.311665,-38.971109],[174.356107,-38.972195],[174.398482,-38.962583],[174.45853,-38.925789],[174.566224,-38.841556],[174.597333,-38.785022],[174.61852,-38.60524],[174.65304,-38.428352],[174.715362,-38.225573],[174.80931,-38.099845],[174.840005,-38.022692],[174.801661,-37.895516],[174.836801,-37.848904],[174.879589,-37.820792],[174.928062,-37.804462],[174.846,-37.685141],[174.749365,-37.504636],[174.729211,-37.448722],[174.743887,-37.393428],[174.767658,-37.339064],[174.707404,-37.325318],[174.672574,-37.273177],[174.585861,-37.097735],[174.609632,-37.069882],[174.659655,-37.088744],[174.734275,-37.215196],[174.746368,-37.150135],[174.803625,-37.110086],[174.86388,-37.089312],[174.928889,-37.084816],[174.782024,-36.943791],[174.732932,-36.949424],[174.668026,-36.971903],[174.601467,-36.985701],[174.536561,-36.973298],[174.475583,-36.941931],[174.444474,-36.882555],[174.406027,-36.768246],[174.381945,-36.726027],[174.188882,-36.492294],[174.245726,-36.484956],[174.401582,-36.601952],[174.431762,-36.564538],[174.454292,-36.510794],[174.446851,-36.450901],[174.409541,-36.405529],[174.354144,-36.376022],[174.35311,-36.322847],[174.395381,-36.274116],[174.392797,-36.24001],[174.303501,-36.170557],[174.267844,-36.163064],[174.252031,-36.195568],[174.277559,-36.243731],[174.253685,-36.249105],[174.036437,-36.122446],[173.969361,-36.020643],[173.91448,-35.908661],[173.908899,-35.954239],[173.917271,-36.018163],[174.003157,-36.14632],[174.142373,-36.289464],[174.166455,-36.327653],[174.145784,-36.376901],[174.097518,-36.39106],[174.05473,-36.359744],[173.990962,-36.237168],[173.945073,-36.175879],[173.412186,-35.542533],[173.480295,-35.458972],[173.585818,-35.388537],[173.610313,-35.357273],[173.626229,-35.319136],[173.581684,-35.312573],[173.541687,-35.329936],[173.496108,-35.362337],[173.454353,-35.399234],[173.401644,-35.481193],[173.376322,-35.500107],[173.314,-35.443314],[173.290229,-35.408278],[173.291263,-35.366316],[173.274519,-35.3396],[173.228114,-35.33128],[173.160108,-35.247771],[173.1167,-35.205241],[173.188737,-35.123696],[173.190597,-35.016157],[173.11732,-34.903347],[173.029573,-34.799891],[172.860798,-34.632304],[172.705975,-34.455209],[172.873717,-34.432937],[173.043939,-34.429061],[172.963737,-34.535204],[172.999808,-34.596493],[173.054378,-34.648221],[173.171063,-34.806971],[173.181192,-34.852756],[173.240516,-34.899058],[173.269455,-34.934818]]],[[[-171.186445,-9.355501],[-171.188641,-9.358343],[-171.193033,-9.352452],[-171.200061,-9.344701],[-171.204428,-9.333332],[-171.201663,-9.332608],[-171.194455,-9.33881],[-171.189287,-9.346561],[-171.186445,-9.355501]]],[[[-172.479156,-8.580716],[-172.483678,-8.582887],[-172.488252,-8.571621],[-172.494039,-8.559219],[-172.49869,-8.547953],[-172.497037,-8.546506],[-172.48727,-8.556118],[-172.48112,-8.567487],[-172.479156,-8.580716]]]]},"type":"Feature","properties":{"ISO_A2":"NZ","NAME":"New Zealand"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.722028,20.218766],[58.659087,20.203599],[58.640896,20.210705],[58.641206,20.337364],[58.787968,20.496579],[58.884396,20.680547],[58.950748,20.516164],[58.835096,20.423922],[58.772258,20.266825],[58.722028,20.218766]]],[[[56.387959,24.979173],[56.489813,24.716373],[56.640605,24.47029],[56.774137,24.334587],[56.912526,24.150206],[57.123056,23.980707],[57.219795,23.922778],[57.611295,23.803664],[57.825132,23.759144],[58.120411,23.716537],[58.324533,23.62383],[58.39316,23.618145],[58.500026,23.645637],[58.578058,23.643467],[58.773085,23.51717],[58.830342,23.397435],[58.911474,23.334183],[58.983408,23.234706],[59.029917,23.130578],[59.194764,22.97188],[59.310933,22.793338],[59.429375,22.660839],[59.535209,22.578519],[59.695612,22.546144],[59.823253,22.508962],[59.837516,22.420544],[59.82439,22.30515],[59.799999,22.219936],[59.680833,22.053796],[59.652514,21.951374],[59.517639,21.78234],[59.371498,21.498843],[59.304525,21.435333],[59.068777,21.289088],[58.895661,21.112768],[58.690402,20.807102],[58.534133,20.503917],[58.474188,20.406868],[58.348718,20.386921],[58.266036,20.395448],[58.208985,20.423973],[58.231619,20.506862],[58.245055,20.599208],[58.169401,20.589519],[58.102945,20.570373],[57.947192,20.343616],[57.861823,20.244113],[57.843632,20.117739],[57.802188,19.954596],[57.74121,19.804476],[57.714131,19.678437],[57.715165,19.606917],[57.760847,19.432251],[57.763947,19.253295],[57.790302,19.145963],[57.811593,19.017108],[57.738419,18.977343],[57.675787,18.957861],[57.427947,18.943805],[57.176593,18.902567],[56.957175,18.827843],[56.82602,18.753533],[56.655074,18.587341],[56.550791,18.165946],[56.383463,17.987998],[56.270292,17.950791],[55.997647,17.935185],[55.613898,17.886092],[55.479126,17.843252],[55.255367,17.585645],[55.23821,17.50472],[55.281412,17.446222],[55.295571,17.381575],[55.27521,17.320907],[55.173718,17.157609],[55.064164,17.038909],[54.771882,16.964624],[54.664602,17.008885],[54.56652,17.03126],[54.376971,17.033638],[54.068152,17.005526],[53.954361,16.917831],[53.775354,16.855716],[53.609886,16.759959],[53.29776,16.723321],[53.08568,16.64839],[53.025012,16.780216],[52.964344,16.912043],[52.903676,17.04387],[52.843007,17.175696],[52.800581,17.267939],[52.729164,17.300391],[52.685911,17.397956],[52.641676,17.497847],[52.597389,17.597738],[52.553103,17.697628],[52.508868,17.797519],[52.464581,17.897409],[52.420294,17.9973],[52.376059,18.09719],[52.331772,18.197055],[52.287486,18.29692],[52.243251,18.39681],[52.198964,18.496701],[52.154677,18.596591],[52.110442,18.696482],[52.066156,18.796372],[52.021869,18.896263],[51.977634,18.996153],[52.118607,19.043153],[52.290638,19.100488],[52.462669,19.157797],[52.6347,19.215132],[52.806731,19.272467],[52.978761,19.329802],[53.150792,19.387137],[53.322823,19.444472],[53.494854,19.501807],[53.666885,19.559142],[53.838916,19.616477],[54.010946,19.673812],[54.182977,19.731147],[54.355008,19.788482],[54.527039,19.845817],[54.699018,19.903152],[54.871049,19.960487],[54.977399,19.995937],[55.021531,20.129263],[55.058169,20.239954],[55.094756,20.350644],[55.131395,20.461335],[55.168033,20.572026],[55.20462,20.682717],[55.241259,20.793408],[55.277898,20.904099],[55.314484,21.014816],[55.351071,21.125533],[55.38771,21.236223],[55.424349,21.346914],[55.460935,21.457605],[55.497574,21.568296],[55.534213,21.678987],[55.5708,21.789678],[55.607438,21.900369],[55.641028,22.001861],[55.577724,22.09953],[55.492717,22.230659],[55.403781,22.367834],[55.320169,22.496922],[55.259242,22.590895],[55.185862,22.704093],[55.194078,22.849975],[55.192218,22.922942],[55.199866,23.03477],[55.270249,23.189954],[55.353242,23.387462],[55.413807,23.518771],[55.46631,23.632925],[55.508529,23.724599],[55.531629,23.819063],[55.51933,23.885493],[55.491786,23.909678],[55.46848,23.941097],[55.547855,23.991352],[55.69658,24.024141],[55.779159,24.017113],[55.894087,24.041427],[55.985141,24.063389],[55.992169,24.092948],[55.966331,24.142635],[55.928607,24.215137],[55.799726,24.22263],[55.760866,24.242681],[55.805669,24.34978],[55.804015,24.383551],[55.786807,24.423522],[55.768204,24.490598],[55.777557,24.577337],[55.803964,24.636248],[55.80417,24.68361],[55.791561,24.781304],[55.795695,24.868095],[55.822877,24.91127],[55.870678,24.951423],[55.915843,24.971784],[55.963075,24.970259],[56.000644,24.953206],[56.016664,24.907731],[56.006329,24.876415],[55.979715,24.872074],[55.970362,24.858948],[56.008396,24.798228],[56.063896,24.738749],[56.106529,24.748696],[56.154433,24.795515],[56.204714,24.833317],[56.267863,24.866725],[56.313597,24.931295],[56.352974,24.973308],[56.387959,24.979173]]],[[[56.281816,25.23554],[56.240216,25.208823],[56.210554,25.213268],[56.216497,25.266701],[56.234273,25.30383],[56.27732,25.300859],[56.287758,25.278587],[56.281816,25.23554]]],[[[56.429765,26.327179],[56.417776,26.208168],[56.416433,26.108743],[56.373645,25.804575],[56.329306,25.751968],[56.307189,25.709335],[56.297887,25.650683],[56.278508,25.627738],[56.249518,25.625387],[56.18363,25.644921],[56.144615,25.690525],[56.151953,25.746077],[56.154071,25.8485],[56.172572,25.945187],[56.167456,26.047454],[56.116503,26.068177],[56.080433,26.062647],[56.164458,26.207031],[56.197325,26.229175],[56.228434,26.219795],[56.305535,26.235195],[56.346463,26.313614],[56.378709,26.35635],[56.413125,26.351157],[56.429765,26.327179]]]]},"type":"Feature","properties":{"ISO_A2":"OM","NAME":"Oman"}},{"geometry":{"type":"Polygon","coordinates":[[[76.76687,35.6617],[76.812759,35.571808],[76.882264,35.435718],[76.927739,35.346628],[76.978899,35.246428],[77.004478,35.196353],[77.04861,35.109899],[77.030678,35.062356],[77.000913,34.991999],[76.89172,34.93872],[76.782942,34.900196],[76.757517,34.877846],[76.749042,34.847537],[76.696332,34.786921],[76.594426,34.735865],[76.509987,34.740877],[76.45676,34.756122],[76.172436,34.667729],[76.041075,34.669925],[75.93829,34.612565],[75.862067,34.560268],[75.709209,34.503062],[75.605546,34.502752],[75.45248,34.536704],[75.264068,34.601351],[75.187535,34.639023],[75.118444,34.636827],[74.95189,34.64587],[74.788748,34.677729],[74.594135,34.715762],[74.497965,34.732041],[74.300406,34.765398],[74.171938,34.720878],[74.055873,34.680674],[73.961202,34.653466],[73.883119,34.529055],[73.850097,34.485286],[73.812115,34.422344],[73.794493,34.378238],[73.809945,34.325321],[73.924563,34.28783],[73.972364,34.236619],[73.979443,34.191298],[73.938309,34.144764],[73.903892,34.107996],[73.904099,34.075672],[73.922393,34.04309],[73.949884,34.018802],[74.112562,34.003687],[74.20899,34.003403],[74.246507,33.990174],[74.2509,33.946094],[74.215605,33.886562],[74.078404,33.838658],[74.000992,33.78817],[73.976498,33.721275],[73.977583,33.667816],[74.00399,33.632444],[74.069774,33.591697],[74.131269,33.545085],[74.149976,33.506999],[74.142586,33.455348],[74.117781,33.384112],[74.050395,33.301249],[73.994223,33.242209],[73.98983,33.221177],[74.003783,33.189447],[74.049155,33.143429],[74.126256,33.075423],[74.222064,33.02031],[74.283559,33.005117],[74.30361,32.991811],[74.32273,32.92799],[74.329965,32.860837],[74.305522,32.810427],[74.354563,32.768698],[74.48334,32.770997],[74.588243,32.753247],[74.632375,32.770894],[74.663226,32.757665],[74.643382,32.607726],[74.6578,32.51892],[74.685757,32.493805],[74.788903,32.457812],[74.987341,32.462205],[75.104078,32.420347],[75.233682,32.372133],[75.302618,32.318906],[75.333521,32.279219],[75.324684,32.215269],[75.254146,32.140312],[75.138804,32.104759],[75.071521,32.089334],[74.739449,31.948851],[74.635786,31.889733],[74.555532,31.818575],[74.526025,31.765142],[74.510005,31.712948],[74.581836,31.523942],[74.593928,31.465367],[74.534965,31.261374],[74.517705,31.18559],[74.539771,31.132674],[74.610309,31.11283],[74.625761,31.06875],[74.63284,31.034643],[74.509747,30.959661],[74.380401,30.893412],[74.33937,30.893567],[74.215605,30.768975],[74.009002,30.519688],[73.899293,30.435378],[73.891542,30.394062],[73.882705,30.352153],[73.924615,30.281614],[73.9334,30.222083],[73.886529,30.162035],[73.80917,30.093357],[73.658068,30.033206],[73.467485,29.971685],[73.381599,29.934349],[73.317313,29.773015],[73.257834,29.610699],[73.231117,29.550626],[73.128333,29.363919],[72.948757,29.088819],[72.903282,29.028771],[72.625624,28.896144],[72.341921,28.751915],[72.291949,28.697293],[72.233865,28.565802],[72.179192,28.42178],[72.128549,28.346358],[71.947991,28.177298],[71.888873,28.047487],[71.87027,27.962505],[71.716687,27.915092],[71.543003,27.869875],[71.29015,27.855251],[71.18473,27.831635],[70.87493,27.714433],[70.797932,27.709627],[70.737367,27.729031],[70.691582,27.769003],[70.649104,27.83533],[70.629054,27.937442],[70.569264,27.98377],[70.488597,28.023148],[70.403693,28.02506],[70.318427,27.981652],[70.244323,27.934135],[70.193886,27.894887],[70.144587,27.849024],[70.049812,27.694744],[69.896282,27.473621],[69.724819,27.312674],[69.661309,27.264486],[69.62157,27.22808],[69.56793,27.174595],[69.537027,27.122944],[69.494498,26.954169],[69.470003,26.804462],[69.481268,26.770976],[69.506952,26.742657],[69.600641,26.699094],[69.735878,26.627031],[69.911423,26.586129],[70.059321,26.57874],[70.114615,26.548044],[70.147688,26.506444],[70.156886,26.471434],[70.149238,26.347539],[70.132598,26.214783],[70.077718,26.071949],[70.078648,25.990042],[70.100249,25.910047],[70.264631,25.706545],[70.325196,25.685719],[70.448548,25.681327],[70.505909,25.685306],[70.569574,25.705976],[70.614791,25.69192],[70.648484,25.666935],[70.657217,25.625775],[70.65205,25.422893],[70.702486,25.331064],[70.800464,25.205852],[70.877772,25.062992],[70.950843,24.891608],[71.020709,24.757662],[71.047891,24.687744],[71.002364,24.653896],[70.976319,24.618756],[70.969808,24.571885],[70.979316,24.522457],[70.973219,24.48742],[71.00624,24.444348],[71.045307,24.430008],[71.044015,24.400087],[70.98283,24.36102],[70.928157,24.362338],[70.886196,24.34376],[70.805064,24.261982],[70.767288,24.245394],[70.716335,24.237978],[70.659491,24.246117],[70.579341,24.279035],[70.55588,24.331099],[70.565026,24.385773],[70.546785,24.418303],[70.489269,24.412179],[70.289074,24.356317],[70.098182,24.287484],[70.06516,24.240562],[70.021132,24.191573],[69.933747,24.171367],[69.805176,24.165244],[69.716189,24.172608],[69.634127,24.225188],[69.559196,24.273092],[69.443441,24.275366],[69.235082,24.268235],[69.119533,24.268648],[69.051527,24.286322],[68.984554,24.273092],[68.900839,24.292445],[68.863425,24.266478],[68.828285,24.263997],[68.799966,24.309059],[68.781156,24.31371],[68.758935,24.30725],[68.739608,24.292006],[68.728136,24.265625],[68.724105,23.964687],[68.586594,23.966599],[68.488719,23.967245],[68.381284,23.95089],[68.28253,23.927971],[68.234213,23.900557],[68.16507,23.857304],[68.148843,23.79723],[68.115564,23.753382],[68.067815,23.81834],[68.037015,23.84826],[68.001462,23.826065],[67.951026,23.828623],[67.859972,23.902676],[67.819044,23.828055],[67.668459,23.811002],[67.649546,23.867303],[67.645825,23.919884],[67.563039,23.88185],[67.503611,23.940064],[67.476843,24.018276],[67.45395,24.039902],[67.427647,24.064836],[67.365222,24.091605],[67.309411,24.174804],[67.304244,24.262912],[67.288637,24.367764],[67.171539,24.756112],[67.100638,24.791924],[66.70304,24.860963],[66.682266,24.928866],[66.709861,25.111336],[66.698596,25.226316],[66.569922,25.378503],[66.533851,25.484388],[66.428638,25.575338],[66.324252,25.601797],[66.219039,25.589911],[66.162298,25.553893],[66.131189,25.493276],[66.356394,25.507384],[66.407141,25.485034],[66.467706,25.445295],[66.402903,25.446845],[66.328283,25.465784],[66.234645,25.464337],[65.883555,25.419637],[65.679743,25.355249],[65.406272,25.374317],[65.061383,25.311065],[64.776646,25.307319],[64.658927,25.184096],[64.594021,25.206317],[64.543792,25.236651],[64.152085,25.333441],[64.124903,25.373904],[64.059377,25.40292],[63.98734,25.351166],[63.93556,25.342536],[63.720896,25.385893],[63.556669,25.353181],[63.495691,25.297526],[63.49135,25.210813],[63.285781,25.227608],[63.170026,25.254893],[63.0151,25.224662],[62.664734,25.264815],[62.572439,25.254738],[62.444695,25.197274],[62.391158,25.152522],[62.315297,25.1349],[62.248738,25.197377],[62.198612,25.224869],[62.152103,25.206627],[62.089471,25.155312],[61.90788,25.131283],[61.743653,25.138208],[61.566919,25.186318],[61.587848,25.202338],[61.615392,25.286105],[61.640145,25.58464],[61.671357,25.69236],[61.661849,25.751297],[61.668619,25.768996],[61.737658,25.821112],[61.754401,25.843358],[61.780756,25.995855],[61.810005,26.165302],[61.842355,26.225945],[61.869795,26.24243],[62.089006,26.318239],[62.125955,26.369011],[62.239333,26.357048],[62.249668,26.369243],[62.259642,26.427483],[62.3123,26.490864],[62.385061,26.542644],[62.439218,26.561015],[62.636415,26.593648],[62.751602,26.639149],[62.786638,26.643904],[63.092924,26.632328],[63.157778,26.649769],[63.168062,26.665582],[63.186097,26.837613],[63.241546,26.864743],[63.250331,26.879238],[63.231469,26.99812],[63.242063,27.077676],[63.305211,27.124572],[63.301594,27.15147],[63.256222,27.207926],[63.196071,27.243919],[63.16677,27.252471],[62.915468,27.218416],[62.811598,27.229449],[62.763022,27.250172],[62.75279,27.265649],[62.762505,27.300194],[62.764314,27.356728],[62.800849,27.444553],[62.812011,27.49703],[62.782349,27.800526],[62.739768,28.002038],[62.762505,28.202077],[62.758009,28.243574],[62.749431,28.252901],[62.717599,28.252798],[62.564585,28.235176],[62.433895,28.363876],[62.353021,28.414752],[62.130554,28.47883],[62.032989,28.491026],[61.889897,28.546527],[61.758019,28.667656],[61.62304,28.791628],[61.56878,28.870925],[61.508628,29.006033],[61.337838,29.26501],[61.339491,29.331776],[61.318356,29.372626],[61.152164,29.542719],[61.034187,29.663409],[60.843398,29.858695],[61.224356,29.749425],[61.521444,29.665657],[62.001001,29.53042],[62.373485,29.425388],[62.476528,29.408334],[63.567624,29.497993],[63.97101,29.43009],[64.098755,29.391953],[64.117926,29.414277],[64.172135,29.460373],[64.266083,29.506933],[64.393724,29.544321],[64.521106,29.564501],[64.703575,29.567136],[64.827289,29.564165],[64.918911,29.55277],[65.09549,29.559488],[65.180446,29.577626],[65.47097,29.651575],[65.666256,29.701314],[65.961587,29.778906],[66.177077,29.835595],[66.231234,29.865723],[66.28689,29.920009],[66.313348,29.968533],[66.247202,30.043489],[66.238417,30.109635],[66.281825,30.193454],[66.305442,30.321147],[66.300946,30.502996],[66.28689,30.607925],[66.346886,30.802771],[66.397167,30.912196],[66.497368,30.96457],[66.566821,30.996558],[66.595811,31.019967],[66.624182,31.046064],[66.731359,31.194556],[66.829286,31.263673],[66.924318,31.305635],[67.027723,31.30026],[67.115935,31.242925],[67.287294,31.217836],[67.452865,31.234631],[67.59637,31.277678],[67.661483,31.312999],[67.737861,31.343953],[67.733468,31.379248],[67.647065,31.409969],[67.597559,31.4533],[67.578232,31.506475],[67.626705,31.538773],[67.739876,31.548178],[68.017172,31.677963],[68.130188,31.763281],[68.161039,31.802969],[68.213956,31.807387],[68.319789,31.767699],[68.443244,31.75447],[68.520655,31.794158],[68.597601,31.802969],[68.673256,31.759715],[68.713667,31.708039],[68.782293,31.646441],[68.869006,31.634245],[68.973392,31.66737],[69.083101,31.738451],[69.186919,31.838109],[69.279317,31.936811],[69.256579,32.249453],[69.241438,32.43355],[69.289911,32.530573],[69.359467,32.590311],[69.405407,32.682708],[69.404581,32.764279],[69.453156,32.832828],[69.501577,33.020052],[69.567723,33.064158],[69.703684,33.094724],[69.920105,33.112475],[70.090223,33.198103],[70.261169,33.289028],[70.284165,33.369049],[70.219725,33.454677],[70.134148,33.620739],[70.056634,33.719854],[69.868066,33.897647],[69.889667,34.007279],[69.994725,34.051824],[70.253624,33.975963],[70.325713,33.961157],[70.415733,33.950434],[70.654013,33.952295],[70.84842,33.981905],[71.051612,34.049731],[71.091299,34.120269],[71.089077,34.204062],[71.092436,34.273231],[71.095692,34.369427],[71.022931,34.431154],[70.978851,34.486293],[70.965622,34.530373],[71.016317,34.554635],[71.065668,34.59962],[71.113313,34.681604],[71.225813,34.779531],[71.294129,34.867717],[71.358105,34.909601],[71.455101,34.966936],[71.517061,35.051142],[71.545483,35.101424],[71.601656,35.150671],[71.620466,35.183021],[71.605221,35.211779],[71.577213,35.248004],[71.545483,35.288854],[71.545483,35.328542],[71.571942,35.370425],[71.600622,35.407917],[71.587393,35.460833],[71.571942,35.546823],[71.519025,35.597517],[71.483627,35.714616],[71.427558,35.83373],[71.397585,35.880187],[71.34286,35.93853],[71.22018,36.000697],[71.185092,36.042116],[71.232893,36.121801],[71.312578,36.171203],[71.463266,36.293263],[71.545845,36.377676],[71.620466,36.436484],[71.716377,36.426562],[71.772601,36.431833],[71.822211,36.486094],[71.920706,36.534204],[72.095579,36.633759],[72.156764,36.700887],[72.249833,36.734735],[72.326986,36.742409],[72.431166,36.765818],[72.531366,36.802018],[72.622834,36.829587],[72.766236,36.835013],[72.993715,36.851601],[73.116757,36.868551],[73.411158,36.881703],[73.73181,36.887775],[73.76912,36.888472],[73.907872,36.852945],[74.001819,36.823076],[74.038923,36.825711],[74.194676,36.89687],[74.431044,36.983712],[74.541373,37.022185],[74.600646,37.036654],[74.692216,37.035724],[74.76601,37.012728],[74.841251,36.979087],[74.88931,36.952422],[74.949152,36.968338],[75.053951,36.987148],[75.145212,36.973222],[75.346647,36.913458],[75.376877,36.883718],[75.424161,36.738223],[75.460232,36.725045],[75.573713,36.759307],[75.667196,36.74197],[75.772202,36.694918],[75.84026,36.649701],[75.885012,36.600712],[75.933019,36.52157],[75.951881,36.458111],[75.974412,36.382431],[75.968624,36.168852],[75.934104,36.133919],[75.904856,36.088469],[75.912297,36.048963],[75.945112,36.017595],[76.010482,35.996356],[76.07084,35.982998],[76.103293,35.949227],[76.147838,35.829028],[76.17781,35.810528],[76.251656,35.810915],[76.385756,35.837141],[76.502028,35.878224],[76.551276,35.88706],[76.56342,35.772985],[76.63184,35.72937],[76.727544,35.678675],[76.76687,35.6617]]]},"type":"Feature","properties":{"ISO_A2":"PK","NAME":"Pakistan"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.603282,7.332834],[-81.658111,7.327512],[-81.77012,7.370351],[-81.852053,7.453344],[-81.858615,7.48019],[-81.85691,7.507656],[-81.812158,7.592405],[-81.752291,7.621628],[-81.728753,7.621189],[-81.671443,7.523417],[-81.710433,7.485538],[-81.694724,7.425025],[-81.613437,7.38017],[-81.603282,7.332834]]],[[[-79.065453,8.254225],[-79.110334,8.209835],[-79.127542,8.251848],[-79.096303,8.295437],[-79.085296,8.295825],[-79.065453,8.254225]]],[[[-78.898357,8.274276],[-78.918097,8.231953],[-78.964942,8.326288],[-78.957449,8.350602],[-78.960601,8.435842],[-78.91603,8.45827],[-78.883267,8.460259],[-78.856163,8.448244],[-78.839162,8.347889],[-78.853243,8.302465],[-78.898357,8.274276]]],[[[-82.233502,9.38072],[-82.244458,9.334108],[-82.321714,9.418133],[-82.275773,9.431905],[-82.259418,9.430277],[-82.233502,9.38072]]],[[[-79.355461,9.569235],[-79.211645,9.531925],[-79.112271,9.536783],[-79.016722,9.510428],[-78.974993,9.452963],[-78.931662,9.428469],[-78.696922,9.434773],[-78.50435,9.4063],[-78.082774,9.236284],[-77.830799,9.068129],[-77.697216,8.889432],[-77.374238,8.658283],[-77.393074,8.644692],[-77.448316,8.56586],[-77.478495,8.498422],[-77.407285,8.427238],[-77.385891,8.351687],[-77.345532,8.269521],[-77.282642,8.187046],[-77.21231,8.033877],[-77.196006,7.972485],[-77.215979,7.932539],[-77.282952,7.908148],[-77.345635,7.83655],[-77.36274,7.749088],[-77.350803,7.705835],[-77.538285,7.566257],[-77.586577,7.54308],[-77.61859,7.564577],[-77.658588,7.634599],[-77.706337,7.69121],[-77.73202,7.710925],[-77.746903,7.711881],[-77.761915,7.698807],[-77.768762,7.668059],[-77.743905,7.536956],[-77.764705,7.483704],[-77.828345,7.442802],[-77.901157,7.229352],[-77.929786,7.256353],[-78.170133,7.543778],[-78.378208,7.89988],[-78.421564,8.061007],[-78.367614,8.070541],[-78.315447,8.06695],[-78.287361,8.091806],[-78.254856,8.138625],[-78.281211,8.247533],[-78.180029,8.330293],[-78.141891,8.386103],[-78.113883,8.379566],[-78.047737,8.28474],[-77.95167,8.230299],[-77.833642,8.151182],[-77.760571,8.133251],[-77.852917,8.216191],[-78.012494,8.325384],[-78.057194,8.397136],[-78.099465,8.496949],[-78.161839,8.453696],[-78.190777,8.417316],[-78.223023,8.396645],[-78.251135,8.42145],[-78.256096,8.453696],[-78.350147,8.460001],[-78.374332,8.489275],[-78.399214,8.505683],[-78.387871,8.443413],[-78.369371,8.404914],[-78.379293,8.358612],[-78.409885,8.355304],[-78.436008,8.403312],[-78.469417,8.446668],[-78.514039,8.628156],[-78.62088,8.713706],[-78.669844,8.742206],[-78.710203,8.752954],[-78.769683,8.81109],[-78.848257,8.8422],[-78.955201,8.93253],[-79.086382,8.997177],[-79.246682,9.02007],[-79.441502,9.006014],[-79.507079,8.970047],[-79.551676,8.924443],[-79.572373,8.903281],[-79.68743,8.850959],[-79.731045,8.77533],[-79.758537,8.711562],[-79.815898,8.639189],[-79.750424,8.595496],[-80.125776,8.349672],[-80.200112,8.313963],[-80.368681,8.288797],[-80.407567,8.262442],[-80.459011,8.213892],[-80.465858,8.139969],[-80.458132,8.077027],[-80.409117,8.028554],[-80.36558,7.998013],[-80.260935,7.851666],[-80.075184,7.667026],[-80.040044,7.599821],[-80.011235,7.500033],[-80.067304,7.45324],[-80.110583,7.433448],[-80.28729,7.425645],[-80.348243,7.385699],[-80.372944,7.32467],[-80.438883,7.274957],[-80.666699,7.225709],[-80.845551,7.220076],[-80.901206,7.277127],[-80.914642,7.437479],[-81.0351,7.711158],[-81.063884,7.899777],[-81.093959,7.876315],[-81.157806,7.854379],[-81.179406,7.807534],[-81.195452,7.668421],[-81.219016,7.620956],[-81.268393,7.625504],[-81.369601,7.67532],[-81.504167,7.721183],[-81.675707,8.015893],[-81.694284,8.071368],[-81.727642,8.137566],[-81.860269,8.165445],[-81.973311,8.215106],[-82.096715,8.222754],[-82.159837,8.194797],[-82.22433,8.230351],[-82.235466,8.311043],[-82.364864,8.27487],[-82.530952,8.287401],[-82.679547,8.321973],[-82.781143,8.303524],[-82.866125,8.246319],[-82.854343,8.099532],[-82.879354,8.07067],[-82.883307,8.130589],[-82.912892,8.199629],[-82.94842,8.256861],[-83.023376,8.31603],[-83.02733,8.337734],[-82.997538,8.367758],[-82.861603,8.453489],[-82.844783,8.489379],[-82.842612,8.563948],[-82.855712,8.635287],[-82.917026,8.74032],[-82.881964,8.805328],[-82.811916,8.857444],[-82.740009,8.898604],[-82.727813,8.916045],[-82.741146,8.951702],[-82.783055,8.990304],[-82.881344,9.055882],[-82.940358,9.060093],[-82.942813,9.248893],[-82.939867,9.449191],[-82.925036,9.469035],[-82.88894,9.480998],[-82.860131,9.511461],[-82.844008,9.570786],[-82.801039,9.591818],[-82.723395,9.546084],[-82.644071,9.50588],[-82.611283,9.519213],[-82.586504,9.538798],[-82.569244,9.558177],[-82.563585,9.576677],[-82.500333,9.523269],[-82.370781,9.428572],[-82.363184,9.381934],[-82.37538,9.33726],[-82.339723,9.20918],[-82.272466,9.190602],[-82.204873,9.215407],[-82.188156,9.191739],[-82.200688,9.168097],[-82.235466,9.141665],[-82.244173,9.03149],[-82.133327,8.980072],[-82.077879,8.934855],[-81.894143,8.956094],[-81.826421,8.944106],[-81.780222,8.957231],[-81.831485,9.045598],[-81.900163,9.111046],[-81.894479,9.14045],[-81.842389,9.11872],[-81.802598,9.074123],[-81.712216,9.018933],[-81.545585,8.827007],[-81.35477,8.78055],[-81.203746,8.786699],[-81.063083,8.812641],[-80.838678,8.88721],[-80.676465,9.021879],[-80.546887,9.081927],[-80.127093,9.209929],[-79.977981,9.343719],[-79.915091,9.361315],[-79.855069,9.378084],[-79.723087,9.479318],[-79.652239,9.558228],[-79.577308,9.597864],[-79.355461,9.569235]]]]},"type":"Feature","properties":{"ISO_A2":"PA","NAME":"Panama"}},{"geometry":{"type":"Polygon","coordinates":[[[-128.290097,-24.397374],[-128.300018,-24.412566],[-128.320637,-24.399699],[-128.342186,-24.370709],[-128.350196,-24.340271],[-128.330146,-24.323218],[-128.303636,-24.333553],[-128.290794,-24.364662],[-128.290097,-24.397374]]]},"type":"Feature","properties":{"ISO_A2":"PN","NAME":"Pitcairn Is."}},{"geometry":{"type":"Polygon","coordinates":[[[-69.965931,-4.235969],[-69.972028,-4.301133],[-70.003964,-4.327229],[-70.053315,-4.333069],[-70.128815,-4.286611],[-70.183979,-4.298187],[-70.239144,-4.301133],[-70.316917,-4.246976],[-70.343659,-4.193697],[-70.404638,-4.150134],[-70.530651,-4.167601],[-70.634572,-4.168686],[-70.721569,-4.158919],[-70.799497,-4.173337],[-70.866031,-4.229561],[-70.91564,-4.295293],[-70.973698,-4.350483],[-71.144257,-4.387174],[-71.235,-4.388207],[-71.316804,-4.424329],[-71.43827,-4.43761],[-71.521339,-4.469753],[-71.668359,-4.487323],[-71.844756,-4.504376],[-71.943148,-4.553313],[-71.982448,-4.574604],[-72.082494,-4.6423],[-72.256798,-4.748909],[-72.352839,-4.786012],[-72.469008,-4.901251],[-72.608353,-5.009565],[-72.698735,-5.067236],[-72.831905,-5.093746],[-72.88707,-5.122788],[-72.907456,-5.157669],[-72.895778,-5.198287],[-72.918283,-5.302518],[-72.958926,-5.49522],[-72.970243,-5.589684],[-72.979855,-5.63485],[-73.068093,-5.789569],[-73.162919,-5.933384],[-73.209402,-6.028727],[-73.23555,-6.098439],[-73.206508,-6.156471],[-73.167725,-6.260651],[-73.135349,-6.344315],[-73.126306,-6.400901],[-73.137365,-6.465807],[-73.177466,-6.525234],[-73.240304,-6.564095],[-73.325519,-6.57474],[-73.499875,-6.679489],[-73.694514,-6.833743],[-73.758102,-6.905728],[-73.776241,-6.973579],[-73.804637,-7.079878],[-73.79301,-7.135068],[-73.75818,-7.172792],[-73.723324,-7.262812],[-73.72043,-7.309269],[-73.749472,-7.335366],[-73.804637,-7.341205],[-73.853988,-7.349887],[-73.891737,-7.373141],[-73.929461,-7.367302],[-73.964317,-7.378929],[-73.964317,-7.416705],[-73.95269,-7.460216],[-73.958503,-7.506673],[-73.981732,-7.535715],[-74.002067,-7.556024],[-73.981732,-7.585066],[-73.946902,-7.611215],[-73.894631,-7.654778],[-73.822052,-7.738959],[-73.766887,-7.75348],[-73.72043,-7.782522],[-73.714616,-7.828979],[-73.732031,-7.875436],[-73.772701,-7.895745],[-73.775595,-7.936414],[-73.72043,-7.985765],[-73.68268,-8.020595],[-73.644931,-8.07284],[-73.610101,-8.145446],[-73.610101,-8.191903],[-73.572351,-8.249935],[-73.549123,-8.299338],[-73.549123,-8.345795],[-73.488144,-8.392201],[-73.4359,-8.427082],[-73.39815,-8.459018],[-73.3604,-8.479327],[-73.351693,-8.514157],[-73.356731,-8.56697],[-73.302419,-8.654045],[-73.203097,-8.719364],[-73.122534,-8.814087],[-73.070496,-8.882765],[-72.974042,-8.993146],[-72.970347,-9.120167],[-73.089848,-9.265739],[-73.209428,-9.411415],[-73.013781,-9.407384],[-72.814284,-9.410381],[-72.605485,-9.452084],[-72.46477,-9.492185],[-72.379039,-9.510169],[-72.318061,-9.556626],[-72.289019,-9.629179],[-72.265842,-9.688452],[-72.259977,-9.774338],[-72.172876,-9.84405],[-72.179103,-9.910144],[-72.181609,-10.00373],[-72.142955,-10.005177],[-71.887441,-10.005539],[-71.608001,-10.006004],[-71.339413,-9.988589],[-71.237946,-9.966006],[-71.115266,-9.852473],[-71.041731,-9.818729],[-70.970753,-9.765709],[-70.884531,-9.669022],[-70.816266,-9.625304],[-70.758518,-9.571715],[-70.672451,-9.51792],[-70.636923,-9.478233],[-70.607907,-9.463711],[-70.541115,-9.437511],[-70.570157,-9.489808],[-70.592249,-9.5435],[-70.599174,-9.620498],[-70.567238,-9.704627],[-70.593799,-9.767466],[-70.636923,-9.823741],[-70.637595,-9.971742],[-70.638525,-10.181549],[-70.639326,-10.361279],[-70.64036,-10.586072],[-70.641548,-10.840837],[-70.642323,-11.010284],[-70.596538,-10.976849],[-70.53326,-10.946877],[-70.450862,-11.024805],[-70.392287,-11.058549],[-70.342006,-11.066714],[-70.290381,-11.064234],[-70.220075,-11.047646],[-70.066286,-10.98243],[-69.960375,-10.929875],[-69.839788,-10.933441],[-69.674036,-10.95406],[-69.578616,-10.951786],[-69.453585,-11.168775],[-69.36204,-11.327577],[-69.257705,-11.5086],[-69.173705,-11.654327],[-69.046168,-11.875657],[-68.936019,-12.066808],[-68.818714,-12.270414],[-68.685234,-12.501976],[-68.728125,-12.560732],[-68.762877,-12.607706],[-68.759053,-12.687184],[-68.811789,-12.72961],[-68.867703,-12.755138],[-68.933745,-12.822059],[-68.978601,-12.88004],[-68.980513,-12.962568],[-68.972296,-13.382335],[-68.983432,-13.496385],[-69.017513,-13.594415],[-69.05286,-13.643921],[-69.074099,-13.682782],[-69.023068,-13.780296],[-68.97426,-13.975942],[-68.937466,-14.0147],[-68.891681,-14.094385],[-68.870881,-14.169781],[-68.880338,-14.198875],[-68.971779,-14.234428],[-69.004516,-14.26502],[-69.013146,-14.377262],[-69.052782,-14.417569],[-69.119703,-14.470279],[-69.162672,-14.530999],[-69.199259,-14.572599],[-69.234916,-14.597093],[-69.252331,-14.671094],[-69.276024,-14.745921],[-69.359482,-14.795324],[-69.373719,-14.887463],[-69.3747,-14.963014],[-69.330724,-15.038927],[-69.187089,-15.19871],[-69.172491,-15.236641],[-69.25432,-15.332914],[-69.301888,-15.399421],[-69.418522,-15.60344],[-69.420873,-15.640647],[-69.391909,-15.736869],[-69.217552,-16.149143],[-69.187968,-16.182836],[-69.134198,-16.222007],[-69.046245,-16.217666],[-68.913462,-16.261901],[-68.848841,-16.312802],[-68.842743,-16.337865],[-68.857833,-16.354815],[-68.928035,-16.389025],[-69.006222,-16.433674],[-69.032913,-16.475997],[-69.03839,-16.542711],[-69.020717,-16.642188],[-69.054539,-16.674331],[-69.132519,-16.713088],[-69.199827,-16.768434],[-69.267239,-16.860883],[-69.381573,-17.001339],[-69.42108,-17.040045],[-69.43834,-17.088414],[-69.503349,-17.104744],[-69.624866,-17.20019],[-69.645692,-17.248508],[-69.6259,-17.294396],[-69.56381,-17.332947],[-69.521927,-17.388964],[-69.510971,-17.460381],[-69.511075,-17.504926],[-69.51092,-17.506011],[-69.586419,-17.573191],[-69.684759,-17.649827],[-69.806121,-17.664916],[-69.852087,-17.703829],[-69.841494,-17.785167],[-69.802426,-17.900044],[-69.802581,-17.990271],[-69.839711,-18.093417],[-69.926346,-18.20602],[-70.059103,-18.283483],[-70.183773,-18.325238],[-70.282294,-18.325444],[-70.377482,-18.333609],[-70.41828,-18.345598],[-70.491609,-18.277695],[-70.817481,-18.05249],[-70.941711,-17.932083],[-71.056587,-17.875653],[-71.336958,-17.682486],[-71.364941,-17.620475],[-71.399409,-17.421934],[-71.435893,-17.36602],[-71.532217,-17.294293],[-71.774476,-17.198795],[-71.868347,-17.151046],[-71.966868,-17.064023],[-72.111278,-17.002528],[-72.268607,-16.876127],[-72.362477,-16.775048],[-72.467664,-16.708075],[-72.793949,-16.614541],[-72.957686,-16.520903],[-73.263765,-16.388612],[-73.400062,-16.304276],[-73.727691,-16.201646],[-73.824946,-16.152864],[-74.147045,-15.912465],[-74.372897,-15.83402],[-74.554875,-15.699041],[-75.104247,-15.411927],[-75.190547,-15.32015],[-75.274573,-15.178143],[-75.396555,-15.0936],[-75.533627,-14.899194],[-75.737723,-14.784989],[-75.933861,-14.633577],[-76.006311,-14.495807],[-76.136484,-14.320314],[-76.175138,-14.226677],[-76.289007,-14.133142],[-76.297017,-13.948399],[-76.376444,-13.863133],[-76.31947,-13.82143],[-76.259216,-13.802826],[-76.183923,-13.515195],[-76.223611,-13.371225],[-76.427319,-13.109949],[-76.502147,-12.984375],[-76.555218,-12.823455],[-76.637125,-12.72806],[-76.757997,-12.527142],[-76.832101,-12.348755],[-76.994106,-12.219254],[-77.038135,-12.172745],[-77.062681,-12.106806],[-77.152753,-12.0604],[-77.157636,-11.923458],[-77.220294,-11.663422],[-77.309927,-11.532371],[-77.633189,-11.287838],[-77.638589,-11.19358],[-77.664298,-11.022118],[-77.736076,-10.836703],[-78.09546,-10.260614],[-78.185584,-10.089048],[-78.275604,-9.810305],[-78.356504,-9.652072],[-78.445671,-9.370642],[-78.580133,-9.156598],[-78.664599,-8.97108],[-78.754593,-8.740396],[-78.762267,-8.616993],[-78.92541,-8.404603],[-79.012252,-8.210196],[-79.164387,-8.047209],[-79.312828,-7.923289],[-79.377268,-7.835542],[-79.588883,-7.418927],[-79.617719,-7.295627],[-79.761973,-7.066493],[-79.904678,-6.901646],[-79.994957,-6.768941],[-80.110273,-6.649568],[-80.811625,-6.282252],[-81.058432,-6.129393],[-81.142044,-6.056736],[-81.180517,-5.942428],[-81.164317,-5.875248],[-81.091841,-5.81241],[-80.99164,-5.860986],[-80.930688,-5.840832],[-80.882706,-5.758976],[-80.881957,-5.635056],[-80.943116,-5.475376],[-81.167702,-5.167074],[-81.150752,-5.101859],[-81.10848,-5.027806],[-81.195064,-4.879443],[-81.2894,-4.760691],[-81.336632,-4.669534],[-81.283224,-4.322268],[-81.232039,-4.234315],[-80.891956,-3.881675],[-80.798577,-3.73109],[-80.65272,-3.638176],[-80.503659,-3.496065],[-80.324652,-3.387855],[-80.298323,-3.406458],[-80.273518,-3.424649],[-80.271865,-3.461029],[-80.26525,-3.492448],[-80.245406,-3.522214],[-80.243753,-3.576784],[-80.220602,-3.613164],[-80.218948,-3.654505],[-80.217294,-3.710729],[-80.22887,-3.738841],[-80.217553,-3.787727],[-80.179261,-3.877747],[-80.194143,-3.905859],[-80.230524,-3.92405],[-80.266904,-3.948854],[-80.303284,-4.005078],[-80.357854,-4.003425],[-80.437229,-3.97862],[-80.490146,-4.010039],[-80.50999,-4.06957],[-80.493453,-4.11918],[-80.488492,-4.165482],[-80.453766,-4.205169],[-80.352893,-4.208477],[-80.443844,-4.335807],[-80.488492,-4.393685],[-80.478571,-4.430065],[-80.424181,-4.461381],[-80.383512,-4.463707],[-80.293362,-4.416836],[-80.232177,-4.349037],[-80.197451,-4.311003],[-80.139573,-4.29612],[-80.063505,-4.327539],[-79.962891,-4.390378],[-79.845095,-4.445878],[-79.797268,-4.476367],[-79.710969,-4.467582],[-79.638518,-4.45487],[-79.577669,-4.500604],[-79.516149,-4.539206],[-79.501912,-4.670567],[-79.455765,-4.76622],[-79.399437,-4.840014],[-79.33094,-4.927813],[-79.268102,-4.957578],[-79.18666,-4.95825],[-79.076279,-4.990651],[-79.033284,-4.969154],[-78.99525,-4.907969],[-78.975406,-4.873242],[-78.919183,-4.858359],[-78.914222,-4.818672],[-78.925797,-4.770716],[-78.907607,-4.714492],[-78.861512,-4.665038],[-78.743043,-4.592691],[-78.686018,-4.562357],[-78.674443,-4.517708],[-78.652946,-4.458177],[-78.661214,-4.425104],[-78.68514,-4.38397],[-78.679404,-4.325886],[-78.647985,-4.248164],[-78.603388,-4.157317],[-78.565121,-4.041562],[-78.550419,-3.986888],[-78.509078,-3.952162],[-78.493472,-3.902035],[-78.471044,-3.843021],[-78.419781,-3.776875],[-78.421435,-3.705768],[-78.399938,-3.674349],[-78.398052,-3.594819],[-78.347254,-3.431263],[-78.345367,-3.397363],[-78.323043,-3.388268],[-78.284183,-3.399017],[-78.250722,-3.436121],[-78.240361,-3.472604],[-78.226305,-3.489141],[-78.194886,-3.485833],[-78.158505,-3.465163],[-78.160986,-3.43209],[-78.187444,-3.399844],[-78.194653,-3.380465],[-78.18331,-3.350234],[-78.128223,-3.283882],[-78.067917,-3.206832],[-77.938467,-3.046997],[-77.860591,-2.981678],[-77.658975,-2.91238],[-77.506504,-2.85998],[-77.360079,-2.809699],[-77.16146,-2.737662],[-76.880754,-2.635911],[-76.679113,-2.562634],[-76.499356,-2.432306],[-76.36014,-2.33133],[-76.240948,-2.243945],[-76.089794,-2.133151],[-75.885466,-1.893424],[-75.744544,-1.728111],[-75.641656,-1.607292],[-75.57055,-1.531224],[-75.513861,-1.316353],[-75.449162,-1.0712],[-75.42043,-0.962163],[-75.408053,-0.924284],[-75.380122,-0.940252],[-75.348186,-0.966762],[-75.309196,-0.968054],[-75.272428,-0.966814],[-75.249587,-0.951828],[-75.28359,-0.707088],[-75.278681,-0.653862],[-75.259354,-0.590145],[-75.26323,-0.555366],[-75.325242,-0.506532],[-75.424693,-0.408864],[-75.465982,-0.321737],[-75.491071,-0.248357],[-75.560602,-0.200091],[-75.632045,-0.157613],[-75.626257,-0.122835],[-75.583753,-0.122835],[-75.475956,-0.157148],[-75.39839,-0.146037],[-75.34046,-0.142162],[-75.284469,-0.106505],[-75.224602,-0.041754],[-75.184062,-0.041754],[-75.13838,-0.050488],[-75.054664,-0.116685],[-75.005003,-0.155907],[-74.945317,-0.188154],[-74.888808,-0.199419],[-74.837519,-0.203346],[-74.801734,-0.200143],[-74.780495,-0.244533],[-74.75538,-0.298586],[-74.691663,-0.335276],[-74.61637,-0.370055],[-74.555108,-0.429844],[-74.513844,-0.470152],[-74.465191,-0.517643],[-74.417881,-0.580636],[-74.374912,-0.69143],[-74.35313,-0.766568],[-74.32861,-0.808426],[-74.334424,-0.850904],[-74.28391,-0.92785],[-74.246393,-0.970638],[-74.180764,-0.997717],[-74.054415,-1.028619],[-73.986822,-1.098124],[-73.926955,-1.125151],[-73.863186,-1.196723],[-73.807195,-1.217962],[-73.735752,-1.214137],[-73.664309,-1.248864],[-73.61023,-1.316457],[-73.575478,-1.401413],[-73.521398,-1.449679],[-73.494346,-1.536598],[-73.525248,-1.638918],[-73.496284,-1.693023],[-73.440292,-1.737413],[-73.349497,-1.78387],[-73.266453,-1.772295],[-73.223975,-1.787694],[-73.196948,-1.830224],[-73.181497,-1.880402],[-73.14522,-2.003288],[-73.126513,-2.08101],[-73.160206,-2.156302],[-73.17266,-2.208444],[-73.15447,-2.278259],[-73.06817,-2.312055],[-72.989674,-2.339754],[-72.941098,-2.394014],[-72.887148,-2.408483],[-72.811235,-2.405486],[-72.714187,-2.392205],[-72.660133,-2.361044],[-72.625355,-2.351639],[-72.586727,-2.365178],[-72.50066,-2.395047],[-72.395576,-2.428895],[-72.300749,-2.40931],[-72.218455,-2.400525],[-72.136806,-2.38063],[-72.053788,-2.324612],[-71.984283,-2.326576],[-71.932477,-2.288697],[-71.867262,-2.227719],[-71.802743,-2.166276],[-71.75254,-2.152737],[-71.67146,-2.18214],[-71.559451,-2.224205],[-71.49607,-2.279189],[-71.447468,-2.29371],[-71.396954,-2.334069],[-71.300113,-2.334844],[-71.196398,-2.313037],[-71.11338,-2.245444],[-71.027313,-2.225755],[-70.968557,-2.206842],[-70.914555,-2.218572],[-70.705369,-2.341976],[-70.648008,-2.405744],[-70.575893,-2.418302],[-70.516775,-2.453132],[-70.418229,-2.4907],[-70.364149,-2.529303],[-70.294644,-2.552505],[-70.244441,-2.606559],[-70.16473,-2.63989],[-70.095845,-2.658235],[-70.064736,-2.701695],[-70.064478,-2.730789],[-70.074038,-2.750168],[-70.147082,-2.864063],[-70.290148,-3.087253],[-70.419004,-3.288274],[-70.621704,-3.604586],[-70.735108,-3.781526],[-70.706195,-3.788967],[-70.529669,-3.866379],[-70.485847,-3.869376],[-70.421097,-3.849636],[-70.379187,-3.818733],[-70.339499,-3.814341],[-70.298443,-3.844261],[-70.240281,-3.882708],[-70.198397,-3.995156],[-70.16752,-4.050243],[-70.09476,-4.092153],[-70.017194,-4.161968],[-69.965931,-4.235969]]]},"type":"Feature","properties":{"ISO_A2":"PE","NAME":"Peru"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.250366,5.256579],[120.223184,5.196221],[120.191558,5.168289],[120.15001,5.184077],[120.118384,5.215393],[120.100608,5.168987],[120.013274,5.151107],[119.958084,5.079535],[119.877572,5.060208],[119.821451,5.06951],[119.827343,5.133175],[119.982682,5.228415],[120.07973,5.263607],[120.165203,5.33244],[120.207991,5.340088],[120.229385,5.284096],[120.250366,5.256579]]],[[[121.159354,6.07565],[121.213925,6.00351],[121.282551,6.022268],[121.391485,6.002115],[121.414636,5.964494],[121.411019,5.939844],[121.294436,5.869978],[121.218162,5.942738],[121.082977,5.893026],[121.018588,5.922946],[120.930634,5.896178],[120.876374,5.95266],[120.898285,6.00692],[121.037708,6.096011],[121.159354,6.07565]]],[[[122.092837,6.428342],[121.991448,6.41457],[121.959202,6.415836],[121.87993,6.517587],[121.872489,6.562752],[121.80872,6.613705],[121.832078,6.664038],[121.914967,6.676234],[122.058317,6.740726],[122.288071,6.638923],[122.323521,6.602233],[122.251794,6.579805],[122.200944,6.482912],[122.092837,6.428342]]],[[[125.784602,6.962728],[125.768995,6.90578],[125.7075,7.04001],[125.683006,7.073212],[125.714425,7.185557],[125.783361,7.130676],[125.784602,6.962728]]],[[[122.937127,7.409135],[122.948082,7.385751],[122.943638,7.36105],[122.839562,7.314593],[122.804732,7.315988],[122.796567,7.393347],[122.822199,7.428487],[122.871188,7.397327],[122.914803,7.433397],[122.937127,7.409135]]],[[[117.079913,7.883395],[117.02834,7.807534],[116.969533,7.894919],[116.975734,8.016643],[116.993614,8.050517],[117.077019,8.06912],[117.079913,7.883395]]],[[[117.355245,8.214641],[117.287033,8.191025],[117.272253,8.253502],[117.280831,8.314997],[117.329614,8.308485],[117.353695,8.289262],[117.355245,8.214641]]],[[[124.806677,9.142646],[124.777945,9.083115],[124.665807,9.132311],[124.639039,9.175099],[124.653301,9.225845],[124.708078,9.243028],[124.73681,9.243157],[124.790244,9.190085],[124.806677,9.142646]]],[[[123.697597,9.237318],[123.706279,9.133551],[123.614502,9.103321],[123.540708,9.129727],[123.493475,9.192101],[123.493579,9.21551],[123.535127,9.213598],[123.626077,9.268272],[123.654913,9.278762],[123.697597,9.237318]]],[[[125.970533,9.593575],[125.952447,9.567995],[125.922061,9.62148],[125.948519,9.739225],[125.967743,9.759095],[125.992961,9.684577],[125.970533,9.593575]]],[[[126.005984,9.320956],[126.087632,9.260753],[126.193362,9.276695],[126.192019,9.124921],[126.209072,9.080583],[126.30457,8.952064],[126.319556,8.844732],[126.263022,8.743963],[126.220234,8.696265],[126.141582,8.627277],[126.139515,8.595651],[126.173002,8.560046],[126.282349,8.539324],[126.365341,8.483875],[126.379811,8.326779],[126.458669,8.202859],[126.456602,8.148779],[126.425286,7.927423],[126.435311,7.832804],[126.494429,7.756995],[126.544452,7.7248],[126.570083,7.677232],[126.593338,7.546775],[126.589307,7.32516],[126.581556,7.247775],[126.546726,7.175841],[126.439032,7.012337],[126.294028,6.882319],[126.216927,6.891001],[126.192122,6.852554],[126.240284,6.733879],[126.221164,6.483377],[126.189331,6.309693],[126.142513,6.397543],[126.10975,6.489656],[126.080088,6.733336],[126.043087,6.843149],[125.985003,6.94353],[125.961645,7.033214],[125.901184,7.116982],[125.824393,7.333299],[125.773646,7.322189],[125.689207,7.26302],[125.67019,7.222298],[125.660268,7.160597],[125.640734,7.105096],[125.542136,7.016575],[125.464725,6.911155],[125.400956,6.795761],[125.380699,6.689928],[125.432892,6.607116],[125.486635,6.573708],[125.564563,6.499629],[125.588438,6.465781],[125.670707,6.224995],[125.667916,5.978653],[125.607868,5.870185],[125.455836,5.664254],[125.346489,5.598961],[125.287888,5.632266],[125.240966,5.75691],[125.233214,5.808276],[125.264943,5.925608],[125.268457,6.033172],[125.231561,6.069552],[125.191046,6.062524],[125.173993,6.04697],[125.076118,5.906255],[125.035293,5.87065],[124.975142,5.865715],[124.92729,5.875352],[124.636351,5.998187],[124.398846,6.119704],[124.212811,6.233263],[124.078143,6.404441],[124.04972,6.532573],[124.04817,6.666544],[123.987915,6.862992],[123.980887,6.929707],[123.985228,6.993708],[124.045173,7.114114],[124.117623,7.175118],[124.158241,7.218784],[124.190694,7.267334],[124.212915,7.332111],[124.20661,7.396448],[124.182426,7.436704],[124.068014,7.577884],[123.968485,7.664649],[123.764777,7.742628],[123.717441,7.785417],[123.665765,7.817792],[123.608921,7.831667],[123.553213,7.832132],[123.493062,7.807922],[123.477456,7.756374],[123.481693,7.710227],[123.476422,7.665372],[123.390949,7.407507],[123.282015,7.464093],[123.178249,7.529463],[123.150654,7.575197],[123.138768,7.629922],[123.121198,7.666871],[123.096704,7.700461],[123.048955,7.614368],[122.989527,7.54631],[122.91687,7.530497],[122.842972,7.529308],[122.818788,7.558505],[122.791813,7.722449],[122.713988,7.774099],[122.616216,7.763144],[122.497981,7.672736],[122.474416,7.638966],[122.448578,7.561141],[122.319697,7.340224],[122.251484,7.170002],[122.17614,7.004198],[122.142447,6.949654],[122.098108,6.913713],[122.027622,6.928621],[121.964266,6.968205],[121.904218,7.075176],[121.924579,7.199509],[121.991138,7.278781],[122.047155,7.363556],[122.114852,7.659895],[122.119916,7.765366],[122.131801,7.81048],[122.243319,7.945097],[122.33706,8.028425],[122.38667,8.045892],[122.589448,8.093331],[122.672957,8.133096],[122.804422,8.133716],[122.911082,8.156453],[122.996348,8.220532],[123.002756,8.286936],[122.998829,8.356079],[123.017639,8.398351],[123.050608,8.43393],[123.095877,8.480826],[123.14714,8.516018],[123.292867,8.541443],[123.341237,8.570433],[123.380201,8.61565],[123.434564,8.703293],[123.498953,8.681563],[123.563652,8.647483],[123.680131,8.620585],[123.78338,8.547721],[123.849216,8.432716],[123.860585,8.376052],[123.877431,8.188803],[123.853453,8.145136],[123.753098,8.058268],[123.7994,8.049121],[123.931175,8.128393],[123.996907,8.15896],[124.159378,8.201438],[124.197618,8.229524],[124.225834,8.271408],[124.283195,8.386],[124.325156,8.508447],[124.357919,8.559426],[124.404841,8.599837],[124.451246,8.606348],[124.621779,8.522633],[124.731126,8.562966],[124.761718,8.68978],[124.786833,8.87411],[124.80616,8.924029],[124.868999,8.972243],[124.943826,8.956689],[125.046352,8.890543],[125.141023,8.868761],[125.176163,8.922091],[125.20965,9.02715],[125.24789,9.026581],[125.375634,8.991777],[125.498728,9.014747],[125.533351,9.140941],[125.5102,9.275868],[125.413978,9.669178],[125.471339,9.756769],[125.520949,9.75912],[125.642491,9.654501],[125.876689,9.513115],[125.95472,9.42666],[126.005984,9.320956]]],[[[126.059417,9.766226],[126.046808,9.7608],[125.991204,9.838521],[125.998645,9.927043],[126.073783,10.059231],[126.12949,9.943579],[126.12887,9.891128],[126.120809,9.865186],[126.172588,9.799971],[126.136932,9.767776],[126.059417,9.766226]]],[[[125.280756,9.982182],[125.287681,9.932727],[125.159007,10.062952],[125.132962,10.155039],[125.175853,10.15106],[125.23094,10.115662],[125.280756,9.982182]]],[[[124.593873,9.787207],[124.584262,9.750465],[124.50561,9.753513],[124.477498,9.747881],[124.403394,9.654088],[124.359882,9.630214],[124.122481,9.599311],[123.935619,9.623961],[123.871644,9.67574],[123.829992,9.76111],[123.817177,9.817386],[123.863892,9.878829],[123.908851,9.919602],[124.059746,10.000217],[124.093852,10.06135],[124.172814,10.135196],[124.335801,10.159897],[124.351511,10.141345],[124.373215,10.129589],[124.405874,10.126411],[124.486386,10.065484],[124.57713,10.026727],[124.555116,9.879191],[124.582194,9.829581],[124.593873,9.787207]]],[[[125.690241,9.914434],[125.672567,9.886477],[125.648693,9.944096],[125.590505,9.998201],[125.534488,10.090082],[125.4948,10.118711],[125.521982,10.191523],[125.524566,10.309707],[125.58017,10.363683],[125.605905,10.379573],[125.647969,10.436831],[125.666779,10.440138],[125.684556,10.392027],[125.646626,10.245421],[125.703263,10.071789],[125.684349,9.963165],[125.692514,9.939006],[125.690241,9.914434]]],[[[119.916226,10.485975],[119.793133,10.455279],[119.764504,10.551604],[119.852044,10.640126],[119.950229,10.604779],[120.008417,10.570104],[119.981132,10.538737],[119.916226,10.485975]]],[[[124.316268,10.60602],[124.288466,10.601472],[124.334664,10.706685],[124.371148,10.691337],[124.38231,10.679814],[124.38138,10.632581],[124.316268,10.60602]]],[[[122.649496,10.472694],[122.621901,10.459026],[122.597199,10.461016],[122.538392,10.424945],[122.516687,10.492538],[122.537461,10.60757],[122.625828,10.695006],[122.648462,10.722524],[122.672544,10.738802],[122.701276,10.740637],[122.729181,10.706375],[122.737242,10.654595],[122.681225,10.498223],[122.649496,10.472694]]],[[[123.130914,9.064098],[123.064664,9.053375],[122.994694,9.058827],[122.947876,9.107972],[122.86664,9.319845],[122.772486,9.37134],[122.664585,9.41033],[122.610325,9.443197],[122.562473,9.482832],[122.410957,9.693879],[122.399485,9.823044],[122.42553,9.896089],[122.471522,9.961511],[122.523302,9.97921],[122.648256,9.981562],[122.712955,9.99014],[122.855581,10.08693],[122.865813,10.12499],[122.866537,10.284024],[122.852378,10.395283],[122.817031,10.503804],[122.855581,10.553413],[122.905914,10.602557],[122.958418,10.698365],[122.968753,10.765726],[122.969683,10.836186],[122.983326,10.886623],[123.024357,10.911789],[123.221761,10.988658],[123.256591,10.993929],[123.510632,10.923055],[123.562515,10.816058],[123.567579,10.780738],[123.527685,10.662011],[123.492855,10.5823],[123.406969,10.459],[123.34351,10.325417],[123.296071,10.124499],[123.266202,10.05905],[123.186621,9.933322],[123.162023,9.864282],[123.162746,9.714627],[123.149414,9.659307],[123.149827,9.606158],[123.30837,9.357],[123.32191,9.317468],[123.320463,9.272949],[123.293384,9.217267],[123.228685,9.121407],[123.192512,9.087869],[123.130914,9.064098]]],[[[123.370279,9.44963],[123.331728,9.422939],[123.316019,9.488982],[123.327077,9.578072],[123.403765,9.889267],[123.386195,9.967092],[123.514353,10.140312],[123.592901,10.302937],[123.711447,10.473676],[123.726433,10.562198],[123.831543,10.731025],[123.929831,10.963827],[123.92456,11.040928],[123.950088,11.079169],[123.964041,11.137434],[123.967142,11.186914],[124.038868,11.273524],[124.057885,11.217248],[124.036491,11.106687],[124.039902,11.053589],[124.052511,11.028759],[124.053338,10.925793],[124.0275,10.76787],[124.051271,10.585607],[124.004969,10.400089],[123.952155,10.31658],[123.873917,10.25772],[123.788651,10.220823],[123.700491,10.128323],[123.643337,10.020216],[123.633932,9.92172],[123.493579,9.589286],[123.370279,9.44963]]],[[[123.757025,11.283291],[123.815626,11.150741],[123.736665,11.151464],[123.707623,11.247996],[123.741419,11.279131],[123.757025,11.283291]]],[[[117.311114,8.439589],[117.218613,8.367293],[117.228535,8.456693],[117.25582,8.540978],[117.349871,8.713577],[117.417774,8.766649],[117.530015,8.902584],[117.593267,8.96829],[117.744886,9.098256],[117.884722,9.240677],[117.931541,9.25127],[117.983011,9.253441],[118.023835,9.26977],[118.114889,9.346665],[118.343919,9.602773],[118.533365,9.793666],[118.727565,10.035021],[118.820066,10.105327],[118.845077,10.131294],[119.023774,10.35358],[119.079895,10.385826],[119.143043,10.409287],[119.186038,10.439441],[119.223865,10.477294],[119.287014,10.574006],[119.312749,10.687126],[119.296729,10.750972],[119.261176,10.845152],[119.305721,10.973646],[119.340757,11.032919],[119.465297,11.293781],[119.501264,11.34644],[119.553354,11.313522],[119.560279,11.266806],[119.534544,11.156839],[119.53258,11.101622],[119.561932,11.045528],[119.526689,10.953182],[119.616089,10.707357],[119.684406,10.551708],[119.686886,10.500341],[119.595212,10.407427],[119.540538,10.379367],[119.422406,10.354381],[119.369283,10.327303],[119.28474,10.2517],[119.231927,10.152145],[119.218594,10.100676],[119.191516,10.061092],[118.948637,9.993447],[118.834638,9.949341],[118.782135,9.916139],[118.754953,9.862086],[118.773867,9.76682],[118.569642,9.422733],[118.504529,9.332661],[118.434973,9.256024],[118.349603,9.20148],[118.229301,9.167994],[118.134113,9.101383],[118.069414,8.983535],[117.989522,8.877107],[117.888546,8.798223],[117.779819,8.728615],[117.679877,8.677817],[117.572183,8.642005],[117.539627,8.595626],[117.516579,8.538342],[117.46914,8.511393],[117.412503,8.495864],[117.311114,8.439589]]],[[[119.861449,11.525343],[119.882946,11.472427],[119.854834,11.393052],[119.83065,11.375688],[119.79861,11.408761],[119.729984,11.431912],[119.72554,11.474649],[119.761403,11.473641],[119.826722,11.515421],[119.861449,11.525343]]],[[[124.57465,11.343055],[124.64431,11.308096],[124.724305,11.322074],[124.821146,11.401423],[124.929977,11.372846],[124.993952,11.255902],[125.026612,11.211745],[125.044388,11.135238],[125.039738,10.95189],[125.013176,10.785673],[125.033846,10.751489],[125.083869,10.721568],[125.127484,10.684697],[125.164174,10.637439],[125.187636,10.584884],[125.197144,10.457243],[125.260086,10.349601],[125.268457,10.307692],[125.253368,10.263818],[125.148465,10.272397],[125.13999,10.23537],[125.142574,10.189456],[125.105367,10.218291],[125.043975,10.323427],[124.987441,10.367585],[125.004908,10.197052],[125.023511,10.115274],[125.026612,10.033083],[124.929047,10.095922],[124.812775,10.134627],[124.780735,10.168062],[124.791691,10.274567],[124.78952,10.327535],[124.737637,10.439725],[124.798615,10.682216],[124.797168,10.731774],[124.78673,10.781409],[124.738671,10.879724],[124.662706,10.961967],[124.616094,10.962225],[124.502819,10.904451],[124.445562,10.923571],[124.411766,11.150353],[124.36598,11.370676],[124.330944,11.427106],[124.308206,11.486173],[124.330634,11.535214],[124.374145,11.514982],[124.43595,11.457234],[124.510881,11.423877],[124.548295,11.395015],[124.57465,11.343055]]],[[[124.608343,11.492167],[124.483492,11.485863],[124.428819,11.531751],[124.360399,11.665903],[124.437397,11.694997],[124.510881,11.687091],[124.564935,11.639703],[124.622295,11.54958],[124.608343,11.492167]]],[[[124.854426,11.594796],[124.835926,11.543327],[124.806677,11.557589],[124.781045,11.58074],[124.743632,11.658565],[124.730919,11.715306],[124.788383,11.683111],[124.821456,11.626629],[124.854426,11.594796]]],[[[122.496224,11.615079],[122.612702,11.564152],[122.726287,11.607922],[122.838115,11.595675],[122.931236,11.529271],[122.900747,11.487335],[122.894546,11.441317],[123.102698,11.541466],[123.158302,11.535524],[123.156442,11.442532],[123.144143,11.363596],[123.119545,11.286831],[123.075516,11.196888],[123.016502,11.116531],[122.938781,11.058137],[122.846693,11.02248],[122.802872,10.990053],[122.789436,10.941219],[122.791089,10.87975],[122.769902,10.82381],[122.673164,10.800917],[122.522062,10.691906],[122.197637,10.622918],[122.108547,10.575531],[122.051806,10.514087],[121.988348,10.458277],[121.954034,10.444402],[121.938221,10.470886],[121.933777,10.493675],[121.980079,10.638576],[121.972328,10.698882],[121.950314,10.75738],[121.96437,10.871688],[122.020697,10.979123],[122.050876,11.097385],[122.059661,11.325666],[122.103483,11.642907],[122.101312,11.680864],[122.066999,11.723729],[121.940805,11.758327],[121.891196,11.790857],[121.916001,11.854341],[121.963646,11.897336],[122.029172,11.895398],[122.086843,11.855065],[122.290758,11.772021],[122.399175,11.702206],[122.496224,11.615079]]],[[[120.038803,11.703317],[119.963872,11.669366],[119.944958,11.690708],[119.931729,11.740317],[119.932762,11.774475],[119.860932,11.953948],[119.916019,11.981336],[119.956534,11.960252],[119.997875,11.93214],[120.035909,11.917257],[120.070739,11.860568],[120.062367,11.821346],[120.073116,11.783519],[120.038803,11.703317]]],[[[120.099987,12.167681],[120.154661,12.152385],[120.193728,12.167035],[120.228248,12.219823],[120.260494,12.14174],[120.34142,12.077454],[120.314548,12.012394],[120.243441,12.004797],[120.173678,12.019628],[120.100091,11.993764],[120.010587,12.00826],[119.95705,12.069238],[119.896072,12.178766],[119.865893,12.198997],[119.869614,12.244007],[119.891835,12.272507],[119.880053,12.279871],[119.885737,12.29987],[119.896692,12.313409],[119.916433,12.319093],[119.963872,12.270414],[120.07756,12.197731],[120.099987,12.167681]]],[[[122.654457,12.309016],[122.603297,12.285607],[122.499324,12.383689],[122.438863,12.429474],[122.422946,12.455054],[122.471936,12.491951],[122.603607,12.491589],[122.67368,12.424255],[122.683292,12.382345],[122.654457,12.309016]]],[[[125.239519,12.527892],[125.310315,12.446269],[125.327575,12.387203],[125.320237,12.321832],[125.352277,12.29279],[125.408811,12.284884],[125.481261,12.251966],[125.535625,12.191401],[125.503379,12.135771],[125.513404,12.054613],[125.45656,11.952552],[125.464311,11.771582],[125.496867,11.713756],[125.499968,11.655413],[125.491803,11.594331],[125.505756,11.544257],[125.592985,11.378246],[125.609005,11.32303],[125.58234,11.279493],[125.573555,11.238229],[125.627402,11.233888],[125.703986,11.164797],[125.749152,11.073588],[125.735612,11.049584],[125.674428,11.12082],[125.628125,11.132008],[125.431858,11.112578],[125.311556,11.142266],[125.233421,11.145056],[125.155803,11.267039],[125.0879,11.287373],[125.03426,11.341272],[124.945273,11.47917],[124.916954,11.55839],[124.978966,11.638489],[124.99819,11.702361],[124.994986,11.764915],[124.935661,11.754632],[124.884295,11.775483],[124.821146,11.852119],[124.795825,11.896328],[124.749833,11.933355],[124.676762,12.02092],[124.571859,12.05513],[124.529071,12.079185],[124.445665,12.152799],[124.384894,12.243982],[124.325776,12.403817],[124.29477,12.569311],[124.565761,12.526212],[124.840163,12.534558],[125.150222,12.57254],[125.239519,12.527892]]],[[[123.716614,12.287364],[123.908334,12.169102],[124.040315,11.966815],[124.055715,11.811579],[124.045483,11.752461],[123.982748,11.818917],[123.847769,11.913588],[123.754028,11.934466],[123.725192,11.951571],[123.736045,12.002627],[123.674756,12.050014],[123.667625,12.069341],[123.612021,12.090218],[123.531096,12.19662],[123.473735,12.216671],[123.418855,12.194243],[123.292661,12.036372],[123.157785,11.925629],[123.155822,11.967952],[123.210495,12.1066],[123.245325,12.328008],[123.267236,12.395471],[123.239847,12.49469],[123.236437,12.58347],[123.336999,12.542387],[123.462986,12.501201],[123.559001,12.444848],[123.574814,12.406943],[123.716614,12.287364]]],[[[122.310809,12.528796],[122.279803,12.498281],[122.260992,12.503061],[122.247867,12.556908],[122.278046,12.592927],[122.287554,12.589258],[122.310809,12.528796]]],[[[122.094078,12.354905],[122.013979,12.105618],[121.960132,12.191401],[121.98194,12.245299],[121.935638,12.290361],[121.923235,12.331289],[121.941012,12.385394],[121.989484,12.435314],[122.001577,12.598508],[122.103793,12.650649],[122.145031,12.652613],[122.130251,12.612615],[122.131698,12.53753],[122.094078,12.354905]]],[[[123.775422,12.453917],[123.779143,12.366274],[123.741522,12.39852],[123.620599,12.570499],[123.587216,12.633286],[123.62153,12.674886],[123.708656,12.610807],[123.775422,12.453917]]],[[[123.281809,12.853428],[123.367178,12.700827],[123.274264,12.805058],[123.166364,12.875855],[123.054226,12.993471],[122.973404,13.034709],[122.949012,13.058686],[122.957487,13.107159],[123.017122,13.116176],[123.04358,13.11336],[123.206258,12.905414],[123.281809,12.853428]]],[[[120.704395,13.479488],[120.755348,13.471013],[120.915338,13.501063],[120.980761,13.485999],[121.024686,13.42869],[121.079256,13.410758],[121.122457,13.381251],[121.202762,13.432333],[121.284411,13.374145],[121.356862,13.265496],[121.442128,13.18842],[121.522743,13.131188],[121.538659,13.088891],[121.489773,13.019567],[121.474787,12.931588],[121.479748,12.837098],[121.540623,12.638195],[121.519229,12.584219],[121.458044,12.507945],[121.412259,12.423066],[121.41815,12.388753],[121.400063,12.360745],[121.394379,12.300593],[121.356862,12.313099],[121.322342,12.30359],[121.288855,12.276719],[121.236766,12.218789],[121.155427,12.236334],[121.11698,12.253413],[121.107678,12.30359],[121.08339,12.338989],[121.04856,12.359944],[120.962467,12.446527],[120.922159,12.51164],[120.921539,12.581093],[120.899422,12.645843],[120.854773,12.703669],[120.795966,12.748008],[120.776329,12.790563],[120.768784,12.840896],[120.763616,12.969803],[120.680314,13.13062],[120.651375,13.169119],[120.573137,13.208884],[120.508335,13.260069],[120.480636,13.311022],[120.455418,13.393498],[120.438055,13.405435],[120.387515,13.401663],[120.338422,13.41236],[120.352789,13.472976],[120.401261,13.517056],[120.468337,13.522431],[120.653339,13.497626],[120.704395,13.479488]]],[[[121.914864,13.540311],[121.976565,13.537417],[121.995686,13.54677],[122.114541,13.46321],[122.107307,13.420835],[122.122396,13.365128],[122.0547,13.268648],[122.042401,13.236195],[122.004884,13.204982],[121.8759,13.281722],[121.829184,13.328592],[121.815025,13.424452],[121.866185,13.566149],[121.914864,13.540311]]],[[[120.271346,13.750686],[120.272793,13.682938],[120.104225,13.782363],[120.099367,13.816935],[120.103398,13.84254],[120.120761,13.858069],[120.211402,13.820655],[120.271346,13.750686]]],[[[124.353578,13.632243],[124.327016,13.567389],[124.294563,13.590334],[124.248261,13.586665],[124.175398,13.531526],[124.057059,13.605578],[124.038868,13.663146],[124.123721,13.790476],[124.122894,13.979664],[124.153693,14.026147],[124.18625,14.059504],[124.224904,14.077591],[124.308309,13.946953],[124.336731,13.931088],[124.417243,13.87104],[124.396263,13.750117],[124.404014,13.679424],[124.353578,13.632243]]],[[[122.175416,14.048807],[122.172316,14.008034],[121.956308,14.156035],[121.946386,14.181486],[121.945973,14.205128],[121.959202,14.228744],[122.175416,14.048807]]],[[[122.033513,15.005028],[122.0516,14.969888],[122.031756,14.971619],[122.017286,14.965288],[121.970261,14.892993],[122.021627,14.759409],[121.989691,14.662154],[121.93295,14.656057],[121.910626,14.666495],[121.922202,14.714554],[121.934604,14.73662],[121.923029,14.799975],[121.889232,14.83987],[121.862257,14.917178],[121.820296,14.963583],[121.83983,15.038152],[121.971708,15.046369],[122.033513,15.005028]]],[[[121.10158,18.615272],[121.254542,18.563441],[121.593023,18.37645],[121.716736,18.330096],[121.845617,18.295421],[121.947523,18.285137],[122.038474,18.327926],[122.076921,18.371695],[122.146684,18.486572],[122.221202,18.500628],[122.26554,18.458848],[122.29975,18.402779],[122.315046,18.320329],[122.293859,18.234288],[122.222855,18.157109],[122.17955,18.064247],[122.151025,17.756488],[122.152369,17.6644],[122.17521,17.575698],[122.236808,17.434853],[122.269054,17.395243],[122.362278,17.344885],[122.387496,17.306773],[122.392871,17.238354],[122.407547,17.178151],[122.467905,17.155129],[122.519168,17.124872],[122.499944,17.058029],[122.468008,16.990049],[122.425737,16.822643],[122.225852,16.435225],[122.214174,16.351509],[122.135212,16.184801],[121.974705,16.157903],[121.78867,16.077417],[121.685214,16.014733],[121.595297,15.93324],[121.560984,15.826735],[121.590439,15.778029],[121.609146,15.726017],[121.607079,15.669845],[121.579174,15.623207],[121.489877,15.509519],[121.45205,15.416656],[121.411949,15.375031],[121.392312,15.324414],[121.398926,15.266588],[121.434996,15.216307],[121.54393,14.999162],[121.660512,14.789485],[121.685627,14.765404],[121.695446,14.737318],[121.626509,14.68174],[121.627956,14.581177],[121.648523,14.481494],[121.751876,14.23417],[121.766552,14.168076],[121.800452,14.113867],[121.853369,14.06307],[121.91166,14.020437],[122.079608,13.947108],[122.144307,13.93269],[122.211693,13.930158],[122.228436,13.979483],[122.287451,13.9962],[122.274428,14.044724],[122.202495,14.111671],[122.199704,14.148026],[122.237531,14.175052],[122.282593,14.19084],[122.383672,14.263884],[122.490849,14.322382],[122.627172,14.31755],[122.761014,14.284865],[122.855995,14.250784],[122.93413,14.188075],[123.014538,14.079813],[123.070969,13.959975],[123.070659,13.902718],[123.056913,13.84546],[123.05991,13.788797],[123.101975,13.750246],[123.231476,13.747378],[123.297002,13.836417],[123.305373,13.936566],[123.259278,13.975426],[123.280465,14.024803],[123.320256,14.061674],[123.37741,14.028653],[123.43229,13.966254],[123.632795,13.89848],[123.684058,13.897033],[123.725916,13.884321],[123.81573,13.837089],[123.857588,13.799623],[123.806221,13.721747],[123.607164,13.704435],[123.549596,13.645731],[123.608094,13.528063],[123.703592,13.431609],[123.76488,13.3535],[123.819244,13.269475],[123.816556,13.191598],[123.785137,13.11057],[123.87278,13.117003],[123.955153,13.099692],[124.069151,13.031918],[124.104601,13.025019],[124.142738,13.035794],[124.137364,12.791158],[124.059746,12.567063],[123.961767,12.594968],[123.877845,12.689691],[123.894898,12.804955],[123.948538,12.916421],[123.917946,12.93996],[123.863892,12.930658],[123.802294,12.905569],[123.736045,12.896913],[123.626697,12.91177],[123.402318,13.033107],[123.310954,13.044088],[123.290387,13.09902],[123.295451,13.215576],[123.205948,13.3535],[123.191582,13.402877],[123.163263,13.441738],[122.896199,13.591961],[122.863436,13.617257],[122.781374,13.737069],[122.595236,13.907627],[122.543042,13.925042],[122.486302,13.930003],[122.468008,13.886724],[122.493743,13.82019],[122.504182,13.763088],[122.500254,13.703195],[122.508006,13.656841],[122.596166,13.562015],[122.609395,13.517134],[122.667893,13.395358],[122.675127,13.253171],[122.599887,13.19413],[122.515241,13.259992],[122.51245,13.313632],[122.497981,13.363526],[122.406927,13.492768],[122.376541,13.520622],[122.205285,13.648237],[122.072787,13.788358],[121.777921,13.937651],[121.742885,13.945842],[121.691725,13.93455],[121.643459,13.915973],[121.501039,13.842179],[121.450809,13.790786],[121.446262,13.711877],[121.344149,13.649116],[121.203486,13.640279],[121.095482,13.679475],[121.006185,13.758101],[120.932288,13.761873],[120.840717,13.884734],[120.729096,13.900547],[120.637112,13.804481],[120.617372,13.995296],[120.616752,14.188023],[120.642693,14.244325],[120.688272,14.291221],[120.922056,14.493095],[120.951615,14.557975],[120.94128,14.64505],[120.888053,14.715769],[120.804441,14.758789],[120.707909,14.776618],[120.638249,14.816176],[120.583679,14.881263],[120.546782,14.766102],[120.582749,14.594613],[120.58864,14.483121],[120.55567,14.441341],[120.495726,14.440178],[120.438778,14.453382],[120.396093,14.493328],[120.365191,14.608282],[120.283852,14.684349],[120.250779,14.793309],[120.213882,14.808812],[120.138021,14.800389],[120.082107,14.851058],[120.04459,14.978104],[120.036632,15.114556],[120.005006,15.229252],[119.959428,15.340253],[119.932762,15.430919],[119.891628,15.83769],[119.881396,15.875],[119.859692,15.905748],[119.808222,15.951947],[119.768948,16.008455],[119.761817,16.054989],[119.772566,16.255106],[119.790239,16.303295],[119.830753,16.326549],[119.88615,16.287404],[119.930385,16.238777],[119.985162,16.215419],[120.033428,16.184594],[120.123965,16.066203],[120.159725,16.047651],[120.271346,16.051424],[120.336976,16.066461],[120.368808,16.10956],[120.388755,16.160926],[120.389272,16.221646],[120.324987,16.400343],[120.305246,16.52925],[120.304419,16.64547],[120.321163,16.761871],[120.408909,16.955606],[120.420071,17.090094],[120.4117,17.269928],[120.427203,17.376898],[120.424515,17.438342],[120.372012,17.535106],[120.35837,17.6382],[120.505131,18.162664],[120.550916,18.264053],[120.584506,18.36875],[120.599699,18.507863],[120.709356,18.545948],[120.813742,18.603413],[120.867796,18.598943],[120.92495,18.585119],[121.051351,18.613696],[121.10158,18.615272]]],[[[121.921685,18.894738],[121.858226,18.822882],[121.825153,18.842726],[121.860707,18.912541],[121.859777,18.936777],[121.888819,18.991554],[121.943389,19.010468],[121.987831,18.956621],[121.921685,18.894738]]],[[[121.252269,19.082401],[121.246687,19.01517],[121.196045,19.050672],[121.184882,19.101418],[121.189947,19.138935],[121.213201,19.183584],[121.244724,19.143018],[121.252269,19.082401]]],[[[121.520883,19.361971],[121.531218,19.27133],[121.4721,19.273346],[121.382907,19.328485],[121.374638,19.356287],[121.375982,19.379696],[121.391588,19.399385],[121.520883,19.361971]]],[[[121.960029,20.365889],[121.941322,20.353693],[121.914037,20.359404],[121.941219,20.453687],[121.991241,20.479577],[122.031136,20.469397],[121.960029,20.365889]]],[[[121.878173,20.781884],[121.829598,20.700313],[121.790634,20.701166],[121.796525,20.746615],[121.847891,20.84126],[121.867011,20.839219],[121.878173,20.781884]]]]},"type":"Feature","properties":{"ISO_A2":"PH","NAME":"Philippines"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[131.172387,3.026224],[131.149649,3.021883],[131.134921,3.025242],[131.13673,3.039427],[131.151613,3.054077],[131.172387,3.060589],[131.187941,3.055628],[131.186339,3.042114],[131.172387,3.026224]]],[[[134.595433,7.38203],[134.534662,7.360636],[134.50624,7.437117],[134.515748,7.525794],[134.555953,7.593955],[134.599671,7.615763],[134.608663,7.623566],[134.651141,7.712088],[134.659616,7.663305],[134.632744,7.5013],[134.598224,7.438306],[134.595433,7.38203]]]]},"type":"Feature","properties":{"ISO_A2":"PW","NAME":"Palau"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[153.536189,-11.476147],[153.703208,-11.528547],[153.759845,-11.586321],[153.699487,-11.612573],[153.553656,-11.630556],[153.51924,-11.595209],[153.37899,-11.559553],[153.357079,-11.49506],[153.286799,-11.516971],[153.322352,-11.471496],[153.234502,-11.420336],[153.207011,-11.351813],[153.2036,-11.324115],[153.306746,-11.356361],[153.536189,-11.476147]]],[[[154.280743,-11.361425],[154.266067,-11.415892],[154.229584,-11.397495],[154.121167,-11.425711],[154.064012,-11.419303],[154.031146,-11.37052],[154.023395,-11.347989],[154.117653,-11.365559],[154.101736,-11.311402],[154.237852,-11.338894],[154.280743,-11.361425]]],[[[150.898728,-10.565298],[150.884672,-10.643433],[150.802403,-10.62023],[150.785763,-10.603435],[150.799302,-10.554136],[150.872063,-10.55181],[150.898728,-10.565298]]],[[[151.080939,-10.020112],[151.123417,-10.020215],[151.194317,-9.945491],[151.255708,-9.92265],[151.296429,-9.956756],[151.230904,-10.194778],[151.175507,-10.158914],[150.959189,-10.092562],[150.952471,-9.998407],[150.89604,-9.968022],[150.861314,-9.876141],[150.78969,-9.774338],[150.776048,-9.709123],[150.816665,-9.735891],[150.862347,-9.80245],[151.051483,-9.93898],[151.044145,-9.983111],[151.080939,-10.020112]]],[[[150.528414,-9.346561],[150.669078,-9.42852],[150.746489,-9.404542],[150.788657,-9.417978],[150.879091,-9.512649],[150.884052,-9.581895],[150.898624,-9.641427],[150.894077,-9.667472],[150.844054,-9.702818],[150.848291,-9.662614],[150.809948,-9.654759],[150.678276,-9.656516],[150.576267,-9.631195],[150.436224,-9.62458],[150.495341,-9.561742],[150.508467,-9.53611],[150.434673,-9.434928],[150.431469,-9.38661],[150.43736,-9.359997],[150.498959,-9.345631],[150.528414,-9.346561]]],[[[150.345376,-9.493839],[150.33132,-9.51854],[150.272823,-9.50035],[150.109732,-9.361961],[150.13495,-9.259538],[150.208331,-9.206311],[150.320158,-9.264189],[150.357055,-9.349041],[150.368114,-9.39648],[150.345376,-9.493839]]],[[[152.630922,-8.959401],[152.689213,-8.974594],[152.810032,-8.967153],[152.849823,-9.024513],[152.905117,-9.044254],[152.952969,-9.070144],[152.995344,-9.107816],[152.995034,-9.13076],[152.984905,-9.150759],[152.959274,-9.168691],[152.966922,-9.208998],[152.92279,-9.203004],[152.867496,-9.224295],[152.759493,-9.177166],[152.720115,-9.16652],[152.70823,-9.126109],[152.638053,-9.058413],[152.515166,-9.009837],[152.577075,-8.970046],[152.630922,-8.959401]]],[[[143.590337,-8.633426],[143.608217,-8.677144],[143.462799,-8.617096],[143.3241,-8.516844],[143.25382,-8.489559],[143.206794,-8.423413],[143.293094,-8.472712],[143.443369,-8.518911],[143.590337,-8.633426]]],[[[151.10688,-8.733472],[151.12414,-8.804889],[151.046212,-8.728304],[151.080732,-8.641746],[151.08683,-8.595031],[151.082799,-8.568676],[151.004974,-8.523872],[151.046316,-8.450595],[151.090137,-8.425945],[151.117629,-8.418866],[151.116389,-8.521908],[151.13861,-8.568107],[151.10688,-8.733472]]],[[[143.586823,-8.481704],[143.543104,-8.484805],[143.366888,-8.416902],[143.321929,-8.367603],[143.528221,-8.378506],[143.581448,-8.39096],[143.59261,-8.46],[143.586823,-8.481704]]],[[[148.025725,-5.826362],[147.985417,-5.834011],[147.96795,-5.788535],[147.874519,-5.749261],[147.781088,-5.627201],[147.782535,-5.522505],[147.794628,-5.492429],[147.846511,-5.490776],[148.054767,-5.611492],[148.076058,-5.650146],[148.060451,-5.764661],[148.025725,-5.826362]]],[[[155.957644,-6.686827],[155.933252,-6.780516],[155.914959,-6.796639],[155.891911,-6.761499],[155.804991,-6.795606],[155.763444,-6.834363],[155.719312,-6.862837],[155.617406,-6.855964],[155.520874,-6.83028],[155.42734,-6.782686],[155.344038,-6.721708],[155.260529,-6.626055],[155.208645,-6.526836],[155.234484,-6.41165],[155.202134,-6.307573],[155.044624,-6.233676],[155.010208,-6.20975],[154.940238,-6.10619],[154.870372,-6.061387],[154.781901,-5.970695],[154.759267,-5.931317],[154.72113,-5.816492],[154.709038,-5.747091],[154.741077,-5.545294],[154.729295,-5.444422],[154.7726,-5.454137],[154.818488,-5.494031],[154.870475,-5.521368],[154.997082,-5.539972],[155.09382,-5.620173],[155.186735,-5.776908],[155.197897,-5.828274],[155.227559,-5.865223],[155.323057,-5.931782],[155.372563,-5.974364],[155.467028,-6.145103],[155.519324,-6.181586],[155.581026,-6.196211],[155.63849,-6.220809],[155.734195,-6.295739],[155.822561,-6.380437],[155.882196,-6.469631],[155.927671,-6.565025],[155.957644,-6.686827]]],[[[147.176268,-5.431968],[147.12025,-5.437446],[147.02899,-5.342413],[147.005839,-5.307014],[147.014727,-5.257405],[147.130999,-5.190846],[147.206343,-5.251514],[147.221846,-5.381532],[147.176268,-5.431968]]],[[[154.647233,-5.432691],[154.627389,-5.44065],[154.583877,-5.314456],[154.576126,-5.220921],[154.562793,-5.151985],[154.540056,-5.110851],[154.605581,-5.034938],[154.632557,-5.013906],[154.682063,-5.054006],[154.689194,-5.142683],[154.727124,-5.218027],[154.698392,-5.382772],[154.647233,-5.432691]]],[[[146.019336,-4.726171],[145.952363,-4.75573],[145.903994,-4.732992],[145.883633,-4.667467],[145.90017,-4.604215],[145.958771,-4.554295],[145.995771,-4.539309],[146.037422,-4.573106],[146.053442,-4.640182],[146.019336,-4.726171]]],[[[151.915616,-4.296792],[151.967603,-4.316945],[152.117155,-4.212249],[152.197253,-4.285164],[152.299469,-4.320666],[152.405612,-4.340768],[152.363548,-4.490837],[152.376054,-4.56029],[152.403545,-4.62933],[152.400031,-4.731235],[152.351145,-4.822186],[152.257611,-4.954736],[152.215753,-4.979179],[152.166557,-4.993183],[152.013285,-5.003777],[151.983726,-5.074419],[151.993958,-5.149039],[152.076847,-5.24707],[152.142993,-5.357037],[152.077054,-5.458271],[151.96843,-5.52881],[151.865387,-5.564828],[151.694958,-5.543537],[151.515124,-5.552374],[151.481431,-5.590925],[151.480501,-5.65459],[151.455179,-5.703114],[151.422417,-5.747401],[151.331259,-5.839075],[151.22925,-5.919948],[151.090034,-5.996688],[151.043215,-6.015085],[150.919915,-6.02728],[150.809017,-6.071412],[150.759615,-6.114459],[150.705768,-6.149392],[150.588049,-6.187787],[150.473534,-6.26339],[150.428369,-6.276206],[150.190761,-6.289332],[149.850936,-6.293001],[149.750271,-6.300855],[149.652499,-6.290417],[149.598445,-6.260961],[149.483,-6.124845],[149.382334,-6.078078],[149.272677,-6.079525],[149.126536,-6.127636],[149.099044,-6.117042],[148.807486,-5.916383],[148.719119,-5.867342],[148.624758,-5.830807],[148.509726,-5.80533],[148.401206,-5.765022],[148.33723,-5.669421],[148.344775,-5.544881],[148.432005,-5.47181],[148.564917,-5.507932],[148.615766,-5.507415],[148.665789,-5.486642],[148.724287,-5.493256],[148.783508,-5.511601],[148.999205,-5.484574],[149.124056,-5.522608],[149.245289,-5.573045],[149.358873,-5.583948],[149.475352,-5.573251],[149.631725,-5.516045],[149.681024,-5.523539],[149.831403,-5.524159],[149.962764,-5.447781],[150.011857,-5.139531],[150.045343,-5.034628],[150.090095,-5.011787],[150.122238,-5.018195],[150.170297,-5.070646],[150.108698,-5.136069],[150.081517,-5.186453],[150.072422,-5.309546],[150.106218,-5.428971],[150.183112,-5.523642],[150.298764,-5.535682],[150.404391,-5.473154],[150.519423,-5.460235],[150.625773,-5.520851],[150.7345,-5.510464],[150.784419,-5.470932],[150.842607,-5.453724],[150.900278,-5.447212],[150.952885,-5.4237],[151.022234,-5.320657],[151.068846,-5.204488],[151.137783,-5.112918],[151.326609,-4.960317],[151.380972,-4.9413],[151.439883,-4.930913],[151.572588,-4.937528],[151.671187,-4.883268],[151.678938,-4.761001],[151.664676,-4.637029],[151.551918,-4.345523],[151.54427,-4.29922],[151.560496,-4.247389],[151.593052,-4.200829],[151.703743,-4.200002],[151.819395,-4.216952],[151.864767,-4.260825],[151.915616,-4.296792]]],[[[153.659283,-4.099336],[153.650084,-4.123004],[153.591483,-4.096029],[153.639749,-4.044714],[153.663003,-4.041252],[153.659283,-4.099336]]],[[[152.670609,-3.1334],[152.646218,-3.221147],[152.585033,-3.16978],[152.543278,-3.095573],[152.569943,-3.0625],[152.638776,-3.04276],[152.670609,-3.1334]]],[[[152.099275,-2.947365],[152.088526,-2.997801],[152.057313,-2.994907],[151.971117,-2.896102],[151.954581,-2.87047],[151.974734,-2.845562],[152.074573,-2.918426],[152.099275,-2.947365]]],[[[151.957268,-2.830215],[151.933393,-2.83037],[151.929776,-2.750581],[151.946416,-2.70862],[152.001916,-2.737765],[152.011321,-2.809182],[151.957268,-2.830215]]],[[[144.121984,-3.815271],[144.247971,-3.818216],[144.374371,-3.802765],[144.426565,-3.809638],[144.477724,-3.825296],[144.524543,-3.85532],[144.548211,-3.913094],[144.626656,-3.993089],[144.737863,-4.029056],[144.84349,-4.101506],[144.938471,-4.188219],[145.008441,-4.275449],[145.087816,-4.34914],[145.208016,-4.380249],[145.334623,-4.385262],[145.767051,-4.823013],[145.788032,-4.890606],[145.792889,-5.177927],[145.745244,-5.402409],[145.852834,-5.471294],[145.999388,-5.49708],[146.205371,-5.545088],[146.403395,-5.616556],[147.034261,-5.919225],[147.12087,-5.945063],[147.248201,-5.95483],[147.376669,-5.950748],[147.422764,-5.966199],[147.518572,-6.021079],[147.566735,-6.056943],[147.653034,-6.154818],[147.730032,-6.261116],[147.762898,-6.291502],[147.802069,-6.315221],[147.824497,-6.372996],[147.854469,-6.551124],[147.845477,-6.662384],[147.810441,-6.70357],[147.709568,-6.72362],[147.355791,-6.742431],[147.119113,-6.721708],[146.953645,-6.834105],[146.949201,-6.883094],[146.960777,-6.928827],[147.104851,-7.166952],[147.190013,-7.378154],[147.26019,-7.46404],[147.3653,-7.533803],[147.458938,-7.616227],[147.545134,-7.71095],[147.724348,-7.876263],[147.821913,-7.937551],[147.936118,-7.97543],[148.1267,-8.103639],[148.151919,-8.160277],[148.206386,-8.338664],[148.22995,-8.45969],[148.233567,-8.509609],[148.2469,-8.554258],[148.414435,-8.663967],[148.451125,-8.694559],[148.525849,-8.938576],[148.583107,-9.051799],[148.679432,-9.092003],[148.791776,-9.089419],[149.097494,-9.016865],[149.141729,-9.01454],[149.198366,-9.031283],[149.247666,-9.070971],[149.264099,-9.180731],[149.216246,-9.295918],[149.203017,-9.406867],[149.263169,-9.49787],[149.418715,-9.568821],[149.475765,-9.588252],[149.755748,-9.610938],[149.865612,-9.630058],[149.973513,-9.660702],[150.01103,-9.688194],[149.984675,-9.736976],[149.928244,-9.760851],[149.864372,-9.770566],[149.761226,-9.805809],[149.763086,-9.868648],[149.821274,-9.934174],[149.874397,-10.01298],[149.919149,-10.041557],[149.967518,-10.060781],[150.088545,-10.088066],[150.206263,-10.125635],[150.283881,-10.162894],[150.364083,-10.189662],[150.538853,-10.206715],[150.667011,-10.2571],[150.849532,-10.236016],[150.691298,-10.317871],[150.636831,-10.337973],[150.446042,-10.307329],[150.410282,-10.339214],[150.48883,-10.425772],[150.605412,-10.484063],[150.647167,-10.518014],[150.617918,-10.557598],[150.482422,-10.636921],[150.425785,-10.648549],[150.319952,-10.654905],[150.142391,-10.620747],[150.016818,-10.577184],[149.981574,-10.517704],[149.948088,-10.482616],[149.83471,-10.398796],[149.754095,-10.353063],[149.651362,-10.337508],[149.544392,-10.338438],[149.352672,-10.289708],[148.93678,-10.255188],[148.837665,-10.233949],[148.712918,-10.166873],[148.654213,-10.157364],[148.591272,-10.178396],[148.430558,-10.191419],[148.383429,-10.185476],[148.268707,-10.128219],[148.150472,-10.10729],[148.101276,-10.12455],[148.051356,-10.128322],[147.890126,-10.087394],[147.768686,-10.070134],[147.668847,-10.013084],[147.61438,-9.959805],[147.553092,-9.912418],[147.496455,-9.790462],[147.408295,-9.674706],[147.298947,-9.579622],[147.06444,-9.426039],[147.017207,-9.38785],[146.92543,-9.247187],[146.930391,-9.153911],[146.963774,-9.05955],[146.913338,-9.091744],[146.856287,-9.087662],[146.696607,-9.02534],[146.630874,-8.951185],[146.524111,-8.74975],[146.455898,-8.643503],[146.296528,-8.455608],[146.250639,-8.343935],[146.18408,-8.24637],[146.142946,-8.2103],[146.108736,-8.168493],[146.078557,-8.114181],[146.033185,-8.076354],[145.810976,-7.992793],[145.771805,-7.966438],[145.728707,-7.952434],[145.563343,-7.943856],[145.467741,-7.93011],[145.287494,-7.861587],[145.194373,-7.841123],[145.082338,-7.828152],[144.973818,-7.802159],[144.920901,-7.776631],[144.885348,-7.733584],[144.864264,-7.631524],[144.773417,-7.642479],[144.684327,-7.624806],[144.597924,-7.588942],[144.509867,-7.567341],[144.449716,-7.598141],[144.431215,-7.679376],[144.403414,-7.683562],[144.35184,-7.666974],[144.326209,-7.67674],[144.270192,-7.714309],[144.22544,-7.7649],[144.142861,-7.757252],[143.973672,-7.705989],[143.898225,-7.673847],[143.834146,-7.615917],[143.779059,-7.550081],[143.723352,-7.49825],[143.654932,-7.460371],[143.742059,-7.549823],[143.942253,-7.944269],[143.892127,-7.951814],[143.840657,-7.941892],[143.887993,-8.01765],[143.833422,-8.029122],[143.779266,-8.028244],[143.665061,-7.995481],[143.551579,-7.984629],[143.518196,-8.000648],[143.542174,-8.02907],[143.582068,-8.112734],[143.613798,-8.200378],[143.449983,-8.239807],[143.282035,-8.263836],[143.094863,-8.311275],[142.905417,-8.314479],[142.808265,-8.287452],[142.708633,-8.272311],[142.614996,-8.287504],[142.524148,-8.321714],[142.447564,-8.316236],[142.399195,-8.254638],[142.376457,-8.208026],[142.347518,-8.167511],[142.275895,-8.173971],[142.206855,-8.19583],[142.325091,-8.198362],[142.360541,-8.249987],[142.39103,-8.312671],[142.474849,-8.369463],[142.575928,-8.335667],[142.79793,-8.34502],[143.013731,-8.443877],[143.064787,-8.455143],[143.111813,-8.474521],[143.222917,-8.57219],[143.306736,-8.660918],[143.377223,-8.762204],[143.392209,-8.801891],[143.387455,-8.908241],[143.366164,-8.961003],[143.226845,-9.035934],[143.078223,-9.092468],[142.859218,-9.202642],[142.647138,-9.327802],[142.535724,-9.303359],[142.435265,-9.237007],[142.396301,-9.219024],[142.292741,-9.182902],[142.229593,-9.169931],[141.978859,-9.198146],[141.727401,-9.212564],[141.621568,-9.211375],[141.518732,-9.190136],[141.405664,-9.150707],[141.293629,-9.168174],[141.217045,-9.214424],[141.133226,-9.221246],[140.976129,-9.11872],[140.976026,-9.105594],[140.975922,-8.902247],[140.975871,-8.698952],[140.975819,-8.495657],[140.975716,-8.292362],[140.975612,-8.089067],[140.975561,-7.885772],[140.975509,-7.682476],[140.975406,-7.479181],[140.975302,-7.275886],[140.975199,-7.072591],[140.975199,-6.905366],[140.919543,-6.840047],[140.862338,-6.740053],[140.874637,-6.611482],[140.944038,-6.452267],[140.974992,-6.346124],[140.974941,-6.259411],[140.974889,-6.056116],[140.974786,-5.852821],[140.974682,-5.649526],[140.974631,-5.446231],[140.974579,-5.242935],[140.974476,-5.03964],[140.974372,-4.836345],[140.974321,-4.63305],[140.974269,-4.429755],[140.974165,-4.22646],[140.974062,-4.023165],[140.97401,-3.81987],[140.973959,-3.616575],[140.973855,-3.41328],[140.973752,-3.209985],[140.973649,-3.00669],[140.973545,-2.803394],[140.973494,-2.681025],[140.973494,-2.613535],[140.973494,-2.609763],[141.003311,-2.610125],[141.104804,-2.611313],[141.185625,-2.62785],[141.686783,-2.845046],[141.836542,-2.932172],[141.887495,-2.952533],[141.937828,-2.953359],[141.985783,-2.96354],[142.211506,-3.083532],[142.549056,-3.204559],[142.90521,-3.320727],[143.015591,-3.344912],[143.130003,-3.355092],[143.37836,-3.395296],[143.508998,-3.43116],[143.700614,-3.573373],[143.797146,-3.617298],[143.887683,-3.697448],[144.01584,-3.783593],[144.06638,-3.805142],[144.121984,-3.815271]]],[[[152.965785,-4.75635],[152.891681,-4.832418],[152.845586,-4.761518],[152.786468,-4.699403],[152.739959,-4.635841],[152.680634,-4.498433],[152.677741,-4.429238],[152.693347,-4.355961],[152.696757,-4.282064],[152.668129,-4.131789],[152.598469,-3.994795],[152.355796,-3.6682],[152.279419,-3.582468],[152.192189,-3.505832],[152.136275,-3.487125],[152.023207,-3.46878],[151.972977,-3.453381],[151.879753,-3.400102],[151.793143,-3.337935],[151.578479,-3.153554],[151.464998,-3.101412],[151.405053,-3.036869],[151.066779,-2.828974],[150.968077,-2.779882],[150.847878,-2.779778],[150.746075,-2.738902],[150.826484,-2.712909],[150.84302,-2.643508],[150.82545,-2.572918],[150.995259,-2.688259],[151.174576,-2.789028],[151.22646,-2.870264],[151.314723,-2.875276],[151.475333,-2.942456],[151.585714,-3.003021],[151.68979,-3.072887],[151.807096,-3.172881],[152.032922,-3.251377],[152.065065,-3.279903],[152.179373,-3.410386],[152.329441,-3.520973],[152.380498,-3.581952],[153.016738,-4.105641],[153.124225,-4.252298],[153.132493,-4.352447],[153.111512,-4.391721],[153.044333,-4.476367],[153.045573,-4.576361],[153.023249,-4.666278],[152.965785,-4.75635]]],[[[150.436637,-2.661801],[150.237476,-2.675444],[150.165749,-2.660251],[150.101567,-2.60258],[150.043483,-2.512456],[149.985192,-2.491476],[149.961627,-2.473802],[150.102497,-2.404969],[150.227141,-2.384195],[150.429506,-2.470392],[150.44997,-2.513283],[150.451623,-2.541085],[150.446145,-2.632294],[150.436637,-2.661801]]],[[[147.876897,-2.283116],[147.844547,-2.335723],[147.768893,-2.331227],[147.73551,-2.315569],[147.790287,-2.305544],[147.812198,-2.262084],[147.835866,-2.246736],[147.876897,-2.283116]]],[[[147.06754,-1.960138],[147.400647,-2.025096],[147.422557,-2.024321],[147.418733,-2.001066],[147.424418,-1.994555],[147.444158,-2.011505],[147.43806,-2.058944],[147.385454,-2.070623],[147.336464,-2.065972],[147.301428,-2.090466],[147.206343,-2.181934],[147.142161,-2.166637],[147.063923,-2.187101],[146.92636,-2.189065],[146.74787,-2.148861],[146.699087,-2.182761],[146.635422,-2.173355],[146.57248,-2.210459],[146.546435,-2.208599],[146.531346,-2.154132],[146.532379,-2.126123],[146.607,-2.102559],[146.595941,-2.016879],[146.656196,-1.973988],[146.760066,-1.977708],[146.857114,-1.948563],[147.06754,-1.960138]]],[[[149.765463,-1.553032],[149.76319,-1.589205],[149.690946,-1.57086],[149.671102,-1.576286],[149.545839,-1.471693],[149.547906,-1.407717],[149.580979,-1.35325],[149.633068,-1.362035],[149.725259,-1.430662],[149.765463,-1.553032]]]]},"type":"Feature","properties":{"ISO_A2":"PG","NAME":"Papua New Guinea"}},{"geometry":{"type":"Polygon","coordinates":[[[19.604364,54.459157],[19.644207,54.44709],[19.924345,54.43399],[20.208204,54.420761],[20.664713,54.406628],[21.14055,54.391822],[21.634163,54.376475],[22.168497,54.359886],[22.731822,54.35012],[22.766239,54.356786],[22.823755,54.395776],[22.893931,54.390531],[22.976717,54.366346],[23.015526,54.348363],[23.031959,54.327873],[23.042191,54.304179],[23.087511,54.299451],[23.170297,54.281442],[23.282331,54.240307],[23.370078,54.200465],[23.453639,54.143465],[23.481389,54.079025],[23.482991,54.005954],[23.477668,53.958955],[23.484644,53.939809],[23.598901,53.599209],[23.789225,53.270961],[23.859144,53.112107],[23.8871,53.027565],[23.909373,52.904885],[23.916298,52.81874],[23.915471,52.770242],[23.90126,52.703605],[23.844726,52.664228],[23.47958,52.551573],[23.410902,52.516226],[23.303312,52.428376],[23.204093,52.337891],[23.181252,52.306988],[23.175103,52.286602],[23.196962,52.256914],[23.327135,52.208441],[23.458444,52.169529],[23.501129,52.140384],[23.597971,52.103073],[23.633266,52.069587],[23.652438,52.04039],[23.651094,51.972978],[23.607428,51.879779],[23.625721,51.809344],[23.581331,51.762396],[23.544847,51.710229],[23.539628,51.618917],[23.605257,51.517915],[23.658846,51.448953],[23.679723,51.394899],[23.657657,51.352499],[23.664427,51.310047],[23.712176,51.265114],[23.863433,51.126234],[23.938105,50.992547],[23.985699,50.940431],[24.095822,50.872761],[24.105743,50.844985],[24.061612,50.819534],[24.025955,50.816149],[23.99712,50.809354],[23.978413,50.785583],[24.0073,50.760132],[24.046316,50.722796],[24.094736,50.61704],[24.08993,50.530456],[24.05262,50.508442],[24.004974,50.457024],[23.972625,50.41005],[23.711762,50.377339],[23.648975,50.327032],[23.506193,50.229854],[23.408628,50.173914],[23.264503,50.072861],[23.0363,49.899073],[22.952222,49.826365],[22.890727,49.766265],[22.706139,49.606223],[22.64945,49.539018],[22.660612,49.483672],[22.719885,49.35381],[22.732442,49.295183],[22.721952,49.240948],[22.702315,49.192708],[22.705622,49.171211],[22.760192,49.136226],[22.847061,49.081268],[22.852073,49.062742],[22.839774,49.038893],[22.809802,49.020729],[22.701281,49.039953],[22.579945,49.077186],[22.538656,49.072716],[22.473078,49.081294],[22.202552,49.153227],[22.020083,49.209503],[22.002203,49.24609],[21.967683,49.299084],[21.890116,49.343448],[21.712143,49.381921],[21.639641,49.411946],[21.350459,49.428766],[21.224989,49.429438],[21.136157,49.417061],[21.079417,49.418276],[21.001127,49.339831],[20.94728,49.317093],[20.868473,49.31469],[20.799485,49.328669],[20.728999,49.369907],[20.616137,49.391714],[20.534592,49.381198],[20.474544,49.390164],[20.422661,49.392334],[20.404677,49.384066],[20.363026,49.385255],[20.302565,49.365514],[20.236522,49.337661],[20.16371,49.316396],[20.107641,49.27074],[20.057618,49.181288],[19.916128,49.221389],[19.868999,49.204],[19.802234,49.192347],[19.756655,49.204387],[19.767352,49.235212],[19.787971,49.269965],[19.787041,49.31854],[19.773915,49.37218],[19.730042,49.389595],[19.664154,49.396055],[19.630254,49.406623],[19.626689,49.424374],[19.593047,49.447111],[19.534756,49.504782],[19.479721,49.57638],[19.441635,49.597696],[19.386238,49.563642],[19.302367,49.524833],[19.250174,49.511448],[19.149457,49.399982],[18.968331,49.396236],[18.95722,49.4483],[18.938152,49.498271],[18.832215,49.510777],[18.82927,49.540129],[18.806894,49.613716],[18.594659,49.75779],[18.56882,49.817941],[18.577192,49.841118],[18.562413,49.879333],[18.516214,49.902381],[18.348472,49.929847],[18.305322,49.91406],[18.266307,49.930286],[18.205277,49.964754],[18.099185,49.992789],[18.087661,50.007284],[18.049472,50.031933],[18.028285,50.035241],[18.014642,50.02028],[17.983843,49.999067],[17.874754,49.972247],[17.831294,49.983306],[17.79171,50.006612],[17.746545,50.05679],[17.681071,50.100767],[17.627069,50.116424],[17.59627,50.139524],[17.589345,50.157456],[17.709286,50.193552],[17.735486,50.230784],[17.720087,50.298636],[17.702258,50.307162],[17.654664,50.284218],[17.554619,50.264064],[17.462325,50.254762],[17.415196,50.254762],[17.151956,50.378321],[16.980804,50.416096],[16.880035,50.427026],[16.869183,50.414494],[16.914761,50.345196],[16.993413,50.259697],[16.989692,50.236934],[16.895331,50.201949],[16.841742,50.186704],[16.778645,50.157042],[16.725315,50.116063],[16.679117,50.097485],[16.639119,50.102162],[16.596641,50.121902],[16.487604,50.248406],[16.350455,50.345196],[16.334125,50.3669],[16.291337,50.371861],[16.23072,50.394082],[16.210308,50.423718],[16.240694,50.454673],[16.282552,50.482991],[16.356604,50.500484],[16.379083,50.516917],[16.392312,50.54167],[16.419701,50.573658],[16.412518,50.585181],[16.359963,50.621407],[16.282242,50.655616],[16.066441,50.629933],[16.00722,50.61164],[15.973837,50.635463],[15.948515,50.670241],[15.893893,50.676907],[15.819221,50.708688],[15.730544,50.73972],[15.643934,50.748866],[15.463997,50.793851],[15.394647,50.79628],[15.354391,50.811783],[15.312585,50.845734],[15.277032,50.883019],[15.258635,50.958544],[15.12593,50.992857],[14.993741,51.01438],[14.98444,51.003399],[14.989969,50.927228],[14.982889,50.886558],[14.895763,50.861392],[14.809412,50.858963],[14.814218,50.87165],[14.917467,51.008721],[14.963821,51.095124],[15.016634,51.252738],[14.953072,51.377123],[14.935554,51.435362],[14.905995,51.463319],[14.724714,51.523884],[14.710916,51.544916],[14.738667,51.627133],[14.724869,51.661705],[14.681306,51.698188],[14.623945,51.770794],[14.601621,51.832392],[14.674898,51.904817],[14.692985,51.958017],[14.724766,52.030881],[14.748123,52.070801],[14.752568,52.081834],[14.704612,52.110205],[14.692365,52.150047],[14.705387,52.20746],[14.679859,52.249989],[14.615677,52.277636],[14.573922,52.314171],[14.554595,52.359647],[14.569685,52.431089],[14.619397,52.528499],[14.514029,52.645624],[14.253683,52.782515],[14.128626,52.87822],[14.138858,52.932868],[14.193687,52.982348],[14.293216,53.026738],[14.36856,53.105544],[14.410935,53.199027],[14.41233,53.216752],[14.414552,53.283518],[14.298693,53.556421],[14.279883,53.624737],[14.266086,53.70711],[14.258903,53.729641],[14.487623,53.671892],[14.583534,53.639336],[14.571545,53.675897],[14.552115,53.707316],[14.56493,53.753515],[14.558419,53.823175],[14.350887,53.858728],[14.213686,53.870743],[14.198234,53.919061],[14.211412,53.950351],[14.249291,53.931928],[14.384166,53.924719],[14.715722,54.018305],[15.288401,54.1399],[15.900043,54.253976],[16.042773,54.266352],[16.18633,54.290382],[16.23935,54.333066],[16.292267,54.361618],[16.375569,54.436884],[16.559744,54.553802],[16.885409,54.596409],[17.007055,54.651858],[17.261923,54.729528],[17.842973,54.816706],[18.085646,54.835852],[18.323461,54.838178],[18.535127,54.769422],[18.7593,54.684569],[18.799607,54.633358],[18.678374,54.665294],[18.501538,54.741491],[18.436219,54.744747],[18.587114,54.5129],[18.669589,54.43089],[18.836401,54.369602],[18.976237,54.348931],[19.407116,54.386086],[19.560181,54.434636],[19.604364,54.459157]]]},"type":"Feature","properties":{"ISO_A2":"PL","NAME":"Poland"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-67.872467,18.05988],[-67.88182,18.05895],[-67.891173,18.059932],[-67.895463,18.0628],[-67.901922,18.071869],[-67.930396,18.086907],[-67.937062,18.100653],[-67.930603,18.115148],[-67.918975,18.12091],[-67.861098,18.122538],[-67.855155,18.121142],[-67.843683,18.11104],[-67.843373,18.10396],[-67.849057,18.097035],[-67.859186,18.079569],[-67.863423,18.075176],[-67.866782,18.070654],[-67.868126,18.0628],[-67.872467,18.05988]]],[[[-65.425613,18.105614],[-65.504032,18.099516],[-65.555063,18.107655],[-65.572219,18.137317],[-65.477135,18.165041],[-65.366185,18.161088],[-65.302675,18.144371],[-65.294872,18.133338],[-65.425613,18.105614]]],[[[-66.129395,18.444895],[-66.098492,18.425181],[-66.068417,18.428023],[-66.092704,18.469002],[-66.070432,18.469002],[-65.878764,18.443862],[-65.755593,18.401616],[-65.628831,18.381411],[-65.620847,18.242349],[-65.718412,18.186668],[-65.782232,18.12861],[-65.834141,18.057322],[-65.970774,17.974381],[-66.135493,17.949473],[-66.245021,17.947251],[-66.285897,17.949964],[-66.325791,17.964175],[-66.408551,17.950584],[-66.510793,17.987016],[-66.598436,17.977869],[-66.772405,17.986551],[-66.837594,17.955054],[-66.900019,17.947897],[-66.961204,17.953762],[-67.01332,17.967896],[-67.142408,17.966707],[-67.196849,17.994173],[-67.174344,18.152536],[-67.172458,18.224237],[-67.204161,18.28338],[-67.238939,18.320639],[-67.264054,18.364616],[-67.21336,18.393606],[-67.17176,18.4358],[-67.158634,18.499207],[-67.11303,18.514813],[-67.059622,18.522151],[-66.812867,18.492515],[-66.188564,18.475772],[-66.153063,18.470656],[-66.129395,18.444895]]]]},"type":"Feature","properties":{"ISO_A2":"PR","NAME":"Puerto Rico"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[124.905276,39.536295],[124.848948,39.507563],[124.846054,39.558878],[124.889566,39.602079],[124.934524,39.607789],[124.905276,39.536295]]],[[[129.977007,42.974845],[130.022276,42.962598],[130.082634,42.974173],[130.124802,42.955983],[130.15126,42.917949],[130.24035,42.891775],[130.248825,42.872629],[130.246707,42.744833],[130.295592,42.68494],[130.360705,42.630835],[130.450312,42.581691],[130.498216,42.570528],[130.526948,42.535388],[130.55413,42.474695],[130.618002,42.415603],[130.65154,42.372504],[130.657948,42.327778],[130.687352,42.302534],[130.636502,42.274862],[130.569219,42.291682],[130.457495,42.301708],[130.314764,42.21409],[130.235699,42.183214],[130.179889,42.096966],[130.068268,42.045754],[130.00729,41.991184],[129.928225,41.896719],[129.876342,41.805536],[129.756349,41.712235],[129.686276,41.594981],[129.682452,41.494341],[129.759036,41.391479],[129.765857,41.303836],[129.712114,41.123666],[129.741983,40.932256],[129.708703,40.857326],[129.341077,40.7263],[129.245062,40.661058],[129.109773,40.491043],[128.945236,40.427869],[128.84302,40.358493],[128.701323,40.317539],[128.610786,40.197883],[128.511257,40.130212],[128.393021,40.088975],[128.304448,40.035954],[128.10632,40.03257],[127.966587,39.995595],[127.867059,39.895937],[127.568162,39.781965],[127.527441,39.695717],[127.547285,39.562779],[127.548938,39.461106],[127.522894,39.37739],[127.457368,39.400954],[127.422228,39.373566],[127.38347,39.296129],[127.394529,39.207917],[127.496952,39.179495],[127.580978,39.143244],[127.698903,39.125054],[127.786133,39.084152],[127.971652,38.897988],[128.123064,38.816391],[128.162544,38.78616],[128.249464,38.745206],[128.329459,38.680895],[128.374624,38.623457],[128.339484,38.607876],[128.279333,38.523773],[128.223109,38.416984],[128.168642,38.359313],[128.106269,38.327325],[128.038934,38.308541],[127.905299,38.300427],[127.784635,38.307688],[127.745516,38.319263],[127.579479,38.312494],[127.532712,38.305001],[127.29407,38.313269],[127.169582,38.304536],[127.09031,38.283865],[127.009643,38.240509],[126.940087,38.175603],[126.87885,38.106072],[126.75431,37.978974],[126.666822,37.917169],[126.666512,37.827924],[126.664548,37.800742],[126.633852,37.781854],[126.623207,37.7902],[126.572771,37.796815],[126.369889,37.878386],[126.203077,37.828492],[126.161013,37.763742],[126.116674,37.742916],[126.050322,37.869808],[125.941698,37.873683],[125.769099,37.985356],[125.694995,37.962696],[125.676185,37.917712],[125.581513,37.815031],[125.449325,37.730204],[125.40664,37.719042],[125.357754,37.724804],[125.364886,37.748265],[125.310729,37.843504],[125.101956,37.882081],[125.026715,37.922621],[124.988785,37.931432],[125.193113,38.037782],[125.24665,38.056825],[125.206756,38.081552],[125.162624,38.093644],[124.994986,38.077831],[124.907033,38.112661],[124.779495,38.101499],[124.690922,38.129197],[124.874476,38.233377],[124.882745,38.294975],[124.880574,38.341665],[124.973695,38.480106],[125.067333,38.556717],[125.309695,38.665366],[125.415322,38.68043],[125.491803,38.676141],[125.554435,38.686218],[125.488702,38.727766],[125.42421,38.746886],[125.298947,38.742984],[125.168825,38.805539],[125.157353,38.871529],[125.409637,39.288403],[125.413151,39.326282],[125.373671,39.42762],[125.360855,39.526606],[125.180091,39.583476],[125.100096,39.590349],[124.867862,39.701815],[124.775258,39.758039],[124.738877,39.741502],[124.732263,39.652205],[124.69919,39.632362],[124.638315,39.615102],[124.607619,39.71693],[124.55739,39.790595],[124.403807,39.865526],[124.348617,39.906867],[124.375075,39.996164],[124.362156,40.004044],[124.386651,40.104271],[124.481012,40.181656],[124.712419,40.319245],[124.77195,40.383737],[124.889359,40.459805],[124.942276,40.458151],[124.996846,40.464766],[125.013383,40.497838],[125.025992,40.523883],[125.072914,40.547448],[125.185879,40.589383],[125.314449,40.644625],[125.416872,40.659896],[125.542549,40.742578],[125.593812,40.778958],[125.645075,40.778958],[125.659235,40.795882],[125.688225,40.83867],[125.728274,40.866705],[125.784033,40.872027],[125.874932,40.892233],[125.989034,40.904635],[126.066755,40.974088],[126.093213,41.023698],[126.144476,41.078268],[126.253617,41.137799],[126.328703,41.225701],[126.41185,41.321328],[126.451434,41.351843],[126.490398,41.35807],[126.513549,41.394011],[126.540111,41.495555],[126.578352,41.594361],[126.601244,41.640973],[126.697001,41.691874],[126.721599,41.716575],[126.743096,41.724844],[126.787745,41.718229],[126.847276,41.747995],[126.9035,41.781068],[126.954763,41.769492],[127.006904,41.742052],[127.061268,41.687352],[127.085401,41.643815],[127.128396,41.607435],[127.136664,41.554518],[127.179659,41.531367],[127.270816,41.519843],[127.420367,41.483773],[127.517002,41.481758],[127.572193,41.454757],[127.687638,41.440003],[127.918683,41.461139],[128.013096,41.448685],[128.052784,41.415612],[128.11123,41.389257],[128.149419,41.387732],[128.200268,41.433001],[128.254942,41.506562],[128.290909,41.562786],[128.289255,41.607435],[128.257836,41.655391],[128.181768,41.700039],[128.1319,41.76913],[128.084203,41.840599],[128.056091,41.86375],[128.03294,41.898476],[128.028702,41.951626],[128.045239,41.987515],[128.160167,42.011596],[128.307859,42.025652],[128.427231,42.010718],[128.626702,42.020846],[128.748969,42.04069],[128.839816,42.037848],[128.923428,42.03821],[128.960635,42.068802],[129.077217,42.142389],[129.1337,42.168512],[129.195453,42.218457],[129.205375,42.270547],[129.217777,42.312715],[129.252504,42.35788],[129.313689,42.413587],[129.365778,42.439219],[129.423656,42.435911],[129.484841,42.41028],[129.523702,42.384648],[129.567523,42.39209],[129.603903,42.435911],[129.627985,42.444283],[129.6978,42.448133],[129.719762,42.474979],[129.74653,42.603808],[129.773402,42.705456],[129.77919,42.776562],[129.841512,42.89423],[129.861045,42.965078],[129.898252,42.998151],[129.941247,42.99567],[129.977007,42.974845]]]]},"type":"Feature","properties":{"ISO_A2":"KP","NAME":"N. Korea"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.190883,32.868588],[-17.054509,32.815878],[-16.929194,32.841381],[-16.773958,32.773555],[-16.693239,32.758001],[-16.765276,32.709735],[-16.837416,32.648292],[-17.018284,32.662787],[-17.171194,32.721879],[-17.226023,32.766837],[-17.241009,32.807352],[-17.190883,32.868588]]],[[[-25.027356,36.959967],[-25.031542,36.941544],[-25.088386,36.948882],[-25.159906,36.943378],[-25.198405,36.996553],[-25.163523,37.018568],[-25.082908,37.024045],[-25.044357,37.000222],[-25.027356,36.959967]]],[[[-25.648972,37.840895],[-25.585513,37.834048],[-25.266618,37.848646],[-25.18192,37.837897],[-25.190705,37.764362],[-25.251115,37.73501],[-25.43901,37.715321],[-25.734444,37.762863],[-25.833663,37.826064],[-25.847822,37.872391],[-25.84591,37.894018],[-25.783744,37.911149],[-25.648972,37.840895]]],[[[-28.147269,38.452692],[-28.064793,38.412746],[-28.189747,38.404168],[-28.231139,38.38466],[-28.332425,38.412901],[-28.454485,38.408664],[-28.531173,38.462562],[-28.548846,38.518579],[-28.510244,38.553048],[-28.402137,38.553358],[-28.147269,38.452692]]],[[[-28.641295,38.524987],[-28.743873,38.522378],[-28.842058,38.59842],[-28.697778,38.638469],[-28.655403,38.614052],[-28.62419,38.586327],[-28.605794,38.550748],[-28.641295,38.524987]]],[[[-27.778454,38.555631],[-27.825893,38.543539],[-28.092337,38.620537],[-28.187266,38.655367],[-28.31067,38.743889],[-27.962655,38.636324],[-27.778454,38.555631]]],[[[-27.075241,38.643481],[-27.095292,38.63405],[-27.302824,38.661051],[-27.361942,38.697845],[-27.38592,38.765799],[-27.351038,38.788951],[-27.259674,38.802696],[-27.126995,38.789829],[-27.041961,38.741201],[-27.042013,38.678931],[-27.075241,38.643481]]],[[[-31.137112,39.406949],[-31.181347,39.358916],[-31.257621,39.375995],[-31.282943,39.394107],[-31.260825,39.496763],[-31.199847,39.520844],[-31.138636,39.479451],[-31.137112,39.406949]]],[[[-8.173527,41.81998],[-8.152494,41.81197],[-8.09441,41.814218],[-7.990954,41.851916],[-7.920855,41.883645],[-7.896386,41.870571],[-7.693039,41.888451],[-7.644696,41.873982],[-7.612579,41.857962],[-7.512585,41.836],[-7.403599,41.833674],[-7.268543,41.864422],[-7.209606,41.895273],[-7.198315,41.929379],[-7.195343,41.955217],[-7.177928,41.971702],[-7.147129,41.981133],[-7.099122,41.964209],[-7.030444,41.950644],[-6.865544,41.945244],[-6.833221,41.964157],[-6.777281,41.958473],[-6.70359,41.934572],[-6.618273,41.942401],[-6.57533,41.913101],[-6.557501,41.874137],[-6.552592,41.789543],[-6.559,41.70407],[-6.542179,41.672495],[-6.484689,41.664382],[-6.391723,41.665364],[-6.308059,41.642213],[-6.243128,41.601802],[-6.221708,41.560461],[-6.212509,41.532039],[-6.244316,41.515916],[-6.289352,41.455041],[-6.403144,41.375408],[-6.565924,41.303732],[-6.690155,41.214487],[-6.775782,41.107724],[-6.882804,41.062403],[-6.915541,41.038038],[-6.92846,41.009151],[-6.857741,40.878332],[-6.835882,40.777511],[-6.818364,40.654056],[-6.829836,40.619071],[-6.835675,40.483137],[-6.852057,40.443268],[-6.847923,40.41097],[-6.821774,40.376244],[-6.810147,40.343119],[-6.858878,40.300745],[-6.948433,40.2516],[-7.014683,40.208347],[-7.032614,40.16791],[-7.027808,40.14264],[-6.916394,40.056832],[-6.896111,40.021821],[-6.911175,39.937097],[-6.975408,39.798398],[-7.036748,39.713959],[-7.04742,39.705561],[-7.117674,39.681687],[-7.454087,39.680679],[-7.535684,39.661559],[-7.524212,39.644712],[-7.445121,39.536166],[-7.362672,39.47834],[-7.335438,39.465137],[-7.305776,39.338116],[-7.172399,39.135208],[-7.042975,39.107096],[-6.997965,39.056454],[-7.006259,38.985269],[-7.04605,38.907057],[-7.125503,38.826959],[-7.219941,38.770502],[-7.28154,38.714536],[-7.286371,38.649372],[-7.305983,38.566845],[-7.3358,38.501475],[-7.343009,38.45742],[-7.106408,38.181003],[-6.974788,38.194413],[-6.957554,38.187902],[-6.981093,38.121963],[-7.022847,38.044707],[-7.072509,38.03003],[-7.185422,38.006363],[-7.292237,37.906472],[-7.378898,37.786376],[-7.443959,37.728266],[-7.50349,37.58551],[-7.496049,37.523576],[-7.467161,37.428052],[-7.406132,37.179436],[-7.493594,37.1683],[-7.834142,37.0057],[-7.939691,37.005416],[-8.136759,37.077065],[-8.484334,37.100036],[-8.597635,37.121352],[-8.739099,37.074585],[-8.848447,37.075696],[-8.935366,37.01601],[-8.997792,37.032262],[-8.926271,37.166078],[-8.814133,37.430816],[-8.818578,37.592434],[-8.791835,37.732813],[-8.822634,37.871875],[-8.878962,37.958665],[-8.802274,38.183819],[-8.81093,38.299756],[-8.881106,38.446697],[-8.668328,38.424322],[-8.734009,38.482406],[-8.798863,38.518166],[-8.861624,38.509975],[-8.914799,38.51212],[-9.096003,38.455224],[-9.186721,38.438171],[-9.213308,38.448093],[-9.20336,38.53894],[-9.250412,38.656736],[-9.177832,38.687768],[-9.093315,38.696682],[-9.021459,38.74686],[-8.977043,38.802955],[-9.000479,38.903052],[-8.938079,38.998111],[-8.791603,39.078183],[-8.867464,39.065988],[-8.95428,39.016043],[-9.091016,38.834684],[-9.135793,38.742752],[-9.252298,38.712805],[-9.356736,38.697897],[-9.410221,38.707534],[-9.474145,38.730866],[-9.479752,38.798769],[-9.474765,38.852952],[-9.43146,38.960465],[-9.414329,39.112135],[-9.352809,39.248147],[-9.357201,39.284269],[-9.374745,39.338271],[-9.319606,39.391136],[-9.251419,39.426043],[-9.148273,39.5426],[-9.004044,39.820541],[-8.837853,40.115665],[-8.851315,40.151813],[-8.88661,40.17946],[-8.872631,40.259093],[-8.772405,40.605661],[-8.731606,40.65093],[-8.684632,40.752552],[-8.673987,40.916521],[-8.65559,41.029486],[-8.659802,41.086278],[-8.674607,41.154491],[-8.738376,41.28469],[-8.805659,41.559996],[-8.810826,41.651928],[-8.755403,41.698385],[-8.846405,41.705155],[-8.887617,41.764583],[-8.878238,41.832072],[-8.777133,41.941084],[-8.682953,42.008521],[-8.589677,42.052731],[-8.538104,42.069319],[-8.322561,42.115104],[-8.266079,42.137377],[-8.213059,42.133708],[-8.204171,42.111848],[-8.173578,42.069396],[-8.139317,42.039967],[-8.129963,42.018185],[-8.213317,41.927079],[-8.224738,41.895841],[-8.181226,41.836982],[-8.173527,41.81998]]]]},"type":"Feature","properties":{"ISO_A2":"PT","NAME":"Portugal"}},{"geometry":{"type":"Polygon","coordinates":[[[-58.159778,-20.164609],[-58.137815,-20.237266],[-58.124586,-20.29349],[-58.091513,-20.333177],[-58.05844,-20.386094],[-58.025367,-20.415859],[-58.002216,-20.465469],[-58.008831,-20.521693],[-57.995602,-20.594453],[-57.979065,-20.657292],[-57.962529,-20.673828],[-57.915116,-20.690365],[-57.891422,-20.747415],[-57.908501,-20.776354],[-57.901887,-20.809427],[-57.884808,-20.841673],[-57.900517,-20.873093],[-57.892249,-20.89707],[-57.860003,-20.918568],[-57.830237,-20.997943],[-57.82693,-21.133542],[-57.860003,-21.206302],[-57.886461,-21.265833],[-57.893076,-21.302214],[-57.873232,-21.35513],[-57.906305,-21.417969],[-57.945992,-21.494037],[-57.936071,-21.546953],[-57.929456,-21.596563],[-57.926149,-21.649479],[-57.916227,-21.699089],[-57.929456,-21.752005],[-57.942685,-21.798307],[-57.9493,-21.851224],[-57.932763,-21.910755],[-57.962529,-21.966979],[-57.979065,-22.006667],[-57.98568,-22.046354],[-57.955914,-22.109193],[-57.879847,-22.135651],[-57.820315,-22.142266],[-57.764091,-22.109193],[-57.721097,-22.099271],[-57.641722,-22.129037],[-57.568961,-22.181953],[-57.476357,-22.188568],[-57.393675,-22.19849],[-57.330836,-22.215026],[-57.238232,-22.195182],[-57.142321,-22.215026],[-57.029873,-22.244792],[-56.937268,-22.27125],[-56.844664,-22.264636],[-56.775211,-22.261328],[-56.702451,-22.231563],[-56.632998,-22.23487],[-56.580081,-22.181953],[-56.550315,-22.135651],[-56.523857,-22.102578],[-56.447789,-22.07612],[-56.394873,-22.092656],[-56.351878,-22.178646],[-56.27581,-22.228255],[-56.246044,-22.264636],[-56.189821,-22.281172],[-56.067451,-22.284479],[-55.991383,-22.281172],[-55.905393,-22.30763],[-55.849169,-22.30763],[-55.79956,-22.353932],[-55.753258,-22.410156],[-55.746643,-22.512682],[-55.703649,-22.592057],[-55.647425,-22.621823],[-55.617659,-22.671432],[-55.627581,-22.740886],[-55.654039,-22.810339],[-55.650732,-22.886406],[-55.620966,-22.955859],[-55.620966,-23.025313],[-55.601123,-23.094766],[-55.561435,-23.154297],[-55.548206,-23.250208],[-55.554821,-23.319662],[-55.528362,-23.359349],[-55.51844,-23.415573],[-55.534977,-23.461875],[-55.541591,-23.524714],[-55.538284,-23.580938],[-55.51844,-23.62724],[-55.458909,-23.686771],[-55.442373,-23.792604],[-55.442373,-23.865365],[-55.415914,-23.951354],[-55.366305,-23.991042],[-55.28693,-24.004271],[-55.194326,-24.0175],[-55.081878,-23.997656],[-54.982659,-23.974505],[-54.926435,-23.951354],[-54.817294,-23.888516],[-54.721383,-23.852136],[-54.671774,-23.828984],[-54.625472,-23.812448],[-54.52956,-23.852136],[-54.440263,-23.901745],[-54.37081,-23.971198],[-54.241826,-24.047266],[-54.266915,-24.065869],[-54.318255,-24.128088],[-54.317273,-24.201261],[-54.280996,-24.306061],[-54.312933,-24.528167],[-54.412978,-24.867474],[-54.454087,-25.06524],[-54.436258,-25.121309],[-54.473155,-25.220217],[-54.610563,-25.432711],[-54.615886,-25.576061],[-54.631931,-26.005803],[-54.677716,-26.308833],[-54.755102,-26.532902],[-54.825511,-26.652223],[-54.888918,-26.666796],[-54.934471,-26.702504],[-54.962144,-26.759348],[-55.013613,-26.806684],[-55.088854,-26.844511],[-55.129627,-26.886059],[-55.135931,-26.931121],[-55.207994,-26.960163],[-55.345789,-26.973185],[-55.426663,-27.009255],[-55.450641,-27.068373],[-55.49671,-27.115296],[-55.564897,-27.150022],[-55.597247,-27.20759],[-55.59381,-27.288101],[-55.632929,-27.357141],[-55.71463,-27.414812],[-55.79,-27.416362],[-55.85904,-27.361947],[-55.951489,-27.325722],[-56.067347,-27.307739],[-56.164086,-27.321484],[-56.241729,-27.366805],[-56.310537,-27.43879],[-56.370481,-27.537389],[-56.437144,-27.553822],[-56.510524,-27.487883],[-56.603361,-27.467832],[-56.715706,-27.493774],[-56.805183,-27.484679],[-56.871743,-27.44065],[-56.973959,-27.435793],[-57.111831,-27.470106],[-57.391272,-27.430418],[-57.812228,-27.316627],[-58.168253,-27.273425],[-58.604841,-27.314353],[-58.641764,-27.196117],[-58.618613,-27.13209],[-58.547713,-27.084031],[-58.503245,-27.029513],[-58.485236,-26.968431],[-58.436298,-26.921974],[-58.356432,-26.889986],[-58.322559,-26.857637],[-58.334651,-26.824926],[-58.317701,-26.795935],[-58.271683,-26.770717],[-58.245561,-26.73103],[-58.23936,-26.676873],[-58.222048,-26.649949],[-58.1913,-26.630002],[-58.187941,-26.592537],[-58.205201,-26.476575],[-58.203031,-26.38149],[-58.181482,-26.307386],[-58.154714,-26.262583],[-58.135619,-26.251472],[-58.118075,-26.224911],[-58.111124,-26.18021],[-58.082392,-26.138559],[-57.943099,-26.052983],[-57.890647,-26.006578],[-57.886203,-25.964255],[-57.865222,-25.906945],[-57.782488,-25.783697],[-57.757063,-25.726026],[-57.754815,-25.697087],[-57.725463,-25.667219],[-57.625831,-25.598696],[-57.5717,-25.534152],[-57.563122,-25.473742],[-57.587151,-25.405116],[-57.643892,-25.328428],[-57.821659,-25.136398],[-57.959816,-25.049168],[-58.136472,-24.977131],[-58.252795,-24.953774],[-58.308709,-24.979147],[-58.365398,-24.959251],[-58.422811,-24.894139],[-58.519652,-24.842876],[-58.724007,-24.786652],[-59.18726,-24.562273],[-59.372934,-24.453959],[-59.435411,-24.386987],[-59.608578,-24.266839],[-59.892463,-24.093568],[-60.110305,-24.009232],[-60.262182,-24.013986],[-60.505345,-23.963602],[-60.839821,-23.85813],[-61.032936,-23.755707],[-61.084716,-23.656489],[-61.208377,-23.557063],[-61.403973,-23.457483],[-61.505517,-23.392009],[-61.513036,-23.360486],[-61.571017,-23.319403],[-61.679511,-23.268709],[-61.798522,-23.181996],[-61.928023,-23.059316],[-62.066594,-22.869456],[-62.214181,-22.612418],[-62.372492,-22.439147],[-62.541552,-22.349643],[-62.625965,-22.290474],[-62.625707,-22.261535],[-62.651002,-22.233733],[-62.628497,-22.18402],[-62.566951,-21.988683],[-62.477835,-21.705238],[-62.385463,-21.411768],[-62.276684,-21.066052],[-62.276529,-20.820796],[-62.276322,-20.562466],[-62.121629,-20.34992],[-62.011791,-20.199025],[-61.916939,-20.055365],[-61.820898,-19.809437],[-61.756819,-19.645261],[-61.511821,-19.6064],[-61.096007,-19.52103],[-60.888759,-19.478501],[-60.451628,-19.38879],[-60.007365,-19.297581],[-59.540882,-19.291794],[-59.090522,-19.286213],[-58.741138,-19.490231],[-58.474203,-19.646139],[-58.180164,-19.81786],[-58.160036,-19.854912],[-58.139934,-19.998882],[-58.159778,-20.164609]]]},"type":"Feature","properties":{"ISO_A2":"PY","NAME":"Paraguay"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-138.505855,-20.857176],[-138.534872,-20.875883],[-138.524046,-20.850562],[-138.54637,-20.795164],[-138.568384,-20.787155],[-138.54637,-20.771187],[-138.514951,-20.813355],[-138.505855,-20.857176]]],[[[-136.293897,-18.544346],[-136.314051,-18.566308],[-136.316015,-18.545224],[-136.344049,-18.534837],[-136.38291,-18.513702],[-136.435672,-18.489052],[-136.464249,-18.485021],[-136.478537,-18.470759],[-136.458694,-18.463214],[-136.426112,-18.474324],[-136.380352,-18.496803],[-136.327616,-18.519283],[-136.293897,-18.544346]]],[[[-140.685335,-18.37986],[-140.671899,-18.416137],[-140.696058,-18.399135],[-140.773236,-18.363788],[-140.781763,-18.334178],[-140.685335,-18.37986]]],[[[-136.971711,-18.342033],[-136.97135,-18.360894],[-137.067571,-18.265293],[-137.029641,-18.272889],[-136.971711,-18.342033]]],[[[-140.8299,-18.189329],[-140.822717,-18.216872],[-140.860053,-18.198734],[-140.895477,-18.147988],[-140.958651,-18.085097],[-140.97356,-18.059207],[-140.925139,-18.083754],[-140.893281,-18.120496],[-140.8299,-18.189329]]],[[[-140.809384,-17.856636],[-140.804423,-17.875653],[-140.840803,-17.873172],[-140.851552,-17.866558],[-140.850725,-17.831004],[-140.824267,-17.78801],[-140.803596,-17.751629],[-140.761428,-17.71773],[-140.686188,-17.68383],[-140.649807,-17.669774],[-140.638232,-17.678042],[-140.652029,-17.683106],[-140.776311,-17.75411],[-140.815172,-17.803719],[-140.832535,-17.838446],[-140.829228,-17.849194],[-140.809384,-17.856636]]],[[[-149.321526,-17.690031],[-149.177685,-17.736643],[-149.150865,-17.812091],[-149.181767,-17.86232],[-149.254476,-17.849918],[-149.290469,-17.822426],[-149.341111,-17.732406],[-149.481697,-17.752766],[-149.578901,-17.73499],[-149.632825,-17.617581],[-149.634995,-17.564251],[-149.611405,-17.531694],[-149.508104,-17.496348],[-149.379197,-17.522393],[-149.330053,-17.588952],[-149.321526,-17.690031]]],[[[-149.813667,-17.545027],[-149.844905,-17.571072],[-149.886556,-17.55283],[-149.905108,-17.527767],[-149.911826,-17.501205],[-149.902162,-17.469528],[-149.808809,-17.47392],[-149.782428,-17.487769],[-149.813667,-17.545027]]],[[[-151.409797,-16.877781],[-151.449484,-16.879331],[-151.485477,-16.863725],[-151.476407,-16.760734],[-151.466744,-16.739598],[-151.411166,-16.774428],[-151.364502,-16.864242],[-151.409797,-16.877781]]],[[[-143.440567,-16.61976],[-143.386178,-16.668853],[-143.458525,-16.635418],[-143.550664,-16.621104],[-143.515576,-16.612267],[-143.4647,-16.613611],[-143.440567,-16.61976]]],[[[-143.571128,-16.634747],[-143.61066,-16.640379],[-143.707398,-16.580848],[-143.670191,-16.580848],[-143.614794,-16.618055],[-143.571128,-16.634747]]],[[[-151.466615,-16.657536],[-151.484934,-16.665132],[-151.504132,-16.646942],[-151.5124,-16.619037],[-151.50576,-16.574027],[-151.457416,-16.603689],[-151.438064,-16.623481],[-151.466615,-16.657536]]],[[[-145.48667,-16.329752],[-145.482226,-16.346754],[-145.502741,-16.345824],[-145.539845,-16.295129],[-145.5531,-16.251152],[-145.57669,-16.201491],[-145.609117,-16.165266],[-145.612812,-16.131883],[-145.61382,-16.079225],[-145.577078,-16.15984],[-145.542325,-16.224642],[-145.517004,-16.277817],[-145.48667,-16.329752]]],[[[-142.511813,-16.09633],[-142.529615,-16.10713],[-142.506852,-16.027704],[-142.48122,-16.017782],[-142.511813,-16.09633]]],[[[-145.051347,-15.856086],[-145.057678,-15.901096],[-145.076436,-15.857636],[-145.137931,-15.78808],[-145.160721,-15.757074],[-145.133539,-15.762035],[-145.051347,-15.856086]]],[[[-138.651144,-10.515327],[-138.687757,-10.532432],[-138.690366,-10.425565],[-138.642901,-10.445874],[-138.624479,-10.462979],[-138.632359,-10.492176],[-138.651144,-10.515327]]],[[[-139.059723,-9.931331],[-139.133983,-10.00957],[-139.134241,-9.926267],[-139.107473,-9.915415],[-139.083159,-9.915467],[-139.059723,-9.931331]]],[[[-139.024325,-9.69517],[-138.874463,-9.747157],[-138.82736,-9.741576],[-138.874929,-9.792839],[-139.024273,-9.820744],[-139.073676,-9.845652],[-139.13406,-9.829529],[-139.166435,-9.770204],[-139.024325,-9.69517]]],[[[-140.07563,-9.425936],[-140.097386,-9.444126],[-140.138056,-9.384388],[-140.144386,-9.359377],[-140.070928,-9.328164],[-140.031085,-9.344701],[-140.07563,-9.425936]]],[[[-139.556205,-8.940281],[-139.621007,-8.947981],[-139.631807,-8.898578],[-139.611757,-8.872326],[-139.583981,-8.860027],[-139.534578,-8.875427],[-139.508352,-8.897028],[-139.509903,-8.91558],[-139.556205,-8.940281]]],[[[-140.072607,-8.910412],[-140.17056,-8.933976],[-140.217431,-8.929739],[-140.252674,-8.84809],[-140.240065,-8.797602],[-140.224407,-8.781531],[-140.057673,-8.801478],[-140.043694,-8.838427],[-140.046149,-8.87367],[-140.072607,-8.910412]]]]},"type":"Feature","properties":{"ISO_A2":"PF","NAME":"Fr. Polynesia"}},{"geometry":{"type":"Polygon","coordinates":[[[51.268013,24.607232],[51.177993,24.586742],[51.093347,24.564651],[51.022757,24.565245],[50.966068,24.573953],[50.928292,24.59514],[50.855635,24.679631],[50.804372,24.789262],[50.835895,24.85037],[50.846747,24.888559],[50.777294,25.17743],[50.754556,25.399277],[50.762928,25.444752],[50.802615,25.497049],[50.868658,25.612675],[50.903798,25.724063],[51.00312,25.981464],[51.108126,26.080579],[51.262329,26.153288],[51.389039,26.011126],[51.543035,25.902399],[51.572284,25.781011],[51.526912,25.682102],[51.485364,25.524696],[51.510272,25.452349],[51.519574,25.389743],[51.561432,25.284452],[51.601946,25.147923],[51.608871,25.05289],[51.58696,24.964833],[51.533423,24.890884],[51.4279,24.668262],[51.396481,24.645137],[51.268013,24.607232]]]},"type":"Feature","properties":{"ISO_A2":"QA","NAME":"Qatar"}},{"geometry":{"type":"Polygon","coordinates":[[[28.21247,45.450456],[28.317683,45.347129],[28.451266,45.292197],[28.760705,45.234138],[28.7883,45.24096],[28.791349,45.251915],[28.769852,45.266901],[28.766648,45.286228],[28.781737,45.309844],[28.824318,45.311085],[28.894288,45.289949],[29.027407,45.320541],[29.223571,45.402914],[29.403663,45.419657],[29.567684,45.370823],[29.651968,45.313901],[29.705918,45.259899],[29.689072,45.193211],[29.678633,45.151637],[29.635328,44.979632],[29.605459,44.915476],[29.557504,44.843413],[29.048284,44.757578],[29.081047,44.798816],[29.069161,44.871137],[29.047767,44.925682],[29.09531,44.975033],[28.980691,44.992913],[28.930565,44.965809],[28.891498,44.918654],[28.926121,44.81003],[28.870414,44.74993],[28.84902,44.716289],[28.846539,44.636862],[28.81357,44.602497],[28.807059,44.565032],[28.888191,44.574747],[28.851707,44.506095],[28.699158,44.374243],[28.645415,44.295643],[28.658644,43.983853],[28.590741,43.79743],[28.585315,43.74224],[28.423464,43.740483],[28.375199,43.744798],[28.221978,43.772832],[28.049999,43.82239],[27.94892,43.918612],[27.884272,43.987341],[27.738597,43.95631],[27.710795,43.964604],[27.670901,43.99778],[27.561036,44.020052],[27.425334,44.020517],[27.12065,44.146143],[27.086905,44.167408],[26.847747,44.146195],[26.489216,44.083976],[26.215796,44.007288],[25.933435,43.870552],[25.818817,43.766838],[25.686112,43.711751],[25.49708,43.670797],[25.159633,43.686326],[24.808181,43.738416],[24.430581,43.794381],[24.22677,43.763479],[23.950766,43.786656],[23.534564,43.853577],[23.224609,43.873886],[22.919046,43.834456],[22.867679,43.864558],[22.856414,43.899026],[22.8683,43.947886],[22.911294,43.987186],[22.985398,44.017003],[23.024466,44.047234],[23.028497,44.077982],[22.945401,44.127281],[22.775179,44.195236],[22.705105,44.237791],[22.687845,44.248307],[22.683298,44.28647],[22.647951,44.316468],[22.581805,44.338328],[22.530646,44.377963],[22.494576,44.435428],[22.502327,44.489584],[22.554004,44.540331],[22.620149,44.562345],[22.700765,44.555524],[22.734354,44.569915],[22.720918,44.605521],[22.64206,44.65097],[22.497676,44.706264],[22.350708,44.676136],[22.20095,44.560691],[22.09305,44.541933],[22.026904,44.619861],[21.909288,44.666111],[21.740203,44.680684],[21.636127,44.71045],[21.597059,44.755408],[21.523162,44.790083],[21.360071,44.82667],[21.357901,44.86181],[21.384359,44.870078],[21.442237,44.873385],[21.519958,44.880827],[21.53236,44.90067],[21.533187,44.918861],[21.472002,44.942012],[21.409991,44.957721],[21.377745,44.973431],[21.357074,44.990794],[21.35294,45.008984],[21.37113,45.021387],[21.395935,45.022213],[21.420739,45.032962],[21.434485,45.075156],[21.467868,45.109857],[21.491846,45.122259],[21.490192,45.147891],[21.465388,45.171868],[21.431488,45.192539],[21.381775,45.205096],[21.226436,45.241322],[21.147888,45.291758],[21.099932,45.293541],[21.023864,45.321523],[20.941802,45.365319],[20.870799,45.427563],[20.794008,45.467871],[20.774164,45.484407],[20.77251,45.500117],[20.786566,45.51748],[20.786049,45.536497],[20.765792,45.59745],[20.77928,45.661994],[20.775817,45.722532],[20.774991,45.749818],[20.760108,45.758086],[20.746879,45.748991],[20.727862,45.737415],[20.709258,45.735245],[20.652724,45.779402],[20.581152,45.8695],[20.532577,45.899524],[20.437957,45.940762],[20.358582,45.975489],[20.301324,46.050678],[20.241845,46.108607],[20.280964,46.132998],[20.508082,46.166924],[20.613657,46.133515],[20.660992,46.145659],[20.707398,46.172815],[20.732719,46.194442],[20.73737,46.217489],[20.760211,46.246221],[20.837002,46.259709],[21.039884,46.242242],[21.121636,46.282447],[21.151919,46.304357],[21.170419,46.352675],[21.191813,46.391536],[21.264573,46.412309],[21.26323,46.447734],[21.252223,46.486362],[21.294546,46.572455],[21.320177,46.607801],[21.361311,46.620772],[21.411024,46.647851],[21.497117,46.704281],[21.477067,46.753374],[21.49443,46.789728],[21.58414,46.878379],[21.652663,46.963775],[21.651423,47.006537],[21.661448,47.043899],[21.721806,47.084827],[21.785472,47.138157],[21.869291,47.304606],[21.899263,47.332563],[21.954247,47.364241],[21.995278,47.395712],[21.999722,47.505033],[22.037963,47.536608],[22.111963,47.572032],[22.185085,47.629031],[22.244617,47.696365],[22.29066,47.727836],[22.351432,47.736208],[22.417474,47.762666],[22.491372,47.772562],[22.562944,47.759566],[22.608367,47.76631],[22.676787,47.799047],[22.851763,47.922579],[22.87662,47.947255],[22.912845,47.964282],[23.0548,48.006553],[23.090767,48.049135],[23.139498,48.087401],[23.202646,48.084507],[23.408163,47.989991],[23.628667,47.99583],[23.669078,47.992316],[23.681997,47.990379],[23.709023,47.982601],[24.001822,47.935782],[24.047349,47.941028],[24.059751,47.944774],[24.177729,47.906068],[24.28196,47.911184],[24.380972,47.93803],[24.484067,47.9471],[24.578893,47.93108],[24.65093,47.87651],[24.837895,47.760858],[24.893344,47.71776],[24.979127,47.724142],[25.07385,47.745716],[25.169658,47.823076],[25.464317,47.910771],[25.689316,47.932475],[25.908682,47.967563],[26.162672,47.992523],[26.236259,48.064353],[26.276929,48.113239],[26.305609,48.203776],[26.442345,48.229976],[26.572415,48.248476],[26.618975,48.259845],[26.713801,48.263463],[26.787285,48.255815],[26.900973,48.211114],[26.980762,48.155045],[27.012233,48.1105],[27.080342,48.047662],[27.152069,47.959295],[27.230824,47.841731],[27.248136,47.782252],[27.277953,47.717966],[27.336864,47.639754],[27.44926,47.553118],[27.464815,47.536685],[27.515871,47.47563],[27.614108,47.340547],[27.69617,47.286416],[27.767949,47.227583],[27.802365,47.16831],[27.853835,47.114489],[27.974189,47.043227],[28.071806,46.978425],[28.149941,46.79208],[28.204718,46.7064],[28.239496,46.640823],[28.222598,46.508066],[28.244354,46.451274],[28.199654,46.347559],[28.119194,46.138683],[28.099712,45.972595],[28.113561,45.883039],[28.115525,45.825524],[28.134955,45.788859],[28.156297,45.713076],[28.159811,45.647137],[28.130821,45.628275],[28.090306,45.612746],[28.0747,45.598974],[28.111959,45.569157],[28.16255,45.51376],[28.21247,45.450456]]]},"type":"Feature","properties":{"ISO_A2":"RO","NAME":"Romania"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[146.045587,43.40934],[146.032358,43.407144],[146.028017,43.420373],[146.048894,43.433602],[146.088582,43.449028],[146.100778,43.440191],[146.08636,43.429184],[146.069875,43.421484],[146.045587,43.40934]]],[[[145.881566,43.459518],[145.895622,43.454557],[145.913812,43.455384],[145.931176,43.457038],[145.941097,43.445462],[145.943578,43.426445],[145.931176,43.425618],[145.907198,43.422311],[145.893969,43.419831],[145.886527,43.43306],[145.881566,43.443808],[145.869164,43.450423],[145.869164,43.457864],[145.881566,43.459518]]],[[[146.358746,43.625399],[146.332288,43.619922],[146.288156,43.625399],[146.27379,43.629844],[146.283712,43.638629],[146.310171,43.651858],[146.333322,43.647465],[146.349858,43.644158],[146.358746,43.625399]]],[[[146.71397,43.74379],[146.682964,43.71635],[146.608654,43.740483],[146.613511,43.797017],[146.621986,43.812985],[146.824661,43.860476],[146.884089,43.82916],[146.898972,43.804148],[146.71397,43.74379]]],[[[146.207644,44.497672],[146.355956,44.424627],[146.567829,44.44044],[146.516153,44.374656],[146.436468,44.37569],[146.296218,44.280967],[146.172918,44.268668],[146.112353,44.24593],[145.914019,44.103717],[145.887354,44.047751],[145.766948,43.940729],[145.586804,43.845102],[145.555901,43.664622],[145.439216,43.737072],[145.426193,43.810349],[145.461747,43.870914],[145.666282,43.999072],[145.748344,44.071522],[145.773356,44.128986],[145.851904,44.193013],[145.890248,44.248566],[145.940374,44.272673],[146.112146,44.500126],[146.207644,44.497672]]],[[[148.59954,45.317648],[148.414642,45.247161],[148.262299,45.216853],[148.005261,45.070169],[147.913794,44.990381],[147.784086,44.9586],[147.657789,44.977152],[147.621925,44.94475],[147.609523,44.886563],[147.563117,44.835558],[147.310109,44.677635],[147.207377,44.55356],[147.098443,44.531262],[146.897422,44.404318],[146.933492,44.513097],[146.974213,44.565704],[147.140921,44.663346],[147.15477,44.766208],[147.246547,44.856074],[147.430412,44.945216],[147.557846,45.062444],[147.657892,45.09301],[147.76941,45.19073],[147.885578,45.225638],[147.872659,45.30031],[147.924026,45.383277],[147.96454,45.377747],[148.056007,45.262095],[148.130111,45.25822],[148.324208,45.282404],[148.612356,45.484666],[148.706613,45.520633],[148.772656,45.526472],[148.81224,45.510013],[148.826193,45.486061],[148.825366,45.455908],[148.803042,45.413507],[148.837148,45.362709],[148.790743,45.323952],[148.59954,45.317648]]],[[[47.983046,45.488232],[47.967646,45.46999],[47.92031,45.562077],[47.91752,45.618146],[47.947182,45.647085],[47.987076,45.554067],[47.983046,45.488232]]],[[[149.687742,45.642021],[149.538914,45.591378],[149.447033,45.593341],[149.665935,45.839786],[149.796263,45.876089],[149.962351,46.02192],[150.30879,46.200359],[150.348684,46.213407],[150.553116,46.208549],[150.234582,46.012282],[150.194998,45.933217],[150.056609,45.849346],[149.954082,45.822475],[149.883389,45.783149],[149.687742,45.642021]]],[[[152.002019,46.897189],[151.815571,46.787119],[151.754076,46.788307],[151.723484,46.828796],[151.715319,46.85267],[151.864353,46.868974],[152.039847,47.015012],[152.165834,47.110458],[152.234667,47.143428],[152.288927,47.142187],[152.002019,46.897189]]],[[[153.101074,47.762925],[153.053842,47.706081],[153.004129,47.713496],[152.984285,47.727914],[153.049087,47.797005],[153.079163,47.808762],[153.101074,47.762925]]],[[[154.081272,48.790304],[154.042929,48.738782],[154.000657,48.755732],[153.992286,48.772527],[154.091711,48.83211],[154.126334,48.904457],[154.198991,48.904948],[154.228447,48.892106],[154.204676,48.857199],[154.081272,48.790304]]],[[[154.810427,49.312003],[154.714825,49.267691],[154.610956,49.294046],[154.613023,49.380604],[154.824896,49.646944],[154.89962,49.630356],[154.883291,49.566381],[154.802365,49.468247],[154.829857,49.347893],[154.810427,49.312003]]],[[[155.921057,50.302201],[155.792382,50.202052],[155.607484,50.177222],[155.51643,50.145622],[155.448941,50.07777],[155.397161,50.041261],[155.288641,50.061182],[155.243062,50.094617],[155.243062,50.212801],[155.195106,50.264529],[155.218361,50.29786],[155.326778,50.293261],[155.433851,50.368941],[155.680141,50.400748],[155.772745,50.482397],[155.88478,50.684116],[156.001672,50.756954],[156.09686,50.771888],[156.122905,50.671274],[156.100581,50.559291],[156.04446,50.451753],[155.921057,50.302201]]],[[[156.405058,50.657632],[156.365474,50.633809],[156.325787,50.63908],[156.196285,50.702125],[156.167967,50.731865],[156.213132,50.784704],[156.376429,50.862115],[156.455908,50.859583],[156.487534,50.842943],[156.48309,50.751218],[156.405058,50.657632]]],[[[155.644795,50.821911],[155.553534,50.810594],[155.512813,50.837311],[155.483461,50.869608],[155.467338,50.913559],[155.56852,50.934462],[155.639627,50.910485],[155.65358,50.845372],[155.644795,50.821911]]],[[[142.761033,54.393941],[142.976214,54.140985],[142.985929,54.085691],[142.967119,54.028795],[142.926604,53.955622],[142.911412,53.878365],[142.936423,53.810928],[142.917923,53.794236],[143.095483,53.488673],[143.223641,53.296024],[143.259917,53.217269],[143.287926,53.13438],[143.32472,52.963072],[143.332678,52.700065],[143.323583,52.613585],[143.295057,52.529145],[143.264258,52.478658],[143.201006,52.442923],[143.172274,52.349363],[143.155531,52.083746],[143.190568,51.944504],[143.250616,51.847895],[143.294747,51.744335],[143.299502,51.632353],[143.320482,51.58326],[143.417737,51.520628],[143.455461,51.471484],[143.467347,51.401902],[143.472928,51.299195],[143.488741,51.277051],[143.534216,51.246304],[143.736064,50.506737],[143.816059,50.282616],[144.047983,49.895766],[144.141311,49.661465],[144.199602,49.549741],[144.239909,49.432022],[144.272052,49.311306],[144.341195,49.180513],[144.431732,49.051063],[144.606812,48.935851],[144.685567,48.871255],[144.706651,48.819553],[144.713782,48.640287],[144.672648,48.678579],[144.620971,48.81485],[144.536325,48.893553],[144.411785,48.986364],[144.283731,49.06977],[144.125498,49.208547],[144.048706,49.249191],[143.967781,49.276321],[143.81916,49.308618],[143.732343,49.312029],[143.382287,49.290687],[143.236353,49.262833],[143.104991,49.198806],[143.026857,49.105427],[142.971666,48.91779],[142.650962,48.246874],[142.574275,48.072156],[142.545852,47.884933],[142.556911,47.737913],[142.579029,47.683963],[142.670083,47.536892],[142.745427,47.452401],[142.800824,47.416176],[142.863973,47.39181],[142.905417,47.361864],[142.94035,47.322745],[143.005566,47.222699],[143.089282,47.000801],[143.177959,46.844066],[143.217646,46.79487],[143.318622,46.807376],[143.384354,46.805645],[143.447296,46.791976],[143.48564,46.75203],[143.540314,46.57509],[143.578761,46.406057],[143.580725,46.360685],[143.508584,46.23015],[143.490601,46.174598],[143.482333,46.115816],[143.463419,46.069488],[143.431587,46.028664],[143.418667,46.222037],[143.370298,46.358514],[143.352108,46.476233],[143.282345,46.558967],[143.047837,46.592609],[142.829349,46.605269],[142.795553,46.620204],[142.747391,46.67064],[142.69189,46.710844],[142.635769,46.716219],[142.577995,46.700767],[142.478776,46.644233],[142.406429,46.554678],[142.349999,46.458715],[142.304007,46.357584],[142.208612,46.088867],[142.149701,45.99926],[142.077147,45.917043],[142.015652,45.961639],[141.961599,46.013471],[141.929973,46.088298],[141.91633,46.170748],[141.830341,46.451067],[141.866514,46.694204],[142.011001,47.030308],[142.0387,47.140275],[142.016893,47.244662],[141.98413,47.347705],[141.962529,47.543791],[141.964079,47.587432],[142.015652,47.700655],[142.07601,47.808348],[142.149184,47.902141],[142.18174,48.013375],[142.135335,48.290076],[142.028675,48.477093],[141.897313,48.654705],[141.873025,48.701937],[141.866307,48.750074],[141.979582,48.972153],[142.020096,49.078477],[142.066502,49.312081],[142.10867,49.43967],[142.14226,49.569119],[142.153112,50.216728],[142.143086,50.312123],[142.071049,50.515005],[142.065985,50.63045],[142.100505,50.776488],[142.147324,50.890176],[142.207889,50.998464],[142.206752,51.222558],[142.090686,51.429419],[142.005937,51.520525],[141.872922,51.630027],[141.771843,51.690179],[141.722337,51.736351],[141.771843,51.751829],[141.80812,51.789191],[141.720993,51.846784],[141.66849,51.933368],[141.660842,52.272934],[141.682443,52.35913],[141.747555,52.454835],[141.803366,52.555604],[141.855559,52.793522],[141.873645,53.038933],[141.838816,53.138462],[141.823519,53.339484],[141.852458,53.389455],[141.964493,53.456376],[142.141949,53.495598],[142.17988,53.484023],[142.31889,53.405474],[142.370463,53.402529],[142.423999,53.410745],[142.526112,53.447461],[142.583473,53.536784],[142.509162,53.587582],[142.55257,53.652643],[142.679591,53.674373],[142.688893,53.730157],[142.642901,53.736772],[142.683002,53.815992],[142.705946,53.895729],[142.670186,53.968386],[142.466581,54.14853],[142.335013,54.280692],[142.55164,54.278961],[142.615616,54.303611],[142.666155,54.358181],[142.692717,54.41611],[142.761033,54.393941]]],[[[168.039077,54.56499],[168.081348,54.512745],[167.677342,54.697644],[167.488103,54.79495],[167.441491,54.855877],[167.51177,54.85691],[167.592489,54.797767],[167.710621,54.770146],[167.882601,54.690461],[168.039077,54.56499]]],[[[137.178635,55.100461],[137.055232,54.926777],[136.969449,54.923986],[136.902683,54.960625],[136.76512,54.946052],[136.714684,54.956129],[136.795299,55.009356],[136.9957,55.092736],[137.077556,55.091728],[137.156001,55.107825],[137.178635,55.100461]]],[[[137.940552,55.092607],[138.031193,55.053332],[138.172063,55.060076],[138.206169,55.033566],[138.096512,54.990907],[138.01662,54.900887],[137.991195,54.820685],[137.959466,54.789033],[137.870066,54.749578],[137.790174,54.69692],[137.721444,54.663253],[137.661189,54.653253],[137.52559,54.825853],[137.462649,54.873395],[137.276097,54.792366],[137.232895,54.790558],[137.275166,54.891017],[137.38441,55.0007],[137.43557,55.015996],[137.543677,55.163093],[137.57737,55.197019],[137.910477,55.110073],[137.940552,55.092607]]],[[[20.677736,54.955664],[20.77406,54.947034],[20.887542,54.909465],[20.995856,54.902696],[21.188919,54.9352],[21.222819,55.107748],[21.235738,55.264121],[21.297594,55.264456],[21.389217,55.275541],[21.447094,55.234407],[21.554685,55.195288],[21.682739,55.160354],[21.873942,55.10072],[22.072379,55.063668],[22.137853,55.059379],[22.346368,55.064236],[22.567284,55.05912],[22.627436,54.970702],[22.736576,54.928844],[22.824685,54.871276],[22.831196,54.838462],[22.709653,54.632609],[22.684435,54.562923],[22.679836,54.493005],[22.724329,54.405594],[22.766239,54.356786],[22.731822,54.35012],[22.168497,54.359886],[21.634163,54.376475],[21.14055,54.391822],[20.664713,54.406628],[20.208204,54.420761],[19.924345,54.43399],[19.644207,54.44709],[19.604364,54.459157],[19.758515,54.544836],[19.858871,54.633823],[19.944137,54.750018],[19.953232,54.830478],[19.974523,54.92117],[20.107641,54.956491],[20.396719,54.951271],[20.520329,54.994886],[20.678873,55.102632],[20.845684,55.23203],[20.899789,55.286652],[20.95777,55.2789],[20.859327,55.18366],[20.594847,54.982381],[20.677736,54.955664]]],[[[166.650324,54.839082],[166.645157,54.694078],[166.52134,54.767613],[166.463669,54.82686],[166.38171,54.8381],[166.324763,54.864558],[166.229885,54.936544],[166.119711,55.030388],[166.082297,55.076587],[166.066277,55.135705],[165.991863,55.190482],[165.751051,55.294532],[165.830426,55.306909],[165.931298,55.351454],[166.211901,55.323962],[166.275774,55.311947],[166.229988,55.242313],[166.248075,55.165419],[166.404241,55.005635],[166.479482,54.949928],[166.577357,54.907708],[166.650324,54.839082]]],[[[150.589909,59.018775],[150.511154,59.007406],[150.471777,59.034743],[150.470227,59.05407],[150.592493,59.09722],[150.666184,59.160162],[150.712692,59.122438],[150.727782,59.095205],[150.589909,59.018775]]],[[[163.635108,58.603348],[163.471397,58.509401],[163.447212,58.524671],[163.431813,58.546142],[163.427265,58.578957],[163.576713,58.640865],[163.726575,58.79853],[163.784453,58.929737],[163.766573,58.97237],[163.760888,59.015054],[164.202102,59.096186],[164.517328,59.226747],[164.572622,59.22114],[164.629259,59.112232],[164.661609,58.970768],[164.61572,58.885605],[164.27879,58.838063],[163.960049,58.743753],[163.635108,58.603348]]],[[[35.81614,65.182068],[35.848489,65.142691],[35.858411,65.07794],[35.827302,65.036496],[35.842288,65.001459],[35.778726,64.97668],[35.680024,65.057631],[35.621423,65.058768],[35.558584,65.093624],[35.528922,65.151062],[35.585766,65.167108],[35.608711,65.157108],[35.729117,65.197571],[35.81614,65.182068]]],[[[70.020667,66.50222],[69.84476,66.48974],[69.651387,66.565343],[69.469279,66.71598],[69.502766,66.751068],[69.616351,66.739027],[69.800422,66.736495],[69.917624,66.711665],[70.076684,66.695878],[70.057564,66.6272],[70.057254,66.599475],[70.110067,66.569115],[70.059218,66.517594],[70.020667,66.50222]]],[[[42.713703,66.701691],[42.675566,66.688074],[42.477335,66.735074],[42.460075,66.770343],[42.46855,66.785562],[42.547512,66.79551],[42.631434,66.782229],[42.690759,66.735307],[42.713703,66.701691]]],[[[-179.798529,68.940443],[-179.595389,68.906492],[-179.514515,68.917137],[-179.470849,68.912409],[-179.355946,68.852955],[-179.279284,68.825205],[-178.873857,68.754098],[-178.689294,68.675137],[-178.538528,68.585633],[-178.613666,68.6031],[-178.751461,68.660461],[-178.736501,68.593023],[-178.692627,68.545997],[-178.473933,68.501762],[-178.244463,68.466674],[-178.097444,68.424816],[-178.048661,68.388436],[-178.018715,68.322755],[-178.055819,68.264877],[-177.92239,68.28653],[-177.796791,68.338],[-177.861799,68.378204],[-178.284513,68.518531],[-178.373034,68.565686],[-178.249864,68.541398],[-177.683206,68.362804],[-177.527246,68.294385],[-177.593237,68.281156],[-177.639332,68.24121],[-177.589206,68.224234],[-177.520916,68.236843],[-177.407538,68.245163],[-177.297415,68.222503],[-177.171842,68.17465],[-176.907284,68.11915],[-175.345235,67.678092],[-175.309862,67.602076],[-175.265911,67.566522],[-175.239556,67.521099],[-175.232503,67.446684],[-175.374716,67.357388],[-175.155065,67.365372],[-175.122819,67.376973],[-175.065614,67.413405],[-175.002672,67.437486],[-174.918077,67.407565],[-174.849864,67.348887],[-174.869941,67.268504],[-174.930402,67.203444],[-174.938154,67.093011],[-174.885056,67.000252],[-174.828729,66.961365],[-174.783641,66.916794],[-174.771213,66.784348],[-174.870096,66.724894],[-174.924924,66.623169],[-174.864282,66.613118],[-174.674656,66.603428],[-174.612437,66.585393],[-174.503736,66.537929],[-174.477717,66.492169],[-174.453765,66.429899],[-174.418702,66.37197],[-174.394104,66.344219],[-174.36607,66.348354],[-174.256981,66.428452],[-174.206002,66.452327],[-174.084769,66.473075],[-174.017719,66.382512],[-174.065029,66.229601],[-174.025445,66.229704],[-173.994464,66.245776],[-173.955475,66.286755],[-173.899974,66.310475],[-173.832045,66.366079],[-173.773987,66.434653],[-173.84251,66.488293],[-173.920955,66.52178],[-174.101848,66.540642],[-174.196338,66.580691],[-174.231608,66.631902],[-174.139598,66.652624],[-174.06061,66.68978],[-174.005497,66.778612],[-174.018856,66.827394],[-174.041025,66.875505],[-174.086423,66.942891],[-174.154326,66.98201],[-174.283568,67.001544],[-174.341859,67.039733],[-174.430898,67.037666],[-174.518929,67.04906],[-174.554508,67.063039],[-174.550089,67.090608],[-174.447589,67.10314],[-173.884032,67.106447],[-173.679677,67.144791],[-173.586582,67.132776],[-173.494004,67.105155],[-173.157823,67.069085],[-173.167642,67.052238],[-173.224176,67.035108],[-173.323524,66.954828],[-173.343057,66.90925],[-173.347346,66.851372],[-173.258954,66.840107],[-173.175367,66.864601],[-173.21614,66.911239],[-173.228284,66.968548],[-173.193015,66.993586],[-173.146842,66.99896],[-173.058475,66.955862],[-172.962589,66.942116],[-172.640594,66.925011],[-172.549359,66.93054],[-172.520136,66.952503],[-172.582949,66.977824],[-173.001915,67.033971],[-173.007522,67.064873],[-172.621034,67.026813],[-172.447324,66.991725],[-172.273924,66.965577],[-172.031484,66.973303],[-171.795555,66.931729],[-171.569574,66.818712],[-171.360491,66.676757],[-171.149289,66.592731],[-170.926667,66.529738],[-170.555656,66.357242],[-170.509535,66.343677],[-170.473077,66.320242],[-170.542841,66.291044],[-170.604465,66.248902],[-170.483309,66.278074],[-170.361146,66.297917],[-170.301202,66.294067],[-170.246993,66.271872],[-170.21162,66.236422],[-170.191932,66.201282],[-170.243944,66.169269],[-169.888824,66.163455],[-169.7779,66.143121],[-169.729169,66.058087],[-169.831669,65.998918],[-169.891692,66.006101],[-169.949311,66.031009],[-170.00383,66.033489],[-170.159401,66.008064],[-170.401015,65.928534],[-170.540696,65.865437],[-170.56302,65.823579],[-170.541419,65.710253],[-170.561005,65.656251],[-170.666321,65.621525],[-170.896876,65.642609],[-171.001469,65.664907],[-171.119007,65.695008],[-171.232023,65.736866],[-171.376872,65.803968],[-171.421521,65.81035],[-171.451183,65.794227],[-171.401729,65.751749],[-171.303208,65.698471],[-171.134432,65.628087],[-171.054256,65.549953],[-171.105881,65.51104],[-171.169986,65.5021],[-171.216029,65.502772],[-171.363747,65.527215],[-171.466273,65.533106],[-171.790361,65.510472],[-171.90715,65.495951],[-171.947148,65.50794],[-171.957173,65.542098],[-172.131503,65.566928],[-172.2339,65.570468],[-172.282269,65.582302],[-172.322267,65.617545],[-172.435671,65.669635],[-172.607702,65.690048],[-172.719193,65.69245],[-172.783298,65.681056],[-172.556568,65.612016],[-172.353944,65.496003],[-172.392004,65.474557],[-172.417765,65.449545],[-172.305705,65.447788],[-172.232789,65.455695],[-172.21155,65.425206],[-172.269893,65.302733],[-172.30927,65.275654],[-172.66191,65.248524],[-172.573156,65.228215],[-172.482076,65.221859],[-172.378697,65.226691],[-172.286016,65.205736],[-172.223694,65.128686],[-172.213204,65.048123],[-172.304335,65.002131],[-172.398748,64.964769],[-172.592845,64.907976],[-172.792497,64.882913],[-172.897348,64.889218],[-172.999099,64.876609],[-173.066227,64.847153],[-173.085812,64.817336],[-172.998065,64.837102],[-172.896883,64.826069],[-172.801075,64.790516],[-172.811565,64.761164],[-172.902567,64.729176],[-172.924013,64.70494],[-172.88908,64.664012],[-172.900862,64.628872],[-172.854146,64.609907],[-172.746892,64.603292],[-172.616125,64.577867],[-172.487399,64.544174],[-172.436627,64.515339],[-172.393865,64.47467],[-172.378749,64.431546],[-172.401461,64.413898],[-172.694699,64.407077],[-172.739166,64.41227],[-172.755935,64.459942],[-172.791489,64.498906],[-172.903187,64.526062],[-172.949024,64.507381],[-172.915848,64.369456],[-172.960057,64.327702],[-173.009124,64.297471],[-173.15741,64.279746],[-173.27549,64.289668],[-173.375665,64.354884],[-173.375536,64.410384],[-173.309209,64.442682],[-173.309313,64.487434],[-173.327503,64.539575],[-173.395664,64.478984],[-173.474935,64.4286],[-173.60361,64.365477],[-173.665983,64.357338],[-173.729752,64.364495],[-173.89783,64.409712],[-174.001389,64.448986],[-174.204839,64.57779],[-174.318011,64.637657],[-174.570579,64.717755],[-174.83046,64.775995],[-175.036029,64.813693],[-175.145867,64.809274],[-175.255886,64.793978],[-175.395103,64.802401],[-175.442128,64.816716],[-175.483211,64.848574],[-175.520676,64.8671],[-175.715884,64.946088],[-175.85386,65.010864],[-175.859467,65.054221],[-175.830244,65.105535],[-175.85616,65.232814],[-175.922926,65.352497],[-176.093251,65.471043],[-176.547461,65.547576],[-176.922141,65.601371],[-177.056267,65.613644],[-177.175252,65.601681],[-177.488773,65.503702],[-177.698657,65.489698],[-178.310222,65.48484],[-178.412515,65.495537],[-178.504654,65.537214],[-178.525945,65.592999],[-178.499306,65.69661],[-178.502329,65.740432],[-178.526229,65.755211],[-178.558527,65.754023],[-178.67914,65.795364],[-178.791045,65.864766],[-178.879334,65.936492],[-178.939046,66.032766],[-178.858276,66.037572],[-178.746733,66.013697],[-178.730584,66.037261],[-178.69379,66.124207],[-178.61625,66.166039],[-178.58651,66.198414],[-178.53411,66.316573],[-178.526565,66.40158],[-178.615759,66.355175],[-178.752779,66.237275],[-178.820837,66.202678],[-178.86812,66.187071],[-178.915534,66.17994],[-179.026121,66.20353],[-179.105083,66.231927],[-179.106891,66.34608],[-179.143401,66.37507],[-179.17836,66.353315],[-179.192674,66.312542],[-179.293185,66.3051],[-179.340159,66.287479],[-179.316233,66.219834],[-179.327214,66.162577],[-179.42266,66.141054],[-179.616163,66.127902],[-179.68329,66.184126],[-179.740858,66.105784],[-179.783646,66.017986],[-179.789718,65.900887],[-179.728326,65.803787],[-179.640606,65.757589],[-179.449067,65.687825],[-179.365945,65.638604],[-179.344396,65.575222],[-179.352096,65.516725],[-179.451677,65.445308],[-179.519347,65.386293],[-179.635154,65.244132],[-179.704607,65.187184],[-179.999989,65.067243],[-179.999989,65.311983],[-179.999989,65.556774],[-179.999989,65.801539],[-179.999989,66.046305],[-179.999989,66.29107],[-179.999989,66.535836],[-179.999989,66.780575],[-179.999989,67.025341],[-179.999989,67.270106],[-179.999989,67.514846],[-179.999989,67.759611],[-179.999989,68.004377],[-179.999989,68.249142],[-179.999989,68.493907],[-179.999989,68.738673],[-179.999964,68.983438],[-179.798529,68.940443]]],[[[50.26518,69.185596],[50.282957,69.088858],[50.220635,69.048783],[50.164411,69.037543],[50.14095,69.09816],[50.093925,69.125548],[49.920809,69.053253],[49.839883,68.973775],[49.626253,68.859725],[49.180492,68.778438],[48.910328,68.743091],[48.667035,68.733169],[48.439039,68.804896],[48.315945,68.942407],[48.294448,68.984213],[48.278842,69.040334],[48.280289,69.09661],[48.296308,69.183891],[48.319976,69.269261],[48.41382,69.345638],[48.631378,69.43602],[48.844905,69.494725],[48.953322,69.509298],[49.22514,69.511235],[49.996256,69.309413],[50.167305,69.257065],[50.26518,69.185596]]],[[[67.344965,69.529813],[67.263936,69.442532],[67.097848,69.447183],[67.047205,69.467026],[67.025914,69.483201],[67.216084,69.575366],[67.328945,69.572136],[67.344965,69.529813]]],[[[161.467075,68.900963],[161.422426,68.899645],[161.456223,68.966023],[161.46108,68.995582],[161.364032,69.044416],[161.182544,69.081572],[161.136552,69.110252],[161.125494,69.197017],[161.164561,69.333598],[161.082809,69.405686],[161.110714,69.469817],[161.323311,69.540924],[161.409714,69.595701],[161.505212,69.639471],[161.520715,69.634019],[161.617763,69.592445],[161.609288,69.500926],[161.540352,69.436511],[161.374471,69.413696],[161.350906,69.369358],[161.37261,69.292825],[161.377571,69.194433],[161.394211,69.106428],[161.49467,69.015994],[161.516994,68.969589],[161.506762,68.927576],[161.467075,68.900963]]],[[[169.200763,69.580456],[168.915716,69.571413],[168.347998,69.664379],[168.144393,69.713316],[167.992671,69.775845],[167.821312,69.819615],[167.788859,69.836874],[167.813974,69.873048],[167.86472,69.901082],[168.059541,69.974902],[168.196276,70.008389],[168.35792,70.015675],[169.374809,69.882608],[169.420698,69.856046],[169.433617,69.832172],[169.418114,69.779204],[169.332435,69.769592],[169.299155,69.734762],[169.263395,69.628722],[169.245825,69.601127],[169.200763,69.580456]]],[[[60.450502,69.934853],[60.480681,69.885476],[60.47727,69.793725],[60.44027,69.725925],[60.327202,69.71528],[60.215891,69.687685],[60.026135,69.717037],[59.919578,69.696986],[59.812815,69.695643],[59.724655,69.706185],[59.637011,69.721068],[59.578204,69.738638],[59.581304,69.790882],[59.502653,69.866227],[59.381523,69.890437],[59.268352,69.898447],[59.144225,69.921934],[59.082523,69.910772],[59.003975,69.88328],[58.952712,69.892788],[58.680067,70.051022],[58.634179,70.088022],[58.60555,70.129208],[58.568033,70.155666],[58.473051,70.266822],[58.519974,70.318292],[58.615368,70.350822],[58.678,70.359582],[58.794272,70.432936],[59.005319,70.465208],[59.048003,70.460506],[59.088311,70.437096],[59.3099,70.361649],[59.425965,70.310954],[59.529111,70.248994],[59.636288,70.197008],[59.955855,70.108331],[60.172276,70.022858],[60.392521,69.962397],[60.450502,69.934853]]],[[[66.56093,70.541741],[66.568578,70.501485],[66.515765,70.514869],[66.448689,70.561016],[66.407658,70.615793],[66.394842,70.727311],[66.418199,70.757128],[66.440214,70.772657],[66.462848,70.769324],[66.45768,70.698786],[66.56093,70.541741]]],[[[160.718903,70.822706],[160.651311,70.805859],[160.504756,70.819709],[160.436957,70.851024],[160.440471,70.922648],[160.448532,70.934017],[160.565838,70.923785],[160.644903,70.883529],[160.718903,70.822706]]],[[[52.903366,71.364998],[52.994109,71.291256],[53.074001,71.237926],[53.141387,71.241905],[53.192547,71.215292],[53.205156,71.159739],[53.071521,71.065017],[53.048163,71.030962],[53.10573,70.999284],[53.121027,70.982024],[53.022635,70.968692],[53.004445,71.011635],[52.949668,71.053596],[52.835359,71.085842],[52.788954,71.114936],[52.738414,71.180668],[52.546591,71.250432],[52.425462,71.23927],[52.289449,71.270379],[52.249555,71.2849],[52.23984,71.325052],[52.296581,71.356859],[52.512588,71.385049],[52.617388,71.383343],[52.729629,71.355128],[52.720328,71.389803],[52.732213,71.403704],[52.776758,71.399828],[52.903366,71.364998]]],[[[178.861569,70.826427],[178.792529,70.82206],[178.648248,71.000602],[178.628301,71.047343],[178.683905,71.105686],[178.829012,71.177878],[178.891128,71.231105],[179.235086,71.324536],[179.547625,71.447681],[179.715883,71.466232],[179.886416,71.523361],[180,71.537753],[180,70.993031],[179.881351,70.975668],[179.647671,70.898929],[179.152507,70.880273],[178.861569,70.826427]]],[[[137.959879,71.507651],[137.711832,71.423238],[137.612924,71.433935],[137.511845,71.474604],[137.457791,71.483492],[137.403221,71.477317],[137.344206,71.460548],[137.265555,71.455897],[137.078693,71.502199],[137.064017,71.529898],[137.081793,71.542714],[137.129439,71.556149],[137.168196,71.557131],[137.281884,71.579921],[137.816839,71.587879],[137.857663,71.583073],[137.933731,71.542791],[137.959879,71.507651]]],[[[-178.87644,71.577027],[-178.438974,71.541163],[-178.353578,71.529174],[-178.214698,71.481632],[-178.133902,71.465457],[-178.056645,71.437604],[-177.97479,71.390552],[-177.816996,71.339987],[-177.584116,71.281696],[-177.532156,71.263092],[-177.498488,71.219142],[-177.523577,71.166871],[-177.821776,71.0676],[-178.062717,71.041943],[-178.527986,71.014787],[-179.156888,70.939856],[-179.415684,70.919005],[-179.506712,70.923423],[-179.734037,70.971663],[-179.999964,70.993031],[-179.999964,71.184234],[-179.999964,71.399725],[-179.999964,71.537753],[-179.844883,71.550982],[-179.691016,71.577957],[-179.5464,71.582427],[-179.402041,71.56664],[-179.256495,71.571704],[-179.111594,71.596199],[-178.99403,71.593201],[-178.87644,71.577027]]],[[[77.632502,72.291247],[77.145607,72.281893],[76.905931,72.297655],[76.871102,72.317033],[76.903141,72.365557],[77.149534,72.439196],[77.260432,72.486118],[77.377841,72.565261],[77.578655,72.630864],[77.748567,72.6312],[78.279078,72.553246],[78.352975,72.504309],[78.365171,72.482398],[78.154434,72.416975],[78.00726,72.392481],[77.780917,72.308558],[77.632502,72.291247]]],[[[79.501432,72.721918],[79.430635,72.710704],[78.880591,72.751632],[78.690215,72.803412],[78.633165,72.850747],[78.656832,72.892295],[79.164295,73.09435],[79.356531,73.038643],[79.412445,72.983091],[79.541326,72.91865],[79.537915,72.769357],[79.501432,72.721918]]],[[[74.66059,72.873433],[74.63837,72.86377],[74.58814,72.881133],[74.434764,72.907643],[74.18062,72.975365],[74.100211,73.021538],[74.142379,73.074351],[74.1985,73.109078],[74.408823,73.130472],[74.599922,73.12179],[74.725289,73.108148],[74.961554,73.062517],[74.742549,73.0327],[74.647258,72.969035],[74.660177,72.929296],[74.697177,72.907695],[74.66059,72.873433]]],[[[120.261321,73.089854],[120.0079,73.044896],[119.792099,73.045413],[119.640377,73.124322],[119.76192,73.155483],[119.964492,73.167679],[120.07849,73.156724],[120.236827,73.107269],[120.261321,73.089854]]],[[[55.319859,73.308291],[55.787324,73.268603],[56.13769,73.256149],[56.350494,73.225557],[56.429559,73.201165],[56.397519,73.139154],[56.334681,73.113677],[56.188953,73.03301],[56.166939,72.983194],[56.19288,72.904956],[56.170556,72.848112],[56.12167,72.80659],[56.08374,72.789382],[55.819673,72.789511],[55.723452,72.766411],[55.718491,72.721556],[55.701024,72.67174],[55.616378,72.599083],[55.441298,72.575415],[55.403368,72.549086],[55.416907,72.501311],[55.355929,72.465086],[55.359546,72.408707],[55.390449,72.377856],[55.39913,72.313623],[55.51809,72.220657],[55.494939,72.182339],[55.403368,72.106865],[55.375049,72.014881],[55.297845,71.935351],[55.471064,71.869257],[55.546718,71.783371],[55.613691,71.689888],[55.819363,71.507574],[56.043122,71.34562],[56.454363,71.107365],[56.894853,70.926989],[57.065592,70.876036],[57.483654,70.792268],[57.556415,70.765836],[57.625351,70.72881],[57.447171,70.66101],[57.263616,70.636051],[57.246976,70.605148],[57.145897,70.589102],[56.648873,70.646541],[56.621692,70.655378],[56.568672,70.697442],[56.51007,70.72881],[56.385737,70.734132],[56.26006,70.714728],[56.334784,70.676694],[56.417156,70.664938],[56.561333,70.593572],[56.499735,70.566391],[56.434623,70.56298],[56.142444,70.657858],[56.114746,70.646127],[56.087151,70.618377],[55.94163,70.649254],[55.907213,70.62631],[55.796832,70.615587],[55.706709,70.64189],[55.706502,70.675221],[55.687278,70.692171],[55.23697,70.666023],[55.051658,70.666746],[54.86707,70.678115],[54.645171,70.741832],[54.608171,70.713255],[54.601143,70.680079],[54.517324,70.693308],[54.332632,70.744674],[54.19941,70.76488],[53.722334,70.814463],[53.383646,70.873555],[53.467776,70.900608],[53.613606,70.914664],[53.615673,70.950838],[53.592626,71.000679],[53.587768,71.052304],[53.67045,71.086927],[53.857002,71.070391],[53.834265,71.126718],[53.922321,71.137622],[54.093991,71.105221],[54.155692,71.125504],[53.886148,71.196275],[53.590869,71.296656],[53.622185,71.332752],[53.515214,71.342545],[53.410001,71.340142],[53.319051,71.399156],[53.332487,71.477239],[53.411655,71.53013],[53.363906,71.541628],[52.908947,71.495016],[52.678676,71.505662],[52.418847,71.536874],[52.179999,71.49021],[51.937843,71.474707],[51.812579,71.491295],[51.691553,71.525144],[51.590371,71.571136],[51.511306,71.648108],[51.438649,71.776808],[51.428623,71.825539],[51.44361,71.934395],[51.482264,71.979793],[51.582516,72.071208],[51.653106,72.099372],[51.805448,72.14216],[51.885443,72.153219],[52.068688,72.131153],[52.252036,72.129758],[52.332341,72.153968],[52.406755,72.19673],[52.461945,72.252334],[52.586072,72.284012],[52.622039,72.300962],[52.661933,72.336877],[52.705755,72.390982],[52.713816,72.436974],[52.74875,72.482966],[52.863678,72.549836],[52.823267,72.59128],[52.83908,72.619289],[52.916595,72.668898],[52.683121,72.682334],[52.604986,72.704038],[52.528505,72.737369],[52.550622,72.76853],[52.579251,72.791371],[52.812208,72.875242],[52.913184,72.899943],[53.024185,72.913586],[53.134979,72.913224],[53.253525,72.903767],[53.369797,72.916738],[53.247324,72.973169],[53.237092,73.011177],[53.188929,73.104014],[53.197921,73.147577],[53.251148,73.182975],[53.357601,73.224575],[53.512217,73.238372],[53.633657,73.260231],[53.753236,73.293253],[53.865581,73.298989],[54.090993,73.276458],[54.202304,73.281367],[54.327671,73.299454],[54.676074,73.370044],[54.803921,73.387666],[54.940657,73.383273],[55.121421,73.356815],[55.319859,73.308291]]],[[[70.67396,73.095022],[70.380335,73.0481],[70.298376,73.044482],[70.118645,73.056316],[70.040717,73.037144],[69.920105,73.084506],[69.930337,73.126596],[69.98563,73.169229],[70.018703,73.224316],[69.995862,73.359399],[70.149651,73.444742],[70.349949,73.477634],[70.940197,73.514428],[71.02319,73.504222],[71.141219,73.477996],[71.231652,73.447765],[71.351232,73.372214],[71.444869,73.342087],[71.589563,73.283176],[71.630491,73.224781],[71.62615,73.173983],[71.355676,73.16246],[70.886764,73.11962],[70.67396,73.095022]]],[[[76.75607,73.445802],[76.659435,73.439497],[76.234448,73.476239],[76.083139,73.523471],[76.13957,73.554322],[76.250674,73.555252],[76.75607,73.445802]]],[[[75.503743,73.456654],[75.344373,73.432262],[75.374965,73.477376],[75.569786,73.540628],[75.930177,73.573649],[76.039421,73.559903],[76.051513,73.549258],[75.901032,73.48151],[75.827134,73.459134],[75.503743,73.456654]]],[[[142.184841,73.895903],[142.435058,73.851539],[142.63918,73.803092],[143.343737,73.56874],[143.410709,73.520836],[143.463936,73.458876],[143.491324,73.246434],[143.45143,73.231293],[143.193255,73.220751],[142.841545,73.244832],[142.586884,73.253307],[142.342144,73.252893],[142.126343,73.281677],[141.59666,73.310823],[141.182732,73.389216],[140.754024,73.44606],[140.662763,73.452003],[140.392496,73.435363],[140.026936,73.361414],[139.925134,73.355213],[139.785504,73.355213],[139.685562,73.425751],[139.92007,73.448566],[140.155197,73.457532],[140.38061,73.483009],[140.593517,73.564554],[140.69749,73.629149],[140.883835,73.777564],[140.983571,73.831566],[141.084753,73.865879],[141.189966,73.876473],[141.311923,73.871874],[141.681926,73.904197],[141.931833,73.91492],[142.184841,73.895903]]],[[[124.543024,73.850118],[124.481735,73.847896],[124.366394,73.874613],[124.335801,73.910321],[124.336525,73.928356],[124.429646,73.943032],[124.547675,73.933834],[124.636971,73.900399],[124.652888,73.888048],[124.543024,73.850118]]],[[[83.54904,74.071758],[83.495813,74.048426],[83.450028,74.051656],[83.410651,74.039564],[83.158986,74.075324],[82.817819,74.091602],[82.902878,74.128912],[83.149788,74.151598],[83.513487,74.122349],[83.61839,74.089431],[83.54904,74.071758]]],[[[82.709918,74.090878],[82.612767,74.056436],[82.478098,74.075789],[82.381566,74.099198],[82.329373,74.131083],[82.382393,74.149273],[82.52564,74.161417],[82.61101,74.148549],[82.688938,74.111239],[82.709918,74.090878]]],[[[136.197403,73.913628],[136.121645,73.885025],[136.051469,73.929079],[135.714538,74.059511],[135.633406,74.121419],[135.448611,74.17971],[135.402413,74.201724],[135.387013,74.253349],[135.628342,74.21994],[136.036792,74.09031],[136.259208,73.984942],[136.197403,73.913628]]],[[[141.010236,73.999463],[140.507217,73.918641],[140.409445,73.92169],[140.183206,74.004579],[140.101557,74.184258],[140.193541,74.236709],[140.300305,74.257225],[140.407378,74.266475],[140.849212,74.273761],[140.944297,74.264666],[141.038554,74.242704],[141.079482,74.209321],[141.097465,74.167825],[141.046926,74.050416],[141.010236,73.999463]]],[[[84.758992,74.459435],[84.710416,74.399826],[84.428883,74.430341],[84.389402,74.454422],[84.540297,74.490441],[84.679824,74.512351],[84.872887,74.515504],[84.758992,74.459435]]],[[[113.387219,74.40042],[113.353112,74.352955],[113.299162,74.317144],[113.258855,74.272728],[113.190228,74.239319],[112.977631,74.196815],[112.811337,74.102919],[112.782398,74.095064],[112.195767,74.146224],[112.105023,74.163225],[111.912167,74.219243],[111.642933,74.272934],[111.503406,74.353059],[111.570069,74.368329],[111.637455,74.374324],[111.879817,74.363833],[111.94927,74.388793],[111.98286,74.456282],[111.989371,74.496228],[112.007665,74.526769],[112.084456,74.54899],[112.951793,74.479589],[113.286243,74.441038],[113.387219,74.40042]]],[[[86.65314,74.981315],[86.737166,74.96297],[87.000612,74.99196],[87.052186,74.982555],[87.124326,74.939871],[87.011775,74.861891],[86.927129,74.830782],[86.692001,74.8483],[86.39052,74.850858],[86.258539,74.893517],[86.330679,74.93894],[86.504519,74.965967],[86.605494,74.992839],[86.65314,74.981315]]],[[[82.17238,75.419376],[82.20876,75.386975],[82.221576,75.350517],[82.179305,75.338968],[82.050114,75.340957],[81.97849,75.247139],[81.905109,75.262797],[81.860564,75.316488],[81.69768,75.280522],[81.654789,75.288893],[81.579341,75.330958],[81.532109,75.339562],[81.500586,75.367906],[81.71215,75.451416],[81.842168,75.407051],[81.926607,75.409971],[81.90976,75.459994],[81.912758,75.497718],[82.021898,75.513479],[82.165662,75.515649],[82.17238,75.419376]]],[[[146.795206,75.370749],[147.060306,75.364289],[147.443538,75.438005],[147.496971,75.440512],[148.432418,75.413511],[148.508899,75.38744],[148.518821,75.336487],[148.489159,75.309357],[148.475,75.272408],[148.590135,75.23639],[148.892132,75.228122],[149.083231,75.262073],[149.645367,75.244581],[150.103944,75.219233],[150.280678,75.163991],[150.417207,75.134303],[150.530585,75.099861],[150.612854,75.12017],[150.690368,75.15531],[150.756928,75.162389],[150.82235,75.156524],[150.64634,74.944573],[150.580297,74.918942],[150.331217,74.866774],[149.838121,74.795332],[149.596895,74.772594],[149.050158,74.772439],[148.296923,74.800447],[148.092387,74.825691],[147.971878,74.857343],[147.740884,74.931964],[147.626886,74.958939],[147.256986,74.984261],[147.144021,74.99842],[146.924913,75.062499],[146.703325,75.114227],[146.148527,75.198304],[146.186147,75.295559],[146.257564,75.393745],[146.342933,75.480923],[146.438535,75.558179],[146.537443,75.581795],[146.75097,75.510456],[146.748283,75.428652],[146.795206,75.370749]]],[[[135.948632,75.409558],[135.745957,75.381962],[135.451919,75.389559],[135.473106,75.463249],[135.523439,75.495831],[135.592685,75.576472],[135.561266,75.636469],[135.578422,75.709979],[135.613873,75.766332],[135.698622,75.845242],[135.788229,75.798474],[135.849207,75.729228],[135.904811,75.694372],[136.12733,75.625565],[136.168981,75.605566],[135.983359,75.521902],[135.965169,75.486142],[136.020566,75.438393],[135.948632,75.409558]]],[[[152.885893,76.121711],[152.786364,76.08577],[152.558575,76.143621],[152.642807,76.174782],[152.799387,76.194833],[152.835044,76.185169],[152.863776,76.163413],[152.885893,76.121711]]],[[[140.048744,75.828964],[140.152097,75.809792],[140.274467,75.822401],[140.389085,75.795865],[140.496262,75.689799],[140.546698,75.663186],[140.602095,75.643962],[140.656769,75.634143],[140.815932,75.630733],[140.889209,75.652023],[140.944193,75.70047],[140.940369,75.749537],[140.926623,75.79894],[140.925796,75.866842],[140.950291,75.927355],[140.985328,75.964511],[141.032663,75.988954],[141.299314,76.063781],[141.485452,76.137162],[141.742284,76.108068],[142.001493,76.043576],[142.46038,75.90361],[142.669566,75.863432],[142.926811,75.826896],[143.185193,75.813616],[143.31118,75.822297],[143.559951,75.860383],[143.685835,75.86369],[145.255248,75.585619],[145.309715,75.56407],[145.359944,75.53048],[145.023427,75.489759],[144.803182,75.416069],[144.726805,75.365581],[144.814241,75.324524],[144.883488,75.268946],[144.407754,75.10229],[144.216035,75.059191],[144.019768,75.04467],[143.62589,75.083996],[143.396137,75.082859],[143.170311,75.116914],[142.922057,75.21745],[142.820151,75.267809],[142.729511,75.337624],[142.699642,75.448883],[142.734471,75.544588],[142.86759,75.571796],[142.986032,75.633265],[143.002465,75.659878],[142.941797,75.71326],[142.551537,75.720908],[142.307934,75.691711],[142.086242,75.660653],[142.151045,75.457565],[142.198794,75.392659],[142.264733,75.346151],[142.616753,75.133244],[142.696954,75.103065],[142.929705,75.062395],[143.127936,74.970308],[142.77819,74.867782],[142.626054,74.837396],[142.472782,74.820395],[142.378421,74.828559],[142.287367,74.849902],[142.184221,74.899589],[142.099988,74.950981],[141.987334,74.991237],[141.748382,74.982581],[141.529997,74.947157],[141.310476,74.923179],[140.660696,74.881812],[140.463912,74.856051],[140.267852,74.846905],[140.01102,74.894757],[139.758219,74.963745],[139.681221,74.964081],[139.605877,74.945607],[139.547999,74.904059],[139.512343,74.83781],[139.430074,74.749236],[139.325584,74.686837],[139.215306,74.659681],[139.099138,74.656554],[138.981729,74.673659],[138.865664,74.700919],[138.092274,74.79745],[138.001324,74.826983],[137.915024,74.870831],[137.682997,75.008548],[137.568068,75.040588],[137.446939,75.054179],[137.218012,75.123735],[137.006242,75.23502],[136.962317,75.270341],[136.947641,75.325532],[136.982471,75.365323],[137.166026,75.34659],[137.289739,75.348631],[137.215222,75.554407],[137.268862,75.749433],[137.358469,75.781628],[137.706561,75.759588],[137.593597,75.823382],[137.501199,75.909682],[137.560524,75.955209],[137.625429,75.988179],[137.774361,76.01567],[137.977036,76.027763],[138.038634,76.047245],[138.095995,76.080499],[138.207616,76.114941],[138.430651,76.130082],[138.813987,76.19969],[138.919511,76.196745],[139.017592,76.160106],[139.109163,76.108326],[139.211379,76.080731],[139.528569,76.013448],[139.743336,75.95309],[140.048744,75.828964]]],[[[96.532434,76.278135],[96.613979,76.263795],[96.589588,76.221239],[96.486752,76.233719],[96.350739,76.212144],[96.353427,76.177469],[96.300613,76.121711],[96.10879,76.155455],[95.844517,76.160235],[95.678636,76.193644],[95.311113,76.214728],[95.322068,76.261624],[95.379843,76.289039],[95.594403,76.24961],[95.786226,76.293896],[96.150958,76.271882],[96.270744,76.305369],[96.532434,76.278135]]],[[[96.853861,76.199173],[96.797844,76.188425],[96.754436,76.195763],[96.739346,76.206951],[96.740276,76.257878],[96.83288,76.324179],[96.835258,76.344849],[96.877942,76.355236],[96.990184,76.343428],[97.045271,76.315394],[97.053022,76.302578],[96.974267,76.236536],[96.853861,76.199173]]],[[[112.478024,76.620879],[112.632536,76.553002],[112.660855,76.509594],[112.614139,76.499259],[112.586544,76.48298],[112.574865,76.452388],[112.531664,76.450063],[112.394825,76.483807],[112.296846,76.537964],[112.153806,76.549333],[112.002704,76.602999],[111.968908,76.626176],[112.011179,76.632842],[112.281447,76.618347],[112.394101,76.643798],[112.478024,76.620879]]],[[[97.58839,76.599356],[97.535267,76.584421],[97.430363,76.590726],[97.341687,76.628837],[97.310371,76.689583],[97.381684,76.706688],[97.58839,76.599356]]],[[[149.150204,76.659921],[148.398622,76.648242],[148.448128,76.676974],[148.719636,76.746582],[149.406416,76.782084],[149.268336,76.747202],[149.204774,76.677025],[149.150204,76.659921]]],[[[67.765301,76.237595],[67.365222,76.161269],[67.126993,76.108171],[66.893106,76.072282],[66.657461,76.047038],[66.282394,75.983683],[65.619179,75.904618],[65.20153,75.839454],[64.744503,75.788242],[64.262569,75.719694],[63.779291,75.672591],[63.659505,75.668767],[63.316683,75.603086],[63.046002,75.575749],[62.066114,75.427748],[61.616219,75.319641],[61.486511,75.31083],[61.355976,75.314835],[61.248799,75.280987],[61.147307,75.222566],[60.93564,75.163681],[60.829187,75.110816],[60.719219,75.068597],[60.655347,75.055031],[60.533804,75.059269],[60.475616,75.054747],[60.276869,75.007567],[60.241109,74.970773],[60.454843,74.946149],[60.501351,74.904627],[60.439133,74.875327],[60.300743,74.837034],[60.222402,74.796572],[60.080085,74.755851],[59.982313,74.744637],[59.747289,74.745877],[59.73468,74.695441],[59.771473,74.664435],[59.752767,74.636995],[59.674012,74.610175],[59.59598,74.613741],[59.240136,74.692961],[59.182052,74.665779],[59.157041,74.610847],[59.146085,74.551884],[59.101023,74.50752],[59.040459,74.485531],[58.928217,74.46269],[58.53465,74.498916],[58.502197,74.464189],[58.562038,74.421814],[58.645754,74.328022],[58.665081,74.289264],[58.617849,74.227408],[58.441425,74.128861],[57.767358,74.013829],[57.778417,73.973909],[57.853451,73.897867],[57.872261,73.850428],[57.844873,73.805082],[57.755989,73.769193],[57.657391,73.768159],[57.60375,73.775497],[57.448514,73.825623],[57.313122,73.838026],[57.290901,73.814539],[57.464224,73.746042],[57.542566,73.658192],[57.45978,73.610288],[57.134322,73.504403],[56.963893,73.36653],[56.634197,73.304311],[56.430385,73.297232],[56.228331,73.31413],[56.034544,73.345911],[55.549199,73.356815],[55.280171,73.392058],[55.006803,73.453837],[54.768678,73.449419],[54.565796,73.418516],[54.299869,73.350975],[54.131508,73.481019],[54.204578,73.542023],[53.838709,73.69713],[53.762848,73.766144],[53.851318,73.80056],[53.963456,73.822316],[54.173986,73.885749],[54.386376,73.935642],[54.605691,73.9513],[54.642691,73.959594],[54.733435,74.033983],[54.831206,74.095736],[54.920297,74.129093],[55.022823,74.186635],[55.340943,74.419644],[55.41639,74.436129],[56.078366,74.481294],[56.13707,74.496073],[55.947417,74.542169],[55.75177,74.541187],[55.661543,74.556095],[55.610384,74.590538],[55.582272,74.627693],[55.659683,74.656322],[55.913621,74.796081],[56.217892,74.897496],[56.498702,74.957079],[56.428525,74.972943],[56.340055,75.013458],[55.99806,75.003381],[55.863185,75.058726],[55.821224,75.090637],[55.810061,75.124924],[55.920649,75.168358],[56.035577,75.194222],[56.162185,75.186574],[56.288689,75.164301],[56.389044,75.138205],[56.485266,75.096088],[56.570325,75.097742],[56.87625,75.2444],[56.829327,75.277731],[56.809484,75.328426],[56.844417,75.351422],[56.989421,75.375089],[57.087503,75.383823],[57.301753,75.373229],[57.606851,75.341241],[57.631552,75.356434],[57.70824,75.454516],[57.783378,75.506709],[58.093643,75.592544],[58.072559,75.618976],[58.058296,75.663082],[58.418378,75.719771],[58.652782,75.776822],[58.881295,75.854802],[58.994673,75.871752],[59.110429,75.873715],[59.34659,75.907047],[59.781912,75.945856],[60.03616,75.983838],[60.118222,76.066572],[60.279246,76.096234],[60.606151,76.108636],[60.730588,76.104037],[60.801178,76.068794],[60.942151,76.071274],[60.997755,76.089258],[61.053876,76.11985],[61.036926,76.169046],[61.034342,76.232944],[61.156919,76.273536],[61.20167,76.282011],[61.5694,76.298496],[61.787061,76.291003],[62.237266,76.2416],[62.47105,76.230489],[62.782039,76.245217],[62.971485,76.236691],[63.52618,76.309503],[64.463487,76.378181],[64.707606,76.426033],[64.949969,76.484324],[65.072855,76.496726],[65.197189,76.499672],[65.30974,76.517914],[65.528435,76.567833],[65.636955,76.578659],[65.755191,76.579305],[65.862885,76.613308],[65.958899,76.687955],[66.062976,76.746117],[66.345232,76.821048],[66.82882,76.923832],[67.263729,76.963778],[67.534927,77.007755],[67.651819,77.011579],[68.017275,76.99065],[68.485774,76.933702],[68.699094,76.870657],[68.873347,76.789603],[68.911691,76.760535],[68.941663,76.70767],[68.890503,76.659714],[68.858051,76.610518],[68.899805,76.572949],[68.558534,76.449391],[68.222327,76.313482],[68.16538,76.284853],[67.765301,76.237595]]],[[[96.28542,77.026642],[96.253484,77.00729],[96.209869,76.992148],[96.091427,77.002535],[95.854646,76.97494],[95.765866,76.99065],[95.680806,77.021346],[95.36403,77.011527],[95.270289,77.018865],[95.420667,77.056486],[95.854129,77.097568],[96.528403,77.20552],[96.561889,77.154051],[96.561269,77.129608],[96.424327,77.071213],[96.28542,77.026642]]],[[[89.514257,77.188829],[89.29949,77.183971],[89.179291,77.209913],[89.14167,77.226811],[89.200478,77.271976],[89.281507,77.301483],[89.616267,77.311044],[89.679622,77.280322],[89.665773,77.25451],[89.514257,77.188829]]],[[[107.414767,77.242676],[107.302216,77.241487],[107.269556,77.289029],[107.366398,77.346649],[107.48639,77.347114],[107.593671,77.330009],[107.629327,77.319674],[107.664571,77.299804],[107.679454,77.268256],[107.414767,77.242676]]],[[[104.814305,77.652108],[104.965201,77.594747],[105.308952,77.54922],[105.710271,77.525242],[105.89455,77.488862],[105.983433,77.447624],[106.059604,77.390522],[105.734146,77.352023],[105.384607,77.237818],[104.911871,77.174721],[104.323586,77.132657],[104.202456,77.101806],[105.320218,77.092349],[105.645883,77.100669],[105.712028,77.00145],[105.822203,76.997523],[106.145387,77.045323],[106.338657,77.047856],[106.705043,77.013749],[106.783694,77.031784],[106.941617,77.034394],[107.278858,76.99096],[107.429753,76.926571],[107.190181,76.822004],[106.940894,76.730485],[106.638794,76.573388],[106.545466,76.586256],[106.384649,76.589434],[106.413588,76.512255],[106.683235,76.51471],[106.825345,76.480087],[107.157728,76.524063],[107.62416,76.510111],[107.722138,76.522306],[107.902282,76.569694],[107.949928,76.660644],[108.027959,76.71847],[108.181645,76.737849],[108.352074,76.719555],[108.638361,76.720124],[109.369376,76.749217],[109.981122,76.711855],[110.471428,76.758416],[111.114903,76.723069],[111.392509,76.686689],[111.600558,76.622326],[111.786076,76.603542],[111.938728,76.553441],[112.093964,76.480345],[112.01676,76.420555],[111.942656,76.380454],[112.142747,76.423966],[112.297053,76.434663],[112.413221,76.408308],[112.619514,76.383555],[112.684213,76.218862],[112.742607,76.186926],[112.798418,76.129617],[112.721833,76.077191],[112.656204,76.053575],[112.818985,76.058614],[113.046671,76.114114],[113.094007,76.132924],[113.150334,76.174498],[113.065998,76.215245],[112.987967,76.239739],[113.086049,76.258085],[113.272601,76.251651],[113.365515,76.178839],[113.427733,76.112099],[113.563849,75.891647],[113.857268,75.921283],[113.871014,75.85599],[113.748747,75.704785],[113.619866,75.592699],[113.56757,75.568411],[113.485921,75.563967],[113.517133,75.621896],[113.469074,75.656674],[113.39156,75.677862],[113.126356,75.698687],[112.629229,75.835423],[112.496731,75.849892],[112.466138,75.843665],[112.453012,75.830152],[112.729585,75.737651],[112.955721,75.571925],[113.161496,75.620501],[113.242938,75.611406],[113.356213,75.534253],[113.558888,75.502058],[113.726216,75.450615],[113.613562,75.292976],[112.924922,75.01506],[112.191943,74.853157],[111.868242,74.740038],[111.298974,74.658441],[110.892797,74.548111],[110.373553,74.466049],[110.225861,74.378664],[109.840355,74.32195],[109.8664,74.293088],[109.911359,74.261307],[109.86392,74.208882],[109.81028,74.169168],[109.510866,74.088837],[109.075027,74.032329],[108.199525,73.694107],[107.765443,73.625015],[107.271106,73.621036],[107.16703,73.58941],[106.794236,73.376684],[106.679411,73.330666],[106.188692,73.308006],[105.677199,72.959268],[105.392771,72.841032],[105.143898,72.777057],[105.402693,72.78995],[105.708204,72.836666],[106.066735,72.949863],[106.159546,73.002004],[106.208846,73.060554],[106.314989,73.106391],[106.477977,73.139412],[107.108739,73.177291],[107.368775,73.163131],[107.750354,73.173157],[108.001294,73.235608],[108.150949,73.257906],[108.285411,73.265864],[108.351454,73.310228],[108.57542,73.319065],[109.08991,73.378415],[109.165564,73.399603],[109.331032,73.487453],[109.637164,73.454018],[109.855238,73.472467],[110.428743,73.628891],[110.773322,73.689146],[110.868199,73.730694],[110.79916,73.759762],[110.722369,73.779941],[110.388229,73.726043],[110.091193,73.708524],[109.752712,73.72258],[109.70672,73.743768],[109.665586,73.80025],[109.774106,73.881227],[109.869087,73.93063],[110.083855,73.994399],[110.261415,74.017446],[110.920083,73.947916],[111.056198,73.939363],[111.130819,74.052845],[111.341349,74.047367],[111.550638,74.028505],[111.459998,74.004811],[111.228074,73.96856],[111.299491,73.884844],[111.400363,73.827742],[111.80375,73.745266],[112.147295,73.708938],[112.399992,73.711108],[112.79542,73.746093],[112.855985,73.77113],[112.939701,73.835623],[112.835935,73.962049],[112.934947,73.945693],[113.032822,73.913887],[113.181547,73.83738],[113.326861,73.707413],[113.416261,73.647598],[113.364481,73.58277],[113.156949,73.459573],[113.276941,73.39149],[113.490882,73.346118],[113.487574,73.145122],[113.474655,73.047867],[113.369339,72.941905],[113.247382,72.897204],[113.127803,72.830671],[113.158189,72.76946],[113.186094,72.730186],[113.312185,72.657374],[113.664515,72.634533],[113.711954,72.65417],[113.630098,72.677089],[113.391456,72.711014],[113.298129,72.738868],[113.21555,72.805866],[113.311565,72.878343],[113.417501,72.932189],[113.542765,73.054353],[113.581419,73.142254],[113.558888,73.232636],[113.639193,73.273564],[113.76518,73.317954],[113.829259,73.326584],[113.886206,73.345782],[113.795153,73.367434],[113.711333,73.378545],[113.539458,73.433658],[113.510312,73.504971],[113.856958,73.533393],[114.060563,73.584656],[114.815969,73.607187],[115.337694,73.702582],[116.495453,73.676072],[117.308633,73.599151],[118.450166,73.589772],[118.870915,73.537889],[118.911223,73.518355],[118.936441,73.4812],[118.754436,73.464508],[118.45709,73.464405],[118.376578,73.367227],[118.430219,73.246537],[118.960315,73.117294],[119.4253,73.063964],[119.750448,72.979112],[119.921704,72.97136],[120.597942,72.981127],[120.997194,72.936737],[121.354278,72.970843],[121.747845,72.969655],[121.886028,72.96087],[122.029792,72.897204],[122.260166,72.880565],[122.537461,72.877774],[122.692077,72.890797],[122.751919,72.906506],[122.730835,72.931311],[122.502011,72.970637],[122.526816,73.01668],[122.615183,73.027946],[122.999345,72.964642],[123.160369,72.954875],[123.301136,73.001798],[123.404592,73.085643],[123.461643,73.144166],[123.521897,73.172898],[123.572437,73.177342],[123.622253,73.193259],[123.500917,73.261627],[123.383921,73.347306],[123.355293,73.402497],[123.322633,73.430815],[123.305063,73.532902],[123.416167,73.636849],[123.491098,73.666357],[123.796816,73.626772],[123.933862,73.689301],[124.019025,73.712297],[124.388098,73.754827],[124.541267,73.751261],[124.796238,73.711754],[125.617067,73.520629],[125.598567,73.447403],[125.79442,73.468436],[125.887851,73.498098],[126.107476,73.517503],[126.254444,73.548198],[126.295992,73.536649],[126.344981,73.506289],[126.308911,73.463682],[126.257441,73.419782],[126.292478,73.394177],[126.335472,73.388751],[126.552513,73.334904],[126.838491,73.4342],[126.955176,73.528225],[127.031347,73.547449],[127.740348,73.481562],[127.955115,73.445543],[127.99687,73.425648],[128.025705,73.390766],[128.141667,73.352371],[128.2814,73.330589],[128.26414,73.300746],[128.257836,73.267466],[128.587015,73.262402],[128.730468,73.233411],[128.888702,73.19021],[128.871648,73.13936],[128.913403,73.110602],[129.059234,73.107528],[129.100575,73.112359],[129.053756,73.045413],[128.853562,72.9726],[128.735223,72.943274],[128.599004,72.895189],[128.674038,72.885887],[129.017273,72.872451],[129.229043,72.775739],[129.250437,72.705175],[129.117628,72.67696],[128.815321,72.585906],[128.63342,72.550146],[128.508466,72.547303],[128.418239,72.535159],[128.549394,72.495834],[129.116595,72.485757],[129.281339,72.437698],[129.411667,72.315483],[129.410634,72.166293],[129.28351,72.092034],[128.9349,72.079477],[128.475187,72.245565],[128.196961,72.309618],[127.803393,72.434029],[127.726085,72.413203],[127.841427,72.308248],[128.026532,72.249983],[128.358811,72.088313],[128.911439,71.75531],[129.040114,71.782415],[129.116595,71.824608],[129.154215,71.878662],[129.121556,71.953231],[129.210232,71.916954],[129.291778,71.850188],[129.460863,71.739291],[129.23421,71.744846],[128.94906,71.707587],[128.843226,71.663481],[128.922601,71.601754],[129.134268,71.592891],[129.224495,71.50884],[129.38986,71.404892],[129.76193,71.119535],[130.025997,71.065378],[130.281278,70.947298],[130.537076,70.892521],[130.668438,70.888309],[130.757115,70.962336],[130.831942,70.935877],[130.898088,70.803586],[131.021595,70.746095],[131.1574,70.742194],[131.268298,70.765552],[131.432319,70.828287],[131.562027,70.901047],[131.769043,71.101423],[131.906399,71.202657],[132.035383,71.244024],[131.990838,71.29322],[132.003654,71.350219],[132.098842,71.484009],[132.227619,71.642759],[132.325804,71.726217],[132.562276,71.895302],[132.65395,71.925972],[132.715858,71.871479],[132.768568,71.798719],[132.803605,71.767558],[132.839262,71.755155],[133.13082,71.606689],[133.426202,71.490985],[133.688925,71.434219],[134.102854,71.378977],[134.702714,71.386806],[134.813921,71.4606],[135.022384,71.515015],[135.359314,71.543489],[135.559199,71.610332],[135.88476,71.630563],[136.090329,71.619582],[136.406176,71.570774],[137.115796,71.415693],[137.315474,71.359443],[137.417483,71.299033],[137.650544,71.20816],[137.797822,71.163925],[137.939622,71.133385],[137.991712,71.142738],[137.973728,71.168628],[137.902002,71.194053],[137.844021,71.226815],[138.012692,71.260819],[138.032536,71.28583],[138.090621,71.307431],[138.314069,71.325517],[138.097132,71.35859],[138.022201,71.363448],[137.918331,71.384067],[137.927323,71.429775],[137.995743,71.463545],[138.048349,71.525996],[138.118422,71.566149],[138.234178,71.596354],[138.3181,71.602813],[138.525219,71.562764],[138.670017,71.634801],[138.780191,71.629013],[139.00488,71.556046],[139.209415,71.444787],[139.32021,71.444735],[139.632129,71.48928],[139.984148,71.491502],[139.938776,71.557648],[139.69507,71.70043],[139.722976,71.884941],[139.55234,71.926721],[139.359277,71.951371],[139.64019,71.998345],[139.847102,72.148594],[140.014121,72.162107],[140.187754,72.191304],[140.134423,72.209598],[139.617039,72.225669],[139.505315,72.207686],[139.430487,72.163477],[139.176342,72.163477],[139.145026,72.264427],[139.140789,72.329746],[139.473585,72.466481],[139.601226,72.496092],[140.45058,72.493095],[140.705035,72.518933],[141.079275,72.586939],[140.983261,72.630012],[140.972822,72.717009],[140.652325,72.842815],[140.675992,72.871625],[140.708135,72.890021],[140.808181,72.890952],[141.309752,72.857724],[141.518318,72.788684],[142.061438,72.720781],[143.515819,72.69825],[143.680977,72.673213],[144.303885,72.643008],[144.568675,72.609935],[145.199334,72.570196],[145.485725,72.542084],[145.714135,72.497384],[146.083311,72.471391],[146.252913,72.442245],[146.234826,72.349693],[145.467121,72.362043],[145.212873,72.392687],[144.89744,72.396253],[144.776414,72.382275],[144.587588,72.305509],[144.360936,72.265357],[144.169216,72.258794],[144.294893,72.192648],[144.470696,72.174768],[145.039137,72.259879],[146.594184,72.30246],[146.831792,72.295432],[146.807091,72.236573],[146.599248,72.123557],[146.401638,72.0355],[146.113283,71.944989],[146.0059,71.94548],[146.230279,72.137509],[146.137365,72.146501],[146.051478,72.142263],[145.799401,72.221871],[145.758576,72.225876],[145.70969,72.206342],[145.710104,72.17761],[145.664112,72.066971],[145.756716,72.020669],[145.756716,71.941294],[145.407177,71.890134],[145.271164,71.89463],[145.125747,71.927135],[145.063942,71.926049],[145.046888,71.901038],[145.077791,71.854632],[145.07376,71.830861],[145.017846,71.79368],[144.989631,71.753347],[145.075621,71.70738],[145.188585,71.695779],[145.804775,71.746474],[146.073182,71.80833],[146.367945,71.92207],[146.894734,72.197506],[147.127072,72.292048],[147.261844,72.327885],[147.433926,72.340908],[148.402033,72.311943],[148.964892,72.25236],[149.501604,72.164329],[149.766187,72.091259],[149.963074,71.992195],[149.998111,71.950492],[150.016921,71.895638],[149.881115,71.843005],[149.279705,71.825539],[149.048711,71.795773],[148.965306,71.762803],[148.954867,71.744148],[148.923344,71.714641],[148.968199,71.690456],[149.23795,71.687924],[149.497986,71.663998],[149.857137,71.60147],[149.912638,71.580696],[150.026429,71.521319],[150.060846,71.510829],[150.599831,71.520131],[150.634868,71.498892],[150.667734,71.455225],[150.525107,71.385824],[150.384754,71.338798],[150.09764,71.226557],[150.242954,71.267175],[150.821626,71.36288],[150.967767,71.38045],[151.145328,71.373732],[151.582407,71.286967],[151.75976,71.217824],[152.092763,71.023314],[151.999746,71.002488],[151.762034,70.982489],[152.508759,70.834488],[152.798353,70.835625],[153.460638,70.878594],[153.794158,70.879963],[154.413965,70.974479],[155.029432,71.034217],[155.595909,71.03861],[155.895219,71.095506],[156.684628,71.093749],[157.447372,71.074525],[158.037,71.039256],[158.702179,70.934999],[159.350718,70.790718],[159.727956,70.649641],[159.804747,70.604915],[159.911821,70.506084],[159.95864,70.423609],[160.006389,70.309662],[159.983341,70.221399],[159.889703,70.158767],[159.831412,70.081459],[159.839164,69.989992],[159.729403,69.870206],[159.832549,69.78494],[160.119147,69.729801],[160.739471,69.65518],[160.910726,69.606346],[160.928916,69.458551],[160.98204,69.334476],[161.035577,69.098212],[161.14079,69.038887],[161.309875,68.982275],[161.340674,68.9052],[161.129008,68.653846],[160.996716,68.607544],[160.856053,68.538349],[161.104513,68.562482],[161.23019,68.653898],[161.365169,68.822983],[161.49529,68.849855],[161.56557,68.9052],[161.56557,69.06395],[161.480097,69.201719],[161.480097,69.300111],[161.536941,69.379538],[161.945082,69.545109],[162.16605,69.611565],[162.37565,69.649082],[162.944607,69.682775],[163.201336,69.714763],[163.498062,69.693266],[163.705284,69.701792],[163.945993,69.735175],[164.15952,69.719311],[164.513297,69.609136],[165.760766,69.584409],[165.980494,69.545988],[166.82034,69.499582],[166.884315,69.499892],[167.073141,69.554463],[167.628146,69.740343],[167.856866,69.728199],[167.95009,69.699157],[168.047655,69.625621],[168.149974,69.577407],[168.22997,69.447027],[168.30304,69.271483],[168.423033,69.239495],[168.58757,69.228385],[168.946205,69.163324],[169.310627,69.079556],[169.4146,68.919618],[169.609834,68.78606],[170.06562,68.798695],[170.537632,68.825412],[170.995382,69.045295],[170.996622,69.134721],[170.883761,69.263628],[170.714159,69.38822],[170.582177,69.58335],[170.160911,69.626551],[170.201115,69.683215],[170.359555,69.750988],[170.503112,69.856563],[170.525437,69.937902],[170.486783,70.107556],[170.867948,70.096032],[171.246736,70.076136],[171.970516,70.000327],[172.559628,69.968339],[172.869273,69.919763],[173.056342,69.864935],[173.277413,69.823852],[173.353378,69.924027],[173.438644,69.946842],[173.733406,69.891135],[173.94807,69.874133],[174.319417,69.881652],[174.785538,69.855685],[175.295585,69.860077],[175.751164,69.904157],[175.92149,69.895321],[176.107525,69.860284],[176.410452,69.768507],[176.924426,69.645982],[177.394475,69.611617],[177.933667,69.495603],[178.442783,69.45297],[178.848339,69.387186],[178.906941,69.362123],[178.925027,69.325975],[178.950659,69.295822],[179.272706,69.259649],[179.868226,69.012687],[180,68.983438],[180,65.067243],[179.827401,65.03417],[179.651391,64.920947],[179.448199,64.822013],[179.150026,64.781576],[178.698478,64.631094],[178.519574,64.602982],[178.285376,64.67228],[177.748665,64.717032],[177.581647,64.777881],[177.337011,64.931334],[177.251848,64.953607],[177.179191,65.01412],[176.880811,65.081919],[176.624806,65.037607],[176.413139,65.071222],[176.340999,65.047296],[176.452103,65.02523],[176.645477,65.007195],[176.940032,65.016032],[177.037287,64.99965],[177.123484,64.947018],[177.222806,64.861674],[177.148185,64.80483],[177.06881,64.786692],[176.831098,64.84922],[176.556593,64.83997],[176.429469,64.855163],[176.061119,64.960893],[175.781137,64.844027],[175.396457,64.783695],[175.097767,64.776873],[174.54886,64.683907],[174.698619,64.681427],[175.097044,64.746643],[175.330725,64.746643],[175.67799,64.782454],[175.858548,64.825294],[175.945881,64.865188],[176.056572,64.904747],[176.169227,64.884774],[176.246948,64.843019],[176.300898,64.783824],[176.351024,64.705146],[176.283225,64.663805],[176.219456,64.641946],[176.140908,64.585851],[176.507604,64.682409],[176.730949,64.624841],[176.84288,64.633781],[177.049793,64.719254],[177.38755,64.774031],[177.427444,64.76336],[177.467132,64.736824],[177.409874,64.572803],[177.432922,64.44449],[177.68748,64.304757],[177.953304,64.222282],[178.044668,64.219595],[178.130554,64.235253],[178.163937,64.309072],[178.229463,64.364392],[178.312972,64.314421],[178.381495,64.260884],[178.477096,64.127869],[178.474822,64.089008],[178.451361,64.01139],[178.536007,63.97563],[178.650315,63.965295],[178.692483,63.842357],[178.731447,63.66707],[178.681321,63.65074],[178.626027,63.65074],[178.440406,63.605575],[178.466141,63.574053],[178.653726,63.556638],[178.706436,63.521524],[178.668816,63.439952],[178.678737,63.40228],[178.744056,63.394787],[178.786741,63.442433],[178.775372,63.510232],[178.792942,63.540308],[178.918516,63.400265],[178.921513,63.345023],[179.02807,63.282443],[179.332341,63.1902],[179.388565,63.147205],[179.405101,63.077752],[179.329034,63.057908],[179.259581,63.008299],[179.302162,62.939854],[179.38102,62.883707],[179.510935,62.862778],[179.570466,62.773481],[179.570466,62.687492],[179.477242,62.613078],[179.288726,62.510345],[179.176898,62.469211],[179.133903,62.39645],[179.120674,62.320382],[179.044607,62.32369],[178.963888,62.355264],[178.019243,62.546984],[177.663089,62.582795],[177.351273,62.587446],[177.292569,62.599022],[177.295876,62.644497],[177.315823,62.68527],[177.359645,62.736946],[177.338974,62.781336],[177.298357,62.78423],[177.258669,62.750434],[177.172679,62.75033],[177.091237,62.789553],[177.023541,62.777254],[176.990055,62.722218],[176.963493,62.69328],[176.964734,62.658656],[177.008038,62.626565],[177.189629,62.59158],[177.15945,62.560988],[176.907476,62.53608],[176.702527,62.505746],[176.436497,62.410816],[176.32839,62.346066],[175.613912,62.18437],[175.442036,62.127939],[175.365865,62.121325],[175.267886,62.102411],[175.192335,62.034405],[174.797527,61.938855],[174.715052,61.947899],[174.610562,61.867645],[174.51434,61.823617],[174.285,61.817519],[174.138859,61.795143],[173.822393,61.679388],[173.623439,61.716078],[173.390688,61.55676],[173.131893,61.406666],[173.054585,61.4062],[172.856561,61.469168],[172.806848,61.436147],[172.837854,61.375582],[172.90803,61.311607],[172.867723,61.293081],[172.789071,61.310677],[172.730677,61.314397],[172.690059,61.295174],[172.696984,61.249337],[172.584742,61.190426],[172.497099,61.185878],[172.396123,61.167378],[172.36243,61.11658],[172.392713,61.061751],[172.213292,60.997853],[172.067255,60.915662],[171.997698,60.900676],[171.91791,60.864115],[171.830577,60.837372],[171.729498,60.843108],[171.489719,60.725751],[170.949287,60.522973],[170.799322,60.496463],[170.608222,60.434916],[170.589722,60.393678],[170.588585,60.34288],[170.512311,60.259526],[170.423427,60.047808],[170.396452,60.009774],[170.350977,59.965539],[170.15409,59.986106],[169.982627,60.067083],[169.92723,60.104239],[169.897568,60.147854],[169.887026,60.217927],[169.854263,60.250225],[169.814782,60.265366],[169.618309,60.438017],[169.275694,60.556666],[169.226705,60.59594],[168.788282,60.563797],[168.670356,60.562867],[168.462824,60.592219],[168.137469,60.573926],[167.745968,60.509304],[167.626079,60.468971],[167.226723,60.406287],[166.964104,60.307017],[166.452507,59.947039],[166.331894,59.872418],[166.273086,59.856269],[166.18658,59.849474],[166.14896,59.922053],[166.13604,59.979337],[166.16839,60.088839],[166.229782,60.178317],[166.292517,60.34611],[166.308123,60.414246],[166.352151,60.48481],[166.180172,60.480391],[165.942047,60.356885],[165.582999,60.236479],[165.415878,60.205163],[165.28524,60.134934],[165.192532,60.124754],[165.084528,60.098606],[165.073573,59.945592],[165.019003,59.860739],[164.953684,59.843583],[164.854258,59.840947],[164.779431,59.874201],[164.669773,59.997475],[164.525286,60.061295],[164.44002,60.072716],[164.376871,60.05804],[164.251608,59.973781],[164.113322,59.897533],[164.135026,59.984349],[164.017617,60.017345],[163.91292,60.037059],[163.780112,60.04109],[163.743835,60.028016],[163.689988,59.978406],[163.574336,59.914069],[163.493721,59.886784],[163.410005,59.834953],[163.36484,59.781468],[163.321225,59.7054],[163.269032,59.520037],[163.272856,59.302582],[163.084857,59.131378],[163.010133,59.148276],[162.97489,59.137062],[162.94006,59.114325],[163.004345,59.020145],[162.969825,58.986477],[162.934582,58.963946],[162.847249,58.939245],[162.643334,58.799925],[162.453061,58.708613],[162.141659,58.447415],[162.049158,58.272826],[161.960068,58.07692],[162.001926,57.980957],[162.03965,57.918248],[162.097941,57.874659],[162.19747,57.829132],[162.41141,57.778386],[162.392186,57.745003],[162.391463,57.717253],[162.467014,57.76619],[162.521998,57.904089],[162.654289,57.948246],[162.718368,57.946076],[163.145009,57.837323],[163.225831,57.7904],[163.213842,57.686815],[163.1879,57.637412],[163.108732,57.564859],[162.95701,57.477474],[162.779346,57.357636],[162.762293,57.284075],[162.761569,57.243922],[162.808078,57.102768],[162.8149,57.023393],[162.791128,56.875392],[162.802601,56.811468],[162.849936,56.756846],[162.922076,56.722636],[163.04641,56.741291],[163.165472,56.725504],[163.256526,56.688039],[163.243297,56.564558],[163.294043,56.447692],[163.335591,56.232537],[163.261281,56.173729],[163.189244,56.136987],[163.04734,56.044693],[162.971686,56.033789],[162.840324,56.065622],[162.628141,56.232279],[162.7132,56.330851],[162.893241,56.399478],[162.9752,56.44901],[163.038348,56.521873],[162.944194,56.508076],[162.877635,56.476372],[162.671446,56.490092],[162.589074,56.454952],[162.488615,56.399142],[162.528199,56.260701],[162.461123,56.235482],[162.334102,56.187733],[162.146103,56.128254],[162.085022,56.089652],[161.923998,55.840364],[161.775583,55.654846],[161.723907,55.496148],[161.729384,55.358017],[161.784988,55.205313],[161.824159,55.138909],[161.996035,54.997987],[162.080267,54.886107],[162.105589,54.752162],[161.966889,54.688652],[161.725664,54.532951],[161.624791,54.516259],[161.294062,54.520574],[161.129834,54.598218],[160.935531,54.578374],[160.772647,54.541374],[160.517159,54.430838],[160.288852,54.288211],[160.074395,54.189147],[160.010109,54.130856],[159.921743,54.008383],[159.843711,53.783642],[159.870893,53.672642],[159.914301,53.620836],[159.955849,53.552184],[159.899109,53.447694],[159.897662,53.380747],[160.002151,53.274914],[160.025096,53.129574],[159.947478,53.125104],[159.771571,53.229671],[159.585949,53.237707],[159.136158,53.11712],[158.952086,53.047538],[158.74538,52.908941],[158.683679,52.9354],[158.639547,53.014775],[158.564616,53.050018],[158.472012,53.032371],[158.432325,52.957414],[158.560172,52.922171],[158.608748,52.873621],[158.533714,52.688412],[158.480797,52.626685],[158.500331,52.460312],[158.493199,52.383159],[158.463537,52.304999],[158.331659,52.090878],[158.103456,51.809603],[157.823266,51.605326],[157.628859,51.534581],[157.530984,51.479881],[157.48985,51.408955],[157.202219,51.21274],[156.847512,51.006603],[156.747776,50.969266],[156.724315,51.047065],[156.713463,51.124115],[156.670778,51.226873],[156.543448,51.311597],[156.521227,51.380275],[156.50035,51.475101],[156.489808,51.913059],[156.37736,52.366571],[156.364751,52.509353],[156.228635,52.626245],[156.154428,52.747272],[156.110296,52.866179],[156.098824,53.006481],[155.950202,53.744291],[155.90483,53.92813],[155.706496,54.521479],[155.6203,54.864533],[155.563869,55.199112],[155.554878,55.348508],[155.643451,55.793546],[155.716625,56.072237],[155.982552,56.695196],[156.02534,56.751988],[156.067508,56.781573],[156.529288,57.021171],[156.728449,57.152222],[156.848855,57.290198],[156.976703,57.466312],[156.963577,57.560957],[156.948281,57.61576],[156.899912,57.676893],[156.791598,57.747948],[156.829838,57.779626],[156.872006,57.803656],[156.985695,57.830191],[157.216792,57.776784],[157.450369,57.799289],[157.666377,58.019766],[157.974575,57.985918],[158.210426,58.025296],[158.275228,58.008966],[158.321117,58.083458],[158.449378,58.162833],[158.686986,58.281352],[159.036939,58.423928],[159.210675,58.519426],[159.308447,58.610531],[159.452624,58.695952],[159.59153,58.803646],[159.847329,59.127141],[160.350347,59.394049],[160.547441,59.547373],[160.711462,59.601685],[160.855329,59.626878],[161.218925,59.845598],[161.449298,60.027344],[161.753466,60.152298],[161.845966,60.232241],[162.00358,60.420188],[162.068175,60.466387],[162.266303,60.536719],[162.7132,60.65945],[162.973133,60.782905],[163.352334,60.800423],[163.466436,60.849774],[163.585188,60.877163],[163.709935,60.916799],[163.553562,61.025629],[163.589219,61.08436],[163.619605,61.111309],[163.893387,61.2405],[164.005421,61.343801],[163.992089,61.388243],[163.972762,61.419869],[163.8044,61.461365],[163.837163,61.558233],[163.882741,61.640114],[164.019477,61.710704],[164.06795,61.873872],[164.074254,62.044999],[164.207269,62.292219],[164.287471,62.346634],[164.598357,62.470554],[164.670704,62.473758],[164.887745,62.4319],[165.124113,62.41154],[165.208138,62.373997],[165.225708,62.405752],[165.213823,62.448204],[165.280382,62.462984],[165.417325,62.447093],[165.396551,62.493886],[165.044014,62.517011],[164.79235,62.571116],[164.567041,62.675503],[164.418316,62.704648],[164.255638,62.696587],[163.331767,62.550911],[163.287119,62.51143],[163.244227,62.455387],[163.302208,62.372989],[163.257973,62.336919],[163.213325,62.313406],[163.163509,62.259559],[163.118447,62.152951],[163.131056,62.049908],[163.017678,61.89108],[163.009306,61.791526],[163.20764,61.736568],[163.25787,61.699464],[163.197822,61.644791],[163.138807,61.611433],[163.085271,61.570557],[163.047237,61.554073],[162.993907,61.544177],[162.921663,61.597687],[162.855931,61.705045],[162.752371,61.711272],[162.717851,61.695098],[162.699041,61.652594],[162.607574,61.650036],[162.506495,61.670138],[162.3926,61.662102],[162.188374,61.540663],[161.037127,60.962894],[160.915067,60.892692],[160.766652,60.753295],[160.482019,60.739859],[160.368124,60.708543],[160.287302,60.667047],[160.173614,60.638418],[160.177334,60.69074],[160.201106,60.729627],[160.225807,60.831533],[160.378873,61.025474],[160.281307,61.044775],[160.184259,61.047644],[160.004012,61.007439],[159.883089,60.943412],[159.790485,60.956641],[159.834616,61.013976],[159.949235,61.128621],[159.913991,61.234454],[159.883089,61.291789],[159.930838,61.323906],[160.162658,61.537484],[160.246891,61.647607],[160.317378,61.793334],[160.321512,61.838551],[160.309316,61.894362],[160.237796,61.90387],[160.182502,61.902811],[159.722168,61.758401],[159.55236,61.719489],[159.496239,61.781449],[159.423065,61.808062],[159.295011,61.914154],[159.189281,61.929399],[159.076626,61.922241],[158.824342,61.85023],[158.54715,61.810904],[158.333726,61.825684],[158.151515,61.764861],[158.070073,61.753595],[157.799288,61.795246],[157.469386,61.798941],[157.370684,61.747084],[157.08419,61.675693],[156.891747,61.565183],[156.790668,61.529655],[156.680287,61.480615],[156.629747,61.272462],[156.482573,61.206006],[156.34408,61.155053],[156.055932,60.995605],[155.853361,60.777169],[155.716108,60.682395],[155.427857,60.549844],[154.970831,60.376651],[154.578193,60.09504],[154.440734,59.883787],[154.389884,59.876733],[154.293042,59.833351],[154.266584,59.73036],[154.268858,59.658374],[154.209223,59.600342],[154.149795,59.528537],[154.212841,59.483398],[154.272165,59.47513],[154.357638,59.481434],[154.582534,59.540087],[154.971244,59.449602],[155.166684,59.36015],[155.153042,59.270207],[155.160483,59.190134],[155.016719,59.195612],[154.823759,59.18755],[154.703457,59.1413],[154.457994,59.216541],[154.375931,59.18786],[154.246637,59.108589],[154.010889,59.075516],[153.891723,59.11417],[153.695249,59.224757],[153.36111,59.21481],[153.27295,59.091329],[153.196055,59.094429],[153.077716,59.081872],[152.882172,58.939038],[152.817887,58.926248],[152.575628,58.954076],[152.400651,59.026423],[152.319623,59.030764],[152.165214,58.997019],[152.087906,58.910461],[151.70457,58.866691],[151.326815,58.875089],[151.12104,59.082518],[151.504996,59.164012],[151.733509,59.146674],[151.990031,59.160058],[152.260608,59.223595],[152.169554,59.277932],[152.104442,59.290593],[151.942385,59.284082],[151.798104,59.323253],[151.485772,59.524119],[151.348209,59.561119],[151.170339,59.583263],[151.033603,59.585666],[150.982547,59.571351],[150.911957,59.523034],[150.863278,59.47544],[150.823383,59.460764],[150.729436,59.469135],[150.615231,59.506549],[150.483559,59.494405],[150.539783,59.524946],[150.667321,59.556339],[150.457204,59.59073],[150.325533,59.638892],[150.202543,59.651295],[149.642577,59.770435],[149.424502,59.761004],[149.290454,59.728448],[149.065248,59.630521],[149.127776,59.558768],[149.175422,59.52678],[149.204981,59.488204],[149.133047,59.480504],[148.924998,59.474975],[148.797047,59.53231],[148.708887,59.448516],[148.74413,59.37356],[148.889651,59.400018],[148.964686,59.369141],[148.914043,59.282738],[148.726664,59.257934],[148.491226,59.262326],[148.257442,59.414203],[147.874623,59.388055],[147.687864,59.290697],[147.514438,59.268579],[147.040048,59.365731],[146.80368,59.372965],[146.537237,59.456991],[146.444323,59.430481],[146.273377,59.221476],[146.049515,59.170575],[145.931589,59.198402],[145.829063,59.330332],[145.756406,59.373741],[145.554558,59.413506],[144.483409,59.376273],[144.123431,59.408312],[143.868769,59.411361],[143.523881,59.343665],[143.192221,59.370123],[142.580269,59.240157],[142.330362,59.152617],[142.025367,58.999655],[141.754686,58.745252],[141.602964,58.64903],[141.347063,58.528056],[140.987705,58.416848],[140.790197,58.30347],[140.684984,58.212158],[140.495125,57.865435],[140.446859,57.813681],[140.002338,57.687487],[139.861469,57.549304],[139.803281,57.514164],[139.619209,57.455718],[139.506658,57.358308],[139.44382,57.329705],[139.181613,57.261518],[138.965709,57.088144],[138.662162,56.965515],[138.217745,56.628999],[138.180124,56.588536],[138.140643,56.498671],[138.073774,56.433093],[137.691472,56.139364],[137.572926,56.112131],[137.3841,55.974775],[137.189797,55.892299],[137.012133,55.795251],[136.793542,55.694172],[136.460229,55.576711],[136.351192,55.509997],[136.175182,55.352229],[135.750815,55.160664],[135.540595,55.113768],[135.262473,54.943313],[135.234774,54.903212],[135.21152,54.840839],[135.257719,54.731492],[135.325415,54.70741],[135.437759,54.692476],[135.851584,54.583955],[136.23802,54.614083],[136.580325,54.613618],[136.714581,54.624315],[136.797263,54.621007],[136.823721,54.561476],[136.820414,54.452336],[136.770391,54.353298],[136.72936,54.060628],[136.682955,53.931282],[136.718818,53.804081],[136.802637,53.781989],[136.886456,53.83935],[137.018748,53.848135],[137.15538,53.821676],[137.25801,54.02523],[137.172434,54.056907],[137.096159,54.128583],[137.141635,54.182223],[137.377692,54.282346],[137.525074,54.291208],[137.666047,54.283302],[137.513188,54.156385],[137.45128,54.130469],[137.403427,54.123518],[137.339245,54.100522],[137.476498,54.027607],[137.622742,53.970453],[137.834719,53.946733],[137.786143,53.903325],[137.64486,53.865808],[137.517012,53.707058],[137.313717,53.63161],[137.221526,53.579185],[137.253669,53.546138],[137.32829,53.538955],[137.738187,53.560297],[137.950474,53.603576],[138.252988,53.726437],[138.378872,53.909268],[138.493593,53.959652],[138.527907,53.959859],[138.568214,53.947147],[138.569144,53.818782],[138.406984,53.674192],[138.292159,53.59244],[138.249681,53.524046],[138.320271,53.522909],[138.450702,53.537017],[138.510957,53.570012],[138.660715,53.744782],[138.699472,53.869735],[138.721693,54.04373],[138.70464,54.147651],[138.715905,54.222634],[138.657201,54.29834],[138.695648,54.320044],[139.105029,54.217828],[139.319693,54.192972],[139.707473,54.277152],[139.795529,54.25643],[139.858368,54.205322],[140.178762,54.051585],[140.241704,54.001045],[140.347124,53.812581],[140.687568,53.596419],[141.005688,53.494565],[141.01499,53.454257],[141.217665,53.334497],[141.373728,53.292768],[141.402046,53.183989],[141.327942,53.097276],[141.181285,53.015266],[140.887246,53.091488],[140.839703,53.087871],[140.874533,53.039864],[141.08682,52.897573],[141.255802,52.840134],[141.265931,52.6526],[141.245053,52.550126],[141.132399,52.435714],[141.169812,52.368406],[141.329699,52.271125],[141.409074,52.234331],[141.485245,52.178521],[141.38551,52.057236],[141.366906,51.920655],[141.258386,51.860711],[141.129401,51.727799],[140.932618,51.619899],[140.838567,51.414175],[140.687671,51.232274],[140.670721,51.051303],[140.645607,50.986759],[140.52086,50.800207],[140.476315,50.546011],[140.535433,50.130739],[140.564061,50.106709],[140.624523,50.082421],[140.613257,50.053689],[140.584525,50.033329],[140.462672,49.911476],[140.464533,49.82559],[140.511351,49.761666],[140.517242,49.596146],[140.431046,49.331511],[140.39911,49.289808],[140.364384,49.220872],[140.348674,49.15917],[140.325626,49.119999],[140.308986,49.053905],[140.333688,48.994839],[140.378336,48.964118],[140.224237,48.772837],[140.170597,48.523679],[140.113236,48.422678],[139.998411,48.323769],[139.760699,48.180574],[139.67626,48.089881],[139.520507,47.975315],[139.372713,47.887362],[139.167041,47.634871],[139.001366,47.38331],[138.586818,47.057206],[138.529664,46.976203],[138.500518,46.889851],[138.391791,46.745054],[138.33691,46.543387],[138.2102,46.462952],[138.10633,46.250717],[137.769193,45.928515],[137.685477,45.818366],[137.425235,45.640005],[137.147009,45.393509],[136.803464,45.171145],[136.737215,45.080039],[136.604096,44.978159],[136.460436,44.822122],[136.251146,44.666783],[136.208668,44.562035],[136.142316,44.489119],[135.986976,44.439846],[135.874632,44.373519],[135.533154,43.971477],[135.489022,43.898819],[135.483441,43.834999],[135.260096,43.684621],[135.131008,43.525716],[134.916964,43.426549],[134.691758,43.290588],[134.156494,43.042153],[134.010456,42.947482],[133.709389,42.829944],[133.586709,42.828213],[133.329464,42.76385],[133.159965,42.696981],[133.059403,42.722819],[132.996565,42.808033],[132.923908,42.805295],[132.863549,42.793771],[132.708934,42.875833],[132.576435,42.871595],[132.481351,42.909758],[132.30379,42.8833],[132.334383,43.238679],[132.309578,43.313532],[132.2332,43.245087],[132.028768,43.11897],[131.947223,43.095406],[131.866608,43.095173],[131.898337,43.17075],[132.013059,43.280046],[131.976265,43.296066],[131.938955,43.301957],[131.794674,43.255293],[131.722017,43.202635],[131.516448,42.996446],[131.393252,42.822296],[131.292483,42.772118],[131.245354,42.697394],[131.158331,42.626003],[131.024799,42.645175],[130.945734,42.633935],[130.756185,42.673313],[130.709366,42.656415],[130.834216,42.522934],[130.729933,42.325763],[130.687352,42.302534],[130.657948,42.327778],[130.65154,42.372504],[130.618002,42.415603],[130.55413,42.474695],[130.526948,42.535388],[130.584464,42.567325],[130.576557,42.623238],[130.520592,42.674321],[130.439201,42.685534],[130.419978,42.699875],[130.424784,42.727031],[130.452741,42.755427],[130.492945,42.779095],[130.577281,42.811599],[130.722491,42.835835],[130.803262,42.856816],[130.868529,42.863327],[130.94284,42.851752],[131.005575,42.883119],[131.068569,42.902265],[131.083503,42.956293],[131.08619,43.038097],[131.10898,43.062436],[131.135593,43.097628],[131.175642,43.142199],[131.211867,43.257773],[131.239359,43.337665],[131.257343,43.378076],[131.261787,43.43306],[131.243907,43.469027],[131.20918,43.490421],[131.182463,43.505588],[131.180035,43.567108],[131.183652,43.650876],[131.174247,43.704749],[131.213314,44.002922],[131.255276,44.071574],[131.125774,44.469198],[131.086914,44.595676],[131.060662,44.659677],[131.003921,44.753238],[130.967748,44.799953],[130.9817,44.844317],[131.032963,44.888888],[131.082314,44.910024],[131.22799,44.920152],[131.268298,44.936121],[131.446892,44.984025],[131.487509,45.013118],[131.57877,45.083657],[131.613962,45.136573],[131.654011,45.205355],[131.742067,45.242613],[131.794881,45.305297],[131.851828,45.326846],[131.909241,45.273723],[131.977505,45.243983],[132.067422,45.225974],[132.181369,45.203288],[132.363012,45.159983],[132.549047,45.122802],[132.665629,45.093708],[132.723145,45.080556],[132.838641,45.061126],[132.888768,45.046062],[132.936,45.029913],[133.011757,45.074562],[133.113457,45.130734],[133.09692,45.22047],[133.113353,45.32142],[133.18601,45.494846],[133.266936,45.545282],[133.309517,45.55306],[133.355509,45.572206],[133.436434,45.60471],[133.46558,45.651219],[133.449147,45.705066],[133.475812,45.757647],[133.4847,45.810434],[133.513122,45.878802],[133.551156,45.897819],[133.608,45.920298],[133.647791,45.955231],[133.685721,46.008949],[133.711146,46.069643],[133.700708,46.139768],[133.750214,46.185915],[133.832793,46.224259],[133.861318,46.247772],[133.874754,46.30906],[133.880232,46.336035],[133.902762,46.366938],[133.886743,46.430551],[133.866589,46.499126],[133.95754,46.614235],[134.0226,46.71317],[134.038568,46.858174],[134.04601,46.881997],[134.071383,46.950778],[134.086421,46.978115],[134.136908,47.069014],[134.202124,47.128054],[134.189257,47.194226],[134.162953,47.258718],[134.167656,47.302178],[134.225223,47.352614],[134.260053,47.377729],[134.290852,47.413592],[134.339428,47.429508],[134.382526,47.438242],[134.483502,47.447388],[134.541897,47.485164],[134.596157,47.52387],[134.695789,47.624871],[134.728087,47.68448],[134.752323,47.715408],[134.69858,47.801424],[134.650314,47.874287],[134.591299,47.975211],[134.565978,48.022495],[134.605355,48.082905],[134.647213,48.120164],[134.669331,48.15334],[134.680803,48.210443],[134.665197,48.253928],[134.563549,48.321728],[134.456165,48.355343],[134.334932,48.368831],[134.293385,48.37343],[134.205896,48.359891],[133.842198,48.273746],[133.671769,48.207704],[133.573274,48.133031],[133.46837,48.097168],[133.301145,48.101535],[133.144049,48.105643],[133.020129,48.064405],[132.877089,47.979087],[132.772806,47.940072],[132.707177,47.947255],[132.636897,47.8901],[132.561862,47.768506],[132.476286,47.714969],[132.380168,47.72949],[132.149795,47.717966],[131.785269,47.680501],[131.556756,47.682025],[131.464255,47.722617],[131.319354,47.727811],[131.121847,47.697632],[131.002784,47.691456],[130.96196,47.70931],[130.932866,47.759798],[130.9154,47.84292],[130.848634,47.929426],[130.732568,48.01924],[130.712053,48.127657],[130.78719,48.254574],[130.804244,48.341494],[130.763419,48.388416],[130.746883,48.430378],[130.65924,48.483398],[130.597279,48.574658],[130.552114,48.602512],[130.565602,48.68013],[130.617175,48.773173],[130.553148,48.861204],[130.355279,48.866372],[130.196012,48.891641],[130.037055,48.972257],[129.792522,49.198858],[129.671083,49.278491],[129.591398,49.286656],[129.533727,49.323424],[129.498173,49.38882],[129.440709,49.38944],[129.384692,49.38944],[129.350069,49.362362],[129.309865,49.353835],[129.248421,49.37864],[129.185118,49.381379],[129.120109,49.362052],[129.065125,49.374661],[129.02027,49.419258],[128.938311,49.44892],[128.819352,49.463751],[128.770259,49.494705],[128.791033,49.541834],[128.769019,49.576974],[128.70401,49.600125],[128.52676,49.594234],[128.237062,49.559301],[127.999609,49.568603],[127.814297,49.622139],[127.711151,49.671542],[127.69017,49.716759],[127.636685,49.760193],[127.550799,49.801793],[127.50243,49.873416],[127.491784,49.975038],[127.512352,50.071673],[127.59028,50.208977],[127.395253,50.298584],[127.33722,50.350157],[127.351173,50.393617],[127.340786,50.428085],[127.306059,50.45351],[127.30823,50.494179],[127.347194,50.550093],[127.346832,50.621355],[127.306989,50.707965],[127.198262,50.829456],[127.020392,50.98588],[126.924842,51.100137],[126.91151,51.172329],[126.887738,51.230129],[126.854407,51.261367],[126.83384,51.314878],[126.847741,51.374177],[126.827329,51.412263],[126.801801,51.448049],[126.805418,51.505642],[126.774515,51.545071],[126.709196,51.566284],[126.688733,51.609925],[126.700825,51.703046],[126.653696,51.781284],[126.510552,51.925823],[126.468074,52.031295],[126.455568,52.126457],[126.394797,52.173017],[126.39149,52.214488],[126.383532,52.286499],[126.346324,52.306265],[126.324207,52.331664],[126.341674,52.362024],[126.312838,52.399748],[126.237597,52.444809],[126.202974,52.483825],[126.194447,52.519146],[126.15662,52.546638],[126.045929,52.573355],[126.015957,52.610226],[126.023243,52.643014],[126.047015,52.673478],[126.06014,52.691978],[126.056006,52.715878],[126.048151,52.739468],[126.00433,52.767891],[125.941646,52.800705],[125.871883,52.871528],[125.782793,52.890725],[125.728119,52.890725],[125.680784,52.930826],[125.695356,52.956303],[125.691687,53.00369],[125.649054,53.042267],[125.595983,53.057485],[125.54596,53.047615],[125.422453,53.083737],[125.225566,53.165799],[125.075033,53.203678],[124.970956,53.197322],[124.906619,53.172672],[124.882124,53.129729],[124.812361,53.133837],[124.639865,53.210654],[124.465922,53.229645],[124.369133,53.270935],[124.291463,53.340853],[124.219943,53.370102],[124.154314,53.358681],[123.994685,53.405629],[123.740954,53.510998],[123.607784,53.546525],[123.559725,53.526681],[123.534713,53.526449],[123.489496,53.529446],[123.424022,53.530764],[123.309611,53.555594],[123.154065,53.544587],[122.957591,53.497717],[122.744787,53.46852],[122.515861,53.456996],[122.380158,53.462525],[122.337784,53.485004],[122.088807,53.451466],[121.743918,53.383615],[121.405437,53.317056],[120.985463,53.284577],[120.704085,53.171845],[120.421311,52.968085],[120.21812,52.839876],[120.09451,52.787218],[120.04428,52.718229],[120.067535,52.632912],[120.172748,52.602474],[120.360023,52.627021],[120.52115,52.615032],[120.656129,52.566663],[120.699227,52.493592],[120.650341,52.395924],[120.665431,52.299883],[120.744496,52.20547],[120.749819,52.09651],[120.681502,51.973055],[120.510505,51.848515],[120.236982,51.722993],[120.066915,51.600675],[119.966972,51.422107],[119.813183,51.267052],[119.756649,51.179486],[119.746004,51.107733],[119.684922,51.030115],[119.573405,50.946761],[119.512323,50.863123],[119.501781,50.779226],[119.44566,50.702849],[119.344065,50.633912],[119.280709,50.560997],[119.255801,50.48418],[119.216734,50.432529],[119.163714,50.406019],[119.191929,50.379845],[119.301587,50.353929],[119.346235,50.278947],[119.326081,50.154923],[119.259832,50.066402],[119.147487,50.013382],[118.979539,49.978862],[118.755987,49.962842],[118.451509,49.844503],[118.186616,49.692781],[117.873457,49.51349],[117.812582,49.513516],[117.69848,49.53584],[117.47715,49.609427],[117.24564,49.624852],[117.021622,49.692988],[116.888969,49.737791],[116.683297,49.823781],[116.631569,49.877059],[116.55116,49.920312],[116.351121,49.978087],[116.216814,50.009273],[116.134545,50.010798],[115.92603,49.952145],[115.795237,49.905895],[115.717723,49.880625],[115.587963,49.886051],[115.429213,49.89649],[115.364979,49.91176],[115.274546,49.948864],[115.098019,50.059425],[115.003348,50.138594],[114.879583,50.183035],[114.743157,50.233678],[114.674892,50.245693],[114.553969,50.241456],[114.386331,50.255486],[114.297034,50.274399],[114.221793,50.257269],[114.070691,50.204739],[113.881142,50.101102],[113.732417,50.061544],[113.574184,50.007025],[113.44551,49.941603],[113.319058,49.87432],[113.164183,49.797193],[113.092095,49.692523],[113.05556,49.616248],[112.914793,49.569223],[112.806427,49.523592],[112.697338,49.507263],[112.494922,49.532326],[112.375136,49.514601],[112.079702,49.424219],[111.934491,49.416028],[111.833412,49.4036],[111.735588,49.39776],[111.574823,49.376418],[111.511881,49.360915],[111.429251,49.342622],[111.336646,49.355851],[111.2042,49.304278],[110.827944,49.166147],[110.709811,49.14297],[110.631108,49.137595],[110.529616,49.187076],[110.427813,49.219993],[110.321359,49.215859],[110.19992,49.17041],[109.994558,49.205627],[109.750335,49.23932],[109.528695,49.269887],[109.453712,49.296345],[109.236671,49.334896],[108.919895,49.335361],[108.733033,49.335645],[108.61366,49.322804],[108.522503,49.341485],[108.406954,49.396365],[108.213064,49.524781],[108.098033,49.56266],[108.033799,49.593976],[108.009511,49.646892],[107.965431,49.653533],[107.936751,49.690998],[107.938766,49.740737],[107.934838,49.849025],[107.947809,49.924705],[107.916545,49.947804],[107.786837,49.96],[107.630981,49.983099],[107.347019,49.986665],[107.233279,49.989404],[107.143052,50.033019],[107.040216,50.086452],[106.941307,50.196678],[106.853768,50.248303],[106.711089,50.312588],[106.574456,50.328789],[106.368422,50.317601],[106.217837,50.304578],[106.082497,50.332587],[105.996507,50.367908],[105.875223,50.405373],[105.692546,50.414184],[105.541651,50.441263],[105.383573,50.473715],[105.266681,50.460486],[105.185962,50.429609],[105.094702,50.389948],[104.976983,50.382894],[104.685373,50.341837],[104.596386,50.317187],[104.466316,50.306129],[104.353868,50.275278],[104.259921,50.214455],[104.179667,50.169444],[104.078743,50.154226],[103.958492,50.157275],[103.856121,50.171822],[103.802636,50.176059],[103.723209,50.153838],[103.632879,50.138594],[103.496246,50.164949],[103.421212,50.187066],[103.304372,50.200295],[103.233833,50.264271],[103.161745,50.290729],[103.039427,50.300625],[102.859696,50.333259],[102.765438,50.366538],[102.683324,50.387157],[102.54633,50.461313],[102.469436,50.525702],[102.406856,50.536192],[102.336421,50.544254],[102.288413,50.58513],[102.285726,50.634687],[102.303348,50.665538],[102.316577,50.718455],[102.276579,50.768684],[102.235031,50.791215],[102.215084,50.82943],[102.226195,50.901441],[102.210227,50.974305],[102.194517,51.050683],[102.151936,51.107527],[102.142324,51.216047],[102.160049,51.260851],[102.155656,51.313767],[102.111525,51.353455],[101.979233,51.382213],[101.821155,51.421048],[101.570886,51.467195],[101.464329,51.471484],[101.381233,51.452622],[101.304546,51.474739],[101.223207,51.513264],[101.085386,51.553029],[100.90364,51.604241],[100.710783,51.661576],[100.53622,51.713459],[100.468886,51.726094],[100.230399,51.729814],[100.034546,51.737101],[99.921633,51.755523],[99.787894,51.827534],[99.719268,51.871614],[99.612866,51.892518],[99.532354,51.899881],[99.40709,51.923549],[99.176148,51.998868],[99.091347,52.03486],[99.034297,52.035403],[98.958125,52.10173],[98.893116,52.117284],[98.848675,52.070052],[98.802579,51.957449],[98.760101,51.905101],[98.640522,51.80118],[98.352788,51.717619],[98.303075,51.674288],[98.276823,51.634549],[98.237446,51.578402],[98.219928,51.505616],[98.184684,51.485747],[98.103087,51.483524],[98.037613,51.449935],[97.989141,51.377071],[97.946921,51.348416],[97.923253,51.280488],[97.927387,51.250722],[97.917879,51.217882],[97.910851,51.165172],[97.835713,51.051665],[97.825275,50.98526],[97.856126,50.943351],[97.919843,50.887178],[97.953174,50.855165],[97.964181,50.817699],[97.961959,50.769149],[98.001181,50.702048],[98.02981,50.644635],[98.078851,50.603811],[98.144997,50.568542],[98.220496,50.557199],[98.279459,50.533247],[98.292688,50.486944],[98.277288,50.423021],[98.250262,50.30246],[98.200032,50.227684],[98.170163,50.180581],[98.121949,50.106606],[98.103397,50.077822],[98.00392,50.01426],[97.936637,49.996794],[97.853955,49.946771],[97.785587,49.944549],[97.720682,49.944652],[97.650918,49.933593],[97.589372,49.911476],[97.540848,49.843108],[97.418323,49.773035],[97.359773,49.741434],[97.208568,49.730789],[97.136945,49.761717],[97.097671,49.805048],[97.049146,49.829879],[96.985739,49.882795],[96.711699,49.911553],[96.640179,49.897833],[96.598425,49.878403],[96.543286,49.89251],[96.505769,49.91871],[96.466391,49.911527],[96.381125,49.896024],[96.315083,49.90114],[96.229713,49.954083],[96.111684,49.982479],[96.065537,49.998706],[96.018563,49.998757],[95.989521,49.973591],[95.935726,49.96],[95.899449,49.990567],[95.851907,50.012917],[95.789327,50.012503],[95.707781,49.965994],[95.567221,49.943825],[95.522676,49.911217],[95.441751,49.915506],[95.38563,49.94119],[95.32951,49.944135],[95.166264,49.943825],[95.111435,49.935454],[95.044359,49.96155],[95.01294,50.00824],[94.930309,50.043767],[94.811247,50.048186],[94.718074,50.043251],[94.675493,50.028084],[94.614721,50.023717],[94.564595,50.087951],[94.496899,50.132832],[94.458503,50.165724],[94.400161,50.179651],[94.354686,50.221844],[94.346882,50.303416],[94.319339,50.404908],[94.286989,50.511387],[94.251074,50.556398],[94.075788,50.572831],[93.989902,50.568852],[93.795391,50.577637],[93.662015,50.583683],[93.625634,50.585569],[93.501094,50.59748],[93.386786,50.608487],[93.270514,50.615593],[93.222558,50.606524],[93.103082,50.603914],[93.009858,50.654531],[92.970687,50.712512],[92.963556,50.744913],[92.941283,50.778219],[92.856482,50.789097],[92.779329,50.778658],[92.73866,50.710936],[92.681351,50.683186],[92.626626,50.688302],[92.578928,50.725431],[92.486427,50.765067],[92.426328,50.803075],[92.354808,50.864182],[92.295793,50.849816],[92.278998,50.812222],[92.265304,50.775196],[92.192337,50.700575],[92.104022,50.691997],[91.956537,50.697629],[91.804247,50.693599],[91.706372,50.665538],[91.634128,50.615154],[91.596921,50.575518],[91.52168,50.56203],[91.446491,50.522188],[91.41502,50.468031],[91.340813,50.470046],[91.300608,50.46338],[91.233842,50.452399],[91.062793,50.422607],[91.021556,50.415476],[90.917169,50.364135],[90.838053,50.32375],[90.760693,50.305974],[90.714391,50.259413],[90.655066,50.222387],[90.516884,50.213318],[90.364852,50.166912],[90.311315,50.151151],[90.224498,50.116709],[90.103731,50.103299],[90.053759,50.093739],[90.004977,50.069296],[89.97733,49.98434],[89.878008,49.95354],[89.744218,49.948114],[89.643862,49.903052],[89.63425,49.82329],[89.669493,49.750504],[89.654094,49.717457],[89.579163,49.699706],[89.474983,49.660535],[89.395608,49.611546],[89.29918,49.611132],[89.24399,49.627049],[89.202907,49.595681],[89.180014,49.532248],[89.109476,49.501372],[89.008397,49.472795],[88.97057,49.48375],[88.945403,49.507676],[88.900135,49.539715],[88.863858,49.527623],[88.860344,49.481528],[88.831663,49.448455],[88.747896,49.446233],[88.68268,49.464526],[88.633174,49.486153],[88.544394,49.482561],[88.45241,49.472691],[88.393344,49.482846],[88.337792,49.472562],[88.192581,49.451711],[88.13553,49.381482],[88.13429,49.298438],[88.115738,49.256296],[88.028457,49.219787],[87.988046,49.186895],[87.934767,49.16457],[87.818289,49.16209],[87.81431,49.162322],[87.762478,49.165811],[87.668324,49.147233],[87.576598,49.13235],[87.515878,49.122428],[87.476191,49.091448],[87.416711,49.076591],[87.322815,49.08579],[87.296873,49.147646],[87.233673,49.216144],[87.148045,49.239811],[87.070582,49.254591],[87.000922,49.287328],[86.952967,49.322054],[86.812097,49.48791],[86.714377,49.558603],[86.626475,49.562686],[86.614228,49.609711],[86.665336,49.656711],[86.730706,49.695546],[86.728691,49.748695],[86.675516,49.777298],[86.610145,49.769133],[86.522244,49.707767],[86.417961,49.638469],[86.292439,49.587516],[86.242157,49.54633],[86.180869,49.49933],[86.092968,49.50548],[86.029612,49.503439],[85.974422,49.49933],[85.933597,49.550438],[85.880474,49.556562],[85.498482,49.605396],[85.371616,49.623948],[85.29188,49.599453],[85.232607,49.615809],[85.210127,49.66485],[85.13654,49.75071],[85.076492,49.82161],[85.000786,49.894164],[84.975206,49.95106],[84.999701,50.010281],[84.989469,50.061415],[84.924047,50.087977],[84.838987,50.09131],[84.607322,50.202388],[84.499008,50.218744],[84.400926,50.239156],[84.323256,50.239156],[84.257834,50.288223],[84.194479,50.437438],[84.175927,50.520534],[84.099291,50.604715],[84.002397,50.676881],[83.945088,50.774653],[83.859822,50.818035],[83.717764,50.887178],[83.58139,50.935754],[83.357321,50.994562],[83.273708,50.994562],[83.160227,50.989214],[83.092789,50.960611],[83.019202,50.897255],[82.919053,50.893121],[82.76082,50.893354],[82.718497,50.869505],[82.69302,50.826329],[82.611733,50.771475],[82.493962,50.727602],[82.326376,50.741916],[82.211912,50.719437],[82.098069,50.710858],[81.933687,50.766359],[81.752044,50.764395],[81.633912,50.739125],[81.465911,50.739849],[81.431392,50.771139],[81.451597,50.823668],[81.437748,50.871055],[81.410153,50.909761],[81.388242,50.956477],[81.319099,50.966398],[81.124589,50.94627],[81.071465,50.96875],[81.077511,51.014923],[81.112393,51.072387],[81.14097,51.146568],[81.127276,51.191062],[81.026765,51.185713],[80.96558,51.189796],[80.934058,51.242764],[80.877317,51.281444],[80.813135,51.283485],[80.735258,51.293407],[80.650457,51.277361],[80.605499,51.224212],[80.55067,51.21659],[80.491036,51.201733],[80.448092,51.183362],[80.421531,51.136362],[80.433623,51.092644],[80.452278,50.997611],[80.423598,50.94627],[80.345205,50.919114],[80.270377,50.924592],[80.220251,50.911776],[80.127234,50.858369],[80.086357,50.839998],[80.072043,50.807287],[80.065945,50.75822],[79.986209,50.774576],[79.859653,50.955443],[79.716458,51.16003],[79.554349,51.378001],[79.468824,51.49311],[79.14874,51.8681],[78.992057,52.047392],[78.721428,52.357011],[78.4755,52.638441],[78.198049,52.929689],[78.033511,53.094951],[77.859982,53.269178],[77.799365,53.317418],[77.704384,53.379171],[77.469256,53.498776],[77.132429,53.670135],[76.820665,53.822658],[76.575719,53.942522],[76.513087,53.993216],[76.484769,54.022543],[76.458569,54.055254],[76.422033,54.113519],[76.421723,54.151527],[76.654577,54.145274],[76.70305,54.182455],[76.788988,54.321878],[76.837305,54.442362],[76.759377,54.436884],[76.61551,54.38712],[76.539184,54.35105],[76.496499,54.335702],[76.266591,54.311982],[76.140552,54.258549],[75.880619,54.16796],[75.692879,54.114785],[75.656809,54.106],[75.437184,54.08967],[75.398116,54.068483],[75.392329,54.021742],[75.377033,53.970143],[75.220195,53.893817],[75.052194,53.826689],[74.988942,53.819248],[74.88683,53.834027],[74.83412,53.825707],[74.681468,53.754394],[74.451921,53.647243],[74.430424,53.603705],[74.429287,53.550737],[74.402777,53.504435],[74.351514,53.48764],[74.277306,53.527741],[74.209972,53.576472],[74.068637,53.611405],[73.858934,53.619725],[73.731138,53.602775],[73.642926,53.576265],[73.469965,53.468907],[73.40692,53.447539],[73.371832,53.454386],[73.361858,53.506192],[73.326873,53.543166],[73.285687,53.598408],[73.305686,53.707213],[73.399375,53.811496],[73.554198,53.868288],[73.678945,53.929448],[73.715532,53.996213],[73.712431,54.042386],[73.666439,54.06347],[73.617967,54.067398],[73.589958,54.04497],[73.505622,53.99934],[73.38072,53.962856],[73.276592,53.955622],[73.229928,53.957818],[73.119289,53.980736],[72.91403,54.107344],[72.741069,54.1245],[72.622317,54.134345],[72.582681,54.121606],[72.564284,54.090445],[72.575601,54.056494],[72.599166,54.023059],[72.585988,53.995929],[72.530281,53.975775],[72.446772,53.941824],[72.404294,53.964458],[72.383055,54.053652],[72.387293,54.123027],[72.329467,54.181448],[72.26916,54.272114],[72.186013,54.325625],[72.105398,54.308468],[72.065607,54.231625],[72.004474,54.205684],[71.887375,54.221497],[71.677155,54.178037],[71.336452,54.158348],[71.09316,54.212221],[71.052749,54.260487],[71.152122,54.364072],[71.159822,54.455436],[71.159202,54.538635],[71.185557,54.599329],[71.126284,54.715058],[70.99177,54.950496],[70.910173,55.127979],[70.790336,55.261123],[70.738143,55.305152],[70.486272,55.282362],[70.41718,55.253165],[70.371447,55.212237],[70.293312,55.183583],[70.182466,55.162473],[70.087381,55.176762],[69.981703,55.19906],[69.870185,55.245646],[69.740271,55.307374],[69.493257,55.35688],[69.246967,55.372512],[68.977216,55.389617],[68.842961,55.358353],[68.712943,55.308511],[68.524789,55.204848],[68.438438,55.194409],[68.30196,55.186503],[68.206204,55.160923],[68.225324,55.115241],[68.244031,55.052428],[68.209408,55.003051],[68.15582,54.976696],[68.073861,54.959591],[67.939915,54.9537],[67.829896,54.943572],[67.693419,54.872413],[67.484698,54.854482],[67.257321,54.828798],[67.098365,54.788181],[66.75451,54.737899],[66.5554,54.71542],[66.222656,54.667361],[65.954714,54.659506],[65.914199,54.693303],[65.707752,54.618682],[65.476913,54.623281],[65.434435,54.593309],[65.37816,54.564473],[65.315941,54.551554],[65.237393,54.516053],[65.192228,54.441122],[65.15776,54.364408],[65.088358,54.340172],[64.995444,54.368775],[64.926714,54.396628],[64.809305,54.368568],[64.649935,54.352238],[64.525085,54.36216],[64.461213,54.384174],[64.19942,54.347432],[64.062943,54.302913],[64.037415,54.279736],[64.003877,54.267101],[63.84709,54.236483],[63.721206,54.24501],[63.701311,54.243227],[63.58199,54.22191],[63.413628,54.183205],[63.292706,54.170441],[63.191316,54.171061],[63.126617,54.13928],[63.073959,54.105225],[62.632694,54.06931],[62.588252,54.044453],[62.499007,54.013163],[62.040276,54.002647],[62.002345,53.97991],[61.985654,53.954407],[61.928654,53.946475],[61.598132,53.994947],[61.333704,54.049259],[61.231023,54.019494],[61.143689,53.963838],[61.1132,53.882448],[61.1132,53.812995],[61.1132,53.753463],[61.073513,53.710469],[60.98556,53.657397],[60.979462,53.62174],[61.098524,53.583112],[61.247972,53.550995],[61.336132,53.56518],[61.409926,53.587039],[61.474109,53.58027],[61.51917,53.554483],[61.534932,53.523297],[61.52656,53.501567],[61.4985,53.484643],[61.400935,53.455807],[61.311638,53.465729],[61.228956,53.445885],[61.185961,53.406198],[61.16281,53.336745],[61.19919,53.287135],[61.310966,53.275198],[61.436798,53.239386],[61.576221,53.222436],[61.659834,53.228483],[61.766184,53.173912],[62.014696,53.10787],[62.0811,53.057434],[62.082702,53.005421],[62.037123,52.966121],[61.974181,52.943745],[61.888554,52.955889],[61.719365,52.969403],[61.53364,52.978524],[61.400728,52.99599],[61.206941,52.989066],[61.047468,52.972478],[61.00654,52.933358],[60.944735,52.860159],[60.893265,52.819412],[60.802315,52.744739],[60.774358,52.675803],[60.821228,52.569815],[60.979462,52.394787],[60.994551,52.336857],[60.937604,52.280582],[60.828411,52.233375],[60.670333,52.150822],[60.499336,52.146326],[60.42549,52.125604],[60.233667,52.024499],[60.065512,51.976466],[60.030321,51.933264],[60.067476,51.890631],[60.280383,51.834614],[60.387508,51.773016],[60.418307,51.703924],[60.464764,51.651163],[60.630336,51.616953],[60.973571,51.537061],[60.993311,51.52869],[61.014808,51.492361],[61.363108,51.441873],[61.411373,51.414743],[61.554724,51.324594],[61.585058,51.22969],[61.512194,51.137034],[61.465013,50.990221],[61.389411,50.86103],[61.226888,50.774782],[60.942306,50.695511],[60.637984,50.66373],[60.508483,50.669181],[60.424767,50.679129],[60.288031,50.704141],[60.186745,50.76977],[60.112124,50.834158],[60.058588,50.850281],[60.005258,50.839688],[59.955183,50.799277],[59.887797,50.690188],[59.812401,50.582029],[59.751216,50.543944],[59.523013,50.492861],[59.497795,50.511077],[59.523943,50.582804],[59.495108,50.604302],[59.45232,50.620425],[59.170838,50.647917],[59.064333,50.6682],[58.984855,50.676132],[58.883672,50.694451],[58.814012,50.737213],[58.664564,50.868317],[58.547465,50.971049],[58.359157,51.063834],[58.188418,51.08174],[58.174723,51.072258],[58.045171,51.068873],[57.838827,51.091662],[57.828905,51.089027],[57.764878,51.046884],[57.717025,50.980945],[57.653773,50.925135],[57.557862,50.89555],[57.44221,50.888884],[57.312502,50.946555],[57.179022,51.036058],[57.011745,51.065204],[56.849636,51.045541],[56.790363,51.031614],[56.620245,50.980868],[56.566915,51.00451],[56.491467,51.019522],[56.325637,50.936064],[56.143995,50.844649],[56.104514,50.776281],[56.049685,50.713546],[55.929227,50.653756],[55.797659,50.602028],[55.686245,50.582856],[55.542274,50.601795],[55.361097,50.665306],[55.195215,50.744707],[55.014813,50.869763],[54.868,50.941361],[54.72713,50.998076],[54.641657,51.011564],[54.572928,50.990221],[54.546056,50.946038],[54.56559,50.91126],[54.606259,50.879892],[54.637937,50.781061],[54.649977,50.660164],[54.63618,50.591615],[54.596182,50.550662],[54.555254,50.535779],[54.517427,50.541153],[54.471435,50.583812],[54.443323,50.67391],[54.421516,50.780312],[54.297906,50.91405],[54.191142,50.995725],[54.139776,51.040761],[54.041487,51.115175],[53.956841,51.161167],[53.776491,51.213722],[53.688124,51.251807],[53.534645,51.399576],[53.448655,51.444509],[53.338119,51.482362],[53.247272,51.493601],[53.227377,51.484971],[53.038344,51.463732],[52.902642,51.466936],[52.820477,51.494583],[52.735033,51.497882],[52.728131,51.498149],[52.635113,51.479545],[52.617802,51.480786],[52.571189,51.481638],[52.496207,51.512153],[52.423085,51.594215],[52.330997,51.68129],[52.21917,51.70935],[52.007141,51.672712],[51.775424,51.55427],[51.609078,51.48399],[51.473479,51.482026],[51.395964,51.471277],[51.344546,51.47536],[51.301086,51.497425],[51.290751,51.540188],[51.269925,51.594474],[51.16342,51.647442],[51.017899,51.681652],[50.882455,51.719169],[50.793934,51.729194],[50.756158,51.675141],[50.643917,51.589177],[50.516328,51.505616],[50.353702,51.369733],[50.309312,51.321571],[50.246887,51.289505],[50.10488,51.254598],[49.932332,51.19716],[49.82221,51.131892],[49.666302,51.102307],[49.497992,51.083601],[49.424611,51.027015],[49.379498,50.934669],[49.323429,50.851728],[49.058691,50.726077],[48.913738,50.644558],[48.808422,50.601304],[48.734731,50.606885],[48.655149,50.619856],[48.625125,50.612673],[48.666001,50.550351],[48.700521,50.353774],[48.749459,50.228459],[48.784806,50.156422],[48.81793,50.099836],[48.843252,50.013123],[48.810282,49.962377],[48.759019,49.928322],[48.599959,49.874682],[48.434284,49.828535],[48.334962,49.858249],[48.224788,49.93194],[48.18138,49.970025],[48.060715,50.093583],[47.849669,50.282306],[47.70575,50.377959],[47.599658,50.413564],[47.503592,50.402712],[47.429178,50.35796],[47.376364,50.318118],[47.326445,50.273521],[47.294716,50.217504],[47.297713,50.140247],[47.295232,50.058495],[47.248362,50.000876],[47.129609,49.939045],[46.991943,49.85272],[46.889572,49.696967],[46.823116,49.50225],[46.802084,49.367065],[46.852985,49.303864],[46.953444,49.252601],[47.018143,49.199917],[47.031373,49.150282],[47.014268,49.098347],[46.962229,49.038351],[46.852985,48.969621],[46.702607,48.805548],[46.609228,48.573883],[46.660904,48.412239],[46.85314,48.323588],[47.004346,48.284469],[47.0646,48.232457],[47.119016,48.126985],[47.111574,48.020118],[47.093281,47.94772],[47.130798,47.876768],[47.20206,47.792458],[47.292338,47.740936],[47.387268,47.768661],[47.481939,47.803904],[47.600175,47.790003],[47.934677,47.760703],[48.109963,47.745406],[48.167014,47.708768],[48.275689,47.589964],[48.413097,47.456483],[48.55252,47.320988],[48.600682,47.262309],[48.714319,47.100485],[48.831883,46.954938],[48.959317,46.774587],[48.950325,46.725779],[48.883611,46.705418],[48.776382,46.710327],[48.693597,46.736837],[48.647088,46.758697],[48.605333,46.765931],[48.558359,46.757146],[48.518517,46.734305],[48.502394,46.698649],[48.509215,46.649969],[48.541151,46.605631],[48.586006,46.577106],[48.610139,46.56646],[48.774315,46.507937],[48.958955,46.442127],[49.184264,46.348851],[49.232272,46.337172],[49.245914,46.291593],[49.125508,46.281723],[49.110625,46.228445],[49.07962,46.189222],[48.809972,46.100494],[48.742586,46.100752],[48.683675,46.08618],[48.687292,46.028767],[48.703415,45.976212],[48.749614,45.920557],[48.729563,45.896837],[48.689669,45.888879],[48.637373,45.905777],[48.589107,45.934845],[48.537327,45.942131],[48.486994,45.934871],[48.257654,45.777775],[48.159159,45.737002],[48.052809,45.720982],[47.830187,45.663053],[47.763938,45.665947],[47.701099,45.686204],[47.649836,45.656748],[47.6333,45.58404],[47.574078,45.634295],[47.508346,45.674163],[47.479407,45.687573],[47.463284,45.679693],[47.524262,45.601687],[47.529533,45.530219],[47.514547,45.490893],[47.488709,45.455055],[47.454499,45.433067],[47.413055,45.421052],[47.391144,45.294755],[47.35125,45.217705],[47.296163,45.149441],[47.221542,45.024281],[47.161494,44.969607],[47.114778,44.905941],[47.083772,44.817006],[47.039227,44.837909],[47.00295,44.876072],[46.983727,44.82561],[46.957475,44.78259],[46.841203,44.718253],[46.755214,44.656525],[46.716146,44.560691],[46.707258,44.50333],[46.720901,44.45168],[46.753043,44.420648],[46.915721,44.387136],[47.023621,44.343263],[47.122633,44.261691],[47.229913,44.192393],[47.307015,44.103148],[47.361482,43.993336],[47.429178,43.77986],[47.462767,43.555016],[47.562606,43.834689],[47.646529,43.884608],[47.627822,43.805957],[47.567981,43.684982],[47.508966,43.509696],[47.489846,43.381693],[47.511653,43.270744],[47.512894,43.218758],[47.463181,43.035048],[47.488916,42.999753],[47.529017,42.967145],[47.63485,42.90348],[47.709057,42.810927],[47.727764,42.680728],[47.769725,42.644788],[47.822332,42.613472],[48.080197,42.35372],[48.228612,42.18094],[48.303026,42.080222],[48.383745,41.953434],[48.426326,41.923979],[48.476762,41.905143],[48.57288,41.844475],[48.51862,41.779336],[48.430719,41.663349],[48.391393,41.601905],[48.298117,41.54501],[48.142312,41.484755],[48.056064,41.45871],[47.963719,41.333963],[47.861089,41.21273],[47.791016,41.199269],[47.591855,41.218105],[47.520593,41.22906],[47.31766,41.282442],[47.261178,41.315075],[47.205315,41.455609],[47.142632,41.516045],[47.063929,41.554699],[47.010185,41.587488],[46.987758,41.621387],[46.930914,41.670428],[46.825597,41.743421],[46.749323,41.81259],[46.690308,41.831349],[46.615997,41.806958],[46.571246,41.800085],[46.552125,41.81228],[46.537656,41.87039],[46.429911,41.890958],[46.411565,41.904626],[46.267802,41.960333],[46.212663,41.989892],[46.159798,41.992062],[46.048487,42.008754],[45.954022,42.035393],[45.910407,42.070714],[45.846019,42.109936],[45.726543,42.158874],[45.638589,42.205073],[45.634248,42.234735],[45.688354,42.357363],[45.727576,42.47503],[45.705252,42.498078],[45.655539,42.517663],[45.562935,42.53575],[45.343724,42.529782],[45.208228,42.64825],[45.160272,42.675018],[45.071595,42.694164],[44.943386,42.73026],[44.870988,42.756383],[44.850524,42.746823],[44.771045,42.616779],[44.691774,42.709641],[44.644335,42.73473],[44.576432,42.748476],[44.505894,42.748657],[44.329522,42.703492],[44.199711,42.653624],[44.102714,42.616365],[44.004684,42.595592],[43.957452,42.566549],[43.825987,42.57151],[43.759841,42.593835],[43.738344,42.616986],[43.749919,42.6575],[43.795394,42.702975],[43.798702,42.72778],[43.782579,42.747003],[43.623105,42.807723],[43.557786,42.844465],[43.34798,42.896658],[43.089184,42.989056],[43.000146,43.049672],[42.991619,43.091479],[42.890023,43.132613],[42.760625,43.169562],[42.66027,43.159071],[42.566012,43.155144],[42.419044,43.224235],[42.279673,43.228059],[42.122215,43.207337],[42.087798,43.199121],[42.049971,43.190129],[41.580542,43.219249],[41.460756,43.276299],[41.35823,43.333376],[41.083105,43.374485],[40.942028,43.418074],[40.801675,43.47993],[40.64799,43.533906],[40.519005,43.512021],[40.342272,43.542743],[40.150139,43.569796],[40.084613,43.553104],[40.023738,43.48484],[39.978315,43.419831],[39.87367,43.472799],[39.516689,43.7279],[39.329414,43.897269],[38.717255,44.288098],[38.635813,44.318019],[38.311801,44.374449],[38.181267,44.419666],[37.851468,44.698822],[37.704913,44.661357],[37.572415,44.670865],[37.495107,44.695257],[37.411288,44.735358],[37.352377,44.788378],[37.28406,44.905011],[37.204789,44.971984],[36.944443,45.069601],[36.650817,45.126445],[36.627666,45.151301],[36.619088,45.185485],[36.873026,45.25176],[36.941239,45.289691],[36.811014,45.340024],[36.761612,45.348343],[36.720374,45.371856],[36.793755,45.409735],[36.865895,45.427072],[36.977826,45.383587],[37.103503,45.302868],[37.213574,45.272327],[37.264217,45.310956],[37.647139,45.377205],[37.672977,45.429734],[37.67184,45.488387],[37.634427,45.486319],[37.609932,45.499497],[37.612413,45.564713],[37.669257,45.654061],[37.840926,45.799582],[37.933116,46.001689],[38.014248,46.047732],[38.073883,46.017114],[38.069749,45.969882],[38.079567,45.934819],[38.132794,46.002825],[38.183644,46.094809],[38.311801,46.095378],[38.400375,46.08003],[38.492255,46.09052],[38.315212,46.241958],[38.077707,46.394326],[37.977558,46.382854],[37.913893,46.406496],[37.80961,46.532095],[37.766512,46.63612],[37.867384,46.633795],[37.967946,46.618033],[38.159459,46.69069],[38.229946,46.701284],[38.343427,46.67834],[38.500937,46.663664],[38.488018,46.732187],[38.438615,46.81306],[38.630748,46.873031],[38.801074,46.906129],[39.126739,47.023435],[39.270709,47.044157],[39.289003,47.070874],[39.293447,47.105756],[39.244561,47.199497],[39.195675,47.268872],[39.023696,47.272205],[38.928301,47.175674],[38.668162,47.143944],[38.552407,47.150352],[38.644391,47.212209],[38.736065,47.235825],[38.761903,47.261612],[38.577212,47.239132],[38.484814,47.175519],[38.214391,47.091441],[38.205813,47.135573],[38.201369,47.17526],[38.221213,47.212726],[38.265344,47.236962],[38.280744,47.259054],[38.280744,47.276649],[38.241056,47.287708],[38.207983,47.296519],[38.201369,47.320781],[38.212428,47.342795],[38.243278,47.373698],[38.256508,47.408941],[38.25873,47.479531],[38.28741,47.559165],[38.368852,47.609962],[38.510962,47.622416],[38.640567,47.665928],[38.718908,47.71409],[38.822313,47.837029],[38.900293,47.855115],[39.057802,47.848501],[39.158468,47.837416],[39.39096,47.833721],[39.658489,47.841215],[39.735952,47.844806],[39.778689,47.887542],[39.775795,47.964463],[39.813932,48.035285],[39.885039,48.168378],[39.961003,48.237934],[39.957902,48.268914],[39.918112,48.281911],[39.866332,48.288422],[39.847418,48.302788],[39.849899,48.331934],[39.889793,48.360459],[39.882558,48.419112],[39.857547,48.48425],[39.835636,48.542774],[39.765408,48.571868],[39.644743,48.591195],[39.670426,48.662431],[39.704585,48.739351],[39.755848,48.782061],[39.7929,48.807719],[39.904159,48.793766],[39.984464,48.807357],[40.003584,48.822085],[39.989167,48.851437],[39.863748,48.877999],[39.753367,48.914431],[39.705618,48.959596],[39.68655,49.007913],[39.759465,49.036594],[39.889741,49.06406],[39.976351,49.129818],[40.069989,49.200279],[40.108798,49.251542],[40.12828,49.307249],[40.126213,49.368873],[40.057845,49.431557],[40.057845,49.497082],[40.094897,49.542661],[40.080634,49.576845],[40.030663,49.59674],[39.958523,49.590772],[39.876822,49.567672],[39.780549,49.572039],[39.626553,49.650665],[39.462791,49.728024],[39.368481,49.73066],[39.302955,49.742055],[39.246008,49.781949],[39.211798,49.833212],[39.174798,49.855975],[39.114956,49.841764],[39.027675,49.818406],[38.918379,49.824685],[38.776683,49.884346],[38.64775,49.952869],[38.551993,49.954574],[38.451224,49.964082],[38.258575,50.052346],[38.208655,50.051467],[38.177598,50.025371],[38.162663,49.954522],[38.146799,49.939407],[38.112485,49.927831],[38.046908,49.920002],[37.950273,49.964212],[37.70419,50.109061],[37.605126,50.21492],[37.582337,50.291866],[37.501308,50.3407],[37.422812,50.411497],[37.343178,50.417646],[37.254915,50.39496],[37.171044,50.36088],[37.131202,50.351501],[36.988523,50.339563],[36.75908,50.29184],[36.696396,50.246262],[36.61945,50.209235],[36.55966,50.234867],[36.499819,50.280445],[36.368871,50.296827],[36.306084,50.280445],[36.243401,50.311761],[36.18945,50.36783],[36.11638,50.408525],[36.007756,50.419662],[35.890192,50.437128],[35.796193,50.405761],[35.67372,50.345971],[35.591089,50.36876],[35.54551,50.439971],[35.488511,50.459918],[35.411617,50.53968],[35.39167,50.610916],[35.411617,50.642232],[35.440142,50.682101],[35.440142,50.727679],[35.417353,50.767573],[35.383143,50.798915],[35.346143,50.904309],[35.314775,50.949888],[35.309091,50.986914],[35.334722,51.021124],[35.311933,51.043913],[35.269196,51.046755],[35.197986,51.043913],[35.158092,51.060992],[35.115356,51.120833],[35.092566,51.180649],[35.064093,51.203438],[34.990247,51.201733],[34.868549,51.189201],[34.76039,51.169332],[34.712279,51.172226],[34.616833,51.203128],[34.491053,51.23708],[34.234221,51.243798],[34.21386,51.255373],[34.228381,51.27687],[34.280678,51.311675],[34.274994,51.340174],[34.22988,51.363248],[34.206574,51.419937],[34.209261,51.484093],[34.20089,51.55383],[34.146784,51.607961],[34.115417,51.644962],[34.121153,51.679171],[34.239182,51.692246],[34.379328,51.716508],[34.402686,51.741493],[34.397828,51.780406],[34.11304,51.979618],[34.015319,52.155964],[33.922043,52.251462],[33.818846,52.315644],[33.735233,52.344764],[33.61338,52.33262],[33.45184,52.333808],[33.287095,52.353549],[33.148447,52.340423],[32.899729,52.256346],[32.806504,52.252625],[32.645429,52.279083],[32.507918,52.308539],[32.435468,52.307247],[32.391336,52.294844],[32.363017,52.272133],[32.282815,52.114029],[32.216773,52.082971],[32.122257,52.050596],[32.04159,52.045041],[31.97379,52.046643],[31.875605,52.070879],[31.782381,52.099404],[31.763364,52.101084],[31.75861,52.125811],[31.690603,52.220637],[31.649882,52.262185],[31.601513,52.284819],[31.577329,52.312311],[31.576502,52.426025],[31.585545,52.532453],[31.615931,52.546199],[31.526169,52.632989],[31.519451,52.698747],[31.563479,52.731459],[31.564823,52.759235],[31.535161,52.798225],[31.442815,52.861838],[31.353001,52.933462],[31.295175,52.989789],[31.258795,53.016713],[31.302927,53.060896],[31.364525,53.138979],[31.3884,53.184816],[31.417855,53.19603],[31.562963,53.202489],[31.668279,53.200913],[31.747448,53.184196],[31.77742,53.146885],[31.849715,53.106216],[32.055439,53.089473],[32.141997,53.091152],[32.250673,53.128385],[32.426269,53.210603],[32.469367,53.270289],[32.578043,53.312405],[32.644447,53.32889],[32.704288,53.336331],[32.710283,53.37142],[32.706459,53.419427],[32.685685,53.448159],[32.469626,53.546964],[32.442392,53.579262],[32.425236,53.61727],[32.45097,53.65334],[32.450144,53.692899],[32.200443,53.78124],[31.992135,53.796872],[31.820828,53.791937],[31.754217,53.810463],[31.783053,53.854956],[31.825272,53.935029],[31.837778,54.000787],[31.825944,54.030708],[31.792044,54.0559],[31.628385,54.111194],[31.403593,54.195943],[31.299103,54.291699],[31.245566,54.391642],[31.184795,54.452956],[31.074827,54.491816],[31.081907,54.517086],[31.154926,54.610956],[31.152135,54.625348],[31.121284,54.648499],[30.984187,54.695887],[30.798875,54.783271],[30.791072,54.806009],[30.804456,54.860941],[30.829932,54.914995],[30.866829,54.940729],[30.977675,55.05049],[30.977675,55.087801],[30.958865,55.137617],[30.877475,55.223451],[30.814481,55.278719],[30.810554,55.30696],[30.820992,55.330266],[30.861817,55.360394],[30.900574,55.397394],[30.908739,55.525345],[30.906879,55.570045],[30.882229,55.5964],[30.855926,55.60751],[30.800735,55.601103],[30.721619,55.622135],[30.662346,55.655492],[30.625604,55.666267],[30.586692,55.70027],[30.47538,55.768793],[30.45626,55.786802],[30.233638,55.845222],[30.042642,55.836437],[29.937015,55.845274],[29.881618,55.832303],[29.823947,55.795096],[29.744159,55.77042],[29.684576,55.769749],[29.630057,55.751171],[29.482263,55.68456],[29.413016,55.724868],[29.353382,55.784373],[29.373174,55.834732],[29.397927,55.88106],[29.396118,55.912195],[29.375034,55.938705],[29.282998,55.96785],[29.087403,56.021129],[29.031748,56.021775],[28.947412,56.002112],[28.79476,55.94258],[28.740809,55.955396],[28.690787,56.002628],[28.636888,56.061746],[28.563973,56.092003],[28.407083,56.089031],[28.392097,56.086706],[28.316339,56.052548],[28.2843,56.055907],[28.147926,56.14293],[28.17335,56.190343],[28.202031,56.260391],[28.191696,56.315555],[28.169268,56.386869],[28.110874,56.510685],[28.103174,56.545722],[28.007521,56.599853],[27.991604,56.645328],[27.941375,56.703723],[27.892076,56.741085],[27.881534,56.82418],[27.848667,56.853429],[27.806086,56.867072],[27.655708,56.843223],[27.639481,56.845652],[27.711105,56.978073],[27.717409,57.054631],[27.762781,57.135117],[27.814561,57.166899],[27.830219,57.194468],[27.838229,57.247695],[27.828617,57.293299],[27.796888,57.316941],[27.672761,57.368127],[27.538712,57.429802],[27.511117,57.50817],[27.469672,57.524034],[27.351954,57.528117],[27.354279,57.550286],[27.371797,57.612556],[27.400013,57.666816],[27.491997,57.724952],[27.514734,57.764226],[27.542123,57.799418],[27.752859,57.841018],[27.776941,57.856727],[27.778491,57.87068],[27.768776,57.884142],[27.721957,57.905484],[27.673381,57.934604],[27.64408,58.013927],[27.571113,58.138105],[27.502435,58.221356],[27.487811,58.270087],[27.505536,58.326259],[27.530134,58.381476],[27.531374,58.435245],[27.427039,58.733056],[27.434171,58.787265],[27.464401,58.841318],[27.513081,58.886277],[27.621756,58.944955],[27.757665,59.052003],[27.849494,59.192666],[27.897657,59.277622],[27.938171,59.297001],[28.016461,59.301729],[28.046123,59.327852],[28.061368,59.343251],[28.128289,59.357566],[28.151078,59.374438],[28.132991,59.403093],[28.065812,59.453167],[28.012533,59.484276],[28.063951,59.553988],[28.046278,59.647161],[28.013929,59.724779],[28.05806,59.781519],[28.131131,59.786532],[28.21247,59.724675],[28.334529,59.692507],[28.423723,59.73408],[28.453902,59.814282],[28.518187,59.849577],[28.603867,59.81808],[28.747631,59.806712],[28.8669,59.811905],[28.947308,59.828752],[28.981518,59.854796],[29.013351,59.901538],[29.079083,59.960992],[29.147296,59.999775],[29.669745,59.955643],[30.122534,59.873607],[30.156847,59.904277],[30.17266,59.957116],[30.059902,60.002591],[29.976806,60.026362],[29.872317,60.120853],[29.721215,60.195292],[29.569389,60.201855],[29.370435,60.175914],[29.069161,60.191468],[28.81264,60.331563],[28.643141,60.375281],[28.522321,60.482975],[28.491626,60.540129],[28.62247,60.491605],[28.64035,60.542894],[28.650582,60.610978],[28.577822,60.652526],[28.512813,60.677279],[28.179293,60.57098],[27.797663,60.536124],[28.152008,60.745827],[28.407445,60.896929],[28.455039,60.919641],[28.568107,60.960207],[28.66283,61.00284],[28.739052,61.058754],[28.99299,61.169031],[29.251631,61.287784],[29.49234,61.444234],[29.579415,61.493482],[29.690157,61.546114],[29.933191,61.711582],[30.009931,61.757368],[30.306502,61.964849],[30.479721,62.068201],[30.565608,62.127578],[30.935714,62.323793],[31.186758,62.481406],[31.285667,62.567809],[31.382405,62.691652],[31.437337,62.776117],[31.534024,62.885413],[31.536504,62.921638],[31.509271,62.955331],[31.436976,63.007731],[31.336723,63.068089],[31.247426,63.141883],[31.180867,63.208287],[30.974782,63.300633],[30.655266,63.417473],[30.418536,63.504031],[30.055406,63.689007],[29.991534,63.73518],[30.004091,63.747324],[30.21028,63.803341],[30.415332,63.947518],[30.503906,64.020589],[30.526075,64.077304],[30.527884,64.141124],[30.513776,64.200009],[30.487886,64.236545],[30.390683,64.282433],[30.108116,64.366123],[30.041867,64.443379],[29.986625,64.524279],[29.985591,64.557739],[30.120157,64.644633],[30.126151,64.688093],[30.110235,64.732587],[30.072821,64.765039],[29.783226,64.804313],[29.701681,64.845758],[29.637447,64.911749],[29.604219,64.968386],[29.600912,65.00195],[29.622513,65.039493],[29.720026,65.080317],[29.810873,65.107913],[29.826945,65.145068],[29.826221,65.185324],[29.810563,65.204754],[29.629696,65.223874],[29.612384,65.234778],[29.607992,65.248679],[29.617138,65.265345],[29.714807,65.336942],[29.728036,65.47342],[29.819452,65.568763],[29.715944,65.624573],[29.723902,65.634392],[29.882652,65.663641],[30.028999,65.670721],[30.095352,65.681676],[30.102742,65.726273],[30.087497,65.786527],[29.936602,66.022973],[29.903426,66.091082],[29.803484,66.177072],[29.720646,66.234872],[29.670882,66.276136],[29.590732,66.356829],[29.544378,66.439718],[29.464331,66.532167],[29.37121,66.617019],[29.29323,66.695516],[29.093088,66.849227],[29.066268,66.891731],[29.069006,66.930204],[29.08699,66.970951],[29.243414,67.096602],[29.387747,67.201428],[29.572283,67.324366],[29.750619,67.426401],[29.941253,67.547479],[29.988072,67.668273],[29.979235,67.688582],[29.82157,67.754004],[29.524172,67.929084],[29.343873,68.061867],[29.06296,68.117961],[28.685206,68.189792],[28.560097,68.351358],[28.470748,68.488378],[28.479327,68.537626],[28.752075,68.771436],[28.777603,68.81381],[28.772849,68.840036],[28.74484,68.856469],[28.705928,68.865538],[28.453488,68.872282],[28.414008,68.904167],[28.56604,68.928248],[28.692234,68.961011],[28.898939,69.00969],[28.96586,69.021989],[29.118564,69.049946],[29.170861,69.071521],[29.209928,69.097023],[29.35302,69.27063],[29.388315,69.298148],[29.832732,69.360469],[29.994066,69.392457],[30.08729,69.432868],[30.131887,69.464236],[30.163772,69.501598],[30.186716,69.542784],[30.196534,69.580559],[30.159741,69.629859],[30.180153,69.635853],[30.22754,69.633786],[30.379676,69.584694],[30.615372,69.532552],[30.788901,69.528521],[30.860732,69.538417],[30.896647,69.561232],[30.922485,69.605829],[30.924139,69.65177],[30.869775,69.783441],[31.049506,69.76923],[31.452789,69.689597],[31.546943,69.696935],[31.666212,69.72099],[31.788582,69.815791],[31.879429,69.831991],[31.997975,69.809899],[32.030531,69.835324],[31.969346,69.913924],[31.984539,69.953663],[32.391543,69.868707],[32.565382,69.806489],[32.94169,69.751867],[33.007836,69.722101],[33.01259,69.670528],[32.994607,69.62619],[32.915025,69.601695],[32.754311,69.605726],[32.176775,69.674042],[32.091509,69.632546],[32.161376,69.596631],[32.330564,69.554256],[32.377693,69.479119],[32.636799,69.489454],[32.883812,69.460851],[32.999774,69.470127],[33.020962,69.445581],[32.941587,69.383336],[32.978897,69.367317],[33.255883,69.427752],[33.384867,69.444289],[33.45432,69.428166],[33.463725,69.378194],[33.41794,69.315304],[33.412979,69.267452],[33.327713,69.151878],[33.196351,69.116867],[33.141161,69.068704],[33.333397,69.098212],[33.435613,69.130354],[33.627023,69.289156],[33.684384,69.31024],[34.229363,69.313134],[34.352767,69.302954],[34.86395,69.228074],[35.009574,69.221227],[35.175869,69.230813],[35.23323,69.265592],[35.289867,69.275436],[35.857894,69.191746],[36.618261,69.003489],[37.730545,68.692138],[38.357587,68.415152],[38.43014,68.355621],[38.656897,68.321877],[38.705576,68.344718],[38.831563,68.324925],[39.568986,68.071711],[39.823337,68.058585],[39.789747,68.112174],[39.746339,68.162196],[39.809281,68.150853],[39.895581,68.114499],[40.035727,68.015384],[40.206673,67.941874],[40.380719,67.831881],[40.525723,67.789713],[40.656568,67.774081],[40.766329,67.742997],[40.96642,67.71349],[41.060884,67.444204],[41.133851,67.386016],[41.133851,67.266954],[41.261699,67.218481],[41.358747,67.209671],[41.354303,67.121433],[41.275548,66.914314],[41.188938,66.826154],[40.521589,66.446616],[40.10332,66.299933],[39.289003,66.132036],[38.653899,66.069042],[38.397584,66.064443],[37.900664,66.095604],[37.628226,66.129607],[37.294809,66.225054],[36.983717,66.272544],[36.76988,66.293577],[36.373418,66.30231],[35.513419,66.395818],[35.363971,66.428659],[34.824572,66.611128],[34.610219,66.559607],[34.482578,66.550357],[34.396071,66.613195],[34.430901,66.629783],[34.451572,66.651229],[34.146061,66.703267],[33.893673,66.706755],[33.759521,66.750965],[33.595397,66.784606],[33.522946,66.764349],[33.482019,66.764556],[33.150256,66.843931],[33.001945,66.908319],[32.847535,67.021542],[32.885259,67.061127],[32.930424,67.08681],[32.399914,67.152697],[31.895345,67.161431],[31.982989,67.129856],[32.20158,67.113216],[32.34059,67.067896],[32.500993,67.003869],[32.463683,66.916329],[32.686408,66.829565],[32.857354,66.746934],[32.862418,66.721406],[32.928667,66.704094],[33.180538,66.679935],[33.22436,66.603842],[33.182915,66.57387],[33.217332,66.53165],[33.405227,66.484288],[33.517675,66.471395],[33.655962,66.442611],[33.593226,66.384579],[33.476954,66.346855],[33.360579,66.329543],[33.415769,66.315642],[33.566665,66.321017],[34.112678,66.22526],[34.399792,66.128419],[34.691764,65.95184],[34.786332,65.864559],[34.793153,65.816345],[34.776927,65.768286],[34.734759,65.716299],[34.715535,65.66408],[34.615696,65.509929],[34.544176,65.456677],[34.406407,65.39575],[34.535908,65.277928],[34.671093,65.168116],[34.803488,64.986008],[34.827156,64.912679],[34.832634,64.800179],[34.952213,64.755944],[34.905498,64.738684],[34.858265,64.706671],[34.869531,64.559987],[35.035412,64.440227],[35.284079,64.362532],[35.431977,64.34677],[35.647054,64.378319],[35.802084,64.33535],[36.146456,64.189002],[36.301898,64.03436],[36.364943,64.002812],[36.713759,63.945089],[36.975139,63.909536],[37.372737,63.816725],[37.44219,63.813366],[37.635357,63.893387],[37.967946,63.94912],[38.070783,64.025808],[38.062204,64.091024],[37.977145,64.207011],[37.953684,64.320131],[37.84351,64.36633],[37.74057,64.396948],[37.429581,64.37359],[37.289538,64.377931],[37.183705,64.408472],[37.040458,64.489139],[36.769363,64.685277],[36.624256,64.750518],[36.578677,64.790955],[36.528241,64.84736],[36.534546,64.938621],[36.652988,64.935468],[36.7859,64.987145],[36.882845,65.172353],[37.050173,65.195917],[37.140813,65.19429],[37.52818,65.108274],[38.009391,64.878779],[38.115741,64.854595],[38.228189,64.851236],[38.412054,64.857075],[38.442026,64.827154],[38.540935,64.791239],[38.613075,64.786692],[39.053462,64.713931],[39.567332,64.570555],[39.758018,64.577041],[39.832949,64.656416],[39.848658,64.690548],[40.057845,64.770775],[40.203676,64.78403],[40.407797,64.754885],[40.444901,64.778734],[40.375448,64.896298],[40.28119,64.9981],[40.142697,65.063264],[39.896511,65.254777],[39.798016,65.349862],[39.74913,65.447969],[39.781169,65.534734],[39.816516,65.597934],[40.327802,65.751697],[40.512804,65.843785],[40.691604,65.963416],[40.77439,65.987885],[41.076077,66.021087],[41.475743,66.123458],[41.78084,66.259315],[42.083561,66.465917],[42.210581,66.519661],[42.313728,66.514752],[42.450774,66.482402],[42.602185,66.422509],[42.806514,66.411347],[43.005985,66.420959],[43.233155,66.415533],[43.550861,66.321275],[43.603365,66.291225],[43.653181,66.250995],[43.550448,66.173377],[43.54187,66.123406],[43.623932,66.146712],[43.737,66.158391],[43.843763,66.142371],[43.944119,66.098705],[44.016673,66.049741],[44.104419,66.008581],[44.132428,66.064547],[44.145347,66.112761],[44.097185,66.235079],[44.220691,66.407058],[44.316396,66.481679],[44.488685,66.671796],[44.437112,66.794631],[44.429257,66.937723],[44.403936,67.004179],[44.291798,67.099651],[44.074447,67.167322],[43.855339,67.188612],[43.782372,67.2545],[43.795704,67.329586],[43.856373,67.439295],[44.036413,67.67065],[44.225342,67.995617],[44.231543,68.071246],[44.21387,68.112587],[44.226479,68.154445],[44.204672,68.253767],[44.169118,68.327096],[43.403997,68.608526],[43.358005,68.635811],[43.3332,68.67338],[43.413299,68.681751],[43.472003,68.679839],[44.048092,68.548839],[44.175319,68.54176],[45.078107,68.578192],[45.519423,68.546514],[45.892011,68.479671],[46.158454,68.291336],[46.429652,68.11884],[46.68359,67.970451],[46.690411,67.84883],[46.428929,67.823664],[46.174164,67.818186],[45.528725,67.75757],[45.374109,67.688892],[44.939407,67.477458],[44.9022,67.413121],[44.939511,67.350773],[45.138878,67.284731],[45.562212,67.185589],[45.752588,66.989141],[45.885293,66.891059],[45.986062,66.853129],[46.083937,66.843517],[46.297774,66.842845],[46.448566,66.818997],[46.492387,66.800186],[46.552332,66.818997],[46.690825,66.825534],[47.49646,66.929817],[47.655831,66.975912],[47.709057,67.045004],[47.768072,67.275635],[47.839282,67.355734],[47.908218,67.454694],[47.882587,67.515311],[47.874732,67.584195],[48.278738,67.650367],[48.653806,67.695248],[48.833226,67.681502],[48.877875,67.73137],[48.76274,67.827023],[48.695664,67.874204],[48.754265,67.895959],[48.840564,67.869708],[48.953942,67.853791],[49.155274,67.870431],[49.931247,68.065148],[50.233244,68.175322],[50.414008,68.218369],[50.699366,68.317742],[50.838892,68.349937],[51.078567,68.363321],[51.336123,68.40244],[51.616726,68.476337],[51.994687,68.538763],[52.055665,68.541295],[52.128839,68.532045],[52.285315,68.459388],[52.227438,68.418589],[52.183513,68.374276],[52.259167,68.350919],[52.322212,68.339705],[52.39673,68.35172],[52.474968,68.382131],[52.669685,68.426754],[52.722601,68.484037],[52.647671,68.506129],[52.550105,68.592454],[52.435074,68.610205],[52.34402,68.608164],[52.683534,68.731206],[53.412895,68.912538],[53.801915,68.995892],[54.185871,69.003334],[54.491176,68.992327],[54.376247,68.964731],[53.874366,68.926594],[53.797678,68.907448],[53.798195,68.884659],[53.919531,68.871249],[53.970587,68.844274],[53.929246,68.811847],[53.891212,68.801537],[53.833851,68.708933],[53.758921,68.634002],[53.917671,68.536954],[53.9309,68.435565],[53.829511,68.382648],[53.689984,68.402518],[53.566684,68.367068],[53.342615,68.343193],[53.293419,68.31167],[53.260553,68.267461],[53.40318,68.256816],[53.515111,68.259658],[53.91364,68.231184],[53.9679,68.22736],[54.099158,68.259012],[54.232897,68.266299],[54.393921,68.275109],[54.476189,68.294152],[54.561249,68.273042],[54.717932,68.184185],[54.861386,68.201832],[54.923087,68.373811],[55.150877,68.480006],[55.418044,68.567831],[55.675289,68.575866],[55.924576,68.637309],[56.043639,68.648885],[56.275666,68.62408],[56.620245,68.619068],[56.909426,68.566719],[57.12688,68.554007],[57.444277,68.641495],[58.173018,68.889749],[58.236993,68.833938],[58.353886,68.916207],[58.918916,69.003799],[59.057305,69.006047],[59.059889,68.972534],[59.110118,68.896312],[59.220396,68.849596],[59.370568,68.738389],[59.298324,68.708468],[59.222566,68.691311],[59.112289,68.616329],[59.09906,68.44435],[59.310726,68.40027],[59.604248,68.351125],[59.725688,68.351616],[59.827491,68.380323],[59.858807,68.396032],[59.897357,68.421922],[59.922885,68.471325],[59.941386,68.510496],[59.865111,68.604908],[59.896014,68.706323],[60.160287,68.699528],[60.489156,68.728932],[60.637674,68.787016],[60.815131,68.895227],[60.933573,68.986746],[60.858539,69.145496],[60.664546,69.110252],[60.33733,69.457053],[60.170622,69.590921],[60.276456,69.652648],[60.558712,69.692336],[60.81296,69.821165],[60.909078,69.847106],[61.015945,69.851447],[61.770525,69.763029],[62.631247,69.743108],[63.361435,69.675282],[64.190429,69.534671],[64.592161,69.435659],[64.928575,69.325381],[64.896329,69.247815],[65.031514,69.269829],[65.326793,69.201358],[65.527918,69.173452],[65.735761,69.132318],[65.812655,69.077024],[66.084783,69.036303],[66.365645,68.961313],[66.416132,68.947833],[66.756473,68.891997],[67.002453,68.873574],[67.149214,68.753943],[67.639624,68.579277],[67.730781,68.513648],[68.156905,68.40368],[68.371155,68.314254],[68.50417,68.348438],[68.829525,68.567443],[69.024345,68.81797],[69.140514,68.950624],[68.924403,68.956205],[68.762863,68.917396],[68.65951,68.927369],[68.542721,68.967108],[68.355136,69.067567],[68.117424,69.236239],[68.073086,69.420776],[68.005803,69.480049],[67.774292,69.529968],[67.624121,69.584409],[67.064465,69.693679],[66.964006,69.655568],[66.934137,69.596682],[66.89662,69.553791],[66.840293,69.609188],[66.804016,69.659211],[66.802879,69.740136],[66.832231,69.842197],[66.926386,70.014254],[67.069012,70.005598],[67.14446,70.030609],[67.239235,70.108072],[67.19748,70.171609],[67.146424,70.2199],[67.156862,70.295141],[67.246883,70.50009],[67.284813,70.738706],[67.211536,70.798418],[67.143323,70.837537],[66.822516,70.797384],[66.702213,70.81852],[66.675238,70.864719],[66.666143,70.900608],[66.758747,70.962336],[66.847011,71.063725],[66.692601,71.041711],[66.639685,71.081398],[66.768049,71.139896],[66.917601,71.282368],[67.274271,71.347842],[67.541748,71.412024],[67.959397,71.548398],[68.269249,71.682808],[68.469444,71.852617],[68.60742,72.012762],[68.829732,72.391551],[69.039021,72.669932],[69.391351,72.955496],[69.611803,72.981954],[69.694279,72.977561],[69.708955,72.9564],[69.658829,72.931828],[69.645083,72.89754],[69.738307,72.884983],[69.887548,72.882554],[70.172182,72.901184],[70.655357,72.890383],[71.500163,72.913689],[71.616952,72.902114],[71.929594,72.81969],[72.100953,72.828992],[72.446359,72.790338],[72.633841,72.744501],[72.812124,72.691429],[72.787423,72.482966],[72.752903,72.343181],[72.624436,72.079425],[72.574103,72.012556],[72.374942,71.821611],[72.279547,71.695521],[72.129685,71.609169],[71.912024,71.547933],[71.884429,71.511398],[71.867273,71.457396],[72.079249,71.306707],[72.581338,71.15111],[72.704534,70.963214],[72.731613,70.822861],[72.699987,70.457302],[72.653271,70.403403],[72.561907,70.345551],[72.469406,70.274936],[72.529661,70.172513],[72.599424,69.793208],[72.615651,69.484028],[72.55736,69.378401],[72.527077,69.154255],[72.527284,69.080538],[72.57679,68.96871],[72.678283,68.874866],[72.811918,68.815231],[73.190706,68.706788],[73.5481,68.574523],[73.573422,68.532613],[73.591715,68.481867],[73.465211,68.430759],[73.266464,68.294488],[73.139443,68.181368],[73.129418,68.090935],[73.173033,67.973061],[73.152155,67.865057],[73.066786,67.766923],[72.948757,67.69623],[72.59436,67.586986],[71.847429,67.007642],[71.668112,66.939687],[71.365184,66.961546],[71.4489,66.878941],[71.55122,66.760447],[71.539541,66.683114],[71.342033,66.686731],[71.065668,66.604514],[70.939474,66.548135],[70.724913,66.519454],[70.561409,66.548703],[70.382815,66.602498],[70.40886,66.647612],[70.442553,66.668282],[70.568024,66.70089],[70.690704,66.745332],[70.630759,66.75422],[70.579082,66.753755],[70.444,66.697325],[70.28339,66.685801],[70.093737,66.754324],[69.94863,66.829978],[69.87711,66.845481],[69.740477,66.814578],[69.217822,66.828609],[69.078709,66.815922],[69.013493,66.788353],[69.051114,66.766338],[69.091111,66.723576],[69.143925,66.640739],[69.194361,66.578675],[69.412022,66.510747],[69.700997,66.484573],[69.982426,66.401399],[70.339407,66.342359],[71.145456,66.366647],[71.35795,66.359412],[71.565586,66.333729],[71.916985,66.246706],[72.06757,66.253321],[72.321612,66.332127],[72.384037,66.506561],[72.41742,66.56077],[73.341601,66.806827],[73.51358,66.861087],[73.792116,66.995291],[73.883274,67.084949],[73.986213,67.327674],[74.074476,67.414128],[74.676093,67.694628],[74.769524,67.766355],[74.787301,67.89751],[74.778206,67.985928],[74.742653,68.07352],[74.632478,68.218317],[74.511246,68.303066],[74.39146,68.42063],[74.480963,68.65891],[74.579562,68.751204],[75.124645,68.86174],[75.589526,68.901169],[76.107531,68.975713],[76.315993,68.9915],[76.459137,68.978271],[76.605795,68.897604],[76.735089,68.776888],[77.111707,68.596175],[77.238521,68.469568],[77.261052,68.315572],[77.248443,67.941021],[77.174442,67.778525],[77.325131,67.735659],[77.395617,67.698659],[77.579172,67.643933],[77.675083,67.589621],[77.771615,67.570243],[77.985555,67.559184],[78.58955,67.578459],[78.922449,67.589105],[78.887619,67.613134],[78.839043,67.631221],[78.55906,67.639128],[78.161255,67.67835],[77.588267,67.751885],[77.520158,67.909602],[77.53597,68.007658],[77.664852,68.190386],[77.756836,68.222348],[77.86825,68.234698],[77.995167,68.259477],[77.958684,68.377067],[77.906801,68.48228],[77.785258,68.630488],[77.650692,68.903004],[77.466311,68.905148],[77.328335,68.958634],[76.644965,69.117384],[76.000974,69.235051],[75.561104,69.251794],[75.420027,69.238616],[75.053538,69.116298],[74.814793,69.090563],[74.362624,69.144565],[73.977428,69.114645],[73.836041,69.143222],[73.775683,69.198257],[73.890922,69.417985],[73.832734,69.503923],[73.663339,69.617069],[73.560192,69.707218],[73.578073,69.802975],[73.83015,70.175665],[73.93743,70.272869],[74.206768,70.445468],[74.343401,70.57869],[74.310948,70.653621],[73.731552,71.068686],[73.576522,71.21648],[73.507276,71.263506],[73.365269,71.319756],[73.150502,71.385204],[73.086216,71.444942],[73.671814,71.845072],[73.939394,71.914732],[74.311258,71.95783],[74.489025,71.997001],[74.804044,72.07741],[74.992146,72.144847],[75.053228,72.199211],[75.089918,72.263135],[75.09705,72.420644],[75.060359,72.548802],[75.007959,72.619444],[74.896855,72.71011],[74.786784,72.811887],[74.864919,72.838423],[74.942227,72.853822],[75.152447,72.852711],[75.369281,72.796642],[75.474908,72.685021],[75.603479,72.581074],[75.603065,72.512138],[75.591386,72.457231],[75.644303,72.382275],[75.691122,72.350003],[75.741351,72.296259],[75.694429,72.253523],[75.644303,72.232336],[75.550252,72.170789],[75.394499,71.983203],[75.273886,71.958916],[75.247428,71.813395],[75.503226,71.654645],[75.468603,71.534394],[75.417133,71.494654],[75.280294,71.430059],[75.298071,71.378486],[75.332074,71.341744],[75.7336,71.265935],[76.110424,71.218547],[76.742014,71.202062],[76.928979,71.127881],[76.995228,71.18103],[77.589611,71.167904],[78.068238,70.986339],[78.320625,70.930399],[78.525781,70.911796],[78.94219,70.933784],[79.015467,70.950192],[79.083886,71.002023],[78.888653,70.997165],[78.80349,70.973549],[78.723908,70.975978],[78.587689,70.99391],[78.491364,71.025381],[78.386565,71.087134],[78.212622,71.266322],[77.908454,71.324071],[77.706606,71.300609],[77.48109,71.311565],[77.113671,71.409388],[76.871205,71.446595],[76.433402,71.55248],[76.312169,71.595475],[76.215741,71.68286],[76.103603,71.829027],[76.032393,71.910391],[76.124067,71.926618],[76.421723,72.005993],[76.871412,72.03302],[77.061271,72.004184],[77.55075,71.842101],[77.777506,71.836442],[78.186887,71.907084],[78.232362,71.952275],[78.140791,72.044673],[78.016355,72.092034],[77.780607,72.114307],[77.492872,72.071725],[77.41081,72.107744],[77.439749,72.156552],[77.471582,72.192131],[77.625267,72.201433],[77.733168,72.229183],[77.968192,72.328712],[78.225334,72.377443],[78.482579,72.394961],[79.422057,72.38075],[79.953911,72.223034],[80.473982,72.153116],[80.699188,72.098287],[80.762544,72.08914],[80.814737,72.05431],[80.856078,71.970233],[81.511232,71.746164],[81.66161,71.715985],[82.079879,71.706838],[82.547241,71.758618],[82.757771,71.764095],[82.986077,71.748696],[83.106587,71.720532],[83.233607,71.668184],[83.165498,71.602193],[83.105656,71.562454],[82.977085,71.45135],[82.917968,71.41993],[82.493187,71.292858],[82.322862,71.259992],[82.276973,71.093439],[82.254339,71.056206],[82.239146,70.997682],[82.31604,70.879447],[82.335884,70.807358],[82.270669,70.706744],[82.163182,70.59812],[82.182405,70.511484],[82.221163,70.395703],[82.235839,70.430249],[82.231498,70.482933],[82.25837,70.543601],[82.451639,70.690104],[82.592509,70.889937],[82.737824,70.942078],[82.869082,70.954842],[83.010158,70.895415],[83.051086,70.815213],[83.058424,70.694703],[83.030209,70.580498],[82.919828,70.407434],[82.742474,70.286459],[82.682323,70.21773],[82.767279,70.154064],[82.856576,70.104533],[82.961066,70.08828],[83.080748,70.093035],[83.109584,70.109545],[83.132011,70.157165],[83.094081,70.221089],[83.073824,70.276693],[83.293449,70.321315],[83.497054,70.345267],[83.659834,70.418338],[83.700452,70.466397],[83.735902,70.546469],[83.651256,70.672198],[83.578909,70.765913],[83.333859,70.98851],[83.151235,71.103619],[83.265957,71.275856],[83.457676,71.467524],[83.531057,71.51424],[83.550487,71.54367],[83.571261,71.59439],[83.553484,71.649787],[83.534364,71.683945],[83.340371,71.827554],[83.200328,71.874683],[82.755083,71.902847],[82.645426,71.925222],[82.319141,72.071829],[82.280694,72.105108],[82.209277,72.2112],[82.183645,72.237555],[82.093625,72.265434],[81.792868,72.326593],[81.586266,72.351708],[81.282719,72.358839],[81.09813,72.389742],[80.827036,72.488289],[80.797787,72.519967],[80.719652,72.647892],[80.656297,72.711996],[80.675417,72.759177],[80.773706,72.860773],[80.841609,72.949165],[80.757376,73.025259],[80.638727,73.049185],[80.509639,73.086082],[80.455482,73.155225],[80.424476,73.231138],[80.418999,73.289635],[80.398018,73.356815],[80.458273,73.41371],[80.595939,73.474017],[80.561936,73.51497],[80.583226,73.568481],[81.468857,73.640415],[81.817053,73.658838],[83.544699,73.666512],[83.666966,73.686459],[84.417411,73.722012],[84.737908,73.762836],[85.077422,73.719532],[85.200619,73.721547],[85.448356,73.734621],[85.611447,73.821593],[85.979279,73.856939],[86.591438,73.894301],[86.893022,73.887118],[86.961338,73.860763],[87.029551,73.824176],[86.697685,73.716844],[86.365922,73.619796],[86.094104,73.5783],[85.827041,73.492775],[85.800479,73.458927],[85.792624,73.438308],[85.802443,73.371697],[85.818152,73.326946],[86.098135,73.272608],[86.307942,73.195739],[86.514337,73.140497],[86.677015,73.106804],[86.715048,73.125821],[86.1217,73.30674],[85.970804,73.347048],[85.910033,73.39043],[85.938972,73.456499],[85.998916,73.485851],[86.092347,73.51913],[86.155083,73.534685],[86.376258,73.568843],[87.120088,73.615042],[87.294445,73.7047],[87.369479,73.755886],[87.571224,73.81074],[87.503217,73.83247],[87.337439,73.846061],[87.209695,73.878643],[86.697065,74.195316],[86.571078,74.243737],[86.17782,74.279394],[86.001397,74.316033],[86.182885,74.423055],[86.395791,74.450081],[86.538418,74.444242],[86.664716,74.41427],[86.897983,74.325334],[87.229642,74.363885],[87.106136,74.403572],[86.894262,74.44972],[86.700062,74.52248],[86.42566,74.585499],[86.116119,74.628572],[85.791074,74.645108],[85.880784,74.740244],[86.058861,74.728204],[86.119529,74.757401],[86.201281,74.816209],[86.651486,74.682419],[86.862946,74.717869],[87.041747,74.778847],[87.419295,74.940904],[87.467561,75.013251],[87.287417,75.052525],[87.140759,75.072266],[86.939014,75.068131],[86.921651,75.11278],[87.005987,75.169831],[87.170835,75.191741],[87.671373,75.129575],[88.503673,75.290495],[88.733116,75.369198],[89.310239,75.470122],[89.595079,75.458263],[90.184914,75.591045],[91.004709,75.649569],[91.479512,75.649672],[91.845381,75.723699],[92.407518,75.74964],[92.602544,75.779096],[93.549773,75.854078],[94.075219,75.912886],[94.156351,75.959214],[93.687026,75.921568],[93.574061,75.956294],[93.475463,75.932885],[93.406113,75.901259],[93.178116,75.958981],[93.116311,75.944615],[93.068666,75.91286],[92.986604,75.902706],[92.890485,75.90994],[92.858653,75.979497],[92.971617,76.075098],[93.104839,76.025851],[93.259248,76.098766],[93.359604,76.10073],[93.648475,76.054169],[93.842882,76.101298],[94.102298,76.123597],[94.388275,76.102797],[94.506718,76.107965],[94.575551,76.151735],[95.038468,76.113546],[95.359275,76.139591],[95.578693,76.137317],[95.919965,76.113132],[96.075511,76.081971],[95.986007,76.009676],[95.653314,75.892164],[95.743851,75.87232],[95.934744,75.926012],[96.508559,76.005568],[96.600543,75.989884],[96.537705,75.921619],[96.497087,75.891234],[96.879183,75.931076],[97.205468,76.018719],[97.350678,76.033421],[97.499196,75.98022],[97.637689,76.029055],[97.669832,76.078044],[97.918396,76.088689],[98.019991,76.133699],[98.194658,76.166411],[98.342039,76.18057],[98.662019,76.242659],[98.771263,76.22403],[98.984687,76.207545],[99.187259,76.17765],[99.562636,76.109308],[99.615656,76.082333],[99.663199,76.078018],[99.770376,76.02877],[99.689244,75.956346],[99.602324,75.852063],[99.442127,75.803177],[99.540726,75.798578],[99.609352,75.81129],[99.737509,75.88064],[99.851404,75.930275],[99.825359,76.135947],[99.616793,76.240205],[99.460627,76.275086],[99.093828,76.384304],[98.969494,76.430787],[98.80568,76.480655],[98.869449,76.509594],[99.576279,76.471457],[99.93574,76.489879],[100.322383,76.479131],[100.843695,76.5252],[101.060736,76.477244],[101.310747,76.478898],[101.597758,76.439211],[101.683747,76.485513],[101.212975,76.53569],[101.002652,76.530523],[100.928031,76.556723],[101.006269,76.615065],[101.099287,76.704001],[101.008233,76.78136],[100.920383,76.822495],[100.905914,76.900707],[100.989939,76.990495],[101.18569,77.02858],[101.292867,77.101547],[101.517659,77.198079],[102.610099,77.508525],[103.131411,77.626477],[103.331192,77.641049],[103.560739,77.631928],[104.014561,77.730398],[104.184887,77.73045],[104.814305,77.652108]]],[[[107.695473,78.130916],[107.60628,78.082573],[107.481636,78.057768],[107.343867,78.098592],[107.001665,78.095673],[106.415551,78.13983],[106.583293,78.16758],[107.508301,78.189388],[107.573207,78.185564],[107.695473,78.130916]]],[[[106.270444,78.206183],[106.151071,78.198638],[106.023637,78.220135],[106.058364,78.264629],[106.350646,78.272587],[106.456893,78.340025],[106.640447,78.336252],[106.691193,78.316667],[106.719616,78.294188],[106.718892,78.264991],[106.679101,78.264991],[106.504745,78.261657],[106.472499,78.245043],[106.270444,78.206183]]],[[[102.884811,79.253974],[102.787246,79.176408],[102.745801,79.106076],[102.447835,78.876684],[102.412282,78.835447],[102.587258,78.87131],[102.747662,78.949548],[102.844813,79.01435],[102.950337,79.055743],[103.075704,79.056493],[103.199107,79.071298],[103.433408,79.126101],[103.672876,79.150001],[103.800827,79.149278],[103.925678,79.123233],[104.004019,79.062565],[104.091145,79.013162],[104.404201,78.977092],[104.449263,78.963914],[104.476962,78.923348],[104.452054,78.880043],[104.633231,78.835137],[104.881071,78.854877],[105.014707,78.843302],[105.145965,78.818859],[105.204566,78.77992],[105.256036,78.733024],[105.310192,78.666155],[105.342645,78.593937],[105.31257,78.499912],[104.832599,78.352711],[104.741752,78.339766],[104.51944,78.349223],[104.297438,78.335038],[103.719282,78.258247],[103.00315,78.255844],[102.796651,78.187915],[102.734329,78.189905],[102.673144,78.201713],[102.61723,78.224631],[102.180461,78.205304],[101.692325,78.194349],[101.204087,78.19192],[101.039962,78.142982],[100.541181,78.04751],[100.082191,77.974982],[99.844996,77.956844],[99.500315,77.976068],[99.391691,78.000691],[99.287098,78.038079],[99.438716,78.083942],[99.545583,78.178588],[99.677875,78.23352],[100.018939,78.33894],[100.05749,78.380384],[100.123532,78.470482],[100.163013,78.503942],[100.215,78.535775],[100.257168,78.573809],[100.262645,78.63148],[100.283936,78.679177],[100.416434,78.753152],[100.515653,78.787775],[100.619626,78.797413],[100.875528,78.783615],[100.95573,78.788473],[100.897955,78.812451],[100.856201,78.897743],[100.864572,78.925829],[100.901366,78.980089],[100.965445,79.006547],[101.030867,79.023291],[101.068178,79.096258],[101.052261,79.123233],[101.148793,79.1569],[101.196128,79.204442],[101.310437,79.232632],[101.543084,79.254439],[101.55528,79.312627],[101.590626,79.350454],[101.643336,79.361358],[101.761365,79.371951],[101.824204,79.37022],[101.912054,79.311645],[102.005278,79.263663],[102.128475,79.252475],[102.251258,79.256041],[102.177257,79.312601],[102.180668,79.373398],[102.225109,79.412931],[102.282367,79.430062],[102.40484,79.433214],[102.78983,79.392157],[103.041597,79.33154],[103.097924,79.299139],[103.052449,79.282499],[102.939691,79.271182],[102.884811,79.253974]]],[[[76.248917,79.651082],[76.372527,79.615244],[76.467405,79.643149],[77.360167,79.55685],[77.549303,79.524397],[77.588991,79.501918],[76.810123,79.489515],[76.649513,79.493391],[76.636491,79.544447],[76.457587,79.545455],[76.153729,79.57876],[76.071874,79.625631],[76.051513,79.644725],[76.148458,79.66444],[76.248917,79.651082]]],[[[100.135935,79.614211],[99.91538,79.601601],[99.942251,79.671416],[99.955791,79.69033],[100.068342,79.701027],[100.141516,79.683715],[100.300266,79.670279],[100.135935,79.614211]]],[[[92.68347,79.685214],[92.44059,79.675499],[92.153683,79.684645],[91.683634,79.790582],[91.376263,79.835489],[91.126045,79.904916],[91.070338,79.981475],[91.229295,80.030723],[91.425975,80.049223],[91.75195,80.052272],[92.173423,80.04545],[92.592726,79.996513],[93.481561,79.94109],[93.803091,79.904529],[93.603517,79.81673],[93.382032,79.783864],[93.155069,79.737614],[92.926246,79.704489],[92.68347,79.685214]]],[[[51.409297,79.944242],[51.435135,79.931917],[51.431311,79.920497],[51.076294,79.931969],[50.454109,79.924424],[50.091444,79.980545],[50.472609,80.035425],[50.675801,80.048551],[50.936354,80.094233],[51.254371,80.048654],[51.237834,80.010336],[51.242795,79.991242],[51.326924,79.972328],[51.409297,79.944242]]],[[[59.688894,79.955818],[59.330673,79.923029],[59.202619,79.932951],[59.169236,79.948299],[59.100403,79.964163],[58.919226,79.984627],[58.946097,80.04235],[59.001495,80.053925],[59.544511,80.118831],[59.801652,80.082657],[59.911,79.994291],[59.688894,79.955818]]],[[[97.674483,80.15826],[97.903616,80.095008],[98.017821,80.022868],[97.906717,80.003747],[97.807911,79.956308],[97.759956,79.895847],[97.626941,79.850423],[97.591284,79.77495],[97.651642,79.760662],[97.724506,79.781384],[97.87075,79.852646],[98.064537,79.901066],[98.273206,79.874117],[98.353098,79.884323],[98.499032,79.95313],[98.47185,80.009122],[98.531795,80.04359],[98.596494,80.05222],[98.865935,80.045399],[99.294952,80.016357],[99.37071,79.986384],[99.473029,79.970158],[99.536178,79.941296],[99.726554,79.919928],[99.818331,79.898173],[99.946592,79.848977],[100.061211,79.777095],[99.915793,79.738337],[99.839209,79.668936],[99.805516,79.653071],[99.781641,79.628267],[99.771099,79.567728],[99.748878,79.515198],[99.72118,79.491841],[99.706297,79.46347],[99.721593,79.385129],[99.680665,79.323324],[99.537315,79.276583],[99.387763,79.274748],[99.167105,79.306322],[99.10437,79.305392],[99.041738,79.293041],[99.31738,79.22718],[99.517264,79.130157],[99.750842,79.107678],[99.814611,79.095844],[99.89967,79.006392],[99.929332,78.961408],[99.540829,78.852732],[99.439543,78.834206],[98.819529,78.818238],[98.411079,78.787801],[98.282508,78.795036],[98.054201,78.820977],[97.905166,78.810229],[97.688539,78.827359],[97.555524,78.826558],[97.248152,78.868003],[96.932926,78.933942],[96.871224,78.963811],[96.807766,78.984947],[96.430011,79.003033],[96.347329,79.015849],[95.796458,79.001431],[95.70282,79.011999],[95.531048,79.098118],[95.436893,79.099307],[95.133243,79.049594],[95.020381,79.052694],[94.791041,79.086646],[94.652342,79.12747],[94.631671,79.140854],[94.619682,79.192376],[94.48212,79.218627],[94.313758,79.307511],[94.218776,79.402337],[93.75865,79.45143],[93.478667,79.462747],[93.272271,79.45838],[93.070836,79.495303],[93.404666,79.631574],[93.847223,79.701647],[94.038219,79.756011],[94.25712,79.829753],[94.347244,79.941942],[94.719418,80.011241],[94.815019,80.034805],[94.946794,80.089246],[94.987308,80.096817],[95.281347,80.030516],[95.337985,80.042143],[95.390695,80.072787],[95.497561,80.105602],[95.85785,80.11002],[96.162534,80.096817],[96.277359,80.110046],[96.416575,80.104361],[97.120512,80.153041],[97.58684,80.168285],[97.674483,80.15826]]],[[[50.051757,80.074337],[49.970935,80.060747],[49.588322,80.136117],[49.556076,80.158932],[49.883705,80.230245],[50.251021,80.219497],[50.309932,80.185649],[50.31913,80.172368],[50.07222,80.109477],[50.051757,80.074337]]],[[[55.479746,80.273808],[55.195112,80.226783],[55.048454,80.228385],[54.979725,80.256445],[55.091656,80.295564],[55.24007,80.325382],[55.353242,80.317682],[55.434787,80.302231],[55.479746,80.273808]]],[[[57.078718,80.35091],[57.122643,80.316984],[57.118922,80.193968],[57.072723,80.139398],[57.080165,80.094698],[56.986941,80.071495],[56.200632,80.076482],[55.811612,80.087153],[55.723969,80.104723],[55.94225,80.163273],[56.01222,80.20389],[55.989895,80.320059],[56.024415,80.341324],[56.655074,80.330343],[56.707268,80.36326],[56.944566,80.366154],[57.078718,80.35091]]],[[[53.521416,80.185183],[52.85634,80.173246],[52.635888,80.178879],[52.607053,80.191178],[52.550519,80.201875],[52.343606,80.213244],[52.213382,80.263732],[52.270226,80.276341],[52.576667,80.296908],[52.680537,80.318483],[52.715987,80.347551],[52.853963,80.402405],[53.185622,80.412663],[53.329179,80.402405],[53.345922,80.366309],[53.486172,80.323366],[53.851628,80.268382],[53.777937,80.228333],[53.652984,80.222545],[53.521416,80.185183]]],[[[57.956287,80.123223],[57.800121,80.104051],[57.39229,80.13914],[57.332346,80.158105],[57.281393,80.193917],[57.214007,80.32825],[57.211733,80.36848],[57.186205,80.39623],[57.083369,80.445219],[57.011125,80.468319],[57.074997,80.49395],[57.521998,80.475372],[58.480493,80.464753],[58.971729,80.415867],[59.115906,80.388427],[59.255433,80.34321],[58.397914,80.318767],[58.283916,80.297786],[58.285776,80.248125],[58.255494,80.201823],[58.163199,80.196526],[57.956287,80.123223]]],[[[54.415315,80.472814],[54.275892,80.421345],[53.811941,80.476225],[53.849974,80.503846],[53.900204,80.515447],[53.901547,80.542474],[53.858863,80.563041],[53.87726,80.605261],[54.176776,80.574359],[54.205405,80.56175],[54.40715,80.540149],[54.437329,80.498704],[54.415315,80.472814]]],[[[47.441993,80.85367],[47.899537,80.81269],[48.243288,80.823491],[48.345194,80.818995],[48.445653,80.806024],[48.547352,80.779049],[48.686569,80.717761],[48.683571,80.63327],[48.625487,80.629317],[48.044334,80.668151],[47.777373,80.756234],[47.705233,80.7652],[47.600123,80.741945],[47.512273,80.687943],[47.414192,80.674508],[47.303914,80.606191],[47.198184,80.614925],[47.144957,80.609034],[47.011012,80.562111],[46.677596,80.561336],[46.623956,80.540666],[46.513678,80.475553],[46.378182,80.456795],[46.141401,80.446718],[46.059856,80.483796],[46.023579,80.540846],[45.969008,80.569501],[45.64076,80.536945],[45.389199,80.560303],[45.149213,80.59875],[44.904991,80.611281],[45.124512,80.652235],[46.327436,80.735176],[46.799139,80.755226],[47.020624,80.814396],[47.352387,80.852946],[47.441993,80.85367]]],[[[62.167813,80.834756],[62.227758,80.794397],[62.191791,80.730215],[62.114586,80.683706],[62.075726,80.61694],[61.769181,80.601024],[61.681228,80.586348],[61.597512,80.534981],[61.285179,80.50475],[61.051292,80.418606],[60.72232,80.434677],[60.278316,80.494415],[59.900251,80.446098],[59.649827,80.431267],[59.346383,80.505009],[59.304422,80.521545],[59.288195,80.572679],[59.306282,80.617767],[59.386484,80.712541],[59.495108,80.766492],[59.549471,80.783597],[59.59226,80.816514],[59.71587,80.836358],[60.094554,80.84858],[60.234908,80.837753],[60.278006,80.801451],[60.481508,80.804241],[60.820195,80.82654],[61.313188,80.862636],[61.597408,80.892944],[61.850623,80.885916],[62.102907,80.866589],[62.167813,80.834756]]],[[[50.278099,80.927257],[50.431475,80.910876],[50.801065,80.914183],[50.917647,80.890412],[51.454772,80.744684],[51.590991,80.740783],[51.703645,80.687659],[51.14616,80.603969],[50.960848,80.540459],[50.27965,80.527359],[49.845981,80.497671],[49.749863,80.472091],[49.794098,80.425324],[49.585945,80.376567],[48.896065,80.369203],[48.811005,80.3537],[48.67706,80.30006],[48.688946,80.290293],[48.922006,80.276806],[48.959524,80.265695],[48.990839,80.242389],[49.010683,80.20743],[48.977507,80.162601],[48.891931,80.155314],[48.797363,80.161154],[48.581769,80.195364],[48.554587,80.183297],[48.532676,80.15826],[48.466737,80.110123],[48.386225,80.095783],[48.16722,80.132784],[48.095907,80.122293],[48.02573,80.099452],[47.939948,80.0886],[47.737273,80.081676],[47.632369,80.111984],[47.723113,80.151387],[47.977568,80.212572],[47.892922,80.239237],[47.642395,80.245335],[47.444371,80.230142],[47.343085,80.188542],[47.24862,80.180248],[46.991065,80.18278],[46.845854,80.237222],[46.73816,80.257685],[46.644419,80.300319],[47.402926,80.444754],[47.656037,80.500539],[47.895816,80.529038],[48.208252,80.543895],[48.306127,80.561595],[48.402658,80.568803],[48.464773,80.558081],[48.625074,80.508316],[49.087784,80.515783],[49.185246,80.558623],[49.192688,80.656007],[49.147419,80.712128],[49.244364,80.821372],[49.50781,80.865349],[50.12431,80.923898],[50.278099,80.927257]]],[[[80.026671,80.84814],[79.098562,80.812044],[79.006888,80.834808],[78.97764,80.848244],[79.109828,80.923588],[79.217418,80.96033],[79.806633,80.975368],[80.279576,80.949788],[80.427887,80.92767],[80.373317,80.882609],[80.344791,80.867932],[80.026671,80.84814]]],[[[61.140796,80.950356],[60.826706,80.929686],[60.321104,80.955498],[60.058174,80.984618],[60.078328,80.999191],[60.147574,81.016657],[60.586617,81.087686],[61.457469,81.103965],[61.567436,81.050299],[61.471938,81.011024],[61.140796,80.950356]]],[[[54.718965,81.115979],[55.470651,81.019861],[56.170143,81.029163],[56.472243,80.99826],[56.909633,80.912891],[57.567784,80.819718],[57.694081,80.792304],[57.580393,80.755485],[56.814755,80.663604],[56.31556,80.632856],[55.883442,80.628412],[55.712496,80.637301],[55.540621,80.703317],[55.117184,80.751919],[54.668219,80.73869],[54.623364,80.765251],[54.532827,80.783028],[54.37604,80.786955],[54.066602,80.813621],[54.045415,80.871963],[54.240545,80.901858],[54.367255,80.903796],[54.416762,80.98653],[54.634009,81.113189],[54.718965,81.115979]]],[[[58.622396,81.041643],[58.761509,80.990974],[58.815356,80.933613],[58.902586,80.897646],[58.930595,80.831707],[58.859901,80.779411],[58.64193,80.76799],[58.285673,80.764915],[57.93789,80.793363],[57.749788,80.889068],[57.40521,80.915113],[57.210906,81.017071],[57.410274,81.046785],[57.656254,81.031566],[58.049511,81.11846],[58.102325,81.114274],[58.189968,81.094585],[58.507675,81.061771],[58.622396,81.041643]]],[[[50.753729,81.047405],[50.616063,81.041255],[50.518188,81.045544],[50.411941,81.084353],[50.377422,81.10275],[50.36843,81.122491],[50.464961,81.126211],[50.505992,81.14422],[50.521599,81.158225],[50.591775,81.169413],[50.715902,81.170653],[50.87858,81.150861],[50.946172,81.108176],[50.788766,81.071848],[50.753729,81.047405]]],[[[63.373838,80.700087],[63.187596,80.697607],[63.002181,80.712851],[62.760438,80.762719],[62.52035,80.821889],[62.592593,80.85305],[62.819349,80.893796],[63.115765,80.966789],[63.614753,80.980897],[63.855979,80.98113],[64.095654,80.998338],[64.165934,81.035726],[64.210479,81.106367],[64.255851,81.144453],[64.310111,81.175201],[64.575418,81.198507],[64.802071,81.197266],[65.02769,81.169464],[65.171971,81.14404],[65.30974,81.09642],[65.381984,81.056758],[65.360073,81.008182],[65.372062,80.96803],[65.437381,80.930719],[64.997511,80.818892],[64.548339,80.755433],[63.373838,80.700087]]],[[[91.567155,81.141197],[91.222887,81.063838],[89.975831,81.113137],[89.919401,81.148742],[89.901211,81.170705],[90.069882,81.213699],[91.108992,81.199127],[91.477859,81.183934],[91.567155,81.141197]]],[[[96.526543,81.075568],[96.563026,81.030093],[96.693251,80.994178],[96.754952,80.957849],[97.413724,80.841836],[97.703008,80.826695],[97.831786,80.798273],[97.869923,80.763262],[97.856487,80.698072],[97.74714,80.698692],[97.665388,80.678073],[97.221384,80.652442],[97.11307,80.614046],[97.025427,80.53555],[97.072556,80.519892],[97.115034,80.496586],[97.250219,80.363002],[97.286806,80.342512],[97.417031,80.323159],[97.298382,80.272749],[97.175185,80.24102],[95.855783,80.176941],[94.961367,80.150405],[94.66123,80.12281],[94.565009,80.126066],[94.328434,80.076043],[93.872338,80.01013],[93.654677,80.009639],[93.002313,80.102088],[92.201535,80.179318],[92.092188,80.223321],[91.89158,80.249262],[91.637435,80.269933],[91.523851,80.358532],[91.687768,80.418503],[91.896644,80.477517],[92.2467,80.499118],[92.577946,80.533276],[92.826717,80.618542],[92.981023,80.702981],[93.262556,80.791245],[92.772973,80.768636],[92.592623,80.780858],[92.610192,80.810003],[92.710341,80.87217],[92.764705,80.893047],[92.938648,80.92581],[93.065152,80.988494],[93.358674,81.031669],[93.497373,81.039188],[93.636693,81.038155],[93.888874,81.058386],[94.140125,81.089469],[94.375459,81.107349],[94.611621,81.114636],[94.83786,81.139415],[95.060896,81.188068],[95.159598,81.270983],[95.800695,81.280465],[95.901981,81.260596],[95.98394,81.211426],[96.075201,81.19277],[96.186925,81.183934],[96.471042,81.099288],[96.526543,81.075568]]],[[[59.313103,81.305218],[59.096993,81.292299],[58.719031,81.313538],[58.610097,81.337258],[58.634489,81.360357],[58.880572,81.391828],[59.074978,81.397719],[59.280857,81.366093],[59.374598,81.325062],[59.313103,81.305218]]],[[[57.810249,81.546031],[57.862649,81.506446],[58.016542,81.483812],[58.436051,81.464175],[58.563899,81.418416],[58.371869,81.386971],[57.858722,81.368057],[57.911949,81.303255],[58.015302,81.254834],[57.912879,81.197525],[57.769735,81.169723],[57.450995,81.135565],[57.159436,81.178456],[56.821886,81.237962],[56.669234,81.198274],[56.512551,81.175252],[56.363929,81.178611],[56.19195,81.223983],[55.716734,81.188481],[55.57266,81.228065],[55.466,81.311187],[55.781949,81.329455],[56.15681,81.3031],[56.404651,81.387022],[56.71874,81.423402],[56.973091,81.510529],[57.091534,81.541225],[57.365005,81.535256],[57.456473,81.542878],[57.716612,81.564634],[57.810249,81.546031]]],[[[63.650927,81.609334],[63.528557,81.59657],[62.884978,81.608869],[62.57306,81.633054],[62.531305,81.647006],[62.515285,81.65915],[62.106421,81.679356],[62.283982,81.706538],[62.794958,81.71894],[63.709631,81.687288],[63.767405,81.664163],[63.782391,81.649823],[63.650927,81.609334]]],[[[58.295388,81.715193],[57.964865,81.695634],[57.92063,81.710517],[57.909262,81.721937],[57.945125,81.747853],[57.985019,81.797023],[58.134571,81.827977],[59.26184,81.854177],[59.408498,81.825419],[59.356822,81.780977],[59.356408,81.758989],[58.295388,81.715193]]]]},"type":"Feature","properties":{"ISO_A2":"RU","NAME":"Russia"}},{"geometry":{"type":"Polygon","coordinates":[[[30.509952,-1.067273],[30.477034,-1.082983],[30.470213,-1.131145],[30.508092,-1.208246],[30.63196,-1.367461],[30.710715,-1.396814],[30.762185,-1.458722],[30.812621,-1.563057],[30.827504,-1.693695],[30.80673,-1.850688],[30.819132,-1.967476],[30.864607,-2.044061],[30.876596,-2.143383],[30.854996,-2.265391],[30.828744,-2.338513],[30.797635,-2.362698],[30.762443,-2.37169],[30.714849,-2.363525],[30.65661,-2.373808],[30.593409,-2.396804],[30.553619,-2.400112],[30.528866,-2.395564],[30.482202,-2.37603],[30.408511,-2.312985],[30.271,-2.347867],[30.233845,-2.347092],[30.183305,-2.377012],[30.142274,-2.413961],[30.117314,-2.416596],[30.09189,-2.411532],[29.973447,-2.337066],[29.930194,-2.339547],[29.912417,-2.54863],[29.892574,-2.664643],[29.868182,-2.716371],[29.783381,-2.766394],[29.698064,-2.794713],[29.6514,-2.792801],[29.463711,-2.808355],[29.390227,-2.808562],[29.349764,-2.791509],[29.297054,-2.673015],[29.197577,-2.620305],[29.102028,-2.595655],[29.063167,-2.602528],[29.028647,-2.664592],[29.014384,-2.720195],[28.92178,-2.682058],[28.893978,-2.635084],[28.891446,-2.555554],[28.85765,-2.446672],[28.876408,-2.400318],[28.912737,-2.370294],[28.98958,-2.312778],[29.106472,-2.233248],[29.131535,-2.195163],[29.14802,-2.131859],[29.14063,-1.98453],[29.129364,-1.860248],[29.143265,-1.816065],[29.196595,-1.719946],[29.268116,-1.621606],[29.351625,-1.51753],[29.401958,-1.507401],[29.468,-1.468075],[29.537763,-1.409733],[29.576934,-1.387874],[29.609645,-1.387098],[29.825446,-1.335577],[29.84684,-1.3517],[29.881618,-1.451797],[29.900015,-1.466318],[29.930091,-1.469936],[29.990501,-1.44694],[30.101553,-1.36865],[30.149974,-1.321108],[30.206973,-1.254238],[30.279837,-1.178791],[30.320506,-1.113058],[30.360245,-1.074611],[30.412335,-1.063036],[30.469903,-1.066033],[30.509952,-1.067273]]]},"type":"Feature","properties":{"ISO_A2":"RW","NAME":"Rwanda"}},{"geometry":{"type":"Polygon","coordinates":[[[-8.683366,27.285932],[-8.683082,27.119275],[-8.682875,26.921329],[-8.682617,26.723124],[-8.682333,26.497711],[-8.6821,26.273177],[-8.682152,26.109466],[-8.682204,25.99552],[-8.885628,25.99552],[-9.071921,25.99552],[-9.258215,25.99552],[-9.444508,25.99552],[-9.630854,25.995494],[-9.817173,25.995468],[-10.003492,25.995468],[-10.189812,25.995468],[-10.376131,25.995468],[-10.562451,25.995468],[-10.74877,25.995468],[-10.935089,25.995468],[-11.121409,25.995442],[-11.307728,25.995416],[-11.494047,25.995416],[-11.680341,25.995416],[-11.86666,25.995416],[-12.016289,25.995416],[-12.016289,25.876302],[-12.016289,25.740135],[-12.016289,25.603993],[-12.016289,25.467851],[-12.016289,25.331684],[-12.016289,25.195543],[-12.016289,25.059401],[-12.016289,24.923234],[-12.016289,24.787092],[-12.016289,24.65095],[-12.016289,24.514783],[-12.016289,24.378641],[-12.016289,24.2425],[-12.016289,24.106333],[-12.016289,23.970191],[-12.016289,23.834049],[-12.016289,23.697882],[-12.016289,23.576442],[-12.023421,23.46756],[-12.08334,23.435443],[-12.226199,23.377488],[-12.372883,23.318009],[-12.559357,23.290801],[-12.620413,23.271345],[-12.739604,23.192719],[-12.895977,23.089573],[-13.031499,23.00025],[-13.120873,22.884056],[-13.153274,22.82052],[-13.166478,22.753211],[-13.155961,22.689313],[-13.107334,22.560742],[-13.094311,22.495992],[-13.086767,22.383259],[-13.078473,22.26045],[-13.069584,22.128185],[-13.06067,21.995738],[-13.051213,21.854765],[-13.041757,21.713817],[-13.032196,21.572094],[-13.025117,21.466778],[-13.016228,21.333944],[-13.167434,21.333789],[-13.396722,21.33353],[-13.62601,21.333246],[-13.85535,21.332962],[-14.084639,21.332703],[-14.313953,21.332419],[-14.543267,21.332135],[-14.772607,21.331877],[-15.001895,21.331592],[-15.231209,21.331308],[-15.460524,21.33105],[-15.689812,21.330765],[-15.919126,21.330481],[-16.14844,21.330223],[-16.377729,21.329939],[-16.607043,21.329654],[-16.836357,21.329396],[-16.964566,21.329241],[-17.005907,21.142431],[-17.042391,21.007994],[-17.063992,20.898854],[-17.048049,20.806146],[-17.09877,20.856867],[-17.009628,21.377093],[-17.003065,21.420708],[-17.002962,21.420734],[-16.95113,21.430268],[-16.730937,21.470318],[-16.581024,21.481066],[-16.190867,21.481066],[-16.041005,21.5006],[-15.920857,21.5006],[-15.750945,21.490833],[-15.610799,21.470318],[-15.460911,21.450784],[-15.290973,21.450784],[-15.150853,21.441017],[-14.971148,21.441017],[-14.840794,21.450784],[-14.750955,21.5006],[-14.670856,21.600181],[-14.64109,21.680279],[-14.610808,21.750585],[-14.621066,21.820891],[-14.630833,21.86094],[-14.581017,21.910756],[-14.520969,21.990854],[-14.460895,22.040619],[-14.440896,22.080668],[-14.380822,22.120717],[-14.311033,22.191023],[-14.270984,22.240813],[-14.221168,22.310163],[-14.210936,22.370702],[-14.190885,22.450775],[-14.190885,22.59043],[-14.170887,22.760368],[-14.141069,22.870697],[-14.121071,22.960563],[-14.101046,23.100192],[-14.040972,23.340436],[-14.020973,23.410768],[-13.980924,23.520115],[-13.931108,23.620703],[-13.89111,23.691009],[-13.840778,23.750592],[-13.770963,23.790641],[-13.661099,23.830639],[-13.581026,23.870714],[-13.480929,23.910737],[-13.391089,23.94102],[-13.310991,23.981069],[-13.280734,24.02011],[-13.230944,24.090416],[-13.161103,24.220331],[-13.12108,24.300378],[-13.061006,24.400992],[-12.991165,24.470315],[-12.94786,24.497265],[-12.911119,24.520106],[-12.820762,24.570904],[-12.710924,24.630487],[-12.630826,24.680277],[-12.561011,24.731049],[-12.500963,24.770116],[-12.431122,24.830681],[-12.400865,24.880471],[-12.360816,24.970311],[-12.311,25.110948],[-12.270951,25.260319],[-12.230927,25.420516],[-12.201136,25.520096],[-12.170854,25.640244],[-12.13083,25.731065],[-12.101039,25.830672],[-12.08104,25.870721],[-12.08104,25.920485],[-12.06099,25.990817],[-12.056804,25.996346],[-12.030733,26.030866],[-11.960892,26.0504],[-11.880846,26.070915],[-11.754858,26.086522],[-11.71822,26.104092],[-11.699203,26.162693],[-11.684527,26.213491],[-11.637191,26.295501],[-11.583964,26.360924],[-11.553191,26.400973],[-11.511669,26.470323],[-11.47069,26.520113],[-11.399893,26.583597],[-11.337881,26.633413],[-11.316849,26.68416],[-11.316849,26.744724],[-11.361291,26.793559],[-11.392555,26.883424],[-11.263622,26.910735],[-11.150347,26.941017],[-11.04684,26.970318],[-10.922816,27.010341],[-10.830057,27.010341],[-10.757762,27.020108],[-10.654254,27.000574],[-10.551263,26.990808],[-10.478967,26.960551],[-10.354944,26.900994],[-10.251436,26.860945],[-10.189424,26.860945],[-10.12302,26.880478],[-10.066848,26.908797],[-10.03269,26.910735],[-9.98091,26.890245],[-9.900346,26.850196],[-9.817845,26.850196],[-9.735343,26.860945],[-9.673332,26.910735],[-9.569824,26.990808],[-9.487297,27.050391],[-9.413037,27.088476],[-9.352989,27.098243],[-9.285603,27.098243],[-9.20845,27.100207],[-9.084427,27.09044],[-9.0019,27.09044],[-8.88909,27.104082],[-8.794884,27.120696],[-8.753853,27.150979],[-8.753853,27.191002],[-8.774368,27.250585],[-8.796822,27.308204],[-8.802687,27.36094],[-8.788993,27.41657],[-8.774368,27.460546],[-8.7846,27.530878],[-8.813901,27.61387],[-8.81778,27.655898],[-8.817828,27.656426],[-8.683366,27.656452],[-8.683366,27.49026],[-8.683366,27.285932]]]},"type":"Feature","properties":{"ISO_A2":"-99","NAME":"W. Sahara"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[41.987753,16.715621],[42.065061,16.71004],[42.033228,16.74195],[42.026407,16.757685],[42.059996,16.803522],[42.170377,16.708645],[42.167173,16.596403],[42.157768,16.57072],[42.127692,16.594827],[42.108366,16.618443],[42.102371,16.643946],[42.071779,16.671489],[41.964188,16.653454],[41.897319,16.684253],[41.801614,16.778769],[41.776086,16.846879],[41.816084,16.860134],[41.858252,16.892923],[41.884917,16.946821],[41.860422,17.002554],[41.917266,16.99364],[41.947962,16.936434],[41.953956,16.806235],[41.962535,16.778666],[41.946722,16.7489],[41.987753,16.715621]]],[[[36.901655,25.38305],[36.875197,25.38305],[36.80502,25.450721],[36.763886,25.500588],[36.722028,25.534049],[36.530308,25.601538],[36.504263,25.645102],[36.533615,25.688717],[36.554079,25.64536],[36.588806,25.619832],[36.747556,25.55875],[36.924393,25.425528],[36.954778,25.414625],[36.901655,25.38305]]],[[[36.595524,25.712798],[36.586119,25.699207],[36.543951,25.734295],[36.546534,25.811603],[36.582708,25.855528],[36.579917,25.795428],[36.595627,25.734889],[36.595524,25.712798]]],[[[44.716475,29.193619],[45.050305,29.167109],[45.498908,29.131555],[45.949681,29.095847],[46.356478,29.063653],[46.531455,29.09626],[46.724828,29.074608],[46.98228,29.045669],[47.138756,29.026187],[47.433208,28.989549],[47.521265,28.837827],[47.553201,28.731554],[47.58307,28.627969],[47.671333,28.533168],[47.871941,28.535468],[48.049605,28.537509],[48.268713,28.540506],[48.442449,28.542909],[48.49857,28.448858],[48.523064,28.355014],[48.626314,28.132573],[48.773695,27.959069],[48.809042,27.89592],[48.832813,27.800681],[48.807181,27.765282],[48.797156,27.724303],[48.906504,27.629063],[49.086854,27.548577],[49.157548,27.528242],[49.237439,27.492741],[49.175118,27.437654],[49.281571,27.310478],[49.405284,27.180977],[49.537679,27.151754],[49.71648,26.955874],[49.986128,26.828905],[50.149838,26.662662],[50.134646,26.65951],[50.086587,26.676408],[50.026332,26.699197],[50.008142,26.678527],[50.011346,26.608815],[50.027365,26.526882],[50.110771,26.455957],[50.184978,26.404952],[50.213917,26.308472],[50.15542,26.100526],[50.135266,26.100681],[50.095992,26.118716],[50.053927,26.122876],[50.031603,26.110991],[50.081005,25.961387],[50.130305,25.84664],[50.189629,25.755793],[50.238929,25.622855],[50.2812,25.56614],[50.455143,25.424805],[50.508473,25.306673],[50.557876,25.086686],[50.666913,24.9638],[50.725617,24.869387],[50.804372,24.789262],[50.855635,24.679631],[50.928292,24.59514],[50.966068,24.573953],[51.022757,24.565245],[51.093347,24.564651],[51.177993,24.586742],[51.268013,24.607232],[51.3385,24.564341],[51.41126,24.5708],[51.418392,24.530984],[51.369919,24.476904],[51.309871,24.340375],[51.395241,24.318852],[51.476786,24.308181],[51.534767,24.286347],[51.568357,24.286192],[51.568357,24.257925],[51.572181,24.128347],[51.592541,24.078841],[51.629335,24.035019],[51.684318,23.969519],[51.739354,23.904019],[51.794389,23.838494],[51.849373,23.772994],[51.904408,23.707494],[51.959444,23.641968],[52.014428,23.576468],[52.069463,23.510968],[52.124498,23.445468],[52.179482,23.379969],[52.234517,23.314469],[52.289553,23.248969],[52.344537,23.183469],[52.399572,23.117969],[52.454607,23.052443],[52.509591,22.986943],[52.555066,22.932812],[52.639144,22.922529],[52.665912,22.919273],[52.741618,22.910023],[52.859286,22.895631],[53.011886,22.877002],[53.192443,22.854936],[53.394033,22.830312],[53.609576,22.803983],[53.832094,22.776827],[54.054613,22.749671],[54.270104,22.723342],[54.471642,22.698718],[54.652251,22.676652],[54.804852,22.658023],[54.922519,22.643631],[54.998225,22.634381],[55.025045,22.631125],[55.104316,22.621462],[55.119406,22.623942],[55.185862,22.704093],[55.259242,22.590895],[55.320169,22.496922],[55.403781,22.367834],[55.492717,22.230659],[55.577724,22.09953],[55.641028,22.001861],[55.607438,21.900369],[55.5708,21.789678],[55.534213,21.678987],[55.497574,21.568296],[55.460935,21.457605],[55.424349,21.346914],[55.38771,21.236223],[55.351071,21.125533],[55.314484,21.014816],[55.277898,20.904099],[55.241259,20.793408],[55.20462,20.682717],[55.168033,20.572026],[55.131395,20.461335],[55.094756,20.350644],[55.058169,20.239954],[55.021531,20.129263],[54.977399,19.995937],[54.871049,19.960487],[54.699018,19.903152],[54.527039,19.845817],[54.355008,19.788482],[54.182977,19.731147],[54.010946,19.673812],[53.838916,19.616477],[53.666885,19.559142],[53.494854,19.501807],[53.322823,19.444472],[53.150792,19.387137],[52.978761,19.329802],[52.806731,19.272467],[52.6347,19.215132],[52.462669,19.157797],[52.290638,19.100488],[52.118607,19.043153],[51.977634,18.996153],[51.74292,18.964553],[51.514923,18.933883],[51.258453,18.899364],[50.949996,18.857841],[50.708202,18.825311],[50.355304,18.777795],[50.038941,18.735239],[49.742111,18.695293],[49.445075,18.655322],[49.192378,18.621318],[49.041999,18.581786],[48.864904,18.495202],[48.592983,18.36242],[48.315842,18.227053],[48.172181,18.156928],[48.0217,17.976939],[47.945529,17.885834],[47.807759,17.721115],[47.703735,17.596807],[47.579556,17.448341],[47.525399,17.316127],[47.441787,17.111876],[47.369595,17.06038],[47.251256,16.993924],[47.143614,16.946666],[46.975665,16.953487],[46.879961,17.07901],[46.77852,17.212128],[46.72767,17.265587],[46.68204,17.268559],[46.51342,17.251686],[46.310331,17.2313],[46.070811,17.253185],[45.794445,17.278403],[45.53534,17.302071],[45.406562,17.31977],[45.23665,17.406199],[45.192777,17.423407],[45.148077,17.427464],[44.946487,17.429582],[44.746757,17.431675],[44.54646,17.404364],[44.35474,17.414364],[44.155941,17.398551],[44.085971,17.365529],[44.00825,17.367467],[43.959674,17.338322],[43.916937,17.324731],[43.866449,17.349587],[43.804283,17.344135],[43.71297,17.365529],[43.653439,17.421857],[43.597319,17.471414],[43.539234,17.498725],[43.474277,17.515934],[43.418001,17.516244],[43.346068,17.486013],[43.302194,17.45679],[43.190935,17.35938],[43.186388,17.324731],[43.236927,17.26644],[43.221373,17.239232],[43.15595,17.205048],[43.1359,17.112961],[43.126185,17.062447],[43.116469,16.941989],[43.145615,16.846776],[43.184476,16.811817],[43.186388,16.771018],[43.165045,16.689421],[43.10479,16.664151],[43.06071,16.586636],[43.03358,16.550385],[42.986348,16.50907],[42.799331,16.371792],[42.789874,16.451554],[42.730653,16.569842],[42.726416,16.653299],[42.69882,16.736963],[42.647454,16.801352],[42.552886,16.86848],[42.544101,16.959689],[42.474958,17.049864],[42.383284,17.122469],[42.332435,17.256621],[42.293987,17.434957],[42.052245,17.669361],[41.750041,17.88573],[41.657954,18.007687],[41.507575,18.256095],[41.431714,18.452414],[41.229453,18.678395],[41.220771,18.765237],[41.190799,18.871174],[41.144187,18.989074],[41.116075,19.082195],[40.913296,19.490128],[40.847874,19.555292],[40.791547,19.646372],[40.777077,19.716911],[40.759197,19.755487],[40.61595,19.822356],[40.482212,19.993457],[40.080686,20.265895],[39.884109,20.292974],[39.728356,20.390332],[39.613634,20.517663],[39.491264,20.737029],[39.276084,20.973966],[39.093562,21.310353],[39.150717,21.432749],[39.147099,21.518997],[39.090979,21.663949],[39.029794,21.775984],[38.987936,21.88174],[39.021215,22.033462],[39.034031,22.203348],[39.069895,22.293678],[39.09594,22.392794],[39.06204,22.592161],[39.001372,22.698977],[39.00747,22.770083],[38.93874,22.804758],[38.882929,22.882014],[38.941117,22.881834],[38.835594,22.989036],[38.796836,23.048568],[38.757046,23.194295],[38.706093,23.305503],[38.542278,23.557891],[38.464144,23.711886],[38.288857,23.910996],[38.098688,24.058015],[37.977868,24.124574],[37.919681,24.185397],[37.820979,24.187516],[37.713388,24.274436],[37.638147,24.277743],[37.543063,24.291644],[37.430925,24.459024],[37.338527,24.61581],[37.180914,24.820036],[37.220395,24.873366],[37.266284,24.960053],[37.243443,25.073457],[37.218328,25.150662],[37.148875,25.291118],[36.920672,25.641174],[36.860107,25.692489],[36.762749,25.751323],[36.702597,25.902864],[36.675209,26.038876],[36.518733,26.104867],[36.249602,26.594759],[36.093746,26.765834],[36.032044,26.880995],[35.851693,27.070467],[35.763016,27.258802],[35.581322,27.432486],[35.423812,27.733786],[35.18052,28.034878],[35.078304,28.08702],[34.82757,28.108595],[34.722046,28.130661],[34.624998,28.064515],[34.616213,28.148334],[34.683289,28.264115],[34.779924,28.507304],[34.799148,28.720521],[34.950818,29.353532],[35.163776,29.32095],[35.339166,29.294078],[35.595275,29.254855],[35.860375,29.214238],[36.015456,29.190467],[36.068476,29.200544],[36.282778,29.355366],[36.476099,29.495125],[36.591855,29.666097],[36.703889,29.831668],[36.755256,29.866033],[36.92708,29.897064],[37.199466,29.946312],[37.469217,29.995069],[37.490715,30.011708],[37.553605,30.144569],[37.633548,30.313292],[37.64993,30.33094],[37.669722,30.348122],[37.86294,30.442638],[37.98009,30.499999],[37.81302,30.669291],[37.655511,30.828945],[37.479036,31.007772],[37.329432,31.146833],[37.10526,31.355167],[36.958551,31.491515],[37.215641,31.55611],[37.49335,31.625874],[37.77385,31.696334],[38.111452,31.781161],[38.375518,31.847462],[38.769655,31.946474],[38.962356,31.994895],[38.997083,32.007452],[39.145446,32.124499],[39.368636,32.091737],[39.704068,32.042515],[40.027821,31.994998],[40.369299,31.938981],[40.478853,31.893351],[40.808342,31.725454],[41.022489,31.616365],[41.272448,31.489034],[41.58509,31.329716],[41.799702,31.220369],[42.074414,31.080377],[42.288561,30.920387],[42.559811,30.717764],[42.857725,30.495193],[43.103085,30.322206],[43.440791,30.084004],[43.773742,29.849212],[44.099665,29.619329],[44.360683,29.435258],[44.690844,29.202352],[44.716475,29.193619]]]]},"type":"Feature","properties":{"ISO_A2":"SA","NAME":"Saudi Arabia"}},{"geometry":{"type":"Polygon","coordinates":[[[31.466431,22.084647],[31.434495,21.995867],[31.621667,21.995867],[31.949761,21.995919],[32.277854,21.99597],[32.606,21.996022],[32.934093,21.996074],[33.262187,21.996125],[33.590332,21.996177],[33.918426,21.996229],[34.24652,21.99628],[34.574613,21.996332],[34.902707,21.996384],[35.230852,21.996435],[35.558946,21.996487],[35.88704,21.996539],[36.215185,21.99659],[36.543279,21.996642],[36.871373,21.99672],[36.882638,21.768801],[36.926976,21.586538],[37.081179,21.326037],[37.211713,21.185839],[37.258636,21.108531],[37.263183,21.072642],[37.257189,21.039414],[37.217501,21.077628],[37.150632,21.103777],[37.141123,20.981769],[37.156833,20.894901],[37.172646,20.731965],[37.227526,20.55673],[37.187942,20.394931],[37.193213,20.120684],[37.262563,19.791919],[37.248404,19.581906],[37.361575,19.092013],[37.471233,18.820144],[37.531591,18.753119],[37.59939,18.717411],[37.729821,18.694311],[37.921851,18.555922],[38.073986,18.409781],[38.128143,18.333274],[38.201731,18.249429],[38.252167,18.264415],[38.283069,18.286739],[38.332885,18.219043],[38.574008,18.072954],[38.609458,18.005077],[38.522796,17.938544],[38.422492,17.823899],[38.397171,17.778373],[38.385492,17.751268],[38.37371,17.717343],[38.347355,17.683572],[38.289891,17.637037],[38.267256,17.616703],[38.25351,17.584741],[38.219042,17.563967],[38.181577,17.562856],[38.148504,17.548542],[38.098894,17.526476],[38.025307,17.537767],[37.950066,17.517665],[37.922523,17.492318],[37.862992,17.470252],[37.803305,17.465523],[37.782376,17.458004],[37.725997,17.420513],[37.656751,17.368242],[37.575981,17.335015],[37.547404,17.324111],[37.510197,17.288144],[37.452939,17.108672],[37.411029,17.061698],[37.340388,17.057099],[37.248869,17.056866],[37.169494,17.041415],[37.06149,17.061259],[37.009039,17.058882],[36.995189,17.020538],[36.975759,16.866542],[36.978653,16.800577],[36.935761,16.722339],[36.887806,16.624644],[36.905479,16.459538],[36.913747,16.296189],[36.825897,16.050287],[36.813495,15.993959],[36.724508,15.798881],[36.679188,15.726379],[36.565965,15.362086],[36.521781,15.250155],[36.426748,15.1321],[36.448143,14.94007],[36.470828,14.736465],[36.492274,14.544332],[36.524314,14.256856],[36.443957,13.988449],[36.447109,13.842024],[36.390678,13.626094],[36.346288,13.526281],[36.306859,13.466853],[36.273528,13.405745],[36.21224,13.271077],[36.160098,13.09331],[36.13705,12.911124],[36.135293,12.805343],[36.125217,12.757051],[36.107491,12.726459],[35.987602,12.706305],[35.820584,12.684859],[35.730564,12.661036],[35.670206,12.623752],[35.596102,12.537323],[35.449599,12.300593],[35.372756,12.155589],[35.252453,11.957022],[35.112358,11.816566],[35.082748,11.748275],[35.059648,11.621048],[35.00792,11.419872],[34.960688,11.27678],[34.969163,11.161774],[34.924928,10.962122],[34.931388,10.864789],[34.882295,10.810555],[34.816201,10.759163],[34.771242,10.746166],[34.674969,10.804948],[34.601744,10.864557],[34.571823,10.880189],[34.508003,10.842879],[34.431418,10.787843],[34.343982,10.658626],[34.275665,10.528143],[34.314836,10.251571],[34.311219,10.190851],[34.291478,10.124757],[34.185232,9.918568],[34.159083,9.853404],[34.120326,9.729691],[34.079347,9.513476],[34.078106,9.461516],[34.078098,9.461516],[34.076814,9.461516],[33.890934,9.462213],[33.887834,9.463505],[33.884888,9.466399],[33.882098,9.471205],[33.87879,9.477742],[33.871504,9.506138],[33.867783,9.550348],[33.873984,9.626777],[33.894965,9.717624],[33.959199,9.845265],[33.962454,9.855807],[33.963333,9.861776],[33.963333,9.8687],[33.957338,9.891438],[33.949897,9.911127],[33.946176,9.940918],[33.957338,10.007193],[33.958424,10.027734],[33.956873,10.054193],[33.951861,10.070962],[33.907057,10.181446],[33.892175,10.198964],[33.459074,10.550829],[33.379906,10.646172],[33.371379,10.652709],[33.360682,10.657825],[33.140799,10.737898],[33.130102,10.745959],[33.131497,10.757742],[33.138319,10.77296],[33.164725,10.819211],[33.168446,10.831458],[33.172167,10.850165],[33.073,11.591489],[33.07331,11.606088],[33.077806,11.615777],[33.081526,11.62172],[33.094652,11.637507],[33.106073,11.653863],[33.119095,11.682414],[33.122506,11.693137],[33.136097,11.825583],[33.135063,11.941597],[33.193096,12.135022],[33.199297,12.217291],[32.721858,12.223079],[32.718913,12.218841],[32.718603,12.213777],[32.719791,12.207989],[32.720463,12.201788],[32.720153,12.188817],[32.716277,12.164865],[32.715347,12.152178],[32.715812,12.139259],[32.723099,12.092906],[32.735656,12.05805],[32.737671,12.046448],[32.738291,12.033736],[32.736741,12.009655],[32.072286,12.006735],[32.335319,11.716029],[32.338419,11.710087],[32.34307,11.694299],[32.34493,11.682698],[32.349891,11.580405],[32.335784,11.418554],[32.338833,11.314503],[32.354232,11.246937],[32.425442,11.113947],[32.420791,11.089117],[32.404152,11.057775],[31.932966,10.662476],[31.919943,10.643847],[31.854263,10.479051],[31.792044,10.383165],[31.764294,10.355699],[31.654895,10.221159],[31.224895,9.799247],[31.15446,9.770928],[30.940313,9.759379],[30.827039,9.756278],[30.814171,9.7531],[30.794896,9.745865],[30.783114,9.734936],[30.769161,9.726797],[30.755363,9.731215],[30.739344,9.742687],[30.474657,9.978952],[30.003058,10.277409],[29.957893,10.250253],[29.691036,10.121941],[29.635949,10.088635],[29.605511,10.065071],[29.603961,9.921384],[29.5574,9.848288],[29.473168,9.768603],[29.242432,9.718089],[29.122336,9.674655],[28.999553,9.610163],[28.979554,9.594014],[28.979554,9.5942],[28.932319,9.549451],[28.839465,9.459106],[28.829427,9.388838],[28.844484,9.326099],[28.048951,9.328608],[27.99625,9.3788],[27.885829,9.599642],[27.880799,9.601598],[27.799782,9.587891],[27.074244,9.613832],[26.970478,9.590629],[26.763204,9.499214],[26.658714,9.48415],[26.551331,9.525827],[26.169545,9.965904],[26.087018,10.018459],[26.057046,10.046803],[26.000615,10.123413],[25.919121,10.169354],[25.891474,10.202711],[25.882793,10.249607],[25.885221,10.346087],[25.858195,10.406497],[25.798043,10.420501],[25.285206,10.318492],[25.211722,10.329912],[25.104029,10.311826],[25.067028,10.293791],[25.02362,10.23581],[25.014835,10.175865],[25.016179,10.115223],[25.002898,10.055278],[24.963831,9.988848],[24.81769,9.839606],[24.785237,9.774649],[24.792213,9.610318],[24.782601,9.527326],[24.76038,9.48893],[24.696715,9.425678],[24.673667,9.389298],[24.662919,9.338138],[24.659405,9.229928],[24.648036,9.179078],[24.568299,9.051722],[24.549386,9.006789],[24.544838,8.914857],[24.531919,8.8869],[24.30015,8.814243],[24.21354,8.767811],[24.160417,8.696265],[24.147403,8.66564],[24.147395,8.665621],[24.048176,8.69133],[23.92193,8.709701],[23.67931,8.732491],[23.583191,8.765822],[23.537303,8.815793],[23.551875,8.943201],[23.528001,8.97059],[23.489089,8.993327],[23.462785,9.048466],[23.468263,9.114767],[23.59611,9.261916],[23.622672,9.340619],[23.642774,9.61391],[23.65621,9.710364],[23.646288,9.822915],[23.545054,10.030086],[23.456636,10.174263],[23.312355,10.387945],[23.255873,10.457786],[22.964366,10.751799],[22.930725,10.795336],[22.860083,10.91967],[22.894861,11.028991],[22.937649,11.19203],[22.942817,11.267168],[22.922663,11.344889],[22.849076,11.403284],[22.783447,11.40995],[22.753991,11.439819],[22.697406,11.482659],[22.641027,11.515938],[22.591107,11.579888],[22.556381,11.669521],[22.580979,11.990121],[22.564339,12.032961],[22.489821,12.044743],[22.472406,12.067791],[22.475455,12.12926],[22.435251,12.31191],[22.390241,12.463012],[22.414477,12.546392],[22.35231,12.660442],[22.233403,12.709457],[22.121213,12.694574],[22.000704,12.671862],[21.928099,12.678115],[21.878179,12.69938],[21.843349,12.741238],[21.825262,12.790537],[21.841799,12.864745],[21.907738,13.000964],[21.990214,13.113076],[22.157955,13.215059],[22.202604,13.26932],[22.228132,13.329574],[22.232628,13.398769],[22.221414,13.471633],[22.202397,13.538089],[22.152891,13.62643],[22.107623,13.730325],[22.106486,13.799778],[22.12819,13.850137],[22.173148,13.910598],[22.262135,13.978734],[22.283477,13.992325],[22.339391,14.02886],[22.388174,14.055525],[22.509975,14.127433],[22.538604,14.161875],[22.528217,14.203216],[22.498348,14.237064],[22.449307,14.284245],[22.439385,14.342122],[22.424967,14.441238],[22.399698,14.50418],[22.381508,14.550482],[22.416234,14.585208],[22.467807,14.633371],[22.532041,14.662723],[22.631828,14.68807],[22.670896,14.722461],[22.682471,14.788607],[22.679164,14.851445],[22.714924,14.898367],[22.763293,14.998671],[22.802154,15.044457],[22.867163,15.096624],[22.932327,15.162124],[22.961317,15.23814],[22.969482,15.31134],[22.933929,15.533109],[23.00917,15.625817],[23.105184,15.702556],[23.24347,15.697233],[23.458031,15.713977],[23.604017,15.746016],[23.708248,15.744957],[23.94596,15.703538],[23.965235,15.713434],[23.970765,15.721547],[23.983425,15.780174],[23.98327,15.92815],[23.982909,16.374195],[23.982547,16.820266],[23.982185,17.266337],[23.981823,17.712408],[23.981462,18.158479],[23.9811,18.604524],[23.980686,19.050569],[23.980325,19.49664],[23.980325,19.621464],[23.980325,19.746289],[23.980325,19.871113],[23.980325,19.995937],[24.226976,19.995834],[24.47368,19.995705],[24.720383,19.995576],[24.967035,19.995472],[24.970187,19.997255],[24.973287,19.999038],[24.976388,20.000795],[24.97954,20.002578],[24.979695,20.50092],[24.979902,20.999235],[24.980109,21.497551],[24.980264,21.995867],[25.362308,21.995815],[25.7443,21.995738],[26.126344,21.99566],[26.508387,21.995609],[26.89038,21.995557],[27.272424,21.995505],[27.654467,21.995454],[28.03646,21.995376],[28.418503,21.995299],[28.800547,21.995247],[29.18254,21.995195],[29.564583,21.995144],[29.946627,21.995092],[30.328619,21.995014],[30.710663,21.994937],[31.092707,21.994885],[31.209134,21.994885],[31.260656,22.002275],[31.358531,22.18862],[31.400285,22.202418],[31.464261,22.191488],[31.48612,22.147796],[31.466431,22.084647]]]},"type":"Feature","properties":{"ISO_A2":"SD","NAME":"Sudan"}},{"geometry":{"type":"Polygon","coordinates":[[[33.959199,9.845265],[33.894965,9.717624],[33.873984,9.626777],[33.867783,9.550348],[33.871504,9.506138],[33.87879,9.477742],[33.882098,9.471205],[33.884888,9.466399],[33.887834,9.463505],[33.890934,9.462213],[34.076814,9.461516],[34.078098,9.461516],[34.078106,9.461516],[34.077124,9.420976],[34.084566,9.218507],[34.091025,9.041257],[34.101619,8.751869],[34.101722,8.676344],[34.094591,8.582241],[34.072784,8.545267],[34.019764,8.492092],[33.953308,8.44349],[33.785049,8.431114],[33.644799,8.432586],[33.545322,8.443413],[33.409362,8.447728],[33.281101,8.437263],[33.234282,8.396387],[33.165242,8.251073],[33.065197,8.040491],[33.01259,7.951505],[32.998896,7.899518],[33.014657,7.868564],[33.080751,7.823709],[33.226014,7.760664],[33.392257,7.723715],[33.516332,7.707773],[33.600978,7.690409],[33.66609,7.670979],[33.902458,7.509542],[33.977957,7.434585],[34.020384,7.367974],[34.030202,7.296971],[34.064205,7.225735],[34.200424,7.084581],[34.279283,7.002829],[34.484335,6.898391],[34.56278,6.779845],[34.638744,6.722148],[34.710678,6.660317],[34.749228,6.567868],[34.83806,6.300133],[34.89785,6.159805],[34.959034,6.045058],[34.983581,5.858325],[35.031898,5.774893],[35.081921,5.673142],[35.1645,5.58121],[35.252453,5.511033],[35.268318,5.492301],[35.084453,5.311872],[34.878368,5.109585],[34.639829,4.875465],[34.380207,4.620674],[34.17686,4.41911],[33.976097,4.220208],[33.741641,3.985261],[33.568422,3.811706],[33.539535,3.787108],[33.489357,3.755068],[33.324302,3.754345],[33.15408,3.774705],[32.997242,3.880203],[32.838027,3.798476],[32.737155,3.77269],[32.6769,3.763181],[32.53479,3.749952],[32.335732,3.706182],[32.245505,3.651302],[32.196722,3.60779],[32.15626,3.528002],[32.135899,3.519734],[32.099467,3.529191],[32.048204,3.561178],[31.941854,3.607558],[31.888266,3.709102],[31.838708,3.770468],[31.79809,3.802611],[31.628902,3.70148],[31.54715,3.677579],[31.47997,3.680447],[31.357394,3.737576],[31.22195,3.785945],[31.152342,3.785609],[31.048007,3.724993],[30.92941,3.634068],[30.868121,3.544125],[30.838562,3.490717],[30.81691,3.533351],[30.796963,3.573167],[30.757172,3.624198],[30.699915,3.644093],[30.64767,3.634145],[30.586692,3.624198],[30.559355,3.652801],[30.553515,3.722926],[30.536927,3.787185],[30.508298,3.835709],[30.420707,3.883898],[30.194881,3.981928],[30.021351,4.177652],[29.934018,4.268525],[29.870249,4.327126],[29.779867,4.480967],[29.676876,4.586904],[29.552078,4.636048],[29.469654,4.611812],[29.384853,4.498408],[29.224914,4.391877],[29.15143,4.388208],[29.057379,4.44593],[28.93935,4.487065],[28.727063,4.504997],[28.639524,4.454509],[28.524802,4.37286],[28.427547,4.324155],[28.36724,4.318677],[28.311016,4.33803],[28.247299,4.348546],[28.192109,4.350226],[28.078628,4.424795],[28.01982,4.479391],[27.980701,4.532101],[27.916622,4.567939],[27.841639,4.597756],[27.788103,4.644678],[27.761438,4.703227],[27.71927,4.778339],[27.664183,4.846009],[27.491015,4.967552],[27.439235,5.039228],[27.40332,5.109197],[27.332472,5.18635],[27.256714,5.289652],[27.232529,5.440753],[27.229067,5.562503],[27.213357,5.618805],[27.181215,5.675158],[27.143904,5.722958],[27.083443,5.776831],[26.942314,5.85494],[26.796432,5.945529],[26.726307,5.998239],[26.593654,6.017514],[26.514279,6.069242],[26.447513,6.182982],[26.420538,6.274191],[26.353358,6.34491],[26.324626,6.396251],[26.308606,6.455317],[26.361833,6.635306],[26.284525,6.699023],[26.169287,6.781757],[26.086915,6.872139],[26.03653,6.955235],[25.888994,7.064918],[25.566636,7.228706],[25.380653,7.333377],[25.278953,7.427506],[25.190122,7.519335],[25.181337,7.557213],[25.238698,7.648991],[25.247379,7.724568],[25.200354,7.807896],[25.007187,7.964863],[24.853295,8.13754],[24.736713,8.191542],[24.456058,8.239446],[24.375494,8.258463],[24.291365,8.291432],[24.208373,8.369128],[24.179951,8.461112],[24.220879,8.60826],[24.194782,8.653374],[24.147395,8.665621],[24.147403,8.66564],[24.160417,8.696265],[24.21354,8.767811],[24.30015,8.814243],[24.531919,8.8869],[24.544838,8.914857],[24.549386,9.006789],[24.568299,9.051722],[24.648036,9.179078],[24.659405,9.229928],[24.662919,9.338138],[24.673667,9.389298],[24.696715,9.425678],[24.76038,9.48893],[24.782601,9.527326],[24.792213,9.610318],[24.785237,9.774649],[24.81769,9.839606],[24.963831,9.988848],[25.002898,10.055278],[25.016179,10.115223],[25.014835,10.175865],[25.02362,10.23581],[25.067028,10.293791],[25.104029,10.311826],[25.211722,10.329912],[25.285206,10.318492],[25.798043,10.420501],[25.858195,10.406497],[25.885221,10.346087],[25.882793,10.249607],[25.891474,10.202711],[25.919121,10.169354],[26.000615,10.123413],[26.057046,10.046803],[26.087018,10.018459],[26.169545,9.965904],[26.551331,9.525827],[26.658714,9.48415],[26.763204,9.499214],[26.970478,9.590629],[27.074244,9.613832],[27.799782,9.587891],[27.880799,9.601598],[27.885829,9.599642],[27.99625,9.3788],[28.048951,9.328608],[28.844484,9.326099],[28.829427,9.388838],[28.839465,9.459106],[28.932319,9.549451],[28.979554,9.5942],[28.979554,9.594014],[28.999553,9.610163],[29.122336,9.674655],[29.242432,9.718089],[29.473168,9.768603],[29.5574,9.848288],[29.603961,9.921384],[29.605511,10.065071],[29.635949,10.088635],[29.691036,10.121941],[29.957893,10.250253],[30.003058,10.277409],[30.474657,9.978952],[30.739344,9.742687],[30.755363,9.731215],[30.769161,9.726797],[30.783114,9.734936],[30.794896,9.745865],[30.814171,9.7531],[30.827039,9.756278],[30.940313,9.759379],[31.15446,9.770928],[31.224895,9.799247],[31.654895,10.221159],[31.764294,10.355699],[31.792044,10.383165],[31.854263,10.479051],[31.919943,10.643847],[31.932966,10.662476],[32.404152,11.057775],[32.420791,11.089117],[32.425442,11.113947],[32.354232,11.246937],[32.338833,11.314503],[32.335784,11.418554],[32.349891,11.580405],[32.34493,11.682698],[32.34307,11.694299],[32.338419,11.710087],[32.335319,11.716029],[32.072286,12.006735],[32.736741,12.009655],[32.738291,12.033736],[32.737671,12.046448],[32.735656,12.05805],[32.723099,12.092906],[32.715812,12.139259],[32.715347,12.152178],[32.716277,12.164865],[32.720153,12.188817],[32.720463,12.201788],[32.719791,12.207989],[32.718603,12.213777],[32.718913,12.218841],[32.721858,12.223079],[33.199297,12.217291],[33.193096,12.135022],[33.135063,11.941597],[33.136097,11.825583],[33.122506,11.693137],[33.119095,11.682414],[33.106073,11.653863],[33.094652,11.637507],[33.081526,11.62172],[33.077806,11.615777],[33.07331,11.606088],[33.073,11.591489],[33.172167,10.850165],[33.168446,10.831458],[33.164725,10.819211],[33.138319,10.77296],[33.131497,10.757742],[33.130102,10.745959],[33.140799,10.737898],[33.360682,10.657825],[33.371379,10.652709],[33.379906,10.646172],[33.459074,10.550829],[33.892175,10.198964],[33.907057,10.181446],[33.951861,10.070962],[33.956873,10.054193],[33.958424,10.027734],[33.957338,10.007193],[33.946176,9.940918],[33.949897,9.911127],[33.957338,9.891438],[33.963333,9.8687],[33.963333,9.861776],[33.962454,9.855807],[33.959199,9.845265]]]},"type":"Feature","properties":{"ISO_A2":"SS","NAME":"S. Sudan"}},{"geometry":{"type":"Polygon","coordinates":[[[-12.280614,14.809045],[-12.186537,14.64815],[-12.20682,14.571126],[-12.228395,14.458601],[-12.175246,14.376668],[-12.112899,14.323312],[-12.068379,14.274219],[-12.019183,14.206498],[-12.011173,14.071829],[-12.020113,13.974677],[-11.9881,13.930778],[-11.960892,13.875277],[-11.96637,13.828975],[-11.984198,13.788099],[-12.044143,13.733865],[-12.05422,13.63307],[-11.957068,13.510907],[-11.894591,13.444451],[-11.895212,13.406314],[-11.877771,13.364533],[-11.831675,13.315803],[-11.803357,13.327301],[-11.772222,13.367066],[-11.758269,13.394532],[-11.67445,13.382388],[-11.634969,13.369856],[-11.581329,13.290016],[-11.561666,13.23697],[-11.548773,13.170256],[-11.492807,13.086953],[-11.444128,13.028249],[-11.433948,12.99161],[-11.390384,12.942001],[-11.417437,12.831879],[-11.414362,12.7755],[-11.444076,12.627602],[-11.450562,12.557709],[-11.448779,12.531949],[-11.382426,12.479239],[-11.389403,12.404411],[-11.456737,12.417563],[-11.573681,12.426322],[-11.808085,12.387306],[-11.888545,12.403326],[-12.04236,12.398055],[-12.15194,12.376609],[-12.291182,12.328033],[-12.399057,12.340074],[-12.457374,12.378366],[-12.534216,12.375808],[-12.620775,12.396195],[-12.713043,12.433143],[-12.797301,12.451902],[-12.888174,12.520037],[-12.930704,12.532259],[-12.960521,12.514353],[-12.985662,12.491641],[-13.011939,12.477637],[-13.06129,12.489987],[-13.079842,12.536289],[-13.064391,12.581067],[-13.059766,12.615018],[-13.082917,12.633544],[-13.138495,12.63972],[-13.228076,12.639591],[-13.372589,12.653595],[-13.40574,12.662277],[-13.72926,12.673904],[-14.064847,12.675273],[-14.349222,12.676436],[-14.708166,12.67796],[-14.960606,12.678968],[-15.196095,12.67995],[-15.377945,12.588948],[-15.57478,12.490401],[-15.839544,12.437872],[-16.144203,12.457431],[-16.24151,12.443323],[-16.342304,12.399502],[-16.416331,12.367669],[-16.521337,12.348652],[-16.656936,12.364362],[-16.711791,12.354853],[-16.745846,12.399709],[-16.784861,12.472521],[-16.760315,12.525799],[-16.677633,12.560035],[-16.553196,12.604864],[-16.488084,12.581816],[-16.449946,12.580705],[-16.442893,12.609489],[-16.455037,12.624811],[-16.548829,12.663801],[-16.597638,12.715271],[-16.637842,12.685143],[-16.672569,12.622021],[-16.701404,12.603159],[-16.743882,12.585459],[-16.767989,12.628428],[-16.778402,12.670183],[-16.758972,12.702326],[-16.768919,12.883322],[-16.75737,12.979777],[-16.763338,13.064138],[-16.70453,13.119716],[-16.648772,13.154133],[-16.430878,13.157337],[-16.228332,13.160282],[-16.033047,13.15837],[-15.834248,13.156458],[-15.814404,13.32513],[-15.751565,13.338359],[-15.657308,13.3558],[-15.481814,13.376341],[-15.286219,13.395979],[-15.244516,13.429129],[-15.212115,13.485069],[-15.191599,13.535272],[-15.151137,13.556511],[-15.096412,13.539639],[-15.024581,13.51331],[-14.950271,13.472589],[-14.865056,13.434839],[-14.808264,13.41112],[-14.671915,13.351718],[-14.438571,13.268906],[-14.246748,13.235833],[-14.014901,13.296398],[-13.847495,13.33531],[-13.826722,13.407812],[-13.852818,13.478557],[-13.977384,13.543437],[-14.14696,13.536151],[-14.198999,13.518762],[-14.278038,13.497187],[-14.325554,13.488583],[-14.405498,13.503724],[-14.50699,13.559715],[-14.570862,13.616172],[-14.660159,13.64263],[-14.765992,13.669088],[-14.935801,13.785205],[-15.024452,13.806005],[-15.108349,13.812129],[-15.269528,13.789107],[-15.426882,13.726992],[-15.509668,13.586225],[-15.667178,13.588292],[-16.001628,13.592762],[-16.308741,13.596871],[-16.562291,13.58731],[-16.587768,13.689552],[-16.647867,13.770994],[-16.745432,13.840447],[-16.76693,13.90494],[-16.733857,13.961164],[-16.639599,14.007466],[-16.618127,14.040539],[-16.667453,14.035578],[-16.742125,14.005812],[-16.791734,14.004158],[-16.797729,14.093249],[-16.880514,14.208332],[-16.973842,14.403204],[-17.079391,14.483044],[-17.168068,14.640605],[-17.26062,14.701067],[-17.345809,14.729282],[-17.418466,14.723494],[-17.445028,14.651612],[-17.535617,14.75512],[-17.4118,14.792172],[-17.147165,14.922035],[-16.843411,15.294002],[-16.570766,15.73444],[-16.535238,15.838362],[-16.502062,15.917323],[-16.4801,16.097209],[-16.441032,16.204541],[-16.404342,16.224901],[-16.358117,16.30717],[-16.302307,16.451322],[-16.239029,16.531291],[-16.168336,16.547052],[-16.1133,16.540128],[-16.074026,16.510465],[-15.958995,16.49212],[-15.768205,16.485092],[-15.620772,16.50659],[-15.516696,16.556612],[-15.37996,16.581986],[-15.210565,16.582606],[-15.121423,16.603586],[-15.112638,16.644927],[-15.090572,16.657381],[-15.055225,16.640974],[-15.02192,16.647485],[-14.990604,16.676889],[-14.959521,16.678905],[-14.928618,16.653532],[-14.786689,16.645883],[-14.533733,16.65596],[-14.300078,16.58028],[-14.085672,16.418843],[-13.975033,16.311149],[-13.96816,16.257199],[-13.932607,16.202861],[-13.868476,16.148162],[-13.809798,16.138033],[-13.756648,16.172502],[-13.71492,16.168781],[-13.684689,16.126923],[-13.623556,16.118293],[-13.555524,16.144054],[-13.506999,16.135217],[-13.498163,16.110309],[-13.486949,16.097002],[-13.454083,16.091137],[-13.409641,16.059175],[-13.347552,15.973496],[-13.297012,15.853865],[-13.257997,15.700386],[-13.206449,15.616877],[-13.142371,15.603337],[-13.105293,15.571763],[-13.097903,15.535279],[-13.079274,15.510423],[-13.048526,15.496625],[-12.994318,15.504894],[-12.930859,15.453011],[-12.862724,15.340408],[-12.851897,15.289661],[-12.862646,15.262376],[-12.858512,15.242532],[-12.813166,15.223541],[-12.770326,15.18667],[-12.735238,15.131273],[-12.659635,15.082077],[-12.543544,15.039005],[-12.45988,14.974642],[-12.408669,14.889014],[-12.302525,14.817003],[-12.280614,14.809045]]]},"type":"Feature","properties":{"ISO_A2":"SN","NAME":"Senegal"}},{"geometry":{"type":"Polygon","coordinates":[[[103.969706,1.331444],[103.819948,1.265401],[103.650139,1.325552],[103.705329,1.423428],[103.817984,1.447095],[103.909038,1.415986],[103.960817,1.392215],[103.996371,1.36524],[103.969706,1.331444]]]},"type":"Feature","properties":{"ISO_A2":"SG","NAME":"Singapore"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-26.264128,-58.435141],[-26.259839,-58.492295],[-26.415333,-58.439843],[-26.451041,-58.415297],[-26.401225,-58.383258],[-26.303454,-58.382224],[-26.279372,-58.401758],[-26.264128,-58.435141]]],[[[-37.103337,-54.06564],[-37.006082,-54.114268],[-36.928903,-54.081143],[-36.848934,-54.085019],[-36.80519,-54.101504],[-36.760076,-54.107756],[-36.703801,-54.108067],[-36.606881,-54.18987],[-36.647422,-54.262269],[-36.54102,-54.248006],[-36.448622,-54.308416],[-36.406764,-54.303352],[-36.38581,-54.27896],[-36.326459,-54.251159],[-36.285273,-54.288676],[-36.235638,-54.360454],[-36.172619,-54.382262],[-36.116911,-54.458278],[-36.073141,-54.554086],[-36.033092,-54.567677],[-35.964647,-54.568038],[-35.895323,-54.554758],[-35.921549,-54.637543],[-35.913306,-54.71082],[-35.798585,-54.763427],[-35.866952,-54.792366],[-35.938912,-54.834275],[-36.085492,-54.86678],[-36.123629,-54.852931],[-36.251709,-54.77986],[-36.311473,-54.693767],[-36.445754,-54.570674],[-36.472084,-54.534449],[-36.506552,-54.511194],[-36.628095,-54.496105],[-36.734987,-54.466598],[-36.823871,-54.404327],[-36.851724,-54.366035],[-36.885986,-54.339474],[-37.006754,-54.340921],[-37.082796,-54.311517],[-37.158114,-54.271519],[-37.497628,-54.155816],[-37.630902,-54.167443],[-37.692293,-54.134783],[-37.689012,-54.076751],[-37.618861,-54.042127],[-37.912771,-54.028898],[-38.017416,-54.008021],[-37.945482,-53.995619],[-37.535817,-53.993758],[-37.382209,-53.984095],[-37.368747,-54.009209],[-37.232812,-54.060524],[-37.103337,-54.06564]]]]},"type":"Feature","properties":{"ISO_A2":"GS","NAME":"S. Geo. and S. Sandw. Is."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-5.692153,-15.997731],[-5.78251,-16.004036],[-5.775042,-15.9567],[-5.707863,-15.906161],[-5.662517,-15.912775],[-5.659701,-15.970859],[-5.692153,-15.997731]]],[[[-14.364363,-7.974345],[-14.398676,-7.975792],[-14.408702,-7.967472],[-14.414954,-7.943753],[-14.398573,-7.905719],[-14.383638,-7.882568],[-14.360384,-7.885978],[-14.328861,-7.912643],[-14.302558,-7.935484],[-14.316821,-7.956155],[-14.364363,-7.974345]]]]},"type":"Feature","properties":{"ISO_A2":"SH","NAME":"Saint Helena"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[166.92917,-11.665179],[166.840804,-11.681302],[166.805974,-11.677375],[166.747476,-11.590868],[166.790884,-11.571335],[166.85548,-11.578776],[166.875117,-11.629729],[166.92917,-11.665179]]],[[[160.576276,-11.797884],[160.506513,-11.832197],[160.443055,-11.814937],[160.394582,-11.788893],[160.355101,-11.711895],[160.270249,-11.663939],[160.149533,-11.643992],[160.100026,-11.610712],[160.087107,-11.594382],[160.003495,-11.579603],[159.97931,-11.537952],[159.986338,-11.49475],[159.999981,-11.472013],[160.077289,-11.49289],[160.448739,-11.695875],[160.537106,-11.758817],[160.576276,-11.797884]]],[[[166.133147,-10.757844],[166.053358,-10.775053],[166.027933,-10.770247],[165.968195,-10.779445],[165.904013,-10.85143],[165.856574,-10.841405],[165.819367,-10.844041],[165.791049,-10.784768],[165.790429,-10.756087],[165.835904,-10.760635],[165.859882,-10.703067],[165.909181,-10.674335],[166.023799,-10.661106],[166.125705,-10.679865],[166.162085,-10.693042],[166.129943,-10.745184],[166.133147,-10.757844]]],[[[161.715328,-10.387324],[161.841109,-10.446132],[161.914386,-10.436417],[162.022907,-10.476828],[162.105382,-10.45378],[162.156852,-10.506077],[162.28718,-10.709992],[162.288007,-10.776138],[162.373376,-10.823267],[162.301236,-10.832155],[162.201294,-10.807764],[162.123676,-10.824404],[162.042647,-10.784819],[161.905911,-10.764356],[161.786849,-10.716917],[161.537872,-10.566435],[161.539318,-10.491297],[161.499114,-10.454607],[161.487022,-10.361383],[161.397932,-10.331927],[161.293959,-10.326449],[161.285587,-10.282421],[161.304811,-10.20439],[161.382325,-10.205527],[161.475653,-10.237979],[161.653833,-10.351874],[161.697965,-10.371305],[161.715328,-10.387324]]],[[[161.547793,-9.625717],[161.558852,-9.732739],[161.553788,-9.769688],[161.477927,-9.691139],[161.442477,-9.718941],[161.409714,-9.681631],[161.411988,-9.600344],[161.417052,-9.513734],[161.402273,-9.448105],[161.364135,-9.353382],[161.40682,-9.368472],[161.547793,-9.625717]]],[[[159.750384,-9.272612],[159.970629,-9.433274],[160.0653,-9.41865],[160.354585,-9.421595],[160.52522,-9.536265],[160.625472,-9.588872],[160.6818,-9.691553],[160.75146,-9.715014],[160.794351,-9.767414],[160.818949,-9.862809],[160.801689,-9.878311],[160.713116,-9.913865],[160.649244,-9.928593],[160.481605,-9.894745],[160.321098,-9.821261],[160.002358,-9.812372],[159.853737,-9.791495],[159.802784,-9.763486],[159.755448,-9.726073],[159.680414,-9.636776],[159.621916,-9.532131],[159.612304,-9.470688],[159.607447,-9.353796],[159.625637,-9.311214],[159.686305,-9.268633],[159.750384,-9.272612]]],[[[160.168136,-8.995471],[160.225704,-9.009527],[160.253505,-9.007357],[160.319341,-9.0611],[160.407501,-9.140372],[160.371534,-9.1813],[160.300014,-9.160319],[160.275933,-9.168691],[160.268182,-9.163161],[160.253092,-9.123422],[160.175164,-9.084045],[160.105401,-9.080737],[160.096306,-9.034022],[160.168136,-8.995471]]],[[[159.188558,-9.123525],[159.175122,-9.126006],[159.128096,-9.11381],[159.071045,-9.109676],[159.036319,-9.07495],[159.07766,-9.02534],[159.12975,-8.993094],[159.153728,-9.001362],[159.176052,-9.022033],[159.228452,-9.029991],[159.234033,-9.09376],[159.188558,-9.123525]]],[[[157.645396,-8.758845],[157.643122,-8.794088],[157.585865,-8.783081],[157.457914,-8.730164],[157.453573,-8.705928],[157.526333,-8.697092],[157.57925,-8.703706],[157.623278,-8.734557],[157.645396,-8.758845]]],[[[158.200814,-8.821994],[158.1788,-8.825766],[158.155339,-8.785975],[158.210013,-8.678075],[158.236368,-8.764839],[158.253421,-8.797344],[158.200814,-8.821994]]],[[[158.1079,-8.684172],[158.009508,-8.763134],[157.937574,-8.736469],[157.879283,-8.668773],[157.898404,-8.587227],[157.909256,-8.565627],[157.938298,-8.560976],[157.96703,-8.544233],[157.998449,-8.508163],[158.105523,-8.536791],[158.132188,-8.556635],[158.068316,-8.606658],[158.089607,-8.622678],[158.103456,-8.646449],[158.1079,-8.684172]]],[[[157.388977,-8.713473],[157.389081,-8.728097],[157.33389,-8.699985],[157.212347,-8.565007],[157.233845,-8.519945],[157.345156,-8.432457],[157.379469,-8.420933],[157.410888,-8.47509],[157.3835,-8.555085],[157.347016,-8.575445],[157.332237,-8.650686],[157.388977,-8.713473]]],[[[159.687649,-8.507956],[159.640003,-8.521495],[159.569206,-8.484805],[159.53851,-8.451318],[159.553186,-8.399229],[159.594631,-8.379488],[159.641553,-8.414421],[159.646307,-8.450388],[159.687649,-8.507956]]],[[[160.749393,-8.313962],[160.997646,-8.612032],[160.987828,-8.664845],[160.954135,-8.698952],[160.944316,-8.798997],[160.975529,-8.837548],[161.043431,-8.855118],[161.15867,-8.961778],[161.204662,-9.09252],[161.208796,-9.132621],[161.256648,-9.191945],[161.258509,-9.316899],[161.367959,-9.490325],[161.377571,-9.573731],[161.367443,-9.611248],[161.321864,-9.589544],[161.191019,-9.392863],[161.041468,-9.30801],[161.024415,-9.271527],[160.873416,-9.156805],[160.772027,-8.963845],[160.662576,-8.62061],[160.714046,-8.539272],[160.590436,-8.37277],[160.596327,-8.328225],[160.64852,-8.338354],[160.684797,-8.336338],[160.70216,-8.316546],[160.749393,-8.313962]]],[[[157.763425,-8.242236],[157.826263,-8.323988],[157.898404,-8.506302],[157.885485,-8.569141],[157.833705,-8.572655],[157.819339,-8.612032],[157.749162,-8.523665],[157.655938,-8.499688],[157.587932,-8.445427],[157.564574,-8.337837],[157.557959,-8.269934],[157.504216,-8.258307],[157.351357,-8.275309],[157.302471,-8.333289],[157.232398,-8.314893],[157.217618,-8.262751],[157.22847,-8.211643],[157.321591,-8.161207],[157.340608,-8.096405],[157.433419,-7.98468],[157.490677,-7.965767],[157.598887,-8.005971],[157.612323,-8.164824],[157.651287,-8.216811],[157.763425,-8.242236]]],[[[156.603909,-8.171542],[156.591713,-8.196244],[156.539624,-8.072944],[156.542311,-8.010829],[156.551303,-7.970986],[156.570319,-7.958739],[156.612384,-8.096198],[156.603909,-8.171542]]],[[[157.171833,-8.108084],[157.150026,-8.123225],[157.041195,-8.117489],[156.958306,-8.014343],[156.95903,-7.937965],[157.024142,-7.867892],[157.10269,-7.855489],[157.145788,-7.882568],[157.186096,-7.941169],[157.200565,-8.015893],[157.19147,-8.081832],[157.171833,-8.108084]]],[[[156.687832,-7.923082],[156.668711,-7.936828],[156.635328,-7.882826],[156.61104,-7.865928],[156.611661,-7.805776],[156.510995,-7.707798],[156.502417,-7.640205],[156.560914,-7.574059],[156.639669,-7.61261],[156.717701,-7.695706],[156.809065,-7.722887],[156.790254,-7.777975],[156.707985,-7.876987],[156.687832,-7.923082]]],[[[159.879161,-8.534259],[159.880918,-8.557462],[159.746456,-8.473849],[159.64455,-8.371633],[159.354129,-8.260426],[159.291704,-8.203375],[159.2392,-8.196244],[159.090269,-8.103329],[158.944025,-8.040698],[158.854624,-7.959772],[158.831887,-7.926699],[158.77804,-7.906959],[158.686263,-7.818075],[158.596966,-7.759061],[158.565443,-7.651367],[158.478833,-7.577108],[158.457439,-7.544707],[158.734322,-7.604342],[158.862789,-7.722371],[158.972447,-7.789137],[159.010584,-7.837402],[159.109389,-7.903548],[159.198066,-7.909543],[159.286846,-7.976205],[159.367668,-7.994189],[159.431437,-8.029019],[159.843091,-8.326985],[159.793999,-8.40605],[159.848672,-8.463514],[159.879161,-8.534259]]],[[[155.839821,-7.097189],[155.739362,-7.121064],[155.677557,-7.088921],[155.704946,-7.012647],[155.738949,-6.972959],[155.864626,-7.043239],[155.839821,-7.097189]]],[[[157.486749,-7.330405],[157.518685,-7.365597],[157.441274,-7.425645],[157.339265,-7.393088],[157.317251,-7.359344],[157.314667,-7.341515],[157.243457,-7.352988],[157.101553,-7.323635],[156.904356,-7.180492],[156.69579,-6.910947],[156.494872,-6.761602],[156.457458,-6.715197],[156.452497,-6.638303],[156.479369,-6.608847],[156.604219,-6.64099],[156.76545,-6.764083],[157.03024,-6.892034],[157.102587,-6.957249],[157.148475,-7.113726],[157.193331,-7.160338],[157.336164,-7.280434],[157.411612,-7.308546],[157.451609,-7.313713],[157.486749,-7.330405]]]]},"type":"Feature","properties":{"ISO_A2":"SB","NAME":"Solomon Is."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-12.526052,7.436342],[-12.540624,7.410246],[-12.607184,7.474531],[-12.951607,7.570856],[-12.854378,7.622016],[-12.615245,7.637209],[-12.54419,7.607391],[-12.512512,7.582432],[-12.500627,7.535096],[-12.526052,7.436342]]],[[[-11.180888,9.925338],[-11.115673,9.843146],[-11.04746,9.786302],[-10.963072,9.661633],[-10.864783,9.516448],[-10.758588,9.385345],[-10.690531,9.314264],[-10.682702,9.289356],[-10.687637,9.26114],[-10.721226,9.194478],[-10.749958,9.122363],[-10.747013,9.095285],[-10.726859,9.081694],[-10.615961,9.059189],[-10.605755,8.978832],[-10.605626,8.867599],[-10.551779,8.763755],[-10.500542,8.687558],[-10.503152,8.660299],[-10.628467,8.529996],[-10.677353,8.400573],[-10.702158,8.364193],[-10.71208,8.335254],[-10.686965,8.321663],[-10.652652,8.330293],[-10.603998,8.319467],[-10.557722,8.315694],[-10.496434,8.362126],[-10.394425,8.480981],[-10.360034,8.495528],[-10.283217,8.485141],[-10.285749,8.45411],[-10.314636,8.310863],[-10.359801,8.187924],[-10.389567,8.15759],[-10.516743,8.125267],[-10.570848,8.071161],[-10.617589,7.896418],[-10.647484,7.759372],[-10.69128,7.736427],[-10.878064,7.538222],[-11.000227,7.463033],[-11.08539,7.398567],[-11.166135,7.314412],[-11.267653,7.232634],[-11.37669,7.094658],[-11.454541,6.95123],[-11.507535,6.90653],[-11.547507,6.946966],[-11.733438,7.08856],[-11.929189,7.183541],[-12.346631,7.341774],[-12.485641,7.386268],[-12.48068,7.442492],[-12.432724,7.545018],[-12.510445,7.665734],[-12.480266,7.753274],[-12.510445,7.753377],[-12.570235,7.700564],[-12.697617,7.71586],[-12.781953,7.791101],[-12.850864,7.818696],[-12.88094,7.856653],[-12.925149,8.055168],[-12.95693,8.145291],[-13.020776,8.200921],[-13.148959,8.214615],[-13.201773,8.335822],[-13.272776,8.429718],[-13.261201,8.487596],[-13.203323,8.484289],[-13.157951,8.442276],[-13.08501,8.424757],[-12.994266,8.526457],[-12.912953,8.58157],[-12.894091,8.629809],[-12.904013,8.656268],[-12.953364,8.615133],[-13.08824,8.625727],[-13.121648,8.588778],[-13.181826,8.576893],[-13.228438,8.695904],[-13.22619,8.765977],[-13.20694,8.843104],[-13.071031,8.856359],[-13.059482,8.881164],[-13.153714,8.8977],[-13.271613,8.98741],[-13.292697,9.049215],[-13.234225,9.070144],[-13.178363,9.060868],[-13.129891,9.047562],[-13.077284,9.069628],[-13.028011,9.103579],[-12.998607,9.146936],[-12.958816,9.263311],[-12.831098,9.302223],[-12.755883,9.373588],[-12.684414,9.484176],[-12.651651,9.561897],[-12.622144,9.600655],[-12.603592,9.634244],[-12.589846,9.671141],[-12.557858,9.704963],[-12.524372,9.787207],[-12.501479,9.862163],[-12.427996,9.89813],[-12.277721,9.929782],[-12.142328,9.875392],[-11.922755,9.922728],[-11.911076,9.993034],[-11.710029,9.994171],[-11.47193,9.995463],[-11.273647,9.996522],[-11.205641,9.977738],[-11.180888,9.925338]]]]},"type":"Feature","properties":{"ISO_A2":"SL","NAME":"Sierra Leone"}},{"geometry":{"type":"Polygon","coordinates":[[[-89.362602,14.415994],[-89.337255,14.411369],[-89.170133,14.360312],[-89.120524,14.370234],[-89.057117,14.329152],[-89.02686,14.296957],[-89.000169,14.252722],[-88.868317,14.163658],[-88.845967,14.124771],[-88.747368,14.072268],[-88.707603,14.032064],[-88.665616,14.015527],[-88.58314,14.000128],[-88.51255,13.978966],[-88.504334,13.964213],[-88.497642,13.904526],[-88.482681,13.854245],[-88.449143,13.850989],[-88.4085,13.875381],[-88.276234,13.942663],[-88.151022,13.987338],[-88.080458,13.960595],[-88.038729,13.90463],[-87.991032,13.879618],[-87.891968,13.894992],[-87.802258,13.889979],[-87.731461,13.841068],[-87.715312,13.812671],[-87.75854,13.649942],[-87.774223,13.580308],[-87.781897,13.521371],[-87.756473,13.505998],[-87.731668,13.483079],[-87.737016,13.451376],[-87.814221,13.399157],[-87.838406,13.385798],[-87.820706,13.285158],[-87.878067,13.224413],[-87.930881,13.180643],[-88.023433,13.168757],[-88.180659,13.164003],[-88.41713,13.213509],[-88.591538,13.281076],[-88.685641,13.281515],[-88.655875,13.259191],[-88.581538,13.24498],[-88.483896,13.197179],[-88.512008,13.18395],[-88.867025,13.283272],[-89.277646,13.478092],[-89.523264,13.50915],[-89.804203,13.560103],[-89.970446,13.683144],[-90.095193,13.736526],[-90.10589,13.783035],[-90.104753,13.834763],[-90.048167,13.904061],[-89.942696,13.997363],[-89.8727,14.045603],[-89.839963,14.05506],[-89.793713,14.050125],[-89.749348,14.077022],[-89.711134,14.141334],[-89.671265,14.182701],[-89.570264,14.224662],[-89.547164,14.24125],[-89.555019,14.277268],[-89.57693,14.347083],[-89.573623,14.390078],[-89.54055,14.409922],[-89.500862,14.413772],[-89.418826,14.431083],[-89.383247,14.427621],[-89.362602,14.415994]]]},"type":"Feature","properties":{"ISO_A2":"SV","NAME":"El Salvador"}},{"geometry":{"type":"Polygon","coordinates":[[[12.485264,43.901429],[12.426353,43.894091],[12.396897,43.934554],[12.441081,43.982406],[12.503661,43.98977],[12.514668,43.952976],[12.485264,43.901429]]]},"type":"Feature","properties":{"ISO_A2":"SM","NAME":"San Marino"}},{"geometry":{"type":"Polygon","coordinates":[[[48.938543,11.258435],[48.938491,10.982327],[48.93844,10.71423],[48.938388,10.433239],[48.938233,9.9735],[48.938233,9.807593],[48.93813,9.564119],[48.93813,9.451749],[48.793591,9.232718],[48.61665,8.964595],[48.4286,8.679574],[48.272744,8.443361],[48.126706,8.222186],[47.978188,7.997083],[47.637744,7.997083],[47.305671,7.997083],[46.978249,7.997083],[46.919545,8.026125],[46.644678,8.118187],[46.296017,8.234976],[45.86333,8.379876],[45.555494,8.482997],[45.226935,8.590794],[44.89357,8.700219],[44.632036,8.786105],[44.306216,8.893049],[44.022874,8.986041],[43.983807,9.00883],[43.826814,9.150785],[43.620521,9.337415],[43.58104,9.340722],[43.482545,9.379479],[43.394334,9.480249],[43.303125,9.609078],[43.218427,9.770179],[43.181685,9.879966],[43.068927,9.926242],[43.014718,10.012619],[42.912451,10.140803],[42.841654,10.203073],[42.816436,10.257385],[42.783673,10.369626],[42.725175,10.491737],[42.669262,10.567572],[42.656446,10.600025],[42.659546,10.621367],[42.763106,10.786939],[42.809718,10.846005],[42.862945,10.903211],[42.906146,10.960262],[42.922734,10.999303],[43.04867,11.19433],[43.159412,11.365715],[43.24597,11.499815],[43.441204,11.34644],[43.631167,11.035451],[43.852755,10.784303],[44.158163,10.550777],[44.279292,10.471868],[44.386469,10.430216],[44.942921,10.436728],[45.337729,10.649738],[45.69595,10.803889],[45.816666,10.835876],[46.024509,10.793708],[46.253952,10.781099],[46.460245,10.734177],[46.565044,10.746011],[46.973392,10.92538],[47.23012,11.099891],[47.404993,11.174047],[47.473826,11.174822],[47.712468,11.112035],[48.019219,11.139372],[48.438832,11.290112],[48.57257,11.320498],[48.674373,11.322668],[48.903093,11.254869],[48.938543,11.258435]]]},"type":"Feature","properties":{"ISO_A2":"-99","NAME":"Somaliland"}},{"geometry":{"type":"Polygon","coordinates":[[[41.532742,-1.695348],[41.537599,-1.613183],[41.52189,-1.572255],[41.42696,-1.449472],[41.249813,-1.220545],[41.115816,-1.047429],[40.97877,-0.870282],[40.978202,-0.728741],[40.976548,-0.307319],[40.973241,0.53542],[40.970037,1.378159],[40.96673,2.22095],[40.965076,2.64232],[40.964404,2.814661],[40.97877,2.842411],[41.134988,2.997078],[41.341746,3.201665],[41.61346,3.590479],[41.760945,3.801629],[41.884038,3.977742],[41.915302,4.031279],[42.024133,4.137939],[42.22841,4.201656],[42.355172,4.21225],[42.791631,4.292012],[42.85664,4.324207],[42.894777,4.361078],[42.930951,4.44531],[43.01601,4.563339],[43.125719,4.644471],[43.334027,4.750408],[43.538252,4.840325],[43.583521,4.854975],[43.829191,4.911432],[43.889445,4.930759],[43.988871,4.950525],[44.028145,4.950964],[44.369519,4.931198],[44.636635,4.915773],[44.911605,4.899908],[44.940544,4.912],[45.13278,5.121703],[45.438498,5.45543],[45.633577,5.668285],[45.935005,5.997205],[46.166774,6.234659],[46.422934,6.497252],[46.671808,6.737263],[46.971221,7.026031],[47.159737,7.207855],[47.452845,7.490499],[47.731588,7.759346],[47.978188,7.997083],[48.126706,8.222186],[48.272744,8.443361],[48.4286,8.679574],[48.61665,8.964595],[48.793591,9.232718],[48.93813,9.451749],[48.93813,9.564119],[48.938233,9.807593],[48.938233,9.9735],[48.938388,10.433239],[48.93844,10.71423],[48.938491,10.982327],[48.938543,11.258435],[49.06205,11.270837],[49.388231,11.342719],[49.642066,11.450929],[50.110048,11.529322],[50.466202,11.727553],[50.528317,11.823206],[50.635907,11.943819],[50.79228,11.983713],[51.191325,11.842017],[51.254887,11.830699],[51.23184,11.74502],[51.218197,11.657687],[51.136342,11.505138],[51.084252,11.335639],[51.122286,11.07674],[51.140682,10.656895],[51.131277,10.595891],[51.104922,10.535843],[51.093864,10.488507],[51.050765,10.471971],[51.031852,10.444763],[51.063168,10.433937],[51.188225,10.479722],[51.185538,10.529849],[51.192979,10.554653],[51.295712,10.498688],[51.369092,10.475252],[51.390176,10.422594],[51.384595,10.38655],[51.268116,10.403138],[51.208792,10.431043],[51.035883,10.385155],[50.930049,10.335545],[50.898423,10.253121],[50.873722,9.924149],[50.832794,9.710519],[50.824939,9.428159],[50.685103,9.241142],[50.637974,9.109263],[50.429821,8.845249],[50.321198,8.619578],[50.285748,8.509403],[50.102813,8.19981],[49.852079,7.962563],[49.761232,7.659533],[49.671211,7.469519],[49.570029,7.296971],[49.348544,6.99053],[49.234959,6.777364],[49.092642,6.407878],[49.049337,6.173654],[48.649052,5.494394],[48.233986,4.95267],[47.975294,4.497038],[47.511447,3.968285],[46.878824,3.28564],[46.051174,2.475146],[45.826278,2.309885],[44.920184,1.810174],[44.332726,1.390975],[44.032692,1.105928],[43.71757,0.857881],[43.467662,0.621616],[42.71205,-0.175648],[42.634225,-0.250734],[42.560741,-0.321479],[42.465656,-0.456561],[42.399407,-0.510098],[42.218953,-0.737991],[42.106298,-0.856123],[41.979898,-0.973015],[41.926258,-1.055594],[41.888327,-1.150575],[41.846159,-1.203389],[41.732264,-1.430042],[41.632012,-1.57856],[41.532742,-1.695348]]]},"type":"Feature","properties":{"ISO_A2":"SO","NAME":"Somalia"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-56.150727,46.762417],[-56.171708,46.752857],[-56.24328,46.767197],[-56.209173,46.798229],[-56.185066,46.807272],[-56.152613,46.811097],[-56.137343,46.801562],[-56.139255,46.778644],[-56.150727,46.762417]]],[[[-56.267103,46.838485],[-56.354229,46.795335],[-56.38477,46.819416],[-56.377225,46.847632],[-56.332551,46.915948],[-56.333946,46.935637],[-56.386889,47.06798],[-56.377949,47.089555],[-56.364642,47.098986],[-56.28736,47.070977],[-56.278368,47.03501],[-56.314903,46.953878],[-56.289789,46.899877],[-56.255475,46.860964],[-56.267103,46.838485]]]]},"type":"Feature","properties":{"ISO_A2":"PM","NAME":"St. Pierre and Miquelon"}},{"geometry":{"type":"Polygon","coordinates":[[[19.724512,46.151912],[19.844401,46.145892],[19.934112,46.161472],[20.161385,46.141887],[20.210167,46.126022],[20.241845,46.108607],[20.301324,46.050678],[20.358582,45.975489],[20.437957,45.940762],[20.532577,45.899524],[20.581152,45.8695],[20.652724,45.779402],[20.709258,45.735245],[20.727862,45.737415],[20.746879,45.748991],[20.760108,45.758086],[20.774991,45.749818],[20.775817,45.722532],[20.77928,45.661994],[20.765792,45.59745],[20.786049,45.536497],[20.786566,45.51748],[20.77251,45.500117],[20.774164,45.484407],[20.794008,45.467871],[20.870799,45.427563],[20.941802,45.365319],[21.023864,45.321523],[21.099932,45.293541],[21.147888,45.291758],[21.226436,45.241322],[21.381775,45.205096],[21.431488,45.192539],[21.465388,45.171868],[21.490192,45.147891],[21.491846,45.122259],[21.467868,45.109857],[21.434485,45.075156],[21.420739,45.032962],[21.395935,45.022213],[21.37113,45.021387],[21.35294,45.008984],[21.357074,44.990794],[21.377745,44.973431],[21.409991,44.957721],[21.472002,44.942012],[21.533187,44.918861],[21.53236,44.90067],[21.519958,44.880827],[21.442237,44.873385],[21.384359,44.870078],[21.357901,44.86181],[21.360071,44.82667],[21.523162,44.790083],[21.597059,44.755408],[21.636127,44.71045],[21.740203,44.680684],[21.909288,44.666111],[22.026904,44.619861],[22.09305,44.541933],[22.20095,44.560691],[22.350708,44.676136],[22.497676,44.706264],[22.64206,44.65097],[22.720918,44.605521],[22.734354,44.569915],[22.700765,44.555524],[22.620149,44.562345],[22.554004,44.540331],[22.502327,44.489584],[22.494576,44.435428],[22.530646,44.377963],[22.581805,44.338328],[22.647951,44.316468],[22.683298,44.28647],[22.687845,44.248307],[22.705105,44.237791],[22.667485,44.220195],[22.626557,44.194099],[22.603406,44.148572],[22.597412,44.075295],[22.469047,44.018037],[22.420833,44.007443],[22.399078,43.969539],[22.365385,43.862103],[22.369622,43.781281],[22.386882,43.740121],[22.39484,43.706635],[22.436285,43.6655],[22.474112,43.602248],[22.499123,43.518843],[22.554624,43.454506],[22.696941,43.391047],[22.767531,43.35415],[22.819672,43.300716],[22.859618,43.252347],[22.97682,43.18801],[22.967983,43.142018],[22.9423,43.09706],[22.915222,43.075976],[22.856879,43.018253],[22.79988,42.985749],[22.706191,42.88392],[22.558086,42.878468],[22.522791,42.870303],[22.466774,42.842502],[22.43923,42.791652],[22.465637,42.750776],[22.46326,42.709486],[22.436233,42.629104],[22.472045,42.543295],[22.524238,42.503892],[22.532403,42.48118],[22.523514,42.440976],[22.44569,42.35912],[22.422074,42.328864],[22.344042,42.313955],[22.317429,42.321706],[22.27707,42.349844],[22.239707,42.358138],[22.14669,42.325014],[22.052019,42.304653],[21.977501,42.320053],[21.904121,42.322068],[21.853064,42.308374],[21.814617,42.303103],[21.739273,42.267705],[21.618247,42.242125],[21.562488,42.247525],[21.541559,42.28083],[21.518925,42.328424],[21.529983,42.350025],[21.609875,42.387439],[21.619074,42.423251],[21.730643,42.595462],[21.752192,42.651505],[21.752915,42.669799],[21.723873,42.681969],[21.662482,42.681504],[21.390664,42.751422],[21.403066,42.83152],[21.323174,42.874696],[21.237081,42.913221],[21.222612,42.956216],[21.127011,43.043006],[21.057041,43.091685],[20.967692,43.116025],[20.890746,43.151656],[20.844444,43.173437],[20.823773,43.213952],[20.823773,43.23793],[20.800622,43.261081],[20.763415,43.2586],[20.700577,43.226354],[20.623165,43.19863],[20.609626,43.178398],[20.637635,43.130391],[20.657582,43.09985],[20.648538,43.070963],[20.623992,43.034169],[20.475061,42.953037],[20.458421,42.924564],[20.486843,42.879063],[20.468859,42.857901],[20.344371,42.827955],[20.347627,42.852785],[20.339978,42.892886],[20.268458,42.935467],[20.167896,42.968489],[19.944034,43.08166],[19.858044,43.096543],[19.78115,43.109772],[19.671027,43.163955],[19.614441,43.173437],[19.551551,43.212246],[19.41466,43.342833],[19.298285,43.41394],[19.218755,43.449958],[19.196431,43.484995],[19.191625,43.521039],[19.194364,43.533312],[19.254463,43.584368],[19.300765,43.59181],[19.360297,43.593463],[19.399622,43.567574],[19.451247,43.562044],[19.479979,43.595169],[19.495069,43.642866],[19.488144,43.70356],[19.364017,43.844766],[19.257254,43.943313],[19.245058,43.965017],[19.268106,43.983465],[19.305313,43.993362],[19.345207,43.985093],[19.449387,43.978014],[19.549536,43.987135],[19.583694,44.011087],[19.583746,44.043462],[19.547159,44.073486],[19.430215,44.154514],[19.338903,44.225828],[19.231519,44.280553],[19.151834,44.302516],[19.128373,44.330266],[19.118451,44.35998],[19.127339,44.414576],[19.132404,44.483797],[19.151317,44.527334],[19.223147,44.609551],[19.291877,44.696755],[19.33451,44.780678],[19.356886,44.858554],[19.348618,44.88093],[19.312703,44.897441],[19.23679,44.914261],[19.131525,44.899585],[19.042073,44.871318],[19.00714,44.8692],[18.995461,44.904029],[19.009517,44.919377],[19.037577,44.917517],[19.060522,44.911006],[19.085275,44.926767],[19.100054,44.973793],[19.062847,45.137194],[19.129716,45.151715],[19.13075,45.175486],[19.136951,45.196234],[19.205991,45.167786],[19.303039,45.167269],[19.388099,45.173005],[19.401018,45.189077],[19.399984,45.212486],[19.382311,45.230624],[19.352235,45.24543],[19.330273,45.26809],[19.272808,45.27796],[19.093078,45.336923],[19.004659,45.399503],[19.007657,45.465804],[19.033288,45.502184],[19.064294,45.515],[19.055096,45.527247],[18.953706,45.557995],[18.917843,45.600834],[18.947299,45.655818],[18.894485,45.767103],[18.839088,45.835756],[18.893555,45.865521],[18.9011,45.907637],[18.905389,45.931719],[18.927868,45.931383],[19.015718,45.959727],[19.047654,45.982672],[19.066258,46.009518],[19.087342,46.016184],[19.146253,45.987012],[19.20842,45.984429],[19.278131,46.002877],[19.330221,46.028509],[19.392904,46.049799],[19.421275,46.06445],[19.457552,46.087368],[19.530726,46.155193],[19.61346,46.169172],[19.724512,46.151912]]]},"type":"Feature","properties":{"ISO_A2":"RS","NAME":"Serbia"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[6.659987,0.120665],[6.55684,0.047388],[6.519737,0.066301],[6.496999,0.117357],[6.468164,0.227325],[6.477569,0.280138],[6.524284,0.34029],[6.62588,0.400234],[6.686962,0.404368],[6.7498,0.325614],[6.750007,0.243448],[6.659987,0.120665]]],[[[7.423868,1.567708],[7.386661,1.54156],[7.342426,1.563574],[7.330643,1.603365],[7.387591,1.680156],[7.414463,1.699121],[7.436993,1.68305],[7.450429,1.661966],[7.45229,1.631115],[7.423868,1.567708]]]]},"type":"Feature","properties":{"ISO_A2":"ST","NAME":"Sao Tome and Principe"}},{"geometry":{"type":"Polygon","coordinates":[[[-54.155965,5.359001],[-54.240172,5.28823],[-54.331665,5.187384],[-54.4522,5.013493],[-54.446878,4.958793],[-54.473336,4.914687],[-54.479692,4.836501],[-54.47114,4.749323],[-54.440263,4.691988],[-54.426078,4.583002],[-54.449617,4.485024],[-54.440677,4.428025],[-54.416027,4.337643],[-54.396235,4.241395],[-54.398379,4.202509],[-54.369156,4.170934],[-54.342156,4.140032],[-54.350734,4.05412],[-54.25552,3.901054],[-54.197436,3.834417],[-54.11279,3.769408],[-54.081965,3.70595],[-54.034216,3.629391],[-54.005897,3.620425],[-53.990472,3.589549],[-54.005974,3.530534],[-54.00954,3.448524],[-54.063206,3.353336],[-54.188031,3.178773],[-54.203146,3.138207],[-54.170693,2.993616],[-54.188082,2.874864],[-54.195524,2.817864],[-54.256734,2.713736],[-54.401997,2.461504],[-54.485558,2.416132],[-54.535968,2.343294],[-54.568421,2.342596],[-54.604749,2.335775],[-54.616273,2.326783],[-54.661852,2.327558],[-54.697405,2.359805],[-54.702935,2.397942],[-54.72221,2.44166],[-54.766832,2.454734],[-54.851685,2.439567],[-54.876076,2.450393],[-54.92659,2.497341],[-54.968396,2.548346],[-54.97868,2.597671],[-55.00581,2.592969],[-55.070302,2.54832],[-55.114124,2.539225],[-55.14885,2.550801],[-55.187711,2.547493],[-55.286051,2.499641],[-55.343981,2.488789],[-55.385374,2.440627],[-55.658949,2.418767],[-55.730572,2.406158],[-55.89374,2.489487],[-55.935934,2.516591],[-55.957483,2.520467],[-55.975596,2.515971],[-55.993502,2.497522],[-56.020348,2.392774],[-56.045101,2.364404],[-56.087785,2.341304],[-56.129411,2.299498],[-56.137679,2.259036],[-56.073652,2.236763],[-56.020063,2.158163],[-55.961979,2.095144],[-55.915315,2.03954],[-55.92162,1.976676],[-55.92963,1.887508],[-55.963323,1.857096],[-56.019908,1.842239],[-56.227131,1.885363],[-56.385855,1.923862],[-56.452802,1.932337],[-56.4828,1.94213],[-56.522358,1.974815],[-56.562718,2.005098],[-56.627184,2.016001],[-56.704363,2.036491],[-56.761155,2.11491],[-56.819808,2.226634],[-56.84053,2.277122],[-56.886419,2.325957],[-56.931481,2.395358],[-56.945227,2.456827],[-56.979307,2.513232],[-56.99711,2.532197],[-57.023491,2.608988],[-57.028942,2.637488],[-57.041939,2.641131],[-57.060439,2.665677],[-57.096897,2.747843],[-57.105113,2.768255],[-57.121133,2.775541],[-57.163611,2.833264],[-57.197382,2.853263],[-57.20981,2.882822],[-57.206916,2.963385],[-57.225003,3.003073],[-57.230558,3.078572],[-57.231617,3.108906],[-57.248981,3.142263],[-57.277919,3.164303],[-57.28288,3.218874],[-57.28996,3.353594],[-57.303654,3.377107],[-57.425611,3.375453],[-57.43791,3.362276],[-57.490594,3.354318],[-57.549634,3.352819],[-57.602758,3.370957],[-57.646734,3.394522],[-57.656113,3.423719],[-57.649473,3.517408],[-57.720373,3.588308],[-57.832666,3.675952],[-57.866566,3.787263],[-57.9077,3.85669],[-58.03224,4.001927],[-58.054306,4.101662],[-58.054513,4.171942],[-58.010743,4.23646],[-57.949765,4.349942],[-57.924702,4.453114],[-57.906253,4.506805],[-57.874731,4.577085],[-57.845973,4.668191],[-57.867883,4.724311],[-57.904858,4.779295],[-57.917054,4.820404],[-57.881087,4.880633],[-57.844913,4.923059],[-57.804115,4.929053],[-57.751999,4.954478],[-57.711097,4.991065],[-57.648853,5.000677],[-57.570925,5.004475],[-57.412175,5.004604],[-57.330991,5.020185],[-57.305773,5.049563],[-57.309597,5.105864],[-57.26929,5.157024],[-57.226863,5.178496],[-57.20981,5.195394],[-57.207329,5.214204],[-57.21844,5.231541],[-57.235312,5.242884],[-57.279625,5.24676],[-57.318563,5.335334],[-57.291872,5.373962],[-57.257507,5.445146],[-57.247895,5.485273],[-57.194772,5.548447],[-57.182111,5.528888],[-57.140848,5.643816],[-57.136042,5.737221],[-57.104597,5.829412],[-57.056615,5.938682],[-56.969799,5.992864],[-56.466005,5.937726],[-56.23558,5.885378],[-55.939577,5.795461],[-55.897616,5.699342],[-55.895497,5.795461],[-55.909915,5.892638],[-55.828189,5.961652],[-55.648329,5.985888],[-55.379302,5.952634],[-55.148282,5.993459],[-54.833676,5.988317],[-54.35616,5.909872],[-54.142323,5.856335],[-54.054214,5.807915],[-54.037394,5.72053],[-54.045946,5.608909],[-54.080466,5.502248],[-54.155965,5.359001]]]},"type":"Feature","properties":{"ISO_A2":"SR","NAME":"Suriname"}},{"geometry":{"type":"Polygon","coordinates":[[[22.538656,49.072716],[22.524135,49.031374],[22.483207,48.983264],[22.432047,48.933551],[22.389466,48.873477],[22.33257,48.745087],[22.295208,48.685814],[22.142866,48.568509],[22.131859,48.405314],[22.111343,48.393377],[21.766971,48.338109],[21.721496,48.346558],[21.674626,48.378365],[21.648581,48.40149],[21.632509,48.418492],[21.60264,48.463657],[21.56316,48.495722],[21.504662,48.521896],[21.451332,48.552231],[21.382395,48.553471],[21.19636,48.510605],[21.067324,48.505928],[20.98118,48.519674],[20.866613,48.545668],[20.643112,48.549698],[20.489995,48.526909],[20.474957,48.495102],[20.333777,48.295554],[20.128622,48.222018],[19.95039,48.146622],[19.89861,48.131326],[19.810088,48.15502],[19.709216,48.199797],[19.625397,48.223103],[19.564212,48.21282],[19.497498,48.162125],[19.466957,48.110707],[19.265109,48.073035],[18.914122,48.050814],[18.791856,48.000275],[18.750101,47.939451],[18.748344,47.892684],[18.778007,47.852893],[18.740593,47.806514],[18.724211,47.787161],[18.476268,47.776981],[18.14559,47.763416],[17.94798,47.766904],[17.761893,47.770159],[17.635286,47.809899],[17.480618,47.88762],[17.317321,47.990895],[17.301508,47.99335],[17.277271,48.004331],[17.17459,48.012057],[17.147357,48.005959],[17.085965,48.039574],[17.067878,48.083267],[16.972639,48.198092],[16.865462,48.386918],[16.862671,48.44141],[16.904478,48.503525],[16.94339,48.550939],[16.948868,48.588559],[16.953105,48.598843],[16.985248,48.6769],[17.063331,48.780744],[17.135626,48.84105],[17.18844,48.860946],[17.296857,48.842833],[17.482582,48.827769],[17.625415,48.841825],[17.758534,48.888127],[17.830881,48.92859],[17.892686,48.97112],[17.913305,48.998741],[17.940745,49.011944],[18.050868,49.036542],[18.085956,49.065119],[18.100425,49.119328],[18.109985,49.179789],[18.13262,49.224567],[18.160938,49.257355],[18.364802,49.33624],[18.383095,49.363938],[18.415858,49.390913],[18.476113,49.421118],[18.534559,49.464681],[18.596519,49.49145],[18.676204,49.488452],[18.74974,49.494008],[18.807049,49.509226],[18.832215,49.510777],[18.938152,49.498271],[18.95722,49.4483],[18.968331,49.396236],[19.149457,49.399982],[19.250174,49.511448],[19.302367,49.524833],[19.386238,49.563642],[19.441635,49.597696],[19.479721,49.57638],[19.534756,49.504782],[19.593047,49.447111],[19.626689,49.424374],[19.630254,49.406623],[19.664154,49.396055],[19.730042,49.389595],[19.773915,49.37218],[19.787041,49.31854],[19.787971,49.269965],[19.767352,49.235212],[19.756655,49.204387],[19.802234,49.192347],[19.868999,49.204],[19.916128,49.221389],[20.057618,49.181288],[20.107641,49.27074],[20.16371,49.316396],[20.236522,49.337661],[20.302565,49.365514],[20.363026,49.385255],[20.404677,49.384066],[20.422661,49.392334],[20.474544,49.390164],[20.534592,49.381198],[20.616137,49.391714],[20.728999,49.369907],[20.799485,49.328669],[20.868473,49.31469],[20.94728,49.317093],[21.001127,49.339831],[21.079417,49.418276],[21.136157,49.417061],[21.224989,49.429438],[21.350459,49.428766],[21.639641,49.411946],[21.712143,49.381921],[21.890116,49.343448],[21.967683,49.299084],[22.002203,49.24609],[22.020083,49.209503],[22.202552,49.153227],[22.473078,49.081294],[22.538656,49.072716]]]},"type":"Feature","properties":{"ISO_A2":"SK","NAME":"Slovakia"}},{"geometry":{"type":"Polygon","coordinates":[[[16.516181,46.499901],[16.427659,46.524396],[16.321206,46.534628],[16.301207,46.521398],[16.258419,46.507885],[16.236766,46.48383],[16.253303,46.389107],[16.227413,46.372829],[16.106438,46.382208],[16.066493,46.37133],[16.000708,46.305391],[15.933322,46.277641],[15.847591,46.257874],[15.784288,46.233974],[15.704241,46.213252],[15.635976,46.20072],[15.609001,46.171937],[15.592568,46.139975],[15.596909,46.109227],[15.666207,46.048507],[15.675612,45.983705],[15.668067,45.904459],[15.652203,45.862162],[15.624762,45.834024],[15.454075,45.797618],[15.277032,45.732609],[15.272949,45.717727],[15.35372,45.659926],[15.356975,45.645483],[15.290106,45.612668],[15.283543,45.579673],[15.291191,45.541536],[15.326693,45.502288],[15.339457,45.467044],[15.242098,45.441413],[15.110479,45.450792],[14.954571,45.49991],[14.9,45.492676],[14.847084,45.467354],[14.793082,45.478206],[14.733602,45.508489],[14.649473,45.571482],[14.608545,45.610085],[14.591802,45.651271],[14.568858,45.657213],[14.534028,45.645276],[14.505192,45.595202],[14.427368,45.50575],[14.369904,45.481462],[14.282984,45.48663],[14.161234,45.485131],[14.08558,45.477845],[13.992821,45.509445],[13.970341,45.503347],[13.970135,45.482599],[13.935615,45.449784],[13.878667,45.42839],[13.615221,45.476759],[13.577911,45.516886],[13.637338,45.535955],[13.719866,45.587579],[13.775935,45.581973],[13.844768,45.59285],[13.87474,45.614839],[13.831177,45.680416],[13.721674,45.761264],[13.663487,45.791986],[13.58344,45.812372],[13.569642,45.834128],[13.613981,45.961691],[13.600545,45.979778],[13.509181,45.973783],[13.487684,45.98709],[13.480294,46.009233],[13.486443,46.039542],[13.548042,46.089125],[13.616565,46.133102],[13.634961,46.157751],[13.632481,46.177027],[13.544683,46.19656],[13.491766,46.216611],[13.449753,46.22351],[13.421021,46.212296],[13.399627,46.224957],[13.378181,46.261595],[13.399524,46.317535],[13.478485,46.369211],[13.563234,46.4151],[13.637132,46.448535],[13.679713,46.462901],[13.69997,46.520262],[13.743999,46.514319],[13.831383,46.511218],[13.928794,46.498196],[14.019641,46.482176],[14.099533,46.461919],[14.267274,46.440732],[14.419926,46.427916],[14.465918,46.416108],[14.503539,46.417064],[14.549841,46.3997],[14.577126,46.41293],[14.59697,46.436081],[14.680169,46.463443],[14.756753,46.499126],[14.8106,46.544601],[14.840573,46.58049],[14.893283,46.605915],[14.949455,46.613227],[15.000666,46.625992],[15.217035,46.642993],[15.439296,46.629661],[15.545336,46.65462],[15.632669,46.698442],[15.760258,46.710767],[15.766924,46.711258],[15.957662,46.677616],[15.972286,46.697202],[15.980451,46.705857],[15.976834,46.801381],[16.037192,46.844841],[16.093054,46.86329],[16.283585,46.857269],[16.308493,46.827995],[16.318415,46.782519],[16.335468,46.721619],[16.367198,46.704798],[16.384561,46.68082],[16.381254,46.638652],[16.418461,46.607233],[16.505691,46.52207],[16.516181,46.499901]]]},"type":"Feature","properties":{"ISO_A2":"SI","NAME":"Slovenia"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.528532,56.290518],[16.477165,56.240185],[16.431587,56.243751],[16.401304,56.310878],[16.394173,56.483633],[16.41226,56.569002],[16.630334,56.876865],[16.727692,56.902005],[16.864635,57.090676],[16.901532,57.174624],[16.96096,57.250201],[16.995997,57.317794],[17.025349,57.345079],[17.089221,57.332263],[17.117643,57.319809],[17.05036,57.280457],[17.058215,57.229246],[17.053461,57.208033],[16.883652,56.985204],[16.83828,56.84051],[16.778025,56.805215],[16.528532,56.290518]]],[[[19.07649,57.835927],[18.993704,57.81213],[18.945128,57.741592],[18.878156,57.729707],[18.81387,57.70622],[18.790926,57.483081],[18.907921,57.398357],[18.843636,57.386472],[18.784828,57.361099],[18.742867,57.32353],[18.699872,57.242708],[18.538435,57.196923],[18.477353,57.163023],[18.387229,57.087627],[18.340204,56.978228],[18.248943,56.931564],[18.146417,56.920505],[18.206569,57.010164],[18.285324,57.083183],[18.209566,57.133309],[18.163987,57.211702],[18.105076,57.271853],[18.151998,57.339059],[18.128951,57.449155],[18.136495,57.556642],[18.204915,57.610902],[18.283256,57.655137],[18.405213,57.756837],[18.537401,57.830553],[18.721886,57.863704],[18.805188,57.833163],[18.841155,57.900187],[18.900583,57.915483],[18.956394,57.89998],[19.07649,57.835927]]],[[[19.156381,57.922615],[19.138398,57.860267],[19.086515,57.864995],[19.039283,57.911013],[19.134884,57.981345],[19.281128,57.977547],[19.331461,57.962871],[19.156381,57.922615]]],[[[18.416168,59.02911],[18.37183,59.019602],[18.349919,59.022599],[18.377204,59.069056],[18.397565,59.089107],[18.464951,59.107865],[18.485518,59.10461],[18.416168,59.02911]]],[[[18.595382,59.470375],[18.570267,59.437251],[18.545153,59.477817],[18.555178,59.485775],[18.572334,59.525824],[18.62091,59.547787],[18.698425,59.534609],[18.697908,59.52461],[18.623804,59.492183],[18.595382,59.470375]]],[[[22.85414,68.367352],[22.975425,68.316451],[23.097898,68.257591],[23.182544,68.136617],[23.318556,68.130312],[23.355505,68.088687],[23.474257,68.017347],[23.638899,67.95438],[23.632904,67.933192],[23.501853,67.875211],[23.487797,67.79656],[23.500199,67.696204],[23.541282,67.614323],[23.536993,67.590397],[23.50454,67.562155],[23.465472,67.517869],[23.451468,67.479189],[23.45493,67.460275],[23.468056,67.449966],[23.537148,67.449165],[23.660809,67.440018],[23.73357,67.422913],[23.774911,67.32863],[23.760907,67.310517],[23.656624,67.267832],[23.626083,67.233933],[23.623086,67.184142],[23.641534,67.129391],[23.677397,67.068129],[23.758943,67.002577],[23.869324,66.934028],[23.941826,66.87783],[23.976087,66.83822],[23.988541,66.810522],[23.93888,66.775718],[23.89418,66.706885],[23.885809,66.628052],[23.8655,66.576608],[23.7684,66.505863],[23.701117,66.480749],[23.681997,66.443387],[23.673832,66.380703],[23.693521,66.304299],[23.70029,66.252649],[23.720961,66.215442],[23.75145,66.191154],[23.907306,66.148262],[23.994639,66.060361],[24.049003,65.989822],[24.155508,65.805286],[23.890563,65.782238],[23.691402,65.82854],[23.59208,65.805338],[23.418344,65.804356],[23.221146,65.786114],[23.154587,65.749915],[23.10229,65.735368],[22.919356,65.786476],[22.74655,65.870967],[22.620356,65.806526],[22.538604,65.794331],[22.46512,65.852622],[22.400938,65.86213],[22.366315,65.8427],[22.335929,65.791178],[22.28756,65.750638],[22.274951,65.724981],[22.266579,65.621525],[22.25397,65.597547],[22.086228,65.610957],[22.096254,65.583801],[22.132841,65.570107],[22.147517,65.552872],[22.086745,65.530212],[21.92014,65.532357],[21.903087,65.508353],[21.950009,65.470371],[21.913422,65.437091],[21.879626,65.424017],[21.680672,65.403347],[21.565537,65.408101],[21.532567,65.386552],[21.523472,65.358569],[21.545176,65.331129],[21.596026,65.31653],[21.612666,65.299115],[21.609152,65.261392],[21.56688,65.254544],[21.446888,65.320845],[21.410301,65.317409],[21.437793,65.282941],[21.506316,65.245372],[21.546003,65.206976],[21.580626,65.160803],[21.573908,65.125767],[21.424873,65.012673],[21.293719,64.941256],[21.195947,64.876893],[21.138173,64.80868],[21.204939,64.774315],[21.279249,64.724732],[21.331546,64.629337],[21.393868,64.544329],[21.519648,64.463094],[21.494327,64.41612],[21.465078,64.379585],[21.255788,64.299176],[21.01849,64.177969],[20.762692,63.867833],[20.677632,63.826285],[20.453667,63.77373],[20.371398,63.722881],[20.20469,63.662471],[19.913648,63.610536],[19.781666,63.538189],[19.722032,63.463336],[19.655783,63.457987],[19.59005,63.487262],[19.502304,63.509044],[19.490935,63.460209],[19.494655,63.424346],[19.354302,63.477469],[19.288053,63.428739],[19.236377,63.347348],[19.034322,63.237742],[18.816661,63.257457],[18.792269,63.238156],[18.850147,63.2241],[18.858932,63.206582],[18.819451,63.19728],[18.75961,63.198262],[18.667212,63.176558],[18.606441,63.178263],[18.577605,63.126431],[18.530683,63.063541],[18.407693,63.037496],[18.344235,63.032122],[18.312919,62.996362],[18.502054,62.988869],[18.486965,62.958586],[18.482624,62.928304],[18.46309,62.895851],[18.248013,62.849084],[18.21494,62.812213],[18.169982,62.789346],[18.07438,62.79069],[18.077894,62.81198],[18.093604,62.83601],[17.95108,62.833891],[17.906639,62.886756],[17.87956,62.873191],[17.89558,62.830506],[17.93289,62.786142],[17.974438,62.72103],[17.940745,62.679895],[17.903021,62.659483],[17.930513,62.640621],[18.006581,62.626255],[18.037277,62.60052],[17.94705,62.578454],[17.834498,62.502749],[17.717813,62.500888],[17.646396,62.450865],[17.570638,62.45102],[17.508937,62.482543],[17.410235,62.508381],[17.378402,62.462803],[17.373338,62.426526],[17.429045,62.334697],[17.535292,62.263693],[17.633684,62.233023],[17.562887,62.212327],[17.510177,62.166283],[17.446615,62.022674],[17.411992,61.966115],[17.374475,61.866302],[17.398246,61.782069],[17.417263,61.740676],[17.465425,61.684478],[17.334581,61.691713],[17.196398,61.724553],[17.215621,61.65634],[17.130769,61.575725],[17.146582,61.504618],[17.164255,61.458316],[17.138003,61.38168],[17.177898,61.357625],[17.199602,61.311968],[17.163842,61.278275],[17.179758,61.249285],[17.185752,61.146552],[17.212934,60.985839],[17.202909,60.951835],[17.278873,60.812154],[17.2612,60.763165],[17.250968,60.700791],[17.359902,60.640795],[17.457054,60.641777],[17.555446,60.642707],[17.593066,60.627669],[17.63079,60.585269],[17.661176,60.535168],[17.742204,60.539302],[17.871602,60.580101],[17.955731,60.58979],[18.011335,60.511449],[18.16254,60.407915],[18.250494,60.361536],[18.400045,60.337093],[18.557555,60.253583],[18.535437,60.152892],[18.60117,60.119225],[18.786998,60.079486],[18.852731,60.025897],[18.884253,59.980163],[18.933243,59.942285],[18.990397,59.827796],[18.970553,59.757231],[18.895622,59.732969],[18.718785,59.657392],[18.639927,59.60091],[18.578122,59.56577],[18.402422,59.4904],[18.338137,59.476835],[18.276435,59.437664],[18.216904,59.420508],[18.163574,59.430378],[17.964206,59.359374],[17.829331,59.379012],[17.772797,59.4141],[17.808557,59.553213],[17.785922,59.598016],[17.760084,59.620496],[17.671614,59.594761],[17.687324,59.541586],[17.534465,59.539415],[17.390494,59.584477],[17.372098,59.495749],[17.062659,59.569232],[16.977496,59.550681],[16.840967,59.587474],[16.752394,59.543317],[16.646871,59.559259],[16.5738,59.611685],[16.472618,59.519365],[16.251753,59.493216],[16.04422,59.478489],[16.144369,59.447741],[16.61049,59.453529],[16.742265,59.430636],[16.913831,59.445829],[17.065656,59.373224],[17.17521,59.355809],[17.304608,59.272145],[17.370754,59.294934],[17.47452,59.291523],[17.570535,59.267623],[17.87615,59.270801],[17.979812,59.32904],[18.132671,59.316225],[18.210599,59.331469],[18.270544,59.367126],[18.33607,59.375343],[18.395808,59.368625],[18.459163,59.396737],[18.508876,59.407976],[18.560242,59.394463],[18.617603,59.327025],[18.498644,59.291963],[18.414205,59.290335],[18.37307,59.179747],[18.322014,59.132205],[18.285324,59.109364],[18.098151,59.062287],[17.974645,59.002652],[17.829021,58.954593],[17.765459,58.965032],[17.669651,58.916197],[17.456744,58.858423],[17.347603,58.780495],[17.102863,58.710835],[16.978116,58.654146],[16.639326,58.651149],[16.315831,58.663629],[16.214235,58.63668],[16.318105,58.628308],[16.390866,58.60185],[16.477992,58.612908],[16.683044,58.599679],[16.788464,58.585262],[16.923856,58.492554],[16.824327,58.45961],[16.651935,58.434315],[16.716634,58.302902],[16.769964,58.214276],[16.700097,58.160791],[16.69493,57.91755],[16.596951,57.912874],[16.555403,57.812234],[16.586202,57.760919],[16.583825,57.641753],[16.604186,57.568321],[16.652245,57.500677],[16.630851,57.43019],[16.476028,57.265135],[16.479439,57.187672],[16.507344,57.14168],[16.527911,57.068145],[16.457528,56.92681],[16.407815,56.808677],[16.348698,56.709252],[16.216509,56.589983],[16.150673,56.500841],[15.996678,56.222589],[15.9203,56.167373],[15.826662,56.124947],[15.722276,56.164221],[15.626571,56.185589],[15.509679,56.183031],[15.326538,56.150836],[15.051206,56.172205],[14.782075,56.161895],[14.713965,56.134145],[14.75479,56.033169],[14.655571,56.01994],[14.558626,56.048621],[14.473256,56.014359],[14.401943,55.976739],[14.2619,55.887545],[14.215081,55.832613],[14.202885,55.729157],[14.276473,55.636398],[14.341688,55.527722],[14.17374,55.396619],[14.079999,55.392175],[13.80632,55.428555],[13.321389,55.346389],[12.88586,55.411373],[12.940637,55.481575],[12.938776,55.5332],[12.963374,55.612575],[12.978051,55.69381],[12.973916,55.748122],[12.94198,55.806051],[12.834597,55.881861],[12.592544,56.137607],[12.521024,56.245559],[12.471208,56.290518],[12.507072,56.292947],[12.706336,56.235017],[12.752845,56.242149],[12.801627,56.263905],[12.742199,56.346897],[12.691143,56.384414],[12.656416,56.440586],[12.773102,56.455779],[12.857438,56.452394],[12.919553,56.515569],[12.883689,56.617707],[12.793152,56.649152],[12.717601,56.662847],[12.572701,56.823302],[12.421495,56.906398],[12.151848,57.226947],[12.053249,57.446985],[11.961575,57.426082],[11.91703,57.521916],[11.885094,57.612711],[11.878686,57.679425],[11.734922,57.717666],[11.729083,57.764459],[11.703193,57.973206],[11.548991,58.001215],[11.449358,58.118365],[11.431582,58.340005],[11.329986,58.380313],[11.248234,58.369151],[11.252058,58.424083],[11.271591,58.475656],[11.223842,58.679933],[11.207926,58.866407],[11.169169,58.922709],[11.147155,58.988622],[11.166895,59.045544],[11.195834,59.078255],[11.295363,59.086885],[11.388277,59.036526],[11.470752,58.909531],[11.543513,58.892995],[11.642732,58.926068],[11.712185,59.018672],[11.751872,59.157578],[11.798174,59.28987],[11.743397,59.431463],[11.684848,59.555745],[11.680765,59.59228],[11.834296,59.697183],[11.88127,59.782449],[11.93212,59.863685],[11.988292,59.891332],[12.071853,59.89761],[12.169211,59.912881],[12.291943,59.967244],[12.402065,60.040056],[12.486091,60.106771],[12.514616,60.238882],[12.515857,60.305208],[12.552857,60.354508],[12.588617,60.450729],[12.553787,60.545633],[12.445267,60.689629],[12.314629,60.892149],[12.294165,61.002685],[12.353748,61.023201],[12.467591,61.04152],[12.68303,61.046817],[12.706026,61.059839],[12.727833,61.10826],[12.776409,61.173992],[12.828189,61.221845],[12.863691,61.290264],[12.880796,61.352276],[12.757496,61.445681],[12.596058,61.541308],[12.486814,61.572986],[12.292098,61.653446],[12.155362,61.720729],[12.233703,61.976837],[12.291994,62.16742],[12.301399,62.213774],[12.303466,62.285604],[12.114537,62.59189],[12.121927,62.660026],[12.139807,62.72134],[12.119602,62.825933],[12.108646,62.919467],[12.141047,62.947838],[12.2182,63.000651],[12.144613,63.082506],[12.138619,63.089173],[11.999919,63.291693],[12.212102,63.492249],[12.175206,63.595963],[12.301916,63.671204],[12.532703,63.843545],[12.662463,63.94049],[12.690006,63.95744],[12.792739,63.999996],[12.987559,64.050484],[13.203463,64.075081],[13.299581,64.074797],[13.670721,64.040639],[13.960523,64.014],[14.002691,64.040742],[14.063256,64.09552],[14.141184,64.173525],[14.148005,64.260316],[14.119893,64.38775],[14.077622,64.463998],[13.873551,64.513556],[13.650258,64.581536],[13.924763,64.796769],[14.115139,64.946165],[14.352437,65.170854],[14.426231,65.264337],[14.479664,65.301441],[14.549531,65.646407],[14.595833,65.742861],[14.63459,65.793271],[14.63521,65.845025],[14.609941,65.932255],[14.543226,66.129349],[14.917984,66.153714],[15.040044,66.167538],[15.153318,66.191051],[15.374907,66.252029],[15.483737,66.305979],[15.422966,66.489844],[15.557015,66.552088],[15.884126,66.768845],[16.237697,66.976403],[16.403475,67.054977],[16.420734,67.093373],[16.434274,67.155074],[16.360686,67.252019],[16.281518,67.312067],[16.127419,67.425807],[16.193565,67.505182],[16.30715,67.520608],[16.457115,67.551769],[16.57411,67.619568],[16.585582,67.628327],[16.783606,67.895029],[17.170456,68.030111],[17.324659,68.103802],[17.564747,68.048457],[17.916664,67.964896],[18.073295,68.087834],[18.124972,68.133464],[18.176648,68.200644],[18.155926,68.316864],[18.147037,68.467759],[18.162592,68.528401],[18.303049,68.555402],[18.378651,68.562379],[18.769842,68.500031],[18.868234,68.501142],[19.052615,68.492719],[19.258959,68.46533],[19.691233,68.392415],[19.870033,68.362236],[19.96982,68.356396],[20.055965,68.390374],[20.240036,68.477526],[19.968838,68.542018],[20.147432,68.607337],[20.239985,68.673121],[20.319411,68.754047],[20.34804,68.848718],[20.337136,68.899645],[20.282308,68.934346],[20.116736,69.020904],[20.491959,69.033306],[20.622183,69.036872],[20.895087,68.979821],[20.907076,68.96747],[20.908936,68.937756],[20.918548,68.906931],[21.183441,68.828822],[21.259767,68.78743],[21.422393,68.724591],[21.465388,68.690691],[21.616025,68.650978],[21.724028,68.608526],[21.850222,68.574109],[21.997448,68.520624],[22.195162,68.477965],[22.362077,68.464038],[22.782413,68.39102],[22.85414,68.367352]]]]},"type":"Feature","properties":{"ISO_A2":"SE","NAME":"Sweden"}},{"geometry":{"type":"Polygon","coordinates":[[[31.948262,-25.957588],[31.968468,-25.972213],[32.060503,-26.018308],[32.068875,-26.110137],[32.059987,-26.215092],[32.041383,-26.28129],[32.048308,-26.347177],[32.077918,-26.449806],[32.105979,-26.519983],[32.112903,-26.839498],[32.081691,-26.824822],[32.024847,-26.81118],[31.994668,-26.817484],[31.967176,-26.96068],[31.94604,-27.173587],[31.958391,-27.305878],[31.742538,-27.309961],[31.469532,-27.295543],[31.273988,-27.238389],[31.063355,-27.112298],[30.938091,-26.915773],[30.883314,-26.792421],[30.80673,-26.78529],[30.794276,-26.764309],[30.787506,-26.613621],[30.789056,-26.455439],[30.803371,-26.413426],[30.945223,-26.218709],[31.033279,-26.097735],[31.088056,-25.980688],[31.207325,-25.843332],[31.335173,-25.755585],[31.382612,-25.742976],[31.415116,-25.746542],[31.640477,-25.86731],[31.871471,-25.981618],[31.9217,-25.968802],[31.948262,-25.957588]]]},"type":"Feature","properties":{"ISO_A2":"SZ","NAME":"Swaziland"}},{"geometry":{"type":"Polygon","coordinates":[[[-63.123019,18.068942],[-63.011168,18.068942],[-63.012324,18.04541],[-63.023073,18.019185],[-63.090459,18.041431],[-63.12472,18.064324],[-63.123019,18.068942]]]},"type":"Feature","properties":{"ISO_A2":"SX","NAME":"Sint Maarten"}},{"geometry":{"type":"Polygon","coordinates":[[[55.54031,-4.693098],[55.542998,-4.785496],[55.494732,-4.754593],[55.481193,-4.694855],[55.416804,-4.65031],[55.383421,-4.609279],[55.455768,-4.55874],[55.54031,-4.693098]]]},"type":"Feature","properties":{"ISO_A2":"SC","NAME":"Seychelles"}},{"geometry":{"type":"Polygon","coordinates":[[[42.358996,37.108588],[42.359048,37.094997],[42.350108,37.060581],[42.237298,36.961155],[42.083974,36.826021],[41.974058,36.740807],[41.78854,36.597146],[41.650151,36.566399],[41.416831,36.514645],[41.3542,36.46439],[41.296012,36.383361],[41.261802,36.272463],[41.251725,36.20301],[41.245576,36.073406],[41.300198,35.938969],[41.352649,35.809985],[41.359367,35.72459],[41.354096,35.640409],[41.30335,35.550621],[41.248315,35.427502],[41.216379,35.288182],[41.199584,35.027371],[41.19917,34.805318],[41.194675,34.768989],[41.099021,34.612306],[40.987039,34.429036],[40.935052,34.386584],[40.689486,34.332013],[40.421543,34.197732],[40.121975,34.047638],[39.850002,33.911367],[39.564438,33.768353],[39.268384,33.620015],[39.056717,33.514027],[38.77353,33.372201],[38.515665,33.236628],[38.254286,33.099246],[38.055745,32.99486],[37.754161,32.829831],[37.577428,32.733067],[37.317547,32.590776],[37.08893,32.465512],[36.818404,32.317304],[36.4792,32.361307],[36.372126,32.386938],[36.284277,32.457451],[36.219784,32.495097],[36.059484,32.533777],[35.956441,32.666714],[35.89474,32.713792],[35.787253,32.734927],[35.801464,32.78234],[35.856861,32.862336],[35.913498,32.949591],[35.881976,32.99809],[35.871744,33.039353],[35.868075,33.088575],[35.906677,33.135704],[35.888487,33.19247],[35.858824,33.249547],[35.837017,33.278227],[35.83712,33.330524],[35.85159,33.37047],[35.869108,33.431758],[35.914738,33.465374],[35.926521,33.500281],[35.967552,33.534594],[36.022225,33.562525],[36.034473,33.585056],[36.02667,33.597924],[35.971686,33.623116],[35.942385,33.667558],[35.96843,33.732412],[35.986155,33.752643],[36.018815,33.783933],[36.092247,33.831579],[36.149814,33.839485],[36.199372,33.839537],[36.283346,33.835609],[36.348562,33.827031],[36.365099,33.839356],[36.362825,33.855143],[36.282261,33.894185],[36.277817,33.92532],[36.297816,33.958651],[36.354918,34.011335],[36.422821,34.049834],[36.457548,34.05681],[36.535166,34.134325],[36.584982,34.221219],[36.504366,34.432369],[36.455532,34.466165],[36.376467,34.495182],[36.329907,34.4996],[36.32629,34.513346],[36.388611,34.566908],[36.43295,34.613495],[36.383909,34.657885],[36.296317,34.678685],[36.263554,34.632848],[36.151106,34.62861],[35.976233,34.629204],[35.899339,34.852085],[35.887867,34.948616],[35.889934,35.060315],[35.943057,35.223819],[35.918046,35.299499],[35.915979,35.35053],[35.902439,35.420681],[35.764463,35.571576],[35.839704,35.849233],[35.892673,35.916568],[35.967552,35.910056],[36.127335,35.831457],[36.153587,35.83386],[36.201956,35.937548],[36.248878,35.972688],[36.347529,36.003539],[36.375434,36.171255],[36.421477,36.203449],[36.477081,36.220683],[36.562399,36.223939],[36.636762,36.233964],[36.641464,36.263523],[36.537439,36.457413],[36.546638,36.506351],[36.596867,36.701352],[36.62839,36.777704],[36.658569,36.80256],[36.776598,36.79269],[36.941756,36.758403],[36.985319,36.702411],[37.066193,36.652647],[37.187426,36.655902],[37.327055,36.646601],[37.436351,36.643319],[37.523529,36.67833],[37.720365,36.743701],[37.817981,36.76556],[37.906658,36.794654],[38.191705,36.901546],[38.30591,36.893381],[38.383942,36.879248],[38.443783,36.862246],[38.578038,36.789124],[38.688884,36.715072],[38.766657,36.693135],[38.906494,36.69466],[39.108445,36.680552],[39.356595,36.681586],[39.501445,36.70223],[39.686498,36.738636],[40.0164,36.826047],[40.450379,37.008878],[40.705712,37.09771],[40.815576,37.108175],[40.958875,37.109156],[41.102174,37.085902],[41.264593,37.069314],[41.339575,37.070787],[41.515533,37.089183],[41.74353,37.126106],[41.886829,37.156389],[42.059893,37.20605],[42.167897,37.288629],[42.202675,37.297259],[42.24753,37.282247],[42.268511,37.276588],[42.312849,37.229614],[42.358996,37.108588]]]},"type":"Feature","properties":{"ISO_A2":"SY","NAME":"Syria"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-72.332815,21.85138],[-72.218635,21.796293],[-72.149828,21.804483],[-72.144325,21.792727],[-72.181558,21.78004],[-72.190678,21.769783],[-72.300904,21.755236],[-72.33545,21.758],[-72.342375,21.795311],[-72.332815,21.85138]]],[[[-71.661408,21.765235],[-71.665388,21.751696],[-71.721767,21.790246],[-71.830416,21.790608],[-71.84765,21.843473],[-71.806128,21.852103],[-71.668333,21.833448],[-71.636914,21.787559],[-71.661408,21.765235]]],[[[-71.879948,21.840424],[-71.897466,21.829856],[-71.955499,21.864402],[-71.963793,21.892023],[-71.984515,21.893418],[-72.019061,21.918275],[-72.010638,21.950443],[-71.931573,21.95189],[-71.899611,21.86249],[-71.879948,21.840424]]]]},"type":"Feature","properties":{"ISO_A2":"TC","NAME":"Turks and Caicos Is."}},{"geometry":{"type":"Polygon","coordinates":[[[23.980325,19.49664],[23.980686,19.050569],[23.9811,18.604524],[23.981462,18.158479],[23.981823,17.712408],[23.982185,17.266337],[23.982547,16.820266],[23.982909,16.374195],[23.98327,15.92815],[23.983425,15.780174],[23.970765,15.721547],[23.965235,15.713434],[23.94596,15.703538],[23.708248,15.744957],[23.604017,15.746016],[23.458031,15.713977],[23.24347,15.697233],[23.105184,15.702556],[23.00917,15.625817],[22.933929,15.533109],[22.969482,15.31134],[22.961317,15.23814],[22.932327,15.162124],[22.867163,15.096624],[22.802154,15.044457],[22.763293,14.998671],[22.714924,14.898367],[22.679164,14.851445],[22.682471,14.788607],[22.670896,14.722461],[22.631828,14.68807],[22.532041,14.662723],[22.467807,14.633371],[22.416234,14.585208],[22.381508,14.550482],[22.399698,14.50418],[22.424967,14.441238],[22.439385,14.342122],[22.449307,14.284245],[22.498348,14.237064],[22.528217,14.203216],[22.538604,14.161875],[22.509975,14.127433],[22.388174,14.055525],[22.339391,14.02886],[22.283477,13.992325],[22.262135,13.978734],[22.173148,13.910598],[22.12819,13.850137],[22.106486,13.799778],[22.107623,13.730325],[22.152891,13.62643],[22.202397,13.538089],[22.221414,13.471633],[22.232628,13.398769],[22.228132,13.329574],[22.202604,13.26932],[22.157955,13.215059],[21.990214,13.113076],[21.907738,13.000964],[21.841799,12.864745],[21.825262,12.790537],[21.843349,12.741238],[21.878179,12.69938],[21.928099,12.678115],[22.000704,12.671862],[22.121213,12.694574],[22.233403,12.709457],[22.35231,12.660442],[22.414477,12.546392],[22.390241,12.463012],[22.435251,12.31191],[22.475455,12.12926],[22.472406,12.067791],[22.489821,12.044743],[22.564339,12.032961],[22.580979,11.990121],[22.556381,11.669521],[22.591107,11.579888],[22.641027,11.515938],[22.697406,11.482659],[22.753991,11.439819],[22.783447,11.40995],[22.849076,11.403284],[22.922663,11.344889],[22.942817,11.267168],[22.937649,11.19203],[22.894861,11.028991],[22.860083,10.91967],[22.817347,10.927189],[22.730168,10.954035],[22.624077,10.977366],[22.493852,10.996228],[22.369829,10.951528],[22.235883,10.894167],[22.193612,10.851379],[22.156302,10.826058],[22.097132,10.830089],[22.04313,10.822725],[22.013778,10.78203],[21.964789,10.736658],[21.771519,10.642813],[21.730695,10.608707],[21.70651,10.574781],[21.70651,10.53791],[21.726147,10.461636],[21.725785,10.366551],[21.682687,10.289837],[21.632716,10.238264],[21.575769,10.21855],[21.52802,10.207827],[21.496859,10.17571],[21.396038,10.00138],[21.352423,9.969159],[21.26385,9.974585],[21.009447,9.713232],[20.984177,9.63626],[20.891056,9.527171],[20.773234,9.405679],[20.668124,9.34713],[20.659649,9.324496],[20.631434,9.301345],[20.56689,9.274938],[20.342097,9.127092],[20.072708,9.13319],[19.953542,9.075157],[19.837735,9.049345],[19.668392,9.020897],[19.61749,9.023584],[19.400294,9.011595],[19.145529,9.015987],[19.047861,8.995007],[18.95629,8.938886],[18.888284,8.889742],[18.878362,8.87318],[18.888594,8.852509],[18.88601,8.83605],[19.064191,8.715437],[19.108684,8.656139],[19.063881,8.598829],[19.042435,8.590277],[19.039799,8.586918],[19.010861,8.54121],[18.906474,8.405095],[18.747414,8.243787],[18.666231,8.197717],[18.633623,8.167745],[18.59161,8.0608],[18.56417,8.045917],[18.455029,8.032017],[18.238918,8.020363],[17.940125,7.985456],[17.760808,7.973829],[17.649393,7.983596],[17.49271,7.909828],[17.436383,7.890914],[17.402122,7.884558],[17.246937,7.812986],[17.117953,7.701907],[17.072013,7.680823],[16.89037,7.633669],[16.818126,7.557317],[16.784743,7.550961],[16.668368,7.651755],[16.588941,7.743352],[16.550184,7.835904],[16.545275,7.865463],[16.523261,7.859934],[16.459388,7.819006],[16.404353,7.772368],[16.378877,7.683562],[16.191084,7.623437],[16.030681,7.572122],[15.95761,7.507552],[15.845059,7.475306],[15.701295,7.488432],[15.589261,7.515045],[15.480068,7.523779],[15.532468,7.60442],[15.552674,7.664494],[15.557841,7.738029],[15.54978,7.787897],[15.484461,7.812753],[15.443016,7.851872],[15.349069,8.083848],[15.252382,8.322386],[15.116215,8.557307],[14.968007,8.707272],[14.860778,8.798636],[14.82631,8.810315],[14.771274,8.839151],[14.732776,8.865661],[14.536095,9.025238],[14.332283,9.203521],[14.28009,9.285067],[14.177926,9.40648],[14.064186,9.531718],[14.004965,9.588717],[13.977266,9.691553],[14.055969,9.784364],[14.139788,9.901799],[14.243296,9.979753],[14.377242,9.98505],[14.597952,9.953088],[14.835818,9.941719],[15.071566,9.965955],[15.132751,9.982854],[15.193161,9.98151],[15.320026,9.954276],[15.540892,9.960323],[15.654838,10.007813],[15.5319,10.08848],[15.399918,10.216896],[15.27605,10.357378],[15.200964,10.484528],[15.132234,10.648498],[15.068672,10.851069],[15.029915,11.113663],[15.035754,11.262517],[15.055443,11.368557],[15.122002,11.54126],[15.078026,11.642597],[15.087689,11.724349],[15.081281,11.845505],[15.059887,11.907129],[14.973846,12.108357],[14.956741,12.130345],[14.880673,12.269381],[14.847084,12.50208],[14.761249,12.65561],[14.623273,12.729921],[14.544777,12.820226],[14.516251,12.979751],[14.461681,13.021789],[14.244847,13.077367],[14.063927,13.078504],[13.932359,13.258493],[13.763481,13.489565],[13.606333,13.704616],[13.50577,14.134435],[13.448203,14.380647],[13.513625,14.4555],[13.642403,14.630787],[13.807096,14.966089],[14.178184,15.48474],[14.367992,15.75015],[14.746728,16.146612],[15.212126,16.633895],[15.474332,16.908374],[15.516707,17.408473],[15.561562,17.937252],[15.595514,18.337072],[15.63763,18.810842],[15.672925,19.206787],[15.69866,19.495193],[15.73504,19.904057],[15.766252,19.982553],[15.948825,20.30318],[15.963191,20.346174],[15.929343,20.39984],[15.668481,20.672382],[15.587142,20.733308],[15.540323,20.874876],[15.607347,20.954406],[15.293672,21.411536],[15.215847,21.46745],[15.181844,21.523389],[15.177865,21.605813],[15.172284,21.922073],[15.088929,22.418348],[14.978962,22.996168],[15.347467,23.160705],[15.62714,23.285737],[15.98412,23.445236],[16.315005,23.281835],[16.794097,23.04526],[17.273189,22.808686],[17.752229,22.572111],[18.231322,22.335536],[18.710414,22.098961],[19.189454,21.862387],[19.668547,21.625812],[20.147639,21.389237],[20.626731,21.152663],[21.105823,20.916088],[21.584915,20.679513],[22.064008,20.442939],[22.5431,20.206364],[23.022192,19.969789],[23.501233,19.733214],[23.980325,19.49664]]]},"type":"Feature","properties":{"ISO_A2":"TD","NAME":"Chad"}},{"geometry":{"type":"Polygon","coordinates":[[[0.900493,10.993257],[0.874758,10.885744],[0.821842,10.7526],[0.787477,10.710277],[0.763344,10.386653],[0.779984,10.359575],[0.792179,10.351539],[0.958319,10.242037],[1.176187,10.098402],[1.330028,9.996987],[1.342843,9.962958],[1.345066,9.750206],[1.347081,9.56753],[1.378914,9.462989],[1.385735,9.361651],[1.424286,9.285015],[1.566292,9.137246],[1.600192,9.050042],[1.603809,8.771015],[1.6066,8.559271],[1.624583,8.270994],[1.624583,8.030208],[1.624583,7.725885],[1.624687,7.369189],[1.624687,6.997299],[1.530946,6.992442],[1.582002,6.876997],[1.590787,6.772274],[1.602931,6.73809],[1.577558,6.687396],[1.598538,6.610217],[1.639311,6.581562],[1.743129,6.426249],[1.777907,6.294655],[1.610889,6.250833],[1.62262,6.216778],[1.310649,6.14686],[1.187246,6.089422],[1.185075,6.145],[1.1396,6.155025],[1.084461,6.173784],[1.049941,6.202645],[1.002141,6.268532],[0.984984,6.320286],[0.912224,6.328555],[0.822513,6.386381],[0.736937,6.452578],[0.707172,6.518724],[0.71544,6.549316],[0.702211,6.580736],[0.672755,6.592518],[0.595757,6.742173],[0.548008,6.802479],[0.525581,6.850926],[0.533435,6.888314],[0.5231,6.938853],[0.538086,6.979703],[0.579479,7.004121],[0.59245,7.03399],[0.596222,7.096647],[0.619528,7.226536],[0.634721,7.35366],[0.591003,7.3888],[0.53726,7.398722],[0.509613,7.435128],[0.498916,7.495098],[0.499949,7.546852],[0.605162,7.728211],[0.583562,8.145808],[0.599271,8.209577],[0.647072,8.25345],[0.688051,8.304248],[0.686294,8.354865],[0.616221,8.479638],[0.483309,8.575291],[0.415303,8.652728],[0.378639,8.722],[0.372567,8.759259],[0.453079,8.813778],[0.488787,8.851476],[0.493231,8.89491],[0.460365,8.974233],[0.466153,9.11531],[0.497159,9.221246],[0.528991,9.358318],[0.525684,9.398496],[0.447575,9.480249],[0.405304,9.491436],[0.370965,9.485571],[0.289316,9.431828],[0.259964,9.42604],[0.241515,9.441905],[0.233402,9.463505],[0.261876,9.495622],[0.251541,9.535646],[0.275518,9.570631],[0.32735,9.586573],[0.342569,9.604143],[0.27278,9.620938],[0.264589,9.644735],[0.269524,9.667911],[0.289678,9.672304],[0.311692,9.670986],[0.323888,9.687574],[0.334533,9.80395],[0.34306,9.844593],[0.351845,9.924924],[0.362697,10.236481],[0.378639,10.268572],[0.380887,10.291853],[0.331846,10.306942],[0.216039,10.390529],[0.148291,10.454789],[0.089277,10.520598],[0.03946,10.563852],[-0.057691,10.630618],[-0.08632,10.673044],[-0.090196,10.715522],[-0.060585,10.800607],[-0.013895,10.891351],[0.009436,11.020981],[-0.004749,11.055553],[-0.068621,11.115601],[0.159272,11.069609],[0.484136,10.991965],[0.490699,10.978193],[0.492714,10.954991],[0.549145,10.955404],[0.64299,10.983051],[0.900493,10.993257]]]},"type":"Feature","properties":{"ISO_A2":"TG","NAME":"Togo"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[99.663095,6.521928],[99.644078,6.51614],[99.606665,6.596807],[99.654,6.714112],[99.701336,6.570555],[99.663095,6.521928]]],[[[99.078428,7.591837],[99.10437,7.471276],[99.067886,7.495874],[99.037707,7.54848],[99.038121,7.625736],[99.045149,7.636537],[99.078428,7.591837]]],[[[98.59205,7.933935],[98.579957,7.917036],[98.529418,8.108549],[98.604349,8.057338],[98.59205,7.933935]]],[[[98.409115,7.90205],[98.39847,7.828411],[98.357439,7.829445],[98.315684,7.782342],[98.296254,7.776063],[98.262354,7.92608],[98.301318,8.136248],[98.322092,8.166324],[98.351031,8.110668],[98.434953,8.085657],[98.398883,7.964527],[98.409115,7.90205]]],[[[98.307519,9.051489],[98.250778,9.040844],[98.258427,9.095414],[98.273619,9.129882],[98.301111,9.139132],[98.31248,9.080376],[98.307519,9.051489]]],[[[100.070719,9.58603],[100.075267,9.529444],[100.053666,9.461438],[99.962405,9.421647],[99.931296,9.476063],[99.939564,9.559934],[99.95362,9.581018],[100.042917,9.576832],[100.070719,9.58603]]],[[[100.07413,9.696669],[100.064415,9.679978],[100.025657,9.711707],[99.998062,9.747622],[99.983386,9.793563],[100.043434,9.791651],[100.072993,9.749121],[100.07413,9.696669]]],[[[102.606482,11.676497],[102.589945,11.572162],[102.532791,11.61495],[102.546537,11.667764],[102.568964,11.69169],[102.606482,11.676497]]],[[[102.426751,11.988726],[102.429955,11.964748],[102.378072,11.982938],[102.359985,11.974412],[102.302004,11.980819],[102.273375,12.119312],[102.277406,12.151868],[102.318851,12.141636],[102.378072,12.072855],[102.408354,12.025106],[102.426751,11.988726]]],[[[100.003643,20.379583],[100.122499,20.316641],[100.114954,20.257679],[100.139759,20.245431],[100.174124,20.272768],[100.218049,20.339586],[100.266004,20.377309],[100.317991,20.385888],[100.37313,20.340361],[100.431524,20.240729],[100.491572,20.184091],[100.519477,20.177916],[100.539941,20.132363],[100.543042,20.088697],[100.514516,19.996351],[100.46625,19.888916],[100.397624,19.756107],[100.420155,19.644486],[100.513586,19.553484],[100.625466,19.499844],[100.743908,19.514752],[100.806798,19.541934],[100.858165,19.585058],[100.906017,19.605367],[100.966478,19.610793],[101.154632,19.579219],[101.211941,19.548342],[101.220778,19.486614],[101.197575,19.327916],[101.226617,19.211541],[101.279896,19.088913],[101.286304,18.977137],[101.22052,18.792755],[101.165536,18.618295],[101.106315,18.533546],[101.060426,18.479027],[101.046939,18.441975],[101.050608,18.407042],[101.092776,18.354539],[101.137527,18.286869],[101.148741,18.222144],[101.143935,18.142614],[101.113239,18.033525],[100.998983,17.797183],[100.908497,17.583862],[100.955885,17.541126],[101.04575,17.509965],[101.105178,17.479528],[101.1675,17.49901],[101.299688,17.625023],[101.413686,17.718738],[101.555021,17.81235],[101.563651,17.820515],[101.687468,17.889399],[101.744105,17.952703],[101.774801,18.033422],[101.818623,18.064634],[101.875467,18.046418],[101.947452,18.081481],[102.034578,18.169847],[102.101499,18.210646],[102.148215,18.203876],[102.231672,18.14897],[102.351872,18.045927],[102.45879,17.984639],[102.552531,17.965105],[102.598213,17.926761],[102.596043,17.869607],[102.616817,17.83333],[102.660638,17.817957],[102.680069,17.824106],[102.675211,17.851753],[102.717638,17.892242],[102.807451,17.945572],[102.89866,17.976888],[102.991368,17.986241],[103.051312,18.028512],[103.091206,18.138247],[103.148516,18.22173],[103.199675,18.259454],[103.263186,18.278471],[103.279619,18.304981],[103.248923,18.338984],[103.251713,18.373478],[103.288249,18.408412],[103.366952,18.42332],[103.487978,18.418153],[103.629675,18.382548],[103.792249,18.316479],[103.898857,18.295292],[103.949552,18.319011],[104.048719,18.216718],[104.196204,17.98836],[104.322656,17.815812],[104.428179,17.698972],[104.539232,17.609287],[104.655917,17.546733],[104.739685,17.461673],[104.816062,17.300288],[104.759012,17.077149],[104.743509,16.88437],[104.75064,16.647537],[104.81937,16.466075],[104.949904,16.339933],[105.025765,16.238001],[105.047159,16.160254],[105.148755,16.09354],[105.330656,16.03791],[105.406311,15.987448],[105.375615,15.94218],[105.373186,15.889676],[105.398921,15.829861],[105.462018,15.780407],[105.562373,15.741262],[105.622111,15.699972],[105.641025,15.656538],[105.638906,15.585948],[105.615652,15.488254],[105.573742,15.41322],[105.513178,15.360871],[105.505839,15.319608],[105.49044,15.256588],[105.49044,15.127604],[105.533435,15.041614],[105.546664,14.932474],[105.523099,14.843306],[105.500207,14.661224],[105.497365,14.590686],[105.475557,14.530121],[105.422692,14.471623],[105.342129,14.416691],[105.243633,14.367857],[105.183327,14.346256],[105.169116,14.336102],[105.125966,14.280963],[105.074135,14.227452],[105.033672,14.227401],[105.003441,14.254427],[104.982461,14.289438],[104.969696,14.3661],[104.878798,14.403979],[104.77901,14.427854],[104.575767,14.390026],[104.411643,14.369562],[104.227675,14.395504],[104.054352,14.362741],[103.981798,14.357909],[103.898599,14.362819],[103.818346,14.362173],[103.741916,14.374162],[103.600374,14.421084],[103.546373,14.417415],[103.432426,14.378606],[103.313519,14.351321],[103.199365,14.332614],[103.031055,14.252515],[102.909254,14.136734],[102.873287,14.054879],[102.812826,13.972455],[102.728851,13.841894],[102.620434,13.716941],[102.544677,13.659942],[102.565554,13.626352],[102.546899,13.585683],[102.428456,13.567596],[102.336317,13.56031],[102.319729,13.540001],[102.330788,13.288233],[102.362982,13.192993],[102.422617,13.077962],[102.461684,13.01502],[102.490726,12.828313],[102.499563,12.66995],[102.629736,12.569905],[102.703272,12.493501],[102.75562,12.426244],[102.73743,12.383379],[102.706217,12.255686],[102.736603,12.089805],[102.91809,11.732101],[102.933903,11.706676],[102.912303,11.70386],[102.883674,11.77277],[102.791587,11.888629],[102.762958,12.012445],[102.654851,12.148819],[102.594183,12.203028],[102.574752,12.157811],[102.540232,12.109235],[102.434089,12.179231],[102.343138,12.252586],[102.259113,12.394334],[102.248467,12.361416],[102.229554,12.331651],[102.134159,12.443013],[102.034423,12.531871],[101.944506,12.563652],[101.889109,12.593237],[101.835779,12.640366],[101.723641,12.689355],[101.444899,12.61892],[101.090192,12.673645],[100.953766,12.621245],[100.897749,12.653802],[100.863332,12.714521],[100.896405,12.818184],[100.90395,13.034915],[100.946118,13.187257],[100.926274,13.303013],[100.946945,13.357583],[100.962654,13.431997],[100.906534,13.462383],[100.656006,13.521294],[100.602986,13.568164],[100.536427,13.514473],[100.23567,13.484449],[100.122395,13.439542],[100.017492,13.353165],[99.990517,13.243481],[100.051082,13.171238],[100.089943,13.045638],[99.982042,12.771469],[99.963956,12.690027],[100.00571,12.35475],[99.98907,12.170782],[99.930262,12.047482],[99.837142,11.936636],[99.798694,11.748792],[99.72552,11.661769],[99.627335,11.462867],[99.561293,11.215181],[99.514371,11.100563],[99.486879,10.889568],[99.284824,10.569123],[99.237282,10.388152],[99.165038,10.319836],[99.190359,10.265859],[99.194597,10.175426],[99.169275,9.934174],[99.1608,9.734031],[99.19129,9.627165],[99.288338,9.414619],[99.265083,9.352969],[99.253921,9.265249],[99.335467,9.225432],[99.393861,9.213701],[99.723867,9.314212],[99.835488,9.2884],[99.877553,9.194633],[99.904631,9.112881],[99.960648,8.671254],[99.989587,8.589192],[100.05625,8.511135],[100.12932,8.428065],[100.154125,8.442947],[100.158879,8.473798],[100.16353,8.508422],[100.228746,8.424706],[100.279388,8.268488],[100.453538,7.442285],[100.503768,7.337279],[100.545212,7.226924],[100.439379,7.280745],[100.41075,7.464299],[100.380364,7.541504],[100.34295,7.552898],[100.283729,7.551529],[100.280009,7.584344],[100.324347,7.644185],[100.317422,7.715963],[100.256651,7.774926],[100.158156,7.728107],[100.160739,7.599278],[100.204871,7.500524],[100.371373,7.280124],[100.423566,7.18783],[100.489712,7.161372],[100.586243,7.175996],[100.701688,7.081971],[100.792535,6.994664],[101.017845,6.860925],[101.154374,6.875136],[101.301962,6.908287],[101.40087,6.899579],[101.497919,6.865266],[101.614294,6.753955],[101.799192,6.474592],[102.101086,6.242255],[102.068323,6.184687],[102.055197,6.096682],[101.936135,5.979325],[101.917221,5.911397],[101.873606,5.825278],[101.790717,5.779363],[101.719507,5.770604],[101.678425,5.778821],[101.649951,5.795977],[101.601375,5.877161],[101.576777,5.902017],[101.556106,5.907753],[101.404178,5.851684],[101.257003,5.789363],[101.22977,5.733707],[101.190651,5.668724],[101.147656,5.643041],[101.113963,5.636762],[101.081717,5.674899],[101.025183,5.724509],[100.981671,5.771043],[100.992782,5.846207],[101.075619,5.956484],[101.086471,6.033689],[101.075929,6.166084],[101.053501,6.242565],[101.02942,6.245304],[100.988803,6.257655],[100.873926,6.245407],[100.816513,6.331629],[100.793776,6.426171],[100.754502,6.460071],[100.715641,6.48069],[100.629548,6.447979],[100.563919,6.467513],[100.345431,6.549885],[100.261457,6.682693],[100.216653,6.686621],[100.176759,6.671841],[100.161256,6.64161],[100.138002,6.488674],[100.119088,6.441984],[99.868664,6.749924],[99.695962,6.876635],[99.720353,7.106182],[99.667746,7.150882],[99.602427,7.155326],[99.553025,7.218784],[99.596949,7.355624],[99.529047,7.329475],[99.435202,7.334385],[99.358618,7.372212],[99.30043,7.561348],[99.263637,7.619018],[99.183435,7.718082],[99.077601,7.718082],[99.042668,7.765624],[99.05104,7.887839],[98.973938,7.96277],[98.872446,8.023903],[98.78873,8.059818],[98.703567,8.256757],[98.636285,8.305023],[98.579234,8.344271],[98.499859,8.317813],[98.474021,8.246939],[98.421001,8.178235],[98.360746,8.186942],[98.305452,8.226217],[98.238169,8.423104],[98.227007,8.543665],[98.241787,8.767889],[98.326019,8.968962],[98.371391,9.290544],[98.443118,9.492806],[98.492934,9.561432],[98.561871,9.837488],[98.702534,10.190386],[98.71845,10.266015],[98.746924,10.350841],[98.76837,10.430836],[98.775346,10.55703],[98.757259,10.62359],[98.757207,10.660952],[98.78687,10.708442],[98.887122,10.788334],[99.025356,10.919954],[99.190153,11.105266],[99.358824,11.389434],[99.442644,11.554385],[99.477939,11.612496],[99.515197,11.630686],[99.572868,11.687142],[99.612504,11.749671],[99.614726,11.781193],[99.522949,12.089676],[99.462901,12.190212],[99.432412,12.309016],[99.41634,12.394825],[99.394275,12.473606],[99.405023,12.547917],[99.37195,12.594219],[99.29733,12.652871],[99.219815,12.739739],[99.173513,12.881953],[99.173513,12.961328],[99.123903,13.030781],[99.107367,13.103542],[99.137133,13.172995],[99.1762,13.233043],[99.171704,13.496903],[99.156046,13.575761],[99.136823,13.716682],[99.086231,13.822774],[99.014659,13.947159],[98.933631,14.04984],[98.721189,14.235721],[98.570035,14.359925],[98.495001,14.47289],[98.400227,14.602985],[98.332117,14.696493],[98.246024,14.814755],[98.202099,14.975934],[98.177915,15.147396],[98.19104,15.204085],[98.232278,15.241344],[98.286125,15.2716],[98.32943,15.278577],[98.452161,15.357357],[98.537273,15.350691],[98.556961,15.367667],[98.565281,15.403556],[98.554481,15.559748],[98.55815,15.768624],[98.573963,15.938614],[98.59236,16.050674],[98.817927,16.180796],[98.865521,16.237045],[98.888517,16.298101],[98.888259,16.351896],[98.869345,16.394193],[98.835446,16.417551],[98.689305,16.305413],[98.660779,16.330425],[98.593652,16.514806],[98.564713,16.570927],[98.523113,16.638158],[98.478103,16.732235],[98.471178,16.895041],[98.438881,16.975657],[98.256566,17.147636],[98.174607,17.239878],[98.06309,17.373307],[97.929351,17.533297],[97.793029,17.681247],[97.729053,17.775815],[97.706419,17.797105],[97.698564,17.833537],[97.739957,17.935314],[97.7197,18.037401],[97.65159,18.173723],[97.622445,18.258033],[97.632263,18.290357],[97.599345,18.302966],[97.523794,18.295886],[97.450827,18.359655],[97.380651,18.494298],[97.373933,18.517966],[97.397032,18.517526],[97.484934,18.49422],[97.515113,18.497734],[97.577331,18.528714],[97.671589,18.561245],[97.72771,18.572019],[97.745848,18.588168],[97.754013,18.620828],[97.706057,18.93179],[97.71417,18.996464],[97.803881,19.130486],[97.793494,19.265853],[97.8168,19.459975],[97.916432,19.592861],[97.991259,19.65371],[98.015031,19.749492],[98.049034,19.76975],[98.111045,19.762153],[98.239048,19.690685],[98.29367,19.687248],[98.371288,19.689186],[98.454952,19.694457],[98.493864,19.70133],[98.760618,19.771067],[98.819529,19.778483],[98.875805,19.769595],[98.916733,19.772902],[98.95797,19.804941],[98.987374,19.861398],[99.020654,20.041774],[99.039774,20.073659],[99.074191,20.099368],[99.130776,20.116602],[99.196922,20.115155],[99.283687,20.080403],[99.337947,20.07893],[99.399235,20.093451],[99.451532,20.118307],[99.485897,20.149856],[99.501658,20.187734],[99.487499,20.260624],[99.447966,20.352066],[99.45887,20.363047],[99.53163,20.342841],[99.638704,20.320465],[99.720146,20.325426],[99.773373,20.341291],[99.825256,20.384492],[99.890368,20.424413],[99.95424,20.415447],[100.003643,20.379583]]]]},"type":"Feature","properties":{"ISO_A2":"TH","NAME":"Thailand"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[70.701659,39.82527],[70.612052,39.786745],[70.559549,39.790905],[70.518621,39.828164],[70.489269,39.863045],[70.482758,39.882734],[70.497744,39.882424],[70.567094,39.866585],[70.664142,39.855449],[70.698248,39.845863],[70.701659,39.82527]]],[[[70.652515,40.936597],[70.622749,40.934401],[70.568747,40.981814],[70.549989,41.014887],[70.572054,41.024809],[70.618357,41.001658],[70.649207,40.960859],[70.652515,40.936597]]],[[[70.698352,40.661162],[70.5488,40.562796],[70.382557,40.4535],[70.377131,40.439237],[70.369741,40.412004],[70.37155,40.38415],[70.398267,40.361361],[70.469942,40.345341],[70.533556,40.32449],[70.565853,40.267155],[70.60275,40.214135],[70.653083,40.201164],[70.899373,40.234573],[70.957974,40.238888],[70.960971,40.220646],[70.946399,40.187573],[70.738608,40.131142],[70.644298,40.083445],[70.624093,39.998954],[70.599236,39.974511],[70.556862,39.954512],[70.515107,39.949913],[70.45139,40.049235],[70.37894,40.069854],[70.274398,40.104839],[70.071517,40.172768],[69.966768,40.202223],[69.76523,40.158014],[69.530258,40.097294],[69.493671,40.060346],[69.468711,40.020736],[69.470985,39.990634],[69.487883,39.95043],[69.476256,39.919708],[69.431969,39.909786],[69.36541,39.947071],[69.307274,39.968543],[69.2788,39.91777],[69.244745,39.827078],[69.229087,39.761088],[69.280299,39.665848],[69.297714,39.524823],[69.391506,39.532471],[69.463337,39.532058],[69.598781,39.57376],[69.666993,39.574897],[69.772103,39.556759],[69.955968,39.55309],[70.101644,39.560583],[70.136784,39.557586],[70.171097,39.584199],[70.209286,39.574975],[70.244839,39.542625],[70.392065,39.581874],[70.501154,39.587351],[70.568024,39.575853],[70.607866,39.564407],[70.678611,39.471286],[70.733078,39.413305],[70.799327,39.394702],[71.004845,39.411858],[71.065048,39.493404],[71.118068,39.513557],[71.202765,39.51981],[71.27289,39.535313],[71.328494,39.568696],[71.404252,39.597868],[71.470346,39.603681],[71.503005,39.582184],[71.517423,39.553865],[71.505899,39.517071],[71.503315,39.478831],[71.546259,39.453096],[71.672659,39.44705],[71.73219,39.422994],[71.735394,39.377726],[71.725679,39.306593],[71.778596,39.277965],[71.805984,39.275587],[71.990986,39.350906],[72.042817,39.352172],[72.08421,39.310624],[72.147359,39.260756],[72.229989,39.20753],[72.249782,39.215694],[72.287195,39.273727],[72.357734,39.33685],[72.490232,39.357391],[72.563354,39.377209],[72.639939,39.385994],[72.872483,39.360388],[72.949377,39.357081],[73.109264,39.361939],[73.234941,39.374548],[73.336175,39.412375],[73.387387,39.442709],[73.470431,39.460589],[73.575592,39.457618],[73.631661,39.448859],[73.636364,39.396691],[73.623134,39.297834],[73.607321,39.229208],[73.690417,39.104538],[73.743747,39.044542],[73.795579,39.002167],[73.805294,38.968629],[73.794493,38.941293],[73.730001,38.914679],[73.706799,38.886206],[73.69605,38.854321],[73.716824,38.817218],[73.754134,38.69893],[73.801625,38.606894],[73.869114,38.562866],[73.970038,38.533695],[74.02559,38.539818],[74.06533,38.608496],[74.131372,38.661181],[74.187338,38.657512],[74.277461,38.659759],[74.514036,38.600021],[74.74503,38.510027],[74.812261,38.460314],[74.83598,38.404323],[74.772108,38.274744],[74.775105,38.191907],[74.789678,38.103618],[74.842491,38.038092],[74.890809,37.925799],[74.900266,37.83273],[74.921246,37.805005],[74.9383,37.772527],[74.912358,37.687312],[74.894271,37.601426],[74.91582,37.572823],[74.98641,37.530397],[75.097515,37.451254],[75.118805,37.385677],[75.079015,37.344052],[75.008373,37.293538],[74.918146,37.250026],[74.891326,37.23163],[74.875358,37.241965],[74.830503,37.285916],[74.73056,37.357022],[74.659402,37.394488],[74.524268,37.38237],[74.444893,37.395599],[74.348982,37.41875],[74.259685,37.415443],[74.203461,37.372448],[74.167081,37.329453],[74.077784,37.316224],[73.948799,37.283151],[73.749638,37.231785],[73.653468,37.239381],[73.627579,37.261576],[73.648818,37.291187],[73.717289,37.329453],[73.733825,37.375755],[73.720596,37.41875],[73.657137,37.43048],[73.632643,37.437224],[73.604634,37.446061],[73.481334,37.471667],[73.382942,37.462261],[73.21117,37.408518],[72.89553,37.267545],[72.757089,37.172693],[72.657405,37.029058],[72.358819,36.982937],[72.153508,36.900539],[71.941945,36.766438],[71.802057,36.694298],[71.733741,36.684014],[71.665631,36.696908],[71.597522,36.732926],[71.530859,36.84509],[71.471845,37.015105],[71.43288,37.127553],[71.454791,37.271834],[71.479648,37.436036],[71.505021,37.602925],[71.546155,37.795652],[71.580365,37.864252],[71.582225,37.910089],[71.551943,37.933137],[71.487761,37.931897],[71.389679,37.906317],[71.319967,37.901847],[71.278523,37.918409],[71.282812,38.007913],[71.332732,38.17028],[71.255889,38.306964],[71.05218,38.417862],[70.878857,38.456413],[70.73592,38.422565],[70.615824,38.33443],[70.518569,38.191984],[70.417749,38.075454],[70.313259,37.984814],[70.238741,37.941199],[70.21466,37.92443],[70.199467,37.886008],[70.254968,37.76537],[70.251454,37.664187],[70.188719,37.582487],[70.119834,37.543497],[70.044696,37.547218],[69.984959,37.566157],[69.94062,37.600289],[69.820886,37.609591],[69.625756,37.594036],[69.49212,37.553057],[69.420083,37.486704],[69.399206,37.39932],[69.429695,37.290851],[69.414502,37.207781],[69.353834,37.150058],[69.303915,37.116934],[69.264847,37.108407],[69.180201,37.158275],[69.049977,37.266511],[68.960473,37.325061],[68.911794,37.333949],[68.885284,37.328058],[68.855363,37.316844],[68.838465,37.30284],[68.823737,37.270723],[68.782086,37.257985],[68.723227,37.26801],[68.669173,37.258424],[68.636979,37.224472],[68.546545,37.183467],[68.386865,37.137475],[68.299532,37.088434],[68.284752,37.036344],[68.260981,37.01309],[68.212095,37.021513],[68.067815,36.949812],[67.95795,36.972007],[67.834444,37.064198],[67.766024,37.140111],[67.758996,37.172227],[67.798064,37.244962],[67.814342,37.487014],[67.863538,37.570679],[68.01097,37.720954],[68.087607,37.835443],[68.174061,37.928435],[68.236486,37.959647],[68.294054,38.032924],[68.341235,38.116795],[68.354515,38.169557],[68.350278,38.211053],[68.33307,38.23777],[68.251421,38.29451],[68.144141,38.383084],[68.087193,38.473543],[68.055981,38.588937],[68.047867,38.669294],[68.148533,38.89065],[68.132513,38.92765],[68.103471,38.961989],[68.044353,38.983616],[67.959604,38.992917],[67.875682,38.983021],[67.768505,38.98222],[67.694401,38.994649],[67.676521,39.008498],[67.667271,39.109189],[67.648357,39.131048],[67.616473,39.150272],[67.400362,39.196703],[67.357677,39.216676],[67.349616,39.242075],[67.4262,39.465576],[67.459531,39.482397],[67.491674,39.518751],[67.542472,39.557637],[67.71905,39.62138],[67.908599,39.593811],[68.077116,39.564149],[68.244961,39.548284],[68.303046,39.53769],[68.39906,39.528854],[68.463294,39.536708],[68.506961,39.562779],[68.586129,39.634945],[68.610314,39.743259],[68.638942,39.838861],[68.686898,39.846302],[68.735267,39.836225],[68.758212,39.855552],[68.767927,39.881855],[68.777849,39.90418],[68.797692,39.909141],[68.832419,39.884336],[68.852263,39.89095],[68.868799,39.907487],[68.863838,39.927331],[68.824461,39.960791],[68.789424,40.01332],[68.792732,40.03151],[68.80472,40.050321],[68.908487,40.068201],[68.955616,40.071353],[68.972049,40.089956],[68.966054,40.119567],[68.926884,40.13631],[68.784618,40.127112],[68.639718,40.129205],[68.622406,40.147266],[68.630674,40.167109],[68.652585,40.182664],[68.95174,40.22261],[69.110335,40.208735],[69.228261,40.187599],[69.274873,40.198089],[69.219579,40.288135],[69.294458,40.296559],[69.304225,40.327384],[69.206298,40.566568],[69.25999,40.587652],[69.31394,40.634755],[69.309393,40.723923],[69.357193,40.767383],[69.413882,40.797148],[69.498218,40.767073],[69.628443,40.679068],[69.670817,40.661963],[69.71283,40.657002],[69.773189,40.684287],[70.005681,40.771439],[70.136267,40.820403],[70.292072,40.891716],[70.318995,40.91926],[70.372687,41.027651],[70.401936,41.035092],[70.441468,41.023439],[70.578256,40.911457],[70.657321,40.839652],[70.657321,40.81508],[70.63479,40.79658],[70.63913,40.778545],[70.75101,40.739581],[70.751062,40.721752],[70.725637,40.687801],[70.712046,40.669094],[70.698352,40.661162]]]]},"type":"Feature","properties":{"ISO_A2":"TJ","NAME":"Tajikistan"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.109554,38.803058],[53.100253,38.756136],[53.045889,38.897213],[53.018604,39.052759],[53.053331,39.09658],[53.092191,39.0941],[53.055191,39.037928],[53.109554,38.803058]]],[[[58.729987,42.676155],[58.876954,42.561485],[58.930905,42.540272],[59.035859,42.528128],[59.123141,42.523761],[59.159624,42.511436],[59.199105,42.481697],[59.27662,42.356175],[59.35429,42.323283],[59.45108,42.299537],[59.762585,42.301578],[59.85829,42.295145],[59.936528,42.236053],[59.985207,42.211713],[60.006033,42.190836],[60.000813,42.164765],[59.981693,42.131718],[59.979213,42.068079],[59.974148,42.018779],[59.949292,41.995421],[59.941747,41.973511],[59.962573,41.95439],[60.106905,41.907442],[60.155584,41.857032],[60.192068,41.834424],[60.20075,41.803133],[60.17641,41.782282],[60.10861,41.792695],[60.075589,41.759674],[60.075589,41.700556],[60.124062,41.644952],[60.138014,41.594154],[60.106027,41.545216],[60.068716,41.476228],[60.067424,41.427368],[60.089594,41.399437],[60.199974,41.348975],[60.454946,41.221619],[60.513547,41.216167],[60.754876,41.245751],[60.867169,41.248697],[60.93316,41.228982],[61.11997,41.210896],[61.179346,41.190561],[61.242443,41.189217],[61.328898,41.195109],[61.387499,41.252159],[61.417368,41.26513],[61.443671,41.274587],[61.496949,41.276086],[61.644537,41.23986],[61.799877,41.163431],[61.902816,41.093694],[61.953562,41.030597],[62.01759,40.893783],[62.095001,40.683305],[62.188484,40.541195],[62.298038,40.467504],[62.375035,40.33206],[62.441595,40.036213],[62.483194,39.975622],[62.525517,39.944074],[62.650678,39.858498],[62.906786,39.716801],[63.058095,39.633137],[63.291879,39.499501],[63.506026,39.37708],[63.720793,39.188125],[63.763685,39.16053],[63.95251,39.058366],[64.162782,38.953592],[64.309956,38.977311],[64.531648,38.816236],[64.621875,38.756472],[64.660012,38.736034],[64.820674,38.672472],[65.076679,38.539431],[65.399554,38.348848],[65.612926,38.238597],[65.670958,38.225729],[65.728526,38.226349],[65.790279,38.250069],[65.857097,38.268724],[65.971198,38.244255],[66.094808,38.200149],[66.17315,38.166689],[66.263687,38.118087],[66.33531,38.072147],[66.389777,38.050908],[66.574521,38.010781],[66.60625,37.986726],[66.626352,37.959854],[66.629349,37.932052],[66.525583,37.785756],[66.511372,37.599178],[66.510649,37.458696],[66.522276,37.348496],[66.47184,37.344723],[66.350297,37.368159],[66.108451,37.414771],[65.900712,37.508098],[65.765009,37.569128],[65.743874,37.56086],[65.682947,37.519157],[65.641244,37.467843],[65.608016,37.368417],[65.554945,37.251163],[65.303591,37.246771],[65.089702,37.237934],[64.951622,37.193544],[64.816333,37.132101],[64.782382,37.059289],[64.753081,36.964798],[64.674327,36.750212],[64.6026,36.554539],[64.565858,36.427596],[64.511029,36.340676],[64.358067,36.226058],[64.184331,36.148905],[64.092243,36.11268],[64.051316,36.067644],[64.042376,36.025088],[64.009664,36.012117],[63.938092,36.01974],[63.86249,36.01235],[63.696609,35.967831],[63.516981,35.913131],[63.301646,35.858406],[63.178862,35.858432],[63.129976,35.84621],[63.108582,35.818693],[63.129976,35.766732],[63.150802,35.728259],[63.169716,35.678107],[63.119279,35.637541],[63.084139,35.568088],[63.056596,35.445821],[62.980218,35.409157],[62.858003,35.349677],[62.722714,35.271336],[62.688143,35.255342],[62.610577,35.233147],[62.533114,35.239891],[62.462834,35.251389],[62.386611,35.231235],[62.307856,35.170773],[62.271166,35.189119],[62.252821,35.250226],[62.213081,35.289965],[62.089678,35.379675],[61.983897,35.443703],[61.93806,35.447888],[61.841011,35.431481],[61.719778,35.419415],[61.620973,35.432334],[61.542735,35.457862],[61.421812,35.545789],[61.377784,35.593125],[61.344711,35.629505],[61.262028,35.619583],[61.238877,35.659271],[61.23557,35.705573],[61.258721,35.761797],[61.252107,35.86763],[61.205804,35.943698],[61.152888,35.976771],[61.159502,35.999922],[61.182653,36.052838],[61.212419,36.099141],[61.212006,36.19053],[61.175109,36.289697],[61.160329,36.432712],[61.169941,36.572238],[61.11966,36.64257],[60.707902,36.642983],[60.341309,36.637661],[60.320691,36.653551],[60.17827,36.829432],[60.062773,36.962912],[59.94862,37.041615],[59.687241,37.138457],[59.562184,37.178894],[59.454955,37.252817],[59.367364,37.333742],[59.344729,37.444743],[59.326901,37.481175],[59.301735,37.510656],[59.274088,37.523756],[59.240808,37.520759],[58.937209,37.64964],[58.815459,37.683488],[58.700841,37.656229],[58.650198,37.651552],[58.550463,37.688165],[58.435689,37.63853],[58.3867,37.635326],[58.318125,37.647211],[58.261643,37.665815],[58.108836,37.783069],[57.980575,37.830456],[57.888178,37.860842],[57.710514,37.905284],[57.520965,37.928486],[57.423813,37.947684],[57.35374,37.973341],[57.335705,37.98993],[57.336687,38.032924],[57.331467,38.089303],[57.30811,38.13036],[57.260102,38.179582],[57.193543,38.216401],[57.079028,38.209968],[56.906635,38.213017],[56.774602,38.250043],[56.669957,38.256632],[56.544022,38.249604],[56.440669,38.249423],[56.366927,38.222525],[56.324139,38.191106],[56.296957,38.094833],[56.272049,38.080441],[56.228796,38.073387],[56.171176,38.078348],[56.050305,38.077521],[55.841274,38.094626],[55.578448,38.099742],[55.380889,38.051114],[55.224671,37.981325],[55.075533,37.902493],[54.900091,37.777953],[54.848673,37.722633],[54.745217,37.501897],[54.699432,37.470168],[54.639694,37.444743],[54.578922,37.440247],[54.458671,37.407562],[54.299766,37.353586],[54.191659,37.33245],[53.914157,37.343561],[53.897827,37.413582],[53.847907,37.669587],[53.823516,37.927944],[53.82517,38.046929],[53.854109,38.285648],[53.851835,38.405925],[53.840053,38.514962],[53.851525,38.621803],[53.873746,38.741925],[53.885321,38.864088],[53.868681,38.949251],[53.814938,39.018032],[53.724091,39.103092],[53.709725,39.153424],[53.704557,39.209545],[53.617637,39.215979],[53.539399,39.274089],[53.47501,39.305715],[53.336311,39.340829],[53.266754,39.342612],[53.203296,39.316799],[53.15658,39.264994],[53.124024,39.346694],[53.124851,39.432064],[53.235645,39.608539],[53.304995,39.557095],[53.389641,39.536424],[53.497334,39.533298],[53.603064,39.546992],[53.582394,39.607428],[53.533301,39.641767],[53.472323,39.668793],[53.450516,39.74853],[53.458267,39.831212],[53.487309,39.909399],[53.454236,39.94087],[53.404213,39.960352],[53.288562,39.958001],[53.138597,39.978645],[52.987495,39.987611],[52.952148,39.895446],[53.035554,39.77442],[52.96486,39.8339],[52.898198,39.912499],[52.804664,40.054015],[52.744409,40.219793],[52.73366,40.398749],[52.784716,40.546724],[52.849932,40.685656],[52.88931,40.863501],[52.943466,41.038064],[52.997623,40.959852],[53.059532,40.889753],[53.145211,40.82495],[53.19203,40.809473],[53.3329,40.782731],[53.423644,40.792756],[53.520279,40.831048],[53.61526,40.818517],[53.693808,40.746454],[53.763778,40.665658],[53.870025,40.648682],[54.088926,40.707076],[54.193003,40.720435],[54.283333,40.693718],[54.329842,40.688783],[54.377384,40.693279],[54.33625,40.764954],[54.319403,40.834562],[54.374387,40.871407],[54.547089,40.832288],[54.657057,40.858359],[54.685066,40.873061],[54.710077,40.891096],[54.723203,40.951247],[54.717932,41.013001],[54.703669,41.071163],[54.671526,41.122193],[54.592151,41.193558],[54.284573,41.363729],[54.181014,41.43158],[54.094817,41.519378],[54.039834,41.64335],[53.995185,41.772567],[53.953844,41.868478],[53.84646,42.091178],[53.804706,42.117636],[53.752306,42.129393],[53.624872,42.136395],[53.495887,42.120168],[53.284944,42.081824],[53.164125,42.093813],[53.108314,42.070068],[52.970028,41.976198],[52.905329,41.895763],[52.814895,41.711821],[52.883522,41.652548],[52.882178,41.613662],[52.830192,41.34187],[52.861818,41.210069],[52.850345,41.200276],[52.825541,41.230843],[52.747303,41.365434],[52.60943,41.529429],[52.493881,41.78037],[52.696918,41.944365],[52.870499,42.060585],[53.012558,42.13071],[53.055914,42.147738],[53.250114,42.205848],[53.500797,42.258248],[53.685385,42.29685],[53.926404,42.329768],[54.005159,42.335892],[54.120966,42.335194],[54.214913,42.304188],[54.271912,42.280004],[54.472882,42.180165],[54.677986,42.078207],[54.853841,41.965191],[54.903657,41.91907],[54.931665,41.864008],[54.952336,41.810006],[55.101888,41.638699],[55.162349,41.560228],[55.249579,41.45809],[55.319755,41.408403],[55.388382,41.346908],[55.434374,41.296291],[55.487032,41.272261],[55.54522,41.262753],[55.678597,41.278824],[55.839104,41.310812],[55.934912,41.324145],[55.977441,41.322233],[56.242025,41.310864],[56.47984,41.300632],[56.77362,41.287997],[56.86085,41.276137],[56.965857,41.26513],[57.017946,41.263476],[57.064248,41.307298],[57.094841,41.331276],[57.118819,41.350293],[57.113858,41.37179],[57.076651,41.38998],[57.018205,41.450571],[56.984873,41.669343],[56.9641,41.856567],[57.033656,41.914858],[57.113599,41.957129],[57.228786,42.08446],[57.290643,42.123786],[57.381748,42.156316],[57.686123,42.164817],[57.81428,42.189828],[57.855983,42.23104],[57.923421,42.33522],[57.945745,42.419995],[57.983469,42.458804],[58.028944,42.487639],[58.075505,42.486528],[58.16568,42.461595],[58.2341,42.447719],[58.282882,42.428858],[58.32722,42.398911],[58.370474,42.346795],[58.37714,42.312431],[58.397087,42.292458],[58.4314,42.29207],[58.457032,42.291812],[58.474395,42.299382],[58.485815,42.316849],[58.476979,42.340155],[58.418171,42.406688],[58.28867,42.527275],[58.204127,42.576368],[58.162011,42.602981],[58.151521,42.628096],[58.206453,42.666285],[58.259679,42.688067],[58.353162,42.671737],[58.477185,42.662848],[58.532324,42.681943],[58.589065,42.778474],[58.729987,42.676155]]]]},"type":"Feature","properties":{"ISO_A2":"TM","NAME":"Turkmenistan"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[124.319316,-9.41374],[124.282316,-9.4279],[124.134573,-9.413844],[124.115556,-9.423145],[124.090131,-9.416428],[124.052408,-9.375396],[124.036388,-9.3416],[124.198135,-9.256127],[124.444425,-9.190343],[124.438224,-9.238557],[124.413006,-9.314315],[124.375695,-9.34992],[124.319316,-9.41374]]],[[[127.296137,-8.42455],[127.114546,-8.583558],[126.915179,-8.715282],[126.792499,-8.755124],[126.665478,-8.781996],[126.568533,-8.832897],[126.486884,-8.912686],[126.382498,-8.957592],[126.264779,-8.972734],[126.164217,-8.996712],[126.07306,-9.043582],[125.946142,-9.123939],[125.894776,-9.132104],[125.840309,-9.13014],[125.735199,-9.160939],[125.407984,-9.275764],[125.21027,-9.40356],[125.068108,-9.511926],[125.03364,-9.381856],[124.996949,-9.325994],[124.968269,-9.294264],[124.958606,-9.25468],[124.960156,-9.213804],[124.977519,-9.194942],[125.100509,-9.189826],[125.149447,-9.122905],[125.148982,-9.042549],[125.124435,-9.015418],[125.100354,-9.003998],[124.973282,-9.064304],[124.93685,-9.053452],[124.915094,-9.031541],[124.922277,-8.942503],[125.026922,-8.859046],[125.115702,-8.708047],[125.178024,-8.647844],[125.323131,-8.59131],[125.381836,-8.575342],[125.804239,-8.492143],[125.905111,-8.486562],[126.172795,-8.488939],[126.531016,-8.4708],[126.619693,-8.459483],[126.734518,-8.422793],[126.845726,-8.377318],[126.904637,-8.341558],[126.966442,-8.315719],[127.058529,-8.348276],[127.214799,-8.372977],[127.25707,-8.394578],[127.296137,-8.42455]]],[[[125.646109,-8.139916],[125.579446,-8.311792],[125.507099,-8.275102],[125.584097,-8.17857],[125.621097,-8.150045],[125.646109,-8.139916]]]]},"type":"Feature","properties":{"ISO_A2":"TL","NAME":"East Timor"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-174.913142,-21.300457],[-174.918646,-21.450628],[-174.967506,-21.381744],[-174.972932,-21.349859],[-174.923503,-21.303402],[-174.913142,-21.300457]]],[[[-175.161938,-21.169302],[-175.14765,-21.169405],[-175.13194,-21.139743],[-175.078171,-21.128994],[-175.084062,-21.160775],[-175.156616,-21.263663],[-175.202324,-21.223459],[-175.335468,-21.157726],[-175.36234,-21.106877],[-175.318053,-21.068223],[-175.3226,-21.09928],[-175.300457,-21.113388],[-175.225397,-21.118762],[-175.157985,-21.146461],[-175.199766,-21.155659],[-175.161938,-21.169302]]],[[[-173.953511,-18.639379],[-173.991286,-18.698652],[-174.009321,-18.697773],[-174.053117,-18.663408],[-174.069163,-18.640257],[-174.002448,-18.570649],[-173.968058,-18.565326],[-173.921859,-18.588581],[-173.923952,-18.608476],[-173.953511,-18.639379]]]]},"type":"Feature","properties":{"ISO_A2":"TO","NAME":"Tonga"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.012084,10.134317],[-61.174271,10.078041],[-61.5967,10.064657],[-61.77165,10.085069],[-61.906112,10.069153],[-61.661476,10.191678],[-61.632692,10.243406],[-61.528849,10.253121],[-61.49929,10.268572],[-61.46477,10.538944],[-61.478283,10.603384],[-61.498825,10.638886],[-61.540941,10.664466],[-61.635302,10.699347],[-61.651167,10.718054],[-61.591842,10.747923],[-61.464873,10.76446],[-61.370047,10.796809],[-61.173728,10.80332],[-61.078489,10.831949],[-60.91762,10.840217],[-60.996736,10.716142],[-61.033737,10.669892],[-61.019319,10.558116],[-61.037483,10.482255],[-61.016425,10.386395],[-60.968469,10.323401],[-60.99963,10.261493],[-61.004074,10.167803],[-61.012084,10.134317]]],[[[-60.756286,11.178491],[-60.81065,11.168621],[-60.804293,11.208412],[-60.70895,11.277245],[-60.562809,11.323547],[-60.525499,11.325407],[-60.54648,11.263706],[-60.756286,11.178491]]]]},"type":"Feature","properties":{"ISO_A2":"TT","NAME":"Trinidad and Tobago"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[10.957605,33.72205],[10.931354,33.717425],[10.882985,33.690192],[10.857456,33.687143],[10.784799,33.717658],[10.756998,33.717477],[10.722064,33.738923],[10.733846,33.855608],[10.745215,33.888681],[10.921949,33.893125],[11.01786,33.823362],[11.03357,33.805017],[11.037601,33.78507],[10.993055,33.745951],[10.957605,33.72205]]],[[[11.277999,34.753796],[11.12359,34.681708],[11.153046,34.744572],[11.254848,34.820304],[11.2811,34.802217],[11.277999,34.753796]]],[[[9.78393,37.211424],[9.830232,37.135331],[9.896378,37.181633],[9.879428,37.212845],[9.875604,37.25416],[9.988052,37.257778],[10.087374,37.251267],[10.196412,37.205869],[10.188763,37.03389],[10.334078,36.865399],[10.293253,36.781476],[10.412316,36.731841],[10.518149,36.791372],[10.571272,36.879429],[10.766196,36.930278],[10.951404,37.059289],[11.05393,37.072518],[11.077081,36.966684],[11.126691,36.87408],[11.056514,36.841472],[10.967217,36.743003],[10.798132,36.493122],[10.642379,36.419638],[10.525694,36.323365],[10.48797,36.254893],[10.476601,36.175157],[10.505747,36.032426],[10.590806,35.887241],[10.688991,35.799495],[10.783663,35.77208],[11.004321,35.63382],[11.000704,35.551629],[11.031503,35.453857],[11.043285,35.335104],[11.120076,35.240278],[10.955848,35.033624],[10.866241,34.884305],[10.690955,34.678452],[10.534892,34.544739],[10.200442,34.346043],[10.11838,34.280104],[10.064843,34.211633],[10.040039,34.140345],[10.04903,34.056319],[10.158998,33.850053],[10.305242,33.728277],[10.454277,33.662519],[10.713176,33.689029],[10.704288,33.60968],[10.722788,33.514389],[10.828104,33.518885],[10.898488,33.533716],[10.958019,33.62632],[11.084523,33.562913],[11.150255,33.369255],[11.257432,33.30882],[11.269938,33.286341],[11.232111,33.271561],[11.202655,33.249237],[11.234281,33.233579],[11.338047,33.209446],[11.400576,33.224897],[11.504549,33.181954],[11.50243,33.155548],[11.467238,32.965714],[11.459229,32.897372],[11.453906,32.781694],[11.453906,32.642581],[11.533798,32.52494],[11.535968,32.473367],[11.505014,32.413681],[11.358046,32.345235],[11.16829,32.256765],[11.005148,32.172714],[10.826399,32.080678],[10.77157,32.021198],[10.682997,31.975413],[10.608893,31.92955],[10.595457,31.885754],[10.543677,31.802555],[10.475774,31.736022],[10.306017,31.704835],[10.27465,31.684966],[10.195998,31.585101],[10.159876,31.545801],[10.11497,31.463765],[10.17264,31.250961],[10.243334,31.032111],[10.256976,30.940799],[10.256046,30.864938],[10.216359,30.783212],[10.125925,30.665984],[10.059727,30.580098],[9.9325,30.425352],[9.895035,30.387293],[9.807391,30.342231],[9.637996,30.282338],[9.518727,30.229421],[9.457955,30.465376],[9.406072,30.666811],[9.363284,30.832925],[9.28794,31.125336],[9.224016,31.373693],[9.160247,31.621352],[9.102318,31.846144],[9.044027,32.072358],[9.018912,32.105379],[8.844039,32.212117],[8.682912,32.310431],[8.515119,32.422311],[8.333373,32.543595],[8.304227,32.696299],[8.2109,32.926724],[8.112508,33.055321],[8.075611,33.08904],[7.877225,33.17211],[7.762658,33.233114],[7.731342,33.268512],[7.709225,33.362279],[7.627524,33.54865],[7.534352,33.717916],[7.500142,33.832457],[7.495595,33.976531],[7.513888,34.080504],[7.554506,34.124997],[7.748499,34.254499],[7.838313,34.410303],[7.949417,34.468697],[8.045587,34.512674],[8.123463,34.563937],[8.192813,34.646309],[8.245626,34.734056],[8.254721,34.828934],[8.276839,34.979467],[8.312082,35.084629],[8.394248,35.203872],[8.359831,35.299629],[8.316423,35.403111],[8.329032,35.582221],[8.318077,35.65493],[8.282937,35.719267],[8.247022,35.801794],[8.24573,35.870576],[8.280249,36.050978],[8.306708,36.188747],[8.348772,36.367987],[8.333993,36.418165],[8.30278,36.45563],[8.208781,36.495137],[8.207644,36.518934],[8.230743,36.545263],[8.369598,36.632493],[8.444219,36.760754],[8.506696,36.787522],[8.601263,36.833928],[8.597698,36.883899],[8.576562,36.937203],[8.823575,36.997613],[9.05891,37.155872],[9.142006,37.194603],[9.688019,37.340383],[9.758919,37.33028],[9.838501,37.308989],[9.815556,37.254626],[9.78393,37.211424]]]]},"type":"Feature","properties":{"ISO_A2":"TN","NAME":"Tunisia"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[25.970022,40.13631],[25.740269,40.105459],[25.668956,40.135897],[25.740889,40.196306],[25.874834,40.233669],[25.918346,40.238009],[25.97705,40.177806],[25.970022,40.13631]]],[[[35.114064,41.956974],[35.122125,41.891113],[35.209148,41.7944],[35.297722,41.728513],[35.557964,41.634048],[35.919803,41.713733],[35.978094,41.704845],[36.051784,41.682572],[36.179218,41.426567],[36.278437,41.336134],[36.405354,41.274587],[36.509637,41.26252],[36.587049,41.326651],[36.647097,41.352515],[36.777735,41.36347],[36.991985,41.275414],[37.066193,41.184412],[37.430925,41.114132],[37.765685,41.078888],[37.910069,41.00189],[38.381048,40.924531],[38.556954,40.936546],[38.85213,41.017652],[39.426359,41.106458],[39.807937,40.982538],[39.911084,40.96644],[40.000174,40.977137],[40.128435,40.943031],[40.265274,40.961324],[40.68747,41.107414],[40.819555,41.190225],[40.959495,41.211645],[41.083622,41.261203],[41.414351,41.423648],[41.510056,41.517492],[41.576512,41.497312],[41.701724,41.471577],[41.779393,41.44052],[41.823525,41.432355],[41.925741,41.495659],[42.077773,41.494108],[42.21115,41.486719],[42.279983,41.474988],[42.364371,41.454007],[42.46638,41.439848],[42.507928,41.470053],[42.567356,41.559298],[42.590455,41.570719],[42.606836,41.578806],[42.682387,41.585731],[42.754114,41.578909],[42.787859,41.563717],[42.821707,41.492403],[42.906766,41.466849],[43.057145,41.352851],[43.148974,41.307143],[43.171246,41.287945],[43.140964,41.264846],[43.15285,41.236424],[43.205508,41.199165],[43.279302,41.185213],[43.358935,41.190122],[43.402395,41.176557],[43.433401,41.155524],[43.441566,41.125991],[43.439447,41.107104],[43.45526,41.064677],[43.517478,41.004836],[43.591686,40.968197],[43.631683,40.929027],[43.696486,40.794125],[43.722634,40.71953],[43.712867,40.647778],[43.667857,40.574061],[43.569362,40.482387],[43.593753,40.444043],[43.615767,40.393323],[43.608429,40.356607],[43.678089,40.239301],[43.70987,40.166489],[43.683308,40.149643],[43.666255,40.126362],[43.791674,40.070242],[43.942052,40.023165],[44.005356,40.014121],[44.178058,40.035748],[44.289214,40.040399],[44.399595,39.99575],[44.560464,39.887591],[44.733838,39.746463],[44.768255,39.70352],[44.783344,39.684658],[44.817141,39.650422],[44.782104,39.651068],[44.725053,39.681713],[44.587129,39.768529],[44.516694,39.73127],[44.455922,39.666726],[44.389363,39.422142],[44.335413,39.396045],[44.240483,39.396795],[44.124056,39.405244],[44.043906,39.392945],[44.023184,39.377442],[44.033829,39.351035],[44.057549,39.310831],[44.074344,39.259981],[44.079098,39.21833],[44.121266,39.180606],[44.178058,39.144846],[44.18059,39.108078],[44.171857,39.056273],[44.158783,39.01674],[44.14452,38.994364],[44.170824,38.934368],[44.232474,38.86321],[44.271644,38.836054],[44.257072,38.700635],[44.280171,38.640691],[44.297844,38.557802],[44.290868,38.42011],[44.298516,38.386288],[44.3196,38.374712],[44.375772,38.36957],[44.430859,38.356781],[44.449876,38.33425],[44.449618,38.317765],[44.380888,38.254616],[44.372723,38.209735],[44.348952,38.146509],[44.329419,38.10925],[44.267924,38.038815],[44.228908,37.967192],[44.211286,37.908074],[44.222965,37.880169],[44.33624,37.871771],[44.397786,37.829242],[44.561239,37.744621],[44.589971,37.71036],[44.545271,37.658167],[44.546046,37.636308],[44.567234,37.608635],[44.577207,37.560188],[44.573125,37.506393],[44.574055,37.435416],[44.60413,37.423711],[44.715131,37.357152],[44.794196,37.290386],[44.79678,37.269767],[44.758333,37.217108],[44.766705,37.156337],[44.765154,37.142436],[44.730944,37.165277],[44.669346,37.173597],[44.605939,37.176026],[44.566045,37.158249],[44.496023,37.110526],[44.401921,37.058488],[44.325595,37.010764],[44.281876,36.978002],[44.245703,36.983324],[44.217487,37.01185],[44.201674,37.051821],[44.208392,37.202639],[44.191753,37.249845],[44.156251,37.282944],[44.114393,37.301858],[44.064629,37.312451],[44.013159,37.313537],[43.939985,37.269302],[43.836425,37.223516],[43.675815,37.227263],[43.568018,37.235867],[43.515876,37.244549],[43.306742,37.314622],[43.263127,37.316482],[43.185096,37.344853],[43.092491,37.367384],[42.936635,37.324776],[42.869094,37.334931],[42.774578,37.371879],[42.741092,37.361906],[42.635465,37.249277],[42.45589,37.12869],[42.358996,37.108588],[42.312849,37.229614],[42.268511,37.276588],[42.24753,37.282247],[42.202675,37.297259],[42.167897,37.288629],[42.059893,37.20605],[41.886829,37.156389],[41.74353,37.126106],[41.515533,37.089183],[41.339575,37.070787],[41.264593,37.069314],[41.102174,37.085902],[40.958875,37.109156],[40.815576,37.108175],[40.705712,37.09771],[40.450379,37.008878],[40.0164,36.826047],[39.686498,36.738636],[39.501445,36.70223],[39.356595,36.681586],[39.108445,36.680552],[38.906494,36.69466],[38.766657,36.693135],[38.688884,36.715072],[38.578038,36.789124],[38.443783,36.862246],[38.383942,36.879248],[38.30591,36.893381],[38.191705,36.901546],[37.906658,36.794654],[37.817981,36.76556],[37.720365,36.743701],[37.523529,36.67833],[37.436351,36.643319],[37.327055,36.646601],[37.187426,36.655902],[37.066193,36.652647],[36.985319,36.702411],[36.941756,36.758403],[36.776598,36.79269],[36.658569,36.80256],[36.62839,36.777704],[36.596867,36.701352],[36.546638,36.506351],[36.537439,36.457413],[36.641464,36.263523],[36.636762,36.233964],[36.562399,36.223939],[36.477081,36.220683],[36.421477,36.203449],[36.375434,36.171255],[36.347529,36.003539],[36.248878,35.972688],[36.201956,35.937548],[36.153587,35.83386],[36.127335,35.831457],[35.967552,35.910056],[35.892673,35.916568],[35.956906,35.998165],[35.887143,36.159085],[35.810972,36.309877],[35.882802,36.406357],[36.031734,36.522706],[36.188417,36.658977],[36.18821,36.743055],[36.180045,36.807211],[36.13519,36.851627],[36.04889,36.910616],[35.90461,36.847596],[35.801567,36.778065],[35.734284,36.763958],[35.66111,36.724322],[35.625557,36.652776],[35.537397,36.597017],[35.393116,36.57521],[35.176179,36.634844],[34.943221,36.725666],[34.81124,36.799253],[34.70365,36.816823],[34.60133,36.784448],[34.299643,36.6042],[34.023381,36.34078],[33.954858,36.295227],[33.694719,36.182004],[33.52274,36.143996],[33.441814,36.152832],[33.09951,36.102965],[32.929494,36.095678],[32.794825,36.035889],[32.533756,36.100742],[32.377693,36.183631],[32.283849,36.267864],[32.130577,36.449145],[32.021953,36.535315],[31.777937,36.612778],[31.352536,36.801062],[31.240605,36.821732],[30.950287,36.848681],[30.644052,36.865657],[30.582041,36.797186],[30.558476,36.525833],[30.506076,36.451109],[30.483649,36.31042],[30.446132,36.269879],[30.387324,36.243266],[30.295443,36.287682],[30.231674,36.307345],[30.08326,36.249364],[29.789221,36.168077],[29.689072,36.156682],[29.348317,36.258821],[29.223674,36.32445],[29.143265,36.39721],[29.116084,36.520123],[29.065544,36.590067],[29.058103,36.638126],[29.038259,36.693471],[28.969633,36.71533],[28.895839,36.673576],[28.816877,36.675281],[28.717658,36.700887],[28.483564,36.8038],[28.30373,36.811965],[28.195623,36.68634],[28.111494,36.646394],[28.019406,36.634483],[28.014135,36.670217],[28.084002,36.751478],[27.803812,36.736492],[27.655811,36.674609],[27.540469,36.684247],[27.453963,36.712152],[27.466882,36.746336],[27.554629,36.758894],[27.6308,36.78667],[27.93445,36.809252],[28.00535,36.831964],[28.082968,36.920279],[28.224355,36.996398],[28.242442,37.029032],[28.133715,37.029497],[27.66842,37.007431],[27.348956,37.019601],[27.311026,36.981903],[27.262967,36.976581],[27.249738,37.079132],[27.300174,37.126881],[27.36818,37.122411],[27.535095,37.163856],[27.520109,37.249096],[27.400633,37.306715],[27.376241,37.340718],[27.289528,37.348677],[27.219248,37.389165],[27.203849,37.491407],[27.147935,37.603622],[27.06794,37.657908],[27.077862,37.687674],[27.224416,37.72545],[27.254802,37.882339],[27.232374,37.978664],[27.158684,37.986881],[26.943813,38.062897],[26.878597,38.054809],[26.807387,38.138318],[26.682847,38.198341],[26.621145,38.176352],[26.582388,38.149274],[26.524717,38.16227],[26.427979,38.21436],[26.332894,38.242472],[26.290726,38.277199],[26.343643,38.370087],[26.416403,38.367865],[26.429633,38.440626],[26.372272,38.56191],[26.377853,38.624154],[26.441311,38.641208],[26.513555,38.629477],[26.586522,38.557027],[26.610397,38.486928],[26.594997,38.418586],[26.641299,38.35244],[26.674269,38.335748],[26.696386,38.405356],[26.727289,38.418586],[26.76987,38.3882],[26.861441,38.372955],[27.098636,38.415717],[27.144214,38.451943],[26.970375,38.447834],[26.906813,38.481734],[26.837773,38.557569],[26.795295,38.626428],[26.787647,38.660225],[26.763669,38.709627],[26.790127,38.736086],[26.90919,38.775773],[27.01368,38.886877],[26.970065,38.919046],[26.920352,38.934239],[26.866195,38.922947],[26.814932,38.960981],[26.808317,39.013898],[26.849349,39.056738],[26.853586,39.115623],[26.719331,39.260627],[26.681814,39.292253],[26.710752,39.339666],[26.813278,39.419041],[26.910947,39.517356],[26.899268,39.549679],[26.827024,39.562883],[26.4841,39.520715],[26.350774,39.484102],[26.113063,39.467359],[26.09601,39.520792],[26.101384,39.568955],[26.154714,39.656649],[26.149753,39.872864],[26.181379,39.990066],[26.313361,40.024999],[26.475418,40.197288],[26.738038,40.400222],[27.012129,40.39632],[27.121683,40.452363],[27.284567,40.455619],[27.314126,40.414898],[27.332627,40.375934],[27.475564,40.319916],[27.728055,40.328805],[27.789343,40.350871],[27.848564,40.381722],[27.731879,40.481509],[27.769086,40.509621],[27.874919,40.512928],[27.989537,40.489467],[27.994808,40.466626],[27.964319,40.43531],[27.928869,40.38043],[27.962562,40.369888],[28.289054,40.403038],[28.630222,40.376476],[28.738846,40.390868],[29.00715,40.389731],[29.055209,40.424174],[28.973973,40.467375],[28.894598,40.482413],[28.841165,40.503471],[28.787835,40.534038],[28.958057,40.630544],[29.054072,40.649095],[29.507584,40.70842],[29.844928,40.738108],[29.849269,40.760096],[29.80059,40.760174],[29.364751,40.809292],[29.259744,40.847326],[29.113913,40.937863],[29.082184,40.963443],[29.045494,41.007575],[29.067404,41.101678],[29.094276,41.177229],[29.148123,41.221024],[29.322273,41.227742],[29.919342,41.150822],[30.344949,41.196943],[30.810037,41.084883],[31.254868,41.10762],[31.346645,41.157902],[31.45806,41.320036],[32.086445,41.589219],[32.306483,41.729598],[32.542231,41.806389],[32.946651,41.891759],[33.284718,42.004568],[33.381353,42.017591],[34.192983,41.963666],[34.750468,41.956819],[35.006473,42.063298],[35.154888,42.027564],[35.141039,41.989505],[35.114064,41.956974]]],[[[27.362909,42.025032],[27.47484,41.946897],[27.534836,41.920775],[27.579847,41.932893],[27.661185,41.961315],[27.738907,41.961522],[27.801642,41.956535],[27.831924,41.981288],[27.879208,41.986636],[28.014445,41.969066],[27.987264,41.854862],[28.050309,41.729133],[28.197897,41.554466],[28.346415,41.466358],[28.946792,41.248387],[29.057172,41.229758],[29.032161,41.140487],[28.995988,41.061112],[28.9563,41.008195],[28.780394,40.974166],[28.294945,41.071499],[28.172162,41.080697],[28.085552,41.061318],[27.925149,40.990573],[27.747382,41.013259],[27.499438,40.973158],[27.430192,40.839936],[27.258006,40.687362],[26.974612,40.56401],[26.772041,40.498071],[26.467977,40.261496],[26.33,40.123391],[26.271813,40.096597],[26.202773,40.075409],[26.225924,40.14171],[26.260134,40.202378],[26.252382,40.248164],[26.253829,40.314697],[26.355219,40.390222],[26.447513,40.444999],[26.720261,40.544218],[26.792091,40.626616],[26.578151,40.624652],[26.360903,40.606359],[26.22427,40.61809],[26.105415,40.61132],[26.067794,40.683409],[26.038959,40.726765],[26.069758,40.740304],[26.109187,40.749658],[26.178899,40.826501],[26.24122,40.883215],[26.331086,40.954503],[26.354133,40.997084],[26.354082,41.036772],[26.332584,41.064315],[26.32845,41.097027],[26.32566,41.143277],[26.330621,41.238775],[26.536396,41.343136],[26.602387,41.354143],[26.624866,41.401763],[26.609777,41.512143],[26.581355,41.601285],[26.544509,41.607228],[26.495055,41.633247],[26.462499,41.6634],[26.410512,41.696318],[26.320905,41.716575],[26.318012,41.744687],[26.32721,41.772799],[26.360386,41.801583],[26.511436,41.826362],[26.529316,41.846671],[26.549729,41.896719],[26.579701,41.947957],[26.615358,41.964881],[26.67923,41.96333],[26.800359,41.975164],[26.88485,41.991856],[26.968721,42.026841],[27.011716,42.058648],[27.193359,42.077096],[27.244363,42.093245],[27.294903,42.079551],[27.362909,42.025032]]]]},"type":"Feature","properties":{"ISO_A2":"TR","NAME":"Turkey"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[118.407481,24.522121],[118.451199,24.455562],[118.432699,24.414376],[118.295136,24.436338],[118.287282,24.476594],[118.339371,24.469153],[118.407481,24.522121]]],[[[121.008769,22.620377],[120.946861,22.503071],[120.897355,22.379151],[120.877304,22.262207],[120.878441,22.141569],[120.864282,22.032686],[120.839891,21.925019],[120.742739,21.955999],[120.690132,22.033126],[120.67804,22.159681],[120.607657,22.312566],[120.581302,22.356388],[120.479809,22.441912],[120.387618,22.484519],[120.316202,22.547616],[120.325607,22.542449],[120.272793,22.627456],[120.232796,22.717916],[120.150114,22.974929],[120.121588,23.036992],[120.083451,23.093681],[120.072496,23.14975],[120.085518,23.212046],[120.121175,23.305193],[120.142982,23.399089],[120.125412,23.526626],[120.13213,23.652923],[120.159002,23.709044],[120.629671,24.478532],[120.757415,24.642295],[120.835963,24.722677],[120.901592,24.813292],[120.964017,24.927988],[121.040602,25.032788],[121.095379,25.065085],[121.36544,25.159162],[121.449569,25.249028],[121.517059,25.276907],[121.593643,25.275357],[121.643046,25.232414],[121.687074,25.18159],[121.733273,25.154098],[121.852852,25.104437],[121.905149,25.056455],[121.929023,24.973721],[121.856263,24.895277],[121.820089,24.824532],[121.813371,24.746319],[121.826394,24.640512],[121.828047,24.534394],[121.736993,24.285236],[121.639325,24.130104],[121.613073,24.052744],[121.583411,23.860869],[121.52605,23.668271],[121.477164,23.424074],[121.397479,23.172514],[121.352211,23.067274],[121.295883,22.966609],[121.161215,22.776388],[121.008769,22.620377]]]]},"type":"Feature","properties":{"ISO_A2":"TW","NAME":"Taiwan"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[39.711303,-7.977446],[39.657249,-7.990571],[39.636165,-7.977807],[39.602885,-7.936104],[39.66066,-7.900551],[39.716574,-7.831511],[39.846591,-7.730226],[39.89093,-7.66346],[39.907156,-7.649197],[39.897751,-7.728158],[39.824474,-7.900654],[39.761842,-7.91192],[39.711303,-7.977446]]],[[[39.496535,-6.174558],[39.573016,-6.387362],[39.563198,-6.427256],[39.509144,-6.451699],[39.480929,-6.453714],[39.447339,-6.419711],[39.423672,-6.347829],[39.38264,-6.364934],[39.312671,-6.2791],[39.243424,-6.275017],[39.182343,-6.172594],[39.206217,-6.083194],[39.192368,-5.931059],[39.266989,-5.853131],[39.30895,-5.721976],[39.357216,-5.81148],[39.368274,-5.951213],[39.433283,-6.11544],[39.487854,-6.166238],[39.496535,-6.174558]]],[[[39.864988,-4.90616],[39.870983,-4.956545],[39.855686,-5.004035],[39.858994,-5.155137],[39.852999,-5.255441],[39.795845,-5.394451],[39.749336,-5.443853],[39.707582,-5.429539],[39.673475,-5.406595],[39.64681,-5.368509],[39.701071,-5.113693],[39.673475,-4.927089],[39.780756,-4.944917],[39.864988,-4.90616]]],[[[30.82368,-0.999008],[30.844764,-1.002057],[30.949718,-1.002057],[31.127537,-1.002057],[31.305304,-1.002057],[31.483071,-1.002057],[31.660838,-1.002057],[31.838605,-1.002057],[32.016372,-1.002057],[32.194139,-1.002057],[32.371906,-1.002057],[32.549672,-1.002057],[32.727439,-1.002057],[32.905206,-1.002057],[33.082973,-1.002057],[33.26074,-1.002057],[33.438507,-1.002057],[33.616274,-1.002057],[33.794041,-1.002057],[33.903233,-1.002057],[33.979404,-1.002057],[34.051545,-1.039885],[34.131591,-1.084585],[34.344757,-1.203595],[34.557922,-1.322555],[34.771087,-1.441565],[34.984253,-1.560576],[35.197418,-1.679587],[35.410583,-1.798598],[35.623697,-1.917609],[35.836862,-2.03662],[36.050027,-2.15563],[36.263141,-2.274641],[36.476306,-2.3936],[36.689471,-2.512611],[36.902637,-2.631622],[37.115802,-2.750581],[37.328967,-2.869592],[37.542133,-2.988603],[37.643883,-3.045447],[37.65918,-3.070045],[37.676853,-3.178462],[37.687963,-3.246158],[37.681866,-3.305741],[37.625332,-3.407234],[37.608692,-3.460254],[37.608175,-3.497047],[37.622024,-3.511517],[37.670135,-3.516788],[37.711011,-3.540817],[37.726152,-3.559782],[37.757468,-3.636108],[37.797207,-3.674452],[37.887279,-3.739255],[38.04081,-3.849791],[38.194289,-3.960326],[38.34782,-4.070862],[38.501351,-4.181398],[38.654881,-4.291934],[38.808412,-4.40247],[38.961891,-4.512954],[39.115422,-4.62349],[39.190146,-4.677285],[39.221772,-4.692375],[39.201876,-4.776452],[39.123225,-4.980471],[39.118781,-5.065427],[39.087981,-5.165473],[39.058319,-5.231567],[38.978221,-5.518578],[38.911041,-5.625961],[38.819264,-5.877625],[38.804691,-6.070068],[38.855334,-6.204841],[38.874041,-6.331241],[38.981425,-6.455058],[39.067414,-6.499293],[39.125498,-6.55593],[39.228438,-6.685225],[39.287349,-6.814933],[39.472351,-6.878598],[39.546041,-7.024015],[39.519273,-7.124164],[39.433387,-7.207053],[39.353185,-7.341412],[39.288486,-7.517835],[39.287039,-7.78769],[39.330447,-7.746659],[39.428426,-7.812804],[39.441035,-8.011552],[39.340059,-8.242856],[39.30895,-8.350963],[39.303989,-8.443877],[39.377369,-8.720759],[39.48837,-8.861784],[39.480102,-8.905968],[39.451267,-8.942968],[39.641333,-9.192462],[39.62552,-9.409503],[39.69673,-9.578381],[39.727942,-9.724832],[39.774865,-9.837074],[39.783753,-9.914588],[39.725152,-10.000475],[39.863748,-10.021972],[39.94519,-10.092252],[39.983534,-10.159535],[40.083683,-10.156641],[40.13784,-10.202633],[40.215975,-10.240667],[40.388781,-10.353476],[40.435599,-10.410217],[40.452498,-10.442928],[40.463556,-10.464322],[40.347439,-10.551552],[40.166262,-10.687461],[39.988702,-10.820838],[39.817084,-10.912357],[39.694404,-10.954783],[39.563456,-10.978554],[39.439174,-11.03452],[39.321559,-11.122577],[39.170974,-11.166863],[38.987522,-11.167277],[38.794769,-11.228927],[38.60336,-11.345354],[38.491739,-11.413308],[38.315109,-11.311092],[38.176564,-11.278691],[38.017297,-11.282102],[37.920197,-11.294762],[37.885367,-11.316673],[37.855033,-11.379098],[37.829299,-11.481935],[37.72486,-11.580636],[37.541719,-11.675101],[37.372892,-11.710448],[37.21838,-11.686521],[37.113838,-11.647144],[37.059165,-11.592212],[36.978859,-11.566942],[36.872716,-11.571283],[36.771069,-11.610402],[36.673814,-11.684299],[36.518681,-11.716235],[36.305671,-11.706314],[36.191311,-11.670657],[36.175498,-11.609265],[36.08217,-11.537332],[35.911328,-11.454649],[35.785444,-11.452944],[35.704725,-11.532164],[35.630983,-11.58198],[35.564321,-11.602341],[35.504428,-11.604821],[35.451408,-11.589525],[35.418231,-11.583169],[35.182638,-11.574849],[34.9595,-11.578104],[34.952627,-11.54374],[34.93702,-11.463434],[34.890615,-11.393568],[34.850617,-11.351917],[34.800905,-11.34091],[34.773774,-11.341685],[34.752174,-11.309439],[34.726439,-11.238177],[34.688457,-11.177457],[34.638124,-11.127124],[34.607893,-11.080512],[34.597661,-11.037517],[34.605671,-10.990285],[34.652335,-10.872876],[34.667114,-10.792468],[34.661843,-10.710044],[34.636522,-10.625604],[34.583554,-10.525094],[34.589548,-10.496155],[34.571616,-10.427632],[34.569756,-10.379676],[34.579988,-10.319835],[34.569911,-10.24108],[34.524229,-10.073132],[34.524229,-10.030137],[34.475963,-9.948798],[34.327807,-9.756562],[34.320882,-9.73155],[34.088597,-9.537764],[33.995579,-9.495441],[33.962093,-9.531718],[33.949587,-9.565359],[33.959354,-9.627371],[33.953669,-9.65817],[33.943903,-9.672174],[33.888816,-9.670107],[33.854192,-9.662976],[33.766239,-9.610886],[33.697664,-9.598122],[33.527494,-9.607475],[33.467756,-9.619723],[33.420937,-9.608044],[33.330917,-9.51916],[33.22529,-9.500453],[33.130516,-9.495906],[32.974039,-9.394982],[32.937297,-9.399684],[32.919882,-9.407384],[32.863245,-9.380874],[32.756585,-9.322221],[32.608377,-9.270545],[32.487144,-9.212719],[32.433194,-9.156392],[32.319299,-9.134894],[32.220855,-9.125593],[32.12975,-9.073348],[32.035337,-9.067405],[31.942629,-9.053969],[31.921856,-9.019449],[31.918652,-8.942193],[31.886095,-8.921987],[31.818038,-8.902247],[31.744709,-8.903229],[31.700009,-8.914339],[31.673654,-8.908758],[31.612779,-8.863231],[31.556245,-8.805509],[31.534851,-8.713266],[31.449223,-8.65389],[31.350624,-8.607071],[31.076326,-8.611877],[31.033383,-8.597666],[30.968374,-8.550951],[30.891944,-8.473746],[30.830708,-8.385586],[30.776706,-8.265852],[30.751126,-8.193608],[30.720844,-8.104415],[30.653819,-7.970934],[30.55889,-7.781902],[30.485612,-7.627183],[30.406754,-7.46063],[30.374508,-7.338622],[30.31322,-7.203694],[30.212709,-7.037916],[30.161808,-6.973062],[30.106307,-6.915081],[29.96182,-6.80315],[29.798109,-6.691891],[29.709639,-6.616908],[29.590628,-6.39439],[29.540761,-6.313826],[29.506189,-6.172078],[29.480092,-6.025007],[29.490789,-5.965424],[29.596364,-5.775926],[29.60701,-5.722699],[29.594194,-5.650766],[29.542363,-5.499767],[29.503657,-5.400962],[29.476475,-5.316626],[29.420096,-5.17617],[29.342736,-4.983106],[29.323409,-4.898874],[29.325683,-4.835622],[29.367541,-4.66881],[29.40418,-4.496676],[29.403198,-4.449289],[29.717804,-4.455852],[29.76948,-4.418076],[29.947299,-4.307282],[30.147132,-4.085383],[30.187129,-3.992883],[30.268571,-3.850514],[30.348463,-3.779821],[30.379159,-3.73078],[30.400036,-3.653885],[30.425048,-3.588876],[30.529899,-3.492448],[30.631908,-3.418654],[30.624622,-3.388682],[30.610979,-3.366358],[30.626069,-3.347341],[30.681776,-3.30941],[30.790245,-3.27458],[30.811432,-3.20058],[30.811122,-3.116399],[30.793604,-3.069321],[30.796911,-3.015164],[30.780271,-2.984882],[30.709475,-2.977234],[30.604262,-2.935273],[30.515068,-2.917548],[30.455537,-2.893208],[30.433471,-2.874501],[30.424014,-2.824065],[30.441274,-2.769081],[30.450472,-2.753268],[30.473365,-2.694306],[30.434349,-2.658855],[30.424221,-2.641596],[30.441998,-2.613432],[30.533723,-2.42626],[30.553619,-2.400112],[30.593409,-2.396804],[30.65661,-2.373808],[30.714849,-2.363525],[30.762443,-2.37169],[30.797635,-2.362698],[30.828744,-2.338513],[30.854996,-2.265391],[30.876596,-2.143383],[30.864607,-2.044061],[30.819132,-1.967476],[30.80673,-1.850688],[30.827504,-1.693695],[30.812621,-1.563057],[30.762185,-1.458722],[30.710715,-1.396814],[30.63196,-1.367461],[30.508092,-1.208246],[30.470213,-1.131145],[30.477034,-1.082983],[30.509952,-1.067273],[30.519874,-1.062519],[30.598732,-1.069702],[30.672784,-1.051357],[30.742031,-1.007535],[30.80921,-0.994926],[30.82368,-0.999008]]]]},"type":"Feature","properties":{"ISO_A2":"TZ","NAME":"Tanzania"}},{"geometry":{"type":"Polygon","coordinates":[[[33.903233,-1.002057],[33.794041,-1.002057],[33.616274,-1.002057],[33.438507,-1.002057],[33.26074,-1.002057],[33.082973,-1.002057],[32.905206,-1.002057],[32.727439,-1.002057],[32.549672,-1.002057],[32.371906,-1.002057],[32.194139,-1.002057],[32.016372,-1.002057],[31.838605,-1.002057],[31.660838,-1.002057],[31.483071,-1.002057],[31.305304,-1.002057],[31.127537,-1.002057],[30.949718,-1.002057],[30.844764,-1.002057],[30.82368,-0.999008],[30.80921,-0.994926],[30.742031,-1.007535],[30.672784,-1.051357],[30.598732,-1.069702],[30.519874,-1.062519],[30.509952,-1.067273],[30.469903,-1.066033],[30.412335,-1.063036],[30.360245,-1.074611],[30.320506,-1.113058],[30.279837,-1.178791],[30.206973,-1.254238],[30.149974,-1.321108],[30.101553,-1.36865],[29.990501,-1.44694],[29.930091,-1.469936],[29.900015,-1.466318],[29.881618,-1.451797],[29.84684,-1.3517],[29.825446,-1.335577],[29.609645,-1.387098],[29.576934,-1.387874],[29.579983,-1.356764],[29.564015,-1.12143],[29.561948,-0.977356],[29.59006,-0.887129],[29.60639,-0.783104],[29.60825,-0.691275],[29.647834,-0.535212],[29.633158,-0.441678],[29.684318,-0.113584],[29.697805,-0.060203],[29.717701,0.098341],[29.749688,0.147226],[29.777852,0.166347],[29.814646,0.263602],[29.885442,0.418941],[29.934483,0.49904],[29.923786,0.673913],[29.931693,0.792872],[29.942907,0.819227],[30.047345,0.863513],[30.182892,0.973481],[30.240149,1.102775],[30.321075,1.185303],[30.477861,1.238839],[30.478171,1.239046],[30.942535,1.682792],[31.158801,1.922002],[31.252697,2.044578],[31.256108,2.088503],[31.273988,2.146278],[31.236368,2.191339],[31.191357,2.232267],[31.17632,2.270068],[31.137562,2.288879],[31.082165,2.288104],[31.045372,2.315544],[31.003617,2.369365],[30.961966,2.40329],[30.830088,2.400422],[30.728595,2.45538],[30.729939,2.530259],[30.769523,2.677976],[30.846624,2.84701],[30.850758,2.893674],[30.839958,2.933516],[30.821406,2.967571],[30.786473,3.001342],[30.753968,3.041804],[30.779238,3.163373],[30.827814,3.282591],[30.867605,3.342148],[30.906465,3.40894],[30.895303,3.463665],[30.838562,3.490717],[30.868121,3.544125],[30.92941,3.634068],[31.048007,3.724993],[31.152342,3.785609],[31.22195,3.785945],[31.357394,3.737576],[31.47997,3.680447],[31.54715,3.677579],[31.628902,3.70148],[31.79809,3.802611],[31.838708,3.770468],[31.888266,3.709102],[31.941854,3.607558],[32.048204,3.561178],[32.099467,3.529191],[32.135899,3.519734],[32.15626,3.528002],[32.196722,3.60779],[32.245505,3.651302],[32.335732,3.706182],[32.53479,3.749952],[32.6769,3.763181],[32.737155,3.77269],[32.838027,3.798476],[32.997242,3.880203],[33.15408,3.774705],[33.324302,3.754345],[33.489357,3.755068],[33.539535,3.787108],[33.568422,3.811706],[33.741641,3.985261],[33.976097,4.220208],[34.132005,3.889169],[34.185748,3.869764],[34.178204,3.840877],[34.165078,3.812998],[34.267087,3.733157],[34.392867,3.691506],[34.437671,3.650579],[34.441857,3.60624],[34.39943,3.412712],[34.407234,3.357521],[34.447851,3.163476],[34.522575,3.119991],[34.589135,2.924757],[34.723287,2.841946],[34.742459,2.818123],[34.773413,2.723426],[34.814495,2.619815],[34.846638,2.595733],[34.866224,2.589687],[34.905756,2.479694],[34.883018,2.417941],[34.913973,2.2302],[34.964047,2.062407],[34.977535,1.861902],[34.978206,1.773639],[34.976449,1.719637],[34.965236,1.643363],[34.941258,1.599257],[34.898366,1.556494],[34.850927,1.489005],[34.809535,1.416684],[34.783541,1.38113],[34.803798,1.272843],[34.798631,1.244524],[34.787572,1.230726],[34.726697,1.214241],[34.649131,1.185303],[34.602002,1.156467],[34.535236,1.101535],[34.481751,1.042159],[34.410851,0.867286],[34.292615,0.731274],[34.272565,0.686418],[34.160995,0.605183],[34.111748,0.505137],[34.080535,0.382458],[34.03723,0.294556],[33.943127,0.173788],[33.921527,-0.017001],[33.924369,-0.397857],[33.899978,-0.831629],[33.903233,-1.002057]]]},"type":"Feature","properties":{"ISO_A2":"UG","NAME":"Uganda"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[32.012238,46.203898],[32.15011,46.154702],[32.009344,46.167802],[31.700215,46.214079],[31.563893,46.257745],[31.528753,46.306579],[31.508806,46.373139],[31.584873,46.303169],[31.638514,46.272576],[32.012238,46.203898]]],[[[33.45184,52.333808],[33.61338,52.33262],[33.735233,52.344764],[33.818846,52.315644],[33.922043,52.251462],[34.015319,52.155964],[34.11304,51.979618],[34.397828,51.780406],[34.402686,51.741493],[34.379328,51.716508],[34.239182,51.692246],[34.121153,51.679171],[34.115417,51.644962],[34.146784,51.607961],[34.20089,51.55383],[34.209261,51.484093],[34.206574,51.419937],[34.22988,51.363248],[34.274994,51.340174],[34.280678,51.311675],[34.228381,51.27687],[34.21386,51.255373],[34.234221,51.243798],[34.491053,51.23708],[34.616833,51.203128],[34.712279,51.172226],[34.76039,51.169332],[34.868549,51.189201],[34.990247,51.201733],[35.064093,51.203438],[35.092566,51.180649],[35.115356,51.120833],[35.158092,51.060992],[35.197986,51.043913],[35.269196,51.046755],[35.311933,51.043913],[35.334722,51.021124],[35.309091,50.986914],[35.314775,50.949888],[35.346143,50.904309],[35.383143,50.798915],[35.417353,50.767573],[35.440142,50.727679],[35.440142,50.682101],[35.411617,50.642232],[35.39167,50.610916],[35.411617,50.53968],[35.488511,50.459918],[35.54551,50.439971],[35.591089,50.36876],[35.67372,50.345971],[35.796193,50.405761],[35.890192,50.437128],[36.007756,50.419662],[36.11638,50.408525],[36.18945,50.36783],[36.243401,50.311761],[36.306084,50.280445],[36.368871,50.296827],[36.499819,50.280445],[36.55966,50.234867],[36.61945,50.209235],[36.696396,50.246262],[36.75908,50.29184],[36.988523,50.339563],[37.131202,50.351501],[37.171044,50.36088],[37.254915,50.39496],[37.343178,50.417646],[37.422812,50.411497],[37.501308,50.3407],[37.582337,50.291866],[37.605126,50.21492],[37.70419,50.109061],[37.950273,49.964212],[38.046908,49.920002],[38.112485,49.927831],[38.146799,49.939407],[38.162663,49.954522],[38.177598,50.025371],[38.208655,50.051467],[38.258575,50.052346],[38.451224,49.964082],[38.551993,49.954574],[38.64775,49.952869],[38.776683,49.884346],[38.918379,49.824685],[39.027675,49.818406],[39.114956,49.841764],[39.174798,49.855975],[39.211798,49.833212],[39.246008,49.781949],[39.302955,49.742055],[39.368481,49.73066],[39.462791,49.728024],[39.626553,49.650665],[39.780549,49.572039],[39.876822,49.567672],[39.958523,49.590772],[40.030663,49.59674],[40.080634,49.576845],[40.094897,49.542661],[40.057845,49.497082],[40.057845,49.431557],[40.126213,49.368873],[40.12828,49.307249],[40.108798,49.251542],[40.069989,49.200279],[39.976351,49.129818],[39.889741,49.06406],[39.759465,49.036594],[39.68655,49.007913],[39.705618,48.959596],[39.753367,48.914431],[39.863748,48.877999],[39.989167,48.851437],[40.003584,48.822085],[39.984464,48.807357],[39.904159,48.793766],[39.7929,48.807719],[39.755848,48.782061],[39.704585,48.739351],[39.670426,48.662431],[39.644743,48.591195],[39.765408,48.571868],[39.835636,48.542774],[39.857547,48.48425],[39.882558,48.419112],[39.889793,48.360459],[39.849899,48.331934],[39.847418,48.302788],[39.866332,48.288422],[39.918112,48.281911],[39.957902,48.268914],[39.961003,48.237934],[39.885039,48.168378],[39.813932,48.035285],[39.775795,47.964463],[39.778689,47.887542],[39.735952,47.844806],[39.658489,47.841215],[39.39096,47.833721],[39.158468,47.837416],[39.057802,47.848501],[38.900293,47.855115],[38.822313,47.837029],[38.718908,47.71409],[38.640567,47.665928],[38.510962,47.622416],[38.368852,47.609962],[38.28741,47.559165],[38.25873,47.479531],[38.256508,47.408941],[38.243278,47.373698],[38.212428,47.342795],[38.201369,47.320781],[38.207983,47.296519],[38.241056,47.287708],[38.280744,47.276649],[38.280744,47.259054],[38.265344,47.236962],[38.221213,47.212726],[38.201369,47.17526],[38.205813,47.135573],[38.214391,47.091441],[38.178269,47.080227],[37.82873,47.095834],[37.543373,47.074569],[37.339871,46.916878],[37.218535,46.917343],[37.047589,46.876235],[36.932041,46.825152],[36.794788,46.71441],[36.688645,46.764097],[36.558833,46.762676],[36.432019,46.732548],[36.279471,46.658599],[36.194618,46.645525],[36.024913,46.66679],[35.827095,46.624338],[35.400144,46.381407],[35.256691,46.203898],[35.204394,46.169198],[35.132357,46.125893],[35.055256,46.104008],[35.014535,46.105997],[35.21783,46.232191],[35.280152,46.279501],[35.290901,46.314383],[35.292037,46.37071],[35.230336,46.440628],[35.064041,46.267254],[34.969576,46.242087],[34.849584,46.189894],[34.843693,46.07357],[34.857335,45.987374],[34.906635,45.878802],[35.022907,45.700958],[35.260205,45.446942],[35.373893,45.353614],[35.457505,45.316304],[35.557964,45.310878],[35.751027,45.389374],[35.833503,45.401622],[36.012924,45.371701],[36.077106,45.424101],[36.170537,45.453092],[36.290323,45.456735],[36.427059,45.433248],[36.57506,45.39356],[36.514288,45.303747],[36.450726,45.23233],[36.428402,45.153265],[36.393366,45.065363],[36.229861,45.025986],[36.054782,45.030818],[35.87009,45.005315],[35.803634,45.039577],[35.759502,45.070867],[35.677544,45.102002],[35.56954,45.119339],[35.472595,45.098488],[35.35777,44.978444],[35.154785,44.89633],[35.087709,44.80264],[34.887824,44.823595],[34.716879,44.807136],[34.469865,44.721663],[34.281763,44.538419],[34.074437,44.423852],[33.910003,44.387575],[33.755697,44.398944],[33.655858,44.433205],[33.450703,44.553663],[33.462692,44.596813],[33.49132,44.618595],[33.530078,44.680503],[33.612243,44.907802],[33.601185,44.981492],[33.555192,45.097661],[33.392515,45.187836],[33.261567,45.170732],[33.186946,45.194761],[32.918642,45.348163],[32.772708,45.358989],[32.611374,45.328086],[32.551843,45.35041],[32.508021,45.403792],[32.828002,45.593031],[33.142298,45.749197],[33.280067,45.765217],[33.466206,45.837926],[33.66485,45.947067],[33.636738,46.032849],[33.594157,46.096256],[33.498865,46.078867],[33.429825,46.057602],[33.263427,46.12566],[33.202242,46.175735],[32.941793,46.1238],[32.796893,46.1315],[32.476809,46.083699],[32.329841,46.130363],[32.035802,46.260975],[31.925214,46.287253],[31.831267,46.281671],[31.780004,46.324666],[31.842842,46.346164],[31.915913,46.34867],[31.99167,46.364405],[32.013064,46.387143],[32.008517,46.429983],[31.855761,46.462436],[31.713651,46.471789],[31.623631,46.510236],[31.554901,46.55429],[31.716028,46.554988],[31.877982,46.521657],[32.131403,46.509358],[32.361364,46.474941],[32.418931,46.517781],[32.552566,46.591988],[32.577991,46.615605],[32.354129,46.564858],[32.127269,46.597208],[32.04438,46.642476],[31.974307,46.708803],[31.944955,46.78438],[31.964075,46.854815],[31.939581,46.981965],[31.864753,47.09511],[31.838191,47.157225],[31.75923,47.212829],[31.836951,47.086997],[31.86589,47.003255],[31.912709,46.926128],[31.90165,46.721645],[31.872815,46.649763],[31.77959,46.63165],[31.657014,46.642425],[31.532164,46.664749],[31.563376,46.777274],[31.496817,46.738388],[31.402972,46.628834],[31.32029,46.612504],[31.136839,46.624441],[30.796291,46.552017],[30.77283,46.473029],[30.72167,46.366214],[30.672268,46.303996],[30.656765,46.266479],[30.511554,46.105351],[30.49295,46.090159],[30.219065,45.866761],[30.184132,45.849967],[30.006675,45.797928],[29.901669,45.752401],[29.821157,45.732093],[29.685041,45.754675],[29.628404,45.722481],[29.601635,45.682535],[29.601222,45.600008],[29.670262,45.540683],[29.726899,45.343331],[29.705918,45.259899],[29.651968,45.313901],[29.567684,45.370823],[29.403663,45.419657],[29.223571,45.402914],[29.027407,45.320541],[28.894288,45.289949],[28.824318,45.311085],[28.781737,45.309844],[28.766648,45.286228],[28.769852,45.266901],[28.791349,45.251915],[28.7883,45.24096],[28.760705,45.234138],[28.451266,45.292197],[28.317683,45.347129],[28.21247,45.450456],[28.264869,45.483865],[28.310345,45.498567],[28.471368,45.507197],[28.499067,45.517739],[28.501754,45.541562],[28.513743,45.572412],[28.509506,45.617836],[28.491626,45.665792],[28.562319,45.735813],[28.667636,45.793846],[28.729337,45.851982],[28.738742,45.937145],[28.849537,45.978641],[28.947722,46.049928],[28.971906,46.12765],[29.006271,46.176484],[28.943691,46.288415],[28.930565,46.362235],[28.927465,46.424118],[28.958367,46.458482],[29.049938,46.497033],[29.146263,46.526902],[29.186209,46.523956],[29.200833,46.504965],[29.204554,46.379366],[29.223881,46.376963],[29.254576,46.392621],[29.304858,46.466621],[29.339533,46.445072],[29.392863,46.436907],[29.432808,46.455976],[29.458802,46.453754],[29.491048,46.434685],[29.555075,46.407762],[29.614968,46.398822],[29.664577,46.416754],[29.706797,46.448741],[29.752014,46.437786],[29.8379,46.350556],[29.878053,46.36022],[30.075715,46.377841],[30.107496,46.401587],[30.131009,46.423084],[29.924303,46.538865],[29.934742,46.62501],[29.942493,46.723763],[29.918102,46.782416],[29.877846,46.828925],[29.719768,46.882927],[29.59776,46.938841],[29.571973,46.964007],[29.568666,46.996718],[29.563498,47.047516],[29.515026,47.091105],[29.510995,47.128028],[29.541794,47.185544],[29.549339,47.246806],[29.539159,47.270991],[29.510633,47.290705],[29.455701,47.292643],[29.383406,47.328042],[29.333745,47.375713],[29.200575,47.444495],[29.159802,47.455657],[29.134894,47.489686],[29.122957,47.530381],[29.150914,47.580869],[29.186054,47.65859],[29.210755,47.731557],[29.211168,47.775017],[29.194838,47.882401],[29.125385,47.96454],[29.092933,47.975418],[29.036967,47.952345],[28.973353,47.932992],[28.923175,47.95113],[28.865815,47.995675],[28.773779,48.11957],[28.601696,48.1444],[28.530486,48.150317],[28.463049,48.090502],[28.442016,48.108692],[28.423051,48.146881],[28.387549,48.162125],[28.340524,48.144452],[28.326984,48.161428],[28.347138,48.213052],[28.291018,48.238555],[28.158829,48.237986],[28.088498,48.257055],[28.080126,48.295812],[28.038423,48.321289],[27.963389,48.333562],[27.890629,48.365214],[27.820039,48.41627],[27.714412,48.449498],[27.573749,48.464897],[27.562225,48.470401],[27.549254,48.477713],[27.458459,48.44309],[27.403785,48.41565],[27.336967,48.432703],[27.228499,48.371415],[27.008512,48.368262],[26.90056,48.371931],[26.847075,48.38715],[26.640472,48.294158],[26.618975,48.259845],[26.572415,48.248476],[26.442345,48.229976],[26.305609,48.203776],[26.276929,48.113239],[26.236259,48.064353],[26.162672,47.992523],[25.908682,47.967563],[25.689316,47.932475],[25.464317,47.910771],[25.169658,47.823076],[25.07385,47.745716],[24.979127,47.724142],[24.893344,47.71776],[24.837895,47.760858],[24.65093,47.87651],[24.578893,47.93108],[24.484067,47.9471],[24.380972,47.93803],[24.28196,47.911184],[24.177729,47.906068],[24.059751,47.944774],[24.047349,47.941028],[24.001822,47.935782],[23.709023,47.982601],[23.681997,47.990379],[23.669078,47.992316],[23.628667,47.99583],[23.408163,47.989991],[23.202646,48.084507],[23.139498,48.087401],[23.090767,48.049135],[23.0548,48.006553],[22.912845,47.964282],[22.87662,47.947255],[22.856104,47.960303],[22.846492,47.997045],[22.857241,48.029549],[22.836209,48.060297],[22.782207,48.095204],[22.769184,48.109622],[22.70154,48.107012],[22.683143,48.103627],[22.676322,48.104403],[22.582426,48.134013],[22.520155,48.205378],[22.423831,48.243309],[22.350192,48.256047],[22.316705,48.28664],[22.295105,48.327283],[22.27216,48.358005],[22.269473,48.360899],[22.253763,48.407381],[22.231129,48.412136],[22.227098,48.413428],[22.131859,48.405314],[22.142866,48.568509],[22.295208,48.685814],[22.33257,48.745087],[22.389466,48.873477],[22.432047,48.933551],[22.483207,48.983264],[22.524135,49.031374],[22.538656,49.072716],[22.579945,49.077186],[22.701281,49.039953],[22.809802,49.020729],[22.839774,49.038893],[22.852073,49.062742],[22.847061,49.081268],[22.760192,49.136226],[22.705622,49.171211],[22.702315,49.192708],[22.721952,49.240948],[22.732442,49.295183],[22.719885,49.35381],[22.660612,49.483672],[22.64945,49.539018],[22.706139,49.606223],[22.890727,49.766265],[22.952222,49.826365],[23.0363,49.899073],[23.264503,50.072861],[23.408628,50.173914],[23.506193,50.229854],[23.648975,50.327032],[23.711762,50.377339],[23.972625,50.41005],[24.004974,50.457024],[24.05262,50.508442],[24.08993,50.530456],[24.094736,50.61704],[24.046316,50.722796],[24.0073,50.760132],[23.978413,50.785583],[23.99712,50.809354],[24.025955,50.816149],[24.061612,50.819534],[24.105743,50.844985],[24.095822,50.872761],[23.985699,50.940431],[23.938105,50.992547],[23.863433,51.126234],[23.712176,51.265114],[23.664427,51.310047],[23.657657,51.352499],[23.679723,51.394899],[23.658846,51.448953],[23.605257,51.517915],[23.613784,51.525382],[23.608564,51.610493],[23.646702,51.628864],[23.706801,51.641318],[23.791706,51.637133],[23.864311,51.623981],[23.951179,51.585069],[23.978309,51.591322],[24.126827,51.664625],[24.280048,51.774721],[24.323766,51.838438],[24.361904,51.867532],[24.495177,51.883035],[24.611294,51.88952],[24.68514,51.888306],[24.866369,51.899106],[24.973804,51.911147],[25.066718,51.9305],[25.267223,51.93776],[25.580279,51.924738],[25.785796,51.923808],[25.925271,51.913524],[26.267059,51.855026],[26.394389,51.844433],[26.453404,51.813427],[26.566885,51.801903],[26.773488,51.77069],[26.952805,51.753999],[27.074141,51.76082],[27.141992,51.752035],[27.27015,51.613568],[27.29635,51.597394],[27.347613,51.594138],[27.452309,51.606101],[27.601344,51.601605],[27.689711,51.572434],[27.676792,51.489932],[27.700046,51.477995],[27.741284,51.482568],[27.788878,51.529155],[27.828824,51.577421],[27.858538,51.592407],[28.010776,51.559747],[28.080281,51.565018],[28.144412,51.601657],[28.183737,51.607858],[28.291638,51.581839],[28.42455,51.563623],[28.532088,51.562434],[28.599009,51.542642],[28.64774,51.456524],[28.69027,51.438876],[28.731301,51.433424],[28.793261,51.510345],[28.849537,51.540188],[28.927568,51.562176],[28.977694,51.571788],[29.013144,51.598918],[29.06079,51.625428],[29.102079,51.627521],[29.135617,51.617289],[29.17422,51.580624],[29.230495,51.497012],[29.298811,51.413038],[29.346509,51.382549],[29.469654,51.408335],[29.553163,51.434587],[29.706022,51.439548],[29.9088,51.457996],[30.063778,51.482026],[30.160774,51.477892],[30.21953,51.451201],[30.308982,51.399602],[30.333374,51.32555],[30.449542,51.274338],[30.544524,51.265062],[30.576925,51.318341],[30.632529,51.355419],[30.611703,51.406372],[30.602401,51.471225],[30.56075,51.53148],[30.532948,51.596334],[30.583901,51.68899],[30.639505,51.77007],[30.667307,51.814099],[30.755312,51.895179],[30.845642,51.953082],[30.980673,52.046177],[31.079323,52.076977],[31.168465,52.062921],[31.217971,52.050234],[31.346025,52.105373],[31.573711,52.108086],[31.763364,52.101084],[31.782381,52.099404],[31.875605,52.070879],[31.97379,52.046643],[32.04159,52.045041],[32.122257,52.050596],[32.216773,52.082971],[32.282815,52.114029],[32.363017,52.272133],[32.391336,52.294844],[32.435468,52.307247],[32.507918,52.308539],[32.645429,52.279083],[32.806504,52.252625],[32.899729,52.256346],[33.148447,52.340423],[33.287095,52.353549],[33.45184,52.333808]]]]},"type":"Feature","properties":{"ISO_A2":"UA","NAME":"Ukraine"}},{"geometry":{"type":"Polygon","coordinates":[[[-53.370613,-33.742178],[-53.419576,-33.779178],[-53.472441,-33.849355],[-53.534505,-34.01751],[-53.742916,-34.249537],[-53.78529,-34.380382],[-54.010238,-34.517014],[-54.168574,-34.6707],[-54.272134,-34.666876],[-54.365307,-34.732712],[-54.902302,-34.932803],[-55.095133,-34.895079],[-55.237863,-34.895803],[-55.37062,-34.807643],[-55.673134,-34.775706],[-55.862941,-34.81095],[-56.117913,-34.907895],[-56.194626,-34.9065],[-56.249946,-34.90128],[-56.387845,-34.861076],[-56.463085,-34.775396],[-56.855206,-34.676694],[-57.170691,-34.452315],[-57.543433,-34.448078],[-57.829126,-34.477378],[-57.873258,-34.447664],[-57.902145,-34.390149],[-57.961211,-34.306898],[-58.20701,-34.10908],[-58.400202,-33.9124],[-58.438133,-33.71913],[-58.411313,-33.50891],[-58.353384,-33.260037],[-58.363538,-33.182315],[-58.292173,-33.137977],[-58.221609,-33.12914],[-58.153551,-33.0647],[-58.09265,-32.967341],[-58.082341,-32.893651],[-58.129599,-32.757225],[-58.162181,-32.566539],[-58.201145,-32.471661],[-58.123036,-32.321903],[-58.119754,-32.248936],[-58.16479,-32.184857],[-58.176986,-32.119021],[-58.156367,-32.051532],[-58.160398,-31.986574],[-58.189027,-31.924253],[-58.167503,-31.87268],[-58.095854,-31.831803],[-58.042343,-31.769275],[-58.006996,-31.684939],[-57.988884,-31.620602],[-57.987979,-31.576212],[-58.009658,-31.534354],[-58.053841,-31.494873],[-58.033429,-31.416583],[-57.94837,-31.299433],[-57.893334,-31.195357],[-57.868426,-31.104406],[-57.87008,-31.031025],[-57.898295,-30.975215],[-57.886306,-30.937388],[-57.834087,-30.917441],[-57.8106,-30.858633],[-57.818558,-30.711975],[-57.872509,-30.591052],[-57.831219,-30.495244],[-57.712725,-30.38445],[-57.650894,-30.294998],[-57.645752,-30.226992],[-57.608907,-30.187821],[-57.552295,-30.261202],[-57.383856,-30.280684],[-57.214461,-30.283371],[-57.186943,-30.264871],[-57.120513,-30.144465],[-57.032715,-30.109945],[-56.937243,-30.101056],[-56.832727,-30.107206],[-56.7217,-30.186943],[-56.407249,-30.447495],[-56.176178,-30.628414],[-56.105846,-30.713732],[-56.044816,-30.777604],[-55.998979,-30.837187],[-56.018436,-30.991855],[-56.015516,-31.059654],[-56.004716,-31.07924],[-55.952006,-31.080842],[-55.873664,-31.069628],[-55.807777,-31.03671],[-55.756359,-30.987101],[-55.705948,-30.946586],[-55.665227,-30.924882],[-55.650474,-30.892068],[-55.627142,-30.858116],[-55.603009,-30.850778],[-55.557353,-30.875945],[-55.449556,-30.964415],[-55.366072,-31.046218],[-55.345531,-31.092986],[-55.313285,-31.141665],[-55.278972,-31.184143],[-55.254632,-31.225639],[-55.173552,-31.279589],[-55.091154,-31.314006],[-55.036041,-31.278969],[-54.895998,-31.39121],[-54.587644,-31.485158],[-54.530904,-31.542002],[-54.477703,-31.622772],[-54.369932,-31.745039],[-54.220561,-31.855161],[-54.100439,-31.901515],[-53.985149,-31.928128],[-53.920605,-31.952313],[-53.876525,-31.994584],[-53.80609,-32.039904],[-53.7617,-32.056803],[-53.746585,-32.09742],[-53.701135,-32.186304],[-53.653593,-32.2987],[-53.60171,-32.403035],[-53.489417,-32.503184],[-53.362758,-32.581112],[-53.231241,-32.625398],[-53.157292,-32.680124],[-53.125563,-32.736709],[-53.214085,-32.821045],[-53.3101,-32.927034],[-53.395237,-33.010388],[-53.482854,-33.068524],[-53.51187,-33.108728],[-53.531352,-33.170947],[-53.530396,-33.500332],[-53.537631,-33.622857],[-53.531326,-33.655465],[-53.518847,-33.677221],[-53.463553,-33.70988],[-53.397536,-33.73732],[-53.370613,-33.742178]]]},"type":"Feature","properties":{"ISO_A2":"UY","NAME":"Uruguay"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.581325,19.012018],[-155.625612,18.963907],[-155.68075,18.96768],[-155.881307,19.070516],[-155.905594,19.12581],[-155.890737,19.382538],[-155.965823,19.590794],[-156.048686,19.749958],[-155.988406,19.831606],[-155.908876,19.894703],[-155.820302,20.014179],[-155.892753,20.1674],[-155.874279,20.259797],[-155.83162,20.275817],[-155.622072,20.163421],[-155.19879,19.994387],[-155.086084,19.875635],[-155.06593,19.748201],[-154.989035,19.731974],[-154.952578,19.644641],[-154.841344,19.56816],[-154.804189,19.524442],[-154.850284,19.45411],[-155.053476,19.319183],[-155.30961,19.260168],[-155.535229,19.109066],[-155.581325,19.012018]]],[[[-156.849594,20.772634],[-156.908867,20.744471],[-156.97341,20.757545],[-156.988448,20.825706],[-157.050563,20.912471],[-156.941784,20.930041],[-156.880548,20.904822],[-156.848276,20.877796],[-156.809389,20.831132],[-156.849594,20.772634]]],[[[-156.486825,20.932573],[-156.460832,20.914744],[-156.354404,20.941461],[-156.277536,20.95128],[-156.148344,20.885496],[-156.103515,20.84033],[-156.018637,20.792065],[-155.989853,20.757131],[-156.013572,20.714808],[-156.107133,20.644787],[-156.234747,20.628612],[-156.309963,20.598795],[-156.408794,20.605177],[-156.438223,20.617863],[-156.448869,20.70623],[-156.480056,20.801237],[-156.543824,20.789997],[-156.615448,20.82183],[-156.689681,20.901412],[-156.697768,20.949058],[-156.656866,21.024505],[-156.585424,21.034324],[-156.5323,20.992672],[-156.486825,20.932573]]],[[[-157.213602,21.215398],[-157.002298,21.187958],[-156.952352,21.199688],[-156.917212,21.177312],[-156.74221,21.163515],[-156.71216,21.155091],[-156.747894,21.10357],[-156.859851,21.056338],[-157.020875,21.097782],[-157.290316,21.112588],[-157.27949,21.152353],[-157.253807,21.180568],[-157.249931,21.229764],[-157.213602,21.215398]]],[[[-157.799355,21.456649],[-157.76499,21.450939],[-157.720884,21.457709],[-157.705536,21.378075],[-157.65417,21.333918],[-157.635411,21.30764],[-157.690886,21.279735],[-157.798786,21.268625],[-157.849326,21.290845],[-157.901752,21.340558],[-157.958441,21.326916],[-157.968311,21.366913],[-157.97844,21.378489],[-158.017274,21.36774],[-157.980972,21.316115],[-158.079157,21.312239],[-158.110344,21.318596],[-158.137835,21.377145],[-158.239095,21.489335],[-158.238682,21.533053],[-158.273124,21.585246],[-158.123108,21.600258],[-158.020349,21.691803],[-157.962497,21.701363],[-157.851496,21.553362],[-157.854339,21.511917],[-157.829586,21.471455],[-157.799355,21.456649]]],[[[-160.180011,21.84107],[-160.200242,21.796887],[-160.23471,21.803682],[-160.243443,21.84306],[-160.220912,21.897268],[-160.163862,21.944036],[-160.100636,22.015246],[-160.048727,22.004652],[-160.076709,21.958092],[-160.080042,21.907449],[-160.153397,21.878768],[-160.180011,21.84107]]],[[[-159.372773,21.932357],[-159.460675,21.876133],[-159.51186,21.900369],[-159.608857,21.909516],[-159.646374,21.951735],[-159.748021,21.989821],[-159.789182,22.041807],[-159.726627,22.140199],[-159.57922,22.22314],[-159.352051,22.219574],[-159.304793,22.154049],[-159.300659,22.105266],[-159.330192,22.050696],[-159.343731,21.973646],[-159.372773,21.932357]]],[[[-81.78384,24.544574],[-81.809213,24.542352],[-81.811409,24.557804],[-81.767691,24.576717],[-81.738649,24.575425],[-81.73976,24.554496],[-81.78384,24.544574]]],[[[-81.566695,24.599894],[-81.631498,24.590024],[-81.579253,24.629376],[-81.562303,24.689139],[-81.531633,24.642475],[-81.532227,24.614157],[-81.566695,24.599894]]],[[[-81.334797,24.650485],[-81.364795,24.629944],[-81.379032,24.636274],[-81.379032,24.666272],[-81.421665,24.732599],[-81.420089,24.749988],[-81.322317,24.685083],[-81.319837,24.667616],[-81.334797,24.650485]]],[[[-81.044195,24.716812],[-81.090006,24.693118],[-81.137368,24.710508],[-81.085252,24.734201],[-80.930481,24.759471],[-80.988927,24.727871],[-81.044195,24.716812]]],[[[-80.829402,24.80368],[-80.848367,24.80368],[-80.838884,24.817891],[-80.799404,24.846313],[-80.785193,24.83528],[-80.786769,24.821043],[-80.829402,24.80368]]],[[[-80.638302,24.903183],[-80.665148,24.898455],[-80.625667,24.941088],[-80.614609,24.937935],[-80.638302,24.903183]]],[[[-80.381832,25.14229],[-80.58058,24.954239],[-80.558566,25.001317],[-80.481051,25.101956],[-80.456014,25.149318],[-80.403666,25.179342],[-80.354935,25.233654],[-80.351291,25.296958],[-80.280495,25.341244],[-80.257059,25.3476],[-80.381832,25.14229]]],[[[-82.037183,26.453631],[-82.07284,26.427534],[-82.144955,26.446655],[-82.184384,26.480942],[-82.201385,26.548044],[-82.138598,26.476989],[-82.116067,26.460917],[-82.037183,26.453631]]],[[[-82.08377,26.552333],[-82.085217,26.493603],[-82.135601,26.591969],[-82.169139,26.700722],[-82.121132,26.66553],[-82.08377,26.552333]]],[[[-97.170704,26.159385],[-97.184502,26.112928],[-97.267313,26.329763],[-97.402085,26.820508],[-97.407175,27.100207],[-97.385988,27.196506],[-97.351236,26.801465],[-97.202227,26.29979],[-97.170704,26.159385]]],[[[-97.353613,27.300065],[-97.384825,27.242524],[-97.376221,27.328255],[-97.295038,27.523075],[-97.130009,27.779132],[-97.060556,27.822023],[-97.250906,27.541187],[-97.353613,27.300065]]],[[[-80.186754,27.278439],[-80.170501,27.2048],[-80.26246,27.375564],[-80.37607,27.643429],[-80.436893,27.850548],[-80.395759,27.794557],[-80.355503,27.678621],[-80.186754,27.278439]]],[[[-97.014357,27.901631],[-97.036009,27.899176],[-96.98764,27.981031],[-96.978674,28.013846],[-96.899299,28.117457],[-96.857416,28.132908],[-96.839768,28.088803],[-96.921339,28.016042],[-97.014357,27.901631]]],[[[-96.764398,28.152571],[-96.801114,28.148411],[-96.755613,28.202439],[-96.681638,28.229698],[-96.519323,28.333465],[-96.453125,28.340596],[-96.418631,28.37633],[-96.403567,28.381575],[-96.413334,28.337805],[-96.543895,28.275587],[-96.764398,28.152571]]],[[[-95.039697,29.145922],[-95.089668,29.13631],[-94.871671,29.29015],[-94.825989,29.34131],[-94.767621,29.339036],[-94.864953,29.252892],[-95.039697,29.145922]]],[[[-91.793694,29.500732],[-91.830849,29.486469],[-91.99624,29.573105],[-92.006652,29.610286],[-91.925029,29.643927],[-91.875239,29.640982],[-91.79651,29.596953],[-91.767675,29.584706],[-91.754316,29.566878],[-91.761887,29.538998],[-91.793694,29.500732]]],[[[-84.907887,29.642635],[-85.008268,29.606617],[-85.116737,29.632791],[-85.049325,29.637778],[-85.000543,29.627184],[-84.876984,29.67868],[-84.812182,29.717644],[-84.737174,29.732449],[-84.907887,29.642635]]],[[[-88.889297,29.712579],[-88.943584,29.660231],[-88.941103,29.680204],[-88.901157,29.73263],[-88.872658,29.75299],[-88.889297,29.712579]]],[[[-88.827467,29.80769],[-88.855656,29.775857],[-88.827983,29.928354],[-88.86687,30.056719],[-88.82589,30.000366],[-88.812584,29.933367],[-88.827467,29.80769]]],[[[-89.223954,30.084055],[-89.22044,30.037598],[-89.269455,30.060724],[-89.342009,30.062842],[-89.310047,30.078707],[-89.287645,30.094184],[-89.276483,30.110824],[-89.18468,30.168676],[-89.210673,30.126223],[-89.223954,30.084055]]],[[[-88.558103,30.215908],[-88.570661,30.204797],[-88.659234,30.225597],[-88.713107,30.244924],[-88.722848,30.264251],[-88.573994,30.229163],[-88.558103,30.215908]]],[[[-88.071337,30.25234],[-88.159316,30.23092],[-88.289722,30.232935],[-88.316257,30.240454],[-88.263935,30.254717],[-88.109371,30.273734],[-88.071337,30.25234]]],[[[-81.418978,30.971443],[-81.463497,30.727763],[-81.482721,30.814088],[-81.484633,30.89783],[-81.45094,30.947414],[-81.418978,30.971443]]],[[[-118.350393,32.827609],[-118.408581,32.818514],[-118.473202,32.838926],[-118.528909,32.935613],[-118.590172,33.011164],[-118.557099,33.032661],[-118.50749,32.959901],[-118.383182,32.849468],[-118.350393,32.827609]]],[[[-119.438027,33.217198],[-119.482495,33.215337],[-119.54368,33.224613],[-119.575176,33.278331],[-119.525128,33.282051],[-119.4788,33.274636],[-119.442058,33.232442],[-119.438027,33.217198]]],[[[-118.347964,33.385766],[-118.297477,33.312127],[-118.370237,33.321222],[-118.446305,33.317088],[-118.469352,33.357137],[-118.492038,33.412819],[-118.507335,33.427004],[-118.559424,33.431965],[-118.563326,33.437081],[-118.569424,33.464185],[-118.554851,33.477078],[-118.391709,33.415092],[-118.347964,33.385766]]],[[[-120.043572,33.91886],[-120.113903,33.904856],[-120.16713,33.918085],[-120.251905,34.013841],[-120.071839,34.026502],[-119.994401,33.984928],[-119.983937,33.973327],[-120.043572,33.91886]]],[[[-120.306605,34.024874],[-120.359702,34.022265],[-120.441558,34.032936],[-120.412929,34.056319],[-120.367738,34.073295],[-120.35332,34.060583],[-120.306605,34.024874]]],[[[-119.882393,34.079677],[-119.678865,34.028466],[-119.56913,34.052961],[-119.549286,34.028156],[-119.562206,34.006607],[-119.809581,33.967798],[-119.885519,33.994928],[-119.892418,34.032161],[-119.918049,34.067843],[-119.882393,34.079677]]],[[[-76.546227,34.654862],[-76.568499,34.652562],[-76.607799,34.663569],[-76.661956,34.684653],[-76.673919,34.700156],[-76.622268,34.694549],[-76.546227,34.654862]]],[[[-76.503645,34.64295],[-76.528579,34.631504],[-76.437034,34.756328],[-76.256218,34.914717],[-76.207384,34.938901],[-76.357711,34.803664],[-76.503645,34.64295]]],[[[-75.781958,35.190204],[-75.963678,35.118839],[-75.984194,35.123076],[-75.864924,35.174132],[-75.781958,35.190204]]],[[[-75.544117,35.240097],[-75.678269,35.212838],[-75.690103,35.221571],[-75.536366,35.278622],[-75.487893,35.479514],[-75.481279,35.572118],[-75.504326,35.73539],[-75.503525,35.769161],[-75.478488,35.716477],[-75.456474,35.56416],[-75.464742,35.448638],[-75.509339,35.280327],[-75.544117,35.240097]]],[[[-75.635688,35.8559],[-75.650777,35.835591],[-75.717182,35.946127],[-75.648865,35.910392],[-75.63667,35.880653],[-75.635688,35.8559]]],[[[-75.333045,37.888282],[-75.378546,37.872056],[-75.225997,38.072302],[-75.137398,38.240095],[-75.097891,38.298076],[-75.136235,38.180538],[-75.203208,38.072405],[-75.333045,37.888282]]],[[[-74.133221,39.680782],[-74.250501,39.52937],[-74.253162,39.55849],[-74.106763,39.746437],[-74.133221,39.680782]]],[[[-74.188128,40.52285],[-74.235877,40.518716],[-74.188153,40.614601],[-74.100484,40.658449],[-74.068755,40.649302],[-74.067411,40.615454],[-74.07971,40.586464],[-74.138518,40.541841],[-74.188128,40.52285]]],[[[-72.50978,40.986026],[-72.580887,40.921327],[-72.516576,40.914816],[-72.461334,40.933781],[-72.409011,40.972151],[-72.287443,41.024085],[-72.183857,41.046797],[-72.151249,41.051474],[-72.101898,41.015016],[-72.003946,41.044265],[-71.903202,41.060698],[-72.33899,40.894145],[-72.42808,40.875386],[-72.55554,40.825777],[-72.676101,40.790637],[-72.76284,40.777847],[-73.194286,40.654211],[-73.228522,40.651524],[-73.265522,40.663565],[-73.620901,40.599899],[-73.766732,40.592716],[-73.899566,40.570521],[-73.80133,40.621784],[-73.799185,40.640982],[-73.822672,40.655968],[-73.875175,40.651628],[-73.928996,40.598814],[-74.014908,40.581218],[-74.032039,40.638683],[-74.003359,40.68315],[-73.964575,40.725344],[-73.879258,40.791671],[-73.757198,40.833684],[-73.695212,40.870038],[-73.652243,40.838024],[-73.642838,40.881226],[-73.609765,40.906186],[-73.573798,40.919621],[-73.487395,40.919957],[-73.440861,40.926779],[-73.407245,40.941093],[-73.372699,40.943806],[-73.278157,40.924195],[-73.185837,40.929853],[-73.111294,40.95688],[-73.033779,40.965975],[-72.828779,40.972047],[-72.625122,40.991839],[-72.54368,41.027005],[-72.37258,41.125552],[-72.274136,41.153044],[-72.427382,41.038529],[-72.50978,40.986026]]],[[[-69.977945,41.265595],[-70.055098,41.249472],[-70.233072,41.286343],[-70.086621,41.317556],[-70.062695,41.328485],[-70.0436,41.374426],[-70.041197,41.397473],[-69.985593,41.298616],[-69.977945,41.265595]]],[[[-70.509903,41.376338],[-70.785312,41.327452],[-70.829185,41.359],[-70.760482,41.373599],[-70.673717,41.44853],[-70.615994,41.457211],[-70.525354,41.414785],[-70.509903,41.376338]]],[[[-71.365354,41.485272],[-71.393079,41.466746],[-71.403388,41.515037],[-71.383984,41.570538],[-71.364321,41.571804],[-71.354476,41.542297],[-71.365354,41.485272]]],[[[-71.241382,41.491964],[-71.29094,41.464601],[-71.346234,41.469407],[-71.318148,41.506304],[-71.307477,41.560487],[-71.280191,41.620044],[-71.264482,41.638234],[-71.232055,41.654305],[-71.241382,41.491964]]],[[[-68.623196,44.196062],[-68.661178,44.17627],[-68.701718,44.182678],[-68.703036,44.232003],[-68.690789,44.248721],[-68.676733,44.256214],[-68.655959,44.242313],[-68.623196,44.196062]]],[[[-68.187254,44.332488],[-68.245441,44.313006],[-68.309262,44.321507],[-68.30797,44.268694],[-68.315101,44.249702],[-68.385794,44.276858],[-68.41171,44.294351],[-68.409488,44.364269],[-68.347037,44.430363],[-68.299443,44.456512],[-68.238052,44.438399],[-68.190897,44.364372],[-68.187254,44.332488]]],[[[-122.85309,47.204716],[-122.862624,47.185079],[-122.876732,47.186112],[-122.90797,47.22611],[-122.911898,47.254325],[-122.885104,47.274712],[-122.849188,47.216291],[-122.85309,47.204716]]],[[[-122.394126,47.395247],[-122.398725,47.372509],[-122.437121,47.35481],[-122.456964,47.359332],[-122.458205,47.386152],[-122.46854,47.390234],[-122.509933,47.357988],[-122.506832,47.421679],[-122.486472,47.488781],[-122.468591,47.48997],[-122.442081,47.446148],[-122.394126,47.395247]]],[[[-122.497272,47.594589],[-122.502646,47.575443],[-122.557837,47.598309],[-122.575923,47.619471],[-122.573753,47.666858],[-122.56011,47.697761],[-122.549775,47.703962],[-122.517219,47.690578],[-122.507866,47.682645],[-122.497272,47.594589]]],[[[-122.572771,48.156647],[-122.523834,48.025441],[-122.502853,48.080063],[-122.366737,47.985443],[-122.366582,47.938831],[-122.383144,47.923199],[-122.411437,47.917747],[-122.437586,47.931338],[-122.461615,47.963998],[-122.492259,47.981309],[-122.557527,47.992471],[-122.591349,48.029627],[-122.603183,48.055052],[-122.606309,48.128587],[-122.622665,48.151428],[-122.657262,48.156492],[-122.690387,48.173856],[-122.741521,48.225274],[-122.748704,48.23902],[-122.724519,48.280929],[-122.668993,48.351003],[-122.628633,48.38423],[-122.603519,48.380613],[-122.572461,48.359581],[-122.535564,48.321211],[-122.542437,48.294003],[-122.692144,48.241087],[-122.697001,48.228684],[-122.624396,48.21375],[-122.597628,48.200417],[-122.572771,48.156647]]],[[[-122.820921,48.431359],[-122.836579,48.421541],[-122.890039,48.434667],[-122.921613,48.456939],[-122.932284,48.484741],[-122.912234,48.537968],[-122.885517,48.55161],[-122.868903,48.548613],[-122.861901,48.501846],[-122.814617,48.45234],[-122.820921,48.431359]]],[[[-123.013132,48.500864],[-122.986751,48.467998],[-123.094445,48.489082],[-123.13992,48.507944],[-123.153433,48.526341],[-123.169582,48.586699],[-123.162141,48.606387],[-123.114185,48.61326],[-123.024165,48.538485],[-123.013132,48.500864]]],[[[-122.782138,48.672688],[-122.768832,48.650984],[-122.808958,48.629849],[-122.837613,48.626541],[-122.883088,48.660648],[-122.903035,48.664678],[-122.887016,48.61233],[-122.892545,48.594502],[-122.985666,48.626696],[-123.002848,48.652199],[-122.976674,48.679148],[-122.918021,48.707001],[-122.897713,48.71036],[-122.782138,48.672688]]],[[[-94.803458,49.002952],[-94.712766,48.863426],[-94.71256,48.863013],[-94.705092,48.80852],[-94.675353,48.774439],[-94.620886,48.742607],[-94.414154,48.704108],[-94.055184,48.65902],[-93.85163,48.607292],[-93.803545,48.548949],[-93.707737,48.525462],[-93.564283,48.536908],[-93.463618,48.561274],[-93.377887,48.616542],[-93.257946,48.628867],[-93.155213,48.625353],[-93.051705,48.619875],[-92.996256,48.611813],[-92.836731,48.567785],[-92.732655,48.531818],[-92.583258,48.465104],[-92.500576,48.435338],[-92.460888,48.365885],[-92.414586,48.276588],[-92.34844,48.276588],[-92.298676,48.328885],[-92.171784,48.338393],[-92.005154,48.301832],[-91.858393,48.197575],[-91.647294,48.104609],[-91.51831,48.058307],[-91.387233,48.05854],[-91.220654,48.104609],[-91.043481,48.193699],[-90.916047,48.209151],[-90.840315,48.200521],[-90.797321,48.131068],[-90.744404,48.104609],[-90.6071,48.112593],[-90.32014,48.099183],[-90.091782,48.118097],[-90.039951,48.078151],[-89.993649,48.015312],[-89.901044,47.995469],[-89.775367,48.015312],[-89.550575,47.999913],[-89.455645,47.996218],[-89.273176,48.019963],[-89.185636,48.047429],[-89.062594,48.093809],[-88.898703,48.155717],[-88.611769,48.264005],[-88.378192,48.303098],[-88.16066,48.225403],[-87.987466,48.156906],[-87.920494,48.130396],[-87.743889,48.060529],[-87.49424,47.96175],[-87.208031,47.848501],[-86.921821,47.735226],[-86.672172,47.636421],[-86.495568,47.56658],[-86.428569,47.54007],[-86.234498,47.460049],[-86.040402,47.380028],[-85.846331,47.300007],[-85.65226,47.219986],[-85.458189,47.139965],[-85.264118,47.059944],[-85.070047,46.979923],[-84.875977,46.899902],[-84.827065,46.766861],[-84.779419,46.637283],[-84.665783,46.543258],[-84.561758,46.457371],[-84.501581,46.461867],[-84.440499,46.498144],[-84.401716,46.515611],[-84.336707,46.518505],[-84.192168,46.549562],[-84.149483,46.542767],[-84.125221,46.527238],[-84.12318,46.50295],[-84.128141,46.483597],[-84.150465,46.444788],[-84.11517,46.370813],[-84.107781,46.288622],[-84.088402,46.226533],[-84.029207,46.147003],[-83.977788,46.084913],[-83.913038,46.072899],[-83.763202,46.109072],[-83.669306,46.122741],[-83.61595,46.116824],[-83.524767,46.058713],[-83.480144,46.023754],[-83.469473,45.994686],[-83.592696,45.817152],[-83.397307,45.729044],[-83.179284,45.63277],[-82.919352,45.517971],[-82.760421,45.447717],[-82.55108,45.347362],[-82.515242,45.204373],[-82.485063,45.08376],[-82.44659,44.915502],[-82.407393,44.743936],[-82.368274,44.57299],[-82.326804,44.391554],[-82.281225,44.192238],[-82.240789,44.01535],[-82.196605,43.822209],[-82.137849,43.570881],[-82.190378,43.474091],[-82.304764,43.263225],[-82.408194,43.072643],[-82.417238,43.017375],[-82.488344,42.73951],[-82.545318,42.624685],[-82.645131,42.558049],[-82.744195,42.493479],[-82.867753,42.385217],[-83.003688,42.331732],[-83.073141,42.300312],[-83.109521,42.250703],[-83.149674,42.141924],[-83.141948,41.975862],[-83.029965,41.832977],[-82.866203,41.753007],[-82.690012,41.675183],[-82.439071,41.674873],[-82.213323,41.77869],[-81.97419,41.888735],[-81.760921,41.986817],[-81.507345,42.103477],[-81.277643,42.209181],[-81.028201,42.247163],[-80.682641,42.29977],[-80.247577,42.365993],[-80.035729,42.441467],[-79.762025,42.53898],[-79.44623,42.651454],[-79.173741,42.748528],[-79.036695,42.802323],[-78.939233,42.863741],[-78.915074,42.909138],[-78.920862,42.935209],[-78.946003,42.961306],[-78.980755,42.980607],[-79.011683,42.99704],[-79.026179,43.017323],[-79.029072,43.061765],[-79.048012,43.087293],[-79.066047,43.106103],[-79.059226,43.278056],[-79.083048,43.331412],[-79.171854,43.466572],[-79.002485,43.527163],[-78.845569,43.583335],[-78.720435,43.624934],[-78.458255,43.631497],[-78.214781,43.63067],[-77.879246,43.629559],[-77.596524,43.628603],[-77.266725,43.627492],[-77.073352,43.626846],[-76.819957,43.628784],[-76.696502,43.784795],[-76.586121,43.924296],[-76.464604,44.057595],[-76.248544,44.214123],[-76.185783,44.242235],[-76.15116,44.303937],[-76.020238,44.362615],[-75.875932,44.416979],[-75.81932,44.46801],[-75.791957,44.497052],[-75.401258,44.77228],[-75.179385,44.899379],[-74.99614,44.970124],[-74.85664,45.00392],[-74.762459,44.999062],[-74.708871,45.003868],[-74.663241,45.00392],[-74.430387,45.004178],[-74.014262,45.004695],[-73.598138,45.00516],[-73.182013,45.005625],[-72.765889,45.006116],[-72.349764,45.006607],[-71.93364,45.007072],[-71.517515,45.007563],[-71.41902,45.200342],[-71.327294,45.290104],[-71.201617,45.260338],[-71.134645,45.262819],[-71.060231,45.309121],[-70.999873,45.337233],[-70.960185,45.333099],[-70.926234,45.290698],[-70.897993,45.262457],[-70.865049,45.2707],[-70.836833,45.310697],[-70.837815,45.366172],[-70.799187,45.404774],[-70.753299,45.410691],[-70.71095,45.409477],[-70.689788,45.428339],[-70.692139,45.455365],[-70.70741,45.498929],[-70.702216,45.55138],[-70.596383,45.643984],[-70.466572,45.706823],[-70.421097,45.738242],[-70.407867,45.801907],[-70.333453,45.868053],[-70.296246,45.906087],[-70.287151,45.93916],[-70.306427,45.979829],[-70.304515,46.057396],[-70.278883,46.15],[-70.248291,46.250872],[-70.179664,46.341823],[-70.067216,46.441042],[-70.038226,46.571421],[-70.007685,46.708932],[-69.871724,46.842929],[-69.717522,46.994858],[-69.629775,47.081364],[-69.47149,47.238667],[-69.358887,47.35065],[-69.302147,47.401991],[-69.242874,47.462995],[-69.146291,47.444753],[-69.050224,47.426614],[-69.06428,47.338144],[-69.048571,47.273652],[-69.003095,47.236445],[-68.937182,47.211253],[-68.887418,47.20283],[-68.828713,47.203321],[-68.668542,47.253447],[-68.480388,47.285796],[-68.376906,47.316156],[-68.358018,47.344526],[-68.310889,47.354474],[-68.235494,47.345948],[-68.096794,47.274841],[-67.93484,47.167612],[-67.806786,47.082811],[-67.802858,46.93574],[-67.800352,46.779858],[-67.797691,46.61563],[-67.79583,46.498402],[-67.792523,46.337379],[-67.789913,46.209324],[-67.786477,46.042151],[-67.784643,45.952803],[-67.767047,45.92699],[-67.777615,45.891799],[-67.782291,45.874177],[-67.781129,45.860147],[-67.774101,45.842525],[-67.775263,45.817875],[-67.791696,45.795577],[-67.799913,45.769765],[-67.802238,45.727519],[-67.784643,45.701707],[-67.755316,45.686462],[-67.730666,45.686462],[-67.698989,45.671192],[-67.657932,45.644191],[-67.595739,45.62073],[-67.531195,45.612539],[-67.486625,45.618404],[-67.432648,45.603108],[-67.413864,45.565591],[-67.424432,45.530399],[-67.454921,45.513966],[-67.487787,45.501047],[-67.493653,45.474072],[-67.477219,45.445909],[-67.453758,45.421259],[-67.427946,45.377954],[-67.438514,45.340385],[-67.461975,45.308708],[-67.472543,45.275893],[-67.452596,45.247678],[-67.399782,45.210161],[-67.366942,45.17378],[-67.315291,45.153833],[-67.290667,45.167915],[-67.27072,45.1867],[-67.249585,45.200781],[-67.21323,45.192539],[-67.170985,45.181997],[-67.124838,45.16944],[-67.130367,45.139002],[-67.102255,45.087739],[-67.080448,44.989166],[-67.113934,44.944389],[-67.106725,44.885038],[-67.014018,44.867753],[-66.991461,44.849614],[-66.987017,44.827703],[-67.191242,44.675568],[-67.364074,44.696859],[-67.457789,44.656525],[-67.556,44.644769],[-67.599072,44.576788],[-67.652997,44.562397],[-67.726791,44.566479],[-67.790482,44.585677],[-67.839058,44.576246],[-67.907012,44.453618],[-67.962694,44.464315],[-67.984889,44.420183],[-68.013983,44.400882],[-68.056616,44.38432],[-68.093719,44.438838],[-68.117284,44.490644],[-68.152036,44.502013],[-68.198261,44.515242],[-68.245751,44.514777],[-68.277429,44.507361],[-68.316755,44.473875],[-68.373754,44.445143],[-68.416852,44.469069],[-68.450597,44.507594],[-68.479458,44.445659],[-68.521419,44.380237],[-68.514469,44.303911],[-68.53253,44.258642],[-68.572346,44.270838],[-68.612034,44.310526],[-68.723293,44.342307],[-68.811918,44.339361],[-68.793883,44.381736],[-68.710116,44.442559],[-68.735876,44.454496],[-68.777011,44.446047],[-68.794943,44.454496],[-68.765513,44.50979],[-68.762722,44.570768],[-68.800214,44.5494],[-68.847368,44.485037],[-68.96147,44.433851],[-68.956173,44.348094],[-69.063557,44.172343],[-69.068363,44.097567],[-69.137247,44.037829],[-69.226053,43.986463],[-69.344547,44.000932],[-69.434955,43.95631],[-69.48087,43.905072],[-69.520738,43.897373],[-69.541538,43.962614],[-69.556705,43.982768],[-69.589985,43.886572],[-69.623936,43.880629],[-69.636752,43.948842],[-69.652875,43.993878],[-69.699125,43.955018],[-69.729847,43.852001],[-69.762015,43.860708],[-69.772273,43.899026],[-69.795295,43.910628],[-69.803253,43.866832],[-69.7916,43.805233],[-69.808343,43.772316],[-69.840331,43.789886],[-69.872525,43.819548],[-69.925597,43.797017],[-69.974328,43.78787],[-69.974535,43.818075],[-69.965233,43.855101],[-70.062359,43.834637],[-70.178812,43.766373],[-70.269245,43.671908],[-70.237878,43.656199],[-70.202583,43.626123],[-70.359679,43.48024],[-70.520703,43.348827],[-70.642323,43.134422],[-70.691158,43.109333],[-70.733093,43.070033],[-70.777638,42.940583],[-70.829056,42.825345],[-70.800272,42.77403],[-70.781333,42.721243],[-70.735677,42.669282],[-70.696868,42.66458],[-70.654829,42.673959],[-70.623978,42.671763],[-70.604134,42.649723],[-70.612945,42.623264],[-70.661444,42.61665],[-70.751852,42.570348],[-70.831175,42.552571],[-70.870888,42.496631],[-70.930445,42.431984],[-71.046175,42.331112],[-70.99672,42.299977],[-70.817946,42.264966],[-70.738261,42.22887],[-70.6177,42.040432],[-70.645243,42.02157],[-70.656147,41.98705],[-70.548918,41.938629],[-70.514683,41.803314],[-70.426678,41.757296],[-70.295471,41.728952],[-70.135016,41.769854],[-70.001406,41.826181],[-70.006109,41.872328],[-70.090032,41.979712],[-70.110237,42.030148],[-70.172585,42.062808],[-70.196227,42.035109],[-70.236534,42.071024],[-70.241082,42.09123],[-70.203487,42.101022],[-70.159846,42.097121],[-70.108945,42.07831],[-69.977894,41.961263],[-69.941591,41.807862],[-69.933839,41.710426],[-69.948645,41.677146],[-69.986756,41.683968],[-70.059517,41.677353],[-70.404663,41.626891],[-70.481351,41.582449],[-70.657129,41.534235],[-70.668058,41.558291],[-70.655346,41.608107],[-70.666456,41.710116],[-70.701131,41.714844],[-70.974241,41.548524],[-71.07979,41.538085],[-71.168544,41.489406],[-71.188414,41.516407],[-71.204279,41.641128],[-71.148727,41.745721],[-71.178337,41.744067],[-71.271071,41.681229],[-71.310758,41.719883],[-71.330602,41.762257],[-71.359153,41.786235],[-71.390159,41.79533],[-71.363675,41.702726],[-71.426539,41.633299],[-71.443799,41.453697],[-71.522864,41.378973],[-71.769283,41.330914],[-71.929945,41.341043],[-72.07389,41.326108],[-72.265273,41.291666],[-72.371055,41.312156],[-72.479421,41.275775],[-72.84715,41.265854],[-72.924716,41.285155],[-73.023728,41.216477],[-73.182272,41.175833],[-73.582997,41.021889],[-73.671415,40.965872],[-73.779005,40.87841],[-73.851249,40.83141],[-73.910677,40.816114],[-73.947212,40.776943],[-73.98708,40.751389],[-73.948582,40.838748],[-73.906749,40.912464],[-73.871971,41.055169],[-73.882255,41.170588],[-73.925327,41.218053],[-73.96995,41.249731],[-73.917653,41.135784],[-73.90923,40.996077],[-73.927213,40.914247],[-74.025502,40.756376],[-74.067334,40.719634],[-74.116246,40.687284],[-74.153143,40.673254],[-74.187146,40.647984],[-74.226704,40.608013],[-74.264195,40.528638],[-74.241509,40.456265],[-74.049841,40.429832],[-73.998449,40.452156],[-73.972249,40.400325],[-73.957599,40.328366],[-73.971991,40.250515],[-74.004004,40.171347],[-74.028344,40.073006],[-74.048911,39.923067],[-74.079917,39.788114],[-74.084,39.829094],[-74.064595,39.993115],[-74.095989,39.975984],[-74.117641,39.938131],[-74.176139,39.726594],[-74.256573,39.613861],[-74.3306,39.535882],[-74.407029,39.548801],[-74.389872,39.486841],[-74.410853,39.454543],[-74.428836,39.387183],[-74.474363,39.34256],[-74.517177,39.346849],[-74.578698,39.316102],[-74.602986,39.292563],[-74.604795,39.247527],[-74.645929,39.207866],[-74.794473,39.001909],[-74.923432,38.941138],[-74.954308,38.949948],[-74.920331,39.047178],[-74.897025,39.145466],[-74.975289,39.188254],[-75.05022,39.210837],[-75.136106,39.207866],[-75.231036,39.284269],[-75.353431,39.339821],[-75.524248,39.490174],[-75.519261,39.531877],[-75.52355,39.601847],[-75.471615,39.712383],[-75.421902,39.789716],[-75.353173,39.82974],[-75.153831,39.870487],[-75.103834,39.931826],[-75.074172,39.983477],[-75.172925,39.894774],[-75.320875,39.864699],[-75.400638,39.831574],[-75.464406,39.780931],[-75.50213,39.717395],[-75.587603,39.640785],[-75.581583,39.58947],[-75.567268,39.552987],[-75.573883,39.476945],[-75.519803,39.402815],[-75.412652,39.281375],[-75.392163,39.092756],[-75.310411,38.966562],[-75.185069,38.819388],[-75.088693,38.77753],[-75.08399,38.722805],[-75.128484,38.632448],[-75.187111,38.591133],[-75.110862,38.599376],[-75.07288,38.578731],[-75.035879,38.503335],[-75.038748,38.426363],[-75.051253,38.383032],[-75.074353,38.365721],[-75.073397,38.410007],[-75.089752,38.425407],[-75.116753,38.406209],[-75.134246,38.384324],[-75.14148,38.298128],[-75.160006,38.255055],[-75.225429,38.242291],[-75.291781,38.129197],[-75.353535,38.065015],[-75.596362,37.631192],[-75.587112,37.558716],[-75.631554,37.535332],[-75.698836,37.516367],[-75.766868,37.47301],[-75.812059,37.425209],[-75.853995,37.296638],[-75.934378,37.151893],[-75.984504,37.212199],[-75.997371,37.263824],[-75.975047,37.398441],[-75.888153,37.619151],[-75.792371,37.756352],[-75.719352,37.821387],[-75.659252,37.953963],[-75.735165,37.973703],[-75.850817,37.971559],[-75.829035,38.032769],[-75.795342,38.086668],[-75.855623,38.14036],[-75.891305,38.147233],[-75.928073,38.169247],[-75.884975,38.213947],[-75.863917,38.261231],[-75.876758,38.318747],[-75.858697,38.362077],[-75.888825,38.355514],[-75.937271,38.309677],[-75.967399,38.291358],[-75.985718,38.33195],[-76.006673,38.322777],[-76.020316,38.294872],[-76.051218,38.27955],[-76.116485,38.317687],[-76.211673,38.361328],[-76.264642,38.436414],[-76.294872,38.494653],[-76.264177,38.59997],[-76.198393,38.618677],[-76.112946,38.601572],[-76.000937,38.601727],[-76.016931,38.62511],[-76.056954,38.62126],[-76.174983,38.706682],[-76.212965,38.758281],[-76.27831,38.772466],[-76.308102,38.722856],[-76.341174,38.709653],[-76.300324,38.818199],[-76.246968,38.822644],[-76.168136,38.852745],[-76.191054,38.915558],[-76.240819,38.943075],[-76.330658,38.908607],[-76.329599,38.952791],[-76.312752,39.00935],[-76.245005,39.009195],[-76.185706,38.990747],[-76.135192,39.082111],[-76.132944,39.122961],[-76.216841,39.063637],[-76.235703,39.191613],[-76.153124,39.315042],[-76.074369,39.368863],[-75.975977,39.367261],[-75.875983,39.375995],[-75.938718,39.398577],[-76.003107,39.410851],[-75.954738,39.459607],[-75.913449,39.468341],[-75.872934,39.510896],[-75.970396,39.504566],[-75.958924,39.585052],[-76.006311,39.568696],[-76.063,39.561126],[-76.085066,39.526993],[-76.080725,39.470304],[-76.097262,39.433097],[-76.141368,39.403228],[-76.215807,39.379948],[-76.223042,39.420333],[-76.247666,39.438601],[-76.256813,39.352172],[-76.276372,39.322742],[-76.330813,39.4039],[-76.347195,39.387544],[-76.34505,39.364523],[-76.358977,39.32468],[-76.405693,39.30388],[-76.402773,39.252824],[-76.420885,39.224996],[-76.570411,39.269335],[-76.573925,39.254323],[-76.489382,39.158695],[-76.427603,39.126036],[-76.420059,39.073894],[-76.473079,39.030615],[-76.546252,39.067977],[-76.558551,39.065213],[-76.518786,39.001186],[-76.493775,38.94522],[-76.51951,38.898324],[-76.515557,38.840601],[-76.521112,38.788305],[-76.536873,38.742623],[-76.50132,38.53217],[-76.458506,38.474965],[-76.416415,38.420239],[-76.394091,38.368976],[-76.43874,38.361535],[-76.509898,38.403651],[-76.572427,38.435794],[-76.646892,38.538527],[-76.659191,38.579558],[-76.67733,38.611959],[-76.668545,38.537519],[-76.641983,38.454346],[-76.408767,38.268259],[-76.365721,38.196894],[-76.332906,38.140773],[-76.341174,38.08703],[-76.401946,38.125063],[-76.454423,38.173536],[-76.593588,38.228313],[-76.769159,38.262936],[-76.868119,38.390293],[-76.867757,38.337143],[-76.889746,38.292082],[-76.950259,38.347039],[-76.988396,38.393884],[-77.001186,38.445251],[-77.076711,38.441762],[-77.155905,38.397114],[-77.232515,38.407708],[-77.241585,38.494808],[-77.220914,38.540955],[-77.134924,38.650122],[-77.053896,38.705803],[-77.018187,38.777737],[-77.030357,38.889254],[-77.045602,38.775799],[-77.091904,38.719549],[-77.164664,38.67658],[-77.260395,38.599996],[-77.283804,38.529225],[-77.313699,38.396623],[-77.273262,38.351768],[-77.231921,38.340037],[-77.109913,38.370139],[-77.046764,38.356677],[-76.906334,38.197049],[-76.644877,38.133952],[-76.549508,38.094497],[-76.471761,38.011169],[-76.354946,37.963213],[-76.26428,37.893553],[-76.261799,37.848078],[-76.293219,37.794334],[-76.305621,37.721574],[-76.344146,37.675685],[-76.436621,37.670414],[-76.492483,37.682222],[-76.792801,37.937995],[-76.828638,37.961507],[-76.939975,38.095453],[-77.070639,38.167206],[-77.111102,38.165681],[-76.925118,38.033028],[-76.84918,37.940243],[-76.715415,37.810173],[-76.61984,37.755086],[-76.549456,37.669148],[-76.48406,37.628866],[-76.305569,37.571505],[-76.367633,37.530293],[-76.268569,37.495154],[-76.25441,37.430635],[-76.263479,37.357022],[-76.40099,37.386142],[-76.40546,37.331908],[-76.393135,37.299946],[-76.453932,37.273539],[-76.538398,37.309351],[-76.757687,37.505437],[-76.755878,37.479211],[-76.738101,37.448774],[-76.6109,37.32258],[-76.497392,37.246874],[-76.401119,37.21269],[-76.326938,37.149257],[-76.300764,37.110888],[-76.283297,37.052674],[-76.338281,37.013116],[-76.400887,36.991334],[-76.46202,37.030789],[-76.506849,37.072311],[-76.602295,37.142849],[-76.630898,37.221708],[-76.703504,37.217677],[-77.006974,37.317671],[-77.250886,37.329195],[-77.227064,37.309067],[-77.196213,37.295708],[-77.001961,37.271059],[-76.92517,37.225015],[-76.765412,37.184139],[-76.671852,37.172951],[-76.633921,37.047429],[-76.504627,36.961026],[-76.487858,36.897025],[-76.399543,36.889842],[-76.244255,36.952628],[-76.144003,36.930614],[-75.999412,36.912657],[-75.966339,36.861962],[-75.941561,36.765534],[-75.890427,36.657013],[-75.757877,36.229236],[-75.55869,35.879361],[-75.534195,35.81908],[-75.580497,35.871997],[-75.72824,36.103714],[-75.809786,36.271042],[-75.893579,36.566502],[-75.917841,36.632648],[-75.946496,36.659106],[-75.965332,36.637583],[-75.973445,36.599963],[-75.959751,36.57105],[-75.992772,36.473795],[-75.978483,36.429146],[-75.924869,36.382999],[-75.866578,36.267864],[-75.820069,36.112835],[-75.883011,36.175699],[-75.950191,36.208979],[-76.054732,36.234533],[-76.147827,36.279285],[-76.141058,36.215102],[-76.150023,36.145753],[-76.22175,36.166888],[-76.270584,36.18991],[-76.227383,36.116039],[-76.321176,36.138156],[-76.383678,36.133531],[-76.424322,36.06798],[-76.478815,36.028189],[-76.559352,36.015347],[-76.678932,36.075318],[-76.717637,36.148078],[-76.733631,36.229158],[-76.740065,36.133299],[-76.718774,36.033511],[-76.726216,35.957599],[-76.611158,35.943646],[-76.503516,35.956048],[-76.358331,35.952896],[-76.263556,35.967107],[-76.206557,35.991214],[-76.06977,35.970311],[-76.060029,35.878663],[-76.075713,35.787532],[-76.083567,35.690535],[-76.045714,35.691155],[-76.001195,35.722187],[-75.978923,35.895949],[-75.853892,35.960157],[-75.812008,35.955738],[-75.772217,35.899876],[-75.758833,35.843239],[-75.744751,35.765466],[-75.773922,35.646998],[-75.965952,35.508401],[-76.103515,35.380296],[-76.173846,35.354147],[-76.275235,35.369056],[-76.390215,35.40125],[-76.446646,35.407762],[-76.489486,35.397013],[-76.515634,35.436468],[-76.532481,35.508427],[-76.577181,35.532302],[-76.611055,35.529666],[-76.634128,35.453211],[-76.741383,35.431481],[-76.887239,35.463107],[-77.039995,35.527392],[-76.974469,35.458404],[-76.595448,35.329704],[-76.552789,35.305623],[-76.512947,35.270431],[-76.565967,35.215189],[-76.607515,35.152997],[-76.613406,35.104163],[-76.62803,35.073363],[-76.779132,34.990345],[-76.861039,35.004995],[-77.070277,35.15465],[-76.97496,35.025175],[-76.89866,34.970243],[-76.744974,34.940968],[-76.456749,34.989337],[-76.362207,34.936498],[-76.439799,34.842912],[-76.516874,34.777257],[-76.618005,34.769945],[-76.707069,34.752143],[-76.733192,34.707003],[-76.796651,34.704161],[-76.895869,34.701474],[-77.049503,34.697366],[-77.133917,34.707933],[-77.251765,34.615639],[-77.296232,34.602953],[-77.358373,34.620264],[-77.38447,34.694368],[-77.412272,34.7308],[-77.412944,34.592127],[-77.402066,34.55479],[-77.379793,34.526627],[-77.517666,34.451386],[-77.649673,34.357516],[-77.696957,34.331962],[-77.750753,34.284988],[-77.860823,34.149182],[-77.888057,34.050144],[-77.927848,33.939737],[-77.93286,33.989476],[-77.926039,34.073166],[-77.953272,34.168974],[-77.970558,33.993429],[-78.013346,33.911806],[-78.40588,33.917568],[-78.577705,33.87323],[-78.841435,33.724092],[-78.920294,33.658695],[-79.138187,33.40592],[-79.193817,33.244147],[-79.238362,33.312153],[-79.227329,33.363158],[-79.226476,33.404886],[-79.281331,33.315434],[-79.229241,33.185132],[-79.276008,33.135394],[-79.419927,33.042531],[-79.498682,33.027313],[-79.587126,33.00088],[-79.614928,32.909258],[-79.735024,32.824793],[-79.804994,32.787379],[-79.9331,32.810039],[-79.893645,32.7287],[-79.940722,32.667154],[-80.021751,32.619896],[-80.122546,32.589096],[-80.18032,32.592895],[-80.229671,32.576513],[-80.268351,32.537342],[-80.362841,32.50073],[-80.460975,32.521349],[-80.572234,32.533699],[-80.634194,32.511737],[-80.530014,32.475382],[-80.474281,32.422776],[-80.485728,32.351824],[-80.513633,32.32441],[-80.57934,32.287332],[-80.608227,32.29281],[-80.625848,32.32627],[-80.647217,32.39593],[-80.677783,32.381125],[-80.683054,32.348646],[-80.709332,32.337045],[-80.802556,32.448046],[-80.797879,32.3634],[-80.765323,32.298313],[-80.733826,32.265318],[-80.702045,32.245913],[-80.694216,32.215734],[-80.758011,32.142173],[-80.7908,32.125843],[-80.849246,32.113932],[-80.88206,32.068611],[-80.872345,32.02957],[-80.923427,31.944898],[-81.045538,31.892033],[-81.082875,31.8941],[-81.113286,31.878623],[-81.09551,31.840899],[-81.065046,31.813459],[-81.066132,31.787982],[-81.098403,31.753385],[-81.162121,31.743722],[-81.197906,31.704215],[-81.186589,31.666956],[-81.165531,31.646157],[-81.169924,31.610319],[-81.2424,31.574326],[-81.25935,31.538928],[-81.223409,31.528463],[-81.195684,31.538928],[-81.175427,31.531306],[-81.218913,31.472136],[-81.257929,31.436014],[-81.294981,31.371212],[-81.380944,31.353255],[-81.37774,31.3323],[-81.329139,31.313748],[-81.288469,31.263906],[-81.364873,31.171896],[-81.412622,31.179441],[-81.441768,31.199724],[-81.460345,31.127067],[-81.453214,31.088284],[-81.471378,31.009012],[-81.500601,30.913772],[-81.520393,30.874653],[-81.516233,30.801815],[-81.503934,30.731432],[-81.457193,30.640766],[-81.385724,30.269987],[-81.337097,30.14121],[-81.249505,29.793789],[-81.104527,29.456962],[-80.900018,29.049855],[-80.564302,28.556397],[-80.524123,28.486091],[-80.567816,28.426456],[-80.581148,28.364677],[-80.584972,28.271608],[-80.572854,28.180864],[-80.533167,28.07007],[-80.456892,27.900675],[-80.499551,27.934471],[-80.61001,28.177609],[-80.622877,28.320365],[-80.606935,28.522885],[-80.632876,28.518027],[-80.653883,28.452191],[-80.665484,28.374909],[-80.693493,28.344963],[-80.731759,28.462914],[-80.729046,28.516218],[-80.688454,28.57854],[-80.700262,28.600942],[-80.765943,28.632826],[-80.779896,28.682952],[-80.771007,28.732458],[-80.80868,28.758943],[-80.838187,28.757651],[-80.818421,28.635617],[-80.787208,28.560634],[-80.748606,28.381007],[-80.686361,28.272176],[-80.65011,28.180916],[-80.226105,27.207048],[-80.125776,27.082998],[-80.088646,26.99396],[-80.050044,26.807692],[-80.04131,26.568611],[-80.110583,26.131584],[-80.12637,25.833514],[-80.136292,25.842609],[-80.142906,25.874028],[-80.158926,25.878343],[-80.219077,25.741737],[-80.300829,25.61854],[-80.327753,25.427079],[-80.366924,25.331271],[-80.484643,25.22983],[-80.557635,25.232414],[-80.736539,25.156346],[-80.862216,25.17619],[-81.011975,25.133247],[-81.110496,25.138052],[-81.167392,25.228538],[-81.158684,25.269001],[-81.136024,25.309644],[-81.097654,25.319153],[-80.965363,25.2243],[-80.940403,25.26422],[-80.980349,25.311659],[-81.056856,25.338144],[-81.113312,25.367237],[-81.227129,25.5834],[-81.345081,25.731815],[-81.364925,25.831033],[-81.568246,25.891547],[-81.715498,25.983169],[-81.811487,26.146105],[-81.866574,26.435002],[-81.931479,26.467455],[-81.958945,26.489934],[-81.895512,26.597162],[-81.828643,26.687054],[-81.88156,26.664678],[-81.92055,26.631424],[-81.970185,26.552049],[-82.006384,26.539853],[-82.039612,26.552049],[-82.077879,26.704339],[-82.066923,26.891563],[-82.013257,26.961559],[-82.095681,26.963419],[-82.181102,26.93678],[-82.168622,26.874355],[-82.180663,26.840093],[-82.242856,26.848878],[-82.290062,26.870815],[-82.354037,26.935746],[-82.441371,27.059692],[-82.620455,27.401067],[-82.655363,27.449229],[-82.714584,27.499588],[-82.686704,27.515272],[-82.635855,27.524573],[-82.520849,27.678259],[-82.430519,27.771122],[-82.400546,27.835381],[-82.405766,27.862899],[-82.445711,27.902845],[-82.498137,27.867912],[-82.520616,27.877885],[-82.579605,27.958449],[-82.635932,27.981212],[-82.675206,27.963771],[-82.633814,27.897781],[-82.596555,27.873234],[-82.610973,27.77722],[-82.626011,27.745981],[-82.660892,27.718412],[-82.715333,27.733114],[-82.742851,27.709368],[-82.775304,27.73438],[-82.80755,27.776548],[-82.843517,27.846001],[-82.748535,28.236804],[-82.660634,28.485858],[-82.650608,28.769924],[-82.64402,28.812014],[-82.651487,28.887488],[-82.769335,29.05156],[-83.290466,29.451898],[-83.694369,29.925977],[-84.044219,30.103796],[-84.30968,30.064754],[-84.355621,30.02902],[-84.375335,29.982279],[-84.358695,29.929388],[-84.382828,29.907374],[-84.454064,29.910164],[-84.549976,29.897865],[-84.800555,29.773067],[-84.888921,29.777614],[-84.969175,29.745291],[-85.029301,29.72108],[-85.186035,29.707903],[-85.318947,29.680204],[-85.376359,29.69519],[-85.413799,29.767589],[-85.413799,29.842468],[-85.383439,29.785056],[-85.336414,29.740123],[-85.31489,29.758081],[-85.306855,29.797846],[-85.353622,29.875748],[-85.504284,29.975793],[-85.675799,30.121934],[-85.623476,30.117077],[-85.610273,30.148393],[-85.663422,30.18945],[-85.640969,30.236889],[-85.603529,30.286782],[-85.675902,30.279289],[-85.740807,30.244382],[-85.742952,30.201258],[-85.755794,30.166996],[-85.790753,30.171983],[-85.855658,30.214409],[-86.175148,30.332516],[-86.454433,30.399127],[-86.240079,30.429099],[-86.123833,30.405793],[-86.137708,30.441553],[-86.165691,30.464239],[-86.257391,30.493023],[-86.37418,30.482067],[-86.447948,30.495607],[-86.52337,30.467107],[-86.606078,30.424681],[-86.679639,30.402899],[-86.967606,30.372358],[-87.201158,30.339234],[-87.163718,30.374193],[-87.123772,30.396672],[-86.985796,30.430856],[-86.965151,30.501911],[-86.997578,30.570331],[-87.033907,30.553923],[-87.072018,30.500438],[-87.118785,30.538963],[-87.170591,30.538782],[-87.184647,30.453697],[-87.251077,30.396672],[-87.281049,30.339234],[-87.475766,30.294275],[-87.500726,30.309261],[-87.443727,30.363832],[-87.4483,30.394166],[-87.513257,30.368121],[-87.622269,30.264768],[-88.005941,30.23092],[-87.985012,30.254381],[-87.903983,30.259084],[-87.790295,30.291795],[-87.813291,30.346882],[-87.857112,30.407395],[-87.897627,30.414139],[-87.924292,30.44964],[-87.923,30.561546],[-87.948864,30.626916],[-88.011315,30.694173],[-88.032425,30.681228],[-88.078365,30.566197],[-88.116554,30.415327],[-88.135442,30.366596],[-88.249207,30.363186],[-88.349925,30.373469],[-88.6921,30.355357],[-88.819896,30.406491],[-88.872942,30.416335],[-88.905214,30.415146],[-89.054042,30.36825],[-89.223644,30.332361],[-89.263564,30.343626],[-89.320537,30.345332],[-89.443501,30.223143],[-89.58848,30.165963],[-89.954245,30.268747],[-90.045222,30.351404],[-90.125966,30.369103],[-90.225288,30.379283],[-90.332,30.277584],[-90.413055,30.140305],[-90.284975,30.06509],[-90.175343,30.029098],[-89.994191,30.059251],[-89.894042,30.125862],[-89.812239,30.123691],[-89.773119,30.137231],[-89.737437,30.171983],[-89.667545,30.144517],[-89.665064,30.117051],[-89.714699,30.078294],[-89.777254,30.045712],[-89.815184,30.007264],[-89.743819,29.929853],[-89.631681,29.903834],[-89.589513,29.915048],[-89.563391,30.002097],[-89.494454,30.058166],[-89.400739,30.046047],[-89.414046,30.010882],[-89.40092,29.97768],[-89.357848,29.921016],[-89.362809,29.839781],[-89.354463,29.820221],[-89.455413,29.784384],[-89.530654,29.772214],[-89.590883,29.725266],[-89.559308,29.698033],[-89.620648,29.674132],[-89.662118,29.683692],[-89.682944,29.674856],[-89.689223,29.646046],[-89.720875,29.619303],[-89.674805,29.538662],[-89.580341,29.486056],[-89.513678,29.420065],[-89.245684,29.333197],[-89.180778,29.335703],[-89.116829,29.248215],[-89.065333,29.218139],[-89.01575,29.202869],[-89.021382,29.142718],[-89.109517,29.098663],[-89.133339,29.046134],[-89.155509,29.016627],[-89.195248,29.053989],[-89.236098,29.081119],[-89.330563,28.998695],[-89.376141,28.981332],[-89.353533,29.070241],[-89.389215,29.10502],[-89.44314,29.194136],[-89.521765,29.249274],[-89.577162,29.267516],[-89.620261,29.302398],[-89.67248,29.316505],[-89.716973,29.312914],[-89.792369,29.333197],[-89.797356,29.380636],[-89.818285,29.416138],[-89.877247,29.458021],[-90.159065,29.537138],[-90.160796,29.504401],[-90.141262,29.479751],[-90.1008,29.463318],[-90.052327,29.431408],[-90.052792,29.33684],[-90.073747,29.296765],[-90.082713,29.239766],[-90.101368,29.181785],[-90.135862,29.136077],[-90.212808,29.104942],[-90.246708,29.131013],[-90.301614,29.255811],[-90.379207,29.295111],[-90.502506,29.299762],[-90.586248,29.271547],[-90.677509,29.150624],[-90.751018,29.130884],[-91.00276,29.193516],[-91.290133,29.288988],[-91.282717,29.320743],[-91.2375,29.330975],[-91.150761,29.317901],[-91.155387,29.350689],[-91.243986,29.457324],[-91.260238,29.50546],[-91.248843,29.564191],[-91.27773,29.562873],[-91.330931,29.513574],[-91.514202,29.55538],[-91.564793,29.605325],[-91.672461,29.746092],[-91.82439,29.750691],[-91.893171,29.836009],[-92.017324,29.8003],[-92.080214,29.760716],[-92.135482,29.699479],[-92.113984,29.667698],[-92.058871,29.617185],[-92.084038,29.592819],[-92.260823,29.556853],[-92.671315,29.597083],[-92.791333,29.634651],[-92.952409,29.714181],[-93.175702,29.778958],[-93.283189,29.789396],[-93.388454,29.776581],[-93.694844,29.769914],[-93.765899,29.752706],[-93.826464,29.725137],[-93.865738,29.755626],[-93.883876,29.810015],[-93.848323,29.818826],[-93.808816,29.850814],[-93.773082,29.91404],[-93.769051,29.952306],[-93.794011,29.977266],[-93.84145,29.979747],[-93.946301,29.815002],[-93.886383,29.722631],[-93.890465,29.689351],[-94.099677,29.670386],[-94.574454,29.484531],[-94.759611,29.384253],[-94.750128,29.418024],[-94.526266,29.547964],[-94.605331,29.567808],[-94.732636,29.535355],[-94.778292,29.547861],[-94.724368,29.655296],[-94.741938,29.749993],[-94.83232,29.752603],[-94.889913,29.676949],[-94.929859,29.680152],[-94.982285,29.712605],[-95.022877,29.702322],[-94.992827,29.530937],[-94.935905,29.460476],[-94.888285,29.370559],[-95.018329,29.259455],[-95.139045,29.167832],[-95.152145,29.079233],[-95.273507,28.963865],[-95.387635,28.898443],[-95.655861,28.744602],[-95.732394,28.71171],[-95.85342,28.640345],[-96.020413,28.586834],[-96.180532,28.501878],[-96.234534,28.488985],[-96.132292,28.560893],[-96.011033,28.631948],[-96.115032,28.622233],[-96.275358,28.655125],[-96.37344,28.657037],[-96.374112,28.631095],[-96.448733,28.594482],[-96.526041,28.648303],[-96.559708,28.684451],[-96.575702,28.715715],[-96.608516,28.723312],[-96.640039,28.708765],[-96.524645,28.488701],[-96.475475,28.479192],[-96.421112,28.457333],[-96.488808,28.40607],[-96.561697,28.367158],[-96.676342,28.341294],[-96.773545,28.421625],[-96.794577,28.320856],[-96.806902,28.22019],[-96.83951,28.194403],[-96.8916,28.157558],[-96.919867,28.185334],[-96.933277,28.224272],[-96.966634,28.189546],[-97.015468,28.163449],[-97.096032,28.158256],[-97.156493,28.144355],[-97.155072,28.102652],[-97.141274,28.060768],[-97.03433,28.093841],[-97.073087,27.986096],[-97.171453,27.879565],[-97.251578,27.854424],[-97.374128,27.87003],[-97.404385,27.859308],[-97.431515,27.837216],[-97.288733,27.670611],[-97.380459,27.41936],[-97.439111,27.328281],[-97.479781,27.316576],[-97.523861,27.313966],[-97.682146,27.394917],[-97.768445,27.457497],[-97.692378,27.287146],[-97.485104,27.237408],[-97.47451,27.172941],[-97.475673,27.11788],[-97.516523,27.053207],[-97.554712,26.967347],[-97.526496,26.907505],[-97.493811,26.759607],[-97.465828,26.691756],[-97.435081,26.485851],[-97.402318,26.396529],[-97.213931,26.067867],[-97.150369,26.065309],[-97.140189,26.029729],[-97.146235,25.961465],[-97.281783,25.941621],[-97.338653,25.911184],[-97.349737,25.884777],[-97.35816,25.870514],[-97.375627,25.871806],[-97.440274,25.890823],[-97.587242,25.984202],[-97.801415,26.042054],[-98.082793,26.06443],[-98.275029,26.111197],[-98.378124,26.182356],[-98.485869,26.224575],[-98.598291,26.237856],[-98.691412,26.276458],[-98.765232,26.340408],[-98.87321,26.381232],[-99.015269,26.398957],[-99.107769,26.446913],[-99.172081,26.564141],[-99.172365,26.565924],[-99.229932,26.761933],[-99.30246,26.884716],[-99.443537,27.03667],[-99.456508,27.056618],[-99.456534,27.056669],[-99.457722,27.081706],[-99.440256,27.170125],[-99.455138,27.233713],[-99.499813,27.285518],[-99.51007,27.340321],[-99.485834,27.398044],[-99.484258,27.467394],[-99.505316,27.548345],[-99.595311,27.635885],[-99.754267,27.729936],[-99.889634,27.867292],[-100.00141,28.047849],[-100.111946,28.172958],[-100.221267,28.242617],[-100.296043,28.327677],[-100.336273,28.428136],[-100.348159,28.486427],[-100.331726,28.50255],[-100.398905,28.614223],[-100.549697,28.821342],[-100.636307,28.972805],[-100.658631,29.068536],[-100.754594,29.182508],[-100.924144,29.314697],[-101.016335,29.400661],[-101.038633,29.460295],[-101.038969,29.460398],[-101.303527,29.634083],[-101.380344,29.742552],[-101.440392,29.776839],[-101.509302,29.773118],[-101.544623,29.783531],[-101.54638,29.808078],[-101.568704,29.80924],[-101.611596,29.786968],[-101.752337,29.782472],[-101.990901,29.795701],[-102.163087,29.82526],[-102.26892,29.871174],[-102.343076,29.864973],[-102.385657,29.806656],[-102.476246,29.769088],[-102.614945,29.752344],[-102.734189,29.643953],[-102.834002,29.443965],[-102.877823,29.315317],[-102.865679,29.258034],[-102.892009,29.216382],[-102.956811,29.190363],[-103.022828,29.132201],[-103.090007,29.041871],[-103.168297,28.998179],[-103.257697,29.001124],[-103.422932,29.070681],[-103.663977,29.2069],[-103.852906,29.291081],[-103.989745,29.323172],[-104.110616,29.386114],[-104.21552,29.479906],[-104.312206,29.542435],[-104.400625,29.573751],[-104.503977,29.677672],[-104.622213,29.854276],[-104.681331,29.990521],[-104.681331,30.134362],[-104.835895,30.447651],[-104.917854,30.583353],[-104.978832,30.645933],[-105.098153,30.720554],[-105.275817,30.807267],[-105.513993,30.980771],[-105.812709,31.241039],[-106.024091,31.397774],[-106.148063,31.450923],[-106.255705,31.544664],[-106.346966,31.678997],[-106.43603,31.76447],[-106.445383,31.768397],[-106.453212,31.77018],[-106.673044,31.771343],[-106.892876,31.77248],[-107.112707,31.773616],[-107.332539,31.774753],[-107.55237,31.77589],[-107.772202,31.777027],[-107.992033,31.778164],[-108.211839,31.779327],[-108.212485,31.666853],[-108.213157,31.554379],[-108.213803,31.441905],[-108.214449,31.329432],[-108.56789,31.328786],[-108.921331,31.328114],[-109.274771,31.327468],[-109.628212,31.326822],[-109.981653,31.32615],[-110.335094,31.32553],[-110.688535,31.324858],[-111.041976,31.324212],[-111.516211,31.472239],[-111.990471,31.620241],[-112.464732,31.768242],[-112.938966,31.916269],[-113.413201,32.064296],[-113.887462,32.212298],[-114.361722,32.360299],[-114.835957,32.508326],[-114.788001,32.564808],[-114.724775,32.715342],[-114.839057,32.704722],[-115.125215,32.683303],[-115.411374,32.661883],[-115.697506,32.640463],[-115.983664,32.619043],[-116.269823,32.597623],[-116.555955,32.576203],[-116.842113,32.554783],[-117.128271,32.533363],[-117.130468,32.539771],[-117.137392,32.64917],[-117.183746,32.687876],[-117.243484,32.664027],[-117.270692,32.806267],[-117.255757,32.873368],[-117.262966,32.938868],[-117.318828,33.100047],[-117.467424,33.295487],[-117.788515,33.53847],[-117.952097,33.619602],[-118.080513,33.722154],[-118.161903,33.750705],[-118.264404,33.758612],[-118.294169,33.712309],[-118.410441,33.743935],[-118.392949,33.858295],[-118.506198,34.017407],[-118.598854,34.035029],[-118.832043,34.024461],[-119.14373,34.112027],[-119.235843,34.164117],[-119.26765,34.257444],[-119.413688,34.338576],[-119.606053,34.418003],[-119.713204,34.399658],[-119.853299,34.411957],[-120.052977,34.469266],[-120.169559,34.476449],[-120.39647,34.459551],[-120.481193,34.471643],[-120.559819,34.543887],[-120.644698,34.579983],[-120.626714,34.668944],[-120.637618,34.749352],[-120.624906,34.811984],[-120.663017,34.949288],[-120.633613,35.076464],[-120.65909,35.122404],[-120.707045,35.157648],[-120.857372,35.209686],[-120.88489,35.274953],[-120.860292,35.365439],[-120.899592,35.425125],[-121.02284,35.48078],[-121.137949,35.607129],[-121.283832,35.676324],[-121.343854,35.792234],[-121.433745,35.863858],[-121.465009,35.927394],[-121.664351,36.154047],[-121.877413,36.331064],[-121.910176,36.432919],[-121.918651,36.572342],[-121.835142,36.657453],[-121.790002,36.73228],[-121.794524,36.800958],[-121.807443,36.851239],[-121.880669,36.938934],[-122.164217,36.990972],[-122.394901,37.207522],[-122.408466,37.373171],[-122.499236,37.542618],[-122.50045,37.652767],[-122.514222,37.771984],[-122.445621,37.798003],[-122.384101,37.788546],[-122.390276,37.741082],[-122.369709,37.655867],[-122.297594,37.591866],[-122.228658,37.563909],[-122.166,37.501665],[-122.119052,37.482829],[-122.070528,37.478281],[-122.096547,37.518201],[-122.124142,37.543807],[-122.158042,37.626437],[-122.222198,37.732038],[-122.295992,37.790355],[-122.333432,37.896602],[-122.365471,37.9212],[-122.385444,37.960577],[-122.314234,38.007344],[-122.217031,38.04065],[-122.086728,38.049616],[-121.716854,38.034061],[-121.6381,38.061269],[-121.573013,38.052406],[-121.525342,38.05592],[-121.625723,38.083929],[-121.682205,38.074782],[-121.748635,38.080467],[-121.880772,38.075015],[-121.934154,38.086823],[-121.993117,38.120128],[-122.031512,38.123513],[-122.153779,38.065532],[-122.208297,38.072534],[-122.337127,38.13589],[-122.393351,38.144804],[-122.483888,38.108837],[-122.494895,37.953575],[-122.466912,37.838208],[-122.521327,37.826399],[-122.584192,37.874071],[-122.680697,37.902338],[-122.760382,37.945643],[-122.872934,38.026051],[-122.932,38.055455],[-122.998792,37.988612],[-123.001453,38.019282],[-122.968148,38.097003],[-122.977604,38.227331],[-122.876809,38.123358],[-122.908151,38.196584],[-122.986544,38.277095],[-123.046179,38.305052],[-123.121161,38.449281],[-123.28973,38.535865],[-123.424786,38.675624],[-123.701126,38.90729],[-123.719523,39.110972],[-123.820292,39.368398],[-123.777788,39.514953],[-123.783498,39.618719],[-123.832927,39.775505],[-123.884474,39.860797],[-124.108517,40.09453],[-124.324034,40.251962],[-124.356538,40.371076],[-124.371654,40.491198],[-124.324525,40.598091],[-124.283674,40.710539],[-124.253909,40.740304],[-124.242333,40.727902],[-124.250602,40.703924],[-124.220009,40.696483],[-124.208434,40.746092],[-124.190243,40.771724],[-124.22249,40.775031],[-124.219182,40.79074],[-124.199907,40.822056],[-124.133089,40.969773],[-124.140014,41.155886],[-124.06852,41.384167],[-124.071904,41.459511],[-124.11769,41.621749],[-124.163243,41.719004],[-124.244607,41.787941],[-124.208744,41.888555],[-124.211663,41.984621],[-124.355272,42.122881],[-124.409998,42.304343],[-124.420514,42.381005],[-124.406173,42.58368],[-124.443794,42.670212],[-124.539628,42.812865],[-124.498571,42.936863],[-124.454439,43.012362],[-124.346591,43.341644],[-124.320597,43.368206],[-124.275484,43.367379],[-124.196936,43.423345],[-124.233161,43.436367],[-124.287989,43.409702],[-124.239207,43.54003],[-124.184352,43.651548],[-124.148721,43.691726],[-124.130661,44.055657],[-124.099164,44.33378],[-124.047462,44.425506],[-124.065445,44.520074],[-124.044542,44.648231],[-124.059192,44.777732],[-123.948604,45.400847],[-123.9631,45.476088],[-123.929355,45.57696],[-123.961214,45.84299],[-123.947132,46.140595],[-123.975244,46.178344],[-123.9893,46.219401],[-123.962945,46.225447],[-123.911682,46.182194],[-123.673608,46.182608],[-123.521628,46.222657],[-123.46636,46.209428],[-123.402281,46.154961],[-123.321563,46.144005],[-123.220587,46.153617],[-123.251334,46.16726],[-123.298696,46.170851],[-123.404736,46.221003],[-123.464861,46.271104],[-123.650328,46.267719],[-123.688362,46.299862],[-123.895714,46.26777],[-123.959741,46.30074],[-124.072757,46.279449],[-124.045136,46.37288],[-124.050175,46.490548],[-124.044361,46.605063],[-124.016404,46.521373],[-123.946124,46.432567],[-123.912379,46.533336],[-123.889151,46.66002],[-123.957725,46.7087],[-124.071698,46.744796],[-124.112548,46.86267],[-123.842875,46.96318],[-123.986018,46.984497],[-124.042216,47.029688],[-124.111695,47.035191],[-124.116785,47.000336],[-124.139239,46.954705],[-124.163553,47.015322],[-124.170503,47.086687],[-124.198848,47.20854],[-124.30928,47.4046],[-124.37602,47.658642],[-124.460046,47.784215],[-124.62107,47.904131],[-124.663083,47.974126],[-124.701659,48.151635],[-124.679981,48.28589],[-124.709979,48.380381],[-124.63262,48.375032],[-124.42904,48.300773],[-124.175516,48.24243],[-124.098776,48.200004],[-123.97576,48.168481],[-123.294433,48.119544],[-123.249913,48.124195],[-123.161882,48.154555],[-123.124391,48.150911],[-123.024216,48.081613],[-122.973884,48.073293],[-122.908901,48.076885],[-122.860893,48.090037],[-122.778598,48.137579],[-122.767514,48.120009],[-122.76909,48.075981],[-122.739738,48.013245],[-122.679483,47.931803],[-122.656642,47.881135],[-122.778443,47.73843],[-122.801775,47.735329],[-122.805367,47.783647],[-122.821386,47.793155],[-123.050649,47.55193],[-123.131032,47.437725],[-123.139042,47.3861],[-123.136354,47.355818],[-123.104212,47.348376],[-123.030909,47.360184],[-122.922156,47.407649],[-122.916885,47.417985],[-123.018222,47.40106],[-123.066772,47.399639],[-123.060132,47.453641],[-123.048634,47.479324],[-122.982462,47.559371],[-122.912905,47.607353],[-122.814048,47.658538],[-122.757153,47.700525],[-122.717879,47.762098],[-122.608144,47.835478],[-122.587912,47.855942],[-122.592667,47.916404],[-122.585716,47.927876],[-122.532799,47.919711],[-122.510811,47.815738],[-122.523911,47.769333],[-122.618427,47.712799],[-122.630184,47.6928],[-122.613621,47.615621],[-122.628272,47.608154],[-122.66429,47.617249],[-122.675478,47.61234],[-122.585819,47.528417],[-122.557449,47.463201],[-122.553548,47.40491],[-122.577887,47.293186],[-122.603906,47.274608],[-122.648658,47.281455],[-122.707698,47.316389],[-122.720876,47.305123],[-122.767798,47.218358],[-122.783301,47.225955],[-122.81255,47.328946],[-122.828466,47.336594],[-122.91952,47.289672],[-122.956184,47.244558],[-122.98763,47.172573],[-123.027575,47.138906],[-122.914146,47.13149],[-122.811956,47.146011],[-122.729868,47.111802],[-122.701936,47.110871],[-122.627057,47.144254],[-122.604139,47.167018],[-122.542179,47.275564],[-122.51107,47.294995],[-122.464871,47.295821],[-122.420119,47.3121],[-122.353818,47.371579],[-122.351131,47.395221],[-122.375264,47.528365],[-122.368339,47.603916],[-122.380742,47.627843],[-122.410507,47.652647],[-122.406786,47.67678],[-122.383635,47.716468],[-122.381982,47.752331],[-122.401826,47.784267],[-122.392886,47.820544],[-122.330305,47.898627],[-122.318471,47.933044],[-122.242016,48.010765],[-122.261266,48.042029],[-122.31749,48.080166],[-122.352965,48.113808],[-122.388648,48.166363],[-122.415804,48.183933],[-122.424692,48.175923],[-122.386633,48.089933],[-122.394772,48.084145],[-122.494016,48.130447],[-122.517012,48.159645],[-122.529156,48.199332],[-122.52032,48.229098],[-122.467041,48.258502],[-122.403376,48.269199],[-122.408543,48.2939],[-122.488409,48.374309],[-122.541662,48.410947],[-122.58259,48.428672],[-122.63778,48.433323],[-122.662481,48.446397],[-122.668993,48.465259],[-122.657262,48.490012],[-122.627962,48.497919],[-122.542695,48.487971],[-122.496755,48.505541],[-122.501096,48.537503],[-122.514816,48.55515],[-122.512723,48.669433],[-122.545124,48.762295],[-122.562022,48.777979],[-122.580161,48.779581],[-122.599436,48.767101],[-122.653025,48.763871],[-122.685943,48.794283],[-122.722478,48.853039],[-122.788779,48.993031],[-122.686382,48.993031],[-122.26,48.993031],[-121.833617,48.993031],[-121.407235,48.993031],[-120.980853,48.993031],[-120.554471,48.993031],[-120.128088,48.993031],[-119.701706,48.993031],[-119.275324,48.993056],[-118.848942,48.993082],[-118.422559,48.993082],[-117.996177,48.993082],[-117.569795,48.993082],[-117.143413,48.993082],[-116.71703,48.993082],[-116.290648,48.993082],[-115.864266,48.993082],[-115.437884,48.993082],[-115.011501,48.993082],[-114.585119,48.993082],[-114.158737,48.993082],[-113.732355,48.993082],[-113.305972,48.993082],[-112.87959,48.993082],[-112.453208,48.993082],[-112.026826,48.993082],[-111.600443,48.993082],[-111.174061,48.993082],[-110.747679,48.993082],[-110.321297,48.993082],[-109.894915,48.993082],[-109.468532,48.993082],[-109.04215,48.993108],[-108.615768,48.993134],[-108.189386,48.993134],[-107.763003,48.993134],[-107.336621,48.993134],[-106.910239,48.993134],[-106.483857,48.993134],[-106.057474,48.993134],[-105.631092,48.993134],[-105.20471,48.993134],[-104.778328,48.993134],[-104.351945,48.993134],[-103.925563,48.993134],[-103.499181,48.993134],[-103.072799,48.993134],[-102.646416,48.993134],[-102.220034,48.993134],[-101.793652,48.993134],[-101.36727,48.993134],[-100.940887,48.993134],[-100.514505,48.993134],[-100.088123,48.993134],[-99.661741,48.993134],[-99.235358,48.993134],[-98.808976,48.99316],[-98.382594,48.993186],[-97.956212,48.993186],[-97.529829,48.993186],[-97.103447,48.993186],[-96.677065,48.993186],[-96.250683,48.993186],[-95.824301,48.993186],[-95.397918,48.993186],[-95.162041,48.991764],[-95.158243,49.203095],[-95.155297,49.369674],[-94.939342,49.349417],[-94.874798,49.319031],[-94.854334,49.304588],[-94.860406,49.258596],[-94.842603,49.119173],[-94.803458,49.002952]]],[[[179.45161,51.372627],[179.278081,51.372213],[178.925854,51.535046],[178.747054,51.586722],[178.647938,51.643876],[178.692173,51.655969],[178.907974,51.615558],[179.084294,51.527708],[179.181756,51.469934],[179.294307,51.420841],[179.41554,51.400894],[179.45161,51.372627]]],[[[-176.286702,51.791981],[-176.349644,51.733277],[-176.396101,51.759838],[-176.413723,51.840583],[-176.378583,51.861124],[-176.280216,51.802833],[-176.286702,51.791981]]],[[[-176.008967,51.812367],[-176.093354,51.790482],[-176.204433,51.834821],[-176.193658,51.886291],[-176.071625,51.843296],[-176.008967,51.812367]]],[[[-177.879034,51.649716],[-177.901254,51.616385],[-177.925361,51.617366],[-178.058893,51.672609],[-178.078479,51.691264],[-178.000034,51.717464],[-177.977245,51.737773],[-177.986366,51.764283],[-178.045122,51.801076],[-178.153487,51.848257],[-178.194518,51.882208],[-178.168241,51.903034],[-178.116616,51.91585],[-177.953809,51.918433],[-177.865856,51.860401],[-177.799607,51.84004],[-177.6445,51.826294],[-177.72496,51.80167],[-177.770642,51.777899],[-177.82697,51.685889],[-177.879034,51.649716]]],[[[-177.1482,51.71674],[-177.176983,51.703718],[-177.2299,51.693538],[-177.382371,51.704855],[-177.474665,51.701289],[-177.577605,51.694209],[-177.654887,51.676588],[-177.670235,51.701082],[-177.667625,51.721184],[-177.3347,51.77622],[-177.257289,51.804952],[-177.209746,51.84128],[-177.16639,51.909442],[-177.131508,51.929802],[-177.110037,51.928769],[-177.063037,51.901897],[-177.079522,51.86655],[-177.12138,51.835777],[-177.135125,51.806916],[-177.1482,51.71674]]],[[[-176.593298,51.866705],[-176.587924,51.833193],[-176.473383,51.837379],[-176.437468,51.820093],[-176.437339,51.754309],[-176.452351,51.735705],[-176.469766,51.731158],[-176.511003,51.745627],[-176.557538,51.712038],[-176.770962,51.62995],[-176.837108,51.675864],[-176.961622,51.603672],[-176.874418,51.790482],[-176.773623,51.818749],[-176.736416,51.839937],[-176.745123,51.894662],[-176.698356,51.986052],[-176.596812,51.981789],[-176.54989,51.944065],[-176.551595,51.91957],[-176.593298,51.866705]]],[[[178.575488,51.916263],[178.511823,51.899106],[178.477716,51.94254],[178.475029,51.967733],[178.509342,51.994656],[178.57063,51.977525],[178.607321,51.953031],[178.575488,51.916263]]],[[[179.727769,51.905411],[179.64519,51.880244],[179.549589,51.894042],[179.497706,51.932799],[179.503907,51.979567],[179.627207,52.030416],[179.779962,51.966854],[179.727769,51.905411]]],[[[-176.02155,52.002433],[-176.045089,51.973004],[-176.14286,52.00432],[-176.177535,52.029848],[-176.184512,52.056048],[-176.155676,52.099404],[-176.077412,52.099973],[-176.031214,52.082299],[-175.988064,52.049485],[-175.975274,52.028943],[-176.02155,52.002433]]],[[[177.415455,51.882828],[177.328536,51.841074],[177.260633,51.883707],[177.250297,51.90293],[177.380625,51.975794],[177.478397,51.991607],[177.520462,52.018221],[177.563767,52.110515],[177.636527,52.113822],[177.6696,52.103022],[177.653064,52.059768],[177.596013,51.993829],[177.594152,51.947579],[177.415455,51.882828]]],[[[-173.553303,52.136301],[-173.357242,52.095632],[-173.113304,52.100386],[-173.024317,52.090516],[-173.022896,52.079147],[-173.178881,52.062507],[-173.232211,52.067985],[-173.36843,52.045609],[-173.461009,52.041552],[-173.672572,52.062662],[-173.835792,52.048193],[-173.878942,52.053671],[-173.930205,52.072145],[-173.989581,52.10359],[-173.992501,52.12333],[-173.938912,52.131289],[-173.794115,52.104313],[-173.779,52.118369],[-173.656837,52.143743],[-173.553303,52.136301]]],[[[-172.46479,52.272288],[-172.539127,52.257482],[-172.619846,52.27283],[-172.582199,52.325644],[-172.543674,52.353807],[-172.470397,52.388017],[-172.383116,52.372928],[-172.313611,52.329571],[-172.46479,52.272288]]],[[[-174.677394,52.035015],[-175.213873,51.993907],[-175.295548,52.022148],[-175.214157,52.038219],[-175.117652,52.047108],[-174.915933,52.094185],[-174.667757,52.134958],[-174.474254,52.18405],[-174.306151,52.216141],[-174.258815,52.269058],[-174.406507,52.295981],[-174.435549,52.31722],[-174.36545,52.341922],[-174.306874,52.37794],[-174.168898,52.420186],[-174.045624,52.367243],[-174.018339,52.331793],[-174.030095,52.28978],[-174.0549,52.24601],[-174.163214,52.223376],[-174.179389,52.200328],[-174.120632,52.135216],[-174.343539,52.077778],[-174.677394,52.035015]]],[[[173.722761,52.359595],[173.657855,52.356649],[173.616204,52.391273],[173.402367,52.40476],[173.424484,52.437652],[173.516469,52.451424],[173.657649,52.504082],[173.776091,52.495142],[173.744775,52.446644],[173.722761,52.359595]]],[[[-170.733397,52.581494],[-170.797347,52.549764],[-170.81608,52.561547],[-170.827035,52.600717],[-170.791172,52.631258],[-170.682083,52.697559],[-170.608056,52.685079],[-170.584621,52.667587],[-170.586636,52.64242],[-170.614025,52.609606],[-170.649268,52.593121],[-170.692263,52.592966],[-170.733397,52.581494]]],[[[-169.691962,52.847369],[-169.708085,52.807113],[-169.722761,52.792333],[-169.877326,52.813753],[-169.980549,52.806028],[-169.991841,52.829851],[-169.982565,52.851038],[-169.820637,52.883387],[-169.754904,52.883646],[-169.710979,52.866748],[-169.691962,52.847369]]],[[[172.811809,53.012992],[172.983995,52.980281],[173.102127,52.995629],[173.251679,52.94266],[173.43606,52.852071],[173.394719,52.83476],[173.34821,52.824864],[173.302528,52.825923],[173.158661,52.810782],[173.080319,52.814451],[172.935109,52.752103],[172.775532,52.796933],[172.721788,52.885558],[172.595078,52.907417],[172.494825,52.937906],[172.677967,53.007566],[172.811809,53.012992]]],[[[-167.964367,53.345116],[-168.270679,53.238043],[-168.370131,53.159753],[-168.445992,53.084409],[-168.505626,53.043171],[-168.549035,53.036091],[-168.597404,53.016092],[-168.698535,52.963434],[-168.741013,52.956871],[-169.065928,52.833933],[-169.088898,52.832021],[-169.073111,52.864164],[-168.973867,52.909691],[-168.909168,52.951187],[-168.836097,53.019736],[-168.795867,53.044928],[-168.783025,53.079344],[-168.777806,53.148798],[-168.759616,53.175049],[-168.689827,53.227242],[-168.639029,53.255768],[-168.572186,53.265638],[-168.436638,53.256905],[-168.380414,53.28344],[-168.362974,53.303568],[-168.397261,53.321914],[-168.405322,53.353798],[-168.396434,53.408782],[-168.357212,53.457564],[-168.287707,53.500146],[-168.193061,53.533322],[-168.073276,53.55699],[-167.98571,53.558178],[-167.828097,53.507949],[-167.804687,53.484953],[-167.843109,53.434568],[-167.865149,53.38731],[-167.964367,53.345116]]],[[[-166.209746,53.723284],[-166.223828,53.720416],[-166.249433,53.745144],[-166.250751,53.767778],[-166.23437,53.784185],[-166.187732,53.822477],[-166.154555,53.836146],[-166.113731,53.84307],[-166.102672,53.832787],[-166.138639,53.787415],[-166.183753,53.7569],[-166.209746,53.723284]]],[[[-166.615354,53.900948],[-166.572179,53.853457],[-166.49748,53.883533],[-166.442755,53.924797],[-166.400044,53.978101],[-166.37232,53.998978],[-166.33563,53.970918],[-166.230882,53.9326],[-166.31899,53.873766],[-166.488747,53.785503],[-166.545617,53.726488],[-166.549208,53.70096],[-166.384722,53.72052],[-166.338782,53.717652],[-166.309456,53.697498],[-166.354517,53.67352],[-166.444176,53.651816],[-166.522001,53.609648],[-166.702196,53.536681],[-166.770409,53.476013],[-166.850999,53.452862],[-166.960734,53.447384],[-167.153642,53.407851],[-167.270792,53.370593],[-167.300454,53.350491],[-167.337274,53.340982],[-167.381302,53.342016],[-167.428793,53.325686],[-167.479823,53.291993],[-167.522482,53.276232],[-167.592194,53.272718],[-167.628626,53.259437],[-167.669424,53.259954],[-167.780864,53.300261],[-167.80877,53.323774],[-167.710094,53.370903],[-167.638703,53.386561],[-167.530182,53.393692],[-167.423522,53.437255],[-167.204078,53.494978],[-167.136098,53.526449],[-167.092353,53.635951],[-167.042408,53.654606],[-167.015743,53.698376],[-166.894149,53.697136],[-166.838338,53.648044],[-166.818727,53.641377],[-166.808986,53.646131],[-166.803663,53.685406],[-166.741264,53.712949],[-166.777256,53.733155],[-166.889601,53.758579],[-166.972929,53.770568],[-167.027267,53.769121],[-167.071502,53.783384],[-167.105608,53.813356],[-167.121163,53.843122],[-167.118166,53.872629],[-167.090467,53.905651],[-167.038067,53.942186],[-166.978097,53.962934],[-166.848673,53.977894],[-166.734055,54.002182],[-166.673283,54.005954],[-166.627395,53.995671],[-166.615354,53.900948]]],[[[-165.841551,54.070653],[-165.879378,54.053032],[-165.909842,54.049156],[-165.932889,54.059155],[-166.036423,54.047192],[-166.056654,54.054324],[-166.102827,54.113958],[-166.105825,54.144809],[-166.087738,54.169149],[-166.041281,54.19124],[-165.966402,54.211032],[-165.892866,54.206976],[-165.76445,54.152095],[-165.704247,54.119901],[-165.692878,54.099928],[-165.737914,54.081092],[-165.841551,54.070653]]],[[[-165.561155,54.136696],[-165.604822,54.129151],[-165.615364,54.139538],[-165.620531,54.183541],[-165.654147,54.253304],[-165.590352,54.278651],[-165.550613,54.284542],[-165.533766,54.273897],[-165.487671,54.221884],[-165.441731,54.208009],[-165.407857,54.196847],[-165.467595,54.180931],[-165.561155,54.136696]]],[[[-162.554413,54.401357],[-162.641126,54.379523],[-162.733111,54.402313],[-162.81171,54.444377],[-162.820547,54.494555],[-162.64539,54.462051],[-162.60795,54.446651],[-162.554413,54.401357]]],[[[-162.29815,54.84704],[-162.321921,54.842389],[-162.390754,54.872982],[-162.415766,54.895874],[-162.433904,54.931531],[-162.293654,54.982846],[-162.264612,54.983518],[-162.23836,54.954734],[-162.233761,54.932048],[-162.27257,54.867194],[-162.29815,54.84704]]],[[[-163.476037,54.980727],[-163.378963,54.815517],[-163.336898,54.78322],[-163.274525,54.765598],[-163.187088,54.74777],[-163.13505,54.723275],[-163.089264,54.686068],[-163.08327,54.669015],[-163.358085,54.735677],[-163.53084,54.638319],[-163.583033,54.625658],[-164.073313,54.621007],[-164.171266,54.603024],[-164.234621,54.571346],[-164.346681,54.482411],[-164.4035,54.44784],[-164.463496,54.427324],[-164.590801,54.404328],[-164.743789,54.40748],[-164.823422,54.419082],[-164.866184,54.461379],[-164.903934,54.544785],[-164.903702,54.567987],[-164.887656,54.60783],[-164.751489,54.662917],[-164.706194,54.691985],[-164.529797,54.880836],[-164.478637,54.90683],[-164.424299,54.913186],[-164.273688,54.90006],[-164.145066,54.955147],[-163.867977,55.039121],[-163.807153,55.049095],[-163.607476,55.050852],[-163.553009,55.037829],[-163.510893,55.014291],[-163.476037,54.980727]]],[[[-159.361998,54.972407],[-159.394477,54.967343],[-159.421349,54.978143],[-159.458478,55.034936],[-159.461915,55.05881],[-159.39042,55.040878],[-159.363187,54.999511],[-159.361998,54.972407]]],[[[-159.515116,55.151879],[-159.520387,55.072143],[-159.534985,55.059637],[-159.561495,55.080928],[-159.617719,55.057312],[-159.648493,55.074571],[-159.635418,55.102322],[-159.639656,55.123974],[-159.597953,55.125705],[-159.588031,55.165315],[-159.595266,55.182007],[-159.57475,55.217715],[-159.545088,55.225983],[-159.515116,55.151879]]],[[[-131.33973,55.079842],[-131.237462,54.949514],[-131.232036,54.903781],[-131.329523,54.887761],[-131.406185,54.894298],[-131.445692,54.909336],[-131.456105,54.930549],[-131.431326,54.996488],[-131.481736,55.035246],[-131.540027,55.048475],[-131.592221,55.025686],[-131.595115,55.090746],[-131.555995,55.13741],[-131.577829,55.200817],[-131.578475,55.248773],[-131.565452,55.264121],[-131.512665,55.262725],[-131.404635,55.213323],[-131.33973,55.079842]]],[[[-159.872975,55.128754],[-159.933953,55.106843],[-159.953073,55.078964],[-159.999427,55.067208],[-160.038417,55.044496],[-160.169598,54.941685],[-160.227062,54.922694],[-160.163577,55.010441],[-160.153604,55.038346],[-160.152415,55.056898],[-160.172078,55.123044],[-160.133734,55.12015],[-160.102212,55.133896],[-160.038753,55.192549],[-159.981651,55.197768],[-159.920466,55.267531],[-159.887367,55.273009],[-159.871063,55.263552],[-159.898245,55.221281],[-159.839411,55.182368],[-159.854113,55.144696],[-159.872975,55.128754]]],[[[-132.862272,54.894427],[-132.837726,54.88094],[-132.812895,54.890448],[-132.772304,54.926053],[-132.700654,54.919025],[-132.648874,54.907062],[-132.617223,54.892412],[-132.634018,54.840477],[-132.646962,54.756141],[-132.676651,54.726221],[-132.705822,54.684156],[-132.807289,54.709116],[-132.889583,54.762652],[-133.00893,54.854843],[-133.075412,54.921351],[-133.080554,54.949437],[-133.122696,54.969823],[-133.204629,55.084493],[-133.251163,55.175134],[-133.324854,55.185521],[-133.417975,55.210713],[-133.453812,55.260348],[-133.429034,55.303808],[-133.296561,55.325719],[-133.0974,55.213736],[-133.067066,55.166194],[-132.995753,55.11059],[-132.982187,55.033024],[-132.946014,55.002586],[-132.862272,54.894427]]],[[[-160.329278,55.337708],[-160.343308,55.258798],[-160.480742,55.308976],[-160.517483,55.333832],[-160.492937,55.352332],[-160.362299,55.356983],[-160.329278,55.337708]]],[[[-160.684915,55.314815],[-160.669722,55.314247],[-160.63882,55.321947],[-160.573966,55.378274],[-160.552778,55.380754],[-160.552468,55.363365],[-160.583164,55.307632],[-160.531178,55.233192],[-160.482679,55.197406],[-160.487537,55.184849],[-160.60908,55.159011],[-160.701787,55.177614],[-160.750622,55.171206],[-160.795089,55.145213],[-160.825475,55.173997],[-160.846533,55.311353],[-160.83966,55.335382],[-160.789198,55.38308],[-160.723931,55.404629],[-160.695664,55.398324],[-160.672177,55.379385],[-160.666337,55.359412],[-160.684915,55.314815]]],[[[-133.305088,55.543742],[-133.283203,55.51563],[-133.281704,55.497853],[-133.426476,55.431449],[-133.429085,55.417703],[-133.463088,55.376672],[-133.493474,55.361686],[-133.547373,55.317244],[-133.650183,55.269288],[-133.63499,55.41331],[-133.737128,55.496923],[-133.634241,55.539246],[-133.5667,55.527205],[-133.454768,55.522296],[-133.345576,55.55909],[-133.305088,55.543742]]],[[[-155.566003,55.821193],[-155.604889,55.789567],[-155.680621,55.79184],[-155.723202,55.802176],[-155.737362,55.829797],[-155.620625,55.913073],[-155.59396,55.924339],[-155.573237,55.921083],[-155.563936,55.886667],[-155.566003,55.821193]]],[[[-130.979131,55.489171],[-131.01391,55.379282],[-131.082743,55.266808],[-131.187878,55.206295],[-131.261879,55.219782],[-131.31632,55.268513],[-131.366834,55.265826],[-131.420681,55.275903],[-131.450937,55.316288],[-131.42236,55.368429],[-131.447578,55.408789],[-131.474502,55.373468],[-131.521837,55.341067],[-131.641287,55.298951],[-131.72366,55.218335],[-131.76252,55.165832],[-131.810993,55.223115],[-131.841999,55.358688],[-131.846081,55.416256],[-131.759471,55.503072],[-131.647566,55.585548],[-131.624958,55.831683],[-131.269217,55.955396],[-131.23617,55.948988],[-131.120673,55.856643],[-130.997787,55.727658],[-130.965954,55.669522],[-130.965024,55.56803],[-130.979131,55.489171]]],[[[-133.566105,56.339197],[-133.376634,56.317751],[-133.203001,56.319844],[-133.143702,56.278581],[-133.10448,56.235095],[-133.081742,56.194193],[-133.075438,56.155849],[-133.080114,56.128719],[-133.101224,56.09978],[-133.096625,56.090039],[-132.757576,55.995006],[-132.597611,55.895038],[-132.533765,55.842483],[-132.496972,55.798093],[-132.430154,55.686989],[-132.288871,55.558108],[-132.214767,55.518834],[-132.172702,55.480593],[-132.196344,55.479146],[-132.295873,55.507465],[-132.51126,55.59392],[-132.528856,55.590457],[-132.548338,55.54369],[-132.581747,55.502659],[-132.631279,55.473178],[-132.591591,55.464367],[-132.417855,55.482919],[-132.272024,55.398634],[-132.215283,55.383545],[-132.160248,55.32298],[-132.158388,55.299829],[-132.190427,55.255],[-132.21487,55.236784],[-132.206705,55.224433],[-132.165984,55.218025],[-132.005089,55.230634],[-131.976435,55.208594],[-132.000387,55.03385],[-131.977598,54.969462],[-131.977934,54.940213],[-131.996563,54.901404],[-131.997209,54.868615],[-131.982739,54.834922],[-131.980879,54.80482],[-132.021703,54.726324],[-132.06475,54.713121],[-132.134306,54.712552],[-132.189238,54.734851],[-132.266314,54.80234],[-132.341322,54.907243],[-132.370209,54.922229],[-132.468627,54.937939],[-132.486481,54.950393],[-132.549372,54.952589],[-132.593865,54.995739],[-132.588491,55.052351],[-132.626964,55.110047],[-132.622184,55.135963],[-132.665333,55.146763],[-132.701739,55.130537],[-132.682852,55.073951],[-132.704142,55.030078],[-132.782303,55.048475],[-132.912605,55.188492],[-133.060581,55.300914],[-133.118536,55.327657],[-133.103007,55.360239],[-133.03004,55.37755],[-132.970819,55.376155],[-132.958907,55.39556],[-133.082466,55.504106],[-133.078409,55.534905],[-133.033399,55.589682],[-133.089623,55.612575],[-133.243774,55.595418],[-133.298266,55.60689],[-133.342811,55.650815],[-133.369011,55.688953],[-133.502724,55.695877],[-133.553264,55.691175],[-133.640494,55.748794],[-133.680181,55.785174],[-133.66442,55.803829],[-133.584063,55.83654],[-133.537141,55.831941],[-133.446965,55.797008],[-133.411722,55.798352],[-133.322141,55.844628],[-133.308472,55.88646],[-133.241526,55.920825],[-133.252171,55.957076],[-133.289223,56.0187],[-133.371233,56.035908],[-133.538613,55.99927],[-133.684212,55.942787],[-133.742529,55.964853],[-133.755189,55.999476],[-133.599204,56.093631],[-133.530862,56.145669],[-133.544091,56.17652],[-133.594424,56.216362],[-133.59861,56.316253],[-133.566105,56.339197]]],[[[-132.7799,56.247265],[-132.830956,56.244164],[-132.891444,56.259409],[-133.035027,56.340902],[-133.037662,56.364829],[-133.017095,56.39201],[-132.935498,56.441775],[-132.902037,56.453764],[-132.70608,56.448493],[-132.643345,56.43516],[-132.629108,56.411906],[-132.632261,56.38829],[-132.652828,56.364364],[-132.657582,56.3393],[-132.646575,56.313204],[-132.66939,56.287314],[-132.7799,56.247265]]],[[[-132.112344,56.109392],[-132.132937,55.943252],[-132.172624,55.952632],[-132.210297,55.952967],[-132.28732,55.929403],[-132.368582,55.939738],[-132.40659,55.958187],[-132.420594,55.979529],[-132.406047,56.02888],[-132.45116,56.056372],[-132.60296,56.066397],[-132.659907,56.078179],[-132.691378,56.130063],[-132.699026,56.198172],[-132.675204,56.223623],[-132.598723,56.241632],[-132.53901,56.324185],[-132.505963,56.33527],[-132.379847,56.498774],[-132.316492,56.487483],[-132.20562,56.387928],[-132.066894,56.244216],[-132.112344,56.109392]]],[[[-154.682801,56.43578],[-154.75122,56.412138],[-154.773932,56.420277],[-154.777162,56.439914],[-154.760936,56.471127],[-154.729361,56.502133],[-154.623735,56.561302],[-154.51754,56.600525],[-154.463357,56.598199],[-154.444883,56.573188],[-154.511183,56.521434],[-154.682801,56.43578]]],[[[-154.208644,56.514897],[-154.257788,56.512675],[-154.332125,56.53903],[-154.322203,56.570604],[-154.216757,56.608741],[-154.110381,56.602928],[-154.102268,56.581663],[-154.107177,56.557788],[-154.115962,56.543887],[-154.14981,56.529573],[-154.208644,56.514897]]],[[[-169.755214,56.635045],[-169.623904,56.615149],[-169.550498,56.62812],[-169.485696,56.617733],[-169.474327,56.594065],[-169.586878,56.54244],[-169.632612,56.545696],[-169.76617,56.60794],[-169.755214,56.635045]]],[[[-132.746879,56.525697],[-132.757628,56.511021],[-132.8847,56.512468],[-132.930795,56.524457],[-132.948029,56.567245],[-132.936247,56.606829],[-132.906533,56.637422],[-132.870644,56.696385],[-132.842532,56.794777],[-132.655877,56.684706],[-132.598671,56.635716],[-132.567975,56.575823],[-132.634224,56.553448],[-132.714478,56.542544],[-132.746879,56.525697]]],[[[-133.989594,56.844954],[-133.924791,56.775708],[-133.83087,56.781289],[-133.778134,56.728889],[-133.738369,56.650444],[-133.767282,56.600111],[-133.80901,56.611325],[-133.855261,56.58218],[-133.883579,56.485493],[-133.870454,56.388651],[-133.884613,56.29212],[-133.938512,56.193676],[-133.949699,56.127711],[-133.970783,56.107919],[-133.994012,56.101124],[-134.024036,56.119004],[-134.06747,56.133008],[-134.122428,56.077404],[-134.189581,56.076965],[-134.245056,56.203262],[-134.195473,56.413508],[-134.084394,56.456348],[-134.150488,56.513502],[-134.290247,56.580009],[-134.278387,56.617113],[-134.384402,56.724031],[-134.390603,56.749482],[-134.373679,56.83865],[-134.274434,56.91818],[-134.143279,56.932339],[-134.051812,56.898284],[-134.000601,56.869191],[-133.989594,56.844954]]],[[[-133.366221,57.003498],[-133.299713,56.972182],[-133.26354,57.00497],[-133.195999,57.003472],[-133.070787,56.974275],[-132.996218,56.930427],[-132.954153,56.880275],[-132.950587,56.850458],[-132.963326,56.782581],[-132.953998,56.713076],[-132.959166,56.677058],[-132.975857,56.64724],[-133.004124,56.623728],[-133.034923,56.62073],[-133.132385,56.683259],[-133.244006,56.795862],[-133.328962,56.830072],[-133.332399,56.818496],[-133.309067,56.78625],[-133.239717,56.725685],[-133.227263,56.689253],[-133.17848,56.644812],[-133.156621,56.611118],[-133.144219,56.566883],[-133.144736,56.528229],[-133.158172,56.495157],[-133.180806,56.473969],[-133.212664,56.464616],[-133.382757,56.473892],[-133.484198,56.451748],[-133.602796,56.464099],[-133.631347,56.484046],[-133.649279,56.516809],[-133.658322,56.596287],[-133.688165,56.710027],[-133.680982,56.797515],[-133.757541,56.876684],[-133.823066,56.924381],[-133.917298,56.967066],[-133.979465,57.009595],[-133.96236,57.043444],[-133.865984,57.068713],[-133.707725,57.062822],[-133.366221,57.003498]]],[[[-153.007089,57.124834],[-153.134213,57.092588],[-153.156822,57.093931],[-153.235422,57.028612],[-153.295392,57.000423],[-153.374586,57.051918],[-153.354329,57.131914],[-153.285212,57.185037],[-152.935466,57.167312],[-152.908413,57.152429],[-152.907741,57.139743],[-152.933424,57.129226],[-153.007089,57.124834]]],[[[-170.160564,57.183952],[-170.263995,57.136771],[-170.357994,57.154212],[-170.385873,57.188551],[-170.386623,57.20302],[-170.116174,57.241778],[-170.160564,57.183952]]],[[[-134.969766,57.351435],[-134.884888,57.2417],[-134.823186,57.156563],[-134.768513,57.054192],[-134.676839,56.842267],[-134.634102,56.762117],[-134.620718,56.718295],[-134.610564,56.603419],[-134.624335,56.578717],[-134.651724,56.556031],[-134.657098,56.523243],[-134.631699,56.435651],[-134.630046,56.302455],[-134.654023,56.227473],[-134.681903,56.216156],[-134.750297,56.240753],[-134.806469,56.281268],[-134.847991,56.323487],[-134.950155,56.456813],[-134.980541,56.518928],[-134.982401,56.563628],[-134.96664,56.596132],[-134.933179,56.616338],[-134.875121,56.670443],[-134.883441,56.679073],[-134.927598,56.666981],[-135.0178,56.660159],[-135.097149,56.702844],[-135.159031,56.725375],[-135.146577,56.802321],[-135.163114,56.824129],[-135.284812,56.800358],[-135.330597,56.821855],[-135.340648,56.850768],[-135.338374,56.893995],[-135.315146,56.931822],[-135.199597,57.02732],[-135.21125,57.044942],[-135.267371,57.04887],[-135.341372,57.081581],[-135.375297,57.188448],[-135.454931,57.249426],[-135.501956,57.243845],[-135.608926,57.071452],[-135.661869,57.033728],[-135.812325,57.009544],[-135.781655,57.057525],[-135.767702,57.100391],[-135.821136,57.230409],[-135.822738,57.280432],[-135.787133,57.317277],[-135.680886,57.332573],[-135.624507,57.354381],[-135.580582,57.390012],[-135.569652,57.424686],[-135.48728,57.51649],[-135.448678,57.53437],[-135.346281,57.533129],[-135.130661,57.431637],[-135.065239,57.416702],[-134.969766,57.351435]]],[[[-153.240641,57.850087],[-153.268572,57.822362],[-153.294979,57.829468],[-153.350841,57.861947],[-153.465046,57.909385],[-153.517084,57.94189],[-153.520081,57.955739],[-153.481065,57.971035],[-153.346965,57.932795],[-153.290044,57.897913],[-153.240641,57.850087]]],[[[-152.898052,57.823913],[-152.890817,57.768981],[-152.850148,57.775699],[-152.696255,57.832284],[-152.616028,57.848872],[-152.511564,57.851456],[-152.428778,57.82567],[-152.411932,57.805929],[-152.419166,57.782313],[-152.485416,57.734409],[-152.482625,57.7033],[-152.411492,57.646094],[-152.236516,57.614907],[-152.215277,57.597699],[-152.216233,57.577003],[-152.336665,57.482228],[-152.380874,57.460111],[-152.41219,57.454788],[-152.630936,57.471815],[-152.831131,57.502873],[-152.91216,57.50817],[-152.940788,57.498093],[-152.997452,57.468947],[-152.95686,57.460369],[-152.781367,57.453393],[-152.71951,57.410863],[-152.692535,57.379599],[-152.679047,57.345131],[-152.714058,57.330971],[-152.789092,57.320636],[-152.879035,57.320817],[-152.990294,57.281982],[-153.051608,57.237644],[-153.27436,57.226352],[-153.443703,57.167209],[-153.503545,57.138011],[-153.524422,57.103078],[-153.588294,57.077705],[-153.732575,57.052332],[-153.646533,57.029594],[-153.633046,57.010371],[-153.631444,56.983706],[-153.643329,56.960761],[-153.75725,56.858339],[-153.972715,56.774209],[-154.027363,56.777982],[-154.050798,56.788472],[-154.070022,56.804543],[-154.070849,56.820666],[-153.793191,56.989493],[-153.804198,56.997787],[-153.879723,57.003498],[-153.99938,57.049955],[-154.083768,57.020086],[-154.102991,57.021223],[-154.08046,57.061039],[-154.025425,57.108478],[-154.035037,57.121837],[-154.065319,57.133671],[-154.134876,57.14075],[-154.243758,57.143024],[-154.324425,57.131784],[-154.376825,57.107031],[-154.381114,57.096515],[-154.269544,57.099461],[-154.23921,57.086852],[-154.209135,57.063339],[-154.190841,57.036157],[-154.18433,57.005306],[-154.207714,56.96381],[-154.26094,56.911772],[-154.338946,56.920919],[-154.498781,57.036571],[-154.569319,57.205914],[-154.705952,57.335364],[-154.712205,57.366266],[-154.673215,57.446106],[-154.535316,57.559433],[-154.387082,57.590464],[-154.28143,57.638084],[-154.179343,57.65245],[-154.116169,57.65121],[-154.029843,57.630694],[-153.995039,57.587286],[-154.015865,57.566874],[-154.007907,57.556177],[-153.947342,57.53008],[-153.881868,57.439027],[-153.805438,57.358205],[-153.754589,57.325364],[-153.687719,57.305133],[-153.756914,57.366835],[-153.797816,57.443264],[-153.818358,57.595606],[-153.83815,57.635862],[-153.799444,57.646663],[-153.690148,57.64072],[-153.693146,57.663406],[-153.808487,57.71472],[-153.879439,57.757198],[-153.906104,57.790788],[-153.904425,57.819882],[-153.841534,57.862825],[-153.805826,57.875072],[-153.769007,57.880395],[-153.695626,57.871248],[-153.662656,57.857812],[-153.568579,57.761074],[-153.524474,57.731024],[-153.487938,57.730947],[-153.454039,57.747018],[-153.422723,57.779161],[-153.390425,57.798385],[-153.357145,57.804689],[-153.252397,57.790478],[-153.217464,57.795749],[-153.200307,57.820037],[-153.201031,57.86329],[-153.175193,57.878845],[-153.168836,57.910652],[-153.225939,57.9576],[-153.160465,57.971966],[-152.943269,57.936025],[-152.850406,57.896776],[-152.898052,57.823913]]],[[[-135.730366,58.244249],[-135.587481,58.146787],[-135.586292,58.124411],[-135.615386,58.05749],[-135.693107,58.038525],[-135.671145,58.011912],[-135.613241,57.991861],[-135.572029,58.008553],[-135.421186,58.102371],[-135.374729,58.122137],[-135.346617,58.124101],[-135.162855,58.095834],[-135.00209,58.051082],[-134.954677,58.015322],[-134.927986,57.952768],[-134.970645,57.817246],[-135.102575,57.793656],[-135.164767,57.796111],[-135.231223,57.815799],[-135.338478,57.768671],[-135.249543,57.732549],[-134.978836,57.724358],[-134.896618,57.648006],[-134.873106,57.589198],[-134.9315,57.481143],[-135.08485,57.511012],[-135.220216,57.573644],[-135.497848,57.662269],[-135.564226,57.666429],[-135.608565,57.650745],[-135.620657,57.59695],[-135.617815,57.480368],[-135.691945,57.419906],[-135.910768,57.446571],[-135.996655,57.534886],[-136.076598,57.674568],[-136.378233,57.839984],[-136.459908,57.873083],[-136.568609,57.972172],[-136.525098,58.050565],[-136.512282,58.095989],[-136.454379,58.108004],[-136.369526,58.14304],[-136.321984,58.218876],[-136.245683,58.157484],[-136.143726,58.09847],[-136.142356,58.153918],[-136.094375,58.198153],[-135.994381,58.196526],[-135.947407,58.205802],[-135.881726,58.247143],[-135.787055,58.268485],[-135.730366,58.244249]]],[[[-134.312726,58.228901],[-134.319858,58.204096],[-134.456232,58.206525],[-134.594001,58.243112],[-134.661594,58.290913],[-134.647977,58.31241],[-134.519975,58.332538],[-134.398897,58.287192],[-134.312726,58.228901]]],[[[-134.680275,58.16167],[-134.42613,58.138829],[-134.240095,58.143996],[-134.070157,57.994548],[-133.965512,57.87378],[-133.904121,57.789186],[-133.869291,57.707512],[-133.82273,57.628679],[-133.826916,57.617569],[-133.925024,57.670795],[-133.995536,57.778489],[-134.031658,57.820605],[-134.067238,57.839622],[-134.104729,57.879361],[-134.177541,57.982172],[-134.18028,58.011136],[-134.212603,58.037956],[-134.24994,58.04917],[-134.292314,58.044726],[-134.306887,58.034391],[-134.300402,57.963439],[-134.267096,57.884529],[-134.083696,57.71224],[-133.961146,57.614184],[-133.937013,57.581576],[-133.920864,57.491969],[-133.973755,57.451377],[-133.908823,57.368721],[-133.911149,57.352546],[-133.925308,57.336759],[-134.100026,57.30012],[-134.260146,57.146796],[-134.435303,57.056983],[-134.516021,57.042565],[-134.554779,57.057551],[-134.591521,57.091968],[-134.613096,57.13796],[-134.619529,57.195527],[-134.575889,57.231752],[-134.489201,57.420165],[-134.486773,57.482021],[-134.594802,57.567804],[-134.659889,57.638084],[-134.695132,57.736011],[-134.754095,57.995013],[-134.781483,58.077851],[-134.820111,58.14689],[-134.869979,58.202081],[-134.907651,58.262775],[-134.933128,58.328946],[-134.92349,58.354655],[-134.836984,58.320161],[-134.733192,58.225025],[-134.680275,58.16167]]],[[[-152.416944,58.360211],[-152.380771,58.352097],[-152.343021,58.411629],[-152.316279,58.413489],[-152.19794,58.363105],[-152.125231,58.374267],[-152.078541,58.312358],[-152.036632,58.306674],[-151.997771,58.314219],[-151.974387,58.309852],[-151.982501,58.244352],[-152.068904,58.177922],[-152.109108,58.161153],[-152.165461,58.178258],[-152.186545,58.184666],[-152.223571,58.214018],[-152.251683,58.251122],[-152.268375,58.25169],[-152.334365,58.208075],[-152.33266,58.186526],[-152.30522,58.154073],[-152.309251,58.133868],[-152.381133,58.124256],[-152.451619,58.129269],[-152.53766,58.101002],[-152.558228,58.118623],[-152.571354,58.168233],[-152.598225,58.1626],[-152.638765,58.101829],[-152.683052,58.06333],[-152.763874,58.031394],[-152.781522,58.015942],[-152.840717,58.013798],[-152.928438,57.993721],[-152.982569,57.997055],[-153.305469,58.063071],[-153.38133,58.087204],[-153.115816,58.238513],[-152.976135,58.29701],[-152.895365,58.293858],[-152.814543,58.275616],[-152.771858,58.278562],[-152.768706,58.345586],[-152.843921,58.395609],[-152.841104,58.416383],[-152.674655,58.450593],[-152.612281,58.445683],[-152.543577,58.428191],[-152.478465,58.399691],[-152.416944,58.360211]]],[[[-152.486087,58.485009],[-152.515517,58.478601],[-152.588613,58.509246],[-152.636621,58.541698],[-152.604892,58.5664],[-152.463169,58.618489],[-152.395524,58.619368],[-152.367929,58.6111],[-152.356845,58.594977],[-152.362271,58.570844],[-152.392811,58.540871],[-152.486087,58.485009]]],[[[-160.918984,58.577097],[-160.99239,58.561051],[-161.07024,58.569138],[-161.131503,58.668202],[-161.084581,58.671277],[-160.98624,58.736415],[-160.768605,58.789228],[-160.715146,58.795223],[-160.918984,58.577097]]],[[[-144.565641,59.818416],[-144.613596,59.812628],[-144.541559,59.878206],[-144.444924,59.950708],[-144.353974,59.996183],[-144.235738,60.0152],[-144.248967,59.982127],[-144.403247,59.921097],[-144.565641,59.818416]]],[[[-148.02176,60.065326],[-148.07416,60.034708],[-148.271874,60.05326],[-148.230688,60.11354],[-148.079586,60.151652],[-147.914196,60.092353],[-148.02176,60.065326]]],[[[-147.735886,59.813249],[-147.846319,59.798831],[-147.872467,59.82839],[-147.814331,59.901977],[-147.768081,59.943732],[-147.733664,59.953602],[-147.606695,60.036646],[-147.465825,60.097004],[-147.336531,60.185371],[-147.205247,60.311306],[-147.180882,60.358254],[-147.120007,60.363086],[-147.019858,60.332235],[-146.957872,60.288878],[-146.986733,60.254359],[-147.31847,60.0753],[-147.346349,60.051942],[-147.376528,59.991171],[-147.403814,59.969957],[-147.447584,59.960268],[-147.479416,59.933706],[-147.499312,59.890195],[-147.540214,59.867509],[-147.60207,59.865597],[-147.644936,59.853608],[-147.668759,59.831542],[-147.735886,59.813249]]],[[[-166.135435,60.38355],[-166.043632,60.33394],[-165.994927,60.33115],[-165.840931,60.346239],[-165.784449,60.335594],[-165.729698,60.3142],[-165.695824,60.28154],[-165.689364,60.224128],[-165.714401,60.172865],[-165.706934,60.10057],[-165.712334,60.069357],[-165.630582,60.028378],[-165.605028,59.972825],[-165.591799,59.913139],[-165.769308,59.893192],[-165.946739,59.89004],[-166.09983,59.849629],[-166.131198,59.81976],[-166.106677,59.775447],[-166.148716,59.76413],[-166.187551,59.773819],[-166.261603,59.814902],[-166.342968,59.834436],[-166.627653,59.864667],[-166.985047,59.983884],[-167.138862,60.008534],[-167.295106,60.095712],[-167.436415,60.206661],[-167.344354,60.224464],[-167.251724,60.233533],[-166.836323,60.216997],[-166.784388,60.296423],[-166.730954,60.316267],[-166.598973,60.338746],[-166.475699,60.382775],[-166.420379,60.381689],[-166.363871,60.364739],[-166.246953,60.391146],[-166.184941,60.396779],[-166.135435,60.38355]]],[[[-145.118527,60.337093],[-145.150463,60.31265],[-145.237641,60.321331],[-145.284253,60.336834],[-145.128139,60.40112],[-145.10243,60.388252],[-145.118527,60.337093]]],[[[-146.393927,60.449644],[-146.37168,60.422152],[-146.179547,60.428767],[-146.124254,60.423909],[-146.102239,60.411197],[-146.128284,60.392541],[-146.202388,60.367995],[-146.419171,60.325026],[-146.595336,60.26844],[-146.618332,60.273686],[-146.650449,60.335646],[-146.683005,60.360709],[-146.702875,60.39559],[-146.702564,60.408561],[-146.670241,60.432642],[-146.60593,60.467834],[-146.560299,60.480546],[-146.393927,60.449644]]],[[[-147.658268,60.450471],[-147.658682,60.424142],[-147.690049,60.398898],[-147.659974,60.352492],[-147.712012,60.272755],[-147.732114,60.222061],[-147.759916,60.190228],[-147.787821,60.177929],[-147.81583,60.185164],[-147.821669,60.202734],[-147.805288,60.230639],[-147.871356,60.229761],[-147.891432,60.29942],[-147.854897,60.321435],[-147.841694,60.351252],[-147.837611,60.371302],[-147.794539,60.459876],[-147.77914,60.466077],[-147.774179,60.444993],[-147.760226,60.438792],[-147.737282,60.447422],[-147.702969,60.486799],[-147.688577,60.491398],[-147.658268,60.450471]]],[[[-152.020741,60.361742],[-152.069033,60.358073],[-152.004515,60.407398],[-151.959737,60.503749],[-151.899405,60.490365],[-151.887287,60.472692],[-151.986893,60.37399],[-152.020741,60.361742]]],[[[-172.742215,60.457395],[-172.526053,60.391766],[-172.387508,60.398484],[-172.277541,60.343656],[-172.232066,60.299136],[-172.397172,60.331124],[-172.635736,60.32885],[-172.958378,60.46277],[-173.07403,60.493207],[-173.047649,60.568293],[-172.923884,60.606844],[-172.860218,60.505687],[-172.742215,60.457395]]],[[[-147.930707,60.826158],[-148.057417,60.817942],[-148.115424,60.830603],[-148.123796,60.844348],[-148.099688,60.894836],[-148.101678,60.916127],[-148.037728,60.924137],[-147.9644,60.900159],[-147.943109,60.87538],[-147.930707,60.826158]]],[[[-171.463043,63.640018],[-171.44785,63.615678],[-171.34336,63.619631],[-171.196909,63.609115],[-171.034878,63.585499],[-170.874629,63.594],[-170.672523,63.668827],[-170.551832,63.688464],[-170.430418,63.698851],[-170.299367,63.680609],[-170.171313,63.640922],[-170.121833,63.617513],[-170.082404,63.576662],[-170.056281,63.527182],[-170.017369,63.491732],[-169.777435,63.448014],[-169.624111,63.430547],[-169.587188,63.406595],[-169.554529,63.373496],[-169.427586,63.34833],[-169.295061,63.357528],[-169.221087,63.348588],[-168.996036,63.347296],[-168.716001,63.310606],[-168.761347,63.213765],[-168.852375,63.171235],[-169.109052,63.184929],[-169.364721,63.171131],[-169.470839,63.121264],[-169.559283,63.058218],[-169.571298,62.996775],[-169.622871,62.96856],[-169.676356,62.956106],[-169.719816,62.990109],[-169.777797,63.093746],[-169.818595,63.122349],[-169.863425,63.140384],[-169.988482,63.173121],[-170.115399,63.193869],[-170.189606,63.19635],[-170.243091,63.232291],[-170.272702,63.284277],[-170.323526,63.311123],[-170.424166,63.34926],[-170.527105,63.379284],[-170.848377,63.444371],[-170.95403,63.452949],[-171.061233,63.445895],[-171.176006,63.416207],[-171.287291,63.372153],[-171.401186,63.339235],[-171.519138,63.332],[-171.631818,63.351198],[-171.737858,63.394219],[-171.790981,63.424708],[-171.819403,63.477263],[-171.817931,63.529818],[-171.803539,63.580512],[-171.746385,63.703089],[-171.646468,63.726989],[-171.463043,63.640018]]],[[[-166.109855,66.227457],[-166.148638,66.221824],[-166.146468,66.237172],[-166.032522,66.277712],[-165.822198,66.328096],[-165.829872,66.317141],[-165.942294,66.278177],[-166.109855,66.227457]]],[[[-155.973523,70.841981],[-155.872237,70.834643],[-155.708035,70.857277],[-155.579387,70.894329],[-155.313383,71.014994],[-155.229718,71.082225],[-155.166854,71.099226],[-154.943819,71.083052],[-154.817521,71.04848],[-154.67368,70.987089],[-154.726312,70.927764],[-154.785224,70.894303],[-154.59862,70.847976],[-154.392198,70.838312],[-154.195234,70.801105],[-153.918222,70.877328],[-153.701362,70.893606],[-153.497705,70.891074],[-153.232915,70.93257],[-152.784906,70.876036],[-152.670831,70.890712],[-152.491229,70.880945],[-152.300414,70.846787],[-152.232925,70.810355],[-152.437253,70.733254],[-152.470584,70.653621],[-152.399193,70.62047],[-152.269667,70.61476],[-152.253363,70.568251],[-152.172928,70.55665],[-151.769025,70.560138],[-151.799928,70.53802],[-151.819616,70.511304],[-151.944673,70.452108],[-151.224821,70.418751],[-151.128031,70.451617],[-150.979073,70.464691],[-150.662633,70.509908],[-150.543519,70.490142],[-150.403217,70.443918],[-150.273638,70.434306],[-150.152509,70.443711],[-149.870097,70.50965],[-149.544045,70.512906],[-149.410616,70.491408],[-149.269436,70.500762],[-148.844785,70.425211],[-148.688361,70.416322],[-148.4792,70.31793],[-148.371145,70.314985],[-148.248775,70.356739],[-148.142735,70.355447],[-148.039072,70.315502],[-147.869522,70.303254],[-147.790586,70.240157],[-147.705346,70.217213],[-147.06293,70.170394],[-146.744887,70.191737],[-146.281247,70.186156],[-146.057668,70.156235],[-145.823135,70.160059],[-145.440083,70.050918],[-145.236814,70.033943],[-145.197385,70.008699],[-144.619177,69.982137],[-144.41689,70.039033],[-144.064095,70.054122],[-143.746414,70.101975],[-143.566425,70.101484],[-143.357032,70.089572],[-143.276443,70.095308],[-143.218333,70.116237],[-142.707873,70.033813],[-142.422128,69.939504],[-142.296994,69.869896],[-141.699201,69.770367],[-141.526369,69.714711],[-141.407901,69.653371],[-141.338628,69.646757],[-141.289665,69.664689],[-141.080815,69.659418],[-141.002137,69.650788],[-141.002137,69.358583],[-141.002137,69.066379],[-141.002137,68.774175],[-141.002137,68.48197],[-141.002137,68.18974],[-141.002137,67.897561],[-141.002137,67.605357],[-141.002137,67.313153],[-141.002137,67.020948],[-141.002137,66.728744],[-141.002137,66.436539],[-141.002137,66.144335],[-141.002137,65.852131],[-141.002137,65.559926],[-141.002137,65.267722],[-141.002137,64.975517],[-141.002137,64.683313],[-141.002137,64.391109],[-141.002137,64.098878],[-141.002137,63.8067],[-141.002137,63.51447],[-141.002137,63.222291],[-141.002137,62.930087],[-141.002137,62.637882],[-141.002137,62.345678],[-141.002137,62.053474],[-141.002137,61.761269],[-141.002137,61.469065],[-141.002137,61.17686],[-141.002137,60.884656],[-141.002137,60.592452],[-141.002137,60.300247],[-140.762746,60.259113],[-140.525422,60.21834],[-140.452817,60.299731],[-140.196915,60.237486],[-139.973285,60.183149],[-139.830658,60.252886],[-139.676301,60.328333],[-139.467993,60.333708],[-139.234777,60.339728],[-139.079257,60.343707],[-139.079257,60.279448],[-139.13698,60.17271],[-139.185168,60.083568],[-139.043445,59.993238],[-138.868753,59.945747],[-138.705456,59.901331],[-138.632256,59.778289],[-138.453636,59.683386],[-138.317624,59.611116],[-138.187451,59.541947],[-138.001132,59.442935],[-137.870571,59.373586],[-137.696628,59.281136],[-137.593301,59.226256],[-137.543692,59.119441],[-137.484161,58.991232],[-137.520877,58.915371],[-137.438582,58.903123],[-137.277558,58.988209],[-137.126198,59.040944],[-136.93931,59.106108],[-136.813271,59.150033],[-136.578738,59.152255],[-136.466729,59.279948],[-136.466342,59.459084],[-136.347848,59.456035],[-136.277981,59.480323],[-136.24713,59.532904],[-136.321829,59.604838],[-136.097165,59.638376],[-135.934643,59.662638],[-135.70259,59.728758],[-135.475937,59.793276],[-135.367856,59.743305],[-135.260782,59.695013],[-135.051028,59.578663],[-135.036662,59.550706],[-135.050847,59.496059],[-135.071311,59.441437],[-134.943773,59.288268],[-134.907238,59.271215],[-134.802412,59.249975],[-134.677226,59.199281],[-134.621984,59.155304],[-134.440755,59.085334],[-134.410214,59.056241],[-134.393057,59.009163],[-134.363524,58.968727],[-134.32965,58.93971],[-134.296991,58.898498],[-134.21852,58.849897],[-134.069201,58.795533],[-133.965745,58.757861],[-133.820741,58.705048],[-133.673928,58.597147],[-133.546391,58.503484],[-133.401102,58.410879],[-133.422574,58.33706],[-133.275296,58.222855],[-133.120422,58.077747],[-133.001411,57.94897],[-132.916843,57.876984],[-132.815531,57.772701],[-132.691508,57.645112],[-132.550483,57.499901],[-132.442479,57.406729],[-132.301661,57.276323],[-132.232156,57.198524],[-132.279414,57.145349],[-132.337989,57.079462],[-132.157018,57.048198],[-132.031522,57.026545],[-132.062915,56.953371],[-132.104282,56.856788],[-131.962508,56.818703],[-131.866157,56.792839],[-131.886001,56.742118],[-131.833084,56.684809],[-131.824274,56.589983],[-131.651519,56.596081],[-131.575116,56.598819],[-131.471892,56.556729],[-131.335802,56.501229],[-131.199402,56.449216],[-131.082924,56.404826],[-130.93022,56.3786],[-130.741678,56.340825],[-130.649074,56.263672],[-130.477095,56.230573],[-130.413145,56.122518],[-130.214708,56.08283],[-130.097867,56.109289],[-130.055958,56.065234],[-130.022885,56.014514],[-130.014074,55.950539],[-130.025081,55.888217],[-130.074639,55.836024],[-130.111975,55.7798],[-130.137064,55.71939],[-130.146521,55.654484],[-130.140423,55.585031],[-130.120424,55.524415],[-130.059472,55.412303],[-130.039266,55.343599],[-130.036553,55.297917],[-130.171842,55.136997],[-130.218506,55.060257],[-130.214088,55.025892],[-130.312531,54.945949],[-130.493244,54.834173],[-130.575332,54.76968],[-130.615794,54.79092],[-130.849604,54.807611],[-130.934612,54.950393],[-130.9797,55.061187],[-131.047861,55.157667],[-131.045897,55.179578],[-130.983937,55.243967],[-130.750386,55.296987],[-130.748215,55.318019],[-130.835058,55.332075],[-130.855961,55.355123],[-130.879809,55.459509],[-130.873401,55.551131],[-130.879654,55.611825],[-130.918567,55.735978],[-130.977013,55.811942],[-131.127675,55.96015],[-131.140362,55.997513],[-131.074009,56.044383],[-131.032772,56.088101],[-131.287588,56.012085],[-131.635267,55.932245],[-131.784199,55.876538],[-131.815463,55.854214],[-131.82616,55.835352],[-131.799056,55.782823],[-131.803293,55.76595],[-131.833601,55.734893],[-131.869413,55.647146],[-131.945016,55.554129],[-131.983411,55.535008],[-132.11901,55.569787],[-132.155442,55.599552],[-132.223422,55.721044],[-132.207532,55.753393],[-132.157974,55.780652],[-132.090691,55.839538],[-132.005735,55.930075],[-131.843833,56.160087],[-131.738026,56.161223],[-131.551345,56.206802],[-131.844247,56.229643],[-131.887913,56.241632],[-131.927291,56.273],[-131.962327,56.323694],[-132.021936,56.380073],[-132.133273,56.399839],[-132.18203,56.420639],[-132.255591,56.48911],[-132.304994,56.519858],[-132.33202,56.557892],[-132.336671,56.603109],[-132.357652,56.625898],[-132.434443,56.634114],[-132.475939,56.649669],[-132.487127,56.766406],[-132.639521,56.79643],[-132.701946,56.822268],[-132.802198,56.895158],[-132.829871,56.930634],[-132.838811,56.960193],[-132.814265,57.040705],[-132.8246,57.055794],[-132.913406,57.047474],[-133.465853,57.17217],[-133.436656,57.336862],[-133.538949,57.554162],[-133.64871,57.642296],[-133.626954,57.676531],[-133.60339,57.69467],[-133.55422,57.695083],[-133.342346,57.631108],[-133.142824,57.555144],[-133.117063,57.566202],[-133.435726,57.727045],[-133.515462,57.77513],[-133.535203,57.832956],[-133.536443,57.863859],[-133.511122,57.880111],[-133.212044,57.865693],[-133.194319,57.877708],[-133.497401,57.924656],[-133.559362,57.924449],[-133.62574,57.856986],[-133.657263,57.840992],[-133.722323,57.844247],[-133.744131,57.854608],[-133.821361,57.936361],[-133.894483,57.993256],[-134.03109,58.072166],[-134.056721,58.12839],[-134.063336,58.211072],[-134.045249,58.289259],[-133.933628,58.467853],[-133.888515,58.498755],[-133.876732,58.518186],[-133.911149,58.51524],[-133.94386,58.49829],[-134.036154,58.415349],[-134.131213,58.279337],[-134.208831,58.232957],[-134.257639,58.244197],[-134.331459,58.299594],[-134.485455,58.367213],[-134.663609,58.384705],[-134.776135,58.453848],[-134.942507,58.646291],[-134.96478,58.742177],[-134.986122,58.765638],[-135.076452,58.796773],[-135.13185,58.842869],[-135.217374,59.076601],[-135.330313,59.239072],[-135.358451,59.324906],[-135.348942,59.410069],[-135.36367,59.419423],[-135.402531,59.35307],[-135.412737,59.318447],[-135.484102,59.30868],[-135.416948,59.241501],[-135.400154,59.207911],[-135.433743,59.210701],[-135.502318,59.202304],[-135.386149,59.087556],[-135.334059,58.909609],[-135.25701,58.777756],[-135.20709,58.670889],[-135.184559,58.589757],[-135.151926,58.512191],[-135.062035,58.340884],[-135.04971,58.306777],[-135.060484,58.278924],[-135.09025,58.245851],[-135.141539,58.233397],[-135.302537,58.255928],[-135.363153,58.298276],[-135.449944,58.376127],[-135.571797,58.412042],[-135.873458,58.394214],[-135.897539,58.400208],[-135.896351,58.463822],[-135.861727,58.577045],[-135.889555,58.622727],[-136.045489,58.789125],[-136.043112,58.82163],[-135.826381,58.897956],[-135.931697,58.903743],[-136.016602,58.873978],[-136.049365,58.893201],[-136.100628,58.999862],[-136.133701,59.039549],[-136.15003,59.048076],[-136.159487,58.94679],[-136.12352,58.89346],[-136.118404,58.862609],[-136.124192,58.819614],[-136.146826,58.788815],[-136.186307,58.770186],[-136.22584,58.765457],[-136.299013,58.786903],[-136.380249,58.827288],[-136.451149,58.846331],[-136.477607,58.862506],[-136.511171,58.907102],[-136.566206,58.940899],[-136.830971,58.983816],[-136.988997,59.034485],[-137.002123,59.021152],[-136.952824,58.966944],[-136.948069,58.934904],[-136.987912,58.925137],[-137.059019,58.873719],[-137.0384,58.86664],[-136.963056,58.883538],[-136.879081,58.881523],[-136.740123,58.850207],[-136.61393,58.809279],[-136.568196,58.786335],[-136.549334,58.752383],[-136.533521,58.740239],[-136.410118,58.700655],[-136.404175,58.679778],[-136.483757,58.617663],[-136.319891,58.624484],[-136.224599,58.602263],[-136.102901,58.5063],[-136.061483,58.452711],[-136.055979,58.384163],[-136.081249,58.36419],[-136.129618,58.350392],[-136.462388,58.327965],[-136.582614,58.245205],[-136.607418,58.24399],[-136.698912,58.26647],[-136.865,58.332409],[-137.071938,58.395196],[-137.544002,58.581179],[-137.556921,58.589964],[-137.564621,58.625879],[-137.597074,58.644224],[-137.661101,58.659934],[-137.749984,58.707063],[-137.863698,58.785559],[-137.934004,58.846873],[-137.960876,58.891005],[-138.026918,58.941467],[-138.240704,59.046835],[-138.35248,59.087298],[-138.451337,59.110087],[-138.537171,59.1151],[-138.560322,59.129156],[-138.520687,59.152255],[-138.514899,59.165898],[-138.704215,59.18755],[-138.884334,59.236901],[-139.340972,59.375653],[-139.576824,59.462443],[-139.714464,59.503965],[-139.773272,59.527297],[-139.79911,59.546262],[-139.766063,59.56608],[-139.674105,59.586802],[-139.611628,59.610315],[-139.513055,59.698114],[-139.505588,59.726329],[-139.558504,59.790201],[-139.582172,59.848311],[-139.581139,59.880531],[-139.56915,59.912364],[-139.554112,59.933319],[-139.512306,59.95355],[-139.483005,59.963782],[-139.446883,59.956857],[-139.330973,59.877017],[-139.314643,59.847923],[-139.320018,59.738731],[-139.286712,59.610935],[-139.276248,59.62034],[-139.265602,59.662612],[-139.258729,59.74333],[-139.245707,59.782088],[-139.220799,59.819863],[-139.178863,59.839862],[-139.048303,59.828235],[-138.988074,59.835004],[-139.242503,59.892779],[-139.402493,60.000989],[-139.431432,60.012255],[-139.51892,60.017112],[-139.611654,59.973446],[-139.850192,59.830715],[-139.91688,59.805678],[-140.216733,59.726639],[-140.419847,59.710723],[-140.648386,59.723177],[-140.843155,59.74886],[-141.33191,59.873762],[-141.408288,59.902804],[-141.294626,59.980008],[-141.289949,60.004141],[-141.329559,60.082819],[-141.362167,60.105298],[-141.408727,60.117674],[-141.421698,60.108838],[-141.422163,60.085506],[-141.409709,60.042279],[-141.447071,60.019438],[-141.530193,59.994788],[-141.670158,59.96988],[-142.104111,60.033442],[-142.548606,60.086048],[-142.945636,60.096952],[-143.506119,60.055043],[-143.805067,60.0129],[-143.979501,60.008792],[-144.147217,60.016389],[-144.160937,60.045818],[-144.084301,60.063027],[-144.088538,60.084343],[-144.185483,60.150747],[-144.332632,60.191003],[-144.529984,60.20524],[-144.642949,60.224645],[-144.671577,60.249243],[-144.741392,60.272704],[-144.852419,60.29508],[-144.901331,60.335181],[-144.86247,60.459204],[-144.824436,60.533618],[-144.786557,60.584623],[-144.691137,60.669114],[-144.724416,60.662861],[-144.86309,60.600901],[-144.984013,60.536925],[-145.096022,60.453675],[-145.16271,60.415382],[-145.248286,60.380139],[-145.381767,60.388562],[-145.563151,60.440704],[-145.718438,60.467576],[-145.847733,60.469229],[-145.898893,60.478169],[-145.810629,60.524678],[-145.759831,60.561988],[-145.690223,60.621985],[-145.674927,60.65113],[-146.149032,60.66069],[-146.166421,60.692291],[-146.167093,60.715545],[-146.182338,60.734743],[-146.251042,60.749057],[-146.347186,60.738128],[-146.50299,60.700791],[-146.570479,60.729162],[-146.546398,60.74513],[-146.495523,60.756809],[-146.391989,60.810862],[-146.531929,60.838871],[-146.603552,60.870962],[-146.638434,60.897317],[-146.636057,60.992531],[-146.599108,61.053535],[-146.28489,61.112652],[-146.384393,61.135855],[-146.582727,61.127845],[-146.715897,61.077538],[-146.874027,61.004907],[-146.98017,60.977803],[-147.034327,60.996174],[-147.105951,61.00253],[-147.195041,60.996846],[-147.254908,60.978294],[-147.285604,60.946771],[-147.32108,60.925506],[-147.361387,60.914499],[-147.390559,60.918039],[-147.433424,60.950285],[-147.52329,60.970336],[-147.567266,60.994934],[-147.592588,60.979431],[-147.623283,60.933025],[-147.655685,60.909512],[-147.807613,60.88538],[-147.891122,60.889875],[-147.990755,60.94827],[-148.005121,60.968579],[-147.971169,61.019066],[-147.751854,61.218951],[-147.773791,61.217814],[-147.84482,61.186395],[-147.986362,61.106503],[-148.049407,61.08268],[-148.157928,61.079683],[-148.208674,61.088261],[-148.270014,61.081802],[-148.34187,61.060408],[-148.388792,61.036947],[-148.410755,61.01147],[-148.395846,61.007129],[-148.287377,61.036249],[-148.225882,61.044052],[-148.208674,61.029919],[-148.293139,60.939691],[-148.344428,60.853547],[-148.393314,60.831894],[-148.471061,60.835512],[-148.556146,60.826985],[-148.557387,60.802904],[-148.398688,60.734019],[-148.341276,60.72433],[-148.267895,60.699706],[-148.256733,60.675315],[-148.284251,60.609324],[-148.304999,60.583331],[-148.338434,60.569843],[-148.46778,60.572065],[-148.509586,60.565244],[-148.596635,60.5238],[-148.640121,60.489435],[-148.624282,60.486437],[-148.549144,60.514808],[-148.439823,60.530001],[-148.296369,60.532068],[-148.189476,60.547106],[-148.119196,60.575166],[-148.050699,60.567208],[-147.984011,60.523334],[-147.96409,60.484887],[-147.990961,60.451866],[-148.045997,60.428302],[-148.129196,60.41422],[-148.181699,60.393058],[-148.203558,60.36492],[-148.215857,60.32314],[-148.218648,60.267691],[-148.197615,60.167775],[-148.213764,60.154261],[-148.245003,60.14682],[-148.291356,60.145476],[-148.333111,60.122015],[-148.430702,59.989129],[-148.465093,59.974686],[-148.506072,59.988948],[-148.5424,59.987398],[-148.574078,59.970087],[-148.643583,59.956857],[-148.750863,59.947762],[-148.842744,59.951225],[-149.004259,59.979983],[-149.07012,60.00024],[-149.12159,60.033519],[-149.266594,59.998276],[-149.304938,60.01365],[-149.395268,60.105737],[-149.414854,60.10026],[-149.432217,60.001041],[-149.459709,59.966263],[-149.549161,59.894329],[-149.598047,59.770461],[-149.612878,59.766843],[-149.629621,59.784672],[-149.684656,59.895311],[-149.713854,59.919599],[-149.794779,59.85583],[-149.803667,59.832731],[-149.782454,59.750333],[-149.80129,59.737956],[-149.965001,59.782294],[-150.005309,59.784413],[-150.015954,59.776972],[-149.960143,59.713048],[-149.966525,59.690052],[-150.198062,59.566545],[-150.258471,59.570964],[-150.296505,59.583263],[-150.338157,59.581325],[-150.485331,59.535281],[-150.526,59.537296],[-150.581552,59.564582],[-150.607391,59.563393],[-150.621162,59.535074],[-150.622894,59.479626],[-150.677464,59.426967],[-150.852776,59.341856],[-150.899311,59.302685],[-150.934503,59.249097],[-150.960754,59.243981],[-151.06359,59.278398],[-151.182756,59.300773],[-151.199241,59.289663],[-151.163016,59.256952],[-151.170716,59.236901],[-151.222289,59.229408],[-151.287504,59.232302],[-151.366362,59.245583],[-151.477002,59.230545],[-151.61937,59.187292],[-151.7382,59.188532],[-151.903849,59.259768],[-151.949505,59.265065],[-151.964052,59.285115],[-151.931703,59.342735],[-151.884625,59.38635],[-151.849951,59.406348],[-151.692596,59.462185],[-151.51271,59.4827],[-151.39959,59.516316],[-151.262131,59.585614],[-151.189422,59.637678],[-151.046485,59.771804],[-151.057337,59.782165],[-151.089428,59.789426],[-151.403673,59.66225],[-151.450104,59.650416],[-151.512607,59.651295],[-151.763832,59.700026],[-151.816929,59.720903],[-151.853206,59.782088],[-151.783469,59.921149],[-151.734505,59.988328],[-151.611877,60.092043],[-151.451474,60.202656],[-151.395973,60.274461],[-151.312671,60.466439],[-151.317528,60.553565],[-151.355045,60.659864],[-151.356466,60.722961],[-151.321792,60.742908],[-150.953778,60.841196],[-150.779473,60.914809],[-150.441251,61.023562],[-150.349138,61.022632],[-150.281493,60.985218],[-150.20279,60.955246],[-150.113054,60.932819],[-149.997557,60.935144],[-149.856274,60.962274],[-149.632463,60.95199],[-149.172827,60.880419],[-149.075081,60.876414],[-149.071309,60.885535],[-149.142235,60.935687],[-149.459115,60.964755],[-149.592491,60.993823],[-149.96774,61.121748],[-150.053264,61.171099],[-150.018538,61.19425],[-149.92676,61.213267],[-149.895289,61.231715],[-149.882009,61.263703],[-149.829195,61.307524],[-149.736901,61.363335],[-149.59598,61.417285],[-149.329071,61.497384],[-149.433535,61.500794],[-149.625435,61.486015],[-149.69525,61.470718],[-149.823743,61.413358],[-149.873689,61.372998],[-149.945209,61.294243],[-149.975698,61.279361],[-150.10892,61.267914],[-150.471792,61.259982],[-150.533209,61.300238],[-150.567238,61.306801],[-150.612248,61.301142],[-150.945484,61.198229],[-151.064986,61.145725],[-151.150148,61.085832],[-151.281872,61.041959],[-151.460129,61.014106],[-151.593506,60.979637],[-151.733963,60.910727],[-151.78166,60.857939],[-151.784425,60.833135],[-151.750473,60.754871],[-151.785122,60.74022],[-151.866177,60.734071],[-151.996221,60.682239],[-152.270726,60.528115],[-152.306589,60.472226],[-152.305065,60.453003],[-152.260313,60.40944],[-152.291526,60.381121],[-152.368834,60.336343],[-152.540916,60.265417],[-152.653932,60.238442],[-152.727313,60.237073],[-152.797903,60.247176],[-152.923373,60.292858],[-153.025021,60.295648],[-153.031274,60.28924],[-152.892936,60.24038],[-152.752376,60.17749],[-152.664759,60.125271],[-152.63011,60.083775],[-152.628559,60.04109],[-152.660108,59.997217],[-152.759456,59.920891],[-152.856917,59.898101],[-153.10605,59.875054],[-153.186355,59.856864],[-153.211211,59.842704],[-153.040085,59.81051],[-153.024633,59.793999],[-153.048146,59.73005],[-153.093621,59.709121],[-153.236171,59.670932],[-153.363992,59.659873],[-153.383474,59.667211],[-153.359626,59.717492],[-153.366447,59.729843],[-153.414403,59.740126],[-153.482616,59.720954],[-153.652528,59.647006],[-153.670718,59.63481],[-153.609378,59.615018],[-153.622271,59.598481],[-153.714333,59.545255],[-153.752599,59.509856],[-153.814146,59.473734],[-154.088315,59.363302],[-154.06749,59.336378],[-154.138803,59.240157],[-154.178336,59.155588],[-154.129811,59.119854],[-153.899541,59.078048],[-153.78792,59.067919],[-153.656378,59.038671],[-153.418279,58.959967],[-153.338955,58.908549],[-153.32707,58.884313],[-153.334408,58.857881],[-153.362933,58.822198],[-153.437606,58.754838],[-153.617336,58.654715],[-153.698572,58.626344],[-153.82151,58.604123],[-153.861947,58.587845],[-154.019896,58.492967],[-154.062451,58.441756],[-154.055733,58.397159],[-154.085886,58.365843],[-154.289026,58.304348],[-154.281792,58.293445],[-154.208049,58.288794],[-154.235128,58.234637],[-154.247014,58.159422],[-154.282283,58.146787],[-154.409226,58.147304],[-154.570585,58.118055],[-154.581954,58.109787],[-154.584926,58.055681],[-155.006864,58.016046],[-155.099261,57.913313],[-155.147372,57.881816],[-155.312737,57.807118],[-155.413971,57.777042],[-155.529623,57.758904],[-155.590239,57.733608],[-155.595846,57.701078],[-155.628686,57.673069],[-155.728939,57.626612],[-155.777979,57.568218],[-155.813688,57.559019],[-156.000188,57.544963],[-156.037344,57.526515],[-156.055379,57.447579],[-156.089898,57.445073],[-156.155993,57.463444],[-156.242189,57.449207],[-156.435872,57.359962],[-156.478402,57.327871],[-156.473699,57.310714],[-156.443572,57.293661],[-156.397632,57.240589],[-156.4005,57.204829],[-156.475146,57.105197],[-156.50132,57.089797],[-156.592038,57.065096],[-156.628987,57.009983],[-156.712651,57.016055],[-156.779882,57.005616],[-156.823859,56.968823],[-156.871711,56.947635],[-156.923439,56.94208],[-156.988448,56.912935],[-157.066686,56.860199],[-157.139137,56.826558],[-157.205773,56.812062],[-157.270576,56.808497],[-157.333569,56.815886],[-157.390233,56.809814],[-157.440565,56.790332],[-157.489658,56.75974],[-157.528725,56.673182],[-157.578386,56.63445],[-157.609754,56.627707],[-157.673884,56.633443],[-157.770726,56.651684],[-157.869092,56.645225],[-158.027868,56.592153],[-158.078304,56.552026],[-157.978259,56.543164],[-157.928701,56.531692],[-157.929993,56.520478],[-157.982186,56.509574],[-158.070966,56.510349],[-158.124374,56.501048],[-158.189383,56.478155],[-158.352499,56.453505],[-158.414408,56.435832],[-158.537398,56.335425],[-158.552151,56.312713],[-158.536364,56.307674],[-158.467324,56.318268],[-158.386141,56.301577],[-158.343973,56.280338],[-158.316998,56.254138],[-158.291418,56.20365],[-158.275657,56.19626],[-158.431849,56.111459],[-158.476109,56.075492],[-158.504686,56.062108],[-158.523342,56.072443],[-158.542669,56.16683],[-158.554451,56.18285],[-158.591167,56.18453],[-158.626746,56.154712],[-158.704881,56.043117],[-158.789863,55.986919],[-159.429436,55.842742],[-159.523229,55.810005],[-159.541316,55.748484],[-159.567619,55.695205],[-159.610071,55.652805],[-159.659655,55.625907],[-159.670274,55.645028],[-159.665339,55.794889],[-159.678491,55.824655],[-159.743035,55.843775],[-159.771379,55.841114],[-159.810421,55.832716],[-159.87437,55.800289],[-159.913541,55.792202],[-159.962298,55.794889],[-160.045652,55.762927],[-160.243805,55.660531],[-160.373203,55.635106],[-160.407413,55.613815],[-160.462681,55.557798],[-160.499319,55.537282],[-160.553502,55.535499],[-160.625229,55.552372],[-160.6829,55.540434],[-160.726515,55.499662],[-160.770827,55.483539],[-160.896737,55.513614],[-160.952186,55.493047],[-161.024223,55.440441],[-161.099515,55.405714],[-161.178012,55.388867],[-161.381927,55.371298],[-161.46386,55.382511],[-161.480525,55.397808],[-161.476701,55.464884],[-161.443809,55.513304],[-161.413346,55.536145],[-161.372728,55.556299],[-161.313301,55.558625],[-161.202093,55.543535],[-161.214702,55.559761],[-161.255113,55.578985],[-161.357458,55.612187],[-161.45877,55.629137],[-161.516957,55.618414],[-161.598761,55.592834],[-161.654313,55.563353],[-161.683562,55.529944],[-161.720382,55.420726],[-161.741569,55.391141],[-161.98034,55.198647],[-162.073978,55.139322],[-162.166582,55.143766],[-162.211489,55.121339],[-162.274637,55.073228],[-162.332928,55.050232],[-162.386362,55.052351],[-162.42791,55.061497],[-162.457494,55.077698],[-162.452378,55.092813],[-162.412536,55.106869],[-162.426824,55.14542],[-162.495244,55.208465],[-162.541882,55.242727],[-162.630378,55.246654],[-162.64415,55.217999],[-162.614306,55.071471],[-162.618906,55.03845],[-162.674354,54.996592],[-162.819565,54.94998],[-162.86504,54.954527],[-162.995885,55.046459],[-163.119624,55.064701],[-163.127815,55.034781],[-163.10022,54.973647],[-163.131122,54.916545],[-163.220574,54.86337],[-163.288632,54.837583],[-163.335296,54.839185],[-163.33788,54.876392],[-163.296332,54.949256],[-163.285687,55.009976],[-163.305944,55.058552],[-163.303644,55.095862],[-163.278814,55.12183],[-163.114483,55.193944],[-163.04534,55.204719],[-163.008236,55.186864],[-162.961985,55.183815],[-162.906588,55.195546],[-162.871603,55.218594],[-162.857134,55.25301],[-162.786234,55.29709],[-162.658981,55.350782],[-162.513356,55.450001],[-162.349361,55.594746],[-162.157125,55.719442],[-161.936622,55.82419],[-161.697334,55.907208],[-161.215632,56.021413],[-161.178606,56.014462],[-161.222583,55.977436],[-161.192507,55.954311],[-161.145145,55.95134],[-160.968645,55.969607],[-160.898649,55.993637],[-160.877823,55.970486],[-160.90237,55.941289],[-161.00841,55.91173],[-161.005387,55.887157],[-160.851313,55.771893],[-160.802841,55.754427],[-160.762585,55.756597],[-160.745506,55.77148],[-160.758399,55.854627],[-160.706335,55.87044],[-160.599727,55.874316],[-160.530248,55.863464],[-160.497898,55.837884],[-160.43692,55.816697],[-160.347313,55.799928],[-160.291709,55.805069],[-160.270108,55.8322],[-160.308504,55.864472],[-160.479863,55.935449],[-160.527457,55.96506],[-160.539058,56.006298],[-160.514719,56.059111],[-160.460846,56.137504],[-160.377492,56.241477],[-160.302044,56.314134],[-160.149289,56.396351],[-160.046246,56.437021],[-159.785073,56.561612],[-159.283089,56.688581],[-159.159039,56.770075],[-158.990393,56.860044],[-158.91802,56.882161],[-158.91802,56.847435],[-158.894895,56.816429],[-158.782086,56.795758],[-158.708834,56.788575],[-158.675167,56.79488],[-158.665917,56.827927],[-158.681032,56.887742],[-158.684805,56.944225],[-158.677234,56.997374],[-158.660801,57.039413],[-158.585612,57.114085],[-158.473732,57.199093],[-158.320925,57.297898],[-158.224497,57.34265],[-158.133546,57.366421],[-158.045696,57.409468],[-157.894336,57.511374],[-157.84576,57.528065],[-157.737188,57.548167],[-157.697397,57.539279],[-157.674039,57.513699],[-157.64554,57.497809],[-157.535288,57.483468],[-157.461908,57.506206],[-157.473897,57.518195],[-157.53348,57.525895],[-157.571617,57.540674],[-157.607584,57.601446],[-157.68068,57.638084],[-157.697216,57.679425],[-157.683987,57.743918],[-157.621174,57.895226],[-157.610865,58.050824],[-157.555029,58.139966],[-157.442684,58.172186],[-157.193707,58.194174],[-157.339383,58.234534],[-157.393591,58.234818],[-157.488392,58.253706],[-157.524436,58.350754],[-157.523609,58.421344],[-157.4609,58.503019],[-157.228847,58.640917],[-156.974651,58.736338],[-157.009041,58.744167],[-157.040486,58.772537],[-156.923233,58.963688],[-156.808898,59.134272],[-156.963359,58.988854],[-157.142031,58.877647],[-157.66572,58.748507],[-158.021925,58.640194],[-158.190933,58.614252],[-158.30258,58.641796],[-158.389629,58.745665],[-158.439316,58.782614],[-158.503188,58.850362],[-158.476264,58.938367],[-158.425622,58.999293],[-158.314491,59.009318],[-158.189228,58.97994],[-158.080526,58.977434],[-158.220595,59.037482],[-158.422805,59.08983],[-158.514427,59.072829],[-158.584475,58.987795],[-158.678268,58.929375],[-158.760588,58.950123],[-158.809474,58.973868],[-158.775548,58.902555],[-158.837741,58.793957],[-158.861383,58.718768],[-158.772112,58.52033],[-158.788623,58.440955],[-158.950706,58.404549],[-159.082687,58.469765],[-159.358226,58.721274],[-159.454215,58.792897],[-159.670274,58.911133],[-159.741433,58.894287],[-159.832202,58.83597],[-159.920207,58.819873],[-160.152596,58.905914],[-160.260807,58.971543],[-160.363126,59.051176],[-160.519912,59.007303],[-160.656648,58.955058],[-160.817078,58.871704],[-160.92428,58.872427],[-161.215916,58.800959],[-161.246845,58.79946],[-161.287876,58.760961],[-161.328106,58.743701],[-161.361334,58.669546],[-161.755444,58.61203],[-162.144929,58.644224],[-162.008684,58.684997],[-161.856472,58.717088],[-161.724387,58.794293],[-161.780533,58.897413],[-161.790274,58.949968],[-161.788672,59.016398],[-161.644391,59.109674],[-161.79446,59.109467],[-161.890759,59.076084],[-161.981038,59.146158],[-162.023309,59.283979],[-161.920137,59.365472],[-161.872233,59.428259],[-161.831693,59.514507],[-161.828695,59.588611],[-161.908639,59.714133],[-162.138134,59.980034],[-162.242494,60.178317],[-162.421347,60.283969],[-162.287789,60.456879],[-162.138883,60.614337],[-161.946595,60.684823],[-161.961995,60.695339],[-162.068267,60.694874],[-162.138031,60.685547],[-162.199913,60.63431],[-162.265025,60.595216],[-162.468708,60.394686],[-162.599682,60.296992],[-162.684974,60.268957],[-162.547721,60.231053],[-162.526947,60.199117],[-162.500489,60.126563],[-162.535655,60.038403],[-162.570743,59.989724],[-162.73262,59.993651],[-162.877856,59.922751],[-163.219386,59.845598],[-163.680391,59.801518],[-163.906889,59.806789],[-164.142844,59.896758],[-164.141112,59.948899],[-164.131526,59.994219],[-164.470498,60.1493],[-164.662269,60.303813],[-164.799961,60.307224],[-164.919747,60.348461],[-165.061134,60.41254],[-165.048731,60.464242],[-165.026511,60.500649],[-165.113275,60.526073],[-165.224509,60.523567],[-165.353829,60.541215],[-165.015994,60.740014],[-164.8998,60.873132],[-164.805155,60.892046],[-164.682371,60.87153],[-164.512924,60.819027],[-164.370065,60.795902],[-164.318518,60.771278],[-164.265653,60.724666],[-164.321412,60.646634],[-164.372339,60.591857],[-164.309681,60.606714],[-164.131837,60.69149],[-163.999571,60.766059],[-163.936138,60.758307],[-163.894926,60.745181],[-163.82139,60.668287],[-163.730001,60.589971],[-163.528695,60.664566],[-163.42095,60.757429],[-163.511874,60.79815],[-163.62303,60.822231],[-163.906527,60.853805],[-163.837307,60.880419],[-163.655431,60.877473],[-163.586909,60.902975],[-163.65892,60.938219],[-163.749018,60.969715],[-163.99461,60.864709],[-164.441559,60.86998],[-164.753969,60.93132],[-165.065604,60.920675],[-165.114826,60.932819],[-165.175468,60.965685],[-164.999923,61.043664],[-164.875564,61.086763],[-164.868975,61.111748],[-164.941193,61.114875],[-165.077076,61.094204],[-165.137718,61.130119],[-165.127771,61.192441],[-165.150043,61.18686],[-165.203761,61.152831],[-165.279803,61.169652],[-165.344889,61.197712],[-165.310808,61.227633],[-165.243939,61.268767],[-165.273653,61.274865],[-165.333675,61.266131],[-165.392044,61.21231],[-165.37928,61.168773],[-165.380778,61.106296],[-165.480462,61.094876],[-165.565883,61.102369],[-165.627585,61.165207],[-165.69138,61.299928],[-165.863953,61.335688],[-165.906276,61.403798],[-165.79711,61.491182],[-165.845324,61.536244],[-165.961311,61.550869],[-166.093991,61.506737],[-166.152721,61.545959],[-166.163521,61.589006],[-166.168095,61.650811],[-166.131172,61.657322],[-166.100502,61.645075],[-165.834575,61.679388],[-165.808918,61.696079],[-166.019938,61.748273],[-166.078824,61.803101],[-165.991387,61.834185],[-165.833851,61.836794],[-165.612806,61.869299],[-165.705797,61.927435],[-165.725253,61.959371],[-165.743934,62.011693],[-165.70727,62.100447],[-165.447648,62.303898],[-165.194511,62.473525],[-165.115601,62.51267],[-164.999716,62.533806],[-164.891868,62.51758],[-164.779213,62.481148],[-164.757871,62.496728],[-164.796111,62.511637],[-164.844403,62.581038],[-164.687978,62.608272],[-164.596304,62.686691],[-164.589431,62.709351],[-164.688986,62.676769],[-164.792701,62.623206],[-164.818668,62.677053],[-164.845411,62.800973],[-164.799651,62.918072],[-164.764072,62.970627],[-164.677462,63.020469],[-164.428123,63.040442],[-164.38425,63.030468],[-164.375077,63.053981],[-164.525198,63.12762],[-164.463289,63.185213],[-164.409055,63.215056],[-164.1076,63.26172],[-163.942856,63.247199],[-163.736228,63.19281],[-163.616312,63.125165],[-163.633753,63.090413],[-163.663571,63.070311],[-163.725737,63.04778],[-163.748992,63.030339],[-163.737855,63.016412],[-163.64936,63.056772],[-163.504355,63.105864],[-163.423172,63.084522],[-163.358835,63.045764],[-163.287857,63.046436],[-163.062238,63.079716],[-162.947723,63.115011],[-162.807757,63.206582],[-162.621489,63.265803],[-162.3598,63.452587],[-162.282802,63.529197],[-162.193299,63.54098],[-162.112477,63.534184],[-162.056227,63.47132],[-161.973984,63.452949],[-161.505434,63.468168],[-161.266017,63.496977],[-161.099722,63.55793],[-160.926709,63.660559],[-160.826509,63.72934],[-160.778553,63.818947],[-160.840461,63.934909],[-160.903972,64.031182],[-160.987532,64.251272],[-161.220102,64.396561],[-161.385673,64.439943],[-161.490706,64.433768],[-161.414612,64.526372],[-161.193049,64.516424],[-161.048795,64.534459],[-160.931954,64.579108],[-160.893714,64.612904],[-160.836017,64.681944],[-160.855912,64.755608],[-160.88697,64.795554],[-160.967482,64.839557],[-161.063238,64.903997],[-161.130185,64.925443],[-161.1869,64.924048],[-161.466366,64.794857],[-161.634004,64.79248],[-161.759372,64.816251],[-161.868331,64.742663],[-162.172266,64.678068],[-162.334634,64.612852],[-162.635726,64.450847],[-162.711071,64.377518],[-162.807008,64.374211],[-162.876435,64.516424],[-163.203883,64.652023],[-163.302843,64.605902],[-163.248299,64.563295],[-163.174091,64.532961],[-163.051747,64.519731],[-163.104509,64.478597],[-163.144352,64.42382],[-163.267057,64.475186],[-163.486191,64.549807],[-163.713102,64.588254],[-164.303971,64.583913],[-164.691828,64.507432],[-164.727485,64.523297],[-164.764924,64.529653],[-164.82952,64.511386],[-164.85727,64.480302],[-164.89949,64.460665],[-164.978762,64.453663],[-165.138158,64.465213],[-165.446175,64.512858],[-166.142773,64.582777],[-166.325113,64.62572],[-166.481383,64.728091],[-166.478102,64.797544],[-166.408674,64.826948],[-166.415237,64.926528],[-166.550862,64.952987],[-166.826943,65.096079],[-166.92841,65.157057],[-166.906396,65.163826],[-166.856786,65.14729],[-166.762529,65.134913],[-166.531018,65.154731],[-166.451643,65.247336],[-166.279664,65.273794],[-166.121483,65.26072],[-166.157036,65.285834],[-166.197395,65.305575],[-166.609386,65.352755],[-166.665377,65.338286],[-167.403988,65.422105],[-167.987234,65.567781],[-168.035009,65.595609],[-168.088365,65.65775],[-168.009688,65.719141],[-167.930571,65.748158],[-167.92698,65.714335],[-167.91437,65.681185],[-167.58005,65.758312],[-167.405306,65.85934],[-167.074215,65.877065],[-166.997217,65.904944],[-166.894459,65.959178],[-166.747672,66.051834],[-166.540113,66.100643],[-166.398727,66.144438],[-166.214578,66.170277],[-166.057404,66.12723],[-166.008931,66.121339],[-165.723677,66.112554],[-165.62991,66.131209],[-165.58999,66.14511],[-165.560225,66.167073],[-165.840259,66.245052],[-165.811863,66.288461],[-165.776155,66.319053],[-165.449405,66.4099],[-165.198309,66.439924],[-165.06395,66.437831],[-164.674129,66.555008],[-164.460499,66.588442],[-164.058275,66.610767],[-163.727675,66.616451],[-163.638223,66.574671],[-163.815706,66.583481],[-163.89397,66.575885],[-163.838237,66.561571],[-163.775476,66.531107],[-163.793718,66.492634],[-163.902858,66.378378],[-163.89397,66.28691],[-163.964973,66.2573],[-164.033755,66.215545],[-163.695377,66.083822],[-163.171456,66.07545],[-162.886486,66.099222],[-162.721768,66.059792],[-162.586866,66.050852],[-162.214279,66.071058],[-161.933676,66.042894],[-161.816319,66.053643],[-161.556852,66.25053],[-161.455411,66.281407],[-161.345082,66.247171],[-161.201085,66.219369],[-161.10923,66.239523],[-161.034299,66.188803],[-161.069543,66.294636],[-161.120289,66.334323],[-161.544423,66.407032],[-161.828153,66.370833],[-161.916907,66.411838],[-161.887581,66.493073],[-162.19118,66.693139],[-162.317735,66.733705],[-162.467442,66.735643],[-162.543639,66.805122],[-162.607433,66.894393],[-162.47832,66.930799],[-162.361609,66.947309],[-162.253553,66.918629],[-162.131416,66.801349],[-162.01765,66.784115],[-162.050723,66.667275],[-161.909595,66.559607],[-161.591036,66.45951],[-161.335935,66.496355],[-161.155791,66.495296],[-161.048123,66.474237],[-160.784496,66.384372],[-160.65055,66.373107],[-160.231713,66.420287],[-160.22732,66.508525],[-160.262564,66.572448],[-160.360878,66.612524],[-160.643781,66.604979],[-160.864026,66.670866],[-161.051456,66.652779],[-161.39805,66.551855],[-161.571734,66.591595],[-161.680901,66.645519],[-161.856678,66.700322],[-161.878744,66.803933],[-161.731311,66.922789],[-161.622196,66.979323],[-161.719942,67.020561],[-161.965431,67.049551],[-162.391529,67.019889],[-162.41158,67.0603],[-162.409409,67.103966],[-162.58312,67.018494],[-162.761403,67.036425],[-163.001699,67.027279],[-163.531821,67.102571],[-163.72057,67.195537],[-163.79979,67.270985],[-163.942701,67.477587],[-164.12517,67.606726],[-165.386024,68.045588],[-165.95958,68.155892],[-166.235946,68.277952],[-166.409114,68.307976],[-166.574478,68.320249],[-166.7863,68.3596],[-166.643905,68.408021],[-166.545901,68.424351],[-166.647859,68.373811],[-166.570396,68.361073],[-166.447044,68.390244],[-166.380536,68.425126],[-166.282946,68.573231],[-166.182047,68.797196],[-166.209074,68.885356],[-165.509479,68.86758],[-165.043951,68.882462],[-164.889697,68.902461],[-164.302369,68.93649],[-164.150182,68.961166],[-163.867925,69.036665],[-163.535671,69.170093],[-163.250547,69.34538],[-163.205201,69.392509],[-163.187114,69.380468],[-163.161456,69.387961],[-163.131019,69.454366],[-163.093554,69.610713],[-162.952115,69.75812],[-162.350395,70.09412],[-162.071161,70.227187],[-161.977963,70.287648],[-161.880966,70.331754],[-161.812598,70.289844],[-161.779939,70.277364],[-161.761077,70.25765],[-161.818386,70.248426],[-161.911946,70.205482],[-162.042377,70.176647],[-162.073874,70.161971],[-161.997393,70.165227],[-161.768157,70.196542],[-161.638991,70.234525],[-160.996266,70.304598],[-160.647656,70.42056],[-160.634117,70.446398],[-160.117146,70.591195],[-160.045626,70.585614],[-159.96315,70.568148],[-160.106397,70.472572],[-160.005551,70.447535],[-160.09508,70.333278],[-159.907547,70.33147],[-159.865689,70.278837],[-159.855224,70.324183],[-159.857524,70.389244],[-159.842641,70.453013],[-159.814994,70.497093],[-159.683297,70.477171],[-159.386751,70.524533],[-159.746213,70.53045],[-159.961833,70.634061],[-160.081593,70.634862],[-159.680894,70.786791],[-159.314508,70.878516],[-159.231722,70.876759],[-159.191725,70.859654],[-159.183172,70.831956],[-159.262211,70.813843],[-159.339855,70.781261],[-159.304147,70.752529],[-159.251153,70.748447],[-159.075065,70.772063],[-158.996284,70.801596],[-158.620933,70.799038],[-158.510836,70.820122],[-158.484378,70.841051],[-157.998464,70.845288],[-157.909374,70.86012],[-157.60562,70.941252],[-157.324733,71.039618],[-157.195309,71.093284],[-156.973359,71.230019],[-156.783293,71.318955],[-156.470237,71.407683],[-156.395254,71.396676],[-156.496695,71.37908],[-156.567234,71.341537],[-156.469979,71.291566],[-155.811156,71.18842],[-155.645584,71.182787],[-155.579439,71.121086],[-155.634577,71.06158],[-155.804334,70.995434],[-156.146587,70.927816],[-156.041943,70.902236],[-155.973523,70.841981]]]]},"type":"Feature","properties":{"ISO_A2":"US","NAME":"United States"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[71.779629,39.950223],[71.752964,39.907151],[71.705835,39.917409],[71.668938,39.946115],[71.681237,39.968672],[71.736583,39.980971],[71.765315,39.99327],[71.789913,39.995337],[71.779629,39.950223]]],[[[71.206176,39.892552],[71.156257,39.883457],[71.064221,39.88493],[71.011769,39.895136],[71.043654,39.97632],[71.044842,39.992546],[71.041018,39.994898],[71.014508,40.005775],[70.974356,40.038874],[70.960661,40.087967],[70.976268,40.133261],[71.005413,40.152278],[71.02412,40.149152],[71.080344,40.079879],[71.130263,40.059674],[71.228655,40.04815],[71.179304,39.979834],[71.215633,39.906789],[71.206176,39.892552]]],[[[61.990253,43.492126],[62.072005,43.489335],[62.237835,43.509567],[62.459371,43.536645],[62.634451,43.558013],[62.846221,43.583903],[63.047708,43.608501],[63.207026,43.627983],[63.444841,43.61323],[63.679659,43.598631],[63.848124,43.588115],[64.013282,43.577857],[64.208825,43.565713],[64.318121,43.558944],[64.443178,43.551192],[64.496146,43.57163],[64.604098,43.613462],[64.706056,43.652969],[64.811786,43.693922],[64.905475,43.714696],[65.003144,43.649067],[65.084844,43.573671],[65.170937,43.494193],[65.270466,43.417531],[65.366532,43.372004],[65.496189,43.310535],[65.570706,43.205167],[65.670235,43.064581],[65.735657,42.972106],[65.802992,42.87697],[65.901073,42.914513],[66.005615,42.954588],[66.100286,42.990839],[66.088814,42.873404],[66.078479,42.766641],[66.062717,42.605152],[66.04985,42.472731],[66.015537,42.314782],[66.013211,42.194479],[66.011196,42.088749],[66.009594,42.004878],[66.1932,42.001106],[66.328799,41.998341],[66.49866,41.994879],[66.514989,41.889381],[66.537882,41.741277],[66.572557,41.60697],[66.601651,41.494315],[66.645317,41.348639],[66.668675,41.270763],[66.709655,41.179141],[66.749755,41.157075],[66.814299,41.142399],[67.03873,41.153302],[67.224972,41.162372],[67.371578,41.169529],[67.528003,41.177151],[67.73507,41.187254],[67.805092,41.163922],[67.865708,41.180252],[67.93573,41.196581],[67.991385,41.130048],[68.019704,41.096252],[68.059391,41.061267],[68.113031,41.028607],[68.090345,40.960265],[68.057066,40.860607],[68.047712,40.809292],[68.112256,40.75405],[68.160264,40.721752],[68.291884,40.656123],[68.41508,40.619433],[68.495695,40.608633],[68.572642,40.622637],[68.60065,40.659973],[68.593674,40.711288],[68.55657,40.765135],[68.559257,40.829291],[68.584062,40.876265],[68.662817,40.961531],[68.737128,41.041888],[68.851229,41.123847],[68.98688,41.20503],[69.043466,41.264122],[69.064963,41.366933],[69.15364,41.42525],[69.249293,41.460234],[69.368304,41.490569],[69.400963,41.541909],[69.565139,41.629036],[69.663893,41.672134],[69.788123,41.6973],[69.959999,41.754041],[70.095598,41.820497],[70.225874,41.946019],[70.328917,42.027978],[70.415992,42.078543],[70.489114,42.080248],[70.540118,42.03945],[70.584302,42.036039],[70.613241,42.054746],[70.66254,42.107456],[70.71525,42.168667],[70.764549,42.194169],[70.860409,42.207243],[70.946812,42.248662],[70.979006,42.266568],[71.036005,42.28468],[71.129953,42.250005],[71.212636,42.206442],[71.232324,42.186263],[71.228552,42.162905],[71.032181,42.077794],[70.910328,42.038003],[70.856585,42.03082],[70.841909,42.019632],[70.803358,41.922635],[70.727704,41.90522],[70.630914,41.875506],[70.562908,41.830806],[70.454956,41.72505],[70.180967,41.571416],[70.176988,41.539997],[70.200914,41.514469],[70.290056,41.496847],[70.407827,41.449563],[70.471389,41.412666],[70.645848,41.460364],[70.688843,41.449822],[70.734422,41.400522],[70.782481,41.262495],[70.860461,41.2249],[70.962573,41.195987],[71.025929,41.186582],[71.11073,41.152631],[71.223384,41.139918],[71.298832,41.152475],[71.39309,41.123382],[71.408386,41.136042],[71.42084,41.34187],[71.50006,41.307479],[71.545587,41.308073],[71.585584,41.33324],[71.606203,41.367424],[71.619639,41.435456],[71.602276,41.503255],[71.637519,41.534183],[71.664908,41.541211],[71.685165,41.532995],[71.697205,41.51558],[71.700668,41.454007],[71.757719,41.428014],[71.792445,41.413131],[71.825725,41.361042],[71.857971,41.311381],[71.878641,41.195005],[71.958481,41.187047],[72.052429,41.164749],[72.115371,41.186582],[72.164257,41.17374],[72.180949,41.118472],[72.180638,41.066848],[72.187356,41.025946],[72.213091,41.014241],[72.294947,41.039924],[72.364038,41.043438],[72.427393,41.018944],[72.505942,40.981685],[72.620405,40.88381],[72.658335,40.869935],[72.830986,40.862157],[72.866591,40.842314],[72.926019,40.842443],[72.989995,40.860116],[73.132105,40.828516],[73.136963,40.810636],[73.112881,40.786038],[72.773884,40.650387],[72.748873,40.608684],[72.679626,40.555613],[72.604075,40.525434],[72.567488,40.524348],[72.40202,40.578092],[72.38259,40.565147],[72.369051,40.543469],[72.369774,40.519749],[72.405948,40.46306],[72.389308,40.427378],[72.357682,40.401669],[72.253967,40.4242],[72.234692,40.438617],[72.23278,40.454379],[72.192886,40.45443],[72.131236,40.438617],[72.012587,40.340742],[71.971091,40.289479],[71.955639,40.258602],[71.902723,40.240955],[71.845413,40.23434],[71.772653,40.188038],[71.692503,40.152356],[71.666768,40.178633],[71.650903,40.207985],[71.629871,40.217132],[71.580468,40.210259],[71.52042,40.208967],[71.457478,40.242014],[71.376191,40.275191],[71.304671,40.286895],[71.094503,40.271237],[70.990582,40.254908],[70.957974,40.238888],[70.899373,40.234573],[70.653083,40.201164],[70.60275,40.214135],[70.565853,40.267155],[70.533556,40.32449],[70.469942,40.345341],[70.398267,40.361361],[70.37155,40.38415],[70.369741,40.412004],[70.377131,40.439237],[70.382557,40.4535],[70.5488,40.562796],[70.698352,40.661162],[70.712046,40.669094],[70.725637,40.687801],[70.751062,40.721752],[70.75101,40.739581],[70.63913,40.778545],[70.63479,40.79658],[70.657321,40.81508],[70.657321,40.839652],[70.578256,40.911457],[70.441468,41.023439],[70.401936,41.035092],[70.372687,41.027651],[70.318995,40.91926],[70.292072,40.891716],[70.136267,40.820403],[70.005681,40.771439],[69.773189,40.684287],[69.71283,40.657002],[69.670817,40.661963],[69.628443,40.679068],[69.498218,40.767073],[69.413882,40.797148],[69.357193,40.767383],[69.309393,40.723923],[69.31394,40.634755],[69.25999,40.587652],[69.206298,40.566568],[69.304225,40.327384],[69.294458,40.296559],[69.219579,40.288135],[69.274873,40.198089],[69.228261,40.187599],[69.110335,40.208735],[68.95174,40.22261],[68.652585,40.182664],[68.630674,40.167109],[68.622406,40.147266],[68.639718,40.129205],[68.784618,40.127112],[68.926884,40.13631],[68.966054,40.119567],[68.972049,40.089956],[68.955616,40.071353],[68.908487,40.068201],[68.80472,40.050321],[68.792732,40.03151],[68.789424,40.01332],[68.824461,39.960791],[68.863838,39.927331],[68.868799,39.907487],[68.852263,39.89095],[68.832419,39.884336],[68.797692,39.909141],[68.777849,39.90418],[68.767927,39.881855],[68.758212,39.855552],[68.735267,39.836225],[68.686898,39.846302],[68.638942,39.838861],[68.610314,39.743259],[68.586129,39.634945],[68.506961,39.562779],[68.463294,39.536708],[68.39906,39.528854],[68.303046,39.53769],[68.244961,39.548284],[68.077116,39.564149],[67.908599,39.593811],[67.71905,39.62138],[67.542472,39.557637],[67.491674,39.518751],[67.459531,39.482397],[67.4262,39.465576],[67.349616,39.242075],[67.357677,39.216676],[67.400362,39.196703],[67.616473,39.150272],[67.648357,39.131048],[67.667271,39.109189],[67.676521,39.008498],[67.694401,38.994649],[67.768505,38.98222],[67.875682,38.983021],[67.959604,38.992917],[68.044353,38.983616],[68.103471,38.961989],[68.132513,38.92765],[68.148533,38.89065],[68.047867,38.669294],[68.055981,38.588937],[68.087193,38.473543],[68.144141,38.383084],[68.251421,38.29451],[68.33307,38.23777],[68.350278,38.211053],[68.354515,38.169557],[68.341235,38.116795],[68.294054,38.032924],[68.236486,37.959647],[68.174061,37.928435],[68.087607,37.835443],[68.01097,37.720954],[67.863538,37.570679],[67.814342,37.487014],[67.798064,37.244962],[67.758996,37.172227],[67.752898,37.199797],[67.699982,37.227263],[67.607378,37.222509],[67.546503,37.23566],[67.517254,37.266666],[67.441703,37.257985],[67.319747,37.20959],[67.195465,37.235195],[67.068857,37.334827],[66.827684,37.371311],[66.522276,37.348496],[66.510649,37.458696],[66.511372,37.599178],[66.525583,37.785756],[66.629349,37.932052],[66.626352,37.959854],[66.60625,37.986726],[66.574521,38.010781],[66.389777,38.050908],[66.33531,38.072147],[66.263687,38.118087],[66.17315,38.166689],[66.094808,38.200149],[65.971198,38.244255],[65.857097,38.268724],[65.790279,38.250069],[65.728526,38.226349],[65.670958,38.225729],[65.612926,38.238597],[65.399554,38.348848],[65.076679,38.539431],[64.820674,38.672472],[64.660012,38.736034],[64.621875,38.756472],[64.531648,38.816236],[64.309956,38.977311],[64.162782,38.953592],[63.95251,39.058366],[63.763685,39.16053],[63.720793,39.188125],[63.506026,39.37708],[63.291879,39.499501],[63.058095,39.633137],[62.906786,39.716801],[62.650678,39.858498],[62.525517,39.944074],[62.483194,39.975622],[62.441595,40.036213],[62.375035,40.33206],[62.298038,40.467504],[62.188484,40.541195],[62.095001,40.683305],[62.01759,40.893783],[61.953562,41.030597],[61.902816,41.093694],[61.799877,41.163431],[61.644537,41.23986],[61.496949,41.276086],[61.443671,41.274587],[61.417368,41.26513],[61.387499,41.252159],[61.328898,41.195109],[61.242443,41.189217],[61.179346,41.190561],[61.11997,41.210896],[60.93316,41.228982],[60.867169,41.248697],[60.754876,41.245751],[60.513547,41.216167],[60.454946,41.221619],[60.199974,41.348975],[60.089594,41.399437],[60.067424,41.427368],[60.068716,41.476228],[60.106027,41.545216],[60.138014,41.594154],[60.124062,41.644952],[60.075589,41.700556],[60.075589,41.759674],[60.10861,41.792695],[60.17641,41.782282],[60.20075,41.803133],[60.192068,41.834424],[60.155584,41.857032],[60.106905,41.907442],[59.962573,41.95439],[59.941747,41.973511],[59.949292,41.995421],[59.974148,42.018779],[59.979213,42.068079],[59.981693,42.131718],[60.000813,42.164765],[60.006033,42.190836],[59.985207,42.211713],[59.936528,42.236053],[59.85829,42.295145],[59.762585,42.301578],[59.45108,42.299537],[59.35429,42.323283],[59.27662,42.356175],[59.199105,42.481697],[59.159624,42.511436],[59.123141,42.523761],[59.035859,42.528128],[58.930905,42.540272],[58.876954,42.561485],[58.729987,42.676155],[58.589065,42.778474],[58.532324,42.681943],[58.477185,42.662848],[58.353162,42.671737],[58.259679,42.688067],[58.206453,42.666285],[58.151521,42.628096],[58.162011,42.602981],[58.204127,42.576368],[58.28867,42.527275],[58.418171,42.406688],[58.476979,42.340155],[58.485815,42.316849],[58.474395,42.299382],[58.457032,42.291812],[58.4314,42.29207],[58.397087,42.292458],[58.37714,42.312431],[58.370474,42.346795],[58.32722,42.398911],[58.282882,42.428858],[58.2341,42.447719],[58.16568,42.461595],[58.075505,42.486528],[58.028944,42.487639],[57.983469,42.458804],[57.945745,42.419995],[57.923421,42.33522],[57.855983,42.23104],[57.81428,42.189828],[57.686123,42.164817],[57.381748,42.156316],[57.290643,42.123786],[57.228786,42.08446],[57.113599,41.957129],[57.033656,41.914858],[56.9641,41.856567],[56.984873,41.669343],[57.018205,41.450571],[57.076651,41.38998],[57.113858,41.37179],[57.118819,41.350293],[57.094841,41.331276],[57.064248,41.307298],[57.017946,41.263476],[56.965857,41.26513],[56.86085,41.276137],[56.77362,41.287997],[56.47984,41.300632],[56.242025,41.310864],[55.977441,41.322233],[55.977286,41.551779],[55.977183,41.781326],[55.97708,42.010873],[55.976976,42.240419],[55.976873,42.469966],[55.97677,42.699513],[55.976666,42.92906],[55.976563,43.15858],[55.97646,43.388101],[55.976356,43.617648],[55.976253,43.847195],[55.97615,44.076741],[55.976046,44.306288],[55.975943,44.535835],[55.975839,44.765382],[55.975684,44.994928],[56.100483,45.023402],[56.257941,45.059317],[56.409146,45.093785],[56.588774,45.134765],[56.791862,45.181067],[56.96503,45.220599],[57.171684,45.267702],[57.329245,45.303643],[57.477298,45.33744],[57.666692,45.377437],[57.961041,45.439682],[58.125166,45.474382],[58.291099,45.509419],[58.449435,45.542905],[58.555217,45.555359],[58.668905,45.507558],[58.807036,45.441774],[58.945167,45.37599],[59.08335,45.310206],[59.221481,45.244422],[59.359612,45.178638],[59.497795,45.112854],[59.635926,45.04707],[59.774057,44.981312],[59.912188,44.915553],[60.050319,44.849769],[60.188502,44.783985],[60.326633,44.718201],[60.464764,44.652417],[60.602947,44.586633],[60.741078,44.520849],[60.879209,44.455065],[61.007884,44.393776],[61.065348,44.348404],[61.097026,44.248256],[61.160691,44.168622],[61.271537,44.082297],[61.38507,43.993956],[61.525888,43.877193],[61.623608,43.79619],[61.723241,43.713559],[61.887623,43.577237],[61.990253,43.492126]],[[70.568747,40.981814],[70.622749,40.934401],[70.652515,40.936597],[70.649207,40.960859],[70.618357,41.001658],[70.572054,41.024809],[70.549989,41.014887],[70.568747,40.981814]]]]},"type":"Feature","properties":{"ISO_A2":"UZ","NAME":"Uzbekistan"}},{"geometry":{"type":"Polygon","coordinates":[[[12.439169,41.898373],[12.43059,41.897572],[12.42749,41.900724],[12.43059,41.905453],[12.438342,41.906202],[12.439169,41.898373]]]},"type":"Feature","properties":{"ISO_A2":"VA","NAME":"Vatican"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.33439,12.69522],[-61.344545,12.694703],[-61.353536,12.69814],[-61.351108,12.701189],[-61.339739,12.703592],[-61.334416,12.710206],[-61.336328,12.719017],[-61.335863,12.728784],[-61.32682,12.734804],[-61.319869,12.735425],[-61.31682,12.731678],[-61.314831,12.722531],[-61.320128,12.715529],[-61.325941,12.709845],[-61.328835,12.701111],[-61.33439,12.69522]]],[[[-61.226206,12.994608],[-61.242225,12.983678],[-61.234732,12.983678],[-61.242225,12.976263],[-61.247264,12.983626],[-61.255222,12.988174],[-61.265351,12.990189],[-61.276952,12.989879],[-61.276952,12.997347],[-61.262043,12.992773],[-61.239331,12.997243],[-61.23928,13.005356],[-61.245946,13.012669],[-61.249021,13.017836],[-61.240649,13.025717],[-61.212847,13.043235],[-61.201194,13.052563],[-61.199799,13.048713],[-61.199308,13.045121],[-61.197964,13.041711],[-61.193753,13.0383],[-61.208041,13.024683],[-61.226206,12.994608]]],[[[-61.174503,13.158112],[-61.203907,13.142299],[-61.277288,13.209582],[-61.268451,13.287716],[-61.224061,13.330659],[-61.1821,13.355981],[-61.138976,13.35872],[-61.124015,13.294021],[-61.134532,13.202864],[-61.174503,13.158112]]]]},"type":"Feature","properties":{"ISO_A2":"VC","NAME":"St. Vin. and Gren."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-60.997899,8.867314],[-61.059937,8.847006],[-61.069187,8.947309],[-61.05048,8.974362],[-60.944776,9.055029],[-60.915811,9.070325],[-60.894598,9.053375],[-60.899921,9.031904],[-60.849174,8.995679],[-60.861396,8.949583],[-60.916431,8.89925],[-60.997899,8.867314]]],[[[-60.821166,9.138383],[-60.941417,9.105543],[-60.939427,9.132337],[-60.907285,9.178717],[-60.844885,9.191791],[-60.821372,9.207655],[-60.781607,9.218352],[-60.75887,9.216466],[-60.735822,9.203315],[-60.790367,9.177218],[-60.821166,9.138383]]],[[[-65.212526,10.906441],[-65.266398,10.883987],[-65.365229,10.906441],[-65.414632,10.937886],[-65.383187,10.973801],[-65.302339,10.973801],[-65.226556,10.930238],[-65.212526,10.906441]]],[[[-63.849379,11.131],[-63.817288,11.000337],[-63.827106,10.975816],[-63.917643,10.887553],[-63.993582,10.881222],[-64.054689,10.884323],[-64.101146,10.901402],[-64.160884,10.958815],[-64.218943,10.941606],[-64.362474,10.961502],[-64.402368,10.981604],[-64.348651,11.051884],[-64.249768,11.080332],[-64.213646,11.086145],[-64.184811,11.042996],[-64.112799,11.005685],[-64.028334,11.001861],[-64.007354,11.068472],[-63.893097,11.167226],[-63.849379,11.131]]],[[[-69.762403,11.676032],[-69.711941,11.564204],[-69.63161,11.479946],[-69.569831,11.485475],[-69.525725,11.499505],[-69.232564,11.51847],[-69.054591,11.461058],[-68.827964,11.431757],[-68.616194,11.309388],[-68.39861,11.160999],[-68.343187,11.052814],[-68.324816,10.949306],[-68.27208,10.880034],[-68.324713,10.80872],[-68.296317,10.689374],[-68.234072,10.569123],[-68.139944,10.492745],[-67.871614,10.472074],[-67.581347,10.523751],[-67.133313,10.570415],[-66.989058,10.610619],[-66.247217,10.63222],[-66.10583,10.574626],[-66.092136,10.517084],[-66.090482,10.472953],[-65.851763,10.257746],[-65.655884,10.228472],[-65.489382,10.159432],[-65.317403,10.12238],[-65.129094,10.070057],[-65.023287,10.076646],[-64.944041,10.095043],[-64.850481,10.098092],[-64.188325,10.457812],[-63.833695,10.448562],[-63.779047,10.471945],[-63.731867,10.503442],[-63.862686,10.558167],[-64.157913,10.579251],[-64.247494,10.542561],[-64.298189,10.635165],[-64.201941,10.632685],[-63.873434,10.663794],[-63.496765,10.643278],[-63.18991,10.709166],[-63.035501,10.720121],[-62.946747,10.707099],[-62.702317,10.749783],[-62.242268,10.699554],[-61.879473,10.740998],[-61.921383,10.681467],[-62.040445,10.645345],[-62.232914,10.633977],[-62.379959,10.546902],[-62.693584,10.562973],[-62.91357,10.531502],[-62.84298,10.507214],[-62.843006,10.417917],[-62.812956,10.399882],[-62.781279,10.399211],[-62.706296,10.333065],[-62.685832,10.289786],[-62.661648,10.198577],[-62.694695,10.100081],[-62.740583,10.056131],[-62.651157,10.070652],[-62.600463,10.116954],[-62.607904,10.163411],[-62.600463,10.217309],[-62.550337,10.200437],[-62.515119,10.176123],[-62.400914,9.918413],[-62.320402,9.783047],[-62.299783,9.788188],[-62.280689,9.792994],[-62.256763,9.818884],[-62.221132,9.88255],[-62.19041,9.842164],[-62.171962,9.826713],[-62.153384,9.821804],[-62.170308,9.879501],[-62.147441,9.953424],[-62.155322,9.979236],[-62.119639,9.984869],[-62.077084,9.97505],[-62.016519,9.95469],[-61.908567,9.86994],[-61.837254,9.782091],[-61.831182,9.73305],[-61.805369,9.705506],[-61.758757,9.676516],[-61.735968,9.631195],[-61.73173,9.702509],[-61.75917,9.754444],[-61.765914,9.81382],[-61.62538,9.816455],[-61.588897,9.894538],[-61.512286,9.847513],[-61.309353,9.633056],[-61.234422,9.597606],[-61.013376,9.556471],[-60.874057,9.453325],[-60.792459,9.360721],[-60.840984,9.263673],[-60.971053,9.2152],[-61.023143,9.154584],[-61.053064,9.095104],[-61.05358,9.035263],[-61.092984,8.965758],[-61.098849,8.941315],[-61.122336,8.843336],[-61.175899,8.725411],[-61.247264,8.600354],[-61.618688,8.597486],[-61.526911,8.546145],[-61.442549,8.50868],[-61.304004,8.410391],[-61.193779,8.487596],[-61.035985,8.493125],[-60.86522,8.578805],[-60.800986,8.592137],[-60.481497,8.547282],[-60.404473,8.610276],[-60.340239,8.628776],[-60.167459,8.616994],[-60.01752,8.549298],[-59.83164,8.305953],[-59.828927,8.279133],[-59.84908,8.248696],[-59.964861,8.191593],[-59.990725,8.162009],[-60.032403,8.053566],[-60.178156,7.99406],[-60.278925,7.919414],[-60.346802,7.853991],[-60.380598,7.82761],[-60.513639,7.813167],[-60.556376,7.772032],[-60.610093,7.648319],[-60.649445,7.596643],[-60.71864,7.535923],[-60.719208,7.498664],[-60.62371,7.363323],[-60.606554,7.320845],[-60.636164,7.256612],[-60.633322,7.211085],[-60.583222,7.156204],[-60.523199,7.143699],[-60.464934,7.16654],[-60.392406,7.164524],[-60.345071,7.150003],[-60.325485,7.133983],[-60.322049,7.092022],[-60.352099,7.00288],[-60.395042,6.945364],[-60.58609,6.857101],[-60.671046,6.805967],[-60.717916,6.768321],[-60.820856,6.788475],[-60.873359,6.786925],[-60.913563,6.757831],[-60.938006,6.732768],[-61.007098,6.726618],[-61.104766,6.711374],[-61.145616,6.694553],[-61.177216,6.650912],[-61.203597,6.588384],[-61.181609,6.513401],[-61.151016,6.446532],[-61.152308,6.385114],[-61.128692,6.214298],[-61.159491,6.174404],[-61.224965,6.129187],[-61.303126,6.049502],[-61.390795,5.938759],[-61.376791,5.906978],[-61.167217,5.674202],[-60.953974,5.437395],[-60.742127,5.202034],[-60.711973,5.19157],[-60.672002,5.164362],[-60.635027,5.08199],[-60.604486,4.994579],[-60.603866,4.949362],[-60.627586,4.892544],[-60.679159,4.827096],[-60.741739,4.774128],[-60.833387,4.729221],[-60.906251,4.686794],[-60.966428,4.574708],[-61.00286,4.535279],[-61.036269,4.519311],[-61.102441,4.504687],[-61.209411,4.508071],[-61.280104,4.516908],[-61.367541,4.433011],[-61.479368,4.402238],[-61.554248,4.287801],[-61.820846,4.197005],[-62.081606,4.126312],[-62.1531,4.098381],[-62.410629,4.156723],[-62.472538,4.138533],[-62.543955,4.084325],[-62.609739,4.042312],[-62.665343,4.03965],[-62.71211,4.01792],[-62.739912,3.940328],[-62.764587,3.672954],[-62.856985,3.59345],[-62.968632,3.593967],[-63.045319,3.686494],[-63.136218,3.756438],[-63.29471,3.922242],[-63.338661,3.943894],[-63.379795,3.94286],[-63.526789,3.893716],[-63.596629,3.915058],[-63.652931,3.940845],[-63.746982,3.932577],[-63.91462,3.930639],[-64.021487,3.929114],[-64.073396,3.974435],[-64.121714,4.067013],[-64.154296,4.100163],[-64.192485,4.126829],[-64.255685,4.140342],[-64.525539,4.140006],[-64.576363,4.139877],[-64.613647,4.157705],[-64.665505,4.237132],[-64.722245,4.274416],[-64.788701,4.276044],[-64.817873,4.232274],[-64.702583,4.089286],[-64.668993,4.011797],[-64.567914,3.899814],[-64.27527,3.662671],[-64.221113,3.587378],[-64.227056,3.491234],[-64.228761,3.343982],[-64.218839,3.204663],[-64.143547,3.004881],[-64.037817,2.801535],[-64.009033,2.671879],[-64.028696,2.576096],[-64.048824,2.525117],[-64.046602,2.502406],[-64.024898,2.48189],[-63.924155,2.452435],[-63.712565,2.434012],[-63.584615,2.433934],[-63.389252,2.41192],[-63.37486,2.340426],[-63.393929,2.2225],[-63.432505,2.155553],[-63.463898,2.13602],[-63.570249,2.120491],[-63.682154,2.048118],[-63.844495,1.976701],[-63.937151,1.967012],[-63.975805,1.953008],[-64.008516,1.931588],[-64.035466,1.904432],[-64.06704,1.770512],[-64.114841,1.619281],[-64.205042,1.529519],[-64.304209,1.455286],[-64.405133,1.446889],[-64.486058,1.45278],[-64.526288,1.431024],[-64.584347,1.369891],[-64.667443,1.293823],[-64.731573,1.253309],[-64.81795,1.257133],[-64.910115,1.219719],[-65.026542,1.158431],[-65.103747,1.108098],[-65.169634,1.022212],[-65.263995,0.931881],[-65.360863,0.868629],[-65.407242,0.790495],[-65.473388,0.691276],[-65.556071,0.687969],[-65.562685,0.7475],[-65.522998,0.843411],[-65.565992,0.926094],[-65.644696,0.97038],[-65.681438,0.983454],[-65.718102,0.978028],[-65.8113,0.937256],[-65.925867,0.863152],[-65.996354,0.80977],[-66.060071,0.785327],[-66.191226,0.763261],[-66.301658,0.751944],[-66.347133,0.767189],[-66.429247,0.821656],[-66.619055,0.992136],[-66.876042,1.223026],[-66.895524,1.289896],[-66.884491,1.358238],[-66.931103,1.457999],[-66.958362,1.56422],[-66.981513,1.600781],[-66.988128,1.680156],[-67.043887,1.823197],[-67.089543,1.940321],[-67.131427,1.999852],[-67.113805,2.050573],[-67.131427,2.101267],[-67.165481,2.142557],[-67.21522,2.275469],[-67.197598,2.332778],[-67.210827,2.390113],[-67.252763,2.429464],[-67.312242,2.471684],[-67.391617,2.559896],[-67.486418,2.643663],[-67.534942,2.676736],[-67.568015,2.689965],[-67.596669,2.76934],[-67.618709,2.793602],[-67.667234,2.800217],[-67.766452,2.83329],[-67.859057,2.793602],[-67.861253,2.85533],[-67.834794,2.892821],[-67.514814,3.187248],[-67.353584,3.322666],[-67.336272,3.342613],[-67.322164,3.373955],[-67.311157,3.415864],[-67.347692,3.463768],[-67.498691,3.691093],[-67.551117,3.733829],[-67.602561,3.768788],[-67.661627,3.864261],[-67.732346,4.086521],[-67.783221,4.19822],[-67.798621,4.283873],[-67.795417,4.380715],[-67.814305,4.455077],[-67.855258,4.506883],[-67.855258,4.665478],[-67.814305,4.93081],[-67.804202,5.132504],[-67.824924,5.27048],[-67.788415,5.375486],[-67.694648,5.447523],[-67.6423,5.558782],[-67.631344,5.709368],[-67.575224,5.833081],[-67.473886,5.929974],[-67.439366,6.025524],[-67.471613,6.119782],[-67.481999,6.180269],[-67.568067,6.241816],[-67.727152,6.28494],[-67.85916,6.289901],[-67.938897,6.241945],[-68.143096,6.197503],[-68.471758,6.156524],[-68.736471,6.156782],[-68.937234,6.198175],[-69.089912,6.184377],[-69.194505,6.115338],[-69.268144,6.099731],[-69.310828,6.13761],[-69.357079,6.147997],[-69.427126,6.123993],[-69.439244,6.134923],[-69.594842,6.321501],[-69.738993,6.494384],[-69.904229,6.700263],[-70.094992,6.937923],[-70.129228,6.953633],[-70.188139,6.952031],[-70.266119,6.947922],[-70.387481,6.972624],[-70.470654,7.007118],[-70.535534,7.040552],[-70.655087,7.082772],[-70.73715,7.090058],[-70.810711,7.077604],[-71.013308,6.994457],[-71.128599,6.986706],[-71.217818,6.985207],[-71.457157,7.026341],[-71.620868,7.032904],[-71.811296,7.005826],[-71.89266,6.990323],[-72.006633,7.032594],[-72.084251,7.096854],[-72.156701,7.249713],[-72.207706,7.370248],[-72.296331,7.394536],[-72.39462,7.415103],[-72.442989,7.454894],[-72.471979,7.52427],[-72.478955,7.613231],[-72.468904,7.757976],[-72.459577,7.80986],[-72.446038,7.966129],[-72.391674,8.047726],[-72.357619,8.087284],[-72.364182,8.152784],[-72.390356,8.28704],[-72.416556,8.381995],[-72.525723,8.489715],[-72.66543,8.627587],[-72.72553,8.848272],[-72.796404,9.108979],[-72.852085,9.135179],[-72.904459,9.122079],[-72.960141,9.135179],[-73.009259,9.239953],[-73.058377,9.25959],[-73.136693,9.222822],[-73.193175,9.194116],[-73.336707,9.167916],[-73.366188,9.194116],[-73.356344,9.226853],[-73.29565,9.322015],[-73.224285,9.443584],[-73.141266,9.554637],[-73.064088,9.668196],[-73.00652,9.789144],[-72.967401,10.029724],[-72.940374,10.19576],[-72.869345,10.491246],[-72.739146,10.727201],[-72.690105,10.835851],[-72.572283,10.97716],[-72.518023,11.053899],[-72.446089,11.114257],[-72.248504,11.196423],[-72.012317,11.601928],[-71.958083,11.666394],[-71.719493,11.72683],[-71.536067,11.774062],[-71.40021,11.823542],[-71.355587,11.849742],[-71.31975,11.861912],[-71.349386,11.814938],[-71.414524,11.7552],[-71.488396,11.718768],[-71.868657,11.627353],[-71.907543,11.607974],[-71.956946,11.569914],[-71.95723,11.482814],[-71.946972,11.414446],[-71.835119,11.190325],[-71.791452,11.135031],[-71.641591,11.01354],[-71.675697,10.996719],[-71.730913,10.994678],[-71.690451,10.835515],[-71.598467,10.726219],[-71.594332,10.657386],[-71.664871,10.443756],[-71.793519,10.31596],[-71.884754,10.167235],[-71.955706,10.108065],[-72.112828,9.815577],[-71.993275,9.641479],[-71.976299,9.553216],[-71.873049,9.427616],[-71.805689,9.38643],[-71.760731,9.335735],[-71.781349,9.249978],[-71.740163,9.133861],[-71.68673,9.072521],[-71.619525,9.047975],[-71.53661,9.048285],[-71.297968,9.125645],[-71.241434,9.160423],[-71.205364,9.222435],[-71.085836,9.348241],[-71.078447,9.510789],[-71.052686,9.705816],[-71.081728,9.833199],[-71.20725,10.014583],[-71.262182,10.143619],[-71.386645,10.263767],[-71.46279,10.469232],[-71.494235,10.533208],[-71.517851,10.621807],[-71.54462,10.778722],[-71.461111,10.83567],[-71.46956,10.964137],[-71.264353,10.999536],[-70.82053,11.208463],[-70.545585,11.26138],[-70.232529,11.373001],[-70.159976,11.428088],[-70.097137,11.519788],[-70.048509,11.530304],[-69.885341,11.444315],[-69.804778,11.474235],[-69.772893,11.541311],[-69.817335,11.672053],[-69.910947,11.672104],[-70.192583,11.624614],[-70.220101,11.680864],[-70.220049,11.730085],[-70.286531,11.886045],[-70.245112,12.003505],[-70.202789,12.098383],[-70.122019,12.136624],[-70.003939,12.177862],[-69.914383,12.114584],[-69.860097,12.0542],[-69.830616,11.995599],[-69.810565,11.836849],[-69.762403,11.676032]]]]},"type":"Feature","properties":{"ISO_A2":"VE","NAME":"Venezuela"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.593674,18.402856],[-64.671809,18.399136],[-64.695089,18.411667],[-64.650984,18.442544],[-64.569128,18.446265],[-64.54515,18.438126],[-64.593674,18.402856]]],[[[-64.395237,18.464584],[-64.421127,18.457427],[-64.438025,18.459003],[-64.443735,18.473395],[-64.426088,18.513082],[-64.324673,18.517501],[-64.395237,18.464584]]],[[[-64.287879,18.740562],[-64.273591,18.707127],[-64.28235,18.707696],[-64.339426,18.730692],[-64.383403,18.732604],[-64.40149,18.738598],[-64.411412,18.751156],[-64.323097,18.752706],[-64.287879,18.740562]]]]},"type":"Feature","properties":{"ISO_A2":"VG","NAME":"British Virgin Is."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.765654,17.794315],[-64.68186,17.750209],[-64.580445,17.750209],[-64.686279,17.706103],[-64.889109,17.701711],[-64.884716,17.772249],[-64.765654,17.794315]]],[[[-64.65982,18.354332],[-64.725966,18.327874],[-64.770615,18.331595],[-64.787694,18.341103],[-64.752424,18.37198],[-64.65982,18.354332]]],[[[-64.845029,18.330096],[-64.919985,18.321285],[-65.023622,18.367587],[-64.942025,18.385209],[-64.889109,18.374202],[-64.845029,18.330096]]]]},"type":"Feature","properties":{"ISO_A2":"VI","NAME":"U.S. Virgin Is."}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[106.617503,8.682829],[106.589288,8.680504],[106.567997,8.700916],[106.658637,8.766339],[106.649542,8.722982],[106.65254,8.701123],[106.617503,8.682829]]],[[[104.063964,10.390839],[104.082981,10.341126],[104.075746,10.224854],[104.036782,10.110753],[104.048357,10.06104],[104.018488,10.029207],[103.952136,10.242941],[103.868007,10.33539],[103.849506,10.371099],[103.898496,10.368515],[103.985829,10.426961],[104.02779,10.428356],[104.063964,10.390839]]],[[[107.16765,10.397143],[107.083831,10.336579],[107.07794,10.38748],[107.150907,10.420295],[107.176539,10.44621],[107.194935,10.445719],[107.16765,10.397143]]],[[[107.031328,20.747029],[106.99009,20.743075],[106.910612,20.824207],[106.9534,20.867047],[107.04373,20.836816],[107.064401,20.817283],[107.063987,20.799764],[107.042283,20.761059],[107.031328,20.747029]]],[[[106.865653,20.815706],[106.854078,20.796405],[106.803125,20.843741],[106.769432,20.864205],[106.79527,20.927922],[106.855111,20.858236],[106.865653,20.815706]]],[[[107.521324,20.926604],[107.465513,20.900533],[107.399264,20.903479],[107.478639,20.952365],[107.518947,21.012826],[107.551296,21.034014],[107.551089,20.9812],[107.521324,20.926604]]],[[[107.602766,21.216793],[107.458692,21.091633],[107.403501,21.093648],[107.452594,21.235293],[107.476262,21.268935],[107.562665,21.22041],[107.602766,21.216793]]],[[[105.782308,22.969348],[105.842977,22.922813],[105.902663,22.924958],[105.962349,22.937463],[106.001003,22.974774],[106.068492,22.975549],[106.148488,22.970071],[106.183938,22.955137],[106.249463,22.869431],[106.279022,22.857468],[106.33814,22.863463],[106.450898,22.8939],[106.541849,22.908344],[106.623962,22.874263],[106.780284,22.778894],[106.736359,22.710914],[106.701529,22.63774],[106.633109,22.586038],[106.582466,22.573248],[106.550427,22.501392],[106.536371,22.395429],[106.553631,22.341686],[106.593163,22.324529],[106.63652,22.288614],[106.654193,22.241459],[106.660084,22.136479],[106.657707,22.018217],[106.663547,21.978917],[106.697601,21.986178],[106.729537,22.000363],[106.794185,21.981992],[106.87449,21.95127],[106.925184,21.920109],[106.971021,21.923908],[107.00642,21.893418],[107.019804,21.834869],[107.06161,21.7942],[107.178554,21.717073],[107.272088,21.710639],[107.351205,21.608914],[107.433474,21.642271],[107.471404,21.59832],[107.641006,21.613926],[107.759242,21.655009],[107.80203,21.645165],[107.90838,21.56039],[107.972666,21.507938],[107.925743,21.498946],[107.809058,21.497138],[107.707255,21.405877],[107.636769,21.36805],[107.526905,21.336217],[107.410013,21.284799],[107.376216,21.194133],[107.373322,21.128478],[107.354305,21.055201],[107.164756,20.948722],[107.111736,20.959574],[107.075149,20.999261],[107.019235,20.9912],[106.981408,20.971382],[106.93645,20.974069],[106.88622,20.949988],[106.820591,20.957507],[106.760233,20.991122],[106.725197,20.999907],[106.683339,21.000269],[106.675484,20.960504],[106.737289,20.806146],[106.753412,20.73504],[106.550737,20.526577],[106.572854,20.392192],[106.517974,20.288891],[106.395501,20.205899],[106.165748,19.992062],[106.062188,19.987359],[105.984053,19.939067],[105.813934,19.587435],[105.812074,19.466977],[105.785306,19.378869],[105.791093,19.294171],[105.716369,19.127773],[105.639061,19.057183],[105.621801,18.966284],[105.731976,18.779319],[105.744275,18.746298],[105.80825,18.645839],[105.839256,18.574164],[105.888245,18.502489],[106.065599,18.31635],[106.14456,18.259403],[106.239541,18.220697],[106.411934,18.053162],[106.499061,17.94645],[106.459373,17.87369],[106.478907,17.719591],[106.355917,17.765066],[106.37049,17.746902],[106.516837,17.662798],[106.735739,17.367209],[106.926218,17.221378],[107.119901,17.055497],[107.180363,16.897935],[107.355029,16.793756],[107.549332,16.642602],[107.540857,16.608651],[107.593464,16.568085],[107.724102,16.487831],[107.803167,16.403082],[107.833759,16.322467],[107.882025,16.309599],[107.936389,16.329417],[107.990752,16.337091],[108.029406,16.331097],[108.088007,16.24273],[108.16976,16.163665],[108.20893,16.091059],[108.240866,16.1008],[108.267428,16.089793],[108.274043,16.029048],[108.286032,15.98905],[108.395276,15.872468],[108.447469,15.762707],[108.577797,15.584734],[108.674225,15.483577],[108.742748,15.426604],[108.821296,15.377951],[108.898191,15.180521],[108.939945,15.001462],[109.022421,14.802818],[109.084846,14.716156],[109.087016,14.5526],[109.137246,14.384135],[109.191403,14.270447],[109.207319,14.154278],[109.223959,14.096659],[109.244629,14.053406],[109.303334,13.856467],[109.288038,13.765052],[109.24711,13.854736],[109.252071,13.590514],[109.288038,13.450807],[109.271915,13.279345],[109.309535,13.219193],[109.376714,13.02551],[109.423947,12.955954],[109.420019,12.719069],[109.444927,12.599593],[109.381469,12.670751],[109.33558,12.751909],[109.273982,12.709044],[109.218894,12.645818],[109.304677,12.391156],[109.206802,12.415392],[109.215691,12.072907],[109.256308,11.99286],[109.259202,11.954542],[109.247317,11.908679],[109.220238,11.958831],[109.214554,12.01043],[109.199154,11.999035],[109.199878,11.972448],[109.167321,11.911986],[109.157503,11.837133],[109.192643,11.773416],[109.198637,11.724866],[109.173213,11.664766],[109.132491,11.601101],[109.039681,11.592678],[109.018493,11.468344],[108.986661,11.336363],[108.820779,11.315408],[108.70027,11.199265],[108.551235,11.15596],[108.41853,11.040722],[108.271665,10.934268],[108.176167,10.920161],[108.094932,10.897268],[108.001398,10.72038],[107.845128,10.700122],[107.564422,10.55548],[107.470267,10.48582],[107.384484,10.458638],[107.261495,10.398384],[107.235036,10.419881],[107.194109,10.471609],[107.087758,10.498326],[107.035772,10.556307],[107.020682,10.630979],[107.006626,10.660538],[106.983682,10.618319],[106.966112,10.440707],[106.947405,10.400347],[106.902033,10.382803],[106.812736,10.433291],[106.727367,10.535636],[106.605824,10.464943],[106.643031,10.456261],[106.698428,10.462049],[106.741216,10.444376],[106.777493,10.376111],[106.776253,10.338982],[106.757443,10.29578],[106.643548,10.288933],[106.491722,10.304126],[106.464024,10.298312],[106.602413,10.231727],[106.729021,10.193332],[106.785245,10.151164],[106.785245,10.116437],[106.714138,10.060213],[106.659154,9.99138],[106.658121,9.948721],[106.65688,9.90105],[106.595592,9.859864],[106.557352,9.86808],[106.449141,9.939652],[106.136395,10.221702],[106.183628,10.142069],[106.507432,9.821261],[106.56438,9.715635],[106.572441,9.641117],[106.539161,9.603548],[106.484074,9.559443],[106.378034,9.55611],[106.203988,9.67543],[105.925659,9.961718],[105.830988,10.000734],[106.112521,9.67357],[106.158616,9.594143],[106.206158,9.50234],[106.192619,9.447796],[106.168331,9.396739],[105.500982,9.093192],[105.40135,8.962399],[105.322285,8.801117],[105.191233,8.711303],[105.114339,8.629189],[104.891923,8.583249],[104.77038,8.597641],[104.896264,8.74665],[104.818543,8.80184],[104.814616,9.185486],[104.845208,9.606132],[104.903189,9.816249],[104.987111,9.868674],[105.092531,9.900972],[105.094908,9.945259],[105.08447,9.995721],[105.027832,10.067448],[104.965821,10.100572],[104.873217,10.114783],[104.802006,10.202737],[104.747643,10.199119],[104.663514,10.169896],[104.612664,10.207646],[104.594061,10.266919],[104.516132,10.339989],[104.42637,10.411251],[104.466988,10.422362],[104.514065,10.463341],[104.564295,10.515948],[104.689662,10.52326],[104.815442,10.520779],[104.850531,10.534474],[104.901277,10.590258],[104.983856,10.661933],[105.046384,10.701673],[105.061112,10.73379],[105.036101,10.809392],[105.022303,10.886855],[105.045713,10.911376],[105.159504,10.897578],[105.284251,10.861456],[105.314688,10.845178],[105.386467,10.940082],[105.405794,10.951632],[105.452716,10.951425],[105.576533,10.968917],[105.697766,10.994058],[105.755127,10.989975],[105.81073,10.926052],[105.853312,10.863575],[105.875223,10.858511],[105.938165,10.885176],[105.990151,10.851793],[106.098878,10.797274],[106.163991,10.794949],[106.131538,10.921969],[106.167918,11.012326],[106.16089,11.037104],[106.099498,11.078678],[105.891656,11.244844],[105.856051,11.294298],[105.860908,11.372433],[105.853984,11.487077],[105.83538,11.55914],[105.838532,11.601334],[105.851451,11.635001],[105.889899,11.648385],[105.926589,11.652932],[105.956251,11.682491],[106.006067,11.757991],[106.102961,11.751273],[106.23918,11.70833],[106.339897,11.68182],[106.39917,11.687039],[106.412502,11.697788],[106.410797,11.738405],[106.417773,11.911702],[106.413898,11.948418],[106.499629,11.965523],[106.630939,11.969192],[106.700133,11.979321],[106.764677,12.05234],[106.930662,12.077506],[107.050655,12.175898],[107.158969,12.277029],[107.212092,12.303978],[107.279633,12.321574],[107.330018,12.319042],[107.393373,12.260492],[107.445979,12.295684],[107.506441,12.364543],[107.538119,12.431774],[107.55543,12.539984],[107.543545,12.705891],[107.511505,12.835728],[107.481533,12.933113],[107.475435,13.030368],[107.545508,13.225446],[107.605453,13.437811],[107.593981,13.521656],[107.52861,13.654206],[107.462309,13.815643],[107.389445,13.992996],[107.36216,14.01948],[107.342627,14.068883],[107.331413,14.126632],[107.360403,14.307861],[107.364434,14.368684],[107.44846,14.451237],[107.493212,14.545753],[107.535225,14.649959],[107.519412,14.705098],[107.513779,14.81739],[107.524476,14.871832],[107.504632,14.915937],[107.480344,14.979861],[107.496312,15.021435],[107.555327,15.05704],[107.589692,15.118432],[107.633668,15.189848],[107.65315,15.255219],[107.621679,15.309867],[107.564318,15.391619],[107.459519,15.465826],[107.338803,15.560498],[107.279426,15.618711],[107.232607,15.678061],[107.189561,15.747256],[107.165893,15.802498],[107.188838,15.83862],[107.36061,15.921716],[107.392029,15.951636],[107.410116,15.997835],[107.39637,16.043],[107.350068,16.067392],[107.296428,16.084031],[107.217363,16.136354],[107.069775,16.279833],[107.001976,16.311821],[106.930662,16.353111],[106.892732,16.396519],[106.85108,16.515607],[106.832373,16.526278],[106.791549,16.490312],[106.739563,16.452536],[106.696103,16.458996],[106.656467,16.492611],[106.637502,16.537957],[106.593628,16.600072],[106.546189,16.650741],[106.533684,16.821041],[106.525932,16.876619],[106.502264,16.954082],[106.465367,16.981858],[106.42599,17.002528],[106.333386,17.143683],[106.269514,17.216779],[106.006274,17.415268],[105.973563,17.446997],[105.902766,17.528646],[105.779518,17.644453],[105.691461,17.737858],[105.627279,17.834416],[105.597617,17.918286],[105.588522,17.983709],[105.518552,18.07745],[105.458245,18.154293],[105.400006,18.179252],[105.333499,18.189639],[105.273192,18.235373],[105.163225,18.338726],[105.114546,18.405285],[105.085813,18.450114],[105.087002,18.496236],[105.113512,18.573027],[105.145396,18.616797],[105.146482,18.650981],[105.115166,18.67886],[104.993106,18.728315],[104.716534,18.8034],[104.613284,18.860632],[104.517941,18.934064],[104.445801,18.983829],[104.108612,19.195573],[104.006344,19.23092],[103.918391,19.268514],[103.891623,19.304972],[103.896377,19.339983],[103.932034,19.366079],[104.027532,19.420469],[104.06293,19.482584],[104.05151,19.564155],[104.013424,19.646476],[104.031976,19.67513],[104.062827,19.678437],[104.127112,19.68084],[104.259869,19.685517],[104.546311,19.61056],[104.587859,19.618751],[104.743199,19.754738],[104.8018,19.836154],[104.815132,19.904031],[104.845776,19.947181],[104.92789,20.018132],[104.929182,20.082805],[104.888616,20.169105],[104.847792,20.202462],[104.812652,20.216828],[104.698757,20.20533],[104.676898,20.224709],[104.661963,20.288994],[104.656486,20.328501],[104.618865,20.374493],[104.496185,20.413664],[104.392212,20.424774],[104.367821,20.441388],[104.40787,20.485727],[104.478615,20.5296],[104.532721,20.55487],[104.57525,20.600242],[104.583208,20.646699],[104.530395,20.687962],[104.461407,20.733748],[104.349631,20.821081],[104.195325,20.913943],[104.101326,20.945492],[104.052026,20.941203],[103.882011,20.861414],[103.790492,20.809531],[103.714424,20.716927],[103.635049,20.697083],[103.554641,20.737856],[103.463587,20.779843],[103.210786,20.84064],[103.104436,20.891645],[102.883777,21.202608],[102.851221,21.265937],[102.872305,21.337509],[102.887498,21.439958],[102.909616,21.506336],[102.94858,21.569795],[102.959225,21.626225],[102.949613,21.681364],[102.917677,21.712939],[102.876233,21.722292],[102.845227,21.734772],[102.815926,21.807377],[102.798201,21.797946],[102.771071,21.709657],[102.738567,21.677954],[102.695365,21.662089],[102.661982,21.676042],[102.640795,21.71144],[102.631286,21.771333],[102.609686,21.851741],[102.582504,21.904322],[102.487471,21.957756],[102.442667,22.027131],[102.301384,22.178156],[102.183045,22.284041],[102.127441,22.379203],[102.175965,22.414653],[102.236995,22.465993],[102.302262,22.546014],[102.375746,22.646628],[102.406442,22.70802],[102.427888,22.732825],[102.470883,22.750911],[102.517185,22.740989],[102.598523,22.700398],[102.720997,22.648489],[102.830085,22.587149],[102.874269,22.525395],[102.935144,22.466174],[102.981963,22.448268],[103.005372,22.452997],[103.075859,22.497516],[103.136372,22.542242],[103.137612,22.592988],[103.193319,22.638515],[103.266286,22.713523],[103.300599,22.764399],[103.326644,22.769773],[103.3561,22.754684],[103.471028,22.597432],[103.492939,22.587976],[103.525444,22.611566],[103.570712,22.734427],[103.620218,22.782046],[103.637323,22.770032],[103.915032,22.538237],[103.941491,22.540072],[103.971411,22.55051],[103.99079,22.586115],[104.012701,22.666369],[104.053887,22.752307],[104.14308,22.800159],[104.212482,22.809409],[104.23832,22.768507],[104.298368,22.711999],[104.371748,22.704067],[104.526829,22.804086],[104.577576,22.820003],[104.631733,22.818194],[104.687285,22.822199],[104.740098,22.860491],[104.795702,22.91116],[104.814719,23.010792],[104.826553,23.100192],[104.864742,23.136366],[104.910217,23.160525],[104.99569,23.194321],[105.189063,23.281034],[105.238776,23.322117],[105.275363,23.34519],[105.3505,23.307673],[105.440159,23.235326],[105.494574,23.180859],[105.530851,23.121974],[105.548111,23.072649],[105.691255,23.029912],[105.782308,22.969348]]]]},"type":"Feature","properties":{"ISO_A2":"VN","NAME":"Vietnam"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.896328,-20.186623],[169.861188,-20.241813],[169.807031,-20.24109],[169.737474,-20.202126],[169.750704,-20.153343],[169.829458,-20.144765],[169.852403,-20.147969],[169.896328,-20.186623]]],[[[169.491288,-19.540151],[169.438475,-19.648775],[169.347317,-19.623556],[169.261948,-19.545008],[169.217506,-19.476382],[169.247478,-19.34471],[169.291093,-19.321766],[169.336672,-19.329311],[169.359926,-19.457778],[169.491288,-19.540151]]],[[[169.334398,-18.940187],[169.288303,-18.988556],[169.247995,-18.983285],[168.986926,-18.871251],[168.997881,-18.825156],[168.987133,-18.707643],[169.015761,-18.643771],[169.087902,-18.61752],[169.143816,-18.631059],[169.178025,-18.72511],[169.255747,-18.763351],[169.201176,-18.7957],[169.296158,-18.866807],[169.334398,-18.940187]]],[[[168.44577,-17.542236],[168.545402,-17.684657],[168.584987,-17.695922],[168.524629,-17.798035],[168.399468,-17.807181],[168.251674,-17.780775],[168.305831,-17.745738],[168.277822,-17.706051],[168.233173,-17.698093],[168.182014,-17.717006],[168.158243,-17.710495],[168.190902,-17.644866],[168.273171,-17.552262],[168.297459,-17.544975],[168.319576,-17.543993],[168.34097,-17.552055],[168.44577,-17.542236]]],[[[168.446804,-16.77882],[168.476569,-16.793652],[168.460136,-16.835096],[168.32278,-16.787761],[168.212296,-16.806157],[168.181394,-16.803987],[168.148527,-16.765746],[168.124343,-16.689989],[168.135402,-16.636969],[168.181807,-16.599865],[168.19917,-16.593871],[168.233794,-16.639604],[168.26542,-16.670765],[168.296115,-16.684201],[168.365982,-16.758822],[168.446804,-16.77882]]],[[[168.296735,-16.336522],[168.182427,-16.346754],[168.021713,-16.315645],[167.957015,-16.272236],[167.929006,-16.228725],[167.98461,-16.196479],[168.064295,-16.181286],[168.163927,-16.081654],[168.198344,-16.119791],[168.235447,-16.231309],[168.275651,-16.26495],[168.297976,-16.298746],[168.296735,-16.336522]]],[[[167.412552,-16.095916],[167.458647,-16.117621],[167.483658,-16.117621],[167.498748,-16.166196],[167.641995,-16.263245],[167.681373,-16.260558],[167.714445,-16.313681],[167.77594,-16.340553],[167.79258,-16.394606],[167.836609,-16.449693],[167.759817,-16.516459],[167.611403,-16.498579],[167.526343,-16.574337],[167.449345,-16.55501],[167.436116,-16.515219],[167.446865,-16.50199],[167.400976,-16.400601],[167.380306,-16.245675],[167.349196,-16.154518],[167.315607,-16.115553],[167.246154,-16.149557],[167.218042,-16.155241],[167.151482,-16.080517],[167.183005,-15.928536],[167.199541,-15.885077],[167.253698,-15.876705],[167.335761,-15.916703],[167.412552,-16.095916]]],[[[167.218972,-15.724105],[167.200782,-15.750098],[167.094742,-15.685244],[167.11903,-15.62256],[167.234371,-15.644988],[167.218972,-15.724105]]],[[[168.212916,-15.970446],[168.196173,-15.971686],[168.179327,-15.925694],[168.122793,-15.680851],[168.16,-15.461847],[168.183461,-15.508149],[168.267797,-15.892311],[168.256324,-15.95515],[168.212916,-15.970446]]],[[[167.911333,-15.435905],[167.844257,-15.481794],[167.720233,-15.477453],[167.674241,-15.451615],[167.826273,-15.311985],[168.002593,-15.28315],[167.911333,-15.435905]]],[[[168.189145,-15.328728],[168.171885,-15.390636],[168.130441,-15.31891],[168.104189,-15.016602],[168.114938,-14.988594],[168.136435,-14.986423],[168.186871,-15.19685],[168.189145,-15.328728]]],[[[166.745822,-14.826847],[166.810211,-15.157369],[166.885142,-15.156749],[166.923383,-15.139179],[166.967618,-15.061664],[166.987358,-14.940018],[167.026529,-14.922655],[167.075621,-14.935677],[167.054331,-14.974435],[167.068593,-15.071793],[167.106421,-15.12564],[167.131639,-15.135355],[167.182075,-15.389706],[167.200782,-15.443036],[167.199645,-15.485773],[167.093915,-15.580806],[166.936612,-15.578015],[166.825817,-15.634859],[166.758328,-15.631139],[166.758948,-15.56675],[166.6989,-15.51559],[166.631101,-15.406036],[166.647844,-15.211526],[166.527231,-14.850101],[166.526094,-14.759771],[166.567332,-14.641845],[166.607846,-14.636574],[166.662623,-14.735069],[166.745822,-14.826847]]],[[[167.584841,-14.260886],[167.543293,-14.311633],[167.430328,-14.294889],[167.40356,-14.281557],[167.410795,-14.197428],[167.439113,-14.168489],[167.506499,-14.142237],[167.598897,-14.183785],[167.584841,-14.260886]]],[[[167.488826,-13.907264],[167.474253,-13.917083],[167.451102,-13.909383],[167.391778,-13.788357],[167.406867,-13.748049],[167.481075,-13.709499],[167.54722,-13.776678],[167.553525,-13.813937],[167.553008,-13.845718],[167.54288,-13.873106],[167.498645,-13.884579],[167.488826,-13.907264]]]]},"type":"Feature","properties":{"ISO_A2":"VU","NAME":"Vanuatu"}},{"geometry":{"type":"Polygon","coordinates":[[[35.551453,32.395516],[35.57202,32.237878],[35.53471,32.103002],[35.531506,31.984921],[35.558998,31.765529],[35.499467,31.672382],[35.465463,31.562363],[35.450529,31.479319],[35.408723,31.482937],[35.276689,31.422785],[35.101196,31.366199],[34.907771,31.351317],[34.880486,31.368163],[34.872735,31.396895],[34.929217,31.536577],[34.950921,31.602283],[35.034689,31.673235],[35.153441,31.734497],[35.203671,31.750026],[35.197986,31.776329],[35.127138,31.816766],[35.053189,31.837954],[34.983012,31.816818],[34.961153,31.823329],[34.953815,31.841261],[34.97831,31.866427],[34.989782,31.913298],[34.978775,31.991588],[34.971385,32.087086],[34.955934,32.160931],[34.999497,32.281079],[35.010504,32.338181],[35.065074,32.460422],[35.193232,32.534423],[35.30382,32.512925],[35.362162,32.507473],[35.386709,32.49303],[35.402625,32.450629],[35.484429,32.40164],[35.551453,32.395516]]]},"type":"Feature","properties":{"ISO_A2":"PS","NAME":"West Bank"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-178.046672,-14.318351],[-178.103309,-14.324913],[-178.158603,-14.311891],[-178.194389,-14.255512],[-178.178008,-14.231586],[-178.142247,-14.242593],[-178.105015,-14.284192],[-178.043675,-14.303209],[-178.046672,-14.318351]]],[[[-176.160585,-13.332778],[-176.176889,-13.340942],[-176.195364,-13.301668],[-176.171205,-13.242551],[-176.147951,-13.221673],[-176.128055,-13.268182],[-176.160585,-13.332778]]]]},"type":"Feature","properties":{"ISO_A2":"WF","NAME":"Wallis and Futuna"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-171.454077,-14.046532],[-171.72822,-14.047256],[-171.863794,-14.002091],[-171.911904,-14.001677],[-172.028099,-13.906799],[-172.045875,-13.857087],[-171.984871,-13.824427],[-171.858135,-13.807167],[-171.603887,-13.879204],[-171.565414,-13.943076],[-171.50689,-13.949898],[-171.461363,-13.977596],[-171.449581,-14.022503],[-171.454077,-14.046532]]],[[[-172.333481,-13.465276],[-172.221549,-13.559534],[-172.176849,-13.684694],[-172.224934,-13.804273],[-172.330871,-13.774714],[-172.484505,-13.800243],[-172.535716,-13.791664],[-172.65881,-13.6448],[-172.744102,-13.578757],[-172.778492,-13.516849],[-172.66961,-13.523877],[-172.510912,-13.482846],[-172.333481,-13.465276]]]]},"type":"Feature","properties":{"ISO_A2":"WS","NAME":"Samoa"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.763158,12.6368],[53.82486,12.624811],[53.918497,12.659434],[54.187422,12.664034],[54.511123,12.552774],[54.450041,12.523422],[54.413764,12.483321],[54.271344,12.446631],[54.129441,12.360641],[53.71882,12.31899],[53.59831,12.342296],[53.499401,12.42534],[53.315847,12.533137],[53.388504,12.601867],[53.403903,12.633338],[53.430982,12.663568],[53.534955,12.715762],[53.638514,12.70739],[53.763158,12.6368]]],[[[42.755871,13.70428],[42.689725,13.673636],[42.734994,13.752959],[42.781296,13.769289],[42.794112,13.766137],[42.755871,13.70428]]],[[[42.787394,13.971499],[42.774165,13.95026],[42.756078,13.954859],[42.694066,14.007931],[42.762072,14.067462],[42.798349,14.012272],[42.787394,13.971499]]],[[[42.590197,15.303433],[42.558674,15.281186],[42.549062,15.320047],[42.569733,15.407329],[42.602392,15.432521],[42.62451,15.367951],[42.610454,15.332294],[42.590197,15.303433]]],[[[52.903676,17.04387],[52.964344,16.912043],[53.025012,16.780216],[53.08568,16.64839],[52.581421,16.470364],[52.448406,16.391248],[52.327793,16.293579],[52.237256,16.171365],[52.174004,15.956856],[52.222063,15.760589],[52.217516,15.655531],[52.087291,15.585922],[51.965852,15.535693],[51.830769,15.459263],[51.748604,15.440143],[51.681528,15.379113],[51.603703,15.336842],[51.32248,15.226254],[51.015109,15.140782],[50.527076,15.038204],[50.338561,14.927203],[50.166892,14.851032],[49.906339,14.828139],[49.548635,14.722409],[49.349887,14.637815],[49.102874,14.500045],[49.048097,14.456431],[49.004689,14.355041],[48.928724,14.267502],[48.78,14.123893],[48.668379,14.05015],[48.593758,14.046223],[48.449064,14.005915],[48.277808,13.997647],[47.98997,14.048083],[47.91597,14.01284],[47.855095,13.956926],[47.633403,13.858431],[47.40768,13.661647],[47.242626,13.60935],[46.975665,13.547442],[46.788907,13.465587],[46.663436,13.43272],[46.501999,13.415564],[46.203103,13.423832],[45.919709,13.394273],[45.657296,13.338721],[45.533996,13.233508],[45.39354,13.067058],[45.16389,12.998277],[45.109733,12.93859],[45.038626,12.815885],[44.889901,12.784155],[44.755232,12.763769],[44.617773,12.817228],[44.358461,12.669149],[44.260379,12.644603],[44.111551,12.63866],[44.005821,12.607655],[43.929753,12.616491],[43.835392,12.67442],[43.634371,12.744494],[43.487609,12.698812],[43.47531,12.83901],[43.231915,13.267097],[43.282557,13.639865],[43.282454,13.69255],[43.234085,13.858948],[43.089081,14.01098],[43.093318,14.203681],[43.044846,14.341554],[43.006295,14.483096],[43.018698,14.520819],[43.021075,14.554874],[42.946971,14.773155],[42.922166,14.81739],[42.912968,14.863098],[42.937255,14.898057],[42.936429,14.938572],[42.897051,15.005544],[42.855607,15.132978],[42.657789,15.232817],[42.69789,15.3263],[42.736441,15.293537],[42.788427,15.265709],[42.799073,15.326248],[42.7999,15.37162],[42.717217,15.654652],[42.83969,16.032045],[42.799331,16.371792],[42.986348,16.50907],[43.03358,16.550385],[43.06071,16.586636],[43.10479,16.664151],[43.165045,16.689421],[43.186388,16.771018],[43.184476,16.811817],[43.145615,16.846776],[43.116469,16.941989],[43.126185,17.062447],[43.1359,17.112961],[43.15595,17.205048],[43.221373,17.239232],[43.236927,17.26644],[43.186388,17.324731],[43.190935,17.35938],[43.302194,17.45679],[43.346068,17.486013],[43.418001,17.516244],[43.474277,17.515934],[43.539234,17.498725],[43.597319,17.471414],[43.653439,17.421857],[43.71297,17.365529],[43.804283,17.344135],[43.866449,17.349587],[43.916937,17.324731],[43.959674,17.338322],[44.00825,17.367467],[44.085971,17.365529],[44.155941,17.398551],[44.35474,17.414364],[44.54646,17.404364],[44.746757,17.431675],[44.946487,17.429582],[45.148077,17.427464],[45.192777,17.423407],[45.23665,17.406199],[45.406562,17.31977],[45.53534,17.302071],[45.794445,17.278403],[46.070811,17.253185],[46.310331,17.2313],[46.51342,17.251686],[46.68204,17.268559],[46.72767,17.265587],[46.77852,17.212128],[46.879961,17.07901],[46.975665,16.953487],[47.143614,16.946666],[47.251256,16.993924],[47.369595,17.06038],[47.441787,17.111876],[47.525399,17.316127],[47.579556,17.448341],[47.703735,17.596807],[47.807759,17.721115],[47.945529,17.885834],[48.0217,17.976939],[48.172181,18.156928],[48.315842,18.227053],[48.592983,18.36242],[48.864904,18.495202],[49.041999,18.581786],[49.192378,18.621318],[49.445075,18.655322],[49.742111,18.695293],[50.038941,18.735239],[50.355304,18.777795],[50.708202,18.825311],[50.949996,18.857841],[51.258453,18.899364],[51.514923,18.933883],[51.74292,18.964553],[51.977634,18.996153],[52.021869,18.896263],[52.066156,18.796372],[52.110442,18.696482],[52.154677,18.596591],[52.198964,18.496701],[52.243251,18.39681],[52.287486,18.29692],[52.331772,18.197055],[52.376059,18.09719],[52.420294,17.9973],[52.464581,17.897409],[52.508868,17.797519],[52.553103,17.697628],[52.597389,17.597738],[52.641676,17.497847],[52.685911,17.397956],[52.729164,17.300391],[52.800581,17.267939],[52.843007,17.175696],[52.903676,17.04387]]]]},"type":"Feature","properties":{"ISO_A2":"YE","NAME":"Yemen"}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[37.856945,-46.944266],[37.813951,-46.96287],[37.611792,-46.946436],[37.590088,-46.907989],[37.649723,-46.848923],[37.684863,-46.824067],[37.789559,-46.837503],[37.872862,-46.885458],[37.887745,-46.901685],[37.856945,-46.944266]]],[[[30.190385,-22.291146],[30.460188,-22.329024],[30.711645,-22.297812],[30.916077,-22.29068],[31.07338,-22.307785],[31.1973,-22.344889],[31.287837,-22.402043],[31.29316,-22.454701],[31.30024,-22.478576],[31.347989,-22.617534],[31.419302,-22.825118],[31.466689,-23.016683],[31.53175,-23.279457],[31.529631,-23.425805],[31.545599,-23.482339],[31.604097,-23.552929],[31.675566,-23.674265],[31.699957,-23.743098],[31.723986,-23.794568],[31.799641,-23.892236],[31.858293,-24.040238],[31.907955,-24.236195],[31.950588,-24.330298],[31.966659,-24.376445],[31.985831,-24.460677],[31.983195,-24.638289],[31.984436,-24.844065],[31.985779,-25.07387],[31.987019,-25.263471],[31.979371,-25.359434],[31.984539,-25.631975],[31.920254,-25.77393],[31.928263,-25.885396],[31.948262,-25.957588],[31.9217,-25.968802],[31.871471,-25.981618],[31.640477,-25.86731],[31.415116,-25.746542],[31.382612,-25.742976],[31.335173,-25.755585],[31.207325,-25.843332],[31.088056,-25.980688],[31.033279,-26.097735],[30.945223,-26.218709],[30.803371,-26.413426],[30.789056,-26.455439],[30.787506,-26.613621],[30.794276,-26.764309],[30.80673,-26.78529],[30.883314,-26.792421],[30.938091,-26.915773],[31.063355,-27.112298],[31.273988,-27.238389],[31.469532,-27.295543],[31.742538,-27.309961],[31.958391,-27.305878],[31.94604,-27.173587],[31.967176,-26.96068],[31.994668,-26.817484],[32.024847,-26.81118],[32.081691,-26.824822],[32.112903,-26.839498],[32.199565,-26.833504],[32.353457,-26.861616],[32.477739,-26.858515],[32.58874,-26.855725],[32.776532,-26.851022],[32.886138,-26.849317],[32.849086,-27.080156],[32.705839,-27.44158],[32.657056,-27.607358],[32.53479,-28.199674],[32.375213,-28.49826],[32.285709,-28.621457],[32.027224,-28.839531],[31.955394,-28.883818],[31.891521,-28.912085],[31.778247,-28.937096],[31.335173,-29.378103],[31.169912,-29.590803],[31.023357,-29.900862],[30.87763,-30.071084],[30.663586,-30.434163],[30.47228,-30.714559],[30.288725,-30.970151],[29.971225,-31.322067],[29.830252,-31.42387],[29.735167,-31.470379],[29.482883,-31.674707],[29.127866,-32.003163],[28.855944,-32.294204],[28.449354,-32.624623],[28.21402,-32.769214],[27.860656,-33.053951],[27.762058,-33.096016],[27.363736,-33.360496],[27.077448,-33.521209],[26.613704,-33.707451],[26.429529,-33.759541],[25.989556,-33.711379],[25.805898,-33.737114],[25.652419,-33.849561],[25.638156,-34.011154],[25.574181,-34.03539],[25.477236,-34.028155],[25.169761,-33.960769],[25.00295,-33.973585],[24.905591,-34.059781],[24.827146,-34.168973],[24.595533,-34.174503],[24.183051,-34.061538],[23.69781,-33.992809],[23.585568,-33.98516],[23.350337,-34.06898],[23.268172,-34.081175],[22.925557,-34.063192],[22.735595,-34.010275],[22.553797,-34.010068],[22.414477,-34.053787],[22.245495,-34.069186],[21.788986,-34.37263],[21.553238,-34.373044],[21.349839,-34.408184],[21.248967,-34.407047],[21.060141,-34.364672],[20.989861,-34.367514],[20.882374,-34.386531],[20.774784,-34.439913],[20.529838,-34.463064],[20.43465,-34.508643],[20.020618,-34.785783],[19.926257,-34.774673],[19.849983,-34.75669],[19.635009,-34.753279],[19.391509,-34.605691],[19.298285,-34.614993],[19.323296,-34.570809],[19.330738,-34.492365],[19.279371,-34.437019],[19.244645,-34.412318],[19.149147,-34.416865],[19.098297,-34.350099],[18.952156,-34.343795],[18.901617,-34.360641],[18.831337,-34.364052],[18.825136,-34.296459],[18.830613,-34.253878],[18.826376,-34.188507],[18.808806,-34.108202],[18.752168,-34.08257],[18.708657,-34.071873],[18.605201,-34.077351],[18.533887,-34.085929],[18.500401,-34.109287],[18.46216,-34.168043],[18.461644,-34.346895],[18.41038,-34.295632],[18.352089,-34.188455],[18.333383,-34.074251],[18.354363,-33.939065],[18.465054,-33.887802],[18.456476,-33.796438],[18.433015,-33.71727],[18.309508,-33.514491],[18.261242,-33.421681],[18.156339,-33.358739],[18.074794,-33.207327],[17.992628,-33.152395],[17.958418,-33.046355],[17.878217,-32.961554],[17.851035,-32.827402],[17.89527,-32.750507],[17.96524,-32.708546],[18.036553,-32.775105],[18.125023,-32.749164],[18.250907,-32.652115],[18.325321,-32.504941],[18.329869,-32.269503],[18.310748,-32.122432],[18.210806,-31.742507],[18.163677,-31.655173],[17.938575,-31.383252],[17.677402,-31.019037],[17.347086,-30.444808],[17.18906,-30.099816],[16.950005,-29.403425],[16.739475,-29.00934],[16.480783,-28.641507],[16.447555,-28.617529],[16.487087,-28.572881],[16.6262,-28.487925],[16.689452,-28.464981],[16.723042,-28.475523],[16.755753,-28.452165],[16.787482,-28.394701],[16.794562,-28.340854],[16.810116,-28.264579],[16.841174,-28.218897],[16.87528,-28.127947],[16.933313,-28.069656],[17.056251,-28.031002],[17.149372,-28.082265],[17.18844,-28.132494],[17.204563,-28.198847],[17.2458,-28.230886],[17.31205,-28.228613],[17.358713,-28.269437],[17.385689,-28.353204],[17.380314,-28.413924],[17.34259,-28.451648],[17.34781,-28.501154],[17.395869,-28.562649],[17.415713,-28.621043],[17.447959,-28.698145],[17.616786,-28.743103],[17.699313,-28.768321],[17.84163,-28.7769],[17.976092,-28.811316],[18.102699,-28.871674],[18.310852,-28.886247],[18.600343,-28.855241],[18.838778,-28.869142],[19.026054,-28.92795],[19.161756,-28.93875],[19.245782,-28.901646],[19.282265,-28.847955],[19.271,-28.777726],[19.312651,-28.733285],[19.407219,-28.714474],[19.482873,-28.661661],[19.539821,-28.574638],[19.67144,-28.503893],[19.877836,-28.449426],[19.980414,-28.451286],[19.980414,-28.310365],[19.980414,-27.865534],[19.980414,-27.420755],[19.980414,-26.975976],[19.980414,-26.531145],[19.980414,-26.086366],[19.980414,-25.641587],[19.980414,-25.196756],[19.980466,-24.776782],[20.028576,-24.807013],[20.345249,-25.029841],[20.430619,-25.147095],[20.473149,-25.221303],[20.609316,-25.491157],[20.710705,-25.733158],[20.793181,-25.915575],[20.799382,-25.999033],[20.811009,-26.080527],[20.822636,-26.120628],[20.81504,-26.164966],[20.757007,-26.264133],[20.697889,-26.340149],[20.626783,-26.443812],[20.619961,-26.580806],[20.641459,-26.742192],[20.685022,-26.822445],[20.739851,-26.848852],[20.87085,-26.808751],[20.953894,-26.821102],[21.070993,-26.851746],[21.454949,-26.832832],[21.501406,-26.842651],[21.646255,-26.854174],[21.694728,-26.840945],[21.738033,-26.806787],[21.788262,-26.710049],[21.833221,-26.678268],[21.914559,-26.661938],[22.010988,-26.635842],[22.090879,-26.580134],[22.217538,-26.388828],[22.470908,-26.219019],[22.548629,-26.178402],[22.597618,-26.13272],[22.6402,-26.071225],[22.72898,-25.857284],[22.796056,-25.679156],[22.818897,-25.59513],[22.878842,-25.457929],[22.95124,-25.370286],[23.022037,-25.324087],[23.057487,-25.312305],[23.148696,-25.288689],[23.266001,-25.266623],[23.389301,-25.291376],[23.52149,-25.344396],[23.670731,-25.433951],[23.823487,-25.544642],[23.893715,-25.600918],[23.969524,-25.626084],[24.104503,-25.634869],[24.192973,-25.632905],[24.330588,-25.742873],[24.400196,-25.749797],[24.555845,-25.783077],[24.748185,-25.81739],[24.869211,-25.813463],[24.998919,-25.754035],[25.092505,-25.751451],[25.213376,-25.756257],[25.346185,-25.739979],[25.443646,-25.714451],[25.518164,-25.662774],[25.583793,-25.60624],[25.65924,-25.43793],[25.702649,-25.302331],[25.76988,-25.146527],[25.852407,-24.935274],[25.881862,-24.787996],[25.912093,-24.747481],[26.031879,-24.70242],[26.130839,-24.671465],[26.39718,-24.613536],[26.45175,-24.582685],[26.501515,-24.513284],[26.617735,-24.395462],[26.761137,-24.297173],[26.835086,-24.240794],[26.970581,-23.76351],[26.987015,-23.704548],[27.08551,-23.57794],[27.146385,-23.524404],[27.185555,-23.523422],[27.241159,-23.490039],[27.313403,-23.424255],[27.399186,-23.383637],[27.498715,-23.368341],[27.563207,-23.324622],[27.592662,-23.252637],[27.643874,-23.217652],[27.716738,-23.219616],[27.758285,-23.196775],[27.768517,-23.148923],[27.812597,-23.107995],[27.890525,-23.073888],[27.93135,-23.033581],[27.93507,-22.98702],[28.027985,-22.873694],[28.210196,-22.693653],[28.381762,-22.593401],[28.542889,-22.572937],[28.695541,-22.53542],[28.839821,-22.48085],[28.94581,-22.39517],[29.013506,-22.278433],[29.129881,-22.213269],[29.364802,-22.19389],[29.377463,-22.192805],[29.66313,-22.146296],[29.902341,-22.184227],[30.190385,-22.291146]],[[27.830374,-28.909088],[27.735599,-28.940094],[27.660462,-29.046961],[27.590285,-29.146489],[27.527137,-29.236096],[27.491015,-29.276611],[27.458045,-29.302759],[27.424921,-29.360016],[27.356811,-29.455308],[27.294489,-29.519335],[27.207466,-29.554216],[27.095225,-29.599278],[27.056933,-29.625633],[27.051713,-29.664029],[27.091763,-29.753687],[27.130468,-29.840194],[27.193514,-29.941325],[27.239712,-30.015325],[27.312679,-30.105707],[27.355364,-30.158624],[27.34968,-30.247352],[27.364046,-30.279237],[27.388437,-30.315927],[27.408591,-30.325332],[27.431432,-30.33851],[27.491945,-30.363986],[27.506569,-30.380936],[27.549047,-30.411218],[27.589665,-30.466409],[27.66656,-30.542321],[27.753066,-30.600044],[27.901842,-30.623815],[28.018166,-30.642315],[28.05682,-30.63105],[28.096404,-30.584541],[28.128702,-30.525113],[28.139037,-30.449872],[28.176141,-30.409823],[28.315461,-30.218465],[28.392097,-30.147565],[28.439122,-30.142501],[28.499584,-30.12891],[28.576685,-30.123019],[28.634356,-30.128755],[28.646913,-30.126585],[28.736882,-30.101987],[28.90111,-30.038425],[28.975317,-29.999409],[29.029009,-29.967576],[29.098049,-29.919052],[29.121975,-29.801126],[29.142232,-29.700977],[29.195149,-29.651626],[29.249202,-29.618812],[29.29354,-29.566929],[29.348886,-29.441975],[29.386765,-29.31976],[29.390692,-29.269686],[29.370952,-29.218475],[29.335915,-29.163698],[29.301344,-29.089852],[29.259744,-29.078276],[29.177992,-29.036935],[29.057999,-28.953736],[28.953716,-28.881441],[28.856255,-28.776073],[28.816154,-28.758916],[28.721792,-28.687706],[28.681175,-28.646778],[28.652649,-28.597892],[28.625829,-28.581718],[28.583455,-28.594172],[28.471885,-28.615824],[28.232623,-28.701245],[28.084415,-28.78],[27.959875,-28.873379],[27.830374,-28.909088]]]]},"type":"Feature","properties":{"ISO_A2":"ZA","NAME":"South Africa"}},{"geometry":{"type":"Polygon","coordinates":[[[32.919882,-9.407384],[32.923345,-9.433997],[32.951043,-9.484227],[32.979827,-9.520349],[32.982101,-9.573627],[32.996002,-9.622823],[33.037808,-9.635019],[33.072431,-9.638223],[33.104471,-9.602669],[33.148086,-9.603496],[33.195731,-9.62613],[33.212681,-9.682975],[33.250043,-9.759559],[33.310453,-9.811856],[33.350967,-9.862188],[33.337118,-9.953966],[33.311486,-10.037992],[33.393549,-10.120932],[33.500105,-10.199687],[33.528941,-10.234672],[33.537623,-10.351564],[33.553746,-10.391303],[33.626196,-10.48861],[33.661543,-10.553102],[33.659062,-10.590516],[33.464759,-10.783062],[33.40316,-10.801769],[33.344869,-10.812673],[33.29278,-10.852309],[33.26136,-10.89334],[33.272729,-10.915044],[33.293245,-10.981138],[33.338668,-11.085163],[33.379751,-11.157923],[33.345541,-11.249132],[33.268388,-11.403903],[33.232732,-11.417701],[33.226427,-11.534851],[33.249991,-11.577639],[33.288335,-11.611126],[33.303942,-11.690811],[33.30513,-11.800003],[33.300996,-11.888215],[33.252369,-12.112594],[33.340115,-12.308344],[33.369984,-12.329686],[33.491424,-12.331082],[33.512301,-12.347721],[33.483259,-12.403429],[33.430652,-12.460479],[33.397941,-12.489832],[33.243429,-12.556546],[33.021582,-12.630495],[32.975176,-12.701343],[32.945617,-12.804386],[32.970525,-12.864744],[32.999981,-12.899626],[32.990472,-12.989439],[32.971145,-13.084317],[32.977657,-13.158886],[32.967631,-13.224981],[32.938538,-13.257382],[32.899729,-13.357014],[32.851825,-13.457008],[32.814049,-13.502741],[32.758445,-13.550335],[32.67044,-13.590436],[32.672042,-13.610332],[32.771778,-13.656582],[32.797513,-13.688518],[32.806711,-13.710274],[32.785369,-13.73141],[32.765163,-13.761072],[32.811,-13.791561],[32.867224,-13.817399],[32.920296,-13.883855],[32.967528,-13.976873],[32.981222,-14.009325],[32.992126,-14.022193],[33.009283,-14.023743],[33.042356,-14.010049],[33.103592,-13.959199],[33.148086,-13.940958],[33.201726,-14.013356],[32.987165,-14.08498],[32.874511,-14.122497],[32.553186,-14.22957],[32.272894,-14.323001],[32.199926,-14.340778],[32.054509,-14.386512],[31.98211,-14.414417],[31.728896,-14.496066],[31.623062,-14.536683],[31.537951,-14.577146],[31.328455,-14.637659],[31.130896,-14.694658],[30.915147,-14.753311],[30.673353,-14.819095],[30.537702,-14.866534],[30.44608,-14.907514],[30.231881,-14.990351],[30.221753,-15.010505],[30.224956,-15.066935],[30.252138,-15.183207],[30.305675,-15.288834],[30.350582,-15.349709],[30.379831,-15.505875],[30.396057,-15.643076],[30.250691,-15.643438],[29.994893,-15.644058],[29.729586,-15.644626],[29.487275,-15.696768],[29.287856,-15.776504],[29.050558,-15.9012],[28.972992,-15.950086],[28.913099,-15.987809],[28.875581,-16.036178],[28.856771,-16.142322],[28.856771,-16.306188],[28.83269,-16.424113],[28.76055,-16.532117],[28.760653,-16.53191],[28.399848,-16.662807],[28.16379,-16.769725],[27.932177,-16.896229],[27.756528,-17.060405],[27.636742,-17.26215],[27.43784,-17.511954],[27.235682,-17.728323],[27.020811,-17.958438],[26.779895,-18.041534],[26.577531,-18.022569],[26.333411,-17.929345],[26.139521,-17.911723],[25.995861,-17.969807],[25.863259,-17.951927],[25.741613,-17.858238],[25.639603,-17.82408],[25.557128,-17.849504],[25.451708,-17.845164],[25.2588,-17.793591],[25.092143,-17.634324],[25.001761,-17.568591],[24.932411,-17.543477],[24.732889,-17.517742],[24.274932,-17.481],[24.227131,-17.489578],[24.03691,-17.520946],[23.799251,-17.560168],[23.59487,-17.599442],[23.380671,-17.640628],[23.181614,-17.474385],[22.955839,-17.285766],[22.721952,-17.075288],[22.545994,-16.910234],[22.459436,-16.815149],[22.305026,-16.689575],[22.193922,-16.62808],[22.150669,-16.597178],[22.040185,-16.26278],[21.979827,-15.955563],[21.979775,-15.724156],[21.979672,-15.403246],[21.979568,-15.082335],[21.979465,-14.761424],[21.979362,-14.440514],[21.979258,-14.119603],[21.979155,-13.798692],[21.979052,-13.477782],[21.979,-13.156819],[21.978897,-13.000963],[22.20958,-13.000963],[22.471011,-13.000963],[22.74438,-13.000963],[23.041519,-13.000963],[23.33871,-13.000963],[23.63585,-13.000963],[23.843175,-13.000963],[23.897487,-12.998224],[23.963013,-12.988458],[23.968026,-12.956935],[23.882398,-12.799012],[23.886532,-12.743253],[23.909321,-12.636128],[23.94472,-12.543782],[23.991332,-12.422136],[23.996499,-12.350667],[23.958879,-12.117813],[23.962341,-11.987847],[23.9734,-11.852971],[23.98389,-11.72502],[23.970971,-11.635827],[23.986784,-11.587251],[24.01469,-11.517695],[24.029314,-11.439198],[24.046677,-11.40535],[24.041406,-11.374137],[24.025542,-11.31564],[24.010039,-11.184743],[23.988335,-11.002791],[23.966475,-10.871791],[24.002752,-10.879129],[24.078407,-10.89148],[24.115097,-10.955662],[24.136491,-11.025942],[24.187185,-11.030024],[24.319891,-11.071779],[24.365728,-11.129863],[24.396268,-11.255178],[24.377923,-11.319309],[24.335135,-11.371295],[24.377923,-11.417132],[24.466548,-11.447673],[24.518535,-11.438526],[24.668293,-11.35295],[24.728134,-11.337757],[24.806373,-11.321169],[24.876859,-11.299155],[25.07602,-11.260036],[25.184851,-11.242983],[25.245984,-11.212442],[25.288772,-11.212442],[25.319313,-11.236885],[25.291821,-11.32551],[25.282623,-11.404988],[25.320656,-11.553506],[25.349388,-11.623011],[25.413364,-11.673499],[25.459976,-11.699802],[25.511859,-11.753391],[25.618829,-11.744192],[25.854887,-11.820105],[25.926511,-11.855297],[26.025936,-11.890178],[26.096423,-11.903201],[26.339664,-11.929917],[26.429736,-11.947849],[26.596392,-11.972034],[26.729718,-11.975961],[26.824079,-11.965212],[26.890483,-11.943508],[26.930894,-11.919376],[26.949549,-11.89886],[26.976834,-11.824653],[27.02665,-11.663732],[27.046081,-11.615931],[27.09538,-11.593762],[27.159149,-11.579241],[27.196408,-11.605028],[27.238059,-11.783518],[27.42368,-11.944542],[27.487036,-12.079727],[27.533441,-12.195328],[27.573852,-12.227005],[27.644287,-12.266796],[27.75689,-12.280852],[27.857452,-12.284883],[28.068861,-12.368185],[28.237274,-12.434538],[28.35768,-12.481977],[28.412871,-12.518047],[28.451473,-12.577475],[28.474366,-12.623364],[28.511263,-12.742219],[28.550847,-12.836167],[28.615391,-12.854047],[28.672958,-12.861334],[28.730061,-12.925464],[28.773159,-12.981895],[28.858787,-13.119457],[28.921729,-13.214594],[28.942296,-13.307146],[29.014229,-13.368848],[29.111639,-13.395151],[29.201866,-13.398355],[29.253698,-13.370811],[29.381804,-13.322856],[29.481436,-13.267975],[29.554196,-13.248958],[29.597191,-13.260534],[29.630264,-13.298568],[29.647627,-13.372982],[29.651762,-13.414323],[29.722662,-13.453804],[29.775165,-13.438094],[29.795319,-13.392722],[29.796456,-13.369675],[29.796249,-13.167516],[29.796042,-12.992127],[29.795835,-12.82702],[29.795629,-12.625896],[29.795474,-12.450609],[29.795319,-12.306174],[29.795164,-12.155485],[29.749637,-12.164012],[29.691966,-12.198325],[29.559726,-12.202407],[29.508153,-12.228194],[29.49203,-12.2669],[29.502262,-12.317594],[29.504897,-12.386169],[29.48557,-12.418415],[29.427537,-12.431282],[29.343718,-12.404772],[29.191221,-12.370201],[29.064356,-12.348858],[28.973405,-12.257856],[28.850053,-12.1205],[28.769438,-12.051305],[28.574618,-11.90811],[28.541545,-11.879171],[28.482531,-11.812095],[28.431784,-11.698355],[28.40698,-11.622804],[28.383363,-11.566736],[28.357267,-11.482968],[28.404189,-11.354397],[28.470283,-11.109606],[28.517981,-10.933182],[28.544232,-10.802389],[28.638903,-10.669271],[28.645518,-10.550208],[28.607381,-10.397401],[28.617148,-10.312962],[28.623504,-10.098866],[28.628878,-9.918722],[28.630118,-9.831286],[28.604229,-9.678789],[28.540512,-9.510065],[28.400158,-9.275041],[28.400675,-9.22476],[28.484288,-9.169414],[28.616476,-9.072262],[28.681278,-9.014695],[28.758741,-8.932633],[28.793519,-8.890982],[28.869535,-8.785872],[28.917801,-8.700606],[28.934493,-8.590276],[28.898112,-8.485425],[28.972216,-8.464961],[29.215612,-8.427806],[29.483761,-8.386878],[29.766225,-8.34378],[30.051375,-8.300268],[30.327483,-8.258204],[30.577907,-8.220015],[30.751126,-8.193608],[30.776706,-8.265852],[30.830708,-8.385586],[30.891944,-8.473746],[30.968374,-8.550951],[31.033383,-8.597666],[31.076326,-8.611877],[31.350624,-8.607071],[31.449223,-8.65389],[31.534851,-8.713266],[31.556245,-8.805509],[31.612779,-8.863231],[31.673654,-8.908758],[31.700009,-8.914339],[31.744709,-8.903229],[31.818038,-8.902247],[31.886095,-8.921987],[31.918652,-8.942193],[31.921856,-9.019449],[31.942629,-9.053969],[32.035337,-9.067405],[32.12975,-9.073348],[32.220855,-9.125593],[32.319299,-9.134894],[32.433194,-9.156392],[32.487144,-9.212719],[32.608377,-9.270545],[32.756585,-9.322221],[32.863245,-9.380874],[32.919882,-9.407384]]]},"type":"Feature","properties":{"ISO_A2":"ZM","NAME":"Zambia"}},{"geometry":{"type":"Polygon","coordinates":[[[31.287837,-22.402043],[31.1973,-22.344889],[31.07338,-22.307785],[30.916077,-22.29068],[30.711645,-22.297812],[30.460188,-22.329024],[30.190385,-22.291146],[29.902341,-22.184227],[29.66313,-22.146296],[29.377463,-22.192805],[29.364802,-22.19389],[29.315245,-22.157717],[29.237213,-22.079479],[29.106885,-22.065681],[29.071539,-22.047491],[29.042393,-22.018397],[29.023376,-21.981242],[29.015831,-21.939901],[29.037329,-21.811382],[29.025547,-21.79686],[28.990717,-21.781461],[28.9193,-21.766061],[28.747734,-21.707615],[28.532037,-21.651236],[28.181619,-21.589328],[28.045606,-21.573101],[28.014032,-21.554188],[27.974551,-21.506749],[27.907475,-21.359058],[27.84412,-21.261493],[27.693431,-21.111011],[27.669454,-21.064295],[27.676895,-20.944819],[27.688057,-20.84834],[27.704283,-20.766432],[27.696997,-20.689745],[27.694827,-20.594557],[27.699581,-20.530685],[27.679324,-20.502986],[27.62465,-20.483556],[27.468949,-20.474822],[27.280743,-20.478698],[27.274646,-20.381856],[27.256766,-20.232046],[27.221522,-20.145798],[27.178217,-20.100943],[27.091814,-20.054176],[26.916735,-19.990149],[26.678248,-19.892791],[26.474591,-19.748613],[26.241014,-19.569296],[26.168098,-19.53829],[26.081902,-19.369928],[25.950695,-19.081729],[25.95917,-18.985663],[25.939327,-18.938637],[25.811893,-18.797044],[25.783677,-18.72356],[25.76125,-18.649249],[25.558316,-18.441768],[25.489277,-18.351283],[25.436722,-18.234907],[25.384322,-18.141941],[25.34019,-18.104476],[25.282416,-18.041224],[25.242263,-17.969084],[25.22397,-17.915237],[25.239008,-17.843097],[25.2588,-17.793591],[25.451708,-17.845164],[25.557128,-17.849504],[25.639603,-17.82408],[25.741613,-17.858238],[25.863259,-17.951927],[25.995861,-17.969807],[26.139521,-17.911723],[26.333411,-17.929345],[26.577531,-18.022569],[26.779895,-18.041534],[27.020811,-17.958438],[27.235682,-17.728323],[27.43784,-17.511954],[27.636742,-17.26215],[27.756528,-17.060405],[27.932177,-16.896229],[28.16379,-16.769725],[28.399848,-16.662807],[28.760653,-16.53191],[28.76055,-16.532117],[28.83269,-16.424113],[28.856771,-16.306188],[28.856771,-16.142322],[28.875581,-16.036178],[28.913099,-15.987809],[28.972992,-15.950086],[29.050558,-15.9012],[29.287856,-15.776504],[29.487275,-15.696768],[29.729586,-15.644626],[29.994893,-15.644058],[30.250691,-15.643438],[30.396057,-15.643076],[30.398124,-15.800741],[30.40939,-15.978198],[30.43776,-15.995354],[30.630151,-15.999178],[30.938763,-16.011684],[31.236264,-16.023673],[31.426227,-16.152347],[31.489892,-16.179736],[31.687606,-16.214152],[31.939891,-16.428816],[32.243231,-16.448711],[32.452004,-16.515736],[32.635869,-16.589426],[32.741754,-16.677638],[32.810225,-16.697637],[32.902881,-16.7042],[32.947994,-16.712313],[32.937918,-16.775927],[32.876268,-16.883569],[32.884432,-17.037823],[32.969285,-17.251608],[32.980757,-17.43754],[32.954712,-17.765375],[32.955539,-18.082875],[32.964686,-18.196253],[32.978484,-18.271443],[32.996415,-18.312577],[32.993056,-18.359603],[32.942517,-18.492669],[32.901692,-18.632919],[32.900297,-18.68904],[32.884536,-18.728521],[32.85446,-18.763661],[32.721962,-18.828411],[32.699224,-18.86846],[32.699741,-18.940911],[32.716484,-19.001889],[32.766248,-19.024317],[32.826193,-19.058836],[32.849809,-19.104363],[32.849964,-19.152474],[32.830947,-19.241461],[32.777669,-19.388739],[32.830792,-19.558186],[32.890479,-19.668101],[32.972696,-19.795381],[33.006751,-19.873825],[33.004942,-19.930204],[32.992746,-19.984878],[32.869653,-20.217215],[32.780873,-20.361548],[32.672559,-20.516112],[32.529312,-20.613057],[32.492415,-20.659772],[32.477636,-20.712999],[32.482803,-20.828858],[32.476189,-20.95009],[32.353612,-21.136487],[32.429783,-21.297046],[32.41242,-21.311825],[32.371079,-21.334873],[32.194759,-21.515379],[32.01632,-21.698055],[31.88594,-21.831535],[31.737681,-21.983361],[31.571541,-22.15348],[31.429534,-22.298845],[31.287837,-22.402043]]]},"type":"Feature","properties":{"ISO_A2":"ZW","NAME":"Zimbabwe"}}]} \ No newline at end of file +{"type":"FeatureCollection", "features": [ +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[124.451,-9.18],[124.92,-8.962],[125.062,-9.486],[124.418,-10.164],[123.515,-10.336],[123.689,-9.611],[124.03,-9.342],[124.451,-9.18]]],[[[117.567,4.16],[117.749,3.637],[117.353,3.183],[118.063,2.367],[117.924,1.819],[119.003,0.962],[118.798,0.805],[117.811,0.812],[117.517,0.291],[117.596,-0.423],[117.024,-1.203],[116.325,-1.704],[116.603,-2.224],[115.968,-3.609],[114.713,-4.171],[114.611,-3.684],[114.108,-3.347],[113.183,-3.077],[112.618,-3.424],[111.296,-2.936],[110.263,-3.003],[110.069,-1.433],[109.734,-0.954],[109.273,-0.854],[109.167,0.112],[108.855,0.832],[109.096,1.561],[109.645,2.083],[109.677,1.573],[110.554,0.851],[111.198,1.075],[111.823,1.008],[112.18,1.449],[113.023,1.537],[113.65,1.233],[114.501,1.436],[115.464,3.031],[115.647,4.169],[115.879,4.352],[117.165,4.333],[117.567,4.16]]],[[[140.974,-2.601],[140.976,-4.596],[140.977,-6.897],[140.977,-9.106],[139.932,-8.109],[138.839,-8.138],[138.859,-8.101],[138.921,-8.08],[138.906,-8.044],[138.911,-7.923],[138.994,-7.865],[139.093,-7.56],[138.688,-7.193],[138.822,-6.806],[138.271,-5.887],[137.706,-5.222],[135.97,-4.52],[135.186,-4.449],[134.43,-3.908],[133.586,-3.567],[133.269,-4.052],[132.792,-3.927],[132.832,-3.461],[132.326,-2.947],[133.034,-2.479],[132.073,-2.105],[131.927,-1.706],[131.206,-1.524],[131.243,-0.819],[132.709,-0.36],[133.392,-0.723],[133.977,-0.723],[134.282,-1.35],[134.087,-1.683],[134.193,-2.379],[134.658,-2.563],[134.985,-3.33],[135.47,-3.363],[136.266,-2.56],[136.404,-2.22],[137.794,-1.484],[139.865,-2.372],[140.974,-2.601]]],[[[109.906,-7.838],[108.54,-7.692],[108.327,-7.817],[107.411,-7.496],[106.523,-7.411],[105.824,-6.435],[106.053,-5.881],[106.495,-6.035],[108.216,-6.238],[108.605,-6.762],[110.356,-6.973],[110.73,-6.457],[112.583,-6.99],[112.761,-7.531],[113.299,-7.789],[114.016,-7.618],[114.467,-7.831],[114.197,-8.646],[113.198,-8.277],[112.673,-8.447],[111.673,-8.368],[110.477,-8.112],[109.906,-7.838]]],[[[119.847,-0.875],[119.794,0.197],[120.063,0.743],[120.568,0.782],[120.967,1.346],[121.631,1.062],[123.948,0.839],[124.548,1.36],[124.899,0.973],[124.322,0.399],[123.239,0.325],[122.978,0.483],[120.375,0.478],[119.996,-0.209],[120.089,-0.657],[121.073,-1.421],[121.501,-0.859],[122.912,-0.763],[122.369,-1.493],[121.692,-1.908],[122.016,-2.694],[122.386,-3.132],[122.201,-3.557],[122.675,-4.123],[122.108,-4.52],[121.536,-4.231],[120.894,-3.539],[121.067,-2.752],[120.776,-2.615],[120.232,-2.95],[120.447,-3.729],[120.323,-5.51],[119.648,-5.679],[119.353,-5.356],[119.627,-4.315],[119.298,-3.428],[118.927,-3.566],[118.757,-2.776],[119.354,-1.935],[119.328,-1.214],[119.847,-0.875]]],[[[100.947,1.825],[102.118,1.387],[102.24,0.982],[103.711,0.311],[103.376,-0.727],[103.839,-1.033],[104.377,-1.032],[104.454,-1.531],[104.883,-2.285],[105.624,-2.402],[106.063,-3.267],[105.82,-3.673],[105.906,-4.469],[105.783,-5.829],[105.118,-5.782],[104.623,-5.491],[104.298,-5.643],[103.705,-4.955],[103.415,-4.869],[102.313,-3.991],[102.222,-3.643],[101.637,-3.251],[101.105,-2.587],[100.406,-1.264],[100.301,-0.816],[99.09,0.622],[98.535,1.936],[97.658,2.412],[97.603,2.866],[96.761,3.749],[96.43,3.825],[95.426,4.827],[95.197,5.546],[96.126,5.282],[97.497,5.252],[98.276,4.425],[98.306,4.08],[99.751,3.18],[100.947,1.825]]],[[[120.792,-9.961],[120.156,-10.221],[119.477,-9.749],[119.629,-9.342],[120.436,-9.631],[120.792,-9.961]]],[[[119.204,-8.611],[117.01,-9.107],[116.79,-8.584],[117.195,-8.358],[117.805,-8.72],[118.115,-8.114],[118.988,-8.309],[119.204,-8.611]]],[[[123.026,-8.289],[122.807,-8.611],[121.794,-8.884],[120.923,-8.926],[119.824,-8.78],[120.277,-8.269],[120.976,-8.337],[121.51,-8.602],[122.288,-8.634],[123.026,-8.289]]],[[[115.619,-8.289],[115.254,-8.715],[114.639,-8.399],[115.216,-8.06],[115.619,-8.289]]],[[[99.274,-1.635],[98.885,-1.679],[98.594,-1.198],[98.883,-0.913],[99.274,-1.635]]],[[[138.939,-7.542],[139.046,-7.562],[138.983,-7.83],[138.884,-7.933],[138.904,-8.076],[138.818,-8.093],[138.661,-8.169],[138.444,-8.379],[137.637,-8.389],[138.028,-7.61],[138.939,-7.542]]],[[[127.241,-3.471],[126.742,-3.859],[126.174,-3.603],[126.421,-3.07],[127.241,-3.471]]],[[[130.873,-3.574],[130.818,-3.869],[129.545,-3.298],[128.877,-3.203],[128.484,-3.462],[128.175,-2.857],[129.122,-2.958],[129.444,-2.785],[130.578,-3.123],[130.873,-3.574]]],[[[106.769,-2.56],[106.613,-2.943],[105.987,-2.821],[105.796,-2.172],[105.306,-2.135],[105.46,-1.563],[105.876,-1.489],[106.354,-2.463],[106.769,-2.56]]],[[[127.666,-0.209],[127.406,1.23],[127.852,1.825],[128.701,1.071],[127.96,0.483],[127.666,-0.209]]]]},"properties":{"NAME":"Indonesia","ISO_A2":"ID"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[117.567,4.16],[117.165,4.333],[115.879,4.352],[115.647,4.169],[115.464,3.031],[114.501,1.436],[113.65,1.233],[113.023,1.537],[112.18,1.449],[111.823,1.008],[111.198,1.075],[110.554,0.851],[109.677,1.573],[109.645,2.083],[109.928,1.692],[110.968,1.503],[111.44,2.68],[112.974,3.144],[113.947,4.274],[113.999,4.601],[114.587,4.021],[114.982,4.889],[115.03,4.821],[115.146,4.909],[115.849,5.56],[116.201,6.218],[116.974,6.708],[117.744,6.39],[117.655,5.959],[118.411,5.796],[119.156,5.106],[118.136,4.882],[118.543,4.36],[117.567,4.16]]],[[[102.073,6.258],[103.12,5.381],[103.449,4.795],[103.339,3.758],[103.435,2.962],[103.949,2.34],[104.295,1.447],[103.367,1.538],[102.188,2.216],[101.283,2.911],[101.298,3.275],[100.721,3.868],[100.349,6.013],[100.127,6.442],[101.082,6.246],[101.105,5.638],[102.073,6.258]]]]},"properties":{"NAME":"Malaysia","ISO_A2":"MY"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-69.51,-17.507],[-69.141,-18.031],[-68.99,-18.946],[-68.496,-19.458],[-68.776,-20.09],[-68.208,-21.284],[-67.876,-22.834],[-67.194,-22.822],[-67.014,-23.001],[-67.362,-24.03],[-68.244,-24.385],[-68.572,-24.77],[-68.42,-26.179],[-69.173,-27.924],[-69.653,-28.398],[-70.043,-29.363],[-69.903,-30.313],[-70.217,-30.515],[-70.591,-31.55],[-69.788,-33.379],[-69.833,-34.243],[-70.228,-34.585],[-70.38,-36.046],[-71.145,-36.688],[-71.185,-37.706],[-70.874,-38.691],[-71.402,-39.236],[-71.956,-40.72],[-71.926,-41.623],[-72.149,-42.999],[-71.66,-43.926],[-71.822,-44.403],[-71.312,-45.299],[-71.799,-45.74],[-71.687,-46.69],[-72.544,-47.915],[-72.592,-48.791],[-73.458,-49.308],[-73.531,-50.141],[-73.096,-50.771],[-72.303,-50.649],[-72.281,-51.701],[-71.918,-51.99],[-69.953,-52.007],[-68.449,-52.347],[-69.235,-52.203],[-70.812,-52.821],[-70.974,-53.756],[-72.053,-53.707],[-72.467,-53.283],[-72.161,-52.652],[-73.531,-52.457],[-73.54,-52.055],[-74.256,-50.939],[-74.126,-50.762],[-74.424,-49.371],[-74.415,-47.984],[-74.736,-47.705],[-74.267,-46.782],[-75.705,-46.639],[-74.713,-45.984],[-73.555,-45.878],[-73.461,-45.266],[-72.728,-44.759],[-73.278,-44.11],[-72.761,-43.009],[-72.864,-41.906],[-73.66,-41.758],[-73.947,-40.973],[-73.683,-39.942],[-73.242,-39.49],[-73.672,-37.363],[-73.002,-36.714],[-72.647,-35.567],[-72.231,-35.116],[-72.027,-34.163],[-71.641,-33.501],[-71.412,-32.37],[-71.713,-30.615],[-71.287,-29.91],[-71.522,-28.94],[-70.912,-27.622],[-70.445,-25.345],[-70.583,-24.525],[-70.562,-23.06],[-70.297,-22.918],[-70.059,-21.433],[-70.206,-20.739],[-70.123,-20.072],[-70.395,-18.338],[-69.97,-18.251],[-69.51,-17.507]]],[[[-68.642,-54.799],[-68.654,-54.886],[-70.24,-54.858],[-70.073,-54.249],[-70.474,-53.309],[-69.584,-52.51],[-68.628,-52.64],[-68.642,-54.783],[-68.642,-54.799]]],[[[-67.999,-55.628],[-69.608,-55.365],[-68.441,-54.94],[-67.999,-55.628]]],[[[-75.198,-49.771],[-75.052,-48.857],[-74.526,-48.723],[-74.421,-49.69],[-75.198,-49.771]]],[[[-74.335,-43.282],[-74.055,-41.945],[-73.489,-42.146],[-73.517,-42.789],[-73.877,-43.422],[-74.335,-43.282]]]]},"properties":{"NAME":"Chile","ISO_A2":"CL"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-67.194,-22.822],[-67.876,-22.834],[-68.208,-21.284],[-68.776,-20.09],[-68.496,-19.458],[-68.99,-18.946],[-69.141,-18.031],[-69.51,-17.507],[-69.002,-16.423],[-69.424,-15.656],[-69.391,-14.964],[-68.884,-14.211],[-68.981,-12.868],[-68.684,-12.502],[-69.578,-10.952],[-68.616,-11.112],[-67.756,-10.714],[-66.632,-9.904],[-65.789,-9.733],[-65.304,-9.826],[-65.45,-10.468],[-65.353,-11.391],[-64.997,-11.996],[-64.396,-12.457],[-63.801,-12.455],[-62.807,-12.989],[-62.222,-13.121],[-61.848,-13.531],[-60.897,-13.553],[-60.465,-13.817],[-60.292,-14.63],[-60.13,-16.273],[-58.465,-16.331],[-58.381,-17.267],[-57.791,-17.556],[-57.551,-18.184],[-58.159,-20.165],[-58.175,-19.821],[-59.09,-19.287],[-60.006,-19.298],[-61.761,-19.658],[-62.277,-20.58],[-62.276,-21.067],[-62.65,-22.234],[-62.804,-22.004],[-63.948,-22.008],[-64.587,-22.213],[-65.745,-22.114],[-66.24,-21.792],[-67.194,-22.822]]]},"properties":{"NAME":"Bolivia","ISO_A2":"BO"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-69.51,-17.507],[-69.97,-18.251],[-70.395,-18.338],[-71.36,-17.633],[-71.515,-17.285],[-73.7,-16.221],[-75.161,-15.393],[-76.282,-14.141],[-76.221,-13.358],[-77.175,-12.072],[-77.32,-11.494],[-78.056,-10.348],[-78.497,-9.19],[-78.986,-8.217],[-79.466,-7.716],[-79.965,-6.787],[-81.101,-6.072],[-80.856,-5.65],[-81.198,-5.208],[-81.253,-4.239],[-80.341,-3.393],[-80.08,-4.309],[-79.009,-4.96],[-78.363,-3.489],[-77.849,-2.981],[-76.685,-2.574],[-75.56,-1.503],[-75.283,-0.107],[-74.825,-0.17],[-74.289,-0.943],[-73.637,-1.255],[-73.186,-1.8],[-72.943,-2.419],[-72.397,-2.447],[-71.768,-2.142],[-70.874,-2.23],[-70.051,-2.715],[-70.734,-3.782],[-69.965,-4.236],[-70.832,-4.179],[-71.774,-4.482],[-72.918,-5.132],[-73.235,-6.078],[-73.132,-6.435],[-73.765,-6.904],[-73.527,-8.372],[-72.959,-9.086],[-72.43,-9.482],[-72.196,-10.006],[-71.391,-10.007],[-70.681,-9.528],[-70.641,-11.011],[-69.578,-10.952],[-68.684,-12.502],[-68.981,-12.868],[-68.884,-14.211],[-69.391,-14.964],[-69.424,-15.656],[-69.002,-16.423],[-69.51,-17.507]]]},"properties":{"NAME":"Peru","ISO_A2":"PE"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-68.449,-52.347],[-69.953,-52.007],[-71.918,-51.99],[-72.281,-51.701],[-72.303,-50.649],[-73.096,-50.771],[-73.531,-50.141],[-73.458,-49.308],[-72.592,-48.791],[-72.544,-47.915],[-71.687,-46.69],[-71.799,-45.74],[-71.312,-45.299],[-71.822,-44.403],[-71.66,-43.926],[-72.149,-42.999],[-71.926,-41.623],[-71.956,-40.72],[-71.402,-39.236],[-70.874,-38.691],[-71.185,-37.706],[-71.145,-36.688],[-70.38,-36.046],[-70.228,-34.585],[-69.833,-34.243],[-69.788,-33.379],[-70.591,-31.55],[-70.217,-30.515],[-69.903,-30.313],[-70.043,-29.363],[-69.653,-28.398],[-69.173,-27.924],[-68.42,-26.179],[-68.572,-24.77],[-68.244,-24.385],[-67.362,-24.03],[-67.014,-23.001],[-67.194,-22.822],[-66.24,-21.792],[-65.745,-22.114],[-64.587,-22.213],[-63.948,-22.008],[-62.804,-22.004],[-62.65,-22.234],[-61.956,-23.034],[-61.006,-23.805],[-60.034,-24.007],[-58.809,-24.777],[-57.754,-25.181],[-57.557,-25.46],[-58.087,-26.127],[-58.248,-26.758],[-58.653,-27.156],[-57.18,-27.487],[-56.125,-27.299],[-54.706,-26.442],[-54.6,-25.575],[-53.91,-25.629],[-53.667,-26.219],[-53.819,-27.14],[-54.828,-27.545],[-55.773,-28.232],[-56.416,-29.051],[-57.612,-30.183],[-58.169,-31.846],[-58.2,-32.447],[-58.549,-33.683],[-58.155,-34.75],[-57.522,-35.013],[-57.145,-35.484],[-57.248,-36.17],[-56.698,-36.396],[-56.665,-36.851],[-57.594,-38.153],[-59.063,-38.694],[-60.866,-38.976],[-62.027,-38.938],[-62.056,-39.452],[-62.484,-40.288],[-62.338,-40.873],[-63.779,-41.159],[-64.947,-40.711],[-65.175,-41.01],[-65.07,-41.986],[-64.566,-42.436],[-63.81,-42.07],[-63.62,-42.751],[-64.513,-42.936],[-65.334,-43.673],[-65.217,-44.366],[-67.332,-45.613],[-67.622,-46.164],[-66.786,-47.007],[-65.745,-47.204],[-65.847,-47.944],[-67.557,-49.016],[-67.732,-49.781],[-68.876,-50.331],[-69.168,-50.978],[-68.449,-52.347]]],[[[-68.642,-54.783],[-68.628,-52.64],[-67.984,-53.601],[-66.482,-54.466],[-67.031,-54.905],[-68.642,-54.783]]]]},"properties":{"NAME":"Argentina","ISO_A2":"AR"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[76.777,35.646],[76.166,35.806],[75.977,36.463],[75.351,36.916],[74.542,37.022],[74.892,37.231],[75.164,37.401],[74.776,38.511],[73.797,38.603],[73.633,39.448],[74.004,40.061],[74.835,40.512],[75.682,40.292],[76.449,40.416],[76.861,41.013],[78.075,41.04],[78.36,41.378],[80.21,42.19],[80.368,43.028],[80.773,43.113],[80.062,45.019],[82.291,45.533],[83.15,47.212],[84.916,46.851],[85.499,47.052],[85.515,47.92],[85.784,48.408],[86.565,48.527],[87.324,49.085],[87.816,49.166],[87.943,48.599],[89.046,47.993],[89.542,48.031],[90.441,47.493],[91.047,46.566],[90.651,45.493],[90.905,45.186],[93.525,44.951],[94.698,44.343],[95.379,44.287],[95.908,43.215],[96.351,42.741],[97.193,42.787],[99.474,42.564],[100.017,42.677],[101.638,42.515],[102.034,42.185],[103.721,41.756],[104.501,41.871],[105.015,41.596],[106.768,42.287],[108.177,42.454],[109.485,42.449],[110.407,42.769],[110.934,43.288],[111.933,43.697],[111.406,44.416],[112.011,45.087],[113.635,44.746],[114.534,45.385],[115.638,45.444],[116.604,46.309],[117.302,46.35],[118.238,46.715],[119.68,46.592],[119.7,47.16],[118.542,47.966],[117.742,47.978],[115.853,47.706],[115.515,48.122],[116.684,49.823],[117.759,49.513],[119.316,50.093],[119.294,50.599],[120.108,51.665],[120.779,52.118],[120.28,52.866],[120.874,53.28],[123.64,53.551],[124.72,53.149],[125.621,53.062],[127.287,50.751],[127.508,49.822],[129.711,49.274],[130.533,48.636],[131.023,47.682],[132.525,47.708],[133.092,48.107],[134.386,48.381],[134.773,47.711],[134.154,47.258],[133.902,46.259],[132.953,45.024],[131.818,45.333],[131.066,44.682],[131.281,43.38],[130.531,42.53],[129.703,42.442],[128.964,42.089],[128.035,41.994],[128.186,41.404],[127.269,41.505],[126.887,41.785],[126.008,40.899],[124.896,40.484],[124.37,40.098],[121.674,39.088],[121.436,39.509],[122.302,40.502],[121.361,40.94],[120.436,40.194],[119.536,39.891],[118.94,39.139],[117.718,39.093],[117.566,38.613],[118.085,38.139],[118.84,38.153],[119.243,37.769],[119.441,37.121],[120.738,37.834],[122.04,36.985],[120.751,36.459],[120.697,36.144],[119.648,35.584],[119.207,35.048],[119.641,34.551],[120.257,34.312],[120.896,33.014],[120.911,32.63],[121.822,31.952],[121.32,31.505],[121.977,30.915],[120.978,30.543],[121.983,29.823],[121.841,29.161],[120.835,27.956],[120.08,26.646],[119.675,26.619],[119.558,25.564],[119.11,25.407],[118.571,24.569],[118.131,24.62],[117.894,24.028],[117.078,23.565],[116.495,22.939],[115.374,22.694],[114.717,22.791],[114.23,22.556],[114.082,22.529],[112.608,21.775],[111.206,21.532],[110.157,20.986],[110.534,20.478],[110.128,20.248],[109.67,21.123],[109.136,21.603],[107.991,21.486],[107.348,21.599],[106.722,22.007],[106.667,22.868],[105.854,22.905],[105.332,23.318],[104.728,22.839],[103.867,22.575],[103.31,22.788],[102.989,22.438],[102.443,22.765],[102.119,22.398],[101.518,22.228],[101.723,21.304],[101.159,21.553],[100.622,21.469],[99.95,21.721],[99.942,22.046],[99.358,22.495],[99.217,23.057],[98.503,24.121],[97.708,24.125],[97.536,24.745],[97.738,25.091],[98.692,25.879],[98.679,27.577],[97.528,28.53],[97.323,28.217],[96.966,28.33],[96.142,29.368],[95.511,29.132],[94.777,29.167],[93.446,28.672],[92.628,27.916],[91.633,27.759],[90.262,28.335],[89.561,28.135],[88.892,27.316],[88.61,28.106],[88.118,27.861],[87.156,27.826],[86.662,28.107],[85.98,27.885],[85.675,28.306],[85.08,28.319],[84.235,28.9],[83.517,29.192],[81.592,30.414],[80.996,30.197],[80.253,30.565],[79.198,31.325],[78.738,31.335],[78.943,32.346],[79.5,32.747],[78.781,33.553],[78.73,34.079],[77.883,35.431],[76.777,35.646]]],[[[111.011,19.684],[110.698,19.417],[110.427,18.681],[109.44,18.289],[108.695,18.505],[108.632,19.286],[109.304,19.922],[110.64,20.108],[111.011,19.684]]]]},"properties":{"NAME":"China","ISO_A2":"CN"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[34.248,31.211],[34.481,31.583],[35.105,33.089],[35.821,33.407],[35.758,32.744],[35.561,32.385],[34.946,32.177],[35.458,31.492],[34.956,29.559],[34.887,29.49],[34.248,31.211]]]},"properties":{"NAME":"Israel","ISO_A2":"IL"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.821,33.407],[35.105,33.089],[35.97,34.65],[36.604,34.199],[35.821,33.407]]]},"properties":{"NAME":"Lebanon","ISO_A2":"LB"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[34.071,9.455],[34.279,10.566],[34.947,11.275],[35.617,12.575],[36.124,12.721],[36.526,14.264],[37.565,14.117],[37.891,14.88],[38.427,14.417],[40.105,14.466],[40.833,14.106],[42.379,12.466],[41.749,11.538],[41.799,10.971],[42.924,10.999],[42.836,10.208],[43.419,9.413],[44.024,8.986],[46.979,7.997],[47.979,7.997],[46.424,6.497],[44.942,4.911],[43.969,4.954],[43.119,4.648],[42.79,4.286],[41.885,3.977],[41.115,3.962],[40.764,4.285],[39.848,3.867],[39.436,3.462],[38.102,3.613],[36.844,4.432],[35.921,4.619],[35.804,5.318],[35.099,5.622],[34.734,6.638],[33.716,7.657],[33.051,7.801],[33.174,8.404],[33.971,8.445],[34.071,9.455]]]},"properties":{"NAME":"Ethiopia","ISO_A2":"ET"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[34.071,9.455],[33.971,8.445],[33.174,8.404],[33.051,7.801],[33.716,7.657],[34.734,6.638],[35.099,5.622],[35.804,5.318],[35.921,4.619],[35.246,4.982],[34.381,4.62],[33.977,4.22],[33.533,3.774],[33.017,3.877],[31.944,3.591],[31.141,3.785],[30.84,3.49],[29.494,4.668],[28.755,4.554],[28.404,4.278],[27.772,4.596],[27.441,5.071],[27.17,5.72],[26.528,6.043],[26.378,6.653],[25.36,7.336],[24.832,8.166],[24.131,8.343],[24.17,8.689],[24.558,8.887],[24.793,9.798],[25.084,10.293],[25.843,10.418],[26.557,9.52],[27.895,9.595],[28.045,9.331],[28.844,9.325],[30.013,10.27],[30.749,9.736],[31.235,9.792],[32.414,11.051],[32.345,11.709],[33.209,12.21],[33.083,11.585],[33.182,10.843],[33.902,10.192],[34.071,9.455]]]},"properties":{"NAME":"S. Sudan","ISO_A2":"SS"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.921,4.619],[36.844,4.432],[38.102,3.613],[39.436,3.462],[39.848,3.867],[40.764,4.285],[41.115,3.962],[41.885,3.977],[40.965,2.814],[40.98,-0.871],[41.535,-1.696],[40.829,-2.375],[40.175,-2.763],[40.129,-3.252],[39.551,-4.402],[39.191,-4.678],[37.771,-3.655],[37.645,-3.046],[35.416,-1.801],[33.904,-1.003],[33.894,0.11],[34.979,1.676],[34.924,2.477],[34.434,3.182],[33.977,4.22],[34.381,4.62],[35.246,4.982],[35.921,4.619]]]},"properties":{"NAME":"Kenya","ISO_A2":"KE"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.542,37.022],[75.351,36.916],[75.977,36.463],[76.166,35.806],[76.777,35.646],[77.049,35.11],[76.553,34.726],[75.777,34.504],[74.286,34.769],[73.998,34.197],[74.002,33.178],[75.024,32.466],[74.489,31.711],[74.33,30.9],[73.37,29.927],[72.902,29.023],[72.382,28.784],[71.861,27.95],[70.832,27.701],[70.342,28.011],[69.576,27.188],[69.465,26.808],[70.158,26.53],[70.065,25.98],[70.647,25.431],[71.064,24.683],[69.972,24.165],[68.726,24.289],[68.183,23.842],[67.632,23.803],[67.176,24.758],[66.68,24.831],[66.437,25.598],[65.672,25.347],[64.663,25.229],[61.588,25.202],[61.857,26.242],[62.754,26.644],[62.736,27.995],[62.363,28.419],[61.653,28.756],[60.844,29.858],[62.478,29.408],[63.569,29.497],[64.086,29.387],[66.196,29.835],[66.366,30.923],[67.346,31.208],[68.126,31.811],[69.004,31.651],[69.548,33.075],[70.294,33.319],[70.003,34.044],[71.047,34.042],[71.081,34.673],[71.634,35.203],[71.171,36.027],[71.629,36.46],[72.565,36.821],[74.094,36.831],[74.542,37.022]]]},"properties":{"NAME":"Pakistan","ISO_A2":"PK"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[34.965,-11.574],[34.651,-11.57],[34.354,-12.199],[34.545,-13.326],[34.894,-13.535],[35.853,-14.667],[35.796,-16.005],[35.214,-16.484],[34.385,-16.186],[34.233,-15.89],[34.569,-15.271],[34.344,-14.387],[33.604,-14.524],[33.203,-14.014],[32.723,-13.573],[33.025,-12.613],[33.373,-12.519],[33.23,-11.417],[33.319,-10.818],[33.674,-10.577],[32.921,-9.408],[33.404,-9.605],[34.013,-9.477],[34.483,-9.946],[34.593,-11.016],[34.965,-11.574]]]},"properties":{"NAME":"Malawi","ISO_A2":"MW"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-54.615,2.326],[-54.213,2.776],[-53.989,3.611],[-54.355,4.067],[-54.482,4.913],[-54.171,5.348],[-53.944,5.745],[-52.995,5.458],[-51.931,4.59],[-51.683,4.039],[-51.988,3.705],[-52.708,2.359],[-53.344,2.35],[-54.135,2.111],[-54.615,2.326]]]},"properties":{"NAME":"French Guiana","ISO_A2":"GF"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-54.171,5.348],[-54.482,4.913],[-54.355,4.067],[-53.989,3.611],[-54.213,2.776],[-54.615,2.326],[-55.018,2.591],[-56.117,2.333],[-56.482,1.942],[-56.705,2.03],[-58.068,4.151],[-57.72,4.99],[-57.248,5.485],[-56.957,6.012],[-55.999,5.811],[-55.844,5.976],[-54.774,5.985],[-54.037,5.842],[-54.171,5.348]]]},"properties":{"NAME":"Suriname","ISO_A2":"SR"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-57.248,5.485],[-57.72,4.99],[-58.068,4.151],[-56.705,2.03],[-56.482,1.942],[-57.104,2.021],[-57.561,1.709],[-58.332,1.593],[-58.519,1.267],[-59.242,1.378],[-59.765,1.921],[-60,2.694],[-59.838,3.609],[-59.529,3.932],[-60.088,4.608],[-59.983,5.086],[-60.74,5.202],[-61.38,5.905],[-61.205,6.596],[-60.421,6.942],[-60.731,7.525],[-59.816,8.288],[-60.021,8.558],[-59.165,8.059],[-58.068,6.822],[-57.167,6.085],[-57.248,5.485]]]},"properties":{"NAME":"Guyana","ISO_A2":"GY"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-17.014,21.42],[-15.62,24.026],[-14.908,24.685],[-14.782,25.447],[-14.41,26.26],[-13.62,26.689],[-12.968,27.915],[-11.486,28.326],[-10.574,28.99],[-9.655,30.127],[-9.848,31.402],[-9.366,32.026],[-9.26,32.577],[-8.243,33.405],[-6.822,34.04],[-6.292,34.881],[-5.927,35.781],[-5.399,35.925],[-5.341,35.847],[-4.77,35.241],[-4.376,35.152],[-2.948,35.33],[-2.913,35.277],[-2.223,35.089],[-1.788,34.757],[-1.674,33.238],[-1.25,32.082],[-2.516,32.132],[-2.828,31.795],[-3.66,31.648],[-3.646,30.711],[-4.372,30.509],[-5.756,29.614],[-7.619,29.389],[-8.682,28.666],[-8.682,27.661],[-8.753,27.19],[-9.734,26.86],[-10.922,27.01],[-11.717,26.104],[-12.03,26.03],[-12.43,24.83],[-14.02,23.41],[-14.22,22.31],[-14.84,21.45],[-17.014,21.42]]]},"properties":{"NAME":"Morocco","ISO_A2":"MA"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-17.014,21.42],[-14.84,21.45],[-14.22,22.31],[-14.02,23.41],[-12.43,24.83],[-12.03,26.03],[-11.717,26.104],[-10.922,27.01],[-9.734,26.86],[-8.753,27.19],[-8.682,27.661],[-8.682,27.285],[-8.681,26.013],[-12.015,25.995],[-12.015,23.495],[-13.015,23.018],[-13.015,21.333],[-16.959,21.333],[-17.057,20.767],[-17.014,21.42]]]},"properties":{"NAME":"W. Sahara","ISO_A2":"EH"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-83.644,10.926],[-83.466,10.495],[-82.574,9.576],[-82.898,8.035],[-83.74,8.624],[-83.63,9.035],[-84.865,9.823],[-85.639,9.905],[-85.862,10.347],[-85.702,11.081],[-84.676,11.07],[-83.933,10.718],[-83.644,10.926]]]},"properties":{"NAME":"Costa Rica","ISO_A2":"CR"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-83.644,10.926],[-83.933,10.718],[-84.676,11.07],[-85.702,11.081],[-86.496,11.759],[-87.314,12.982],[-86.702,13.314],[-86.097,14.044],[-85.824,13.848],[-84.77,14.805],[-84.483,14.619],[-83.13,14.997],[-83.431,13.957],[-83.508,12.903],[-83.767,12.547],[-83.644,10.926]]]},"properties":{"NAME":"Nicaragua","ISO_A2":"NI"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[18.626,3.477],[18.613,3.128],[18.072,2.16],[17.867,1.017],[17.94,0.361],[17.75,-0.523],[16.84,-1.263],[16.231,-2.129],[16.208,-3.362],[15.883,-3.945],[15.204,-4.339],[14.831,-4.815],[14.396,-4.856],[14.369,-4.278],[13.359,-4.795],[13.074,-4.635],[12.762,-4.391],[12.01,-5.02],[11.806,-4.577],[11.114,-3.937],[11.828,-3.548],[11.558,-2.349],[12.459,-2.33],[12.805,-1.919],[13.361,-2.429],[13.771,-2.119],[14.227,-2.323],[14.482,-1.389],[14.499,-0.631],[13.871,0.196],[14.468,0.913],[14.184,1.381],[13.25,1.222],[13.295,2.161],[14.562,2.209],[15.765,1.909],[16.197,2.236],[16.568,3.464],[17.334,3.619],[18.626,3.477]]]},"properties":{"NAME":"Congo","ISO_A2":"CG"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[27.441,5.071],[27.772,4.596],[28.404,4.278],[28.755,4.554],[29.494,4.668],[30.84,3.49],[30.725,2.441],[31.243,2.051],[29.928,0.785],[29.712,0.1],[29.578,-1.388],[29.149,-1.799],[28.859,-2.418],[29.015,-2.721],[29.235,-3.047],[29.215,-3.9],[29.404,-4.45],[29.321,-4.836],[29.594,-5.62],[29.476,-6.002],[29.739,-6.652],[30.37,-7.31],[30.752,-8.194],[28.915,-8.473],[28.372,-9.235],[28.668,-9.822],[28.44,-11.348],[28.497,-11.857],[29.03,-12.376],[29.799,-12.154],[29.574,-13.225],[29.169,-13.434],[28.423,-12.521],[27.638,-12.294],[27.421,-11.922],[25.994,-11.905],[25.352,-11.646],[25.279,-11.2],[24.31,-11.407],[23.967,-10.872],[23.014,-11.102],[22.165,-10.852],[22.313,-10.369],[21.854,-9.618],[21.936,-8.413],[21.785,-7.283],[20.521,-7.286],[20.294,-7.002],[19.522,-7.002],[19.356,-8.002],[17.537,-8.015],[16.996,-7.298],[16.597,-5.925],[16.316,-5.855],[13.184,-5.856],[12.449,-6.052],[12.211,-5.763],[12.531,-5.163],[13.074,-4.635],[13.359,-4.795],[14.369,-4.278],[14.396,-4.856],[14.831,-4.815],[15.204,-4.339],[15.883,-3.945],[16.208,-3.362],[16.231,-2.129],[16.84,-1.263],[17.75,-0.523],[17.94,0.361],[17.867,1.017],[18.072,2.16],[18.613,3.128],[18.626,3.477],[18.721,4.377],[19.083,4.909],[19.72,5.136],[20.603,4.41],[22.493,4.174],[22.898,4.824],[23.388,4.587],[24.46,5.107],[25.308,5.032],[25.581,5.375],[26.463,5.06],[27.441,5.071]]]},"properties":{"NAME":"Dem. Rep. Congo","ISO_A2":"CD"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[88.892,27.316],[89.561,28.135],[90.262,28.335],[91.633,27.759],[91.975,27.472],[92.036,26.855],[89.822,26.701],[88.955,26.913],[88.892,27.316]]]},"properties":{"NAME":"Bhutan","ISO_A2":"BT"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[31.764,52.101],[32.528,52.316],[33.804,52.355],[34.962,51.215],[35.425,50.5],[36.683,50.261],[37.435,50.425],[38.344,49.992],[39.57,49.713],[40.142,49.246],[39.759,48.895],[39.993,48.273],[39.759,47.833],[38.877,47.861],[38.217,47.103],[35.902,46.653],[34.811,46.166],[35.002,45.729],[33.629,46.125],[32.262,46.128],[31.858,46.629],[30.991,46.601],[29.969,45.839],[29.659,45.216],[28.71,45.227],[28.199,45.462],[29.201,46.357],[29.727,46.456],[29.557,47.324],[29.124,47.976],[27.752,48.452],[26.618,48.259],[25.262,47.899],[22.878,47.947],[22.133,48.405],[22.54,49.072],[22.641,49.529],[24.106,50.539],[23.606,51.517],[24.391,51.88],[25.768,51.929],[28.347,51.525],[30.149,51.484],[30.941,52.02],[31.764,52.101]]]},"properties":{"NAME":"Ukraine","ISO_A2":"UA"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[31.764,52.101],[30.941,52.02],[30.149,51.484],[28.347,51.525],[25.768,51.929],[24.391,51.88],[23.606,51.517],[23.894,53.152],[23.486,53.939],[24.821,54.02],[25.53,54.346],[26.595,55.667],[27.593,55.794],[28.149,56.142],[30.218,55.855],[30.913,55.572],[31.325,54.229],[32.72,53.439],[32.206,53.1],[31.379,53.182],[31.764,52.101]]]},"properties":{"NAME":"Belarus","ISO_A2":"BY"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.487,-28.573],[15.684,-27.95],[15.295,-27.322],[14.843,-25.764],[14.781,-24.803],[14.474,-24.159],[14.509,-22.548],[13.387,-20.816],[13.155,-20.154],[12.287,-18.698],[11.849,-18.143],[11.766,-17.253],[12.555,-17.236],[13.364,-16.964],[13.943,-17.408],[16.34,-17.389],[18.454,-17.39],[18.762,-17.748],[20.806,-18.031],[21.381,-18.013],[23.382,-17.641],[24.22,-17.48],[24.958,-17.552],[25.26,-17.794],[24.183,-18.029],[23.645,-18.466],[23.311,-18.01],[20.975,-18.319],[20.972,-22.001],[19.978,-22.001],[19.981,-24.752],[19.982,-28.422],[19.082,-28.959],[17.404,-28.704],[17.346,-28.228],[16.893,-28.083],[16.487,-28.573]]]},"properties":{"NAME":"Namibia","ISO_A2":"NA"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.487,-28.573],[16.893,-28.083],[17.346,-28.228],[17.404,-28.704],[19.082,-28.959],[19.982,-28.422],[19.981,-24.752],[20.365,-25.033],[20.841,-26.131],[20.609,-26.686],[21.687,-26.855],[22.719,-25.984],[23.007,-25.311],[24.799,-25.829],[25.587,-25.62],[25.868,-24.748],[26.85,-24.248],[27.004,-23.646],[28.339,-22.585],[29.35,-22.187],[31.289,-22.397],[31.521,-23.416],[31.987,-24.423],[31.949,-25.958],[31.12,-25.91],[30.786,-26.717],[31.157,-27.206],[31.968,-27.316],[32.114,-26.84],[32.893,-26.846],[32.379,-28.553],[31.187,-29.56],[30.392,-30.847],[28.87,-32.287],[27.897,-33.04],[26.515,-33.755],[25.955,-33.711],[25.598,-34.049],[24.584,-34.178],[23.636,-33.98],[22.63,-33.996],[21.703,-34.391],[20.524,-34.454],[19.953,-34.809],[18.475,-33.9],[17.852,-32.83],[18.273,-32.648],[18.173,-31.663],[17.282,-30.348],[16.809,-29.078],[16.487,-28.573]],[[28.981,-28.909],[28.667,-28.597],[27.747,-28.909],[27.015,-29.626],[27.366,-30.311],[28.055,-30.65],[28.364,-30.159],[29.144,-29.92],[29.436,-29.342],[28.981,-28.909]]]},"properties":{"NAME":"South Africa","ISO_A2":"ZA"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-63.018,18.033],[-63.107,18.062],[-63.018,18.122],[-63.018,18.033]]]},"properties":{"NAME":"St-Martin","ISO_A2":"MF"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-63.107,18.062],[-63.018,18.033],[-63.098,18.036],[-63.107,18.062]]]},"properties":{"NAME":"Sint Maarten","ISO_A2":"SX"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[56.383,24.978],[57.152,23.954],[58.786,23.512],[59.792,22.198],[59.336,21.438],[58.919,21.144],[58.519,20.417],[57.856,20.261],[57.71,18.944],[56.66,18.595],[56.561,18.149],[55.445,17.841],[55.027,17.011],[54.023,16.985],[53.09,16.642],[51.979,18.996],[54.978,19.995],[55.638,21.979],[55.187,22.704],[55.807,24.341],[56.383,24.978]]]},"properties":{"NAME":"Oman","ISO_A2":"OM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[70.959,40.238],[70.354,40.456],[70.28,40.878],[69.198,40.546],[68.602,40.175],[68.517,39.548],[67.765,39.623],[67.378,39.199],[68.086,38.994],[68.361,38.174],[67.781,37.189],[66.52,37.364],[66.554,38.027],[65.604,38.237],[64.121,38.962],[62.453,40.009],[61.878,41.125],[60.415,41.235],[59.866,42.304],[59.478,42.286],[58.612,42.781],[56.95,41.866],[57.01,41.254],[55.978,41.322],[55.976,44.994],[58.531,45.559],[61.036,44.383],[62.026,43.481],[63.208,43.627],[64.427,43.547],[64.957,43.697],[66.101,42.99],[66.017,41.998],[66.504,41.993],[66.688,41.199],[67.937,41.2],[68.462,40.585],[69.044,41.379],[70.948,42.248],[70.169,41.578],[71.276,41.113],[71.586,41.324],[72.619,40.88],[72.37,40.386],[71.673,40.148],[70.959,40.238]]]},"properties":{"NAME":"Uzbekistan","ISO_A2":"UZ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[73.633,39.448],[73.797,38.603],[74.776,38.511],[75.164,37.401],[74.892,37.231],[74.66,37.394],[73.276,37.459],[71.611,36.705],[71.431,37.067],[71.598,37.898],[70.974,38.474],[70.165,37.89],[68.307,37.114],[67.781,37.189],[68.361,38.174],[68.086,38.994],[67.378,39.199],[67.765,39.623],[68.517,39.548],[68.602,40.175],[69.198,40.546],[70.28,40.878],[70.354,40.456],[70.959,40.238],[69.97,40.212],[69.314,39.987],[69.286,39.54],[71.46,39.612],[72.316,39.329],[73.633,39.448]]]},"properties":{"NAME":"Tajikistan","ISO_A2":"TJ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[26.595,55.667],[25.53,54.346],[24.821,54.02],[23.486,53.939],[22.767,54.356],[22.809,54.894],[21.268,55.249],[21.053,56.073],[22.094,56.417],[25.65,56.144],[26.595,55.667]]]},"properties":{"NAME":"Lithuania","ISO_A2":"LT"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-58.159,-20.165],[-57.551,-18.184],[-57.791,-17.556],[-58.381,-17.267],[-58.465,-16.331],[-60.13,-16.273],[-60.292,-14.63],[-60.465,-13.817],[-60.897,-13.553],[-61.848,-13.531],[-62.222,-13.121],[-62.807,-12.989],[-63.801,-12.455],[-64.396,-12.457],[-64.997,-11.996],[-65.353,-11.391],[-65.45,-10.468],[-65.304,-9.826],[-65.789,-9.733],[-66.632,-9.904],[-67.756,-10.714],[-68.616,-11.112],[-69.578,-10.952],[-70.641,-11.011],[-70.681,-9.528],[-71.391,-10.007],[-72.196,-10.006],[-72.43,-9.482],[-72.959,-9.086],[-73.527,-8.372],[-73.765,-6.904],[-73.132,-6.435],[-73.235,-6.078],[-72.918,-5.132],[-71.774,-4.482],[-70.832,-4.179],[-69.965,-4.236],[-69.399,-1.183],[-69.632,-0.507],[-70.074,-0.125],[-70.054,0.588],[-69.137,0.65],[-69.371,1.063],[-69.852,1.059],[-69.849,1.669],[-68.163,1.721],[-67.341,2.09],[-66.875,1.223],[-66.346,0.759],[-65.137,1.127],[-64.081,1.647],[-63.995,1.958],[-64.223,3.124],[-64.064,3.912],[-62.766,4.021],[-61.542,4.263],[-60.613,4.901],[-60.74,5.202],[-59.983,5.086],[-60.088,4.608],[-59.529,3.932],[-59.838,3.609],[-60,2.694],[-59.765,1.921],[-59.242,1.378],[-58.519,1.267],[-58.332,1.593],[-57.561,1.709],[-57.104,2.021],[-56.482,1.942],[-56.117,2.333],[-55.018,2.591],[-54.615,2.326],[-54.135,2.111],[-53.344,2.35],[-52.708,2.359],[-51.988,3.705],[-51.683,4.039],[-51.08,3.882],[-51.093,3.376],[-50.467,1.815],[-49.91,1.664],[-49.979,1.072],[-50.791,0.17],[-51.202,-0.049],[-52.124,-1.619],[-50.824,-1.031],[-50.819,-1.436],[-50.373,-1.974],[-48.966,-1.6],[-48.34,-1.316],[-48.154,-0.782],[-47.585,-0.578],[-46.614,-0.813],[-45.81,-1.275],[-45.091,-1.464],[-44.522,-1.847],[-44.368,-2.55],[-43.477,-2.538],[-43.312,-2.346],[-42.453,-2.752],[-41.343,-2.92],[-39.986,-2.848],[-38.66,-3.676],[-37.183,-4.911],[-36.59,-5.103],[-35.511,-5.144],[-35.262,-5.483],[-34.797,-7.158],[-34.812,-7.906],[-35.147,-8.912],[-36.408,-10.502],[-36.903,-10.773],[-37.655,-12.05],[-38.32,-12.935],[-38.738,-12.737],[-39.062,-13.4],[-38.924,-14.004],[-39.067,-14.675],[-38.864,-15.843],[-39.209,-17.162],[-39.184,-17.601],[-39.725,-18.519],[-39.71,-19.416],[-41.072,-21.523],[-40.967,-21.948],[-41.966,-22.535],[-42.058,-22.954],[-43.542,-23.049],[-44.436,-22.997],[-45.08,-23.498],[-46.966,-24.299],[-47.826,-24.894],[-48.433,-25.622],[-48.682,-26.719],[-48.566,-27.86],[-48.815,-28.61],[-49.811,-29.443],[-50.316,-30.462],[-51.123,-30.256],[-51.443,-31.081],[-51.923,-31.307],[-52.127,-32.178],[-52.622,-33.102],[-53.379,-33.741],[-53.512,-33.099],[-53.127,-32.755],[-54.592,-31.471],[-56.011,-30.798],[-56.831,-30.102],[-57.612,-30.183],[-56.416,-29.051],[-55.773,-28.232],[-54.828,-27.545],[-53.819,-27.14],[-53.667,-26.219],[-53.91,-25.629],[-54.6,-25.575],[-54.245,-24.051],[-54.613,-23.811],[-55.398,-23.977],[-55.893,-22.307],[-56.422,-22.074],[-56.843,-22.289],[-57.987,-22.035],[-57.86,-20.73],[-58.159,-20.165]]],[[[-48.463,-0.576],[-48.839,-1.443],[-49.824,-1.817],[-50.405,-1.831],[-50.804,-1.425],[-50.78,-0.661],[-50.368,-0.106],[-48.427,-0.26],[-48.463,-0.576]]]]},"properties":{"NAME":"Brazil","ISO_A2":"BR"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-58.2,-32.447],[-58.169,-31.846],[-57.612,-30.183],[-56.831,-30.102],[-56.011,-30.798],[-54.592,-31.471],[-53.127,-32.755],[-53.512,-33.099],[-53.379,-33.741],[-53.765,-34.39],[-54.939,-34.97],[-55.792,-34.774],[-56.311,-34.906],[-57.12,-34.463],[-57.823,-34.475],[-58.389,-33.942],[-58.2,-32.447]]]},"properties":{"NAME":"Uruguay","ISO_A2":"UY"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[116.684,49.823],[115.515,48.122],[115.853,47.706],[117.742,47.978],[118.542,47.966],[119.7,47.16],[119.68,46.592],[118.238,46.715],[117.302,46.35],[116.604,46.309],[115.638,45.444],[114.534,45.385],[113.635,44.746],[112.011,45.087],[111.406,44.416],[111.933,43.697],[110.934,43.288],[110.407,42.769],[109.485,42.449],[108.177,42.454],[106.768,42.287],[105.015,41.596],[104.501,41.871],[103.721,41.756],[102.034,42.185],[101.638,42.515],[100.017,42.677],[99.474,42.564],[97.193,42.787],[96.351,42.741],[95.908,43.215],[95.379,44.287],[94.698,44.343],[93.525,44.951],[90.905,45.186],[90.651,45.493],[91.047,46.566],[90.441,47.493],[89.542,48.031],[89.046,47.993],[87.943,48.599],[87.816,49.166],[88.871,49.436],[89.624,49.903],[91.75,50.684],[94.238,50.565],[94.625,50.015],[95.867,50.015],[97.302,49.726],[98.106,50.064],[98.293,50.519],[97.806,51.001],[98.856,52.107],[100.006,51.732],[102.051,51.384],[102.328,50.546],[103.601,50.134],[105.329,50.476],[106.657,50.327],[107.947,49.933],[108.538,49.327],[110.731,49.138],[111.338,49.365],[113.044,49.589],[114.286,50.277],[115.369,49.895],[116.684,49.823]]]},"properties":{"NAME":"Mongolia","ISO_A2":"MN"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[87.816,49.166],[87.324,49.085],[86.61,49.796],[86.112,49.52],[85.263,49.582],[84.976,50.075],[84.25,50.26],[83.434,50.993],[82.073,50.716],[80.683,51.302],[79.99,50.788],[77.867,53.272],[76.526,53.961],[75.64,54.099],[74.214,53.597],[72.067,54.222],[71.182,54.102],[71.18,54.727],[70.666,55.309],[68.723,55.353],[68.166,54.956],[62.551,54.027],[61.194,54.018],[61.04,52.335],[60.138,51.889],[61.474,51.426],[61.372,50.782],[59.775,50.534],[58.595,51.023],[56.508,51.066],[55.66,50.53],[53.61,51.388],[50.582,51.635],[50.325,51.303],[48.673,50.58],[48.886,50.02],[48.418,49.812],[47.625,50.441],[46.9,49.82],[46.479,48.41],[47.051,47.975],[48.044,47.77],[48.525,47.41],[49.227,46.328],[48.741,45.923],[47.609,45.639],[46.701,44.446],[47.503,43.781],[47.462,43.021],[48.579,41.845],[47.871,41.208],[47.268,41.303],[46.431,41.89],[45.948,42.023],[44.859,42.76],[43.801,42.746],[42.752,43.177],[41.551,43.226],[40.652,43.539],[39.986,43.389],[38.978,44.148],[37.478,44.677],[37.159,45.326],[38.3,46.219],[37.827,46.477],[38.217,47.103],[38.877,47.861],[39.759,47.833],[39.993,48.273],[39.759,48.895],[40.142,49.246],[39.57,49.713],[38.344,49.992],[37.435,50.425],[36.683,50.261],[35.425,50.5],[34.962,51.215],[33.804,52.355],[32.528,52.316],[31.764,52.101],[31.379,53.182],[32.206,53.1],[32.72,53.439],[31.325,54.229],[30.913,55.572],[30.218,55.855],[28.149,56.142],[27.353,57.528],[27.673,57.913],[27.411,58.755],[28.019,59.482],[29.092,60.178],[27.808,60.553],[29.203,61.246],[31.222,62.492],[31.57,62.906],[29.981,63.742],[30.509,63.991],[29.588,64.991],[29.9,66.108],[29.089,66.838],[30.009,67.686],[28.447,68.515],[28.954,69.027],[30.841,69.806],[32.054,69.964],[32.687,69.503],[35.33,69.276],[38.435,68.356],[41.017,67.698],[41.36,67.014],[40.444,66.406],[37.927,66.089],[33.483,66.73],[33.62,66.309],[34.866,65.878],[34.369,65.392],[34.956,64.452],[36.292,64.01],[37.122,64.395],[37.008,65.173],[39.567,64.545],[40.528,64.578],[39.712,65.402],[42.201,66.532],[44.046,66.081],[44.499,66.921],[43.761,67.221],[44.244,68.256],[45.944,68.446],[46.722,67.845],[45.35,67.73],[44.952,67.321],[45.853,66.887],[47.726,67.001],[48.256,67.683],[53.437,68.918],[54.24,68.211],[55.393,68.564],[57.33,68.565],[58.879,69.003],[59.774,68.668],[60.938,68.963],[60.139,69.578],[60.77,69.849],[63.41,69.671],[67.056,68.781],[68.383,68.228],[69.109,68.879],[67.969,69.491],[66.771,69.741],[67.318,70.784],[66.927,71.298],[68.479,71.836],[69.277,72.841],[72.496,72.788],[72.865,72.272],[72.106,71.29],[72.671,71.109],[72.577,68.94],[73.644,68.502],[73.205,67.866],[71.577,66.659],[73.492,66.823],[74.73,67.686],[74.454,68.694],[73.516,69.746],[74.316,70.52],[73.526,71.822],[76.946,72.044],[79.391,72.386],[81.737,71.7],[83.361,71.841],[80.704,72.545],[80.273,73.31],[80.832,73.572],[83.484,73.655],[86.783,73.902],[86.02,74.263],[87.354,75.044],[89.132,75.453],[93.55,75.853],[95.39,76.164],[96.831,75.915],[99.509,76.469],[104.023,77.733],[107.25,77.007],[111.555,76.684],[113.89,75.854],[113.605,75.285],[110.021,74.014],[111.804,73.744],[118.45,73.589],[118.918,73.12],[121.055,72.932],[125.652,73.525],[127.988,73.471],[128.192,72.228],[130.301,70.94],[131.546,70.887],[132.264,71.682],[134.168,71.371],[135.985,71.635],[137.356,71.374],[138.756,71.643],[141.551,72.774],[148.402,72.311],[150.067,71.922],[152.613,70.835],[155.936,71.099],[158.524,70.969],[159.689,70.671],[159.689,69.891],[160.926,69.642],[164.027,69.774],[166.939,69.502],[170.351,68.828],[171.028,69.055],[170.611,70.116],[176.504,69.754],[178.773,69.415],[180,68.981],[180,68.56],[180,68.061],[180,67.562],[180,67.064],[180,66.565],[180,66.066],[180,65.568],[180,65.069],[180,65.066],[178.4,64.243],[179.609,62.706],[179.15,62.342],[178.061,62.541],[176.594,62.486],[173.497,61.571],[172.007,60.855],[170.581,60.434],[169.167,60.567],[166.25,60.384],[165.13,60.084],[163.652,60.052],[161.993,58.087],[163.33,57.709],[162.833,57.383],[162.784,56.763],[163.366,56.181],[162.142,56.129],[161.777,55.608],[162.153,54.85],[161.753,54.52],[160.741,54.535],[160.053,54.176],[159.922,53.284],[158.516,52.746],[158.548,52.296],[157.759,51.544],[156.72,50.886],[156.111,52.935],[155.551,55.284],[156.125,56.832],[156.931,57.658],[159.024,58.415],[159.864,59.141],[161.939,60.417],[163.346,60.799],[164.029,61.347],[164.127,62.262],[163.267,62.522],[162.978,61.81],[160.828,60.755],[160,61.106],[159.36,61.893],[157.465,61.782],[156.679,61.524],[155.921,60.755],[153.369,59.241],[151.359,58.856],[151.638,59.482],[149.598,59.758],[148.394,59.379],[146.44,59.46],[143.16,59.354],[142.262,59.125],[140.904,58.383],[140.496,57.845],[138.662,56.978],[137.572,56.117],[135.22,54.894],[135.75,54.571],[136.883,54.591],[137.597,53.824],[138.502,53.544],[139.162,54.205],[139.816,54.215],[141.433,53.149],[141.167,52.365],[141.43,51.942],[140.706,51.335],[140.443,50.544],[140.561,49.575],[140.165,48.449],[139.39,47.904],[138.535,46.987],[138.1,46.228],[135.656,44.169],[135.14,43.508],[133.927,42.883],[133.158,42.688],[132.404,42.942],[132.356,43.286],[130.858,42.525],[130.7,42.295],[130.531,42.53],[131.281,43.38],[131.066,44.682],[131.818,45.333],[132.953,45.024],[133.902,46.259],[134.154,47.258],[134.773,47.711],[134.386,48.381],[133.092,48.107],[132.525,47.708],[131.023,47.682],[130.533,48.636],[129.711,49.274],[127.508,49.822],[127.287,50.751],[125.621,53.062],[124.72,53.149],[123.64,53.551],[120.874,53.28],[120.28,52.866],[120.779,52.118],[120.108,51.665],[119.294,50.599],[119.316,50.093],[117.759,49.513],[116.684,49.823],[115.369,49.895],[114.286,50.277],[113.044,49.589],[111.338,49.365],[110.731,49.138],[108.538,49.327],[107.947,49.933],[106.657,50.327],[105.329,50.476],[103.601,50.134],[102.328,50.546],[102.051,51.384],[100.006,51.732],[98.856,52.107],[97.806,51.001],[98.293,50.519],[98.106,50.064],[97.302,49.726],[95.867,50.015],[94.625,50.015],[94.238,50.565],[91.75,50.684],[89.624,49.903],[88.871,49.436],[87.816,49.166]]],[[[33.629,46.125],[35.002,45.729],[35.547,45.12],[33.958,44.383],[33.62,44.931],[32.525,45.458],[33.709,45.91],[33.629,46.125]]],[[[21.268,55.249],[22.809,54.894],[22.767,54.356],[19.61,54.457],[20.034,54.948],[20.925,55.283],[20.989,55.273],[21.268,55.249]]],[[[-180,65.066],[-180,65.069],[-180,65.568],[-180,66.066],[-180,66.565],[-180,67.064],[-180,67.562],[-180,68.061],[-180,68.56],[-180,68.982],[-178.7,68.543],[-175.287,67.667],[-174.436,66.532],[-173.547,67.091],[-171.895,66.971],[-169.701,66.129],[-170.667,65.6],[-172.162,65.421],[-173.106,64.241],[-175.775,64.939],[-175.909,65.403],[-176.977,65.608],[-178.284,65.444],[-179.277,65.63],[-180,65.066]]],[[[-180,70.992],[-180,71.053],[-180,71.537],[-178.395,71.541],[-177.93,71.041],[-180,70.992]]],[[[142.529,54.297],[143.29,53.152],[143.119,52.338],[143.79,50.309],[144.283,49.25],[143.174,49.246],[142.55,48.02],[143.173,46.708],[141.822,46.602],[142.191,47.967],[141.967,48.862],[142.16,49.678],[142.045,50.528],[142.267,51.074],[141.676,51.912],[141.928,53.021],[142.577,53.5],[142.529,54.297]]],[[[51.41,71.806],[52.332,72.071],[53.156,73.151],[54.935,73.425],[56.435,73.23],[55.343,72.066],[56.106,71.259],[55.818,70.613],[54.007,70.758],[53.252,71.456],[51.41,71.806]]],[[[56.987,74.69],[55.808,75.157],[61.637,76.312],[65.169,76.475],[66.944,76.949],[68.931,76.719],[68.288,76.281],[62.048,75.45],[59.875,74.628],[58.57,74.389],[56.579,73.261],[53.869,73.779],[56.987,74.69]]],[[[50.323,69.151],[48.592,68.731],[48.304,69.277],[49.272,69.508],[50.323,69.151]]],[[[143.475,73.321],[140.493,73.485],[142.045,73.917],[143.475,73.321]]],[[[150.828,75.163],[148.172,74.804],[146.072,75.24],[146.389,75.585],[150.828,75.163]]],[[[145.366,75.54],[144.331,75.047],[141.844,74.999],[139.343,74.687],[137.149,75.134],[137.068,75.726],[138.138,76.119],[140.15,75.801],[141.702,76.121],[145.366,75.54]]],[[[105.416,78.583],[101.21,78.194],[100.255,78.665],[102.303,79.433],[105.416,78.583]]],[[[99.886,79.041],[97.761,78.809],[95.018,79.039],[93.749,79.544],[94.936,80.071],[97.592,80.175],[100.022,79.824],[99.886,79.041]]],[[[97.747,80.742],[97.188,80.234],[92.505,80.158],[93.053,80.995],[95.777,81.289],[97.747,80.742]]]]},"properties":{"NAME":"Russia","ISO_A2":"RU"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.81,50.858],[16.332,50.644],[17.839,49.974],[18.559,49.907],[18.833,49.51],[16.945,48.604],[14.982,49.008],[14.696,48.59],[13.816,48.766],[12.798,49.328],[12.336,50.259],[14.382,50.921],[14.81,50.858]]]},"properties":{"NAME":"Czechia","ISO_A2":"CZ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.81,50.858],[14.382,50.921],[12.336,50.259],[12.798,49.328],[13.816,48.766],[12.745,48.121],[12.745,47.665],[11.62,47.59],[10.306,47.302],[9.547,47.535],[8.558,47.801],[7.586,47.585],[7.573,48.095],[8.189,48.966],[6.345,49.455],[6.117,50.12],[5.995,50.75],[6.193,51.509],[7.048,52.365],[7.195,53.245],[8.861,53.831],[9.012,54.506],[8.661,54.896],[9.438,54.81],[11.175,54.018],[12.502,54.474],[14.264,53.7],[14.216,52.818],[14.645,52.577],[14.586,51.804],[15.019,51.272],[14.81,50.858]]]},"properties":{"NAME":"Germany","ISO_A2":"DE"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[28.019,59.482],[27.411,58.755],[27.673,57.913],[27.353,57.528],[26.5,57.516],[25.167,58.059],[24.306,57.868],[23.493,58.673],[23.471,59.212],[25.685,59.629],[28.019,59.482]]]},"properties":{"NAME":"Estonia","ISO_A2":"EE"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[28.149,56.142],[27.593,55.794],[26.595,55.667],[25.65,56.144],[22.094,56.417],[21.053,56.073],[21.065,56.846],[21.699,57.555],[22.484,57.742],[23.695,56.967],[24.379,57.23],[24.306,57.868],[25.167,58.059],[26.5,57.516],[27.353,57.528],[28.149,56.142]]]},"properties":{"NAME":"Latvia","ISO_A2":"LV"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[30.841,69.806],[28.954,69.027],[29.345,69.464],[27.867,70.075],[26.032,69.697],[25.652,68.883],[22.596,68.725],[21.663,69.263],[20.623,69.036],[19.931,68.35],[18.172,68.536],[16.127,67.423],[16.416,67.053],[14.541,66.125],[14.514,65.318],[13.643,64.584],[13.939,64.01],[12.682,63.956],[11.992,63.289],[12.317,62.234],[12.162,61.725],[12.877,61.371],[12.256,60.981],[12.511,60.118],[11.677,59.559],[11.438,58.992],[10.85,59.18],[9.428,58.893],[8.123,58.102],[6.999,58.031],[5.478,58.755],[6.112,59.275],[5.182,59.511],[5.304,60.191],[4.964,61.266],[5.298,62.068],[5.929,62.199],[8.792,63.431],[9.699,63.644],[10.014,64.119],[11.402,64.663],[12.602,65.432],[13.082,66.498],[14.223,66.982],[19.098,69.736],[21.17,69.876],[21.209,70.208],[23.513,70.366],[24.86,70.928],[27.569,71.097],[31.063,70.367],[30.841,69.806]]]},"properties":{"NAME":"Norway","ISO_A2":"NO"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.438,58.992],[11.677,59.559],[12.511,60.118],[12.256,60.981],[12.877,61.371],[12.162,61.725],[12.317,62.234],[11.992,63.289],[12.682,63.956],[13.939,64.01],[13.643,64.584],[14.514,65.318],[14.541,66.125],[16.416,67.053],[16.127,67.423],[18.172,68.536],[19.931,68.35],[20.623,69.036],[23.052,68.298],[24.001,66.812],[23.642,66.436],[24.163,65.823],[22.361,65.761],[21.181,64.836],[21.49,64.487],[20.503,63.822],[19.276,63.443],[17.57,62.205],[17.097,61.636],[17.238,60.698],[18.824,60.068],[18.393,59.176],[17.093,58.661],[16.46,57.895],[16.689,57.472],[15.852,56.086],[14.686,56.147],[14.363,55.524],[13,55.4],[12.61,56.117],[12.934,56.547],[12.375,56.912],[11.225,58.371],[11.438,58.992]]]},"properties":{"NAME":"Sweden","ISO_A2":"SE"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[28.954,69.027],[28.447,68.515],[30.009,67.686],[29.089,66.838],[29.9,66.108],[29.588,64.991],[30.509,63.991],[29.981,63.742],[31.57,62.906],[31.222,62.492],[29.203,61.246],[27.808,60.553],[23.237,59.898],[22.628,60.375],[21.47,60.608],[21.623,61.546],[21.114,62.781],[21.615,63.204],[23.605,64.028],[25.352,65.484],[24.163,65.823],[23.642,66.436],[24.001,66.812],[23.052,68.298],[20.623,69.036],[21.663,69.263],[22.596,68.725],[25.652,68.883],[26.032,69.697],[27.867,70.075],[29.345,69.464],[28.954,69.027]]]},"properties":{"NAME":"Finland","ISO_A2":"FI"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[102.119,22.398],[102.443,22.765],[102.989,22.438],[103.31,22.788],[103.867,22.575],[104.728,22.839],[105.332,23.318],[105.854,22.905],[106.667,22.868],[106.722,22.007],[107.348,21.599],[107.991,21.486],[106.755,20.939],[106.57,20.232],[105.956,19.925],[105.648,18.893],[106.525,17.95],[106.764,17.336],[108.151,16.217],[108.883,15.336],[109.465,12.913],[109.205,12.646],[109.243,11.736],[109.018,11.356],[107.326,10.442],[106.788,10.393],[106.576,9.649],[105.539,9.129],[105.101,8.634],[104.775,8.818],[104.893,9.851],[104.451,10.42],[106.063,11.093],[106.015,11.77],[107.514,12.344],[107.597,13.535],[107.32,14.12],[107.52,14.705],[107.658,15.282],[107.16,15.759],[107.117,16.255],[106.655,16.471],[106.42,16.989],[104.722,18.792],[103.857,19.317],[104.229,19.706],[104.805,19.791],[104.908,20.175],[104.601,20.661],[104.057,20.959],[103.115,20.868],[102.948,21.737],[102.119,22.398]]]},"properties":{"NAME":"Vietnam","ISO_A2":"VN"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[107.52,14.705],[107.32,14.12],[107.597,13.535],[107.514,12.344],[106.015,11.77],[106.063,11.093],[104.451,10.42],[103.096,10.934],[102.914,11.646],[102.328,13.275],[103.085,14.296],[104.772,14.44],[105.184,14.346],[105.969,14.332],[106.512,14.59],[106.793,14.323],[107.52,14.705]]]},"properties":{"NAME":"Cambodia","ISO_A2":"KH"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.117,50.12],[6.345,49.455],[5.791,49.538],[6.117,50.12]]]},"properties":{"NAME":"Luxembourg","ISO_A2":"LU"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[56.077,26.061],[56.279,25.627],[56.383,24.978],[55.807,24.341],[55.187,22.704],[55.105,22.621],[52.583,22.931],[51.569,24.256],[51.809,24.001],[52.67,24.145],[53.581,24.049],[54.446,24.316],[56.077,26.061]]]},"properties":{"NAME":"United Arab Emirates","ISO_A2":"AE"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[6.345,49.455],[8.189,48.966],[7.573,48.095],[7.586,47.585],[7.044,47.34],[6.064,46.471],[6.763,46.429],[7.022,45.925],[7.033,44.243],[7.502,43.792],[7.437,43.743],[7.407,43.764],[7.366,43.723],[6.027,43.078],[5.339,43.334],[3.939,43.533],[3.039,42.943],[3.181,42.431],[1.707,42.503],[1.429,42.595],[-0.039,42.685],[-1.275,43.047],[-1.794,43.386],[-1.477,43.58],[-1.049,46.039],[-1.805,46.504],[-2.502,47.527],[-4.435,47.976],[-4.564,48.63],[-3.077,48.828],[-1.58,48.643],[-1.61,49.216],[-0.219,49.28],[0.236,49.729],[1.521,50.215],[1.581,50.869],[2.522,51.088],[2.787,50.723],[4.023,50.338],[5.791,49.538],[6.345,49.455]]],[[[8.566,42.209],[9.107,42.726],[9.553,42.113],[9.211,41.441],[8.696,41.729],[8.566,42.209]]]]},"properties":{"NAME":"France","ISO_A2":"FR"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[20.567,41.873],[21.564,42.246],[22.345,42.313],[22.844,42.014],[22.917,41.336],[20.965,40.849],[20.478,41.32],[20.567,41.873]]]},"properties":{"NAME":"Macedonia","ISO_A2":"MK"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[20.567,41.873],[20.478,41.32],[20.965,40.849],[20.64,40.09],[20,39.694],[19.31,40.644],[19.517,41.256],[19.365,41.852],[19.605,42.585],[20.065,42.547],[20.567,41.873]]]},"properties":{"NAME":"Albania","ISO_A2":"AL"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[46.431,41.89],[47.268,41.303],[47.871,41.208],[48.579,41.845],[49.59,40.625],[49.577,40.217],[48.968,39.184],[48.874,38.434],[48.059,38.948],[48.339,39.379],[47.847,39.685],[46.514,38.882],[46.598,39.225],[45.862,39.805],[45.979,40.224],[45.002,41.29],[46.193,41.61],[46.431,41.89]]],[[[46.136,38.864],[45.439,39.004],[44.807,39.64],[44.775,39.703],[45.767,39.354],[46.136,38.864]]]]},"properties":{"NAME":"Azerbaijan","ISO_A2":"AZ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[21.564,42.246],[20.567,41.873],[20.065,42.547],[20.345,42.827],[20.839,43.17],[21.564,42.246]]]},"properties":{"NAME":"Kosovo","ISO_A2":"XK"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[44.775,39.703],[44.807,39.64],[44.061,39.4],[44.275,38.844],[44.22,37.875],[44.766,37.142],[42.772,37.375],[42.357,37.11],[40.709,37.1],[39.765,36.742],[38.664,36.72],[38.19,36.906],[37.446,36.634],[36.659,36.828],[36.588,36.325],[35.911,35.918],[35.789,36.32],[34.771,36.816],[33.544,36.144],[32.671,36.047],[32.026,36.543],[30.687,36.891],[30.441,36.239],[29.322,36.247],[29.096,36.665],[27.987,37.035],[27.263,36.963],[27.239,37.988],[27.013,38.871],[26.153,39.459],[26.153,39.943],[26.736,40.404],[28.638,40.365],[29.264,40.87],[29.232,41.241],[31.249,41.106],[32.263,41.72],[33.324,42.019],[35.105,42.022],[37.505,41.043],[40.143,40.923],[41.521,41.514],[42.958,41.437],[43.44,41.107],[43.594,40.345],[44.775,39.703]]],[[[28.017,41.973],[28.113,41.612],[28.982,41.002],[27.524,40.989],[27.178,40.633],[26.044,40.738],[26.637,41.378],[26.333,41.713],[27.273,42.092],[28.017,41.973]]]]},"properties":{"NAME":"Turkey","ISO_A2":"TR"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.707,42.503],[3.181,42.431],[3.15,41.845],[2.06,41.275],[0.99,41.04],[-0.323,39.516],[0.234,38.758],[-0.329,38.47],[-0.925,37.556],[-1.671,37.363],[-2.071,36.775],[-4.433,36.711],[-5.339,36.141],[-5.358,36.141],[-6.037,36.19],[-6.5,36.96],[-7.414,37.193],[-7.314,39.457],[-6.88,40.009],[-6.818,41.054],[-6.206,41.57],[-6.657,41.933],[-8.049,41.816],[-8.751,41.969],[-9.218,43.155],[-8.059,43.709],[-7.23,43.569],[-5.424,43.561],[-4.735,43.417],[-3.554,43.517],[-3.112,43.354],[-1.794,43.386],[-1.275,43.047],[-0.039,42.685],[1.429,42.595],[1.448,42.435],[1.707,42.503]]]},"properties":{"NAME":"Spain","ISO_A2":"ES"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[101.159,21.553],[101.723,21.304],[101.518,22.228],[102.119,22.398],[102.948,21.737],[103.115,20.868],[104.057,20.959],[104.601,20.661],[104.908,20.175],[104.805,19.791],[104.229,19.706],[103.857,19.317],[104.722,18.792],[106.42,16.989],[106.655,16.471],[107.117,16.255],[107.16,15.759],[107.658,15.282],[107.52,14.705],[106.793,14.323],[106.512,14.59],[105.969,14.332],[105.184,14.346],[105.416,14.428],[105.651,15.635],[104.755,16.529],[104.816,17.373],[104,18.318],[103.261,18.4],[102.596,17.85],[102.079,18.214],[101.132,17.462],[101.03,18.428],[101.24,18.674],[101.193,19.453],[100.462,19.537],[100.543,20.067],[100.099,20.318],[100.725,21.312],[101.159,21.553]]]},"properties":{"NAME":"Laos","ISO_A2":"LA"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[80.21,42.19],[78.36,41.378],[78.075,41.04],[76.861,41.013],[76.449,40.416],[75.682,40.292],[74.835,40.512],[74.004,40.061],[73.633,39.448],[72.316,39.329],[71.46,39.612],[69.286,39.54],[69.314,39.987],[69.97,40.212],[70.959,40.238],[71.673,40.148],[72.37,40.386],[72.619,40.88],[71.586,41.324],[71.276,41.113],[70.169,41.578],[70.948,42.248],[71.003,42.564],[71.848,42.834],[73.41,42.59],[73.634,43.062],[74.259,43.216],[75.179,42.85],[75.771,42.926],[78.496,42.876],[80.21,42.19]]]},"properties":{"NAME":"Kyrgyzstan","ISO_A2":"KG"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[45.002,41.29],[45.979,40.224],[45.862,39.805],[46.598,39.225],[46.514,38.882],[46.136,38.864],[45.767,39.354],[44.775,39.703],[43.594,40.345],[43.44,41.107],[45.002,41.29]]]},"properties":{"NAME":"Armenia","ISO_A2":"AM"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[9.438,54.81],[8.661,54.896],[8.29,55.584],[8.601,56.501],[9.967,57.591],[10.266,56.908],[10.245,55.915],[9.587,55.427],[9.438,54.81]]],[[[12.04,54.893],[11.245,55.215],[11.071,55.677],[12.245,56.129],[12.602,55.709],[12.04,54.893]]]]},"properties":{"NAME":"Denmark","ISO_A2":"DK"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.505,33.181],[12.348,32.833],[13.352,32.904],[15.196,32.39],[15.49,31.665],[16.045,31.276],[17.366,31.087],[19.057,30.266],[19.749,30.511],[20.147,31.217],[19.921,31.718],[20.563,32.558],[21.609,32.931],[23.086,32.646],[23.096,32.324],[24.091,32.006],[24.982,31.968],[25.151,31.656],[24.861,31.38],[24.995,30.785],[24.688,30.144],[24.981,29.181],[24.981,25.205],[24.981,21.995],[24.968,19.995],[23.981,19.995],[23.981,19.496],[21.634,20.655],[19.164,21.875],[15.985,23.445],[14.98,22.996],[14.232,22.618],[13.482,23.18],[11.969,23.517],[11.567,24.267],[10.032,24.856],[9.969,25.395],[9.401,26.113],[9.836,26.504],[9.721,27.292],[9.936,27.867],[9.826,29.129],[9.52,30.229],[10.27,30.916],[10.108,31.412],[10.873,32.137],[11.444,32.368],[11.505,33.181]]]},"properties":{"NAME":"Libya","ISO_A2":"LY"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.505,33.181],[11.444,32.368],[10.873,32.137],[10.108,31.412],[10.27,30.916],[9.52,30.229],[9.045,32.072],[8.32,32.561],[7.751,33.208],[7.48,33.894],[8.236,34.648],[8.241,35.828],[8.603,36.94],[9.666,37.335],[10.146,37.237],[10.8,36.452],[10.609,35.856],[11.112,35.206],[10.597,34.545],[10.127,34.326],[10.33,33.703],[11.108,33.55],[11.505,33.181]]]},"properties":{"NAME":"Tunisia","ISO_A2":"TN"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[28.199,45.462],[28.71,45.227],[29.659,45.216],[29.611,44.849],[28.789,44.706],[28.578,43.741],[27.027,44.177],[25.36,43.654],[23.325,43.887],[22.692,44.228],[22.32,44.685],[21.656,44.688],[21.493,45.145],[20.761,45.493],[20.243,46.108],[21.165,46.318],[22.262,47.716],[22.878,47.947],[25.262,47.899],[26.618,48.259],[28.037,47.016],[28.246,46.428],[28.199,45.462]]]},"properties":{"NAME":"Romania","ISO_A2":"RO"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[22.133,48.405],[22.878,47.947],[22.262,47.716],[21.165,46.318],[20.243,46.108],[18.901,45.931],[18.412,45.743],[17.345,45.956],[16.515,46.502],[16.094,46.863],[17.148,48.005],[17.826,47.75],[19.884,48.13],[20.482,48.526],[22.133,48.405]]]},"properties":{"NAME":"Hungary","ISO_A2":"HU"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[22.54,49.072],[22.133,48.405],[20.482,48.526],[19.884,48.13],[17.826,47.75],[17.148,48.005],[16.945,48.604],[18.833,49.51],[21.82,49.377],[22.54,49.072]]]},"properties":{"NAME":"Slovakia","ISO_A2":"SK"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[23.606,51.517],[24.106,50.539],[22.641,49.529],[22.54,49.072],[21.82,49.377],[18.833,49.51],[18.559,49.907],[17.839,49.974],[16.332,50.644],[14.81,50.858],[15.019,51.272],[14.586,51.804],[14.645,52.577],[14.216,52.818],[14.264,53.7],[14.201,53.878],[14.21,53.938],[16.22,54.277],[16.57,54.557],[17.885,54.824],[18.588,54.434],[19.61,54.457],[22.767,54.356],[23.486,53.939],[23.894,53.152],[23.606,51.517]]]},"properties":{"NAME":"Poland","ISO_A2":"PL"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.247,55.069],[-8.156,54.439],[-7.31,54.115],[-6.27,54.098],[-5.997,52.965],[-6.37,52.18],[-7.435,52.126],[-8.539,51.648],[-9.77,51.592],[-10.235,51.851],[-9.272,53.147],[-10.026,53.385],[-9.786,54.338],[-8.486,54.289],[-8.263,55.161],[-7.247,55.069]]]},"properties":{"NAME":"Ireland","ISO_A2":"IE"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[20.965,40.849],[22.917,41.336],[24.531,41.548],[25.286,41.239],[26.121,41.358],[26.333,41.713],[26.637,41.378],[26.044,40.738],[25.3,40.952],[24.416,40.946],[23.868,40.414],[22.571,40.054],[23.102,39.497],[22.826,39.221],[23.205,38.683],[23.951,38.291],[23.169,37.614],[22.723,37.542],[23.096,36.807],[22.371,36.674],[21.707,36.818],[21.55,37.561],[20.687,39.072],[20,39.694],[20.64,40.09],[20.965,40.849]]],[[[26.321,35.315],[26.241,35.039],[24.739,34.932],[24.721,35.427],[25.83,35.122],[26.321,35.315]]]]},"properties":{"NAME":"Greece","ISO_A2":"GR"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[32.921,-9.408],[33.674,-10.577],[33.319,-10.818],[33.23,-11.417],[33.373,-12.519],[33.025,-12.613],[32.723,-13.573],[33.203,-14.014],[30.214,-14.981],[30.396,-15.636],[29.186,-15.813],[28.823,-16.471],[27.777,-17.001],[27.048,-17.944],[25.26,-17.794],[24.958,-17.552],[24.22,-17.48],[23.382,-17.641],[22.152,-16.598],[21.984,-16.166],[21.98,-13.001],[24.001,-13.001],[23.967,-10.872],[24.31,-11.407],[25.279,-11.2],[25.352,-11.646],[25.994,-11.905],[27.421,-11.922],[27.638,-12.294],[28.423,-12.521],[29.169,-13.434],[29.574,-13.225],[29.799,-12.154],[29.03,-12.376],[28.497,-11.857],[28.44,-11.348],[28.668,-9.822],[28.372,-9.235],[28.915,-8.473],[30.752,-8.194],[30.96,-8.55],[32.921,-9.408]]]},"properties":{"NAME":"Zambia","ISO_A2":"ZM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-10.282,8.485],[-10.615,7.769],[-11.476,6.919],[-12.507,7.39],[-12.876,7.829],[-13.301,9.041],[-12.702,9.42],[-12.508,9.86],[-11.273,9.996],[-10.675,9.306],[-10.639,8.52],[-10.282,8.485]]]},"properties":{"NAME":"Sierra Leone","ISO_A2":"SL"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-10.282,8.485],[-10.639,8.52],[-10.675,9.306],[-11.273,9.996],[-12.508,9.86],[-12.702,9.42],[-13.301,9.041],[-13.624,9.72],[-14.463,10.33],[-15.021,10.967],[-14.687,11.511],[-13.73,11.71],[-13.728,12.673],[-13.076,12.636],[-12.361,12.306],[-11.388,12.404],[-10.711,11.89],[-10.267,12.218],[-9.723,12.025],[-8.994,12.388],[-8.847,11.658],[-8.311,11.001],[-7.99,10.162],[-8.174,9.942],[-7.959,8.782],[-7.692,8.606],[-8.229,7.544],[-8.485,7.558],[-8.925,7.249],[-9.438,7.422],[-9.422,8.016],[-9.684,8.487],[-10.282,8.485]]]},"properties":{"NAME":"Guinea","ISO_A2":"GN"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-11.476,6.919],[-10.615,7.769],[-10.282,8.485],[-9.684,8.487],[-9.422,8.016],[-9.438,7.422],[-8.925,7.249],[-8.485,7.558],[-8.284,7.018],[-8.566,6.551],[-7.447,5.846],[-7.606,4.897],[-7.541,4.353],[-8.257,4.58],[-9.279,5.146],[-10.396,6.177],[-11.476,6.919]]]},"properties":{"NAME":"Liberia","ISO_A2":"LR"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[24.17,8.689],[24.131,8.343],[24.832,8.166],[25.36,7.336],[26.378,6.653],[26.528,6.043],[27.17,5.72],[27.441,5.071],[26.463,5.06],[25.581,5.375],[25.308,5.032],[24.46,5.107],[23.388,4.587],[22.898,4.824],[22.493,4.174],[20.603,4.41],[19.72,5.136],[19.083,4.909],[18.721,4.377],[18.626,3.477],[17.334,3.619],[16.568,3.464],[16.197,2.236],[16.092,2.863],[15.171,3.759],[14.524,5.28],[14.719,6.258],[15.481,7.523],[16.371,7.673],[16.769,7.55],[17.68,7.985],[18.589,8.048],[19.124,8.675],[19.101,9.015],[20.359,9.116],[21.656,10.234],[21.723,10.637],[22.46,11.001],[22.861,10.919],[23.624,9.908],[23.482,8.783],[24.17,8.689]]]},"properties":{"NAME":"Central African Rep.","ISO_A2":"CF"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[36.526,14.264],[36.124,12.721],[35.617,12.575],[34.947,11.275],[34.279,10.566],[34.071,9.455],[33.902,10.192],[33.182,10.843],[33.083,11.585],[33.209,12.21],[32.345,11.709],[32.414,11.051],[31.235,9.792],[30.749,9.736],[30.013,10.27],[28.844,9.325],[28.045,9.331],[27.895,9.595],[26.557,9.52],[25.843,10.418],[25.084,10.293],[24.793,9.798],[24.558,8.887],[24.17,8.689],[23.482,8.783],[23.624,9.908],[22.861,10.919],[22.593,11.989],[22.205,12.743],[22.074,13.771],[22.465,14.629],[22.966,15.224],[23.095,15.704],[23.984,15.721],[23.981,19.496],[23.981,19.995],[24.968,19.995],[24.981,21.995],[28.29,21.995],[31.248,21.994],[33.181,21.995],[36.884,21.996],[37.149,21.171],[37.238,19.655],[37.434,18.862],[38.602,18.005],[38.344,17.656],[37,17.073],[36.944,16.253],[36.424,15.112],[36.526,14.264]]]},"properties":{"NAME":"Sudan","ISO_A2":"SD"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[42.924,10.999],[41.799,10.971],[41.749,11.538],[42.379,12.466],[43.118,12.708],[43.411,12.242],[43.042,11.799],[43.241,11.488],[42.924,10.999]]]},"properties":{"NAME":"Djibouti","ISO_A2":"DJ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[42.379,12.466],[40.833,14.106],[40.105,14.466],[38.427,14.417],[37.891,14.88],[37.565,14.117],[36.526,14.264],[36.424,15.112],[36.944,16.253],[37,17.073],[38.344,17.656],[38.602,18.005],[38.929,17.397],[39.236,16.109],[39.718,15.264],[41.156,14.642],[41.677,13.94],[42.288,13.575],[42.774,12.862],[43.118,12.708],[42.379,12.466]]]},"properties":{"NAME":"Eritrea","ISO_A2":"ER"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.816,48.766],[14.696,48.59],[14.982,49.008],[16.945,48.604],[17.148,48.005],[16.094,46.863],[14.502,46.418],[13.701,46.52],[12.405,46.69],[12.111,46.993],[10.454,46.864],[9.581,47.057],[9.521,47.263],[9.547,47.535],[10.306,47.302],[11.62,47.59],[12.745,47.665],[12.745,48.121],[13.816,48.766]]]},"properties":{"NAME":"Austria","ISO_A2":"AT"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[7.502,43.792],[7.033,44.243],[7.022,45.925],[7.831,45.914],[8.427,46.251],[10.133,46.414],[10.454,46.864],[12.111,46.993],[12.405,46.69],[13.701,46.52],[13.365,46.29],[13.712,45.593],[13.131,45.769],[12.488,45.457],[12.369,44.251],[13.617,43.531],[14.075,42.599],[15.123,41.934],[16.027,41.944],[16.022,41.428],[18.007,40.651],[17.05,40.519],[16.516,39.69],[17.159,39.406],[17.128,38.929],[16.09,37.949],[15.651,38.241],[16.22,38.899],[15.61,40.073],[14.911,40.242],[14.752,40.677],[14.052,40.838],[13.722,41.252],[13.045,41.228],[10.5,42.94],[10.106,44.017],[8.762,44.432],[7.96,43.853],[7.502,43.792]],[[12.429,43.892],[12.49,43.939],[12.421,43.967],[12.386,43.925],[12.429,43.892]],[[12.453,41.903],[12.454,41.903],[12.454,41.904],[12.453,41.904],[12.453,41.903]]],[[[15.529,38.303],[15.111,37.322],[15.074,36.659],[14.487,36.793],[12.427,37.797],[13.31,38.22],[13.791,37.974],[15.529,38.303]]],[[[9.792,40.557],[9.558,39.14],[8.372,39.231],[8.555,39.853],[8.134,40.729],[9.546,41.121],[9.792,40.557]]]]},"properties":{"NAME":"Italy","ISO_A2":"IT"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[7.586,47.585],[8.558,47.801],[9.547,47.535],[9.521,47.263],[9.485,47.176],[9.581,47.057],[10.454,46.864],[10.133,46.414],[8.427,46.251],[7.831,45.914],[7.022,45.925],[6.763,46.429],[6.064,46.471],[7.044,47.34],[7.586,47.585]]]},"properties":{"NAME":"Switzerland","ISO_A2":"CH"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[60.844,29.858],[61.653,28.756],[62.363,28.419],[62.736,27.995],[62.754,26.644],[61.857,26.242],[61.588,25.202],[61.412,25.059],[60.363,25.331],[58.814,25.564],[58.073,25.564],[57.326,25.777],[56.973,26.969],[56.353,27.202],[54.802,26.498],[53.716,26.709],[52.601,27.353],[52.011,27.833],[51.38,27.991],[50.655,29.449],[50.145,29.938],[48.935,30.08],[48.531,29.961],[47.673,30.995],[47.831,31.762],[47.396,32.337],[46.273,32.959],[45.659,33.682],[45.501,34.592],[46.165,35.19],[45.814,35.809],[44.991,36.534],[44.766,37.142],[44.22,37.875],[44.275,38.844],[44.061,39.4],[44.807,39.64],[45.439,39.004],[46.136,38.864],[46.514,38.882],[47.847,39.685],[48.339,39.379],[48.059,38.948],[48.874,38.434],[49.014,37.739],[50.149,37.404],[51.089,36.737],[51.909,36.583],[53.492,36.888],[53.914,37.343],[54.784,37.517],[55.423,38.076],[57.038,38.187],[57.352,37.968],[58.861,37.668],[60.342,36.637],[61.075,36.648],[61.27,35.618],[61.065,34.815],[60.487,34.094],[60.568,33.151],[60.83,32.249],[60.855,31.483],[61.661,31.382],[61.785,30.831],[60.844,29.858]]]},"properties":{"NAME":"Iran","ISO_A2":"IR"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.521,47.263],[9.581,47.057],[9.485,47.176],[9.521,47.263]]]},"properties":{"NAME":"Liechtenstein","ISO_A2":"LI"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.485,7.558],[-8.229,7.544],[-7.692,8.606],[-7.959,8.782],[-8.174,9.942],[-7.99,10.162],[-7.709,10.402],[-6.959,10.186],[-6.521,10.564],[-6.181,10.216],[-5.523,10.425],[-4.966,9.901],[-4.27,9.744],[-3.662,9.949],[-2.689,9.489],[-2.506,8.209],[-2.84,7.82],[-3.263,6.617],[-2.844,5.149],[-4.125,5.307],[-5.851,5.03],[-7.541,4.353],[-7.606,4.897],[-7.447,5.846],[-8.566,6.551],[-8.284,7.018],[-8.485,7.558]]]},"properties":{"NAME":"Côte d'Ivoire","ISO_A2":"CI"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.99,10.162],[-8.311,11.001],[-8.847,11.658],[-8.994,12.388],[-9.723,12.025],[-10.267,12.218],[-10.711,11.89],[-11.388,12.404],[-11.45,13.075],[-11.997,13.544],[-11.998,14.166],[-12.264,14.775],[-11.837,14.893],[-11.727,15.541],[-9.836,15.371],[-9.349,15.496],[-5.511,15.496],[-5.353,16.312],[-5.623,16.528],[-5.964,19.621],[-6.219,21.823],[-6.593,24.994],[-4.822,24.995],[-2.523,23.501],[-0.964,22.481],[1.147,21.102],[1.145,20.796],[1.778,20.304],[3.217,19.794],[3.308,18.982],[4.229,19.142],[4.184,16.416],[3.507,15.354],[1.332,15.284],[0.974,14.991],[0.218,14.911],[-0.753,15.07],[-2.023,14.199],[-2.841,14.043],[-3.249,13.293],[-3.984,13.396],[-4.406,12.307],[-5.168,11.944],[-5.523,10.425],[-6.181,10.216],[-6.521,10.564],[-6.959,10.186],[-7.709,10.402],[-7.99,10.162]]]},"properties":{"NAME":"Mali","ISO_A2":"ML"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-11.388,12.404],[-12.361,12.306],[-13.076,12.636],[-13.728,12.673],[-15.195,12.679],[-15.677,12.439],[-16.728,12.333],[-16.754,13.065],[-15.833,13.157],[-15.518,13.583],[-16.561,13.587],[-17.178,14.653],[-16.542,15.809],[-16.327,16.475],[-14.343,16.637],[-12.264,14.775],[-11.998,14.166],[-11.997,13.544],[-11.45,13.075],[-11.388,12.404]]]},"properties":{"NAME":"Senegal","ISO_A2":"SN"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[3.596,11.696],[3.646,12.529],[4.089,12.996],[4.126,13.473],[4.507,13.695],[5.554,13.873],[6.369,13.626],[6.907,13.007],[7.756,13.327],[8.679,12.924],[9.641,12.823],[9.93,13.146],[10.675,13.375],[11.44,13.364],[12.473,13.064],[12.884,13.496],[13.607,13.704],[14.065,13.078],[14.18,12.386],[14.67,12.167],[14.594,11.496],[13.982,11.276],[12.862,9.383],[12.806,8.832],[12.25,8.419],[12.198,7.975],[11.51,6.612],[10.603,7.058],[10.119,6.994],[8.856,5.847],[8.594,4.815],[8.298,4.553],[7.17,4.606],[6.969,4.375],[6.097,4.278],[5.595,4.636],[5.007,5.849],[4.406,6.359],[3.541,6.455],[2.704,6.368],[2.672,7.89],[2.769,9.057],[3.513,9.847],[3.837,10.6],[3.596,11.696]]]},"properties":{"NAME":"Nigeria","ISO_A2":"NG"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[3.596,11.696],[3.837,10.6],[3.513,9.847],[2.769,9.057],[2.672,7.89],[2.704,6.368],[1.62,6.214],[1.601,9.05],[1.331,9.996],[0.769,10.367],[0.901,10.993],[1.434,11.459],[2.011,11.427],[2.39,11.897],[2.844,12.399],[3.596,11.696]]]},"properties":{"NAME":"Benin","ISO_A2":"BJ"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[12.01,-5.02],[12.762,-4.391],[13.074,-4.635],[12.531,-5.163],[12.211,-5.763],[12.01,-5.02]]],[[[13.184,-5.856],[16.316,-5.855],[16.597,-5.925],[16.996,-7.298],[17.537,-8.015],[19.356,-8.002],[19.522,-7.002],[20.294,-7.002],[20.521,-7.286],[21.785,-7.283],[21.936,-8.413],[21.854,-9.618],[22.313,-10.369],[22.165,-10.852],[23.014,-11.102],[23.967,-10.872],[24.001,-13.001],[21.98,-13.001],[21.984,-16.166],[22.152,-16.598],[23.382,-17.641],[21.381,-18.013],[20.806,-18.031],[18.762,-17.748],[18.454,-17.39],[16.34,-17.389],[13.943,-17.408],[13.364,-16.964],[12.555,-17.236],[11.766,-17.253],[11.737,-15.9],[12.273,-14.751],[12.513,-13.442],[13.64,-12.249],[13.847,-11.114],[13.753,-10.646],[13.199,-9.709],[12.996,-9.094],[13.38,-8.755],[13.369,-8.324],[12.815,-6.947],[12.279,-6.148],[13.184,-5.856]]]]},"properties":{"NAME":"Angola","ISO_A2":"AO"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[16.515,46.502],[17.345,45.956],[18.412,45.743],[18.901,45.931],[19.016,44.866],[16.933,45.279],[15.78,45.16],[15.717,44.786],[17.581,42.942],[16.881,43.406],[16.098,43.48],[15.145,44.195],[14.827,45.114],[13.59,45.489],[14.668,45.534],[15.666,45.832],[15.661,46.215],[16.515,46.502]]],[[[18.437,42.559],[18.496,42.416],[17.653,42.891],[18.437,42.559]]]]},"properties":{"NAME":"Croatia","ISO_A2":"HR"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.094,46.863],[16.515,46.502],[15.661,46.215],[15.666,45.832],[14.668,45.534],[13.59,45.489],[13.712,45.593],[13.365,46.29],[13.701,46.52],[14.502,46.418],[16.094,46.863]]]},"properties":{"NAME":"Slovenia","ISO_A2":"SI"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[50.808,24.747],[50.751,25.42],[51.047,26.053],[51.577,25.881],[51.617,25.137],[51.215,24.626],[50.808,24.747]]]},"properties":{"NAME":"Qatar","ISO_A2":"QA"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[55.187,22.704],[55.638,21.979],[54.978,19.995],[51.979,18.996],[49.129,18.612],[48.162,18.149],[47.428,17.092],[46.97,16.957],[46.323,17.224],[45.165,17.428],[43.165,17.326],[43.209,16.773],[42.789,16.371],[42.302,17.454],[41.719,17.909],[40.523,19.972],[39.646,20.462],[39.081,21.315],[39.143,22.391],[38.6,23.568],[37.457,24.441],[37.23,25.194],[36.23,26.626],[35.052,28.12],[34.627,28.161],[34.949,29.352],[36.016,29.19],[36.756,29.866],[37.47,29.995],[37.981,30.499],[36.96,31.491],[39.146,32.118],[40.424,31.921],[42.075,31.08],[44.692,29.202],[46.532,29.096],[47.434,28.995],[47.668,28.534],[48.433,28.54],[48.606,28.126],[49.699,26.958],[50.216,26.215],[50.101,25.989],[50.808,24.747],[51.215,24.626],[51.569,24.256],[52.583,22.931],[55.105,22.621],[55.187,22.704]]]},"properties":{"NAME":"Saudi Arabia","ISO_A2":"SA"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[19.981,-24.752],[19.978,-22.001],[20.972,-22.001],[20.975,-18.319],[23.311,-18.01],[23.645,-18.466],[24.183,-18.029],[25.26,-17.794],[25.941,-18.921],[26.13,-19.501],[27.698,-20.509],[27.675,-21.09],[27.99,-21.552],[29.039,-21.798],[29.35,-22.187],[28.339,-22.585],[27.004,-23.646],[26.85,-24.248],[25.868,-24.748],[25.587,-25.62],[24.799,-25.829],[23.007,-25.311],[22.719,-25.984],[21.687,-26.855],[20.609,-26.686],[20.841,-26.131],[20.365,-25.033],[19.981,-24.752]]]},"properties":{"NAME":"Botswana","ISO_A2":"BW"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[31.289,-22.397],[29.35,-22.187],[29.039,-21.798],[27.99,-21.552],[27.675,-21.09],[27.698,-20.509],[26.13,-19.501],[25.941,-18.921],[25.26,-17.794],[27.048,-17.944],[27.777,-17.001],[28.823,-16.471],[29.186,-15.813],[30.396,-15.636],[30.403,-16.001],[31.26,-16.023],[31.91,-16.429],[32.893,-16.712],[33.022,-17.361],[32.996,-18.467],[32.769,-19.364],[33.033,-19.784],[32.469,-20.687],[32.409,-21.29],[31.289,-22.397]]]},"properties":{"NAME":"Zimbabwe","ISO_A2":"ZW"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[22.917,41.336],[22.844,42.014],[22.345,42.313],[22.935,43.086],[22.349,43.808],[22.692,44.228],[23.325,43.887],[25.36,43.654],[27.027,44.177],[28.578,43.741],[28.092,43.364],[27.892,42.711],[28.017,41.973],[27.273,42.092],[26.333,41.713],[26.121,41.358],[25.286,41.239],[24.531,41.548],[22.917,41.336]]]},"properties":{"NAME":"Bulgaria","ISO_A2":"BG"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[102.073,6.258],[101.105,5.638],[101.082,6.246],[100.127,6.442],[99.693,7.116],[98.599,8.375],[98.327,9.204],[98.747,10.351],[98.767,10.689],[99.63,11.816],[99.214,12.735],[99.153,13.715],[98.548,14.378],[98.165,15.126],[98.56,15.355],[98.632,16.463],[97.769,17.679],[97.438,18.488],[97.752,18.582],[97.84,19.555],[99.009,19.846],[100.099,20.318],[100.543,20.067],[100.462,19.537],[101.193,19.453],[101.24,18.674],[101.03,18.428],[101.132,17.462],[102.079,18.214],[102.596,17.85],[103.261,18.4],[104,18.318],[104.816,17.373],[104.755,16.529],[105.651,15.635],[105.416,14.428],[105.184,14.346],[104.772,14.44],[103.085,14.296],[102.328,13.275],[102.914,11.646],[101.83,12.673],[100.837,12.708],[100.951,13.468],[100.29,13.505],[99.961,12.625],[100.02,12.193],[99.152,10.357],[99.181,9.643],[99.475,9.201],[99.854,9.295],[100.22,8.449],[100.396,7.211],[100.998,6.857],[101.566,6.832],[102.073,6.258]]]},"properties":{"NAME":"Thailand","ISO_A2":"TH"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.429,43.892],[12.386,43.925],[12.421,43.967],[12.49,43.939],[12.429,43.892]]]},"properties":{"NAME":"San Marino","ISO_A2":"SM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-71.757,19.71],[-71.639,19.212],[-71.912,18.431],[-71.776,18.039],[-72.072,18.238],[-72.886,18.141],[-72.55,18.786],[-72.814,19.053],[-72.776,19.944],[-71.757,19.71]]]},"properties":{"NAME":"Haiti","ISO_A2":"HT"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-71.776,18.039],[-71.912,18.431],[-71.639,19.212],[-71.757,19.71],[-71.001,19.938],[-69.898,19.636],[-69.608,19.093],[-68.74,18.964],[-68.85,18.375],[-69.884,18.471],[-70.158,18.243],[-71.061,18.142],[-71.417,17.605],[-71.776,18.039]]]},"properties":{"NAME":"Dominican Rep.","ISO_A2":"DO"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.98,22.996],[15.985,23.445],[19.164,21.875],[21.634,20.655],[23.981,19.496],[23.984,15.721],[23.095,15.704],[22.966,15.224],[22.465,14.629],[22.074,13.771],[22.205,12.743],[22.593,11.989],[22.861,10.919],[22.46,11.001],[21.723,10.637],[21.656,10.234],[20.359,9.116],[19.101,9.015],[19.124,8.675],[18.589,8.048],[17.68,7.985],[16.769,7.55],[16.371,7.673],[15.481,7.523],[15.184,8.479],[13.948,9.638],[14.182,9.978],[15.536,10.081],[15.066,10.793],[15.136,11.531],[14.831,12.618],[14.065,13.078],[13.607,13.704],[13.449,14.38],[14.369,15.75],[15.452,16.876],[15.736,19.904],[15.954,20.375],[15.18,21.507],[14.98,22.996]]]},"properties":{"NAME":"Chad","ISO_A2":"TD"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[48.433,28.54],[47.668,28.534],[47.434,28.995],[46.532,29.096],[47.11,29.961],[47.948,29.994],[47.966,29.576],[48.433,28.54]]]},"properties":{"NAME":"Kuwait","ISO_A2":"KW"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-90.098,13.731],[-89.362,14.415],[-88.488,13.865],[-87.713,13.8],[-87.817,13.407],[-87.928,13.159],[-88.786,13.245],[-90.098,13.731]]]},"properties":{"NAME":"El Salvador","ISO_A2":"SV"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-89.362,14.415],[-90.098,13.731],[-91.316,13.956],[-92.246,14.546],[-92.205,15.29],[-91.724,16.069],[-90.486,16.071],[-90.399,16.348],[-91.067,16.918],[-90.991,17.802],[-89.16,17.814],[-89.237,15.894],[-88.914,15.894],[-88.221,15.726],[-89.173,15.042],[-89.362,14.415]]]},"properties":{"NAME":"Guatemala","ISO_A2":"GT"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[125.062,-9.486],[124.92,-8.962],[125.144,-8.631],[126.967,-8.309],[127.009,-8.677],[125.609,-9.186],[125.062,-9.486]]]},"properties":{"NAME":"Timor-Leste","ISO_A2":"TL"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[114.982,4.889],[114.587,4.021],[113.999,4.601],[114.982,4.889]]]},"properties":{"NAME":"Brunei","ISO_A2":"BN"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[7.366,43.723],[7.407,43.764],[7.437,43.743],[7.366,43.723]]]},"properties":{"NAME":"Monaco","ISO_A2":"MC"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.682,27.661],[-8.682,28.666],[-7.619,29.389],[-5.756,29.614],[-4.372,30.509],[-3.646,30.711],[-3.66,31.648],[-2.828,31.795],[-2.516,32.132],[-1.25,32.082],[-1.674,33.238],[-1.788,34.757],[-2.223,35.089],[1.045,36.487],[3.827,36.913],[4.787,36.895],[5.304,36.643],[7.383,37.083],[7.908,36.85],[8.603,36.94],[8.241,35.828],[8.236,34.648],[7.48,33.894],[7.751,33.208],[8.32,32.561],[9.045,32.072],[9.52,30.229],[9.826,29.129],[9.936,27.867],[9.721,27.292],[9.836,26.504],[9.401,26.113],[9.969,25.395],[10.032,24.856],[11.567,24.267],[11.969,23.517],[9.723,22.193],[7.483,20.873],[5.838,19.479],[4.229,19.142],[3.308,18.982],[3.217,19.794],[1.778,20.304],[1.145,20.796],[1.147,21.102],[-0.964,22.481],[-2.523,23.501],[-4.822,24.995],[-7.297,26.471],[-8.682,27.285],[-8.682,27.661]]]},"properties":{"NAME":"Algeria","ISO_A2":"DZ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[33.203,-14.014],[33.604,-14.524],[34.344,-14.387],[34.569,-15.271],[34.233,-15.89],[34.385,-16.186],[35.214,-16.484],[35.796,-16.005],[35.853,-14.667],[34.894,-13.535],[34.545,-13.326],[34.354,-12.199],[34.651,-11.57],[34.965,-11.574],[36.2,-11.702],[37.044,-11.596],[37.428,-11.723],[37.875,-11.319],[38.492,-11.413],[40.008,-10.811],[40.437,-10.475],[40.537,-11.997],[40.543,-13.659],[40.843,-14.464],[40.573,-15.505],[39.698,-16.532],[39.091,-16.984],[37.909,-17.355],[37.086,-17.869],[36.244,-18.883],[35.662,-19.133],[34.88,-19.863],[34.68,-20.347],[35.497,-22.142],[35.395,-23.842],[35.106,-24.598],[33.729,-25.105],[32.873,-25.544],[32.591,-25.969],[32.929,-26.266],[32.893,-26.846],[32.114,-26.84],[31.949,-25.958],[31.987,-24.423],[31.521,-23.416],[31.289,-22.397],[32.409,-21.29],[32.469,-20.687],[33.033,-19.784],[32.769,-19.364],[32.996,-18.467],[33.022,-17.361],[32.893,-16.712],[31.91,-16.429],[31.26,-16.023],[30.403,-16.001],[30.396,-15.636],[30.214,-14.981],[33.203,-14.014]]]},"properties":{"NAME":"Mozambique","ISO_A2":"MZ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[32.114,-26.84],[31.968,-27.316],[31.157,-27.206],[30.786,-26.717],[31.12,-25.91],[31.949,-25.958],[32.114,-26.84]]]},"properties":{"NAME":"eSwatini","ISO_A2":"SZ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[29.404,-4.45],[29.215,-3.9],[29.235,-3.047],[29.015,-2.721],[29.698,-2.808],[30.555,-2.401],[30.416,-2.852],[30.832,-3.173],[30.003,-4.272],[29.404,-4.45]]]},"properties":{"NAME":"Burundi","ISO_A2":"BI"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[29.015,-2.721],[28.859,-2.418],[29.149,-1.799],[29.578,-1.388],[30.472,-1.067],[30.831,-1.594],[30.834,-2.345],[30.555,-2.401],[29.698,-2.808],[29.015,-2.721]]]},"properties":{"NAME":"Rwanda","ISO_A2":"RW"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[97.323,28.217],[97.528,28.53],[98.679,27.577],[98.692,25.879],[97.738,25.091],[97.536,24.745],[97.708,24.125],[98.503,24.121],[99.217,23.057],[99.358,22.495],[99.942,22.046],[99.95,21.721],[100.622,21.469],[101.159,21.553],[100.725,21.312],[100.099,20.318],[99.009,19.846],[97.84,19.555],[97.752,18.582],[97.438,18.488],[97.769,17.679],[98.632,16.463],[98.56,15.355],[98.165,15.126],[98.548,14.378],[99.153,13.715],[99.214,12.735],[99.63,11.816],[98.767,10.689],[98.747,10.351],[98.691,12.71],[97.795,14.88],[97.548,16.538],[97.069,17.251],[96.616,16.518],[95.756,16.145],[95.396,15.716],[94.859,15.783],[94.215,16.158],[94.573,17.311],[94.481,18.094],[93.987,19.387],[93.375,20.089],[92.772,20.201],[92.265,21.061],[92.59,21.496],[92.576,21.978],[93.169,22.247],[93.08,22.773],[93.375,23.13],[93.457,23.96],[93.998,23.917],[94.709,25.026],[94.608,25.395],[95.14,26.03],[95.119,26.604],[96.143,27.258],[96.759,27.342],[97.323,28.217]]]},"properties":{"NAME":"Myanmar","ISO_A2":"MM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[92.576,21.978],[92.59,21.496],[92.265,21.061],[91.676,22.535],[91.456,22.785],[90.613,22.315],[90.185,21.801],[89.105,21.816],[89.06,22.13],[88.54,23.65],[88.738,24.287],[88.022,24.646],[88.431,25.173],[88.074,25.908],[88.656,26.415],[89.83,25.908],[89.795,25.374],[90.365,25.15],[92.002,25.183],[92.458,24.953],[92.108,24.406],[91.363,24.1],[91.141,23.612],[91.537,22.982],[92.151,23.732],[92.357,23.289],[92.576,21.978]]]},"properties":{"NAME":"Bangladesh","ISO_A2":"BD"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.429,42.595],[1.707,42.503],[1.448,42.435],[1.429,42.595]]]},"properties":{"NAME":"Andorra","ISO_A2":"AD"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.892,37.231],[74.542,37.022],[74.094,36.831],[72.565,36.821],[71.629,36.46],[71.171,36.027],[71.634,35.203],[71.081,34.673],[71.047,34.042],[70.003,34.044],[70.294,33.319],[69.548,33.075],[69.004,31.651],[68.126,31.811],[67.346,31.208],[66.366,30.923],[66.196,29.835],[64.086,29.387],[63.569,29.497],[62.478,29.408],[60.844,29.858],[61.785,30.831],[61.661,31.382],[60.855,31.483],[60.83,32.249],[60.568,33.151],[60.487,34.094],[61.065,34.815],[61.27,35.618],[62.621,35.223],[63.343,35.856],[64.266,36.152],[64.76,37.093],[65.669,37.521],[66.52,37.364],[67.781,37.189],[68.307,37.114],[70.165,37.89],[70.974,38.474],[71.598,37.898],[71.431,37.067],[71.611,36.705],[73.276,37.459],[74.66,37.394],[74.892,37.231]]]},"properties":{"NAME":"Afghanistan","ISO_A2":"AF"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[20.065,42.547],[19.605,42.585],[19.365,41.852],[18.496,42.416],[18.437,42.559],[18.453,42.993],[19.195,43.533],[20.345,42.827],[20.065,42.547]]]},"properties":{"NAME":"Montenegro","ISO_A2":"ME"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[30.84,3.49],[31.141,3.785],[31.944,3.591],[33.017,3.877],[33.533,3.774],[33.977,4.22],[34.434,3.182],[34.924,2.477],[34.979,1.676],[33.894,0.11],[33.904,-1.003],[30.828,-1.003],[30.472,-1.067],[29.578,-1.388],[29.712,0.1],[29.928,0.785],[31.243,2.051],[30.725,2.441],[30.84,3.49]]]},"properties":{"NAME":"Uganda","ISO_A2":"UG"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-83.13,14.997],[-84.483,14.619],[-84.77,14.805],[-85.824,13.848],[-86.097,14.044],[-86.702,13.314],[-87.314,12.982],[-87.817,13.407],[-87.713,13.8],[-88.488,13.865],[-89.362,14.415],[-89.173,15.042],[-88.221,15.726],[-87.722,15.923],[-86.879,15.764],[-85.703,15.976],[-84.295,15.811],[-83.775,15.286],[-83.13,14.997]]]},"properties":{"NAME":"Honduras","ISO_A2":"HN"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-75.283,-0.107],[-75.56,-1.503],[-76.685,-2.574],[-77.849,-2.981],[-78.363,-3.489],[-79.009,-4.96],[-80.08,-4.309],[-80.341,-3.393],[-79.953,-3.197],[-80.657,-2.416],[-80.85,-1.616],[-80.066,0.052],[-80.076,0.816],[-78.958,1.163],[-78.829,1.434],[-77.424,0.408],[-76.897,0.245],[-76.053,0.364],[-75.283,-0.107]]]},"properties":{"NAME":"Ecuador","ISO_A2":"EC"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-69.965,-4.236],[-70.734,-3.782],[-70.051,-2.715],[-70.874,-2.23],[-71.768,-2.142],[-72.397,-2.447],[-72.943,-2.419],[-73.186,-1.8],[-73.637,-1.255],[-74.289,-0.943],[-74.825,-0.17],[-75.283,-0.107],[-76.053,0.364],[-76.897,0.245],[-77.424,0.408],[-78.829,1.434],[-78.846,1.822],[-78.432,2.587],[-77.752,2.627],[-77.205,3.621],[-77.425,4.005],[-77.246,5.787],[-77.343,6.544],[-77.896,7.235],[-77.201,7.982],[-77.374,8.665],[-76.832,8.137],[-76.673,8.68],[-75.658,9.705],[-75.51,10.586],[-74.844,11.11],[-74.187,11.317],[-73.292,11.294],[-72.263,11.886],[-71.656,12.465],[-71.328,11.85],[-71.971,11.662],[-72.908,10.452],[-73.01,9.295],[-72.387,8.339],[-72.451,7.44],[-72.081,7.067],[-71.184,6.963],[-70.703,7.1],[-70.097,6.944],[-69.444,6.122],[-67.574,6.266],[-67.429,6.038],[-67.844,5.297],[-67.854,4.576],[-67.632,3.762],[-67.305,3.426],[-67.839,2.886],[-67.325,2.475],[-66.875,1.223],[-67.341,2.09],[-68.163,1.721],[-69.849,1.669],[-69.852,1.059],[-69.371,1.063],[-69.137,0.65],[-70.054,0.588],[-70.074,-0.125],[-69.632,-0.507],[-69.399,-1.183],[-69.965,-4.236]]]},"properties":{"NAME":"Colombia","ISO_A2":"CO"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-62.65,-22.234],[-62.276,-21.067],[-62.277,-20.58],[-61.761,-19.658],[-60.006,-19.298],[-59.09,-19.287],[-58.175,-19.821],[-58.159,-20.165],[-57.86,-20.73],[-57.987,-22.035],[-56.843,-22.289],[-56.422,-22.074],[-55.893,-22.307],[-55.398,-23.977],[-54.613,-23.811],[-54.245,-24.051],[-54.6,-25.575],[-54.706,-26.442],[-56.125,-27.299],[-57.18,-27.487],[-58.653,-27.156],[-58.248,-26.758],[-58.087,-26.127],[-57.557,-25.46],[-57.754,-25.181],[-58.809,-24.777],[-60.034,-24.007],[-61.006,-23.805],[-61.956,-23.034],[-62.65,-22.234]]]},"properties":{"NAME":"Paraguay","ISO_A2":"PY"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[26.618,48.259],[27.752,48.452],[29.124,47.976],[29.557,47.324],[29.727,46.456],[29.201,46.357],[28.199,45.462],[28.246,46.428],[28.037,47.016],[26.618,48.259]]]},"properties":{"NAME":"Moldova","ISO_A2":"MD"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[55.978,41.322],[57.01,41.254],[56.95,41.866],[58.612,42.781],[59.478,42.286],[59.866,42.304],[60.415,41.235],[61.878,41.125],[62.453,40.009],[64.121,38.962],[65.604,38.237],[66.554,38.027],[66.52,37.364],[65.669,37.521],[64.76,37.093],[64.266,36.152],[63.343,35.856],[62.621,35.223],[61.27,35.618],[61.075,36.648],[60.342,36.637],[58.861,37.668],[57.352,37.968],[57.038,38.187],[55.423,38.076],[54.784,37.517],[53.914,37.343],[53.827,38.525],[53.978,38.902],[52.884,39.945],[52.737,40.485],[54.64,40.839],[54.041,41.535],[53.897,42.079],[53.122,42.09],[52.438,41.749],[52.979,42.127],[54.047,42.345],[54.738,42.048],[55.43,41.291],[55.978,41.322]]]},"properties":{"NAME":"Turkmenistan","ISO_A2":"TM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.561,32.385],[35.758,32.744],[36.819,32.317],[38.775,33.372],[39.146,32.118],[36.96,31.491],[37.981,30.499],[37.47,29.995],[36.756,29.866],[36.016,29.19],[34.949,29.352],[34.956,29.559],[35.458,31.492],[35.561,32.385]]]},"properties":{"NAME":"Jordan","ISO_A2":"JO"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[80.996,30.197],[81.592,30.414],[83.517,29.192],[84.235,28.9],[85.08,28.319],[85.675,28.306],[85.98,27.885],[86.662,28.107],[87.156,27.826],[88.118,27.861],[87.971,27.103],[88.074,26.454],[87.326,26.353],[85.822,26.572],[84.802,27.014],[84.577,27.329],[82.752,27.495],[81.146,28.372],[80.036,28.837],[80.369,29.758],[80.996,30.197]]]},"properties":{"NAME":"Nepal","ISO_A2":"NP"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[28.981,-28.909],[29.436,-29.342],[29.144,-29.92],[28.364,-30.159],[28.055,-30.65],[27.366,-30.311],[27.015,-29.626],[27.747,-28.909],[28.667,-28.597],[28.981,-28.909]]]},"properties":{"NAME":"Lesotho","ISO_A2":"LS"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.197,2.236],[15.765,1.909],[14.562,2.209],[13.295,2.161],[11.352,2.301],[11.322,2.166],[9.991,2.166],[9.8,2.342],[9.903,3.273],[9.412,3.902],[8.971,4.101],[8.594,4.815],[8.856,5.847],[10.119,6.994],[10.603,7.058],[11.51,6.612],[12.198,7.975],[12.25,8.419],[12.806,8.832],[12.862,9.383],[13.982,11.276],[14.594,11.496],[14.67,12.167],[14.18,12.386],[14.065,13.078],[14.831,12.618],[15.136,11.531],[15.066,10.793],[15.536,10.081],[14.182,9.978],[13.948,9.638],[15.184,8.479],[15.481,7.523],[14.719,6.258],[14.524,5.28],[15.171,3.759],[16.092,2.863],[16.197,2.236]]]},"properties":{"NAME":"Cameroon","ISO_A2":"CM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.295,2.161],[13.25,1.222],[14.184,1.381],[14.468,0.913],[13.871,0.196],[14.499,-0.631],[14.482,-1.389],[14.227,-2.323],[13.771,-2.119],[13.361,-2.429],[12.805,-1.919],[12.459,-2.33],[11.558,-2.349],[11.828,-3.548],[11.114,-3.937],[10.635,-3.314],[9.902,-2.7],[9.244,-1.786],[8.8,-0.734],[9.267,-0.412],[9.498,0.291],[9.309,0.614],[9.804,0.998],[11.336,0.999],[11.322,2.166],[11.352,2.301],[13.295,2.161]]]},"properties":{"NAME":"Gabon","ISO_A2":"GA"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.969,23.517],[13.482,23.18],[14.232,22.618],[14.98,22.996],[15.18,21.507],[15.954,20.375],[15.736,19.904],[15.452,16.876],[14.369,15.75],[13.449,14.38],[13.607,13.704],[12.884,13.496],[12.473,13.064],[11.44,13.364],[10.675,13.375],[9.93,13.146],[9.641,12.823],[8.679,12.924],[7.756,13.327],[6.907,13.007],[6.369,13.626],[5.554,13.873],[4.507,13.695],[4.126,13.473],[4.089,12.996],[3.646,12.529],[3.596,11.696],[2.844,12.399],[2.39,11.897],[2.071,12.307],[0.972,13.067],[0.153,14.547],[0.218,14.911],[0.974,14.991],[1.332,15.284],[3.507,15.354],[4.184,16.416],[4.229,19.142],[5.838,19.479],[7.483,20.873],[9.723,22.193],[11.969,23.517]]]},"properties":{"NAME":"Niger","ISO_A2":"NE"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.689,9.489],[-3.662,9.949],[-4.27,9.744],[-4.966,9.901],[-5.523,10.425],[-5.168,11.944],[-4.406,12.307],[-3.984,13.396],[-3.249,13.293],[-2.841,14.043],[-2.023,14.199],[-0.753,15.07],[0.218,14.911],[0.153,14.547],[0.972,13.067],[2.071,12.307],[2.39,11.897],[2.011,11.427],[1.434,11.459],[0.901,10.993],[-0.166,11.135],[-0.516,10.989],[-2.751,10.986],[-2.933,10.634],[-2.689,9.489]]]},"properties":{"NAME":"Burkina Faso","ISO_A2":"BF"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.901,10.993],[0.769,10.367],[1.331,9.996],[1.601,9.05],[1.62,6.214],[1.185,6.1],[0.519,6.832],[0.646,7.324],[0.616,8.489],[0.366,8.774],[0.367,10.304],[-0.088,10.633],[-0.166,11.135],[0.901,10.993]]]},"properties":{"NAME":"Togo","ISO_A2":"TG"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.844,5.149],[-3.263,6.617],[-2.84,7.82],[-2.506,8.209],[-2.689,9.489],[-2.933,10.634],[-2.751,10.986],[-0.516,10.989],[-0.166,11.135],[-0.088,10.633],[0.367,10.304],[0.366,8.774],[0.616,8.489],[0.646,7.324],[0.519,6.832],[1.185,6.1],[0.995,5.839],[0.322,5.779],[-0.8,5.215],[-2.091,4.737],[-3.12,5.091],[-3.115,5.108],[-2.844,5.149]]]},"properties":{"NAME":"Ghana","ISO_A2":"GH"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-13.728,12.673],[-13.73,11.71],[-14.687,11.511],[-15.021,10.967],[-15.41,11.19],[-15.585,11.851],[-15.97,11.768],[-16.728,12.333],[-15.677,12.439],[-15.195,12.679],[-13.728,12.673]]]},"properties":{"NAME":"Guinea-Bissau","ISO_A2":"GW"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.358,36.141],[-5.339,36.141],[-5.339,36.124],[-5.35,36.119],[-5.358,36.141]]]},"properties":{"NAME":"Gibraltar","ISO_A2":"GI"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-74.713,44.999],[-71.504,45.014],[-70.407,45.732],[-70.008,46.704],[-69.268,47.44],[-68.197,47.341],[-67.805,47.036],[-67.773,45.828],[-67.176,45.179],[-66.977,44.816],[-67.9,44.422],[-68.987,44.421],[-69.263,43.93],[-70.239,43.7],[-70.815,42.87],[-70.533,41.816],[-71.498,41.366],[-72.779,41.27],[-73.635,41.007],[-74.168,39.699],[-74.746,39.055],[-75.154,38.241],[-76.221,38.344],[-76.379,37.272],[-75.989,36.912],[-75.722,35.829],[-76.442,35.404],[-76.658,34.722],[-77.202,34.651],[-77.911,33.958],[-78.559,33.869],[-79.203,33.193],[-80.888,32.069],[-81.364,31.416],[-81.499,30.704],[-81.256,29.789],[-80.609,28.61],[-80.738,28.373],[-80.038,26.811],[-80.129,25.888],[-80.427,25.222],[-81.087,25.121],[-81.322,25.783],[-81.801,26.099],[-82.842,27.829],[-82.644,28.9],[-83.681,29.921],[-84.27,30.093],[-85.308,29.693],[-85.671,30.123],[-87.157,30.475],[-87.786,30.237],[-88.928,30.442],[-89.708,30.175],[-89.457,29.829],[-90.08,29.175],[-91.229,29.239],[-91.685,29.753],[-92.276,29.534],[-93.2,29.773],[-94.06,29.682],[-94.889,29.376],[-95.602,28.764],[-96.205,28.587],[-97.025,28.041],[-97.55,27.009],[-97.139,25.966],[-98.223,26.075],[-99.085,26.408],[-99.462,27.057],[-99.507,27.574],[-100.284,28.297],[-100.669,29.116],[-101.409,29.766],[-102.302,29.889],[-102.683,29.744],[-103.148,28.985],[-104.531,29.668],[-105.008,30.677],[-106.517,31.774],[-108.215,31.778],[-108.215,31.327],[-111.067,31.334],[-114.822,32.5],[-114.724,32.713],[-117.125,32.532],[-117.509,33.335],[-118.544,34.039],[-119.617,34.421],[-120.473,34.45],[-120.645,35.139],[-121.896,36.314],[-121.79,36.806],[-122.404,37.195],[-122.975,38.266],[-123.648,38.85],[-123.854,39.834],[-124.364,40.261],[-124.062,41.436],[-124.548,42.845],[-124.151,43.882],[-123.898,46.442],[-124.735,48.17],[-122.792,48.083],[-122.44,48.581],[-122.753,48.993],[-119.356,48.993],[-117.158,48.993],[-113.641,48.993],[-110.564,48.993],[-106.607,48.993],[-102.87,48.993],[-98.035,48.993],[-95.177,48.993],[-94.593,48.726],[-92.649,48.536],[-91.428,48.036],[-90.179,48.116],[-89.34,47.984],[-88.347,48.299],[-84.879,46.898],[-83.595,45.816],[-82.532,45.294],[-82.154,43.55],[-82.511,42.647],[-83.129,42.24],[-83.068,41.848],[-82.425,41.677],[-81.277,42.209],[-80.247,42.365],[-79.019,42.803],[-79.174,43.465],[-78.688,43.632],[-76.842,43.626],[-76.455,44.084],[-75.27,44.864],[-74.713,44.999]]],[[[-141.006,69.651],[-141.004,66.881],[-141.003,64.549],[-141.002,62.654],[-141.001,60.321],[-139.182,60.073],[-137.611,59.239],[-136.467,59.288],[-135.483,59.792],[-133.463,58.462],[-132.032,57.028],[-132.107,56.859],[-130.02,55.908],[-129.989,55.284],[-130.934,54.824],[-130.89,55.715],[-133.391,57.335],[-134.498,58.354],[-135.841,58.528],[-136.598,58.223],[-138.185,59.026],[-140.323,59.701],[-142.798,60.112],[-143.919,59.997],[-145.692,60.657],[-148.306,60.896],[-147.942,60.443],[-148.402,59.991],[-149.341,60.022],[-150.326,59.476],[-151.742,59.167],[-151.883,59.787],[-150.634,61.299],[-151.747,60.917],[-152.738,59.908],[-154.076,59.381],[-153.332,58.934],[-154.166,58.217],[-156.339,57.415],[-157.189,56.776],[-158.355,56.471],[-158.318,56.175],[-160.478,55.495],[-162.878,54.939],[-161.826,55.88],[-160.521,55.935],[-160.369,56.277],[-158.945,56.843],[-157.71,57.569],[-157.503,58.464],[-159.051,58.425],[-160.352,59.071],[-161.357,58.726],[-161.714,59.501],[-162.526,59.998],[-163.615,59.801],[-164.989,60.341],[-164.669,60.826],[-166.2,61.595],[-164.579,63.141],[-163.094,63.057],[-160.792,63.747],[-161.422,64.774],[-162.607,64.507],[-166.19,64.585],[-168.081,65.591],[-164.718,66.556],[-163.68,66.079],[-161.916,66.042],[-161.607,66.454],[-162.435,66.991],[-163.688,67.103],[-164.151,67.62],[-166.548,68.359],[-166.237,68.875],[-164.346,68.929],[-163.156,69.359],[-162.015,70.277],[-158.043,70.837],[-156.817,71.306],[-154.539,70.826],[-152.546,70.888],[-151.98,70.449],[-149.344,70.51],[-144.942,69.978],[-143.236,70.118],[-141.006,69.651]]],[[[-131.977,54.832],[-133.213,55.279],[-132.736,55.997],[-131.994,55.268],[-131.977,54.832]]],[[[-152.161,57.627],[-153.963,56.748],[-154.81,57.347],[-153.925,57.81],[-152.486,57.911],[-152.161,57.627]]],[[[-135.848,57.394],[-136.395,57.886],[-135.814,58.274],[-134.925,58.027],[-134.814,57.497],[-135.848,57.394]]],[[[-154.9,19.567],[-154.982,19.339],[-155.878,19.029],[-156.06,19.731],[-155.332,20.047],[-154.9,19.567]]]]},"properties":{"NAME":"United States of America","ISO_A2":"US"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-67.176,45.179],[-67.773,45.828],[-67.805,47.036],[-68.197,47.341],[-69.268,47.44],[-70.008,46.704],[-70.407,45.732],[-71.504,45.014],[-74.713,44.999],[-73.557,45.414],[-73.14,46.058],[-70.535,47.011],[-69.054,48.232],[-68.206,48.642],[-66.622,49.123],[-65.566,49.266],[-64.221,48.894],[-64.826,47.815],[-64.906,46.887],[-64.514,46.239],[-63.806,45.889],[-62.47,45.614],[-61.471,45.683],[-61.071,45.224],[-63.716,44.456],[-65.463,43.528],[-66.21,44.106],[-65.786,44.696],[-64.388,45.367],[-65.315,45.459],[-66.746,45.065],[-67.176,45.179]]],[[[-74.713,44.999],[-75.27,44.864],[-76.455,44.084],[-76.842,43.626],[-78.688,43.632],[-79.174,43.465],[-79.019,42.803],[-80.247,42.365],[-81.277,42.209],[-82.425,41.677],[-83.068,41.848],[-83.129,42.24],[-82.511,42.647],[-82.154,43.55],[-82.532,45.294],[-83.595,45.816],[-84.879,46.898],[-88.347,48.299],[-89.34,47.984],[-90.179,48.116],[-91.428,48.036],[-92.649,48.536],[-94.593,48.726],[-95.177,48.993],[-98.035,48.993],[-102.87,48.993],[-106.607,48.993],[-110.564,48.993],[-113.641,48.993],[-117.158,48.993],[-119.356,48.993],[-122.753,48.993],[-123.035,48.992],[-123.091,48.993],[-124.605,50.233],[-126.242,50.501],[-127.777,51.167],[-127.801,52.256],[-128.547,53.136],[-129.335,53.397],[-130.458,54.349],[-129.958,55.274],[-130.02,55.908],[-132.107,56.859],[-132.032,57.028],[-133.463,58.462],[-135.483,59.792],[-136.467,59.288],[-137.611,59.239],[-139.182,60.073],[-141.001,60.321],[-141.002,62.654],[-141.003,64.549],[-141.004,66.881],[-141.006,69.651],[-139.144,69.514],[-137.191,68.948],[-134.41,69.657],[-133.632,69.399],[-130.324,70.14],[-129.174,69.832],[-127.136,70.253],[-125.939,69.414],[-125.032,69.747],[-121.428,69.767],[-120.279,69.408],[-118.041,69.025],[-114.988,68.867],[-114.201,68.572],[-115.534,67.934],[-112.421,67.682],[-110.421,67.948],[-108.599,67.625],[-108.281,68.622],[-106.197,68.944],[-104.484,68.034],[-101.529,67.68],[-100.717,67.847],[-96.465,67.55],[-94.861,68.031],[-94.322,69.453],[-96.486,70.097],[-96.616,70.826],[-94.549,72.002],[-92.991,71.357],[-92.908,70.902],[-91.545,70.145],[-90,68.379],[-89.332,69.249],[-88.023,68.809],[-88.374,67.976],[-87.328,67.173],[-86.502,67.379],[-85.22,69.133],[-85.333,69.791],[-82.576,69.674],[-81.267,68.639],[-82.37,68.356],[-81.238,67.461],[-81.527,66.996],[-83.691,66.199],[-85.857,66.163],[-87.381,65.33],[-86.938,65.142],[-88.044,64.184],[-89.813,63.96],[-90.975,63.579],[-90.644,63.069],[-92.261,62.563],[-93.502,61.856],[-94.712,60.266],[-94.807,59.018],[-94.399,58.712],[-93.19,58.76],[-92.224,57.021],[-91.031,57.265],[-88.921,56.853],[-87.622,56.096],[-85.127,55.303],[-82.458,55.141],[-82.431,54.228],[-82.126,53.812],[-82.301,52.968],[-81.391,52.128],[-79.701,51.385],[-78.841,51.842],[-78.521,52.481],[-79.129,54.107],[-79.676,54.694],[-78.392,55.028],[-76.659,56.073],[-76.589,57.271],[-77.079,57.961],[-78.474,58.72],[-77.283,60.027],[-78.166,60.868],[-77.708,61.616],[-78.155,62.297],[-77.491,62.588],[-75.83,62.313],[-74.417,62.253],[-73.671,62.482],[-71.652,61.65],[-71.395,61.15],[-70.11,61.06],[-69.452,58.895],[-68.787,58.922],[-67.649,58.252],[-66.109,58.779],[-65.407,59.417],[-64.849,60.366],[-64.148,59.683],[-62.579,58.504],[-62.661,58.176],[-61.89,57.625],[-61.83,56.377],[-60.355,55.575],[-60.287,55.233],[-59.008,55.154],[-58.186,54.359],[-57.357,54.139],[-57.153,53.74],[-56.036,53.58],[-56.059,52.766],[-55.685,52.112],[-56.967,51.425],[-57.25,51.508],[-58.948,51.042],[-60.064,50.254],[-62.852,50.294],[-66.543,50.216],[-67.376,49.339],[-68.122,49.271],[-69.07,48.756],[-69.932,47.773],[-71.354,46.739],[-72.994,46.211],[-73.962,45.354],[-74.713,44.999]]],[[[-52.629,47.527],[-52.941,46.791],[-53.573,47.162],[-54.013,47.807],[-54.866,47.38],[-55.251,46.919],[-55.968,47.76],[-56.777,47.533],[-58.098,47.695],[-59.112,47.561],[-59.399,47.88],[-58.703,48.555],[-57.457,50.483],[-56.72,51.319],[-55.492,51.388],[-56.149,50.156],[-55.939,49.61],[-55.223,49.265],[-54.041,49.481],[-53.639,48.169],[-53.847,47.707],[-52.629,47.527]]],[[[-132.579,53.207],[-133.041,54.165],[-131.693,53.992],[-132.008,53.254],[-132.579,53.207]]],[[[-95.215,68.862],[-96.296,68.48],[-99.417,68.89],[-97.925,69.896],[-95.215,68.862]]],[[[-100.872,69.808],[-102.055,69.484],[-101.965,68.97],[-103.383,68.782],[-105.886,69.176],[-108.952,68.742],[-112.583,68.51],[-113.584,69.201],[-115.975,69.3],[-117.442,69.989],[-114.185,70.316],[-113.988,70.716],[-117.585,70.606],[-119.051,71.627],[-118.593,72.429],[-117.369,72.918],[-114.584,73.385],[-113.962,73.123],[-110.729,72.571],[-110.076,72.996],[-106.823,73.31],[-105.333,72.751],[-104.38,71.6],[-104.591,71.073],[-100.872,69.808]]],[[[-72.949,66.735],[-72.351,67.119],[-72.988,68.173],[-73.728,68.314],[-75.687,69.287],[-77.038,69.606],[-77.683,70.184],[-78.888,69.894],[-81.072,70.099],[-85.783,69.995],[-87.853,70.238],[-89.449,70.908],[-90.105,71.916],[-89.051,73.252],[-86.714,73.847],[-84.837,73.389],[-81.528,73.716],[-80.558,72.628],[-79.283,72.394],[-77.601,72.756],[-75.198,72.498],[-75.063,72.128],[-73.254,71.33],[-72.473,71.647],[-70.516,70.937],[-68.362,70.584],[-67.115,69.729],[-68.133,68.837],[-66.214,68.005],[-64.72,67.985],[-63.888,67.242],[-62.004,67.037],[-61.27,66.605],[-61.954,66.02],[-63.498,65.371],[-64.902,65.282],[-66.961,66.541],[-67.17,65.933],[-66.649,64.97],[-64.676,63.74],[-64.484,63.288],[-65.17,62.568],[-68.496,63.74],[-68.147,63.161],[-65.93,62.198],[-66.274,61.858],[-68.554,62.25],[-71.373,63.049],[-73.452,64.591],[-74.713,64.382],[-77.758,64.343],[-77.964,65.052],[-76.677,65.411],[-75.757,65.214],[-74.503,65.343],[-73.718,65.775],[-74.345,66.226],[-72.949,66.735]]],[[[-115.324,73.509],[-119.164,72.63],[-120.197,72.217],[-120.635,71.491],[-123.1,71.085],[-124.065,71.7],[-125.752,72.148],[-124.49,72.925],[-123.774,73.766],[-124.756,74.349],[-121.581,74.556],[-120.157,74.279],[-118.066,74.281],[-115.324,73.509]]],[[[-123.321,48.496],[-124.665,48.573],[-126.573,49.414],[-128.32,50.61],[-127.199,50.621],[-125.436,50.314],[-124.795,49.473],[-123.813,49.119],[-123.321,48.496]]],[[[-82.191,62.986],[-81.957,62.698],[-83.135,62.177],[-83.52,62.826],[-82.191,62.986]]],[[[-80.183,63.768],[-81.019,63.45],[-82.534,63.973],[-84.59,63.315],[-85.617,63.675],[-86.406,64.439],[-86.028,65.665],[-85.201,65.809],[-84.098,65.21],[-81.771,64.512],[-80.183,63.768]]],[[[-75.034,68.173],[-75.065,67.552],[-76.982,67.243],[-77.323,67.708],[-76.689,68.263],[-75.034,68.173]]],[[[-104.681,73.63],[-105.202,72.945],[-107.039,73.484],[-104.681,73.63]]],[[[-80.903,73.607],[-78.139,73.669],[-76.319,72.817],[-79.949,72.847],[-80.903,73.607]]],[[[-96.321,72.467],[-96.56,71.84],[-99.235,71.35],[-100.637,72.186],[-100.111,73.033],[-101.562,73.469],[-100.886,73.832],[-97.57,73.894],[-97.661,73.037],[-96.321,72.467]]],[[[-90.291,73.923],[-91.858,72.848],[-93.403,72.794],[-94.088,72.064],[-95.593,72.699],[-95.249,74.01],[-93.273,74.178],[-90.291,73.923]]],[[[-93.437,74.944],[-94.724,74.632],[-96.605,75.065],[-94.394,75.604],[-93.437,74.944]]],[[[-97.425,75.52],[-98.035,75.026],[-100.33,75.014],[-100.223,75.667],[-102.035,76.413],[-100.27,76.65],[-97.665,76.486],[-97.425,75.52]]],[[[-105.395,75.674],[-106.009,75.057],[-109.582,74.858],[-112.437,74.414],[-113.693,74.444],[-117.675,75.293],[-115.512,76.456],[-112.432,76.171],[-111.361,75.715],[-108.896,75.492],[-109.542,76.189],[-105.76,75.99],[-105.395,75.674]]],[[[-79.56,74.992],[-81.789,74.458],[-87.644,74.458],[-91.621,74.712],[-92.004,75.602],[-93.128,76.37],[-95.823,76.399],[-95.771,77.077],[-91.441,76.694],[-88.245,75.478],[-86.196,75.415],[-83.918,75.815],[-81.113,75.779],[-79.501,75.392],[-79.56,74.992]]],[[[-119.317,76.2],[-119.863,75.859],[-122.862,76.182],[-118.821,77.361],[-117.231,77.286],[-115.893,76.698],[-119.317,76.2]]],[[[-109.604,78.074],[-110.235,77.504],[-112.109,77.326],[-113.241,77.905],[-109.604,78.074]]],[[[-96.91,77.795],[-98.36,78.452],[-94.828,78.364],[-96.91,77.795]]],[[[-105.607,79.104],[-103.722,79.363],[-99.558,78.599],[-99.017,77.894],[-103.497,78.507],[-105.607,79.104]]],[[[-96.623,80.044],[-95.232,81.015],[-92.237,81.256],[-90.639,80.569],[-87.701,80.413],[-86.971,79.882],[-84.919,79.296],[-87.859,78.693],[-88.77,78.186],[-92.953,78.437],[-95.646,79.394],[-96.623,80.044]]],[[[-61.085,82.331],[-64.692,81.391],[-68.279,80.76],[-71.142,79.789],[-74.469,79.227],[-75.582,78.113],[-77.981,77.817],[-79.432,77.239],[-78.141,76.527],[-85.249,76.316],[-89.17,76.424],[-89.537,76.857],[-87.475,77.111],[-88.181,77.801],[-87.482,78.452],[-84.33,79.192],[-86.45,79.754],[-86.438,80.32],[-89.826,81.013],[-91.709,81.734],[-82.712,82.381],[-79.34,82.976],[-69.483,83.046],[-61.085,82.331]]],[[[-60.081,45.792],[-61.335,45.566],[-61.541,46.04],[-60.603,47.034],[-60.081,45.792]]],[[[-64.319,49.791],[-63.375,49.829],[-61.883,49.354],[-62.248,49.068],[-63.587,49.39],[-64.319,49.791]]]]},"properties":{"NAME":"Canada","ISO_A2":"CA"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-89.16,17.814],[-90.991,17.802],[-91.067,16.918],[-90.399,16.348],[-90.486,16.071],[-91.724,16.069],[-92.205,15.29],[-92.246,14.546],[-92.824,15.173],[-94.128,16.221],[-94.852,16.429],[-95.434,15.975],[-96.556,15.659],[-97.773,15.979],[-98.857,16.528],[-99.741,16.731],[-101.008,17.253],[-102.191,17.916],[-103.498,18.333],[-103.98,18.875],[-105.017,19.368],[-105.699,20.407],[-105.362,20.763],[-105.185,21.443],[-105.632,21.956],[-105.8,22.638],[-107.036,23.981],[-107.995,24.648],[-108.451,25.269],[-109.441,25.793],[-109.256,26.498],[-110.555,27.385],[-110.587,27.837],[-111.251,28.052],[-112.151,28.963],[-113.129,30.812],[-113.049,31.157],[-114.159,31.495],[-114.853,31.527],[-114.66,30.183],[-112.902,28.475],[-112.773,27.864],[-112.017,26.979],[-111.56,26.696],[-111.307,25.779],[-110.657,24.807],[-109.476,23.56],[-109.532,23.108],[-110.098,23.018],[-110.307,23.541],[-111.679,24.586],[-112.088,24.773],[-112.076,25.713],[-112.343,26.178],[-114.488,27.238],[-114.923,27.836],[-114.173,27.827],[-114.043,28.458],[-114.972,29.378],[-115.698,29.756],[-116.068,30.813],[-116.676,31.553],[-117.125,32.532],[-114.724,32.713],[-114.822,32.5],[-111.067,31.334],[-108.215,31.327],[-108.215,31.778],[-106.517,31.774],[-105.008,30.677],[-104.531,29.668],[-103.148,28.985],[-102.683,29.744],[-102.302,29.889],[-101.409,29.766],[-100.669,29.116],[-100.284,28.297],[-99.507,27.574],[-99.462,27.057],[-99.085,26.408],[-98.223,26.075],[-97.139,25.966],[-97.651,24.516],[-97.889,22.625],[-97.658,21.637],[-97.151,20.647],[-96.456,19.869],[-95.852,18.717],[-95.208,18.709],[-94.581,18.19],[-94.207,18.19],[-91.431,18.88],[-90.73,19.376],[-90.478,19.922],[-90.36,21],[-89.786,21.285],[-87.962,21.6],[-86.742,21.164],[-87.444,20.191],[-87.423,19.558],[-87.771,18.406],[-88.304,18.481],[-89.16,17.814]]]},"properties":{"NAME":"Mexico","ISO_A2":"MX"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-88.914,15.894],[-89.237,15.894],[-89.16,17.814],[-88.304,18.481],[-88.092,18.118],[-88.283,17.58],[-88.215,16.967],[-88.914,15.894]]]},"properties":{"NAME":"Belize","ISO_A2":"BZ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-82.898,8.035],[-82.574,9.576],[-82.246,9.014],[-81.539,8.813],[-80.822,8.891],[-79.909,9.308],[-79.551,9.629],[-78.025,9.226],[-77.374,8.665],[-77.201,7.982],[-77.896,7.235],[-78.431,8.077],[-78.303,8.454],[-78.758,8.829],[-79.482,8.998],[-79.774,8.58],[-80.47,8.221],[-79.995,7.503],[-80.873,7.213],[-80.946,7.556],[-81.526,7.711],[-81.711,8.13],[-82.659,8.323],[-82.898,8.035]]]},"properties":{"NAME":"Panama","ISO_A2":"PA"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-60.021,8.558],[-59.816,8.288],[-60.731,7.525],[-60.421,6.942],[-61.205,6.596],[-61.38,5.905],[-60.74,5.202],[-60.613,4.901],[-61.542,4.263],[-62.766,4.021],[-64.064,3.912],[-64.223,3.124],[-63.995,1.958],[-64.081,1.647],[-65.137,1.127],[-66.346,0.759],[-66.875,1.223],[-67.325,2.475],[-67.839,2.886],[-67.305,3.426],[-67.632,3.762],[-67.854,4.576],[-67.844,5.297],[-67.429,6.038],[-67.574,6.266],[-69.444,6.122],[-70.097,6.944],[-70.703,7.1],[-71.184,6.963],[-72.081,7.067],[-72.451,7.44],[-72.387,8.339],[-73.01,9.295],[-72.908,10.452],[-71.971,11.662],[-71.328,11.85],[-71.961,11.591],[-71.576,10.721],[-72.124,9.826],[-71.515,9.049],[-71.056,9.364],[-71.042,9.761],[-71.526,10.545],[-71.458,10.975],[-70.18,11.376],[-70.297,11.872],[-70.018,12.199],[-69.624,11.468],[-68.863,11.453],[-68.418,11.179],[-67.941,10.466],[-66.542,10.633],[-65.868,10.31],[-64.748,10.107],[-64.143,10.48],[-62.72,10.76],[-62.831,10.407],[-61.877,9.824],[-61.439,9.818],[-60.784,9.339],[-60.985,8.571],[-60.021,8.558]]]},"properties":{"NAME":"Venezuela","ISO_A2":"VE"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[34.248,31.211],[34.887,29.49],[34.078,27.801],[33.513,27.959],[34.014,26.612],[35.514,23.977],[35.695,22.932],[36.884,21.996],[33.181,21.995],[31.248,21.994],[28.29,21.995],[24.981,21.995],[24.981,25.205],[24.981,29.181],[24.688,30.144],[24.995,30.785],[24.861,31.38],[25.151,31.656],[27.321,31.381],[29.028,30.827],[30.362,31.509],[31.221,31.58],[32.057,31.08],[33.648,31.117],[34.2,31.314],[34.248,31.211]]]},"properties":{"NAME":"Egypt","ISO_A2":"EG"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[51.979,18.996],[53.09,16.642],[52.293,16.264],[52.228,15.616],[51.368,15.23],[50.554,15.049],[49.078,14.506],[48.681,14.044],[48.017,14.057],[46.701,13.43],[45.666,13.342],[44.868,12.732],[44.191,12.619],[43.473,12.847],[43.249,13.213],[42.699,15.717],[42.789,16.371],[43.209,16.773],[43.165,17.326],[45.165,17.428],[46.323,17.224],[46.97,16.957],[47.428,17.092],[48.162,18.149],[49.129,18.612],[51.979,18.996]]]},"properties":{"NAME":"Yemen","ISO_A2":"YE"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-17.057,20.767],[-16.959,21.333],[-13.015,21.333],[-13.015,23.018],[-12.015,23.495],[-12.015,25.995],[-8.681,26.013],[-8.682,27.285],[-7.297,26.471],[-4.822,24.995],[-6.593,24.994],[-6.219,21.823],[-5.964,19.621],[-5.623,16.528],[-5.353,16.312],[-5.511,15.496],[-9.349,15.496],[-9.836,15.371],[-11.727,15.541],[-11.837,14.893],[-12.264,14.775],[-14.343,16.637],[-16.327,16.475],[-16.542,15.809],[-16.459,16.644],[-16.024,17.96],[-16.205,18.983],[-16.475,19.271],[-16.2,20.215],[-16.391,20.569],[-17.057,20.767]]]},"properties":{"NAME":"Mauritania","ISO_A2":"MR"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.8,2.342],[9.991,2.166],[11.322,2.166],[11.336,0.999],[9.804,0.998],[9.408,1.284],[9.799,1.901],[9.8,2.342]]]},"properties":{"NAME":"Eq. Guinea","ISO_A2":"GQ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-16.561,13.587],[-15.518,13.583],[-15.833,13.157],[-16.754,13.065],[-16.561,13.587]]]},"properties":{"NAME":"Gambia","ISO_A2":"GM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[114.082,22.529],[114.23,22.556],[114.338,22.446],[114.278,22.27],[114.111,22.366],[114.082,22.529]]]},"properties":{"NAME":"Hong Kong","ISO_A2":"HK"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.453,41.903],[12.453,41.904],[12.454,41.904],[12.454,41.903],[12.453,41.903]]]},"properties":{"NAME":"Vatican","ISO_A2":"VA"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-40.876,65.097],[-40.614,63.808],[-41.75,62.844],[-42.423,62.816],[-42.117,62.007],[-42.708,61.292],[-42.826,60.611],[-43.991,60.191],[-44.926,60.327],[-46.376,61.085],[-47.932,60.842],[-49.241,61.608],[-49.31,61.996],[-51.539,63.685],[-50.9,64.407],[-52.156,64.679],[-52.273,65.447],[-53.455,65.961],[-53.096,66.932],[-53.965,67.104],[-53.688,67.812],[-52.616,68.526],[-51.569,68.524],[-50.847,69.626],[-54.019,70.413],[-51.915,71.021],[-52.701,71.526],[-55.514,71.449],[-54.65,72.845],[-56.603,74.245],[-58.167,75.5],[-60.873,76.158],[-63.477,76.377],[-66.487,75.947],[-68.433,76.079],[-70.66,76.802],[-69.062,77.257],[-72.784,78.108],[-72.59,78.521],[-66.117,79.103],[-64.926,80.073],[-67.455,80.343],[-60.787,81.509],[-61.281,81.815],[-51.107,82.51],[-46.008,82.036],[-43.727,82.407],[-46.558,82.893],[-32.491,83.634],[-25.65,83.298],[-21.319,82.606],[-21.026,81.772],[-17.147,81.413],[-13.92,81.812],[-11.639,81.388],[-16.447,80.219],[-19.474,80.26],[-18.955,79.149],[-20.979,78.767],[-21.63,77.998],[-18.324,77.208],[-21.935,76.623],[-19.672,76.127],[-19.427,75.226],[-22.229,74.101],[-20.689,73.886],[-20.543,73.449],[-22.314,73.25],[-25.292,73.474],[-24.342,72.332],[-22.503,71.901],[-21.668,71.401],[-21.73,70.579],[-23.345,70.441],[-24.669,71.272],[-27.506,70.942],[-28.233,70.372],[-25.305,70.413],[-23.56,70.113],[-23.703,69.718],[-26.417,68.659],[-30.008,68.126],[-32.125,68.051],[-33.187,67.558],[-34.643,66.38],[-36.074,65.935],[-39.875,65.506],[-40.876,65.097]]],[[[-52.903,69.345],[-54.993,69.702],[-54.829,70.201],[-53.266,70.202],[-51.998,69.805],[-52.903,69.345]]]]},"properties":{"NAME":"Greenland","ISO_A2":"GL"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[180,-16.149],[180,-16.169],[179.904,-16.718],[178.705,-16.999],[178.917,-16.471],[180,-16.149]]],[[[178.711,-17.992],[178.168,-18.248],[177.336,-18.106],[177.389,-17.641],[178.263,-17.336],[178.711,-17.992]]]]},"properties":{"NAME":"Fiji","ISO_A2":"FJ"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[172.749,-43.28],[172.497,-43.722],[171.346,-44.279],[171.203,-44.906],[170.698,-45.679],[169.635,-46.578],[169.036,-46.682],[167.406,-46.251],[166.762,-46.22],[166.49,-45.808],[167.203,-44.95],[168.34,-44.118],[169.734,-43.566],[171.123,-42.592],[171.489,-41.83],[172.071,-41.414],[172.107,-40.887],[172.689,-40.734],[174.056,-41.425],[174.198,-41.876],[173.287,-42.954],[172.749,-43.28]]],[[[176.954,-39.608],[176.837,-40.178],[175.967,-41.247],[175.33,-41.61],[174.609,-41.292],[175.235,-40.336],[174.967,-39.916],[173.784,-39.393],[174.579,-38.839],[174.85,-37.765],[174.36,-36.631],[173.1,-35.22],[173.888,-35.006],[174.57,-35.594],[174.819,-36.824],[175.882,-36.926],[175.997,-37.632],[177.146,-38.024],[178.278,-37.559],[178.295,-38.54],[177.883,-39.086],[177.065,-39.199],[176.954,-39.608]]]]},"properties":{"NAME":"New Zealand","ISO_A2":"NZ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[167.034,-22.237],[166.478,-22.287],[165.291,-21.577],[164.366,-20.758],[164.496,-20.3],[167.034,-22.237]]]},"properties":{"NAME":"New Caledonia","ISO_A2":"NC"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[44.255,-20.376],[44.46,-19.418],[44.05,-18.427],[43.943,-17.456],[44.854,-16.225],[46.333,-15.63],[47.292,-14.923],[47.482,-15.08],[48.181,-13.747],[48.747,-13.412],[48.985,-12.333],[49.349,-12.299],[49.864,-12.88],[50.143,-13.783],[50.284,-14.879],[50.504,-15.316],[50.242,-15.958],[49.638,-15.545],[49.849,-16.552],[49.431,-17.284],[49.359,-18.424],[48.562,-20.577],[47.901,-22.481],[47.569,-23.853],[47.137,-24.909],[45.492,-25.574],[44.369,-25.257],[44.029,-24.999],[43.656,-24.185],[43.583,-23.076],[43.223,-22.255],[43.473,-21.405],[43.813,-21.224],[44.255,-20.376]]]},"properties":{"NAME":"Madagascar","ISO_A2":"MG"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[126.569,7.301],[126.079,6.843],[125.807,7.351],[125.389,6.768],[125.707,6.15],[125.181,5.798],[124.246,6.187],[123.966,6.821],[124.247,7.404],[123.587,7.839],[122.996,7.467],[122.444,7.609],[122.292,8.01],[122.925,8.15],[123.055,8.505],[123.759,8.607],[124.232,8.213],[124.781,8.949],[125.462,8.985],[125.399,9.681],[125.934,9.492],[126.313,8.956],[126.569,7.301]]],[[[122.297,18.404],[122.157,17.619],[122.529,17.091],[122.204,16.264],[121.578,15.932],[121.379,15.308],[121.732,14.188],[122.471,14.346],[122.501,13.368],[121.725,13.969],[121.279,13.595],[120.587,14.2],[120.83,14.764],[120.09,14.794],[119.879,15.915],[120.402,16.165],[120.334,17.556],[120.611,18.539],[121.107,18.643],[121.613,18.359],[122.297,18.404]]],[[[123.574,10.831],[123.157,9.868],[123.23,9.108],[122.599,9.433],[122.395,9.837],[122.879,10.118],[122.824,10.533],[123.214,10.996],[123.574,10.831]]],[[[123.17,11.481],[122.59,10.699],[122.045,11.017],[122.107,11.658],[123.17,11.481]]],[[[125.713,11.149],[125.214,11.132],[125,11.625],[124.276,12.533],[125.166,12.578],[125.5,12.249],[125.471,11.603],[125.713,11.149]]],[[[121.526,12.704],[121.132,12.242],[120.48,13.301],[120.95,13.53],[121.431,13.224],[121.526,12.704]]]]},"properties":{"NAME":"Philippines","ISO_A2":"PH"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[81.876,7.092],[81.776,6.61],[81.362,6.225],[80.591,5.924],[80.104,6.127],[79.863,6.807],[79.764,7.99],[79.947,8.949],[80.272,9.504],[80.744,9.36],[81.366,8.482],[81.876,7.092]]]},"properties":{"NAME":"Sri Lanka","ISO_A2":"LK"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-68.781,12.098],[-68.945,12.106],[-69.079,12.204],[-69.164,12.307],[-69.072,12.341],[-69.041,12.256],[-68.835,12.171],[-68.781,12.098]]]},"properties":{"NAME":"Curaçao","ISO_A2":"CW"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-69.997,12.578],[-69.88,12.454],[-69.888,12.418],[-70.058,12.537],[-69.997,12.578]]]},"properties":{"NAME":"Aruba","ISO_A2":"AW"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-77.812,26.907],[-77.511,26.87],[-77.27,26.625],[-77.059,26.529],[-77.015,26.316],[-77.256,26.204],[-77.161,26.564],[-77.312,26.595],[-77.517,26.852],[-77.812,26.907]]]},"properties":{"NAME":"Bahamas","ISO_A2":"BS"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-71.803,21.788],[-71.809,21.84],[-71.679,21.842],[-71.631,21.774],[-71.741,21.795],[-71.803,21.788]]]},"properties":{"NAME":"Turks and Caicos Is.","ISO_A2":"TC"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[121.906,24.95],[121.4,23.145],[120.948,22.527],[120.331,22.52],[120.059,23.151],[120.189,23.775],[121.059,25.05],[121.598,25.271],[121.906,24.95]]]},"properties":{"NAME":"Taiwan","ISO_A2":"TW"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[131.66,32.477],[131.345,31.395],[130.924,31.113],[130.222,31.246],[130.171,31.79],[130.641,32.607],[129.855,33.533],[131.73,33.58],[131.982,32.889],[131.66,32.477]]],[[[134.69,33.828],[134.273,33.508],[133.269,33.347],[132.915,32.778],[132.472,32.934],[132.381,33.466],[132.77,33.996],[133.511,33.965],[134.153,34.386],[134.69,33.828]]],[[[133.422,34.445],[132.497,34.362],[132.058,33.895],[130.862,34.113],[131.858,34.715],[132.635,35.441],[134.927,35.641],[135.982,35.644],[135.957,35.973],[136.761,36.871],[138.245,37.184],[139.432,38.169],[140.049,39.505],[139.822,39.961],[140.271,40.812],[141.276,41.353],[142.069,39.54],[141.471,38.436],[140.933,37.889],[141.042,37.377],[140.564,36.283],[140.842,35.742],[140.394,35.197],[139.868,35.013],[137.792,34.639],[136.52,34.681],[135.766,33.482],[135.065,33.886],[134.744,34.767],[133.422,34.445]]],[[[145.767,43.387],[144.742,42.924],[143.639,42.661],[143.253,41.942],[141.726,42.617],[140.145,41.983],[139.877,42.663],[141.44,43.362],[141.792,44.597],[141.586,45.164],[141.96,45.51],[142.981,44.586],[143.783,44.101],[144.831,43.942],[145.322,43.276],[145.767,43.387]]]]},"properties":{"NAME":"Japan","ISO_A2":"JP"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-56.274,46.895],[-56.337,46.954],[-56.396,47.114],[-56.253,47.054],[-56.314,46.976],[-56.274,46.895]]]},"properties":{"NAME":"St. Pierre and Miquelon","ISO_A2":"PM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-14.564,66.385],[-14.823,65.816],[-13.61,65.514],[-13.527,65.055],[-14.51,64.442],[-18.732,63.397],[-20.186,63.544],[-21.963,64.297],[-22.674,65.008],[-22.199,65.432],[-24.197,65.501],[-23.793,66.07],[-22.85,66.467],[-21.319,65.988],[-18.692,66.17],[-17.419,65.994],[-14.564,66.385]]]},"properties":{"NAME":"Iceland","ISO_A2":"IS"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-128.33,-24.324],[-128.304,-24.335],[-128.29,-24.398],[-128.321,-24.401],[-128.35,-24.341],[-128.33,-24.324]]]},"properties":{"NAME":"Pitcairn Is.","ISO_A2":"PN"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-149.183,-17.731],[-149.588,-17.731],[-149.604,-17.526],[-149.354,-17.54],[-149.183,-17.731]]]},"properties":{"NAME":"Fr. Polynesia","ISO_A2":"PF"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[70.549,-49.183],[70.123,-49.714],[69.712,-49.307],[70.549,-49.183]]]},"properties":{"NAME":"Fr. S. Antarctic Lands","ISO_A2":"TF"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[55.402,-4.661],[55.459,-4.618],[55.529,-4.68],[55.517,-4.75],[55.449,-4.678],[55.402,-4.661]]]},"properties":{"NAME":"Seychelles","ISO_A2":"SC"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-157.191,1.764],[-157.449,1.8],[-157.382,1.902],[-157.191,1.764]]]},"properties":{"NAME":"Kiribati","ISO_A2":"KI"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[171.394,7.11],[171.367,7.094],[171.293,7.084],[171.263,7.068],[171.226,7.076],[171.394,7.11]]]},"properties":{"NAME":"Marshall Is.","ISO_A2":"MH"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-61.002,10.699],[-60.996,10.138],[-61.458,10.302],[-61.602,10.748],[-61.002,10.699]]]},"properties":{"NAME":"Trinidad and Tobago","ISO_A2":"TT"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-61.613,12.214],[-61.614,12.08],[-61.756,12.088],[-61.671,12.236],[-61.613,12.214]]]},"properties":{"NAME":"Grenada","ISO_A2":"GD"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-68.212,12.228],[-68.303,12.203],[-68.417,12.257],[-68.4,12.304],[-68.212,12.228]]]},"properties":{"NAME":"Caribbean Netherlands","ISO_A2":"BQ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-61.167,13.146],[-61.271,13.187],[-61.212,13.369],[-61.124,13.308],[-61.167,13.146]]]},"properties":{"NAME":"St. Vin. and Gren.","ISO_A2":"VC"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-59.427,13.16],[-59.608,13.085],[-59.654,13.295],[-59.427,13.16]]]},"properties":{"NAME":"Barbados","ISO_A2":"BB"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-60.887,14.01],[-60.941,13.722],[-61.076,13.89],[-60.887,14.01]]]},"properties":{"NAME":"Saint Lucia","ISO_A2":"LC"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-60.81,14.462],[-61.16,14.667],[-61.002,14.811],[-60.81,14.462]]]},"properties":{"NAME":"Martinique","ISO_A2":"MQ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-61.363,15.202],[-61.489,15.536],[-61.308,15.579],[-61.363,15.202]]]},"properties":{"NAME":"Dominica","ISO_A2":"DM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-61.544,16.285],[-61.534,16.449],[-61.188,16.264],[-61.503,16.213],[-61.544,16.285]]]},"properties":{"NAME":"Guadeloupe","ISO_A2":"GP"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-62.147,16.744],[-62.23,16.728],[-62.202,16.819],[-62.147,16.744]]]},"properties":{"NAME":"Montserrat","ISO_A2":"MS"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-62.65,17.266],[-62.861,17.362],[-62.82,17.416],[-62.72,17.359],[-62.65,17.266]]]},"properties":{"NAME":"St. Kitts and Nevis","ISO_A2":"KN"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-64.559,17.752],[-64.876,17.689],[-64.772,17.793],[-64.559,17.752]]]},"properties":{"NAME":"U.S. Virgin Is.","ISO_A2":"VI"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-62.839,17.882],[-62.857,17.925],[-62.792,17.915],[-62.839,17.882]]]},"properties":{"NAME":"St-Barthélemy","ISO_A2":"BL"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-65.629,18.279],[-66.163,17.929],[-67.215,17.966],[-67.102,18.523],[-65.989,18.463],[-65.629,18.279]]]},"properties":{"NAME":"Puerto Rico","ISO_A2":"PR"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-63.007,18.273],[-63.012,18.22],[-63.086,18.218],[-63.038,18.268],[-63.007,18.273]]]},"properties":{"NAME":"Anguilla","ISO_A2":"AI"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-64.635,18.406],[-64.662,18.44],[-64.56,18.454],[-64.583,18.416],[-64.635,18.406]]]},"properties":{"NAME":"British Virgin Is.","ISO_A2":"VG"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-76.264,18.012],[-77.216,17.717],[-78.075,18.198],[-77.902,18.519],[-76.895,18.409],[-76.264,18.012]]]},"properties":{"NAME":"Jamaica","ISO_A2":"JM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-81.136,19.355],[-81.135,19.291],[-81.303,19.309],[-81.286,19.368],[-81.136,19.355]]]},"properties":{"NAME":"Cayman Is.","ISO_A2":"KY"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-64.676,32.389],[-64.708,32.352],[-64.698,32.326],[-64.755,32.293],[-64.736,32.344],[-64.676,32.389]]]},"properties":{"NAME":"Bermuda","ISO_A2":"BM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[73.735,-53.112],[73.473,-53.189],[73.329,-53.025],[73.564,-53.017],[73.735,-53.112]]]},"properties":{"NAME":"Heard I. and McDonald Is.","ISO_A2":"HM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.722,-15.909],[-5.663,-15.98],[-5.764,-16.016],[-5.77,-15.945],[-5.722,-15.909]]]},"properties":{"NAME":"Saint Helena","ISO_A2":"SH"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[55.788,-21.103],[55.355,-21.275],[55.303,-20.905],[55.788,-21.103]]]},"properties":{"NAME":"Réunion","ISO_A2":"RE"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[57.796,-20.223],[57.672,-20.48],[57.358,-20.427],[57.532,-20.025],[57.796,-20.223]]]},"properties":{"NAME":"Mauritius","ISO_A2":"MU"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[45.201,-12.723],[45.213,-12.852],[45.132,-12.989],[45.087,-12.76],[45.201,-12.723]]]},"properties":{"NAME":"Mayotte","ISO_A2":"YT"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[43.467,-11.822],[43.263,-11.818],[43.277,-11.38],[43.467,-11.822]]]},"properties":{"NAME":"Comoros","ISO_A2":"KM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.681,0.407],[6.74,0.219],[6.516,0.034],[6.462,0.222],[6.681,0.407]]]},"properties":{"NAME":"São Tomé and Principe","ISO_A2":"ST"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-23.457,15.024],[-23.677,14.936],[-23.786,15.175],[-23.697,15.266],[-23.457,15.024]]]},"properties":{"NAME":"Cabo Verde","ISO_A2":"CV"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.548,35.89],[14.528,35.801],[14.343,35.881],[14.428,35.966],[14.548,35.89]]]},"properties":{"NAME":"Malta","ISO_A2":"MT"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.083,49.26],[-2.025,49.171],[-2.169,49.178],[-2.242,49.248],[-2.083,49.26]]]},"properties":{"NAME":"Jersey","ISO_A2":"JE"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.58,49.494],[-2.534,49.436],[-2.669,49.431],[-2.58,49.494]]]},"properties":{"NAME":"Guernsey","ISO_A2":"GG"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.612,54.057],[-4.71,54.221],[-4.442,54.404],[-4.312,54.287],[-4.612,54.057]]]},"properties":{"NAME":"Isle of Man","ISO_A2":"IM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[20.209,60.225],[20.006,60.094],[19.748,60.101],[19.683,60.264],[20.209,60.225]]]},"properties":{"NAME":"Ã…land","ISO_A2":"AX"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.223,62.171],[-6.856,62.148],[-6.716,62.034],[-6.857,61.995],[-7.031,62.117],[-7.223,62.171]]]},"properties":{"NAME":"Faeroe Is.","ISO_A2":"FO"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[96.863,-12.182],[96.845,-12.198],[96.831,-12.18],[96.823,-12.151],[96.822,-12.127],[96.828,-12.127],[96.835,-12.161],[96.836,-12.182],[96.848,-12.187],[96.863,-12.182]]]},"properties":{"NAME":"Cocos Is.","ISO_A2":"CC"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[72.468,-7.384],[72.481,-7.391],[72.433,-7.432],[72.427,-7.404],[72.433,-7.347],[72.426,-7.323],[72.379,-7.297],[72.371,-7.27],[72.433,-7.316],[72.439,-7.34],[72.433,-7.425],[72.468,-7.384]]]},"properties":{"NAME":"Br. Indian Ocean Ter.","ISO_A2":"IO"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[103.961,1.391],[103.844,1.269],[103.648,1.308],[103.805,1.449],[103.961,1.391]]]},"properties":{"NAME":"Singapore","ISO_A2":"SG"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[167.984,-29.018],[167.985,-29.059],[167.926,-29.066],[167.927,-28.997],[167.984,-29.018]]]},"properties":{"NAME":"Norfolk Island","ISO_A2":"NF"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-159.798,-21.186],[-159.743,-21.202],[-159.743,-21.254],[-159.833,-21.245],[-159.798,-21.186]]]},"properties":{"NAME":"Cook Is.","ISO_A2":"CK"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-175.066,-21.124],[-175.149,-21.268],[-175.326,-21.174],[-175.25,-21.111],[-175.155,-21.172],[-175.066,-21.124]]]},"properties":{"NAME":"Tonga","ISO_A2":"TO"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-178.142,-14.244],[-178.047,-14.319],[-178.147,-14.31],[-178.142,-14.244]]]},"properties":{"NAME":"Wallis and Futuna Is.","ISO_A2":"WF"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-172.201,-13.593],[-172.523,-13.805],[-172.75,-13.578],[-172.366,-13.463],[-172.201,-13.593]]]},"properties":{"NAME":"Samoa","ISO_A2":"WS"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[159.859,-8.511],[158.846,-7.973],[159.403,-7.982],[159.842,-8.326],[159.859,-8.511]]]},"properties":{"NAME":"Solomon Is.","ISO_A2":"SB"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[179.191,-8.542],[179.204,-8.519],[179.218,-8.521],[179.191,-8.542]]]},"properties":{"NAME":"Tuvalu","ISO_A2":"TV"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[73.546,4.243],[73.538,4.183],[73.512,4.186],[73.546,4.243]]]},"properties":{"NAME":"Maldives","ISO_A2":"MV"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[166.939,-0.49],[166.958,-0.518],[166.916,-0.548],[166.913,-0.5],[166.939,-0.49]]]},"properties":{"NAME":"Nauru","ISO_A2":"NR"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[158.291,6.938],[158.194,6.793],[158.126,6.907],[158.291,6.938]]]},"properties":{"NAME":"Micronesia","ISO_A2":"FM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-35.909,-54.687],[-37.388,-54.148],[-36.622,-54.12],[-35.909,-54.687]]]},"properties":{"NAME":"S. Geo. and the Is.","ISO_A2":"GS"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[3.457,-54.39],[3.468,-54.441],[3.351,-54.456],[3.377,-54.391],[3.457,-54.39]]]},"properties":{"NAME":"Bouvet I.","ISO_A2":"BV"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-57.816,-51.694],[-58.604,-52.002],[-59.581,-51.911],[-59.084,-51.406],[-57.906,-51.377],[-57.816,-51.694]]]},"properties":{"NAME":"Falkland Is.","ISO_A2":"FK"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[167.141,-15.536],[166.793,-15.656],[166.523,-14.832],[167.057,-15.002],[167.141,-15.536]]]},"properties":{"NAME":"Vanuatu","ISO_A2":"VU"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-169.851,-18.965],[-169.794,-19.047],[-169.899,-19.143],[-169.95,-19.087],[-169.851,-18.965]]]},"properties":{"NAME":"Niue","ISO_A2":"NU"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-170.591,-14.265],[-170.755,-14.367],[-170.831,-14.319],[-170.661,-14.252],[-170.591,-14.265]]]},"properties":{"NAME":"American Samoa","ISO_A2":"AS"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[134.648,7.719],[134.594,7.421],[134.488,7.47],[134.648,7.719]]]},"properties":{"NAME":"Palau","ISO_A2":"PW"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[144.886,13.64],[144.907,13.517],[144.808,13.446],[144.654,13.439],[144.886,13.64]]]},"properties":{"NAME":"Guam","ISO_A2":"GU"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.788,15.267],[145.739,15.137],[145.698,15.203],[145.788,15.267]]]},"properties":{"NAME":"N. Mariana Is.","ISO_A2":"MP"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[50.552,26.194],[50.615,26.111],[50.604,25.855],[50.46,25.985],[50.453,26.15],[50.552,26.194]]]},"properties":{"NAME":"Bahrain","ISO_A2":"BH"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[105.704,-10.431],[105.698,-10.529],[105.628,-10.509],[105.704,-10.431]]]},"properties":{"NAME":"Christmas I.","ISO_A2":"CX"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-172.486,-8.565],[-172.495,-8.555],[-172.492,-8.552],[-172.483,-8.563],[-172.486,-8.565]]]},"properties":{"NAME":"Tokelau","ISO_A2":"TK"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[113.559,22.163],[113.567,22.123],[113.547,22.105],[113.534,22.161],[113.559,22.163]]]},"properties":{"NAME":"Macao","ISO_A2":"MO"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-61.884,17.049],[-61.825,17.169],[-61.686,17.029],[-61.884,17.049]]]},"properties":{"NAME":"Antigua and Barbuda","ISO_A2":"AG"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[131.536,-31.606],[130.157,-31.574],[128.99,-31.691],[127.289,-32.273],[126.186,-32.233],[124.117,-33.122],[123.567,-33.884],[122.56,-33.959],[121.533,-33.82],[120.002,-33.926],[119.382,-34.44],[118.932,-34.446],[118.12,-34.987],[116.465,-35.001],[115.018,-34.262],[114.957,-33.682],[115.667,-33.288],[115.68,-31.649],[114.975,-30.214],[114.979,-29.48],[114.531,-28.522],[114.166,-28.107],[114.013,-27.315],[113.591,-26.676],[114.104,-26.448],[114.155,-25.79],[113.385,-24.249],[113.738,-23.527],[113.647,-22.578],[114.011,-21.86],[114.647,-21.843],[115.455,-21.514],[115.937,-21.059],[116.743,-20.617],[117.354,-20.728],[118.136,-20.362],[120.238,-19.907],[121.194,-19.472],[122.22,-18.197],[122.276,-17.089],[123.151,-16.808],[123.4,-17.329],[123.837,-17.132],[123.652,-16.36],[124.378,-16.215],[124.403,-15.559],[125.144,-14.728],[125.658,-14.36],[126.569,-14.195],[126.953,-13.724],[128.175,-14.698],[129.612,-14.943],[129.358,-14.409],[129.969,-13.53],[130.13,-12.941],[131,-12.171],[132.046,-12.307],[133.141,-11.675],[135.07,-12.26],[135.739,-11.942],[136.026,-12.311],[136.691,-12.283],[136.637,-12.955],[135.883,-13.326],[135.903,-14.136],[135.391,-14.74],[136.768,-15.901],[137.746,-16.252],[138.184,-16.697],[139.037,-16.916],[139.274,-17.348],[140,-17.706],[140.833,-17.451],[141.425,-16.082],[141.666,-15.011],[141.474,-13.776],[141.691,-13.26],[141.666,-12.441],[141.948,-11.896],[142.175,-10.93],[142.742,-10.975],[142.873,-11.851],[143.434,-12.613],[143.534,-13.766],[143.952,-14.499],[144.678,-14.556],[145.277,-14.947],[145.4,-16.443],[146.071,-17.392],[146.024,-18.263],[146.447,-19.06],[148.567,-20.06],[148.74,-20.719],[149.231,-21.09],[149.609,-22.244],[150.826,-22.698],[150.857,-23.52],[152.405,-24.749],[153.122,-25.934],[153.114,-27.242],[153.591,-28.268],[153.606,-28.867],[152.988,-30.735],[152.935,-31.483],[152.522,-32.427],[151.671,-33.061],[150.163,-35.957],[149.904,-36.928],[149.985,-37.496],[149.479,-37.786],[148.306,-37.823],[147.589,-38.081],[146.879,-38.644],[145.916,-38.896],[144.983,-37.899],[143.537,-38.858],[142.398,-38.367],[141.434,-38.375],[140.36,-37.882],[139.742,-37.181],[139.854,-36.622],[139.475,-35.896],[138.531,-35.646],[138.536,-34.741],[138.038,-34.308],[137.454,-34.164],[137.225,-33.653],[136.369,-34.073],[135.741,-34.861],[135.43,-34.713],[135.19,-33.893],[134.273,-32.588],[133.586,-32.103],[132.234,-32.033],[131.536,-31.606]]],[[[147.999,-43.23],[147.586,-42.821],[146.711,-43.629],[146.031,-43.483],[145.264,-42.595],[145.207,-41.967],[144.606,-40.997],[144.689,-40.705],[146.424,-41.166],[147.445,-41.008],[148.269,-41.152],[148.327,-41.916],[147.983,-42.319],[147.999,-43.23]]],[[[131.537,-11.413],[130.98,-11.926],[130.497,-11.65],[131.274,-11.19],[131.537,-11.413]]]]},"properties":{"NAME":"Australia","ISO_A2":"AU"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.995,50.75],[6.117,50.12],[5.791,49.538],[4.023,50.338],[2.787,50.723],[2.522,51.088],[3.349,51.375],[4.221,51.368],[4.261,51.369],[4.731,51.486],[5.841,51.139],[5.995,50.75]]]},"properties":{"NAME":"Belgium","ISO_A2":"BE"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[17.581,42.942],[15.717,44.786],[15.78,45.16],[16.933,45.279],[19.016,44.866],[19.177,44.287],[19.619,44.036],[19.195,43.533],[18.453,42.993],[18.437,42.559],[17.653,42.891],[17.581,42.942]]]},"properties":{"NAME":"Bosnia and Herzegovina","ISO_A2":"BA"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-75.095,19.897],[-76.248,19.991],[-77.737,19.856],[-77.113,20.512],[-78.066,20.712],[-78.495,21.048],[-78.767,21.64],[-79.249,21.552],[-80.992,22.054],[-81.824,22.189],[-81.878,22.68],[-82.633,22.68],[-83.415,22.186],[-83.925,22.172],[-84.021,22.679],[-83.208,23.003],[-82.033,23.201],[-80.025,22.947],[-79.342,22.413],[-78.782,22.391],[-77.508,21.862],[-75.784,20.746],[-74.998,20.701],[-74.267,20.068],[-75.095,19.897]]]},"properties":{"NAME":"Cuba","ISO_A2":"CU"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[33.781,34.976],[32.666,34.652],[32.372,35.041],[32.92,35.398],[33.781,34.976]]]},"properties":{"NAME":"Cyprus","ISO_A2":"CY"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[39.986,43.389],[40.652,43.539],[41.551,43.226],[42.752,43.177],[43.801,42.746],[44.859,42.76],[45.948,42.023],[46.431,41.89],[46.193,41.61],[45.002,41.29],[43.44,41.107],[42.958,41.437],[41.521,41.514],[41.774,41.822],[41.5,42.641],[39.986,43.389]]]},"properties":{"NAME":"Georgia","ISO_A2":"GE"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[91.633,27.759],[92.628,27.916],[93.446,28.672],[94.777,29.167],[95.511,29.132],[96.142,29.368],[96.966,28.33],[97.323,28.217],[96.759,27.342],[96.143,27.258],[95.119,26.604],[95.14,26.03],[94.608,25.395],[94.709,25.026],[93.998,23.917],[93.457,23.96],[93.375,23.13],[93.08,22.773],[93.169,22.247],[92.576,21.978],[92.357,23.289],[92.151,23.732],[91.537,22.982],[91.141,23.612],[91.363,24.1],[92.108,24.406],[92.458,24.953],[92.002,25.183],[90.365,25.15],[89.795,25.374],[89.83,25.908],[88.656,26.415],[88.074,25.908],[88.431,25.173],[88.022,24.646],[88.738,24.287],[88.54,23.65],[89.06,22.13],[88.762,21.556],[87.97,21.836],[87.201,21.552],[86.844,21.082],[87.004,20.657],[86.269,19.91],[85.549,19.691],[84.872,19.22],[84.077,18.272],[83.239,17.593],[82.299,17.03],[82.307,16.58],[81.317,16.367],[80.999,15.847],[80.263,15.675],[80.055,15.014],[80.333,13.198],[79.752,11.577],[79.864,10.379],[79.398,10.325],[78.957,9.275],[78.178,8.861],[78.063,8.373],[77.511,8.076],[76.996,8.368],[76.544,8.913],[76.178,10.171],[75.531,11.694],[74.818,12.862],[74.615,13.836],[73.886,15.435],[73.447,16.069],[73.235,17.302],[72.65,19.842],[72.945,20.77],[72.606,21.267],[72.105,21.205],[70.982,20.71],[70.058,21.149],[68.994,22.204],[70.178,22.562],[69.239,22.842],[68.552,23.26],[68.183,23.842],[68.726,24.289],[69.972,24.165],[71.064,24.683],[70.647,25.431],[70.065,25.98],[70.158,26.53],[69.465,26.808],[69.576,27.188],[70.342,28.011],[70.832,27.701],[71.861,27.95],[72.382,28.784],[72.902,29.023],[73.37,29.927],[74.33,30.9],[74.489,31.711],[75.024,32.466],[74.002,33.178],[73.998,34.197],[74.286,34.769],[75.777,34.504],[76.553,34.726],[77.049,35.11],[76.777,35.646],[77.883,35.431],[78.73,34.079],[78.781,33.553],[79.5,32.747],[78.943,32.346],[78.738,31.335],[79.198,31.325],[80.253,30.565],[80.996,30.197],[80.369,29.758],[80.036,28.837],[81.146,28.372],[82.752,27.495],[84.577,27.329],[84.802,27.014],[85.822,26.572],[87.326,26.353],[88.074,26.454],[87.971,27.103],[88.118,27.861],[88.61,28.106],[88.892,27.316],[88.955,26.913],[89.822,26.701],[92.036,26.855],[91.975,27.472],[91.633,27.759]]]},"properties":{"NAME":"India","ISO_A2":"IN"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[42.357,37.11],[42.772,37.375],[44.766,37.142],[44.991,36.534],[45.814,35.809],[46.165,35.19],[45.501,34.592],[45.659,33.682],[46.273,32.959],[47.396,32.337],[47.831,31.762],[47.673,30.995],[48.531,29.961],[47.948,29.994],[47.11,29.961],[46.532,29.096],[44.692,29.202],[42.075,31.08],[40.424,31.921],[39.146,32.118],[38.775,33.372],[40.69,34.331],[41.196,34.768],[41.415,36.527],[42.357,37.11]]]},"properties":{"NAME":"Iraq","ISO_A2":"IQ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[87.324,49.085],[86.565,48.527],[85.784,48.408],[85.515,47.92],[85.499,47.052],[84.916,46.851],[83.15,47.212],[82.291,45.533],[80.062,45.019],[80.773,43.113],[80.368,43.028],[80.21,42.19],[78.496,42.876],[75.771,42.926],[75.179,42.85],[74.259,43.216],[73.634,43.062],[73.41,42.59],[71.848,42.834],[71.003,42.564],[70.948,42.248],[69.044,41.379],[68.462,40.585],[67.937,41.2],[66.688,41.199],[66.504,41.993],[66.017,41.998],[66.101,42.99],[64.957,43.697],[64.427,43.547],[63.208,43.627],[62.026,43.481],[61.036,44.383],[58.531,45.559],[55.976,44.994],[55.978,41.322],[55.43,41.291],[54.738,42.048],[54.047,42.345],[52.979,42.127],[52.438,41.749],[52.745,42.657],[51.933,42.835],[50.299,44.655],[50.971,44.847],[51.397,45.333],[52.567,45.401],[53.087,46.02],[53.188,46.718],[52.239,46.807],[51.187,47.117],[49.227,46.328],[48.525,47.41],[48.044,47.77],[47.051,47.975],[46.479,48.41],[46.9,49.82],[47.625,50.441],[48.418,49.812],[48.886,50.02],[48.673,50.58],[50.325,51.303],[50.582,51.635],[53.61,51.388],[55.66,50.53],[56.508,51.066],[58.595,51.023],[59.775,50.534],[61.372,50.782],[61.474,51.426],[60.138,51.889],[61.04,52.335],[61.194,54.018],[62.551,54.027],[68.166,54.956],[68.723,55.353],[70.666,55.309],[71.18,54.727],[71.182,54.102],[72.067,54.222],[74.214,53.597],[75.64,54.099],[76.526,53.961],[77.867,53.272],[79.99,50.788],[80.683,51.302],[82.073,50.716],[83.434,50.993],[84.25,50.26],[84.976,50.075],[85.263,49.582],[86.112,49.52],[86.61,49.796],[87.324,49.085]]]},"properties":{"NAME":"Kazakhstan","ISO_A2":"KZ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[124.37,40.098],[124.896,40.484],[126.008,40.899],[126.887,41.785],[127.269,41.505],[128.186,41.404],[128.035,41.994],[128.964,42.089],[129.703,42.442],[130.531,42.53],[130.7,42.295],[129.691,41.65],[129.753,40.91],[128.302,40.033],[127.521,39.747],[127.378,39.371],[128.365,38.624],[128.04,38.304],[127.157,38.307],[126.667,37.828],[125.013,37.906],[124.884,38.355],[125.432,39.301],[124.37,40.098]]]},"properties":{"NAME":"North Korea","ISO_A2":"KP"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[34.481,31.583],[34.248,31.211],[34.2,31.314],[34.481,31.583]]],[[[35.458,31.492],[34.946,32.177],[35.561,32.385],[35.458,31.492]]]]},"properties":{"NAME":"Palestine","ISO_A2":"PS"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[140.977,-9.106],[140.977,-6.897],[140.976,-4.596],[140.974,-2.601],[142.182,-3.08],[143.478,-3.421],[143.996,-3.793],[144.513,-3.818],[145.812,-4.861],[145.727,-5.422],[147.449,-5.962],[147.854,-6.691],[146.977,-6.74],[147.162,-7.391],[148.114,-8.055],[148.559,-9.032],[149.183,-9.368],[149.939,-10.062],[149.461,-10.352],[147.762,-10.06],[146.576,-8.822],[146.103,-8.1],[144.431,-7.612],[143.592,-8.242],[142.98,-8.336],[143.406,-8.962],[142.653,-9.33],[140.977,-9.106]]],[[[152.418,-4.345],[152.099,-5.456],[150.465,-6.274],[149.629,-6.299],[148.386,-5.775],[148.43,-5.445],[149.39,-5.587],[150.719,-5.534],[151.696,-4.819],[151.54,-4.177],[152.418,-4.345]]],[[[155.933,-6.641],[155.361,-6.746],[154.756,-5.948],[155.069,-5.552],[155.933,-6.641]]]]},"properties":{"NAME":"Papua New Guinea","ISO_A2":"PG"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.751,41.969],[-8.049,41.816],[-6.657,41.933],[-6.206,41.57],[-6.818,41.054],[-6.88,40.009],[-7.314,39.457],[-7.414,37.193],[-8.627,37.121],[-8.906,38.512],[-9.492,38.708],[-9.09,39.579],[-8.655,40.994],[-8.751,41.969]]]},"properties":{"NAME":"Portugal","ISO_A2":"PT"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[22.345,42.313],[21.564,42.246],[20.839,43.17],[20.345,42.827],[19.195,43.533],[19.619,44.036],[19.177,44.287],[19.016,44.866],[18.901,45.931],[20.243,46.108],[20.761,45.493],[21.493,45.145],[21.656,44.688],[22.32,44.685],[22.692,44.228],[22.349,43.808],[22.935,43.086],[22.345,42.313]]]},"properties":{"NAME":"Serbia","ISO_A2":"RS"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[41.885,3.977],[42.79,4.286],[43.119,4.648],[43.969,4.954],[44.942,4.911],[46.424,6.497],[47.979,7.997],[46.979,7.997],[44.024,8.986],[43.419,9.413],[42.836,10.208],[42.924,10.999],[43.241,11.488],[44.274,10.457],[44.962,10.416],[45.803,10.875],[46.448,10.693],[47.367,11.173],[48.904,11.248],[50.268,11.589],[50.798,11.989],[51.121,11.505],[51.138,10.677],[50.927,10.328],[50.84,9.456],[50.29,8.487],[49.842,7.963],[49.036,6.144],[47.948,4.457],[46.027,2.438],[44.55,1.559],[43.468,0.621],[42.081,-0.863],[41.535,-1.696],[40.98,-0.871],[40.965,2.814],[41.885,3.977]]]},"properties":{"NAME":"Somalia","ISO_A2":"SO"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[126.667,37.828],[127.157,38.307],[128.04,38.304],[128.365,38.624],[129.331,37.282],[129.471,36.772],[129.455,35.513],[129.194,35.156],[128.019,34.999],[127.316,34.445],[126.271,34.642],[126.362,35.269],[126.733,35.886],[126.336,36.825],[126.755,37.049],[126.667,37.828]]]},"properties":{"NAME":"South Korea","ISO_A2":"KR"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[20.209,78.638],[18.993,78.467],[18.194,77.49],[16.337,76.616],[14.374,77.199],[13.856,78.213],[11.643,78.747],[10.708,79.561],[16.616,79.985],[18.882,79.441],[20.209,78.638]]],[[[27.171,80.073],[25.646,79.398],[22.926,79.223],[18.784,79.723],[18.008,80.19],[24.376,80.332],[27.171,80.073]]]]},"properties":{"NAME":"Svalbard and Jan Mayen","ISO_A2":"SJ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.758,32.744],[35.821,33.407],[36.604,34.199],[35.97,34.65],[35.778,35.541],[35.911,35.918],[36.588,36.325],[36.659,36.828],[37.446,36.634],[38.19,36.906],[38.664,36.72],[39.765,36.742],[40.709,37.1],[42.357,37.11],[41.415,36.527],[41.196,34.768],[40.69,34.331],[38.775,33.372],[36.819,32.317],[35.758,32.744]]]},"properties":{"NAME":"Syria","ISO_A2":"SY"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[33.904,-1.003],[35.416,-1.801],[37.645,-3.046],[37.771,-3.655],[39.191,-4.678],[38.778,-6.031],[38.852,-6.349],[39.465,-6.858],[39.28,-8.309],[39.644,-9.189],[39.779,-9.93],[40.437,-10.475],[40.008,-10.811],[38.492,-11.413],[37.875,-11.319],[37.428,-11.723],[37.044,-11.596],[36.2,-11.702],[34.965,-11.574],[34.593,-11.016],[34.483,-9.946],[34.013,-9.477],[33.404,-9.605],[32.921,-9.408],[30.96,-8.55],[30.752,-8.194],[30.37,-7.31],[29.739,-6.652],[29.476,-6.002],[29.594,-5.62],[29.321,-4.836],[29.404,-4.45],[30.003,-4.272],[30.832,-3.173],[30.416,-2.852],[30.555,-2.401],[30.834,-2.345],[30.831,-1.594],[30.472,-1.067],[30.828,-1.003],[33.904,-1.003]]]},"properties":{"NAME":"Tanzania","ISO_A2":"TZ"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-6.27,54.098],[-7.31,54.115],[-8.156,54.439],[-7.247,55.069],[-6.476,55.249],[-5.537,54.657],[-6.27,54.098]]],[[[-2.665,51.617],[-3.539,51.399],[-5.289,51.917],[-4.197,52.279],[-4.152,53.228],[-3.058,53.435],[-3.018,53.932],[-3.964,54.772],[-5.171,55.009],[-4.618,55.496],[-5.581,55.758],[-5.599,57.279],[-4.988,58.628],[-3.204,58.661],[-3.492,57.713],[-2.108,57.705],[-1.759,57.474],[-2.964,56.206],[-1.631,55.585],[-1.275,54.748],[-0.563,54.477],[0.33,53.086],[1.275,52.929],[1.771,52.486],[0.924,51.588],[1.357,51.131],[0.271,50.747],[-1.317,50.8],[-1.984,50.597],[-2.865,50.734],[-3.646,50.226],[-4.792,50.595],[-4.152,51.212],[-3.058,51.208],[-2.665,51.617]]]]},"properties":{"NAME":"United Kingdom","ISO_A2":"GB"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[166.619,19.282],[166.638,19.286],[166.644,19.276],[166.619,19.282]]]},"properties":{"NAME":"United States Minor Outlying Islands","ISO_A2":"UM"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[7.195,53.245],[7.048,52.365],[6.193,51.509],[5.995,50.75],[5.841,51.139],[4.731,51.486],[4.261,51.369],[4.142,52.006],[4.745,52.968],[5.981,53.406],[7.195,53.245]]]},"properties":{"NAME":"Netherlands","ISO_A2":"NL"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-180,-85.05],[-180,-77.75],[-166.74,-78.45],[-163.64,-78.73],[-162.56,-78.38],[-158.64,-77.88],[-158.22,-77.07],[-154.26,-77.06],[-152.03,-77.28],[-150.61,-76.52],[-148.3,-76.06],[-148.39,-75.74],[-144.45,-75.34],[-141.416,-75.392],[-140.06,-75.08],[-137.02,-75.02],[-136.692,-74.683],[-128.254,-74.152],[-127.09,-73.189],[-123.06,-73.67],[-110.49,-74.25],[-108.94,-74.99],[-106.63,-74.59],[-104.24,-75.1],[-101.94,-75.02],[-103.074,-73.843],[-103.162,-71.945],[-95.647,-71.76],[-95.58,-72.47],[-89.77,-72.61],[-85.81,-73.05],[-85.08,-73.52],[-82.08,-73.89],[-79.08,-72.282],[-74.224,-72.945],[-72.24,-72.71],[-75.916,-71.719],[-73.08,-71.27],[-73.27,-70.83],[-76.75,-71.11],[-72.598,-70.066],[-72.18,-68.927],[-70.14,-68.87],[-69.09,-70.12],[-68.27,-69.28],[-66.85,-68.98],[-69.104,-67.517],[-67.852,-66.627],[-64.94,-65.92],[-63.831,-64.548],[-56.03,-63.005],[-57.085,-64.444],[-59.96,-64.37],[-61.7,-65.52],[-60.293,-66.054],[-60.65,-68.95],[-61.75,-69.5],[-60.53,-70.37],[-59.678,-72.594],[-60.996,-74.747],[-51.38,-76.77],[-49.16,-77.6],[-45.59,-77.85],[-44.1,-78.16],[-40.75,-77.83],[-35.91,-78.2],[-33.71,-77.31],[-31.91,-77.15],[-28.86,-76.35],[-26.67,-76.11],[-27.74,-75.62],[-25.63,-75.22],[-25.884,-74.032],[-23.72,-73.84],[-21.237,-73.916],[-19.468,-72.722],[-12.393,-71.75],[-12.36,-71.35],[-8.41,-70.5],[-3.19,-70.31],[-1.538,-70.058],[-0.835,-69.473],[1.143,-69.991],[10.21,-69.9],[12.79,-70.07],[13.27,-69.66],[14.81,-69.45],[15.61,-69.83],[17.73,-69.65],[19.08,-69.99],[20.457,-69.688],[22.214,-70.103],[27.839,-69.915],[30.388,-69.053],[32.57,-69.15],[32.871,-68.689],[34.827,-68.752],[37.024,-69.504],[37.947,-69.256],[39.177,-69.862],[39.86,-68.85],[42.67,-68.14],[46.22,-67.66],[46.43,-67.28],[48.44,-67.58],[48.384,-66.783],[50.251,-67.016],[50.12,-66.39],[52.05,-65.99],[53.75,-65.84],[55.61,-66.02],[58.865,-67.238],[62.64,-67.66],[63.54,-67.5],[68.34,-67.9],[69.57,-67.74],[70.39,-68.7],[72.86,-68.49],[75.059,-69.511],[77.827,-68.998],[78.442,-68.286],[81.37,-67.79],[81.7,-67.29],[84.41,-66.97],[83.87,-66.64],[86.38,-66.27],[89.54,-66.87],[91.98,-66.5],[94.33,-66.64],[95.56,-66.17],[95.51,-65.25],[97.075,-64.961],[96.86,-65.71],[100.789,-65.403],[102.876,-65.875],[108.02,-66.58],[108.77,-66.94],[110.94,-66.05],[113.22,-65.76],[114.741,-66.382],[116.51,-66.58],[117.48,-67],[121.641,-66.653],[126.21,-66.25],[127.37,-66.55],[127.84,-67.02],[129.31,-67],[130.23,-66.1],[131.79,-66.25],[134.66,-65.98],[136.55,-66.42],[137.44,-66.35],[142.405,-66.921],[143.77,-66.88],[145.82,-67.27],[147.458,-68.073],[149.128,-68.391],[153.83,-68.27],[155.5,-68.927],[159.15,-69.32],[160.928,-70.103],[167.73,-70.8],[168.23,-71.18],[170.98,-71.84],[169.77,-72.18],[170.28,-72.59],[169.08,-73.485],[166.729,-73.646],[164.05,-74.63],[162.33,-76.1],[164.817,-77.952],[166.685,-77.201],[180,-77.75],[180,-85.05],[-180,-85.05]]]},"properties":{"NAME":"Antarctica","ISO_A2":"AQ"}} +]} \ No newline at end of file diff --git a/src/metabase/api/activity.clj b/src/metabase/api/activity.clj index 187eca09980338ec448a6ded46d715f03ca8dd3c..cbf2fb4ae4da380a07004b042b518d03088e2a3c 100644 --- a/src/metabase/api/activity.clj +++ b/src/metabase/api/activity.clj @@ -17,7 +17,7 @@ (:topic activity))) (defn- activities->referenced-objects - "Get a map of model name to a set of referenced IDs in these ACTIVITIES. + "Get a map of model name to a set of referenced IDs in these `activities`. (activities->referenced-objects <some-activities>) -> {\"dashboard\" #{41 42 43}, \"card\" #{100 101}, ...}" [activities] @@ -48,7 +48,7 @@ nil)}))) ; don't care about other models (defn- add-model-exists-info - "Add `:model_exists` keys to ACTIVITIES, and `:exists` keys to nested dashcards where appropriate." + "Add `:model_exists` keys to `activities`, and `:exists` keys to nested dashcards where appropriate." [activities] (let [existing-objects (-> activities activities->referenced-objects referenced-objects->existing-objects)] (for [{:keys [model model_id], :as activity} activities] diff --git a/src/metabase/api/dataset.clj b/src/metabase/api/dataset.clj index e0a2158dfde71bcdec0f5e38e97c04174993a0bc..76228a96597e66286185109e89b5e851d622bfe9 100644 --- a/src/metabase/api/dataset.clj +++ b/src/metabase/api/dataset.clj @@ -5,6 +5,7 @@ [clojure.string :as str] [clojure.tools.logging :as log] [compojure.core :refer [POST]] + [java-time :as t] [medley.core :as m] [metabase.api.common :as api] [metabase.mbql.schema :as mbql.s] @@ -19,7 +20,7 @@ [util :as qputil]] [metabase.query-processor.middleware.constraints :as constraints] [metabase.util - [date :as du] + [date-2 :as u.date] [export :as ex] [i18n :refer [trs tru]] [schema :as su]] @@ -113,7 +114,8 @@ (maybe-modify-date-values cols rows)) :headers {"Content-Type" (str (:content-type export-conf) "; charset=utf-8") "Content-Disposition" (format "attachment; filename=\"query_result_%s.%s\"" - (du/date->iso-8601) (:ext export-conf))}} + (u.date/format (t/zoned-date-time)) + (:ext export-conf))}} ;; failed query, send error message {:status (if (qp.error-type/server-error? error-type) 500 diff --git a/src/metabase/api/geojson.clj b/src/metabase/api/geojson.clj index 076ea0294f5bee88d0131d30feb1b0ad9e86b9dd..3d55d7197a5ee2405e13a54c34b9c0f17f23eba0 100644 --- a/src/metabase/api/geojson.clj +++ b/src/metabase/api/geojson.clj @@ -97,8 +97,8 @@ (def ^:private ^:const builtin-geojson {:us_states {:name "United States" :url "app/assets/geojson/us-states.json" - :region_key "name" - :region_name "name" + :region_key "STATE" + :region_name "NAME" :builtin true} :world_countries {:name "World" :url "app/assets/geojson/world.json" diff --git a/src/metabase/api/table.clj b/src/metabase/api/table.clj index df770138ba512033867de8c785fd642c7a857de8..d94081dff7d51b4d0942d4e3f0c79222c750d494 100644 --- a/src/metabase/api/table.clj +++ b/src/metabase/api/table.clj @@ -7,10 +7,10 @@ [driver :as driver] [related :as related] [sync :as sync] + [types :as types] [util :as u]] [metabase.api.common :as api] [metabase.driver.util :as driver.u] - [metabase.mbql.util :as mbql.u] [metabase.models [card :refer [Card]] [field :refer [Field]] @@ -172,7 +172,7 @@ (defn- supports-date-binning? "Time fields don't support binning, returns true if it's a DateTime field and not a time field" [{:keys [base_type], :as field}] - (and (mbql.u/datetime-field? field) + (and (types/temporal-field? field) (not (isa? base_type :type/Time)))) (defn- assoc-field-dimension-options [driver {:keys [base_type special_type fingerprint] :as field}] diff --git a/src/metabase/async/api_response.clj b/src/metabase/async/api_response.clj index 998e2e6a072ce2aa845f6ba69e6145caa9ca0d64..8b2aced2eabc9cd8ddd67686b9816f9557030596 100644 --- a/src/metabase/async/api_response.clj +++ b/src/metabase/async/api_response.clj @@ -4,7 +4,8 @@ {:status 200 :body (a/chan)} - and send strings (presumibly \n) as heartbeats to the client until the real results (a seq) is received, then stream + and send strings (presumibly +) as heartbeats to the client until the real results (a seq) is received, then stream that to the client." (:require [cheshire.core :as json] [clojure.core.async :as a] @@ -13,9 +14,7 @@ [compojure.response :refer [Sendable]] [metabase.middleware.exceptions :as mw.exceptions] [metabase.util :as u] - [metabase.util - [date :as du] - [i18n :as ui18n :refer [trs]]] + [metabase.util.i18n :as ui18n :refer [trs]] [ring.core.protocols :as ring.protocols] [ring.util.response :as response]) (:import clojure.core.async.impl.channels.ManyToManyChannel @@ -150,7 +149,7 @@ ;; Otherwise if we've been waiting longer than `absolute-max-keepalive-ms` it's time to call it quits exceeded-absolute-max-keepalive? (a/>! output-chan (TimeoutException. (trs "No response after waiting {0}. Canceling request." - (du/format-milliseconds absolute-max-keepalive-ms)))) + (u/format-milliseconds absolute-max-keepalive-ms)))) ;; if input-chan was unexpectedly closed log a message to that effect and return an appropriate error ;; rather than letting people wait forever diff --git a/src/metabase/automagic_dashboards/core.clj b/src/metabase/automagic_dashboards/core.clj index 87acbd9876d696762e1cf63945d8597a0e0e1ad1..460a5ff6107d4024b53a2d4897b8cb62b3c68d1b 100644 --- a/src/metabase/automagic_dashboards/core.clj +++ b/src/metabase/automagic_dashboards/core.clj @@ -3,14 +3,12 @@ heuristics." (:require [buddy.core.codecs :as codecs] [cheshire.core :as json] - [clj-time - [core :as t] - [format :as t.format]] [clojure [string :as str] [walk :as walk]] [clojure.math.combinatorics :as combo] [clojure.tools.logging :as log] + [java-time :as t] [kixi.stats [core :as stats] [math :as math]] @@ -39,12 +37,11 @@ [metabase.query-processor.util :as qp.util] [metabase.sync.analyze.classify :as classify] [metabase.util - [date :as date] + [date-2 :as u.date] [i18n :as ui18n :refer [deferred-tru trs tru]]] [ring.util.codec :as codec] [schema.core :as s] - [toucan.db :as db]) - (:import java.util.TimeZone)) + [toucan.db :as db])) (def ^:private public-endpoint "/auto/dashboard/") @@ -287,12 +284,13 @@ :type :type/DateTime ((juxt :earliest :latest)) - (map date/str->date-time))] - (condp > (t/in-hours (t/interval earliest latest)) - 3 :minute - (* 24 7) :hour - (* 24 30 6) :day - (* 24 30 12 10) :month + (map u.date/parse))] + ;; e.g. if 3 hours > [duration between earliest and latest] then use `:minute` resolution + (condp u.date/greater-than-period-duration? (u.date/period-duration earliest latest) + (t/hours 3) :minute + (t/days 7) :hour + (t/months 6) :day + (t/years 10) :month :year) :day)) @@ -304,7 +302,7 @@ id [:field-id id] :else [:field-literal name base_type])] (cond - (isa? base_type :type/DateTime) + (isa? base_type :type/Temporal) [:datetime-field reference (or aggregation (optimal-datetime-resolution field))] @@ -1070,41 +1068,37 @@ (defn- pluralize [x] - (case (mod x 10) + ;; the `int` cast here is to fix performance warnings if `*warn-on-reflection*` is enabled + (case (int (mod x 10)) 1 (tru "{0}st" x) 2 (tru "{0}nd" x) 3 (tru "{0}rd" x) (tru "{0}th" x))) (defn- humanize-datetime - [dt unit] - (let [dt (date/str->date-time dt) - tz (.getID ^TimeZone @date/jvm-timezone) - unparse-with-formatter (fn [formatter dt] - (t.format/unparse - (t.format/formatter formatter (t/time-zone-for-id tz)) - dt))] + [t-str unit] + (let [dt (u.date/parse t-str)] (case unit - :second (tru "at {0}" (unparse-with-formatter "h:mm:ss a, MMMM d, YYYY" dt)) - :minute (tru "at {0}" (unparse-with-formatter "h:mm a, MMMM d, YYYY" dt)) - :hour (tru "at {0}" (unparse-with-formatter "h a, MMMM d, YYYY" dt)) - :day (tru "on {0}" (unparse-with-formatter "MMMM d, YYYY" dt)) + :second (tru "at {0}" (t/format "h:mm:ss a, MMMM d, YYYY" dt)) + :minute (tru "at {0}" (t/format "h:mm a, MMMM d, YYYY" dt)) + :hour (tru "at {0}" (t/format "h a, MMMM d, YYYY" dt)) + :day (tru "on {0}" (t/format "MMMM d, YYYY" dt)) :week (tru "in {0} week - {1}" - (pluralize (date/date-extract :week-of-year dt tz)) - (str (date/date-extract :year dt tz))) - :month (tru "in {0}" (unparse-with-formatter "MMMM YYYY" dt)) + (pluralize (u.date/extract dt :week-of-year)) + (str (u.date/extract dt :year))) + :month (tru "in {0}" (t/format "MMMM YYYY" dt)) :quarter (tru "in Q{0} - {1}" - (date/date-extract :quarter-of-year dt tz) - (str (date/date-extract :year dt tz))) - :year (unparse-with-formatter "YYYY" dt) - :day-of-week (unparse-with-formatter "EEEE" dt) - :hour-of-day (tru "at {0}" (unparse-with-formatter "h a" dt)) - :month-of-year (unparse-with-formatter "MMMM" dt) - :quarter-of-year (tru "Q{0}" (date/date-extract :quarter-of-year dt tz)) + (u.date/extract dt :quarter-of-year) + (str (u.date/extract dt :year))) + :year (t/format "YYYY" dt) + :day-of-week (t/format "EEEE" dt) + :hour-of-day (tru "at {0}" (t/format "h a" dt)) + :month-of-year (t/format "MMMM" dt) + :quarter-of-year (tru "Q{0}" (u.date/extract dt :quarter-of-year)) (:minute-of-hour :day-of-month :day-of-year - :week-of-year) (date/date-extract unit dt tz)))) + :week-of-year) (u.date/extract dt unit)))) (defn- field-reference->field [root field-reference] @@ -1136,13 +1130,13 @@ (->> field-reference (field-reference->field root) field-name)) ([{:keys [display_name unit] :as field}] (cond->> display_name - (some-> unit date/date-extract-units) (tru "{0} of {1}" (unit-name unit))))) + (some-> unit u.date/extract-units) (tru "{0} of {1}" (unit-name unit))))) (defmethod humanize-filter-value := [root [_ field-reference value]] (let [field (field-reference->field root field-reference) field-name (field-name field)] - (if (or (isa? (:base_type field) :type/DateTime) + (if (or (isa? (:base_type field) :type/Temporal) (field/unix-timestamp? field)) (tru "{0} is {1}" field-name (humanize-datetime value (:unit field))) (tru "{0} is {1}" field-name value)))) diff --git a/src/metabase/automagic_dashboards/filters.clj b/src/metabase/automagic_dashboards/filters.clj index e12c9ed7ebf227457cba864610972b201136c3e6..15263f9cb7b58d0fd9b4e6680bd29eef7ab9a7eb 100644 --- a/src/metabase/automagic_dashboards/filters.clj +++ b/src/metabase/automagic_dashboards/filters.clj @@ -5,7 +5,9 @@ [metabase.models.field :as field :refer [Field]] [metabase.query-processor.util :as qp.util] [metabase.util :as u] - [metabase.util.schema :as su] + [metabase.util + [date-2 :as u.date] + [schema :as su]] [schema.core :as s] [toucan.db :as db])) @@ -50,11 +52,12 @@ identity) (filter field-reference?))) +;; TODO — this function name is inaccurate, rename to `temporal?` (defn datetime? - "Is `field` a datetime?" + "Does `field` represent a temporal value, i.e. a date, time, or datetime?" [field] - (and (not ((disj metabase.util.date/date-extract-units :year) (:unit field))) - (or (isa? (:base_type field) :type/DateTime) + (and (not ((disj u.date/extract-units :year) (:unit field))) + (or (isa? (:base_type field) :type/Temporal) (field/unix-timestamp? field)))) (defn- interestingness @@ -64,8 +67,8 @@ (some-> fingerprint :global :distinct-count (> 20)) dec ((descendants :type/Category) special_type) inc (field/unix-timestamp? field) inc - (isa? base_type :type/DateTime) inc - ((descendants :type/DateTime) special_type) inc + (isa? base_type :type/Temporal) inc + ((descendants :type/Temporal) special_type) inc (isa? special_type :type/CreationTimestamp) inc (#{:type/State :type/Country} special_type) inc)) diff --git a/src/metabase/cmd.clj b/src/metabase/cmd.clj index 34e87549cb4643a389b18b875231e8194aad5bba..b1c56553cfeba19c862896efbd4c1420fa09a989 100644 --- a/src/metabase/cmd.clj +++ b/src/metabase/cmd.clj @@ -20,8 +20,7 @@ [config :as config] [db :as mdb] [util :as u]] - [metabase.plugins.classloader :as classloader] - [metabase.util.date :as du])) + [metabase.plugins.classloader :as classloader])) (defn ^:command migrate "Run database migrations. Valid options for `direction` are `up`, `force`, `down-one`, `print`, or `release-locks`." @@ -52,7 +51,7 @@ ;; override env var that would normally make Jetty block forever (classloader/require 'environ.core 'metabase.core) (alter-var-root #'environ.core/env assoc :mb-jetty-join "false") - (du/profile "start-normally" ((resolve 'metabase.core/start-normally)))) + (u/profile "start-normally" ((resolve 'metabase.core/start-normally)))) (defn ^:command reset-password "Reset the password for a user with `email-address`." diff --git a/src/metabase/cmd/dump_to_h2.clj b/src/metabase/cmd/dump_to_h2.clj index c4bbc80118812e3a98e47a5f4306fc678b8c80fd..d330d63b30b832a55bf83140de5caf8a307c1a89 100644 --- a/src/metabase/cmd/dump_to_h2.clj +++ b/src/metabase/cmd/dump_to_h2.clj @@ -127,7 +127,7 @@ k))))] {:cols dest-keys :vals (for [row objs] - (map (comp u/jdbc-clob->str row) source-keys))})) + (map row source-keys))})) (def ^:private chunk-size 100) diff --git a/src/metabase/cmd/load_from_h2.clj b/src/metabase/cmd/load_from_h2.clj index fb84dda1d46f41f8e99b5766b8a556ed3d1d47c9..3bbbf85c810b63c671e970bd18d0457231c6e1ae 100644 --- a/src/metabase/cmd/load_from_h2.clj +++ b/src/metabase/cmd/load_from_h2.clj @@ -134,7 +134,7 @@ k))))] {:cols dest-keys :vals (for [row objs] - (map (comp u/jdbc-clob->str row) source-keys))})) + (map row source-keys))})) (def ^:private chunk-size 100) diff --git a/src/metabase/config.clj b/src/metabase/config.clj index 09f33eff7e9a8644504e933052dccc22ac54b912..459d49a3650713f31f1ff7af03fef6d9d755cf54 100644 --- a/src/metabase/config.clj +++ b/src/metabase/config.clj @@ -41,8 +41,10 @@ 2. jvm options (ex: -Dmb.db.type -> :mb-db-type) 3. hard coded `app-defaults`" [k] - (let [k (keyword k)] - (or (k environ/env) (k app-defaults)))) + (let [k (keyword k) + env-val (k environ/env)] + (or (when-not (str/blank? env-val) env-val) + (k app-defaults)))) ;; These are convenience functions for accessing config values that ensures a specific return type diff --git a/src/metabase/core.clj b/src/metabase/core.clj index e4b29a21cdb38a2a4dfa3adad2d9294a75945bbe..307e31828f269fcf9f4e1a02b9775390ccba7a15 100644 --- a/src/metabase/core.clj +++ b/src/metabase/core.clj @@ -52,7 +52,6 @@ (server/stop-web-server!) (log/info (trs "Metabase Shutdown COMPLETE"))) - (defn init! "General application initialization function which should be run once at application startup." [] diff --git a/src/metabase/db.clj b/src/metabase/db.clj index e4fbc094501ed8d6f92a53143e231144cf5c0c6f..bd105307fc6c04ab950983e8a3f578c4f2b3b8c1 100644 --- a/src/metabase/db.clj +++ b/src/metabase/db.clj @@ -11,10 +11,11 @@ [config :as config] [connection-pool :as connection-pool] [util :as u]] - [metabase.db.spec :as dbspec] + [metabase.db + [jdbc-protocols :as db.jdbc-protocols] + [spec :as db.spec]] [metabase.plugins.classloader :as classloader] [metabase.util - [date :as du] [i18n :refer [trs]] [schema :as su]] [ring.util.codec :as codec] @@ -40,7 +41,7 @@ ;; MVStore engine anyway so this only affects people still with legacy PageStore databases ;; ;; Tell H2 to defrag when Metabase is shut down -- can reduce DB size by multiple GIGABYTES -- see #6510 - options ";DB_CLOSE_DELAY=-1;MVCC=TRUE;DEFRAG_ALWAYS=TRUE"] + options ";DB_CLOSE_DELAY=-1;MVCC=TRUE;DEFRAG_ALWAYS=TRUE"] ;; H2 wants file path to always be absolute (str "file:" (.getAbsolutePath (io/file db-file-name)) @@ -146,9 +147,9 @@ {:pre [(map? db-details)]} ;; TODO: it's probably a good idea to put some more validation here and be really strict about what's in `db-details` (case (:type db-details) - :h2 (dbspec/h2 db-details) - :mysql (dbspec/mysql (assoc db-details :db (:dbname db-details))) - :postgres (dbspec/postgres (assoc db-details :db (:dbname db-details)))))) + :h2 (db.spec/h2 db-details) + :mysql (db.spec/mysql (assoc db-details :db (:dbname db-details))) + :postgres (db.spec/postgres (assoc db-details :db (:dbname db-details)))))) ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -360,18 +361,13 @@ ;;; | CONNECTION POOLS & TRANSACTION STUFF | ;;; +----------------------------------------------------------------------------------------------------------------+ -(defn- new-connection-pool - "Create a C3P0 connection pool for the given database `spec`. Default c3p0 properties can be found in the - c3p0.properties file and are there so users may override them from the system if desired." - [spec] - (connection-pool/connection-pool-spec spec)) - (defn- create-connection-pool! [spec] (db/set-default-quoting-style! (case (db-type) :postgres :ansi :h2 :h2 :mysql :mysql)) - (db/set-default-db-connection! (new-connection-pool spec))) + (db/set-default-db-connection! (connection-pool/connection-pool-spec spec)) + (db/set-default-jdbc-options! {:read-columns db.jdbc-protocols/read-columns})) ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -417,7 +413,6 @@ (trs "Unable to connect to Metabase {0} DB." (name driver))) (log/info (trs "Verify Database Connection ... ") (u/emoji "✅")))) - (def ^:dynamic ^Boolean *disable-data-migrations* "Should we skip running data migrations when setting up the DB? (Default is `false`). There are certain places where we don't want to do this; for example, none of the migrations should be ran when @@ -474,12 +469,12 @@ (defn setup-db!* "Connects to db and runs migrations." [db-details auto-migrate] - (du/profile (trs "Database setup") - (u/with-us-locale - (verify-db-connection db-details) - (run-schema-migrations! auto-migrate db-details) - (create-connection-pool! (jdbc-details db-details)) - (run-data-migrations!))) + (u/profile (trs "Database setup") + (u/with-us-locale + (verify-db-connection db-details) + (run-schema-migrations! auto-migrate db-details) + (create-connection-pool! (jdbc-details db-details)) + (run-data-migrations!))) nil) (defn- setup-db-from-env!* [] @@ -523,7 +518,7 @@ -> (db/select Field :special_type [:in #{\"type/URL\" \"type/ImageURL\" \"type/AvatarURL\"}]) - Also accepts optional EXPR for use directly in a HoneySQL `where`: + Also accepts optional `expr` for use directly in a HoneySQL `where`: (db/select Field {:where (mdb/isa :special_type :type/URL)}) -> diff --git a/src/metabase/db/jdbc_protocols.clj b/src/metabase/db/jdbc_protocols.clj new file mode 100644 index 0000000000000000000000000000000000000000..1ff4c4cfa4045717b2371e52cd69cd6c2da47014 --- /dev/null +++ b/src/metabase/db/jdbc_protocols.clj @@ -0,0 +1,157 @@ +(ns metabase.db.jdbc-protocols + "Implementations of `clojure.java.jdbc` protocols for the Metabase application database. These handle type mappings + for setting parameters and for reading results from the DB — mainly by automatically converting CLOBs to Strings and + using new `java.time` classes." + (:require [clojure.java.jdbc :as jdbc] + [clojure.string :as str] + [clojure.tools.logging :as log] + [java-time :as t] + [metabase.plugins.classloader :as classloader] + [metabase.util.date-2 :as u.date]) + (:import java.io.BufferedReader + [java.sql PreparedStatement ResultSet ResultSetMetaData Types] + [java.time Instant LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime ZonedDateTime])) + +(def ^:private db-type + (delay + (classloader/require 'metabase.db) + ((resolve 'metabase.db/db-type)))) + +(defn- set-object + [^PreparedStatement stmt ^Integer index object ^Integer target-sql-type] + (.setObject stmt index object target-sql-type)) + +(extend-protocol jdbc/ISQLParameter + ;; DB's don't seem to handle Instant correctly so convert it to an OffsetDateTime with zone offset = 0 + Instant + (set-parameter [t stmt i] + (jdbc/set-parameter (t/offset-date-time t (t/zone-offset 0)) stmt i)) + + LocalDate + (set-parameter [t stmt i] + (set-object stmt i t Types/DATE)) + + LocalDateTime + (set-parameter [t stmt i] + (set-object stmt i t Types/TIMESTAMP)) + + LocalTime + (set-parameter [t stmt i] + (set-object stmt i t Types/TIME)) + + OffsetDateTime + (set-parameter [t stmt i] + (if (= @db-type :mysql) + ;; Regardless of session timezone it seems to be the case that OffsetDateTimes get normalized to UTC inside MySQL + ;; + ;; Since MySQL TIMESTAMPs aren't timezone-aware this means comparisons are done between timestamps in the report + ;; timezone and the local datetime portion of the parameter, in UTC. Bad! + ;; + ;; Convert it to a LocalDateTime, in the report timezone, so comparisions will work correctly. + ;; + ;; See also — https://dev.mysql.com/doc/refman/5.5/en/datetime.html + (let [offset (.. (t/zone-id) getRules (getOffset (t/instant t))) + t (t/local-date-time (t/with-offset-same-instant t offset))] + (set-object stmt i t Types/TIMESTAMP)) + ;; h2 and Postgres work as expected + (set-object stmt i t Types/TIMESTAMP_WITH_TIMEZONE))) + + ;; MySQL, Postgres, and H2 all don't support OffsetTime + OffsetTime + (set-parameter [t stmt i] + (set-object stmt i (t/local-time (t/with-offset-same-instant t (t/zone-offset 0))) Types/TIME)) + + ;; Similarly, none of them handle ZonedDateTime out of the box either, so convert it to an OffsetDateTime first + ZonedDateTime + (set-parameter [t stmt i] + (jdbc/set-parameter (t/offset-date-time t) stmt i))) + +(extend-protocol jdbc/IResultSetReadColumn + org.postgresql.util.PGobject + (result-set-read-column [clob _ _] + (.getValue clob)) + + org.h2.jdbc.JdbcClob + (result-set-read-column [clob _ _] + (letfn [(clob->str [^BufferedReader buffered-reader] + (loop [acc []] + (if-let [line (.readLine buffered-reader)] + (recur (conj acc line)) + (str/join "\n" acc))))] + (with-open [reader (.getCharacterStream clob)] + (if (instance? BufferedReader reader) + (clob->str reader) + (with-open [buffered-reader (BufferedReader. reader)] + (clob->str buffered-reader))))))) + +(defmulti ^:private read-column + {:arglists '([rs rsmeta i])} + (fn [_ ^ResultSetMetaData rsmeta ^Integer i] + (.getColumnType rsmeta i))) + +(defmethod read-column :default + [^ResultSet rs _ ^Integer i] + (.getObject rs i)) + +(defmethod read-column Types/TIMESTAMP + [^ResultSet rs ^ResultSetMetaData rsmeta ^Integer i] + (case @db-type + :postgres + ;; for some reason postgres `TIMESTAMP WITH TIME ZONE` columns still come back as `Type/TIMESTAMP`, which seems + ;; like a bug with the JDBC driver? + (let [^Class klass (if (= (str/lower-case (.getColumnTypeName rsmeta i)) "timestamptz") + OffsetDateTime + LocalDateTime)] + (.getObject rs i klass)) + + :mysql + ;; MySQL TIMESTAMPS are actually TIMESTAMP WITH LOCAL TIME ZONE, i.e. they are stored normalized to UTC when stored. + ;; However, MySQL returns them in the report time zone in an effort to make our lives horrible. + ;; + ;; Check and see if the column type is `TIMESTAMP` (as opposed to `DATETIME`, which is the equivalent of + ;; LocalDateTime), and normalize it to a UTC timestamp if so. + (let [t (.getObject rs i LocalDateTime)] + (if (= (.getColumnTypeName rsmeta i) "TIMESTAMP") + (t/with-offset-same-instant (t/offset-date-time t (t/zone-id)) (t/zone-offset 0)) + t)) + + ;; h2 + (.getObject rs i LocalDateTime))) + +(defmethod read-column Types/TIMESTAMP_WITH_TIMEZONE + [^ResultSet rs _ ^Integer i] + (.getObject rs i OffsetDateTime)) + +(defmethod read-column Types/DATE + [^ResultSet rs _ ^Integer i] + (.getObject rs i LocalDate)) + +(defmethod read-column Types/TIME + [^ResultSet rs _ ^Integer i] + (case @db-type + :postgres + ;; Sometimes Postgres times come back as strings like `07:23:18.331+00` (no minute in offset) and there's a bug in + ;; the JDBC driver where it can't parse those correctly. We can do it ourselves in that case. + (try + (.getObject rs i LocalTime) + (catch Throwable _ + (let [s (.getString rs i)] + (log/tracef "Error in Postgres JDBC driver reading TIME value, fetching as string '%s'" s) + (u.date/parse s)))) + + ;; H2 & MySQL work as expected + (.getObject rs i LocalTime))) + +(defmethod read-column Types/TIME_WITH_TIMEZONE + [^ResultSet rs _ ^Integer i] + (.getObject rs i OffsetTime)) + +(defn read-columns + "Default `clojure.java.jdbc` `:read-columns` method to use for Metabase. Reads temporal values as `java.sql.time` + types rather than legacy `java.sql.Timestamp` and the like." + [rs rsmeta indexes] + (mapv + (fn [i] + (-> (read-column rs rsmeta i) + (jdbc/result-set-read-column rsmeta i))) + indexes)) diff --git a/src/metabase/db/migrations.clj b/src/metabase/db/migrations.clj index df11c5796508e8d18a0473ae2935128dad3cb8e7..2d9689121708c4e1a301dd02db51d908c88aac8d 100644 --- a/src/metabase/db/migrations.clj +++ b/src/metabase/db/migrations.clj @@ -29,9 +29,7 @@ [pulse :refer [Pulse]] [setting :as setting :refer [Setting]] [user :refer [User]]] - [metabase.util - [date :as du] - [i18n :refer [trs]]] + [metabase.util.i18n :refer [trs]] [toucan [db :as db] [models :as models]]) @@ -53,7 +51,7 @@ (@migration-var) (db/insert! DataMigrations :id migration-name - :timestamp (du/new-sql-timestamp))))) + :timestamp :%now)))) (def ^:private data-migrations (atom [])) diff --git a/src/metabase/driver.clj b/src/metabase/driver.clj index 75428193d9927902e0bcfd63c4fcaeca31f9ec30..89b4f6d81f41bf6ffe12ef23cdeeff75fba43a8a 100644 --- a/src/metabase/driver.clj +++ b/src/metabase/driver.clj @@ -8,13 +8,13 @@ `metabase.driver.sql-jdbc` for more details." (:require [clojure.string :as str] [clojure.tools.logging :as log] + [metabase.driver.impl :as impl] [metabase.models.setting :as setting :refer [defsetting]] [metabase.plugins.classloader :as classloader] - [metabase.util :as u] [metabase.util - [date :as du] [i18n :refer [deferred-tru trs tru]] [schema :as su]] + [potemkin :as p] [schema.core :as s] [toucan.db :as db]) (:import org.joda.time.DateTime)) @@ -69,30 +69,21 @@ [driver & body] `(do-with-driver ~driver (fn [] ~@body))) - ;;; +----------------------------------------------------------------------------------------------------------------+ -;;; | Driver Registration / Hierarchy | +;;; | Driver Registration / Hierarchy / Multimethod Dispatch | ;;; +----------------------------------------------------------------------------------------------------------------+ -(defonce ^{:doc "Driver hierarchy. Used by driver multimethods for dispatch. Add new drivers with `regsiter!`."} - hierarchy - (make-hierarchy)) - -(defn- registered? - "Is `driver` a valid registered driver?" - [driver] - (isa? hierarchy (keyword driver) ::driver)) - -(defn- concrete? - "Is `driver` registered, and non-abstract?" - [driver] - (isa? hierarchy (keyword driver) ::concrete)) +(p/import-vars [impl hierarchy register! initialized?]) -(defn- abstract? - "Is `driver` an abstract \"base class\"? i.e. a driver that you cannot use directly when adding a Database, such as - `:sql` or `:sql-jdbc`." - [driver] - (not (concrete? driver))) +(add-watch + #'hierarchy + nil + (fn [_ _ _ _] + (when (not= hierarchy impl/hierarchy) + ;; this is a dev-facing error so no need to i18n it. + (throw (Exception. (str "Don't alter #'metabase.driver/hierarchy directly, since it is imported from " + "metabase.driver.impl. Alter #'metabase.driver.impl/hierarchy instead if you need to " + "alter the var directly.")))))) (defn available? "Is this driver available for use? (i.e. should we show it as an option when adding a new database?) This is `true` @@ -101,47 +92,7 @@ Note that an available driver is not necessarily initialized yet; for example lazy-loaded drivers are *registered* when Metabase starts up (meaning this will return `true` for them) and only initialized when first needed." [driver] - ((every-pred registered? concrete?) driver)) - -(s/defn ^:private driver->expected-namespace [driver :- s/Keyword] - (symbol - (or (namespace driver) - (str "metabase.driver." (name driver))))) - -(defonce ^:private require-lock (Object.)) - -(defn- require-driver-ns [driver & require-options] - (let [expected-ns (driver->expected-namespace driver)] - ;; acquire an exclusive lock FOR THIS THREAD to make sure no other threads simultaneously call `require` when - ;; loading drivers; e.g. if multiple queries are launched at once requiring different drivers. Clojure breaks if - ;; you try to do multithreaded require, at least last time I checked. - (locking require-lock - (log/debug - (trs "Loading driver {0} {1}" (u/format-color 'blue driver) (apply list 'require expected-ns require-options))) - (try - (apply classloader/require expected-ns require-options) - (catch Throwable _ - (throw (Exception. (tru "Could not find {0} driver." driver)))))))) - -(defn- load-driver-namespace-if-needed! - "Load the expected namespace for a `driver` if it has not already been registed. This only works for core Metabase - drivers, whose namespaces follow an expected pattern; drivers provided by 3rd-party plugins are expected to register - themselves in their plugin initialization code. - - You should almost never need to do this directly; it is handled automatically when dispatching on a driver and by - `register!` below (for parent drivers) and by `driver.u/database->driver` for drivers that have not yet been - loaded." - [driver] - (when-not *compile-files* - (when-not (registered? driver) - (du/profile (trs "Load driver {0}" driver) - (require-driver-ns driver) - ;; ok, hopefully it was registered now. If not, try again, but reload the entire driver namespace - (when-not (registered? driver) - (require-driver-ns driver :reload) - ;; if *still* not registered, throw an Exception - (when-not (registered? driver) - (throw (Exception. (tru "Driver not registered after loading: {0}" driver))))))))) + ((every-pred impl/registered? impl/concrete?) driver)) (defn the-driver "Like Clojure core `the-ns`. Converts argument to a keyword, then loads and registers the driver if not already done, @@ -166,83 +117,16 @@ {:pre [((some-fn keyword? string?) driver)]} (classloader/the-classloader) (let [driver (keyword driver)] - (load-driver-namespace-if-needed! driver) + (impl/load-driver-namespace-if-needed! driver) driver)) -(defn- check-abstractness-hasnt-changed - "Check to make sure we're not trying to change the abstractness of an already registered driver" - [driver new-abstract?] - (when (registered? driver) - (let [old-abstract? (boolean (abstract? driver)) - new-abstract? (boolean new-abstract?)] - (when (not= old-abstract? new-abstract?) - (throw (Exception. (tru "Error: attempting to change {0} property `:abstract?` from {1} to {2}." - driver old-abstract? new-abstract?))))))) - (defn add-parent! "Add a new parent to `driver`." [driver new-parent] (when-not *compile-files* - (load-driver-namespace-if-needed! driver) - (load-driver-namespace-if-needed! new-parent) - (alter-var-root #'hierarchy derive driver new-parent))) - -(defn register! - "Register a driver. - - (register! :sql, :abstract? true) - - (register! :postgres, :parent :sql-jdbc) - - Valid options are: - - ###### `:parent` (default = none) - - Parent driver(s) to derive from. Drivers inherit method implementations from their parents similar to the way - inheritance works in OOP. Specify multiple direct parents by passing a collection of parents. - - You can add additional parents to a driver using `add-parent!` below; this is how test extensions are implemented. - - ###### `:abstract?` (default = false) - - Is this an abstract driver (i.e. should we hide it in the admin interface, and disallow running queries with it)? - - Note that because concreteness is implemented as part of our keyword hierarchy it is not currently possible to - create an abstract driver with a concrete driver as its parent, since it would still ultimately derive from - `::concrete`." - {:style/indent 1} - [driver & {:keys [parent abstract?]}] - {:pre [(keyword? driver)]} - ;; no-op during compilation. - (when-not *compile-files* - (let [parents (filter some? (u/one-or-many parent))] - ;; load parents as needed; if this is an abstract driver make sure parents aren't concrete - (doseq [parent parents] - (load-driver-namespace-if-needed! parent)) - (when abstract? - (doseq [parent parents - :when (concrete? parent)] - (throw (ex-info (trs "Abstract drivers cannot derive from concrete parent drivers.") - {:driver driver, :parent parent})))) - ;; validate that the registration isn't stomping on things - (check-abstractness-hasnt-changed driver abstract?) - ;; ok, if that was successful we can derive the driver from `::driver`/`::concrete` and parent(s) - (let [derive! (partial alter-var-root #'hierarchy derive driver)] - (derive! ::driver) - (when-not abstract? - (derive! ::concrete)) - (doseq [parent parents] - (derive! parent))) - ;; ok, log our great success - (log/info - (u/format-color 'blue - (if (metabase.driver/abstract? driver) - (trs "Registered abstract driver {0}" driver) - (trs "Registered driver {0}" driver))) - (if (seq parents) - (trs "(parents: {0})" (vec parents)) - "") - (u/emoji "🚚"))))) + (impl/load-driver-namespace-if-needed! driver) + (impl/load-driver-namespace-if-needed! new-parent) + (alter-var-root #'impl/hierarchy derive driver new-parent))) (defn- dispatch-on-uninitialized-driver "Dispatch function to use for driver multimethods. Dispatches on first arg, a driver keyword; loads that driver's @@ -253,53 +137,13 @@ [driver & _] (the-driver driver)) - -;;; +----------------------------------------------------------------------------------------------------------------+ -;;; | Initialization | -;;; +----------------------------------------------------------------------------------------------------------------+ - -;; We'll keep track of which drivers are initialized using a set rather than adding a special key to the hierarchy or -;; something like that -- we don't want child drivers to inherit initialized status from their ancestors -(defonce ^:private initialized-drivers - ;; For the purposes of this exercise the special keywords used in the hierarchy should always be assumed to be - ;; initialized so we don't try to call initialize on them, which of course would try to load their namespaces when - ;; dispatching off `the-driver`; that would fail, so don't try it - (atom #{::driver ::concrete})) - -(defn initialized? - "Has `driver` been initialized? (See `initialize!` below for a discussion of what exactly this means.)" - [driver] - (@initialized-drivers driver)) - - (declare initialize!) -(defonce ^:private initialization-lock (Object.)) - -(defn- initialize-if-needed! [driver] - ;; no-op during compilation - (when-not *compile-files* - ;; first, initialize parents as needed - (doseq [parent (parents hierarchy driver)] - (initialize-if-needed! parent)) - (when-not (initialized? driver) - ;; if the driver is not yet initialized, acquire an exclusive lock for THIS THREAD to perform initialization to - ;; make sure no other thread tries to initialize it at the same time - (locking initialization-lock - ;; and once we acquire the lock, check one more time to make sure the driver didn't get initialized by - ;; whatever thread(s) we were waiting on. - (when-not (initialized? driver) - (log/info (u/format-color 'yellow (trs "Initializing driver {0}..." driver))) - (log/debug (trs "Reason:") (u/pprint-to-str 'blue (drop 5 (u/filtered-stacktrace (Thread/currentThread))))) - (swap! initialized-drivers conj driver) - (initialize! driver)))))) - - (defn the-initialized-driver "Like `the-driver`, but also initializes the driver if not already initialized." [driver] (let [driver (the-driver driver)] - (initialize-if-needed! driver) + (impl/initialize-if-needed! driver initialize!) driver)) (defn dispatch-on-initialized-driver @@ -511,7 +355,12 @@ ;; Does this driver support expressions (e.g. adding the values of 2 columns together)? :expressions - ;; Does the driver support parameter substitution on native queries? + ;; Does this driver support parameter substitution in native queries, where parameter expressions are replaced + ;; with a single value? e.g. + ;; + ;; SELECT * FROM table WHERE field = {{param}} + ;; -> + ;; SELECT * FROM table WHERE field = 1 :native-parameters ;; Does the driver support using expressions inside aggregations? e.g. something like \"sum(x) + count(y)\" or @@ -679,7 +528,8 @@ pattern and is injected into the QP middleware stack immediately after the Query Expander; in other words, it will receive the expanded query. See the Mongo and H2 drivers for examples of how this is intended to be used. - (defn process-query-in-context [driver qp] + (defmethod process-query-in-context :my-driver + [driver qp] (fn [query] (qp query)))" {:arglists '([driver qp])} @@ -701,11 +551,44 @@ dispatch-on-initialized-driver :hierarchy #'hierarchy) -(defmulti ^DateTime current-db-time - "Return the current time and timezone from the perspective of `database`. You can use - `metabase.driver.common/current-db-time` to implement this. This should return a Joda-Time `DateTime`." - {:arglists '([driver database])} +(defmulti db-default-timezone + "Return the *system* timezone ID name of this database, i.e. the timezone that local dates/times/datetimes are + considered to be in by default. Ideally, this method should return a timezone ID like `America/Los_Angeles`, but an + offset formatted like `-08:00` is acceptable in cases where the actual ID cannot be provided." + {:arglists '(^java.lang.String [driver database])} dispatch-on-initialized-driver :hierarchy #'hierarchy) +(defmethod db-default-timezone ::driver [_ _] nil) + +;; TIMEZONE FIXME — remove this method entirely +(defmulti ^:deprecated current-db-time + "Return the current time and timezone from the perspective of `database`. You can use + `metabase.driver.common/current-db-time` to implement this. This should return a Joda-Time `DateTime`. + + DEPRECATED — the only thing this method is ultimately used for is to determine the DB's system timezone. + `db-default-timezone` has been introduced as an intended replacement for this method; implement it instead. This + method will be removed in a future release." + {:arglists '(^org.joda.time.DateTime [driver database])} dispatch-on-initialized-driver + :hierarchy #'hierarchy) + (defmethod current-db-time ::driver [_ _] nil) + +(defmulti substitue-native-parameters + "For drivers that support `:native-parameters`. Substitute parameters in a normalized 'inner' native query. + + {:query \"SELECT count(*) FROM table WHERE id = {{param}}\" + :template-tags {:param {:name \"param\", :display-name \"Param\", :type :number}} + :parameters [{:type :number + :target [:variable [:template-tag \"param\"]] + :value 2}]} + -> + {:query \"SELECT count(*) FROM table WHERE id = 2\"} + + Much of the implementation for this method is shared across drivers and lives in the + `metabase.driver.common.parameters.*` namespaces. See the `:sql` and `:mongo` drivers for sample implementations of + this method.`Driver-agnostic end-to-end native parameter tests live in + `metabase.query-processor-test.parameters-test` and other namespaces." + {:arglists '([driver inner-query])} + dispatch-on-initialized-driver + :hierarchy #'hierarchy) diff --git a/src/metabase/driver/common.clj b/src/metabase/driver/common.clj index 011b13a58b576fdd300c9c5991477fa74a23a487..a111d97694278f402eef5addf0541bdaba527f2b 100644 --- a/src/metabase/driver/common.clj +++ b/src/metabase/driver/common.clj @@ -17,23 +17,40 @@ (def connection-error-messages "Generic error messages that drivers should return in their implementation of `humanize-connection-error-message`." - {:cannot-connect-check-host-and-port (str (deferred-tru "Hmm, we couldn''t connect to the database.") - " " - (deferred-tru "Make sure your host and port settings are correct")) - :ssh-tunnel-auth-fail (str (deferred-tru "We couldn''t connect to the ssh tunnel host.") - " " - (deferred-tru "Check the username, password.")) - :ssh-tunnel-connection-fail (str (deferred-tru "We couldn''t connect to the ssh tunnel host.") - " " - (deferred-tru "Check the hostname and port.")) - :database-name-incorrect (deferred-tru "Looks like the database name is incorrect.") - :invalid-hostname (str (deferred-tru "It looks like your host is invalid.") - " " - (deferred-tru "Please double-check it and try again.")) - :password-incorrect (deferred-tru "Looks like your password is incorrect.") - :password-required (deferred-tru "Looks like you forgot to enter your password.") - :username-incorrect (deferred-tru "Looks like your username is incorrect.") - :username-or-password-incorrect (deferred-tru "Looks like the username or password is incorrect.")}) + {:cannot-connect-check-host-and-port + (str (deferred-tru "Hmm, we couldn''t connect to the database.") + " " + (deferred-tru "Make sure your host and port settings are correct")) + + :ssh-tunnel-auth-fail + (str (deferred-tru "We couldn''t connect to the ssh tunnel host.") + " " + (deferred-tru "Check the username, password.")) + + :ssh-tunnel-connection-fail + (str (deferred-tru "We couldn''t connect to the ssh tunnel host.") + " " + (deferred-tru "Check the hostname and port.")) + + :database-name-incorrect + (deferred-tru "Looks like the database name is incorrect.") + + :invalid-hostname + (str (deferred-tru "It looks like your host is invalid.") + " " + (deferred-tru "Please double-check it and try again.")) + + :password-incorrect + (deferred-tru "Looks like your password is incorrect.") + + :password-required + (deferred-tru "Looks like you forgot to enter your password.") + + :username-incorrect + (deferred-tru "Looks like your username is incorrect.") + + :username-or-password-incorrect + (deferred-tru "Looks like the username or password is incorrect.")}) ;; TODO - we should rename these from `default-*-details` to `default-*-connection-property` @@ -107,7 +124,7 @@ ;;; | Fetching Current Timezone | ;;; +----------------------------------------------------------------------------------------------------------------+ -(defprotocol ^:private ParseDateTimeString +(defprotocol ^:private ^:deprecated ParseDateTimeString (^:private parse ^DateTime [this date-time-str] "Parse the `date-time-str` and return a `DateTime` instance.")) @@ -122,7 +139,7 @@ ;; dispatch parsing for SimpleDateFormat instances. Dispatching off of the SimpleDateFormat directly wouldn't be good ;; as it's not threadsafe. This will always create a new SimpleDateFormat instance and discard it after parsing the ;; date -(defrecord ^:private ThreadSafeSimpleDateFormat [format-str] +(defrecord ^:private ^:deprecated ThreadSafeSimpleDateFormat [format-str] ParseDateTimeString (parse [_ date-time-str] (let [sdf (SimpleDateFormat. format-str) @@ -130,14 +147,14 @@ joda-tz (-> sdf .getTimeZone .getID time/time-zone-for-id)] (time/to-time-zone (tcoerce/from-date parsed-date) joda-tz)))) -(defn create-db-time-formatters +(defn ^:deprecated create-db-time-formatters "Creates date formatters from `DATE-FORMAT-STR` that will preserve the offset/timezone information. Will return a JodaTime date formatter and a core Java SimpleDateFormat. Results of this are threadsafe and can safely be def'd." [date-format-str] [(.withOffsetParsed ^DateTimeFormatter (tformat/formatter date-format-str)) (ThreadSafeSimpleDateFormat. date-format-str)]) -(defn- first-successful-parse +(defn- ^:deprecated first-successful-parse "Attempt to parse `time-str` with each of `date-formatters`, returning the first successful parse. If there are no successful parses throws the exception that the last formatter threw." ^DateTime [date-formatters time-str] @@ -145,55 +162,65 @@ (doseq [formatter (reverse date-formatters)] (parse formatter time-str)))) -(defmulti current-db-time-native-query +(defmulti ^:deprecated current-db-time-native-query "Return a native query that will fetch the current time (presumably as a string) used by the `current-db-time` - implementation below." + implementation below. + + DEPRECATED — `metabase.driver/current-db-time`, the method this function provides an implementation for, is itself + deprecated. Implement `metabase.driver/db-default-timezone` instead directly." {:arglists '([driver])} driver/dispatch-on-initialized-driver :hierarchy #'driver/hierarchy) -(defmulti current-db-time-date-formatters +(defmulti ^:deprecated current-db-time-date-formatters "Return JODA time date formatters to parse the current time returned by `current-db-time-native-query`. Used by `current-db-time` implementation below. You can use `create-db-time-formatters` provided by this namespace to create - formatters for a date format string." + formatters for a date format string. + + DEPRECATED — `metabase.driver/current-db-time`, the method this function provides an implementation for, is itself + deprecated. Implement `metabase.driver/db-default-timezone` instead directly." {:arglists '([driver])} driver/dispatch-on-initialized-driver :hierarchy #'driver/hierarchy) -(defn current-db-time +(defn ^:deprecated current-db-time "Implementation of `driver/current-db-time` using the `current-db-time-native-query` and `current-db-time-date-formatters` multimethods defined above. Execute a native query for the current time, and parse the results using the date formatters, preserving the timezone. To use this implementation, you must implement the - aforementioned multimethods; no default implementation is provided." + aforementioned multimethods; no default implementation is provided. + + DEPRECATED — `metabase.driver/current-db-time`, the method this function provides an implementation for, is itself + deprecated. Implement `metabase.driver/db-default-timezone` instead directly." ^DateTime [driver database] {:pre [(map? database)]} - (let [native-query (current-db-time-native-query driver) - date-formatters (current-db-time-date-formatters driver) - settings (when-let [report-tz (driver.u/report-timezone-if-supported driver)] - {:settings {:report-timezone report-tz}}) - time-str (try - ;; need to initialize the store sicne we're calling `execute-query` directly instead of - ;; going thru normal QP pipeline - (qp.store/with-store - (qp.store/fetch-and-store-database! (u/get-id database)) - (-> - (driver/execute-query driver - (merge settings {:database (u/get-id database), :native {:query native-query}})) - :rows - ffirst)) - (catch Exception e - (throw - (Exception. - (format "Error querying database '%s' for current time" (:name database)) e))))] - (try - (when time-str - (first-successful-parse date-formatters time-str)) - (catch Exception e - (throw - (Exception. - (str - (tru "Unable to parse date string ''{0}'' for database engine ''{1}''" - time-str (-> database :engine name))) e)))))) + (driver/with-driver driver + (let [native-query (current-db-time-native-query driver) + date-formatters (current-db-time-date-formatters driver) + settings (when-let [report-tz (driver.u/report-timezone-if-supported driver)] + {:settings {:report-timezone report-tz}}) + time-str (try + ;; need to initialize the store sicne we're calling `execute-query` directly instead of + ;; going thru normal QP pipeline + (qp.store/with-store + (qp.store/fetch-and-store-database! (u/get-id database)) + (-> + (driver/execute-query driver + (merge settings {:database (u/get-id database), :native {:query native-query}})) + :rows + ffirst)) + (catch Exception e + (throw + (Exception. + (format "Error querying database '%s' for current time" (:name database)) e))))] + (try + (when time-str + (first-successful-parse date-formatters time-str)) + (catch Exception e + (throw + (Exception. + (str + (tru "Unable to parse date string ''{0}'' for database engine ''{1}''" + time-str (-> database :engine name))) e))))))) ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -204,36 +231,56 @@ "Return the `Field.base_type` that corresponds to a given class returned by the DB. This is used to infer the types of results that come back from native queries." [klass] - (or (some (fn [[mapped-class mapped-type]] - (when (isa? klass mapped-class) - mapped-type)) - [[Boolean :type/Boolean] - [Double :type/Float] - [Float :type/Float] - [Integer :type/Integer] - [Long :type/Integer] - [java.math.BigDecimal :type/Decimal] - [java.math.BigInteger :type/BigInteger] - [Number :type/Number] - [String :type/Text] - [java.sql.Date :type/Date] - [java.sql.Timestamp :type/DateTime] - [java.util.Date :type/DateTime] - [DateTime :type/DateTime] - [java.util.UUID :type/Text] ; shouldn't this be :type/UUID ? - [clojure.lang.IPersistentMap :type/Dictionary] - [clojure.lang.IPersistentVector :type/Array] - [org.postgresql.util.PGobject :type/*] - [nil :type/*]]) ; all-NULL columns in DBs like Mongo w/o explicit types + (condp #(isa? %2 %1) klass + Boolean :type/Boolean + Double :type/Float + Float :type/Float + Integer :type/Integer + Long :type/Integer + java.math.BigDecimal :type/Decimal + java.math.BigInteger :type/BigInteger + Number :type/Number + String :type/Text + ;; java.sql types and Joda-Time types should be considered DEPRECATED + java.sql.Date :type/Date + java.sql.Timestamp :type/DateTime + java.util.Date :type/Date + DateTime :type/DateTime + ;; shouldn't this be :type/UUID ? + java.util.UUID :type/Text + clojure.lang.IPersistentMap :type/Dictionary + clojure.lang.IPersistentVector :type/Array + java.time.LocalDate :type/Date + java.time.LocalTime :type/Time + java.time.LocalDateTime :type/DateTime + ;; `OffsetTime` and `OffsetDateTime` should be mapped to one of `type/TimeWithLocalTZ`/`type/TimeWithZoneOffset` + ;; and `type/DateTimeWithLocalTZ`/`type/DateTimeWithZoneOffset` respectively. We can't really tell how they're + ;; stored in the DB based on class alone, so drivers should return more specific types where possible. See + ;; discussion in the `metabase.types` namespace. + java.time.OffsetTime :type/TimeWithTZ + java.time.OffsetDateTime :type/DateTimeWithTZ + java.time.ZonedDateTime :type/DateTimeWithZoneID + java.time.Instant :type/Instant + ;; TODO - this should go in the Postgres driver implementation of this method rather than here + org.postgresql.util.PGobject :type/* + ;; all-NULL columns in DBs like Mongo w/o explicit types + nil :type/* + (do (log/warn (trs "Don''t know how to map class ''{0}'' to a Field base_type, falling back to :type/*." klass)) - :type/*)) + :type/*))) + +(defn- values->class->count [values] + (reduce + (fn [class->count klass] + (update class->count klass (fnil inc 0))) + {} + ;; take (up to) the first 100 non-nil values out of the first 1000 values + (eduction (map class) (take 100) (filter some?) (take 1000) values))) + +(defn- values->most-common-class [values] + (ffirst (reverse (sort-by second (values->class->count values))))) (defn values->base-type - "Given a sequence of VALUES, return the most common base type." + "Given a sequence of `values`, return the most common base type." [values] - (->> values - (take 100) ; take up to 100 values - (remove nil?) ; filter out `nil` values - (group-by (comp class->base-type class)) ; now group by their base-type - (sort-by (comp (partial * -1) count second)) ; sort the map into pairs of [base-type count] with highest count as first pair - ffirst)) ; take the base-type from the first pair + (-> values values->most-common-class class->base-type)) diff --git a/src/metabase/query_processor/middleware/parameters/native/interface.clj b/src/metabase/driver/common/parameters.clj similarity index 85% rename from src/metabase/query_processor/middleware/parameters/native/interface.clj rename to src/metabase/driver/common/parameters.clj index 0179ad5b4644c3ecfd732486fa4441cc7467602c..cb0cd5f9862e1f58ae84bfcb4eaebf0dcc33c0c9 100644 --- a/src/metabase/query_processor/middleware/parameters/native/interface.clj +++ b/src/metabase/driver/common/parameters.clj @@ -1,4 +1,4 @@ -(ns metabase.query-processor.middleware.parameters.native.interface +(ns metabase.driver.common.parameters "Various record types below are used as a convenience for differentiating the different param types." (:require [metabase.util.schema :as su] [potemkin.types :as p.types] @@ -14,7 +14,7 @@ ;; * A map contianing the value and type info for the value, e.g. ;; ;; {:type :date/single -;; :value #inst "2019-09-20T19:52:00.000-07:00"} +;; :value #t "2019-09-20T19:52:00.000-07:00"} ;; ;; * A vector of maps like the one above (for multiple values) (p.types/defrecord+ FieldFilter [field value] @@ -28,8 +28,9 @@ (instance? FieldFilter x)) ;; as in a literal date, defined by date-string S -;; `s` is a String -(p.types/defrecord+ Date [s] +;; +;; TODO - why don't we just parse this into a Temporal type and let drivers handle it. +(p.types/defrecord+ Date [^String s] PrettyPrintable (pretty [_] (list 'Date. s))) @@ -39,8 +40,11 @@ (pretty [_] (list 'DateRange. start end))) -;; List of numbers to faciliate things like using params in a SQL `IN` clause. See the discussion in `value->number` -;; for more details. +;; List of numbers to faciliate things like using params in a SQL `IN` clause. This is supported by both regular +;; filter clauses (e.g. `IN ({{ids}})` and in field filters. Field filters also support sequences of values other than +;; numbers, but these don't have a special record type. (TODO - we don't need a record type here, either. Just use a +;; sequence) +;; ;; `numbers` are a sequence of `[java.lang.Number]` (p.types/defrecord+ CommaSeparatedNumbers [numbers] PrettyPrintable @@ -86,12 +90,12 @@ (p.types/defrecord+ Param [k] PrettyPrintable (pretty [_] - (list 'param k))) + (list 'param k))) (p.types/defrecord+ Optional [args] PrettyPrintable (pretty [_] - (cons 'optional args))) + (cons 'optional args))) ;; `Param?` and `Optional?` exist mostly so you don't have to try to import the classes from this namespace which can ;; cause problems if the ns isn't loaded first diff --git a/src/metabase/query_processor/middleware/parameters/dates.clj b/src/metabase/driver/common/parameters/dates.clj similarity index 69% rename from src/metabase/query_processor/middleware/parameters/dates.clj rename to src/metabase/driver/common/parameters/dates.clj index ce8b4e85514dc510b5402cf4db5d10a0bba0d61b..fbf3069a679e95524462b6299daed418fe893ef7 100644 --- a/src/metabase/query_processor/middleware/parameters/dates.clj +++ b/src/metabase/driver/common/parameters/dates.clj @@ -1,14 +1,13 @@ -(ns metabase.query-processor.middleware.parameters.dates +(ns metabase.driver.common.parameters.dates "Shared code for handling datetime parameters, used by both MBQL and native params implementations." - (:require [clj-time - [core :as t] - [format :as tf]] + (:require [java-time :as t] [medley.core :as m] [metabase.mbql.schema :as mbql.s] [metabase.models.params :as params] - [metabase.util.schema :as su] - [schema.core :as s]) - (:import [org.joda.time DateTime DateTimeConstants])) + [metabase.util + [date-2 :as u.date] + [schema :as su]] + [schema.core :as s])) (s/defn date-type? "Is param type `:date` or some subtype like `:date/month-year`?" @@ -16,6 +15,11 @@ (or (= param-type :date) (= "date" (namespace param-type)))) +(defn relative-date-param-type? + "Is param type a relative `:date` param (e.g., not an absolute moment in time?)" + [param-type] + (#{:date/range :date/month-year :date/quarter-year :date/relative :date/all-options} param-type)) + ;; Both in MBQL and SQL parameter substitution a field value is compared to a date range, either relative or absolute. ;; Currently the field value is casted to a day (ignoring the time of day), so the ranges should have the same ;; granularity level. @@ -24,38 +28,36 @@ ;; hour/minute granularity in field parameter queries. (defn- day-range - [^DateTime start, ^DateTime end] - {:end end - :start start}) - -(defn- week-range - [^DateTime start, ^DateTime end] - ;; weeks always start on SUNDAY and end on SATURDAY - ;; NOTE: in Joda the week starts on Monday and ends on Sunday, so to get the right Sunday we rollback 1 week - {:end (.withDayOfWeek end DateTimeConstants/SATURDAY) - :start (.withDayOfWeek ^DateTime (t/minus start (t/weeks 1)) DateTimeConstants/SUNDAY)}) - -(defn- month-range - [^DateTime start, ^DateTime end] - {:end (t/last-day-of-the-month end) - :start (t/first-day-of-the-month start)}) - -(defn- year-range - [^DateTime start, ^DateTime end] - {:end (t/last-day-of-the-month (.withMonthOfYear end DateTimeConstants/DECEMBER)) - :start (t/first-day-of-the-month (.withMonthOfYear start DateTimeConstants/JANUARY))}) - -(defn- start-of-quarter [quarter year] - (t/first-day-of-the-month (.withMonthOfYear (t/date-time year) (case quarter - "Q1" DateTimeConstants/JANUARY - "Q2" DateTimeConstants/APRIL - "Q3" DateTimeConstants/JULY - "Q4" DateTimeConstants/OCTOBER)))) + [start end] + {:start start, :end end}) + +(defn- comparison-range + ([t unit] + (comparison-range t t unit)) + + ([start end unit] + (merge + (u.date/comparison-range start unit :>= {:resolution :day}) + (u.date/comparison-range end unit :<= {:resolution :day, :end :inclusive})))) + +(defn- week-range [start end] + (comparison-range start end :week)) + +(defn- month-range [start end] + (comparison-range start end :month)) + +(defn- year-range [start end] + (comparison-range start end :year)) + (defn- quarter-range [quarter year] - (let [dt (start-of-quarter quarter year)] - {:end (t/last-day-of-the-month (t/plus dt (t/months 2))) - :start (t/first-day-of-the-month dt)})) + (let [year-quarter (t/year-quarter year (case quarter + "Q1" 1 + "Q2" 2 + "Q3" 3 + "Q4" 4))] + {:start (.atDay year-quarter 1) + :end (.atEndOfQuarter year-quarter)})) (def ^:private operations-by-date-unit {"day" {:unit-range day-range @@ -67,10 +69,6 @@ "year" {:unit-range year-range :to-period t/years}}) -(defn- parse-absolute-date - [date] - (tf/parse (tf/formatters :date-opt-time) date)) - ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | DATE STRING DECODERS | @@ -84,11 +82,10 @@ :unit (conj (seq (get operations-by-date-unit group-value)) [group-label group-value]) :int-value [[group-label (Integer/parseInt group-value)]] - (:date :date-1 :date-2) [[group-label (parse-absolute-date group-value)]] + (:date :date-1 :date-2) [[group-label (u.date/parse group-value)]] [[group-label group-value]])) - -(defn- regex->parser +(s/defn ^:private regex->parser :- (s/pred fn?) "Takes a regex and labels matching the regex capturing groups. Returns a parser which takes a parameter value, validates the value against regex and gives a map of labels and group values. Respects the following special label names: @@ -96,7 +93,7 @@ :unit – finds a matching date unit and merges date unit operations to the result :int-value – converts the group value to integer :date, :date1, date2 – converts the group value to absolute date" - [regex group-labels] + [regex :- java.util.regex.Pattern, group-labels] (fn [param-value] (when-let [regex-result (re-matches regex param-value)] (into {} (mapcat expand-parser-groups group-labels (rest regex-result)))))) @@ -149,13 +146,13 @@ :filter (fn [{:keys [unit]} field] [:time-interval field :current (keyword unit)])}]) -(defn- day->iso8601 [date] - (tf/unparse (tf/formatters :year-month-day) date)) +(defn- ->iso-8601-date [t] + (t/format :iso-local-date t)) ;; TODO - using `range->filter` so much below seems silly. Why can't we just bucket the field and use `:=` clauses? (defn- range->filter [{:keys [start end]} field] - [:between [:datetime-field field :day] (day->iso8601 start) (day->iso8601 end)]) + [:between [:datetime-field field :day] (->iso-8601-date start) (->iso-8601-date end)]) (def ^:private absolute-date-string-decoders ;; year and month @@ -176,26 +173,26 @@ :range (fn [{:keys [date]} _] {:start date, :end date}) :filter (fn [{:keys [date]} field-id-clause] - (let [iso8601date (day->iso8601 date)] + (let [iso8601date (->iso-8601-date date)] [:= [:datetime-field field-id-clause :day] iso8601date]))} ;; day range {:parser (regex->parser #"([0-9-T:]+)~([0-9-T:]+)" [:date-1 :date-2]) :range (fn [{:keys [date-1 date-2]} _] {:start date-1, :end date-2}) :filter (fn [{:keys [date-1 date-2]} field-id-clause] - [:between [:datetime-field field-id-clause :day] (day->iso8601 date-1) (day->iso8601 date-2)])} + [:between [:datetime-field field-id-clause :day] (->iso-8601-date date-1) (->iso-8601-date date-2)])} ;; before day {:parser (regex->parser #"~([0-9-T:]+)" [:date]) :range (fn [{:keys [date]} _] {:end date}) :filter (fn [{:keys [date]} field-id-clause] - [:< [:datetime-field field-id-clause :day] (day->iso8601 date)])} + [:< [:datetime-field field-id-clause :day] (->iso-8601-date date)])} ;; after day {:parser (regex->parser #"([0-9-T:]+)~" [:date]) :range (fn [{:keys [date]} _] {:start date}) :filter (fn [{:keys [date]} field-id-clause] - [:> [:datetime-field field-id-clause :day] (day->iso8601 date)])}]) + [:> [:datetime-field field-id-clause :day] (->iso-8601-date date)])}]) (def ^:private all-date-string-decoders (concat relative-date-string-decoders absolute-date-string-decoders)) @@ -209,22 +206,23 @@ (parser-result-decoder parser-result decoder-param))) decoders)) -(defn date-string->range - "Takes a string description of a date range such as 'lastmonth' or '2016-07-15~2016-08-6' and return a MAP with - `:start` and `:end` as iso8601 string formatted dates, respecting the given timezone." - [date-string report-timezone] - (let [tz (t/time-zone-for-id report-timezone) - formatter-local-tz (tf/formatter "yyyy-MM-dd" tz) - formatter-no-tz (tf/formatter "yyyy-MM-dd") - today (.withTimeAtStartOfDay (t/to-time-zone (t/now) tz))] - ;; Relative dates respect the given time zone because a notion like "last 7 days" might mean a different range of - ;; days depending on the user timezone - (or (->> (execute-decoders relative-date-string-decoders :range today date-string) - (m/map-vals (partial tf/unparse formatter-local-tz))) - ;; Absolute date ranges don't need the time zone conversion because in SQL the date ranges are compared - ;; against the db field value that is casted granularity level of a day in the db time zone - (->> (execute-decoders absolute-date-string-decoders :range nil date-string) - (m/map-vals (partial tf/unparse formatter-no-tz)))))) +(s/defn date-string->range :- {(s/optional-key :start) s/Str, (s/optional-key :end) s/Str} + "Takes a string description of a date range such as `lastmonth` or `2016-07-15~2016-08-6` and returns a map with + `:start` and/or `:end` keys, as iso-8601 strings." + ([date-string :- s/Str] + (let [today (t/local-date)] + ;; Relative dates respect the given time zone because a notion like "last 7 days" might mean a different range of + ;; days depending on the user timezone + (or (->> (execute-decoders relative-date-string-decoders :range today date-string) + (m/map-vals u.date/format)) + ;; Absolute date ranges don't need the time zone conversion because in SQL the date ranges are compared + ;; against the db field value that is casted granularity level of a day in the db time zone + (->> (execute-decoders absolute-date-string-decoders :range nil date-string) + (m/map-vals u.date/format))))) + + ;; 2-arg version is for legacy compatibility only; no longer needed + ([date-string _] + (date-string->range date-string))) (s/defn date-string->filter :- mbql.s/Filter "Takes a string description of a *date* (not datetime) range such as 'lastmonth' or '2016-07-15~2016-08-6' and diff --git a/src/metabase/driver/common/parameters/parse.clj b/src/metabase/driver/common/parameters/parse.clj new file mode 100644 index 0000000000000000000000000000000000000000..efc16d4f72b3f74c4a79e873c97a505f81c8d23c --- /dev/null +++ b/src/metabase/driver/common/parameters/parse.clj @@ -0,0 +1,137 @@ +(ns metabase.driver.common.parameters.parse + (:require [clojure.string :as str] + [clojure.tools.logging :as log] + [metabase.driver.common.parameters :as i] + [metabase.query-processor.error-type :as error-type] + [metabase.util :as u] + [metabase.util.i18n :refer [tru]] + [schema.core :as s]) + (:import [metabase.driver.common.parameters Optional Param])) + +(def ^:private StringOrToken (s/cond-pre s/Str (s/enum :optional-begin :param-begin :optional-end :param-end))) + +(def ^:private ParsedToken (s/cond-pre s/Str Param Optional)) + +(defn- split-on-token-string + "Split string `s` once when substring `token-str` is encountered; replace `token-str` with `token` keyword instead. + + (split-on-token \"ABxCxD\" \"x\" :x) ;; -> [\"AB\" :x \"CxD\"]" + [^String s token-str token] + (when-let [index (str/index-of s token-str)] + (let [before (.substring s 0 index) + after (.substring s (+ index (count token-str)) (count s))] + [before token after]))) + +(defn- split-on-token-pattern + "Like `split-on-token-string`, but splits on a regular expression instead, replacing the matched group with `token`. + The pattern match an entire query, and return 3 groups — everything before the match; the match itself; and + everything after the match." + [s re token] + (when-let [[_ before _ after] (re-matches re s)] + [before token after])) + +(defn- split-on-token + [s token-str token] + ((if (string? token-str) + split-on-token-string + split-on-token-pattern) s token-str token)) + +(defn- tokenize-one [s token-str token] + (loop [acc [], s s] + (if (empty? s) + acc + (if-let [[before token after] (split-on-token s token-str token)] + (recur (into acc [before token]) after) + (conj acc s))))) + +(s/defn ^:private tokenize :- [StringOrToken] + [s :- s/Str] + (reduce + (fn [strs [token-str token]] + (filter + (some-fn keyword? seq) + (mapcat + (fn [s] + (if-not (string? s) + [s] + (tokenize-one s token-str token))) + strs))) + [s] + [["[[" :optional-begin] + ["]]" :optional-end] + ;; param-begin should only match the last two opening brackets in a sequence of > 2, e.g. + ;; [{$match: {{{x}}, field: 1}}] should parse to ["[$match: {" (param "x") ", field: 1}}]"] + [#"(?s)(.*?)(\{\{(?!\{))(.*)" :param-begin] + ["}}" :param-end]])) + +(defn- param [& [k & more]] + (when (or (seq more) + (not (string? k))) + (throw (ex-info (tru "Invalid '{{...}}' clause: expected a param name") + {:type error-type/invalid-query}))) + (let [k (str/trim k)] + (when (empty? k) + (throw (ex-info (tru "'{{...}}' clauses cannot be empty.") + {:type error-type/invalid-query}))) + (i/->Param k))) + +(defn- optional [& parsed] + (when-not (some i/Param? parsed) + (throw (ex-info (tru "'[[...]]' clauses must contain at least one '{{...}}' clause.") + {:type error-type/invalid-query}))) + (i/->Optional parsed)) + +(s/defn ^:private parse-tokens* :- [(s/one [ParsedToken] "parsed tokens") (s/one [StringOrToken] "remaining tokens")] + [tokens :- [StringOrToken], level :- s/Int] + (loop [acc [], [token & more] tokens] + (condp = token + nil + (if (pos? level) + (throw (ex-info (tru "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'") + {:type error-type/invalid-query})) + [acc nil]) + + :optional-begin + (let [[parsed more] (parse-tokens* more (inc level))] + (recur (conj acc (apply optional parsed)) more)) + + :param-begin + (let [[parsed more] (parse-tokens* more (inc level))] + (recur (conj acc (apply param parsed)) more)) + + :optional-end + (if (pos? level) + [acc more] + [(conj acc "]]" more)]) + + :param-end + (if (pos? level) + [acc more] + [(conj acc "}}") more]) + + (recur (conj acc token) more)))) + +(s/defn ^:private parse-tokens :- [ParsedToken] + [tokens :- [StringOrToken]] + (let [[parsed remaining] (parse-tokens* tokens 0) + parsed (concat parsed (when (seq remaining) + (parse-tokens remaining)))] + ;; now loop over everything in `parsed`, and if we see 2 strings next to each other put them back together + ;; e.g. [:token "x" "}}"] -> [:token "x}}"] + (loop [acc [], last (first parsed), [x & more] (rest parsed)] + (cond + (not x) (conj acc last) + (and (string? last) (string? x)) (recur acc (str last x) more) + :else (recur (conj acc last) x more))))) + +(s/defn parse :- [(s/cond-pre s/Str Param Optional)] + "Attempts to parse parameters in string `s`. Parses any optional clauses or parameters found, and returns a sequence + of non-parameter string fragments (possibly) interposed with `Param` or `Optional` instances." + [s :- s/Str] + (let [tokenized (tokenize s)] + (if (= [s] tokenized) + [s] + (do + (log/tracef "Tokenized native query ->\n%s" (u/pprint-to-str tokenized)) + (u/prog1 (parse-tokens tokenized) + (log/tracef "Parsed native query ->\n%s" (u/pprint-to-str <>))))))) diff --git a/src/metabase/query_processor/middleware/parameters/native/values.clj b/src/metabase/driver/common/parameters/values.clj similarity index 96% rename from src/metabase/query_processor/middleware/parameters/native/values.clj rename to src/metabase/driver/common/parameters/values.clj index 87550a88800d29edc5dd71d7a0eba3219e1a0219..0fac0e52f19d6023fbb27e1deb7953f98e9ed9d0 100644 --- a/src/metabase/query_processor/middleware/parameters/native/values.clj +++ b/src/metabase/driver/common/parameters/values.clj @@ -1,4 +1,4 @@ -(ns metabase.query-processor.middleware.parameters.native.values +(ns metabase.driver.common.parameters.values "These functions build a map of information about the types and values of the params used in a query. (These functions don't parse the query itself, but instead look at the values of `:template-tags` and `:parameters` passed along with the query.) @@ -9,9 +9,9 @@ :target [\"dimension\" [\"template-tag\" \"checkin_date\"]] :value \"2015-01-01~2016-09-01\"}}}" (:require [clojure.string :as str] + [metabase.driver.common.parameters :as i] [metabase.models.field :refer [Field]] [metabase.query-processor.error-type :as qp.error-type] - [metabase.query-processor.middleware.parameters.native.interface :as i] [metabase.util [i18n :as ui18n :refer [tru]] [schema :as su]] @@ -19,7 +19,7 @@ [toucan.db :as db]) (:import java.text.NumberFormat java.util.UUID - [metabase.query_processor.middleware.parameters.native.interface CommaSeparatedNumbers FieldFilter MultipleValues])) + [metabase.driver.common.parameters CommaSeparatedNumbers FieldFilter MultipleValues])) (def ^:private ParamType (s/enum :number @@ -106,7 +106,7 @@ ;; `value-info` will look something like after we remove `:target` which is not needed after this point ;; ;; {:type :date/single - ;; :value #inst "2019-09-20T19:52:00.000-07:00"} + ;; :value #t "2019-09-20T19:52:00.000-07:00"} ;; ;; (or it will be a vector of these maps for multiple values) (cond @@ -220,7 +220,7 @@ (query->params-map some-query) -> - {:checkin_date #inst \"2019-09-19T23:30:42.233-07:00\"}" + {:checkin_date #t \"2019-09-19T23:30:42.233-07:00\"}" [{tags :template-tags, params :parameters}] (into {} (for [[k tag] tags :let [v (value-for-tag tag params)] diff --git a/src/metabase/driver/h2.clj b/src/metabase/driver/h2.clj index c330427c0a083d5df902c6af83ffc6aaf06d8c7c..b08da9b2fb1aec291c07ddf40683907e1b8c0ea9 100644 --- a/src/metabase/driver/h2.clj +++ b/src/metabase/driver/h2.clj @@ -1,6 +1,7 @@ (ns metabase.driver.h2 (:require [clojure.string :as str] [honeysql.core :as hsql] + [java-time :as t] [metabase [db :as mdb] [driver :as driver] @@ -12,14 +13,11 @@ [execute :as sql-jdbc.execute] [sync :as sql-jdbc.sync]] [metabase.driver.sql.query-processor :as sql.qp] - [metabase.driver.sql.util.unprepare :as unprepare] [metabase.query-processor.store :as qp.store] [metabase.util - [date :as du] [honeysql-extensions :as hx] [i18n :refer [deferred-tru tru]]]) - (:import [java.sql ResultSet Time Types] - java.util.Date)) + (:import java.time.OffsetTime)) (driver/register! :h2, :parent :sql-jdbc) @@ -151,87 +149,86 @@ ;; ;; Postgres DATE_TRUNC('quarter', x) ;; becomes PARSEDATETIME(CONCAT(YEAR(x), ((QUARTER(x) * 3) - 2)), 'yyyyMM') -(defmethod sql.qp/date [:h2 :quarter] [_ _ expr] +(defmethod sql.qp/date [:h2 :quarter] + [_ _ expr] (parse-datetime "yyyyMM" (hx/concat (hx/year expr) (hx/- (hx/* (hx/quarter expr) 3) 2)))) -(defmethod unprepare/unprepare-value [:h2 Date] [_ value] - (format "timestamp '%s'" (du/date->iso-8601 value))) - -(prefer-method unprepare/unprepare-value [:sql Time] [:h2 Date]) - - ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | metabase.driver.sql-jdbc impls | ;;; +----------------------------------------------------------------------------------------------------------------+ -(defmethod sql-jdbc.sync/database-type->base-type :h2 [_ database-type] - ({:ARRAY :type/* - :BIGINT :type/BigInteger - :BINARY :type/* - :BIT :type/Boolean - :BLOB :type/* - :BOOL :type/Boolean - :BOOLEAN :type/Boolean - :BYTEA :type/* - :CHAR :type/Text - :CHARACTER :type/Text - :CLOB :type/Text - :DATE :type/Date - :DATETIME :type/DateTime - :DEC :type/Decimal - :DECIMAL :type/Decimal - :DOUBLE :type/Float - :FLOAT :type/Float - :FLOAT4 :type/Float - :FLOAT8 :type/Float - :GEOMETRY :type/* - :IDENTITY :type/Integer - :IMAGE :type/* - :INT :type/Integer - :INT2 :type/Integer - :INT4 :type/Integer - :INT8 :type/BigInteger - :INTEGER :type/Integer - :LONGBLOB :type/* - :LONGTEXT :type/Text - :LONGVARBINARY :type/* - :LONGVARCHAR :type/Text - :MEDIUMBLOB :type/* - :MEDIUMINT :type/Integer - :MEDIUMTEXT :type/Text - :NCHAR :type/Text - :NCLOB :type/Text - :NTEXT :type/Text - :NUMBER :type/Decimal - :NUMERIC :type/Decimal - :NVARCHAR :type/Text - :NVARCHAR2 :type/Text - :OID :type/* - :OTHER :type/* - :RAW :type/* - :REAL :type/Float - :SIGNED :type/Integer - :SMALLDATETIME :type/DateTime - :SMALLINT :type/Integer - :TEXT :type/Text - :TIME :type/Time - :TIMESTAMP :type/DateTime - :TINYBLOB :type/* - :TINYINT :type/Integer - :TINYTEXT :type/Text - :UUID :type/Text - :VARBINARY :type/* - :VARCHAR :type/Text - :VARCHAR2 :type/Text - :VARCHAR_CASESENSITIVE :type/Text - :VARCHAR_IGNORECASE :type/Text - :YEAR :type/Integer - (keyword "DOUBLE PRECISION") :type/Float} database-type)) - +(def ^:private db-type->base-type + {:ARRAY :type/* + :BIGINT :type/BigInteger + :BINARY :type/* + :BIT :type/Boolean + :BLOB :type/* + :BOOL :type/Boolean + :BOOLEAN :type/Boolean + :BYTEA :type/* + :CHAR :type/Text + :CHARACTER :type/Text + :CLOB :type/Text + :DATE :type/Date + :DATETIME :type/DateTime + :DEC :type/Decimal + :DECIMAL :type/Decimal + :DOUBLE :type/Float + :FLOAT :type/Float + :FLOAT4 :type/Float + :FLOAT8 :type/Float + :GEOMETRY :type/* + :IDENTITY :type/Integer + :IMAGE :type/* + :INT :type/Integer + :INT2 :type/Integer + :INT4 :type/Integer + :INT8 :type/BigInteger + :INTEGER :type/Integer + :LONGBLOB :type/* + :LONGTEXT :type/Text + :LONGVARBINARY :type/* + :LONGVARCHAR :type/Text + :MEDIUMBLOB :type/* + :MEDIUMINT :type/Integer + :MEDIUMTEXT :type/Text + :NCHAR :type/Text + :NCLOB :type/Text + :NTEXT :type/Text + :NUMBER :type/Decimal + :NUMERIC :type/Decimal + :NVARCHAR :type/Text + :NVARCHAR2 :type/Text + :OID :type/* + :OTHER :type/* + :RAW :type/* + :REAL :type/Float + :SIGNED :type/Integer + :SMALLDATETIME :type/DateTime + :SMALLINT :type/Integer + :TEXT :type/Text + :TIME :type/Time + :TIMESTAMP :type/DateTime + :TINYBLOB :type/* + :TINYINT :type/Integer + :TINYTEXT :type/Text + :UUID :type/Text + :VARBINARY :type/* + :VARCHAR :type/Text + :VARCHAR2 :type/Text + :VARCHAR_CASESENSITIVE :type/Text + :VARCHAR_IGNORECASE :type/Text + :YEAR :type/Integer + (keyword "DOUBLE PRECISION") :type/Float + (keyword "TIMESTAMP WITH TIME ZONE") :type/DateTimeWithLocalTZ}) + +(defmethod sql-jdbc.sync/database-type->base-type :h2 + [_ database-type] + (db-type->base-type database-type)) ;; These functions for exploding / imploding the options in the connection strings are here so we can override shady ;; options users might try to put in their connection string. e.g. if someone sets `ACCESS_MODE_DATA` to `rws` we can @@ -250,15 +247,17 @@ (file+options->connection-string file (merge options {"IFEXISTS" "TRUE" "ACCESS_MODE_DATA" "r"})))) -(defmethod sql-jdbc.conn/connection-details->spec :h2 [_ details] +(defmethod sql-jdbc.conn/connection-details->spec :h2 + [_ details] (dbspec/h2 (if mdb/*allow-potentailly-unsafe-connections* details (update details :db connection-string-set-safe-options)))) -(defmethod sql-jdbc.sync/active-tables :h2 [& args] +(defmethod sql-jdbc.sync/active-tables :h2 + [& args] (apply sql-jdbc.sync/post-filtered-active-tables args)) -;; return a normal `java.sql.Timestamp` instead of `org.h2.api.TimestampWithTimeZone` -(defmethod sql-jdbc.execute/read-column [:h2 Types/TIMESTAMP_WITH_TIMEZONE] - [_ _, ^ResultSet resultset, _, ^Integer i] - (.getTimestamp resultset i)) +(defmethod sql-jdbc.execute/set-parameter [:h2 OffsetTime] + [driver prepared-statement i t] + (let [local-time (t/local-time (t/with-offset-same-instant t (t/zone-offset 0)))] + (sql-jdbc.execute/set-parameter driver prepared-statement i local-time))) diff --git a/src/metabase/driver/impl.clj b/src/metabase/driver/impl.clj new file mode 100644 index 0000000000000000000000000000000000000000..aa473d0e5946547b11b9ef7789aaee8cce7c96fe --- /dev/null +++ b/src/metabase/driver/impl.clj @@ -0,0 +1,179 @@ +(ns metabase.driver.impl + "Internal implementation functions for `metabase.driver`. These functions live in a separate namespace to reduce the + clutter in `metabase.driver` itself." + (:require [clojure.tools.logging :as log] + [metabase.plugins.classloader :as classloader] + [metabase.util :as u] + [metabase.util.i18n :refer [trs tru]] + [schema.core :as s])) + +;;; --------------------------------------------------- Hierarchy ---------------------------------------------------- + +(defonce ^{:doc "Driver hierarchy. Used by driver multimethods for dispatch. Add new drivers with `regsiter!`."} + hierarchy + (make-hierarchy)) + +(defn registered? + "Is `driver` a valid registered driver?" + [driver] + (isa? hierarchy (keyword driver) :metabase.driver/driver)) + +(defn concrete? + "Is `driver` registered, and non-abstract?" + [driver] + (isa? hierarchy (keyword driver) ::concrete)) + +(defn abstract? + "Is `driver` an abstract \"base class\"? i.e. a driver that you cannot use directly when adding a Database, such as + `:sql` or `:sql-jdbc`." + [driver] + (not (concrete? driver))) + + +;;; -------------------------------------------- Loading Driver Namespace -------------------------------------------- + +(s/defn ^:private driver->expected-namespace [driver :- s/Keyword] + (symbol + (or (namespace driver) + (str "metabase.driver." (name driver))))) + +(defn- require-driver-ns + "`require` a driver's 'expected' namespace." + [driver & require-options] + (let [expected-ns (driver->expected-namespace driver)] + (log/debug + (trs "Loading driver {0} {1}" (u/format-color 'blue driver) (apply list 'require expected-ns require-options))) + (try + (apply classloader/require expected-ns require-options) + (catch Throwable e + (log/error e (tru "Error loading driver namespace")) + (throw (Exception. (tru "Could not load {0} driver." driver) e)))))) + +(defn load-driver-namespace-if-needed! + "Load the expected namespace for a `driver` if it has not already been registed. This only works for core Metabase + drivers, whose namespaces follow an expected pattern; drivers provided by 3rd-party plugins are expected to register + themselves in their plugin initialization code. + + You should almost never need to do this directly; it is handled automatically when dispatching on a driver and by + `register!` below (for parent drivers) and by `driver.u/database->driver` for drivers that have not yet been + loaded." + [driver] + (when-not *compile-files* + (when-not (registered? driver) + (u/profile (trs "Load driver {0}" driver) + (require-driver-ns driver) + ;; ok, hopefully it was registered now. If not, try again, but reload the entire driver namespace + (when-not (registered? driver) + (require-driver-ns driver :reload) + ;; if *still* not registered, throw an Exception + (when-not (registered? driver) + (throw (Exception. (tru "Driver not registered after loading: {0}" driver))))))))) + + +;;; -------------------------------------------------- Registration -------------------------------------------------- + +(defn check-abstractness-hasnt-changed + "Check to make sure we're not trying to change the abstractness of an already registered driver" + [driver new-abstract?] + (when (registered? driver) + (let [old-abstract? (boolean (abstract? driver)) + new-abstract? (boolean new-abstract?)] + (when (not= old-abstract? new-abstract?) + (throw (Exception. (tru "Error: attempting to change {0} property `:abstract?` from {1} to {2}." + driver old-abstract? new-abstract?))))))) + +(defn register! + "Register a driver. + + (register! :sql, :abstract? true) + + (register! :postgres, :parent :sql-jdbc) + + Valid options are: + + ###### `:parent` (default = none) + + Parent driver(s) to derive from. Drivers inherit method implementations from their parents similar to the way + inheritance works in OOP. Specify multiple direct parents by passing a collection of parents. + + You can add additional parents to a driver using `add-parent!` below; this is how test extensions are implemented. + + ###### `:abstract?` (default = false) + + Is this an abstract driver (i.e. should we hide it in the admin interface, and disallow running queries with it)? + + Note that because concreteness is implemented as part of our keyword hierarchy it is not currently possible to + create an abstract driver with a concrete driver as its parent, since it would still ultimately derive from + `::concrete`." + {:style/indent 1} + [driver & {:keys [parent abstract?]}] + {:pre [(keyword? driver)]} + ;; no-op during compilation. + (when-not *compile-files* + (let [parents (filter some? (u/one-or-many parent))] + ;; load parents as needed; if this is an abstract driver make sure parents aren't concrete + (doseq [parent parents] + (load-driver-namespace-if-needed! parent)) + (when abstract? + (doseq [parent parents + :when (concrete? parent)] + (throw (ex-info (trs "Abstract drivers cannot derive from concrete parent drivers.") + {:driver driver, :parent parent})))) + ;; validate that the registration isn't stomping on things + (check-abstractness-hasnt-changed driver abstract?) + ;; ok, if that was successful we can derive the driver from `:metabase.driver/driver`/`::concrete` and parent(s) + (let [derive! (partial alter-var-root #'hierarchy derive driver)] + (derive! :metabase.driver/driver) + (when-not abstract? + (derive! ::concrete)) + (doseq [parent parents] + (derive! parent))) + ;; ok, log our great success + (log/info + (u/format-color 'blue + (if (metabase.driver.impl/abstract? driver) + (trs "Registered abstract driver {0}" driver) + (trs "Registered driver {0}" driver))) + (if (seq parents) + (trs "(parents: {0})" (vec parents)) + "") + (u/emoji "🚚"))))) + + +;;; ------------------------------------------------- Initialization ------------------------------------------------- + +;; We'll keep track of which drivers are initialized using a set rather than adding a special key to the hierarchy or +;; something like that -- we don't want child drivers to inherit initialized status from their ancestors +(defonce ^:private initialized-drivers + ;; For the purposes of this exercise the special keywords used in the hierarchy should always be assumed to be + ;; initialized so we don't try to call initialize on them, which of course would try to load their namespaces when + ;; dispatching off `the-driver`; that would fail, so don't try it + (atom #{:metabase.driver/driver ::concrete})) + +(defn initialized? + "Has `driver` been initialized? (See `initialize!` below for a discussion of what exactly this means.)" + [driver] + (@initialized-drivers driver)) + +(defonce ^:private initialization-lock (Object.)) + +(defn initialize-if-needed! + "Initialize a driver by calling executing `(init-fn driver)` if it hasn't yet been initialized. Refer to documentation + for `metabase.driver/initialize!` for a full explanation of what this means." + [driver init-fn] + ;; no-op during compilation + (when-not *compile-files* + ;; first, initialize parents as needed + (doseq [parent (parents hierarchy driver)] + (initialize-if-needed! parent init-fn)) + (when-not (initialized? driver) + ;; if the driver is not yet initialized, acquire an exclusive lock for THIS THREAD to perform initialization to + ;; make sure no other thread tries to initialize it at the same time + (locking initialization-lock + ;; and once we acquire the lock, check one more time to make sure the driver didn't get initialized by + ;; whatever thread(s) we were waiting on. + (when-not (initialized? driver) + (log/info (u/format-color 'yellow (trs "Initializing driver {0}..." driver))) + (log/debug (trs "Reason:") (u/pprint-to-str 'blue (drop 5 (u/filtered-stacktrace (Thread/currentThread))))) + (swap! initialized-drivers conj driver) + (init-fn driver)))))) diff --git a/src/metabase/driver/mysql.clj b/src/metabase/driver/mysql.clj index c464123bc6ab95f220a5173efb057f0a3c55d04d..d7138df84d9649f05b6b9dde5c6ac6b0e11ca1d4 100644 --- a/src/metabase/driver/mysql.clj +++ b/src/metabase/driver/mysql.clj @@ -1,35 +1,29 @@ (ns metabase.driver.mysql "MySQL driver. Builds off of the SQL-JDBC driver." - (:require [clj-time - [coerce :as tcoerce] - [core :as t] - [format :as time]] - [clojure + (:require [clojure [set :as set] [string :as str]] + [clojure.java.jdbc :as jdbc] [clojure.tools.logging :as log] [honeysql.core :as hsql] + [java-time :as t] [metabase.db.spec :as dbspec] [metabase.driver :as driver] - [metabase.driver - [common :as driver.common] - [sql :as sql]] + [metabase.driver.common :as driver.common] [metabase.driver.sql-jdbc [common :as sql-jdbc.common] [connection :as sql-jdbc.conn] [execute :as sql-jdbc.execute] [sync :as sql-jdbc.sync]] [metabase.driver.sql.query-processor :as sql.qp] + [metabase.driver.sql.util.unprepare :as unprepare] + [metabase.query-processor.timezone :as qp.timezone] [metabase.util - [date :as du] [honeysql-extensions :as hx] [i18n :refer [trs]] - [ssh :as ssh]] - [schema.core :as s]) - (:import [java.sql ResultSet Time Timestamp Types] - [java.util Calendar Date TimeZone] - metabase.util.honeysql_extensions.Literal - org.joda.time.format.DateTimeFormatter)) + [ssh :as ssh]]) + (:import [java.sql ResultSet ResultSetMetaData Types] + [java.time LocalDateTime OffsetDateTime OffsetTime ZonedDateTime])) (driver/register! :mysql, :parent :sql-jdbc) @@ -42,7 +36,8 @@ (defmethod driver/supports? [:mysql :full-join] [_ _] false) -(defmethod driver/connection-properties :mysql [_] +(defmethod driver/connection-properties :mysql + [_] (ssh/with-tunnel-config [driver.common/default-host-details (assoc driver.common/default-port-details :default 3306) @@ -53,12 +48,12 @@ (assoc driver.common/default-additional-options-details :placeholder "tinyInt1isBit=false")])) - -(defmethod driver/date-add :mysql [_ dt amount unit] +(defmethod driver/date-add :mysql + [_ dt amount unit] (hsql/call :date_add dt (hsql/raw (format "INTERVAL %d %s" (int amount) (name unit))))) - -(defmethod driver/humanize-connection-error-message :mysql [_ message] +(defmethod driver/humanize-connection-error-message :mysql + [_ message] (condp re-matches message #"^Communications link failure\s+The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.$" (driver.common/connection-error-messages :cannot-connect-check-host-and-port) @@ -75,21 +70,32 @@ #".*" ; default message)) - -(defmethod driver.common/current-db-time-date-formatters :mysql [_] - (mapcat - driver.common/create-db-time-formatters - ["yyyy-MM-dd HH:mm:ss.SSSSSS zzz" - ;; In some timezones, MySQL doesn't return a timezone description but rather a truncated offset, such as - ;; '-02'. That offset will fail to parse using a regular formatter - "yyyy-MM-dd HH:mm:ss.SSSSSS Z"])) - -(defmethod driver.common/current-db-time-native-query :mysql [_] - "select CONCAT(DATE_FORMAT(current_timestamp, '%Y-%m-%d %H:%i:%S.%f' ), ' ', @@system_time_zone)") - -(defmethod driver/current-db-time :mysql [& args] - (apply driver.common/current-db-time args)) - +(defmethod driver/db-default-timezone :mysql + [_ db] + (let [spec (sql-jdbc.conn/db->pooled-connection-spec db) + sql (str "SELECT @@GLOBAL.time_zone AS global," + " @@system_time_zone AS system," + " time_format(" + " timediff(now(), convert_tz(now(), @@GLOBAL.time_zone, '+00:00'))," + " '%H:%i'" + " ) AS offset;") + [{:keys [global system offset]}] (jdbc/query spec sql) + the-valid-id (fn [zone-id] + (when zone-id + (try + (.getId (t/zone-id zone-id)) + (catch Throwable _))))] + (or + ;; if global timezone ID is 'SYSTEM', then try to use the system timezone ID + (when (= global "SYSTEM") + (the-valid-id system)) + ;; otherwise try to use the global ID + (the-valid-id global) + ;; failing that, calculate the offset between now in the global timezone and now in UTC. Non-negative offsets + ;; don't come back with `+` so add that if needed + (if (str/starts-with? offset "-") + offset + (str \+ offset))))) ;; MySQL LIKE clauses are case-sensitive or not based on whether the collation of the server and the columns ;; themselves. Since this isn't something we can really change in the query itself don't present the option to the @@ -104,93 +110,15 @@ (defmethod sql.qp/unix-timestamp->timestamp [:mysql :seconds] [_ _ expr] (hsql/call :from_unixtime expr)) - (defn- date-format [format-str expr] (hsql/call :date_format expr (hx/literal format-str))) (defn- str-to-date [format-str expr] (hsql/call :str_to_date expr (hx/literal format-str))) -(def ^:private ^DateTimeFormatter timezone-offset-formatter - "JodaTime formatter that returns just the raw timezone offset, e.g. `-08:00` or `+00:00`." - (time/formatter "ZZ")) - -;; TODO - we should rewrite `metabase.driver.sql-jdbc.execute/set-parameters-with-timezone` as a generalized -;; multimethod like we did for `read-columns`, and then we can override that here instead of this crazy crazy messiness -(defn- timezone-id->offset-str - "Get an appropriate timezone offset string for a timezone with `timezone-id` and `date-time`. MySQL only accepts - these offsets as strings like `-8:00`. - - (timezone-id->offset-str \"US/Pacific\", date-time) ; -> \"-08:00\" - - Returns `nil` if `timezone-id` is itself `nil`. The `date-time` must be included as some timezones vary their - offsets at different times of the year (i.e. daylight savings time)." - [^String timezone-id date-time] - (when timezone-id - (time/unparse (.withZone timezone-offset-formatter (t/time-zone-for-id timezone-id)) date-time))) - -(def ^:private ^TimeZone utc (TimeZone/getTimeZone "UTC")) -(def ^:private utc-hsql-offset (hx/literal "+00:00")) - -(s/defn ^:private create-hsql-for-date - "Returns an HoneySQL structure representing the date for MySQL. If there's a report timezone, we need to ensure the - timezone conversion is wrapped around the `date-literal-or-string`. It supports both an `hx/literal` and a plain - string depending on whether or not the date value should be emedded in the statement or separated as a prepared - statement parameter. Use a string for prepared statement values, a literal if you want it embedded in the statement" - [date-obj :- java.util.Date - date-literal-or-string :- (s/either s/Str Literal)] - (let [date-as-dt (tcoerce/from-date date-obj) - report-timezone-offset-str (timezone-id->offset-str (driver/report-timezone) date-as-dt)] - (if (and report-timezone-offset-str - (not (.hasSameRules utc (TimeZone/getTimeZone (driver/report-timezone))))) - ;; if we have a report timezone we want to generate SQL like convert_tz('2004-01-01T12:00:00','-8:00','-2:00') - ;; to convert our timestamp from the UTC timezone -> report timezone. Note `date-object-literal` is assumed to be - ;; in UTC as `du/format-date` is being used which defaults to UTC. - ;; See https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_convert-tz - ;; (We're using raw offsets for the JVM/report timezone instead of the timezone ID because we can't be 100% sure that - ;; MySQL will accept either of our timezone IDs as valid.) - ;; - ;; Note there's a small chance that report timezone will never be set on the MySQL connection, if attempting to - ;; do so fails because the ID is valid; if the report timezone is different from the MySQL database's timezone, - ;; this will result in the `convert_tz()` call below being incorrect. Unfortunately we don't currently have a - ;; way to determine that setting a timezone has failed for the current query, since it actualy is attempted - ;; after the query is compiled. Hopefully situtations where that happens are rare; at any rate it's probably - ;; preferable to have timezones slightly wrong in these rare theoretical situations, instead of all the time, as - ;; was the previous behavior. - (hsql/call :convert_tz - date-literal-or-string - utc-hsql-offset - (hx/literal report-timezone-offset-str)) - ;; otherwise if we don't have a report timezone we can continue to pass the object as-is, e.g. as a prepared - ;; statement param - date-obj))) - -;; MySQL doesn't seem to correctly want to handle timestamps no matter how nicely we ask. SAD! Thus we will just -;; convert them to appropriate timestamp literals and include functions to convert timezones as needed -(defmethod sql.qp/->honeysql [:mysql Date] - [_ date] - (create-hsql-for-date date (hx/literal (du/format-date :date-hour-minute-second-ms date)))) - -;; The sql.qp/->honeysql entrypoint is used by MBQL, but native queries with field filters have the same issue. Below -;; will return a map that will be used in the prepared statement to correctly convert and parameterize the date -(s/defmethod sql/->prepared-substitution [:mysql Date] :- sql/PreparedStatementSubstitution - [_ date] - (let [date-str (du/format-date :date-hour-minute-second-ms date)] - (sql/make-stmt-subs (-> (create-hsql-for-date date date-str) - hx/->date - (hsql/format :quoting :mysql, :allow-dashed-names? true) - first) - [date-str]))) - -(defmethod sql.qp/->honeysql [:mysql Time] - [_ time-value] - (hx/->time time-value)) - - ;; Since MySQL doesn't have date_trunc() we fake it by formatting a date to an appropriate string and then converting ;; back to a date. See http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_date-format for an ;; explanation of format specifiers (defn- trunc-with-format [format-str expr] (str-to-date format-str (date-format format-str expr))) - (defmethod sql.qp/date [:mysql :default] [_ _ expr] expr) (defmethod sql.qp/date [:mysql :minute] [_ _ expr] (trunc-with-format "%Y-%m-%d %H:%i" expr)) (defmethod sql.qp/date [:mysql :minute-of-hour] [_ _ expr] (hx/minute expr)) @@ -236,7 +164,8 @@ ;;; | metabase.driver.sql-jdbc impls | ;;; +----------------------------------------------------------------------------------------------------------------+ -(defmethod sql-jdbc.sync/database-type->base-type :mysql [_ database-type] +(defmethod sql-jdbc.sync/database-type->base-type :mysql + [_ database-type] ({:BIGINT :type/BigInteger :BINARY :type/* :BIT :type/Boolean @@ -261,7 +190,7 @@ :SMALLINT :type/Integer :TEXT :type/Text :TIME :type/Time - :TIMESTAMP :type/DateTime + :TIMESTAMP :type/DateTimeWithLocalTZ ; stored as UTC in the database :TINYBLOB :type/* :TINYINT :type/Integer :TINYTEXT :type/Text @@ -324,25 +253,62 @@ [_] "SET @@session.time_zone = %s;") -;; MariaDB refuses to respect timezones when returning timestamps so we'll just ask it to return them as strings -;; instead which at least are always in UTC which means we can handle timezones ourselves -(defmethod sql-jdbc.execute/read-column [:mysql Types/TIME] - [_ _, ^ResultSet resultset, _, ^Integer i] - (when-let [time-str (.getString resultset i)] - ;; time str comes back like append 'Z' so we always parse as UTC - (Time. (.getTime (tcoerce/to-sql-time (str time-str "Z")))))) - -(defn- get-string-datetime ^Timestamp [^Calendar calendar, ^ResultSet resultset, ^Integer i] - ;; similar to what we do with Times, fetch the Date or Timestamp as a string (always in UTC) then parse it for the - ;; current timezone which will give us the correct results - (if calendar - (some-> (.getString resultset i) (du/->Timestamp (.getTimeZone calendar))) - (.getObject resultset i))) +(defmethod sql-jdbc.execute/set-parameter [:mysql OffsetTime] + [driver ps i t] + ;; convert to a LocalTime so MySQL doesn't get F U S S Y + (sql-jdbc.execute/set-parameter driver ps i (t/local-time (t/with-offset-same-instant t (t/zone-offset 0))))) +;; Regardless of session timezone it seems to be the case that OffsetDateTimes get normalized to UTC inside MySQL +;; +;; Since MySQL TIMESTAMPs aren't timezone-aware this means comparisons are done between timestamps in the report +;; timezone and the local datetime portion of the parameter, in UTC. Bad! +;; +;; Convert it to a LocalDateTime, in the report timezone, so comparisions will work correctly. +;; +;; See also — https://dev.mysql.com/doc/refman/5.5/en/datetime.html +;; +;; TIMEZONE FIXME — not 100% sure this behavior makes sense +(defmethod sql-jdbc.execute/set-parameter [:mysql OffsetDateTime] + [driver ^java.sql.PreparedStatement ps ^Integer i t] + (let [zone (t/zone-id (qp.timezone/results-timezone-id)) + offset (.. zone getRules (getOffset (t/instant t))) + t (t/local-date-time (t/with-offset-same-instant t offset))] + (sql-jdbc.execute/set-parameter driver ps i t))) + +;; MySQL TIMESTAMPS are actually TIMESTAMP WITH LOCAL TIME ZONE, i.e. they are stored normalized to UTC when stored. +;; However, MySQL returns them in the report time zone in an effort to make our lives horrible. +;; +;; Check and see if the column type is `TIMESTAMP` (as opposed to `DATETIME`, which is the equivalent of +;; LocalDateTime), and normalize it to a UTC timestamp if so. (defmethod sql-jdbc.execute/read-column [:mysql Types/TIMESTAMP] - [_ calendar resultset _ i] - (get-string-datetime calendar resultset i)) - -(defmethod sql-jdbc.execute/read-column [:mysql Types/DATE] - [_ calendar resultset _ i] - (get-string-datetime calendar resultset i)) + [_ _ ^ResultSet rs ^ResultSetMetaData rsmeta ^Integer i] + (let [t (.getObject rs i LocalDateTime)] + (if (= (.getColumnTypeName rsmeta i) "TIMESTAMP") + (t/with-offset-same-instant (t/offset-date-time t (t/zone-id (qp.timezone/results-timezone-id))) (t/zone-offset 0)) + t))) + +(defn- format-offset [t] + (let [offset (t/format "ZZZZZ" (t/zone-offset t))] + (if (= offset "Z") + "UTC" + offset))) + +(defmethod unprepare/unprepare-value [:mysql OffsetTime] + [_ t] + ;; MySQL doesn't support timezone offsets in literals so pass in a local time literal wrapped in a call to convert + ;; it to the appropriate timezone + (format "convert_tz('%s', '%s', @@session.time_zone)" + (t/format "HH:mm:ss.SSS" t) + (format-offset t))) + +(defmethod unprepare/unprepare-value [:mysql OffsetDateTime] + [_ t] + (format "convert_tz('%s', '%s', @@session.time_zone)" + (t/format "yyyy-MM-dd HH:mm:ss.SSS" t) + (format-offset t))) + +(defmethod unprepare/unprepare-value [:mysql ZonedDateTime] + [_ t] + (format "convert_tz('%s', '%s', @@session.time_zone)" + (t/format "yyyy-MM-dd HH:mm:ss.SSS" t) + (str (t/zone-id t)))) diff --git a/src/metabase/driver/postgres.clj b/src/metabase/driver/postgres.clj index cd02f2db42f6ed1767ed3f7abdbf717bdd92bdf5..f1577df57e992735e1062e87767bc784e6c4deff 100644 --- a/src/metabase/driver/postgres.clj +++ b/src/metabase/driver/postgres.clj @@ -3,9 +3,11 @@ for JDBC-based drivers." (:require [clojure [set :as set] - [string :as str]] + [string :as str]] [clojure.java.jdbc :as jdbc] + [clojure.tools.logging :as log] [honeysql.core :as hsql] + [java-time :as t] [metabase.db.spec :as db.spec] [metabase.driver :as driver] [metabase.driver.common :as driver.common] @@ -17,10 +19,11 @@ [metabase.driver.sql.query-processor :as sql.qp] [metabase.driver.sql.util.unprepare :as unprepare] [metabase.util - [date :as du] + [date-2 :as u.date] [honeysql-extensions :as hx] [ssh :as ssh]]) - (:import java.sql.Time + (:import [java.sql ResultSet ResultSetMetaData Time Types] + [java.time LocalDateTime OffsetDateTime OffsetTime] [java.util Date UUID])) (driver/register! :postgres, :parent :sql-jdbc) @@ -159,7 +162,7 @@ (defmethod unprepare/unprepare-value [:postgres Date] [_ value] - (format "'%s'::timestamp" (du/date->iso-8601 value))) + (format "'%s'::timestamp" (u.date/format value))) (prefer-method unprepare/unprepare-value [:sql Time] [:postgres Date]) @@ -216,9 +219,9 @@ :smallserial :type/Integer :text :type/Text :time :type/Time - :timetz :type/Time + :timetz :type/TimeWithLocalTZ :timestamp :type/DateTime - :timestamptz :type/DateTime + :timestamptz :type/DateTimeWithLocalTZ :tsquery :type/* :tsvector :type/* :txid_snapshot :type/* @@ -277,3 +280,30 @@ (defmethod sql-jdbc.execute/set-timezone-sql :postgres [_] "SET SESSION TIMEZONE TO %s;") + +;; for some reason postgres `TIMESTAMP WITH TIME ZONE` columns still come back as `Type/TIMESTAMP`, which seems like a +;; bug with the JDBC driver? +(defmethod sql-jdbc.execute/read-column [:postgres Types/TIMESTAMP] + [_ _ ^ResultSet rs ^ResultSetMetaData rsmeta ^Integer i] + (let [^Class klass (if (= (str/lower-case (.getColumnTypeName rsmeta i)) "timestamptz") + OffsetDateTime + LocalDateTime)] + (.getObject rs i klass))) + +;; Sometimes Postgres times come back as strings like `07:23:18.331+00` (no minute in offset) and there's a bug in the +;; JDBC driver where it can't parse those correctly. We can do it ourselves in that case. +(defmethod sql-jdbc.execute/read-column [:postgres Types/TIME] + [driver _ ^ResultSet rs rsmeta ^Integer i] + (let [parent-method (get-method sql-jdbc.execute/read-column [:sql-jdbc Types/TIME])] + (try + (parent-method driver nil rs rsmeta i) + (catch Throwable _ + (let [s (.getString rs i)] + (log/tracef "Error in Postgres JDBC driver reading TIME value, fetching as string '%s'" s) + (u.date/parse s)))))) + +;; Postgres doesn't support OffsetTime +(defmethod sql-jdbc.execute/set-parameter [:postgres OffsetTime] + [driver prepared-statement i t] + (let [local-time (t/local-time (t/with-offset-same-instant t (t/zone-offset 0)))] + (sql-jdbc.execute/set-parameter driver prepared-statement i local-time))) diff --git a/src/metabase/driver/sql.clj b/src/metabase/driver/sql.clj index d10d884f7d6ba16cd32e73b28174d1e4836a0bd1..30e53f70b6e210bb35234161c5a2141a5c222dfb 100644 --- a/src/metabase/driver/sql.clj +++ b/src/metabase/driver/sql.clj @@ -1,86 +1,53 @@ (ns metabase.driver.sql "Shared code for all drivers that use SQL under the hood." - (:require [honeysql.core :as hsql] - [metabase.driver :as driver] + (:require [metabase.driver :as driver] + [metabase.driver.common.parameters + [parse :as params.parse] + [values :as params.values]] + [metabase.driver.sql.parameters + [substitute :as params.substitute] + [substitution :as param-substitution]] [metabase.driver.sql.query-processor :as sql.qp] - [schema.core :as s]) - (:import clojure.lang.Keyword - honeysql.types.SqlCall - java.util.Date)) + [potemkin :as p])) -(driver/register! :sql, :abstract? true) - -(defmethod driver/supports? [:sql :standard-deviation-aggregations] [_ _] true) -(defmethod driver/supports? [:sql :foreign-keys] [_ _] true) -(defmethod driver/supports? [:sql :expressions] [_ _] true) -(defmethod driver/supports? [:sql :expression-aggregations] [_ _] true) -(defmethod driver/supports? [:sql :native-parameters] [_ _] true) -(defmethod driver/supports? [:sql :nested-queries] [_ _] true) -(defmethod driver/supports? [:sql :binning] [_ _] true) +(comment param-substitution/keep-me) ; this is so `cljr-clean-ns` and the liner don't remove the `:require` -(defmethod driver/supports? [:sql :left-join] [driver _] (driver/supports? driver :foreign-keys)) -(defmethod driver/supports? [:sql :right-join] [driver _] (driver/supports? driver :foreign-keys)) -(defmethod driver/supports? [:sql :inner-join] [driver _] (driver/supports? driver :foreign-keys)) -(defmethod driver/supports? [:sql :full-join] [driver _] (driver/supports? driver :foreign-keys)) +(driver/register! :sql, :abstract? true) -(defmethod driver/mbql->native :sql [driver query] +(doseq [feature [:standard-deviation-aggregations + :foreign-keys + :expressions + :expression-aggregations + :native-parameters + :nested-queries + :binning]] + (defmethod driver/supports? [:sql feature] [_ _] true)) + +(doseq [join-feature [:left-join + :right-join + :inner-join + :full-join]] + (defmethod driver/supports? [:sql join-feature] + [driver _] + (driver/supports? driver :foreign-keys))) + +(defmethod driver/mbql->native :sql + [driver query] (sql.qp/mbql->native driver query)) +(defmethod driver/substitue-native-parameters :sql + [_ {:keys [query] :as inner-query}] + (let [[query params] (-> query + params.parse/parse + (params.substitute/substitute (params.values/query->params-map inner-query)))] + {:query query + :params params})) + ;;; +----------------------------------------------------------------------------------------------------------------+ -;;; | ->prepared-substitution Multimethod | +;;; | Convenience Imports | ;;; +----------------------------------------------------------------------------------------------------------------+ -(defmulti ->prepared-substitution - "Returns a `PreparedStatementSubstitution` for `x` and the given driver. This allows driver specific parameters and - SQL replacement text (usually just ?). The param value is already prepared and ready for inlcusion in the query, - such as what's needed for SQLite and timestamps." - {:arglists '([driver x])} - (fn [driver x] [(driver/dispatch-on-initialized-driver driver) (class x)]) - :hierarchy #'driver/hierarchy) - - -(def PreparedStatementSubstitution - "Represents the SQL string replace value (usually ?) and the typed parameter value" - {:sql-string s/Str - :param-values [s/Any]}) - -(s/defn make-stmt-subs :- PreparedStatementSubstitution - "Create a `PreparedStatementSubstitution` map for `sql-string` and the `param-seq`" - [sql-string param-seq] - {:sql-string sql-string - :param-values param-seq}) - -(s/defn ^:private honeysql->prepared-stmt-subs - "Convert X to a replacement snippet info map by passing it to HoneySQL's `format` function." - [driver x] - (let [[snippet & args] (hsql/format x, :quoting (sql.qp/quote-style driver), :allow-dashed-names? true)] - (make-stmt-subs snippet args))) - -(s/defmethod ->prepared-substitution [:sql nil] :- PreparedStatementSubstitution - [driver _] - (honeysql->prepared-stmt-subs driver nil)) - -(s/defmethod ->prepared-substitution [:sql Object] :- PreparedStatementSubstitution - [driver obj] - (honeysql->prepared-stmt-subs driver (str obj))) - -(s/defmethod ->prepared-substitution [:sql Number] :- PreparedStatementSubstitution - [driver num] - (honeysql->prepared-stmt-subs driver num)) - -(s/defmethod ->prepared-substitution [:sql Boolean] :- PreparedStatementSubstitution - [driver b] - (honeysql->prepared-stmt-subs driver b)) - -(s/defmethod ->prepared-substitution [:sql Keyword] :- PreparedStatementSubstitution - [driver kwd] - (honeysql->prepared-stmt-subs driver kwd)) - -(s/defmethod ->prepared-substitution [:sql SqlCall] :- PreparedStatementSubstitution - [driver sql-call] - (honeysql->prepared-stmt-subs driver sql-call)) +(p/import-vars [param-substitution ->prepared-substitution PreparedStatementSubstitution]) -(s/defmethod ->prepared-substitution [:sql Date] :- PreparedStatementSubstitution - [driver date] - (make-stmt-subs "?" [date])) +;; TODO - we should add imports for `sql.qp` and other namespaces to make driver implementation more straightforward diff --git a/src/metabase/query_processor/middleware/parameters/native/substitute.clj b/src/metabase/driver/sql/parameters/substitute.clj similarity index 72% rename from src/metabase/query_processor/middleware/parameters/native/substitute.clj rename to src/metabase/driver/sql/parameters/substitute.clj index 915ce843d4989aba6dfe82f4e7894df2aed56df7..1168608993a9f28f8b3c97323b4257263f5ec05a 100644 --- a/src/metabase/query_processor/middleware/parameters/native/substitute.clj +++ b/src/metabase/driver/sql/parameters/substitute.clj @@ -1,11 +1,11 @@ -(ns metabase.query-processor.middleware.parameters.native.substitute +(ns metabase.driver.sql.parameters.substitute (:require [clojure.string :as str] - [metabase.query-processor.middleware.parameters.native - [interface :as i] - [substitution :as substitution]] + [metabase.driver.common.parameters :as i] + [metabase.driver.sql.parameters.substitution :as substitution] + [metabase.query-processor.error-type :as error-type] [metabase.util.i18n :refer [tru]])) -(defn- substitute-field-filter [param->value [sql args missing] in-optional? k {:keys [field value], :as v}] +(defn- substitute-field-filter [[sql args missing] in-optional? k {:keys [field value], :as v}] (if (and (= i/no-value value) in-optional?) ;; no-value field filters inside optional clauses are ignored, and eventually emitted entirely [sql args (conj missing k)] @@ -19,7 +19,7 @@ (let [v (get param->value k)] (cond (i/FieldFilter? v) - (substitute-field-filter param->value [sql args missing] in-optional? k v) + (substitute-field-filter [sql args missing] in-optional? k v) (= i/no-value v) [sql args (conj missing k)] @@ -30,13 +30,15 @@ (declare substitute*) -(defn- substitute-optional [param->value [sql args missing] in-optional? {subclauses :args}] +(defn- substitute-optional [param->value [sql args missing] {subclauses :args}] (let [[opt-sql opt-args opt-missing] (substitute* param->value subclauses true)] (if (seq opt-missing) [sql args missing] [(str sql opt-sql) (concat args opt-args) missing]))) -(defn- substitute* [param->value parsed in-optional?] +(defn- substitute* + "Returns a sequence of `[replaced-sql-string jdbc-args missing-parameters]`." + [param->value parsed in-optional?] (reduce (fn [[sql args missing] x] (cond @@ -47,7 +49,7 @@ (substitute-param param->value [sql args missing] in-optional? x) (i/Optional? x) - (substitute-optional param->value [sql args missing] in-optional? x))) + (substitute-optional param->value [sql args missing] x))) nil parsed)) @@ -62,5 +64,6 @@ [parsed-query param->value] (let [[sql args missing] (substitute* param->value parsed-query false)] (when (seq missing) - (throw (Exception. (tru "Cannot run query: missing required parameters: {0}" (set missing))))) + (throw (ex-info (tru "Cannot run the query: missing required parameters: {0}" (set missing)) + {:type error-type/invalid-query}))) [(str/trim sql) args])) diff --git a/src/metabase/query_processor/middleware/parameters/native/substitution.clj b/src/metabase/driver/sql/parameters/substitution.clj similarity index 58% rename from src/metabase/query_processor/middleware/parameters/native/substitution.clj rename to src/metabase/driver/sql/parameters/substitution.clj index 874e82cdaa4a43f9914bca234942b7fe0cc5e527..0bd670d3dce74ea380f285b5f5383bb4dd866a0e 100644 --- a/src/metabase/query_processor/middleware/parameters/native/substitution.clj +++ b/src/metabase/driver/sql/parameters/substitution.clj @@ -1,30 +1,95 @@ -(ns metabase.query-processor.middleware.parameters.native.substitution +(ns metabase.driver.sql.parameters.substitution "These functions take the info for a param fetched by the functions above and add additional info about how that param should be represented as SQL. (Specifically, they return information in this format: {;; appropriate SQL that should be used to replace the param snippet, e.g. {{x}} :replacement-snippet \"= ?\" ;; ; any prepared statement args (values for `?` placeholders) needed for the replacement snippet - :prepared-statement-args [#inst \"2017-01-01\"]}" + :prepared-statement-args [#t \"2017-01-01\"]}" (:require [clojure.string :as str] [honeysql.core :as hsql] [metabase.driver :as driver] - [metabase.driver.sql :as sql] + [metabase.driver.common.parameters :as i] + [metabase.driver.common.parameters.dates :as date-params] [metabase.driver.sql.query-processor :as sql.qp] - [metabase.query-processor.middleware.parameters.dates :as date-params] - [metabase.query-processor.middleware.parameters.native.interface :as i] + [metabase.query-processor.timezone :as qp.timezone] [metabase.util - [date :as du] + [date-2 :as u.date] + [i18n :refer [tru]] [schema :as su]] [schema.core :as s]) (:import clojure.lang.Keyword honeysql.types.SqlCall + java.time.temporal.Temporal java.util.UUID - [metabase.query_processor.middleware.parameters.native.interface CommaSeparatedNumbers Date DateRange - FieldFilter MultipleValues])) + [metabase.driver.common.parameters CommaSeparatedNumbers Date DateRange FieldFilter MultipleValues])) + + +;;; ------------------------------------ ->prepared-substitution & default impls ------------------------------------- + +(defmulti ->prepared-substitution + "Returns a `PreparedStatementSubstitution` (see schema below) for `x` and the given driver. This allows driver + specific parameters and SQL replacement text (usually just ?). The param value is already prepared and ready for + inlcusion in the query, such as what's needed for SQLite and timestamps." + {:arglists '([driver x])} + (fn [driver x] [(driver/dispatch-on-initialized-driver driver) (class x)]) + :hierarchy #'driver/hierarchy) + +(def PreparedStatementSubstitution + "Represents the SQL string replace value (usually ?) and the typed parameter value" + {:sql-string s/Str + :param-values [s/Any]}) + +(s/defn make-stmt-subs :- PreparedStatementSubstitution + "Create a `PreparedStatementSubstitution` map for `sql-string` and the `param-seq`" + [sql-string param-seq] + {:sql-string sql-string + :param-values param-seq}) + +(s/defn ^:private honeysql->prepared-stmt-subs + "Convert X to a replacement snippet info map by passing it to HoneySQL's `format` function." + [driver x] + (let [[snippet & args] (hsql/format x, :quoting (sql.qp/quote-style driver), :allow-dashed-names? true)] + (make-stmt-subs snippet args))) + +(s/defmethod ->prepared-substitution [:sql nil] :- PreparedStatementSubstitution + [driver _] + (honeysql->prepared-stmt-subs driver nil)) + +(s/defmethod ->prepared-substitution [:sql Object] :- PreparedStatementSubstitution + [driver obj] + (honeysql->prepared-stmt-subs driver (str obj))) + +(s/defmethod ->prepared-substitution [:sql Number] :- PreparedStatementSubstitution + [driver num] + (honeysql->prepared-stmt-subs driver num)) + +(s/defmethod ->prepared-substitution [:sql Boolean] :- PreparedStatementSubstitution + [driver b] + (honeysql->prepared-stmt-subs driver b)) + +(s/defmethod ->prepared-substitution [:sql Keyword] :- PreparedStatementSubstitution + [driver kwd] + (honeysql->prepared-stmt-subs driver kwd)) + +(s/defmethod ->prepared-substitution [:sql SqlCall] :- PreparedStatementSubstitution + [driver sql-call] + (honeysql->prepared-stmt-subs driver sql-call)) + +;; TIMEZONE FIXME - remove this since we aren't using `Date` anymore +(s/defmethod ->prepared-substitution [:sql Date] :- PreparedStatementSubstitution + [driver date] + (make-stmt-subs "?" [date])) + +(s/defmethod ->prepared-substitution [:sql Temporal] :- PreparedStatementSubstitution + [driver t] + (make-stmt-subs "?" [t])) + + +;;; ------------------------------------------- ->replacement-snippet-info ------------------------------------------- (def ^:private ParamSnippetInfo - {(s/optional-key :replacement-snippet) s/Str ; allowed to be blank if this is an optional param + {(s/optional-key :replacement-snippet) s/Str ; allowed to be blank if this is an optional param (s/optional-key :prepared-statement-args) [s/Any]}) (defmulti ->replacement-snippet-info @@ -36,7 +101,7 @@ class) (defn- create-replacement-snippet [nil-or-obj] - (let [{:keys [sql-string param-values]} (sql/->prepared-substitution driver/*driver* nil-or-obj)] + (let [{:keys [sql-string param-values]} (->prepared-substitution driver/*driver* nil-or-obj)] {:replacement-snippet sql-string :prepared-statement-args param-values})) @@ -80,12 +145,18 @@ {:replacement-snippet (str/join ", " (map :replacement-snippet values)) :prepared-statement-args (apply concat (map :prepared-statement-args values))})) +(defn- maybe-parse-temporal-literal [x] + (condp instance? x + String (u.date/parse x (qp.timezone/report-timezone-id-if-supported)) + Temporal x + (throw (Exception. (tru "Don''t know how to parse {0} {1}" (class x) x))))) + (defmethod ->replacement-snippet-info Date [{:keys [s]}] - (create-replacement-snippet (du/->Timestamp s))) + (create-replacement-snippet (maybe-parse-temporal-literal s))) (defn- prepared-ts-subs [operator date-str] - (let [{:keys [sql-string param-values]} (sql/->prepared-substitution driver/*driver* (du/->Timestamp date-str))] + (let [{:keys [sql-string param-values]} (->prepared-substitution driver/*driver* (maybe-parse-temporal-literal date-str))] {:replacement-snippet (str operator " " sql-string) :prepared-statement-args param-values})) @@ -102,9 +173,13 @@ (prepared-ts-subs \> start) :else - (let [params (map (comp #(sql/->prepared-substitution driver/*driver* %) du/->Timestamp) [start end])] - {:replacement-snippet (apply format "BETWEEN %s AND %s" (map :sql-string params)), - :prepared-statement-args (vec (mapcat :param-values params))}))) + ;; TIMEZONE FIXME - this is WRONG WRONG WRONG because date ranges should be inclusive for start and *exclusive* + ;; for end + (let [[start end] (map (fn [s] + (->prepared-substitution driver/*driver* (maybe-parse-temporal-literal s))) + [start end])] + {:replacement-snippet (format "BETWEEN %s AND %s" (:sql-string start) (:sql-string end)) + :prepared-statement-args (concat (:param-values start) (:param-values end))}))) ;;; ------------------------------------- Field Filter replacement snippet info -------------------------------------- @@ -115,14 +190,10 @@ {:replacement-snippet (str \( (str/join " AND " (map :replacement-snippet replacement-snippet-maps)) \)) :prepared-statement-args (reduce concat (map :prepared-statement-args replacement-snippet-maps))}) -(defn- relative-date-param-type? [param-type] - (contains? #{:date/range :date/month-year :date/quarter-year :date/relative :date/all-options} param-type)) - ;; for relative dates convert the param to a `DateRange` record type and call `->replacement-snippet-info` on it (s/defn ^:private relative-date-field-filter->replacement-snippet-info :- ParamSnippetInfo [value] - ;; TODO - get timezone from query dict - (-> (date-params/date-string->range value (.getID du/*report-timezone*)) + (-> (date-params/date-string->range value (qp.timezone/results-timezone-id)) i/map->DateRange ->replacement-snippet-info)) @@ -142,13 +213,13 @@ [{param-type :type, value :value} :- i/ParamValue] (cond ;; convert relative dates to approprate date range representations - (relative-date-param-type? param-type) (relative-date-field-filter->replacement-snippet-info value) + (date-params/relative-date-param-type? param-type) (relative-date-field-filter->replacement-snippet-info value) ;; convert all other dates to `= <date>` - (date-params/date-type? param-type) (field-filter->equals-clause-sql (i/map->Date {:s value})) + (date-params/date-type? param-type) (field-filter->equals-clause-sql (i/map->Date {:s value})) ;; for sequences of multiple values we want to generate an `IN (...)` clause - (sequential? value) (field-filter-multiple-values->in-clause-sql value) + (sequential? value) (field-filter-multiple-values->in-clause-sql value) ;; convert everything else to `= <value>` - :else (field-filter->equals-clause-sql value))) + :else (field-filter->equals-clause-sql value))) (s/defn ^:private honeysql->replacement-snippet-info :- ParamSnippetInfo "Convert `x` to a replacement snippet info map by passing it to HoneySQL's `format` function." diff --git a/src/metabase/driver/sql/query_processor.clj b/src/metabase/driver/sql/query_processor.clj index 44f02009dea7fb2d5f40af81f97186761735c585..4d320f4805cda314d5b57601ae0db6f17131853f 100644 --- a/src/metabase/driver/sql/query_processor.clj +++ b/src/metabase/driver/sql/query_processor.clj @@ -21,7 +21,7 @@ [metabase.query-processor.middleware.annotate :as annotate] [metabase.util [honeysql-extensions :as hx] - [i18n :refer [deferred-tru tru]] + [i18n :refer [deferred-tru]] [schema :as su]] [potemkin.types :as p.types] [pretty.core :refer [PrettyPrintable]] @@ -68,7 +68,7 @@ (defmethod current-datetime-fn :sql [_] :%now) - +;; TODO - rename this to `date-bucket` or something that better describes what it actually does (defmulti date "Return a HoneySQL form for truncating a date or timestamp field or value to a given resolution, or extracting a date component." @@ -215,6 +215,22 @@ (binding [*table-alias* alias] (->honeysql driver field))) +;; (p.types/defrecord+ AtTimezone [expr timezone-id] +;; PrettyPrintable +;; (pretty [_] +;; (list 'at-timezone expr timezone-id)) + +;; hformat/ToSql +;; (to-sql [_] +;; (format "(%s at time zone '%s')" (hformat/to-sql expr) timezone-id))) + +;; (defn at-timezone +;; ([expr] +;; (at-timezone expr (qp.timezone/results-timezone-id))) + +;; ([expr timezone-id] +;; (AtTimezone. expr timezone-id))) + (defmethod ->honeysql [:sql :datetime-field] [driver [_ field unit]] (date driver unit (->honeysql driver field))) @@ -428,45 +444,56 @@ [value :- (s/constrained mbql.s/value #(string? (second %)) "string value"), f] (update value 1 f)) -(defmethod ->honeysql [:sql :starts-with] [driver [_ field value options]] +(defmethod ->honeysql [:sql :starts-with] + [driver [_ field value options]] (like-clause driver (->honeysql driver field) (update-string-value value #(str % \%)) options)) -(defmethod ->honeysql [:sql :contains] [driver [_ field value options]] +(defmethod ->honeysql [:sql :contains] + [driver [_ field value options]] (like-clause driver (->honeysql driver field) (update-string-value value #(str \% % \%)) options)) -(defmethod ->honeysql [:sql :ends-with] [driver [_ field value options]] +(defmethod ->honeysql [:sql :ends-with] + [driver [_ field value options]] (like-clause driver (->honeysql driver field) (update-string-value value #(str \% %)) options)) -(defmethod ->honeysql [:sql :between] [driver [_ field min-val max-val]] +(defmethod ->honeysql [:sql :between] + [driver [_ field min-val max-val]] [:between (->honeysql driver field) (->honeysql driver min-val) (->honeysql driver max-val)]) - -(defmethod ->honeysql [:sql :>] [driver [_ field value]] +(defmethod ->honeysql [:sql :>] + [driver [_ field value]] [:> (->honeysql driver field) (->honeysql driver value)]) -(defmethod ->honeysql [:sql :<] [driver [_ field value]] +(defmethod ->honeysql [:sql :<] + [driver [_ field value]] [:< (->honeysql driver field) (->honeysql driver value)]) -(defmethod ->honeysql [:sql :>=] [driver [_ field value]] +(defmethod ->honeysql [:sql :>=] + [driver [_ field value]] [:>= (->honeysql driver field) (->honeysql driver value)]) -(defmethod ->honeysql [:sql :<=] [driver [_ field value]] +(defmethod ->honeysql [:sql :<=] + [driver [_ field value]] [:<= (->honeysql driver field) (->honeysql driver value)]) -(defmethod ->honeysql [:sql :=] [driver [_ field value]] +(defmethod ->honeysql [:sql :=] + [driver [_ field value]] [:= (->honeysql driver field) (->honeysql driver value)]) -(defmethod ->honeysql [:sql :!=] [driver [_ field value]] +(defmethod ->honeysql [:sql :!=] + [driver [_ field value]] [:not= (->honeysql driver field) (->honeysql driver value)]) - -(defmethod ->honeysql [:sql :and] [driver [_ & subclauses]] +(defmethod ->honeysql [:sql :and] + [driver [_ & subclauses]] (apply vector :and (map (partial ->honeysql driver) subclauses))) -(defmethod ->honeysql [:sql :or] [driver [_ & subclauses]] +(defmethod ->honeysql [:sql :or] + [driver [_ & subclauses]] (apply vector :or (map (partial ->honeysql driver) subclauses))) -(defmethod ->honeysql [:sql :not] [driver [_ subclause]] +(defmethod ->honeysql [:sql :not] + [driver [_ subclause]] [:not (->honeysql driver subclause)]) (defmethod apply-top-level-clause [:sql :filter] @@ -690,7 +717,7 @@ [driver, {inner-query :query} :- su/Map] (u/prog1 (apply-clauses driver {} inner-query) (when-not i/*disable-qp-logging* - (log/debug (tru "HoneySQL Form:") (u/emoji "ðŸ¯") "\n" (u/pprint-to-str 'cyan <>))))) + (log/tracef "\nHoneySQL Form: %s\n%s" (u/emoji "ðŸ¯") (u/pprint-to-str 'cyan <>))))) ;;; +----------------------------------------------------------------------------------------------------------------+ diff --git a/src/metabase/driver/sql/util/unprepare.clj b/src/metabase/driver/sql/util/unprepare.clj index b9a1dc71e2d5110a935b234f8db2bcf3205c6b17..ebb21d8c4653f7c2167d5bb5363e3651d1eb4c3a 100644 --- a/src/metabase/driver/sql/util/unprepare.clj +++ b/src/metabase/driver/sql/util/unprepare.clj @@ -5,16 +5,10 @@ methods from here) let's rename this `metabase.driver.sql.unprepare` when we get a chance." (:require [clojure.string :as str] [clojure.tools.logging :as log] - [honeysql - [core :as hsql] - [format :as hformat]] + [java-time :as t] [metabase.driver :as driver] - [metabase.util - [date :as du] - [honeysql-extensions :as hx] - [i18n :refer [trs]]]) - (:import java.sql.Time - java.util.Date)) + [metabase.util.i18n :refer [trs]]) + (:import [java.time Instant LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime ZonedDateTime])) (defmulti unprepare-value "Convert a single argument to appropriate raw SQL for splicing directly into a SQL query. Dispatches on both driver @@ -48,22 +42,34 @@ [_ value] (str value)) -(defn unprepare-date-with-iso-8601-fn - "Convert a Date to appropriate raw SQL by passing an ISO-8601 literal string to the function named by `iso-8601-fn`. - You can use this function to create implementations of `unprepare-value` for Date values." - [iso-8601-fn value] - (hformat/to-sql - (hsql/call iso-8601-fn (hx/literal (du/date->iso-8601 value))))) +(defmethod unprepare-value [:sql LocalDate] + [_ t] + (format "date '%s'" (t/format "yyyy-MM-dd" t))) -(defmethod unprepare-value [:sql Date] - [_ value] - (unprepare-date-with-iso-8601-fn :timestamp value)) +(defmethod unprepare-value [:sql LocalTime] + [_ t] + (format "time '%s'" (t/format "HH:mm:ss.SSS" t))) + +(defmethod unprepare-value [:sql OffsetTime] + [_ t] + (format "time with time zone '%s'" (t/format "HH:mm:ss.SSSZZZZZ" t))) + +(defmethod unprepare-value [:sql LocalDateTime] + [_ t] + (format "timestamp '%s'" (t/format "yyyy-MM-dd HH:mm:ss.SSS" t))) + +(defmethod unprepare-value [:sql OffsetDateTime] + [_ t] + (format "timestamp with time zone '%s'" (t/format "yyyy-MM-dd HH:mm:ss.SSSZZZZZ" t))) + +(defmethod unprepare-value [:sql ZonedDateTime] + [_ t] + (format "timestamp with time zone '%s'" (t/format "yyyy-MM-dd HH:mm:ss.SSSZZZZZ" t))) -;; default impl for Time is just converting the Time literal to a `1970-01-01T<time>` Timestamp and passing to impl -;; for `Date`, then wrapping entire expression in `time()` -(defmethod unprepare-value [:sql Time] - [driver value] - (hformat/to-sql (hx/->time (hsql/raw (unprepare-value driver (du/->Timestamp value)))))) +;; TODO - pretty sure we can remove this +(defmethod unprepare-value [:sql Instant] + [driver t] + (unprepare-value driver (t/offset-date-time t (t/zone-offset 0)))) ;; TODO - I think a name like `deparameterize` would be more appropriate here diff --git a/src/metabase/driver/sql_jdbc/execute.clj b/src/metabase/driver/sql_jdbc/execute.clj index 187b8cbae8c427971b70bef65c791e514a65bbd5..721c6947811f5215e58d4d01bb03ef5583b88e38 100644 --- a/src/metabase/driver/sql_jdbc/execute.clj +++ b/src/metabase/driver/sql_jdbc/execute.clj @@ -3,20 +3,21 @@ appropriate), and for properly encoding/decoding types going in and out of the database." (:require [clojure.java.jdbc :as jdbc] [clojure.tools.logging :as log] + [java-time :as t] [metabase [driver :as driver] [util :as u]] [metabase.driver.sql-jdbc.connection :as sql-jdbc.conn] [metabase.mbql.util :as mbql.u] [metabase.query-processor + [error-type :as qp.error-type] [interface :as qp.i] [store :as qp.store] + [timezone :as qp.timezone] [util :as qputil]] - [metabase.util - [date :as du] - [i18n :refer [tru]]]) - (:import [java.sql PreparedStatement ResultSet ResultSetMetaData SQLException Types] - [java.util Calendar Date TimeZone])) + [metabase.util.i18n :refer [tru]]) + (:import [java.sql JDBCType PreparedStatement ResultSet ResultSetMetaData SQLException Types] + [java.time Instant LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime ZonedDateTime])) ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | Interface (Multimethods) | @@ -24,9 +25,10 @@ (defmulti set-timezone-sql "Return a format string containing a SQL statement to be used to set the timezone for the current transaction. - The `%s` will be replaced with a string literal for a timezone, e.g. `US/Pacific.` + The `%s` will be replaced with a string literal for a timezone, e.g. `US/Pacific.` (Timezone ID will come already + wrapped in single quotes.) - \"SET @@session.timezone = %s;\"" + \"SET @@session.time_zone = %s;\"" {:arglists '([driver])} driver/dispatch-on-initialized-driver :hierarchy #'driver/hierarchy) @@ -38,20 +40,11 @@ ;;; | Parsing Results | ;;; +----------------------------------------------------------------------------------------------------------------+ -(defn parse-date-as-string - "Most databases will never invoke this code. It's possible with SQLite to get here if the timestamp was stored - without milliseconds. Currently the SQLite JDBC driver will throw an exception even though the SQLite datetime - functions will return datetimes that don't include milliseconds. This attempts to parse that datetime in Clojure - land" - [^Calendar cal, ^ResultSet rs, ^Integer i] - (let [date-string (.getString rs i)] - (if-let [parsed-date (du/str->date-time date-string (.getTimeZone cal))] - parsed-date - (throw (Exception. (tru "Unable to parse date ''{0}''" date-string)))))) - +;; TIMEZONE FIXME — update docstring +;; TIMEZONE FIXME — remove the `calendar` param (defmulti read-column "Read a single value from a single column in a single row from the JDBC ResultSet of a Metabase query. Normal - implementations call an appropriate method on `ResultSet` to retrieve this value, such as `(.getObject resultset + implementations call an appropriate method on `ResultSet` to retrieve this value, such as `(.getObject rs i)`. (`i` is the index of the column whose value you should retrieve.) This method provides the opportunity to customize behavior for the way a driver returns or formats results of @@ -60,92 +53,142 @@ If set, the report timezone active at the time the query was ran will be passed as a Calendar; otherwise this value will be `nil` -- be sure to check before doing anything crazy with it." - {:arglists '([driver calendar resultset resultset-metadata i])} - (fn [driver _ _, ^ResultSetMetaData resultset-metadata, ^Integer i] - [(driver/dispatch-on-initialized-driver driver) (.getColumnType resultset-metadata i)]) + {:arglists '([driver calendar rs rsmeta i])} + (fn [driver _ _ ^ResultSetMetaData rsmeta ^Integer i] + [(driver/dispatch-on-initialized-driver driver) (.getColumnType rsmeta i)]) :hierarchy #'driver/hierarchy) (defmethod read-column :default - [_ _, ^ResultSet resultset, _, ^Integer i] - (.getObject resultset i)) + [_ col-type ^ResultSet rs _ ^Integer i] + (.getObject rs i)) + +(defn- get-object-of-class [^ResultSet rs, ^Integer index, ^Class klass] + (.getObject rs index klass)) -(defmethod read-column [::driver/driver Types/DATE] - [_, ^Calendar cal, ^ResultSet resultset, _, ^Integer i] - (if-not cal - (.getObject resultset i) - (try - (.getDate resultset i cal) - (catch SQLException e - (parse-date-as-string cal resultset i))))) - -;; TODO - what about `TIMESTAMP_WITH_TIMEZONE` ??? (defmethod read-column [::driver/driver Types/TIMESTAMP] - [_, ^Calendar cal, ^ResultSet resultset, _, ^Integer i] - (if-not cal - (.getObject resultset i) - (try - (.getTimestamp resultset i cal) - (catch SQLException e - (parse-date-as-string cal resultset i))))) + [_ _ rs _ i] + (get-object-of-class rs i LocalDateTime)) -(defmethod read-column [::driver/driver Types/TIME] - [driver, _, ^ResultSet resultset, _, ^Integer i] - ;; .getTime will be something like 1970-01-01-09:14:00 when it comes back from the DB for normal DBs (i.e., already - ;; in UTC), so always pass in UTC Calendar -- otherwise the normal behavior is to try to apply the default calendar, - ;; which uses the default timezone, which is either the report timezone or system timezone, and not what we want. - ;; Otherwise our times will be incorrectly shifted. - ;; - ;; Only apply this shift for drivers that support timezones (e.g. Postgres) -- other drivers like H2 should already - ;; be in the correct timezone - (if (driver/supports? driver :set-timezone) - (.getTime resultset i (Calendar/getInstance (TimeZone/getTimeZone "UTC"))) - (.getObject resultset i))) - - -(defmulti read-columns - "Return a function that will be used to read a row from a ResultSet, passed to Clojure JDBC as the `:read-columns` - argument. Returned function should take three args: `resultset`, `resultset-metadata`, and `indexes`, and return a - sequence of results. Default implementation calls `read-column` and passes results to `jdbc/result-set-read-column`. - - This method provides a low-level opportunity to transform the shape of the results as a whole, e.g. by removing - extraneous columns from the results or adding missing ones. If you only want to override behavior for a single - type (e.g., convert bits to booleans), implement `read-column` instead." - {:arglists '([driver calendar])} - driver/dispatch-on-initialized-driver - :hierarchy #'driver/hierarchy) +(defmethod read-column [::driver/driver Types/TIMESTAMP_WITH_TIMEZONE] + [_ _ rs _ i] + (get-object-of-class rs i OffsetDateTime)) -(defmethod read-columns :default - [driver, ^Calendar calendar] - (fn [^ResultSet resultset, ^ResultSetMetaData resultset-metadata, indexes] - (for [^Integer i, indexes] - (jdbc/result-set-read-column (read-column driver calendar resultset resultset-metadata i) resultset-metadata i)))) +(defmethod read-column [::driver/driver Types/DATE] + [_ _ rs _ i] + (get-object-of-class rs i LocalDate)) + +(defmethod read-column [::driver/driver Types/TIME] + [_ _ rs _ i] + (get-object-of-class rs i LocalTime)) + +(defmethod read-column [::driver/driver Types/TIME_WITH_TIMEZONE] + [_ _ rs _ i] + (get-object-of-class rs i OffsetTime)) + +(defn read-columns + "Read columns from a JDBC `ResultSet` for the current row. This function uses `read-column` to read each individual + value; `read-column` dispatches on `driver` and the JDBC type of each column — override this as needed. + + You can pass this method to `clojure.java.jdbc/query` and related functions as the `:read-columns` option: + + (jdbc/query spec sql {:read-columns (partial :read-columns driver)})" + [driver rs ^ResultSetMetaData rsmeta indexes] + (mapv + (fn [^Integer i] + ;; JDBCType/valueOf won't work for custom driver-specific enums + (let [jdbc-type (.getColumnType rsmeta i) + jdbc-type-name (or (u/ignore-exceptions + (.getName (JDBCType/valueOf jdbc-type))) + jdbc-type)] + (try + (let [result (read-column driver nil rs rsmeta i)] + (log/tracef "(read-column %s nil rs rsmeta %d) \"%s\" [JDBC Type: %s; DB type: %s] -> ^%s %s" + driver i + (.getColumnName rsmeta i) jdbc-type-name (.getColumnTypeName rsmeta i) + (.getName (class result)) (pr-str result)) + result) + (catch Throwable e + (log/errorf e "Error reading %s column %d %s %s" + driver i (.getColumnName rsmeta i) jdbc-type-name) + nil)))) + indexes)) ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | Setting Params | ;;; +----------------------------------------------------------------------------------------------------------------+ -;; TODO - this should be a multimethod like `read-column`. Perhaps named `set-parameter`. Basically like the existing -;; one in `clojure.java.jdbc` but for QP only -(defn- set-parameters-with-timezone - "Returns a function that will set Date/Timestamp PreparedStatement parameters with the correct timezone" - [^TimeZone tz] - (fn [^PreparedStatement stmt params] - (mapv (fn [^Integer i value] - (cond +;; TODO - would a more general method to convert a parameter to the desired class (and maybe JDBC type) be more +;; useful? Then we can actually do things like log what transformations are taking place +(defmulti set-parameter + "Set the `PreparedStatement` parameter at index `i` to `object`. Dispatches on driver and class of `object`. By + default, this calls `.setObject`, but drivers can override this method to convert the object to a different class or + set it with a different intended JDBC type as needed." + {:arglists '([driver prepared-statement i object])} + (fn [driver _ _ object] + [(driver/dispatch-on-initialized-driver driver) (class object)]) + :hierarchy #'driver/hierarchy) + +(defn- set-object + ([^PreparedStatement prepared-statement, ^Integer index, object] + (log/tracef "(set-object prepared-statement %d ^%s %s)" index (.getName (class object)) (pr-str object)) + (.setObject prepared-statement index object)) + + ([^PreparedStatement prepared-statement, ^Integer index, object, ^Integer target-sql-type] + (log/tracef "(set-object prepared-statement %d ^%s %s java.sql.Types/%s)" index (.getName (class object)) + (pr-str object) (.getName (JDBCType/valueOf target-sql-type))) + (.setObject prepared-statement index object target-sql-type))) - (and tz (instance? java.sql.Time value)) - (.setTime stmt i value (Calendar/getInstance tz)) +(defmethod set-parameter :default + [_ prepared-statement i object] + (set-object prepared-statement i object)) - (and tz (instance? java.sql.Timestamp value)) - (.setTimestamp stmt i value (Calendar/getInstance tz)) +(defmethod set-parameter [::driver/driver LocalDate] + [_ prepared-statement i t] + (set-object prepared-statement i t Types/DATE)) - (and tz (instance? java.util.Date value)) - (.setDate stmt i value (Calendar/getInstance tz)) +(defmethod set-parameter [::driver/driver LocalTime] + [_ prepared-statement i t] + (set-object prepared-statement i t Types/TIME)) - :else - (jdbc/set-parameter value stmt i))) - (rest (range)) params))) +(defmethod set-parameter [::driver/driver LocalDateTime] + [_ prepared-statement i t] + (set-object prepared-statement i t Types/TIMESTAMP)) + +(defmethod set-parameter [::driver/driver OffsetTime] + [_ prepared-statement i t] + (set-object prepared-statement i t Types/TIME_WITH_TIMEZONE)) + +(defmethod set-parameter [::driver/driver OffsetDateTime] + [_ prepared-statement i t] + (set-object prepared-statement i t Types/TIMESTAMP_WITH_TIMEZONE)) + +(defmethod set-parameter [::driver/driver ZonedDateTime] + [_ prepared-statement i t] + (set-object prepared-statement i t Types/TIMESTAMP_WITH_TIMEZONE)) + +;; TODO - remove this +(defmethod set-parameter [::driver/driver Instant] + [driver prepared-statement i t] + (set-parameter driver prepared-statement i (t/offset-date-time t (t/zone-offset 0)))) + +;; TODO - this might not be needed for all drivers. It is at least needed for H2 and Postgres. Not sure which, if any +;; JDBC drivers support `ZonedDateTime`. +(defmethod set-parameter [::driver/driver ZonedDateTime] + [driver prepared-statement i t] + (set-parameter driver prepared-statement i (t/offset-date-time t))) + +(defn set-parameters + "Set a sequence of `prepared-statement` `params`. This method calls `set-parameter` for each param; `set-parameter` + dispatches on `driver` and the class of the param — override this as needed. + + You can pass this method to `clojure.java.jdbc/query` and related functions as the `:set-parameters` option: + + (jdbc/query spec sql {:set-parameters (partial set-parameters driver)})" + [driver prepared-statement params] + (doseq [[i param] (map-indexed vector params)] + (log/tracef "Query parameter %d came in as ^%s %s" (inc i) (.getName (class param)) (pr-str param)) + (set-parameter driver prepared-statement (inc i) param))) ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -191,14 +234,14 @@ (defn- run-query "Run the query itself." - [driver {sql :query, :keys [params remark max-rows]}, ^TimeZone timezone, connection] + [driver {sql :query, :keys [params remark max-rows]} connection] (let [sql (str "-- " remark "\n" sql) [columns & rows] (cancelable-run-query connection sql params {:identifiers identity :as-arrays? true - :read-columns (read-columns driver (some-> timezone Calendar/getInstance)) - :set-parameters (set-parameters-with-timezone timezone) + :read-columns (partial read-columns driver) + :set-parameters (partial set-parameters driver) :max-rows max-rows})] {:rows (or rows []) :columns (map u/qualified-name columns)})) @@ -210,9 +253,9 @@ ;; error message comes back like 'Column "ZID" not found; SQL statement: ... [error-code]' sometimes ;; the user already knows the SQL, and error code is meaningless ;; so just return the part of the exception that is relevant - (->> (.getMessage e) - (re-find #"^(.*);") - second)) + (some->> (.getMessage e) + (re-find #"^(.*);") + second)) (defn do-with-try-catch "Tries to run the function `f`, catching and printing exception chains if SQLException is thrown, @@ -252,46 +295,58 @@ (defn- set-timezone! "Set the timezone for the current connection." - {:arglists '([driver settings connection])} - [driver {:keys [report-timezone]} connection] - (let [timezone (u/prog1 report-timezone - (assert (re-matches #"[A-Za-z\/_]+" <>))) - format-string (set-timezone-sql driver) - sql (format format-string (str \' timezone \'))] - (log/debug (u/format-color 'green (tru "Setting timezone with statement: {0}" sql))) - (jdbc/db-do-prepared connection [sql]))) + [driver timezone connection] + (when-not (re-matches #"[A-Za-z\/_]+" timezone) + (throw (ex-info (tru "Invalid timezone ''{0}''" timezone) + {:type qp.error-type/qp}))) + (let [timezone timezone + format-string (set-timezone-sql driver)] + (when-not (seq format-string) + (throw (ex-info (str (tru "Cannot set timezone: invalid or missing SQL format string for driver {0}." driver) + " " + (tru "Did you implement set-timezone-sql?")) + {:type qp.error-type/driver}))) + (let [sql (format format-string (str \' timezone \'))] + (log/debug (u/format-color 'green (tru "Setting timezone with statement: {0}" sql))) + (jdbc/db-do-prepared connection [sql])))) (defn- run-query-without-timezone [driver _ connection query] - (do-in-transaction connection (partial run-query driver query nil))) - -(defn- run-query-with-timezone [driver {:keys [^String report-timezone] :as settings} connection query] - (try - (do-in-transaction connection (fn [transaction-connection] - (set-timezone! driver settings transaction-connection) - (run-query driver - query - (some-> report-timezone TimeZone/getTimeZone) - transaction-connection))) - (catch SQLException e - (log/error (tru "Failed to set timezone:") "\n" (with-out-str (jdbc/print-sql-exception-chain e))) - (run-query-without-timezone driver settings connection query)) - (catch Throwable e - (log/error (tru "Failed to set timezone:") "\n" (.getMessage e)) - (run-query-without-timezone driver settings connection query)))) + (do-in-transaction connection (partial run-query driver query))) + +(defn- run-query-with-timezone [driver ^String report-timezone connection query] + (let [result (do-in-transaction + connection + (fn [transaction-connection] + (let [set-timezone? (try + (set-timezone! driver report-timezone transaction-connection) + true + (catch SQLException e + (log/error (tru "Failed to set timezone ''{0}''" report-timezone) + "\n" + (with-out-str (jdbc/print-sql-exception-chain e)))) + (catch Throwable e + (log/error e (tru "Failed to set timezone ''{0}''" report-timezone))))] + (if-not set-timezone? + ::set-timezone-failed + (run-query driver query transaction-connection)))))] + (if (= result ::set-timezone-failed) + (run-query-without-timezone driver report-timezone connection query) + result))) ;;; ------------------------------------------------- execute-query -------------------------------------------------- (defn execute-query "Process and run a native (raw SQL) `query`." - [driver {{:keys [report-timezone], :as settings} :settings, query :native, :as outer-query}] - (let [query (assoc query - :remark (qputil/query->remark outer-query) - :max-rows (or (mbql.u/query->max-rows-limit outer-query) qp.i/absolute-max-results))] + [driver {query :native, :as outer-query}] + (let [report-timezone (qp.timezone/report-timezone-id-if-supported) + query (assoc query + :remark (qputil/query->remark outer-query) + :max-rows (or (mbql.u/query->max-rows-limit outer-query) qp.i/absolute-max-results))] (do-with-try-catch (fn [] (let [db-connection (sql-jdbc.conn/db->pooled-connection-spec (qp.store/database)) run-query* (if (seq report-timezone) run-query-with-timezone run-query-without-timezone)] - (run-query* driver settings db-connection query)))))) + (run-query* driver report-timezone db-connection query)))))) diff --git a/src/metabase/driver/sql_jdbc/execute/legacy_impl.clj b/src/metabase/driver/sql_jdbc/execute/legacy_impl.clj new file mode 100644 index 0000000000000000000000000000000000000000..c3910befb38928247579128c7e88c84945a38ecf --- /dev/null +++ b/src/metabase/driver/sql_jdbc/execute/legacy_impl.clj @@ -0,0 +1,75 @@ +(ns metabase.driver.sql-jdbc.execute.legacy-impl + "Implementations of `sql-jdbc.execute` methods for JDBC drivers that aren't fully JDBC 4.2 compliant or otherwise + don't fully support the new JSR-310 `java.time` classes. Drivers with `::use-legacy-classes-for-read-and-set` as a + parent will use these implementations instead of the defaults." + (:require [clojure.tools.logging :as log] + [java-time :as t] + [metabase.driver :as driver] + [metabase.driver.sql-jdbc.execute :as sql-jdbc.execute] + [metabase.util.date-2 :as u.date]) + (:import [java.sql PreparedStatement ResultSet Types] + [java.time LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime ZonedDateTime] + [java.util Calendar TimeZone])) + +;; method impls for JDBC drivers that aren't fully JDBC 4.2 compliant/don't support the new `java.time` methods +(driver/register! ::use-legacy-classes-for-read-and-set, :abstract? true) + +(defmethod sql-jdbc.execute/set-parameter [::use-legacy-classes-for-read-and-set LocalDate] + [_ ^PreparedStatement ps ^Integer i t] + (let [t (t/sql-date t)] + (log/tracef "(.setDate ps %d ^%s %s)" i (.getName (class t)) (pr-str t)) + (.setDate ps i t))) + +(defmethod sql-jdbc.execute/set-parameter [::use-legacy-classes-for-read-and-set LocalDateTime] + [_ ^PreparedStatement ps ^Integer i t] + (let [t (t/sql-timestamp t)] + (log/tracef "(.setTimestamp %d ^%s %s)" i (.getName (class t)) (pr-str t)) + (.setTimestamp ps i t))) + +(defmethod sql-jdbc.execute/set-parameter [::use-legacy-classes-for-read-and-set LocalTime] + [_ ^PreparedStatement ps ^Integer i t] + (let [t (t/sql-time t)] + (log/tracef "(.setTime %d ^%s %s)" i (.getName (class t)) (pr-str t)) + (.setTime ps i t))) + +(defmethod sql-jdbc.execute/set-parameter [::use-legacy-classes-for-read-and-set OffsetTime] + [_ ^PreparedStatement ps ^Integer i t] + (let [cal (Calendar/getInstance (TimeZone/getTimeZone (t/zone-id t))) + t (t/sql-time t)] + (log/tracef "(.setTime %d ^%s %s <%s Calendar>)" i (.getName (class t)) (pr-str t) (.. cal getTimeZone getID)) + (.setTime ps i t cal))) + +(defmethod sql-jdbc.execute/set-parameter [::use-legacy-classes-for-read-and-set OffsetDateTime] + [_ ^PreparedStatement ps ^Integer i t] + (let [cal (Calendar/getInstance (TimeZone/getTimeZone (t/zone-id t))) + t (t/sql-timestamp t)] + (log/tracef "(.setTimestamp %d ^%s %s <%s Calendar>)" i (.getName (class t)) (pr-str t) (.. cal getTimeZone getID)) + (.setTimestamp ps i t cal))) + +(defmethod sql-jdbc.execute/set-parameter [::use-legacy-classes-for-read-and-set ZonedDateTime] + [_ ^PreparedStatement ps ^Integer i t] + (let [cal (Calendar/getInstance (TimeZone/getTimeZone (t/zone-id t))) + t (t/sql-timestamp t)] + (log/tracef "(.setTimestamp %d ^%s %s <%s Calendar>)" i (.getName (class t)) (pr-str t) (.. cal getTimeZone getID)) + (.setTimestamp ps i t cal))) + +(defmethod sql-jdbc.execute/read-column [:use-legacy-classes-for-read-and-set Types/TIME] + [_ _ ^ResultSet rs _ ^Integer i] + (let [s (.getString rs i) + t (u.date/parse s)] + (log/tracef "(.getString rs i) [TIME] -> %s -> %s" (pr-str s) (pr-str t)) + t)) + +(defmethod sql-jdbc.execute/read-column [::use-legacy-classes-for-read-and-set Types/DATE] + [_ _ ^ResultSet rs _ ^Integer i] + (let [s (.getString rs i) + t (u.date/parse s)] + (log/tracef "(.getString rs i) [DATE] -> %s -> %s" (pr-str s) (pr-str t)) + t)) + +(defmethod sql-jdbc.execute/read-column [::use-legacy-classes-for-read-and-set Types/TIMESTAMP] + [_ _ ^ResultSet rs _ ^Integer i] + (let [s (.getString rs i) + t (u.date/parse s)] + (log/tracef "(.getString rs i) [TIMESTAMP] -> %s -> %s" (pr-str s) (pr-str t)) + t)) diff --git a/src/metabase/driver/sql_jdbc/sync.clj b/src/metabase/driver/sql_jdbc/sync.clj index 223eb92f7a81627e3fe155837bf19379dba188bd..f04bcc258cd4b5a29692e84d5917ce27483e4b49 100644 --- a/src/metabase/driver/sql_jdbc/sync.clj +++ b/src/metabase/driver/sql_jdbc/sync.clj @@ -44,9 +44,11 @@ (defmethod excluded-schemas :sql-jdbc [_] nil) +;; TODO - why don't we just use JDBC `DatabaseMetaData` to do this? This is wacky (defmulti database-type->base-type "Given a native DB column type (as a keyword), return the corresponding `Field` `base-type`, which should derive from - `:type/*`. You can use `pattern-based-database-type->base-type` in this namespace to implement this using regex patterns." + `:type/*`. You can use `pattern-based-database-type->base-type` in this namespace to implement this using regex + patterns." {:arglists '([driver database-type])} driver/dispatch-on-initialized-driver :hierarchy #'driver/hierarchy) diff --git a/src/metabase/driver/util.clj b/src/metabase/driver/util.clj index 7b81bae2be536945fdaef18e0fcf46cf726c1534..0a4665f0d5cae0c8fc44a76d2c9750804ef024a9 100644 --- a/src/metabase/driver/util.clj +++ b/src/metabase/driver/util.clj @@ -7,6 +7,7 @@ [config :as config] [driver :as driver] [util :as u]] + [metabase.driver.impl :as impl] [metabase.util.i18n :refer [trs]] [toucan.db :as db])) @@ -40,7 +41,6 @@ (log/error (trs "Failed to connect to database: {0}" (.getMessage e))) false)))) - (defn report-timezone-if-supported "Returns the report-timezone if `driver` supports setting it's timezone and a report-timezone has been specified by the user." @@ -85,10 +85,10 @@ :let [driver (keyword (-> (last (str/split (name ns-symb) #"\.")) (str/replace #"_" "-")))] ;; let's go ahead and ignore namespaces we know for a fact do not contain drivers - :when (not (#{:common :util :query-processor :google} + :when (not (#{:common :util :query-processor :google :impl} driver))] (try - (#'driver/load-driver-namespace-if-needed! driver) + (impl/load-driver-namespace-if-needed! driver) (catch Throwable e (log/error e (trs "Error loading namespace")))))) diff --git a/src/metabase/email/messages.clj b/src/metabase/email/messages.clj index 2ebc057b16322c505b76e380267963be4a2d82d4..928f37342b54374280732982eb923aaec1412b58 100644 --- a/src/metabase/email/messages.clj +++ b/src/metabase/email/messages.clj @@ -4,6 +4,7 @@ (:require [clojure.core.cache :as cache] [clojure.tools.logging :as log] [hiccup.core :refer [html]] + [java-time :as t] [medley.core :as m] [metabase [config :as config] @@ -15,7 +16,6 @@ [body :as render.body] [style :as render.style]] [metabase.util - [date :as du] [export :as export] [i18n :refer [deferred-trs trs tru]] [quotation :as quotation] @@ -71,7 +71,7 @@ :invitorEmail (:email invitor) :company company :joinUrl join-url - :today (du/format-date "MMM' 'dd,' 'yyyy") + :today (t/format "MMM' 'dd,' 'yyyy" (t/zoned-date-time)) :logoHeader true} (random-quote-context)))] (email/send-message! @@ -106,7 +106,7 @@ :joinedUserName (:first_name new-user) :joinedViaSSO google-auth? :joinedUserEmail (:email new-user) - :joinedDate (du/format-date "EEEE, MMMM d") ; e.g. "Wednesday, July 13". TODO - is this what we want? + :joinedDate (t/format "EEEE, MMMM d" (t/zoned-date-time)) ; e.g. "Wednesday, July 13". TODO - is this what we want? :adminEmail (first recipients) :joinedUserEditUrl (str (public-settings/site-url) "/admin/people")} (random-quote-context)))))) @@ -145,7 +145,7 @@ (assoc obj :url ((model-name->url-fn model) id))) (defn- build-dependencies - "Build a sequence of dependencies from a MODEL-NAME->DEPENDENCIES map, and add various information such as obj URLs." + "Build a sequence of dependencies from a `model-name->dependencies` map, and add various information such as obj URLs." [model-name->dependencies] (for [model-name (sort (keys model-name->dependencies)) :let [user-facing-name (if (= model-name "Card") @@ -345,34 +345,34 @@ (str "metabase/email/" template-name ".mustache")) ;; Paths to the templates for all of the alerts emails -(def ^:private new-alert-template (template-path "alert_new_confirmation")) -(def ^:private you-unsubscribed-template (template-path "alert_unsubscribed")) +(def ^:private new-alert-template (template-path "alert_new_confirmation")) +(def ^:private you-unsubscribed-template (template-path "alert_unsubscribed")) (def ^:private admin-unsubscribed-template (template-path "alert_admin_unsubscribed_you")) -(def ^:private added-template (template-path "alert_you_were_added")) -(def ^:private stopped-template (template-path "alert_stopped_working")) -(def ^:private deleted-template (template-path "alert_was_deleted")) +(def ^:private added-template (template-path "alert_you_were_added")) +(def ^:private stopped-template (template-path "alert_stopped_working")) +(def ^:private deleted-template (template-path "alert_was_deleted")) (defn send-new-alert-email! - "Send out the initial 'new alert' email to the `CREATOR` of the alert" + "Send out the initial 'new alert' email to the `creator` of the alert" [{:keys [creator] :as alert}] (send-email! creator "You set up an alert" new-alert-template (default-alert-context alert alert-condition-text))) (defn send-you-unsubscribed-alert-email! - "Send an email to `WHO-UNSUBSCRIBED` letting them know they've unsubscribed themselves from `ALERT`" + "Send an email to `who-unsubscribed` letting them know they've unsubscribed themselves from `alert`" [alert who-unsubscribed] (send-email! who-unsubscribed "You unsubscribed from an alert" you-unsubscribed-template (default-alert-context alert))) (defn send-admin-unsubscribed-alert-email! - "Send an email to `USER-ADDED` letting them know `ADMIN` has unsubscribed them from `ALERT`" + "Send an email to `user-added` letting them know `admin` has unsubscribed them from `alert`" [alert user-added {:keys [first_name last_name] :as admin}] (let [admin-name (format "%s %s" first_name last_name)] (send-email! user-added "You’ve been unsubscribed from an alert" admin-unsubscribed-template (assoc (default-alert-context alert) :adminName admin-name)))) (defn send-you-were-added-alert-email! - "Send an email to `USER-ADDED` letting them know `ADMIN-ADDER` has added them to `ALERT`" + "Send an email to `user-added` letting them know `admin-adder` has added them to `alert`" [alert user-added {:keys [first_name last_name] :as admin-adder}] (let [subject (format "%s %s added you to an alert" first_name last_name)] (send-email! user-added subject added-template (default-alert-context alert alert-condition-text)))) diff --git a/src/metabase/events/last_login.clj b/src/metabase/events/last_login.clj index 6bd0857eedfed6aa6d6aec7bb763809bcec7690a..e4c4e78bd92e80edae8925330168b738ca5336c8 100644 --- a/src/metabase/events/last_login.clj +++ b/src/metabase/events/last_login.clj @@ -3,7 +3,6 @@ [clojure.tools.logging :as log] [metabase.events :as events] [metabase.models.user :refer [User]] - [metabase.util.date :as du] [toucan.db :as db])) (def ^:const last-login-topics @@ -26,7 +25,7 @@ (when-let [{object :item} last-login-event] ;; just make a simple attempt to set the `:last_login` for the given user to now (when-let [user-id (:user_id object)] - (db/update! User user-id, :last_login (du/new-sql-timestamp)))) + (db/update! User user-id, :last_login :%now))) (catch Throwable e (log/warn (format "Failed to process sync-database event. %s" (:topic last-login-event)) e)))) diff --git a/src/metabase/integrations/ldap.clj b/src/metabase/integrations/ldap.clj index fc1857b3f11a523fe953c2a63f9795d2ba763658..7705366c10fa2c27daa8504f94c567e86327e085 100644 --- a/src/metabase/integrations/ldap.clj +++ b/src/metabase/integrations/ldap.clj @@ -50,15 +50,18 @@ (defsetting ldap-attribute-email (deferred-tru "Attribute to use for the user's email. (usually ''mail'', ''email'' or ''userPrincipalName'')") - :default "mail") + :default "mail" + :getter (fn [] (u/lower-case-en (setting/get-string :ldap-attribute-email)))) (defsetting ldap-attribute-firstname (deferred-tru "Attribute to use for the user''s first name. (usually ''givenName'')") - :default "givenName") + :default "givenName" + :getter (fn [] (u/lower-case-en (setting/get-string :ldap-attribute-firstname)))) (defsetting ldap-attribute-lastname (deferred-tru "Attribute to use for the user''s last name. (usually ''sn'')") - :default "sn") + :default "sn" + :getter (fn [] (u/lower-case-en (setting/get-string :ldap-attribute-lastname)))) (defsetting ldap-group-sync (deferred-tru "Enable group membership synchronization with LDAP.") @@ -183,7 +186,7 @@ (with-connection find-user username)) ([conn username] - (when-let [{:keys [dn], :as result} (search conn username)] + (when-let [{:keys [dn], :as result} (u/lower-case-map-keys (search conn username))] (let [{fname (keyword (ldap-attribute-firstname)) lname (keyword (ldap-attribute-lastname)) email (keyword (ldap-attribute-email))} result] diff --git a/src/metabase/metabot/instance.clj b/src/metabase/metabot/instance.clj index 57bf42fa8367b98237819a756f02d63f5c46ebd8..ff31db347e72b3475ef616068e0df4f0213bab20 100644 --- a/src/metabase/metabot/instance.clj +++ b/src/metabase/metabot/instance.clj @@ -21,15 +21,14 @@ MetaBot duties." (:require [clojure.tools.logging :as log] [honeysql.core :as hsql] + [java-time :as t] [metabase [config :refer [local-process-uuid]] [util :as u]] [metabase.models.setting :as setting :refer [defsetting]] - [metabase.util - [date :as du] - [i18n :refer [trs]]] + [metabase.util.i18n :refer [trs]] [toucan.db :as db]) - (:import java.sql.Timestamp)) + (:import java.time.temporal.Temporal)) (defsetting ^:private metabot-instance-uuid "UUID of the active MetaBot instance (the Metabase process currently handling MetaBot duties.)" @@ -52,7 +51,7 @@ "Fetch the current timestamp from the DB. Why do this from the DB? It's not safe to assume multiple instances have clocks exactly in sync; but since each instance is using the same application DB, we can use it as a cannonical source of truth." - ^Timestamp [] + ^Temporal [] (-> (db/query {:select [[(hsql/raw "current_timestamp") :current_timestamp]]}) first :current_timestamp)) @@ -68,10 +67,8 @@ `last-checkin` is one of the few Settings that isn't cached, this always requires a DB call.)" [] (when-let [last-checkin (metabot-instance-last-checkin)] - (u/prog1 (-> (- (.getTime (current-timestamp-from-db)) - (.getTime last-checkin)) - (/ 1000)) - (log/debug (u/format-color 'magenta (trs "Last MetaBot checkin was {0} ago." (du/format-seconds <>))))))) + (u/prog1 (.getSeconds (t/duration last-checkin (current-timestamp-from-db))) + (log/debug (u/format-color 'magenta (trs "Last MetaBot checkin was {0} ago." (u/format-seconds <>))))))) (def ^:private ^Integer recent-checkin-timeout-interval-seconds "Number of seconds since the last MetaBot checkin that we will consider the MetaBot job to be 'up for grabs', diff --git a/src/metabase/middleware/auth.clj b/src/metabase/middleware/auth.clj index 5f63a95f36983a2edd9de25e24dc81d68de99c37..e5b23ede2d267a80a6b046e2890fed9ac11fd9b6 100644 --- a/src/metabase/middleware/auth.clj +++ b/src/metabase/middleware/auth.clj @@ -7,7 +7,7 @@ (def ^:private ^:const ^String metabase-api-key-header "x-metabase-apikey") (defn enforce-authentication - "Middleware that returns a 401 response if REQUEST has no associated `:metabase-user-id`." + "Middleware that returns a 401 response if `request` has no associated `:metabase-user-id`." [handler] (fn [{:keys [metabase-user-id] :as request} respond raise] (if metabase-user-id diff --git a/src/metabase/middleware/json.clj b/src/metabase/middleware/json.clj index e032187c790bcaf6119bce6497005bd36bb5a661..5e239ba9fe6cede1b5d534ea2cd6e4cf4c7ea323 100644 --- a/src/metabase/middleware/json.clj +++ b/src/metabase/middleware/json.clj @@ -2,15 +2,16 @@ "Middleware related to parsing JSON requests and generating JSON responses." (:require [cheshire [core :as json] - [generate :refer [add-encoder encode-str]]] - [metabase.util :as u] + [generate :as json.generate]] + [metabase.util.date-2 :as u.date] [ring.middleware.json :as ring.json] [ring.util [io :as rui] [response :as rr]]) (:import com.fasterxml.jackson.core.JsonGenerator [java.io BufferedWriter OutputStream OutputStreamWriter] - [java.nio.charset Charset StandardCharsets])) + [java.nio.charset Charset StandardCharsets] + java.time.temporal.Temporal)) ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | JSON SERIALIZATION CONFIG | @@ -24,25 +25,27 @@ ;; ## Custom JSON encoders +(defn- write-string! [^JsonGenerator json-generator, ^String s] + (.writeString json-generator s)) + +;; For java.time classes use the date util function that writes them as ISO-8601 +(json.generate/add-encoder Temporal (fn [t json-generator] + (write-string! json-generator (u.date/format t)))) + ;; Always fall back to `.toString` instead of barfing. In some cases we should be able to improve upon this behavior; ;; `.toString` may just return the Class and address, e.g. `some.Class@72a8b25e` ;; The following are known few classes where `.toString` is the optimal behavior: ;; * `org.postgresql.jdbc4.Jdbc4Array` (Postgres arrays) ;; * `org.bson.types.ObjectId` (Mongo BSON IDs) ;; * `java.sql.Date` (SQL Dates -- .toString returns YYYY-MM-DD) -(add-encoder Object encode-str) - -(defn- encode-jdbc-clob [clob, ^JsonGenerator json-generator] - (.writeString json-generator (u/jdbc-clob->str clob))) - -;; stringify JDBC clobs -(add-encoder org.h2.jdbc.JdbcClob encode-jdbc-clob) ; H2 -(add-encoder org.postgresql.util.PGobject encode-jdbc-clob) ; Postgres +(json.generate/add-encoder Object json.generate/encode-str) ;; Binary arrays ("[B") -- hex-encode their first four bytes, e.g. "0xC42360D7" -(add-encoder (Class/forName "[B") (fn [byte-ar, ^JsonGenerator json-generator] - (.writeString json-generator ^String (apply str "0x" (for [b (take 4 byte-ar)] - (format "%02X" b)))))) +(json.generate/add-encoder + (Class/forName "[B") + (fn [byte-ar json-generator] + (write-string! json-generator (apply str "0x" (for [b (take 4 byte-ar)] + (format "%02X" b)))))) ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -68,7 +71,7 @@ ;;; +----------------------------------------------------------------------------------------------------------------+ (defn- streamed-json-response - "Write `RESPONSE-SEQ` to a PipedOutputStream as JSON, returning the connected PipedInputStream" + "Write `response-seq` to a PipedOutputStream as JSON, returning the connected PipedInputStream" [response-seq opts] (rui/piped-input-stream (fn [^OutputStream output-stream] diff --git a/src/metabase/middleware/log.clj b/src/metabase/middleware/log.clj index ea4a0f8ce808be2455c9f120a60e8d720933fc04..f3bd43892aab02ffaf730a64018ab2c3045c73c4 100644 --- a/src/metabase/middleware/log.clj +++ b/src/metabase/middleware/log.clj @@ -9,9 +9,7 @@ [metabase.async.util :as async.u] [metabase.middleware.util :as middleware.u] [metabase.query-processor.middleware.async :as qp.middleware.async] - [metabase.util - [date :as du] - [i18n :refer [trs]]] + [metabase.util.i18n :refer [trs]] [toucan.db :as db]) (:import clojure.core.async.impl.channels.ManyToManyChannel org.eclipse.jetty.util.thread.QueuedThreadPool)) @@ -29,14 +27,20 @@ ;; These functions take parts of the info map and convert it into formatted strings. -(defn- format-status-info [{:keys [async-status], {:keys [request-method uri]} :request, {:keys [status]} :response}] +(defn- format-status-info + [{:keys [async-status] + {:keys [request-method uri] :or {request-method :XXX}} :request + {:keys [status]} :response}] (str (format "%s %s %d" (str/upper-case (name request-method)) uri status) (when async-status (format " [ASYNC: %s]" async-status)))) -(defn- format-performance-info [{:keys [start-time call-count-fn]}] - (let [elapsed-time (du/format-nanoseconds (- (System/nanoTime) start-time)) +(defn- format-performance-info + [{:keys [start-time call-count-fn] + :or {start-time (System/nanoTime) + call-count-fn (constantly -1)}}] + (let [elapsed-time (u/format-nanoseconds (- (System/nanoTime) start-time)) db-calls (call-count-fn)] (format "%s (%d DB calls)" elapsed-time db-calls))) @@ -99,11 +103,15 @@ :log-fn #(log/debug %) :include-stats? true}]) -(defn- log-info [{{:keys [status]} :response, :as info}] +(defn- log-info + [{{:keys [status] :or {status -1}} :response, :as info}] (try - (let [{:keys [color log-fn], :as opts} (some #(when ((:status-pred %) status) - %) - log-options)] + (let [{:keys [color log-fn] + :or {color :default-color + log-fn identity} + :as opts} + (some #(when ((:status-pred %) status) %) + log-options)] (log-fn (u/format-color color (format-info info opts)))) (catch Throwable e (log/error e (trs "Error logging API request"))))) diff --git a/src/metabase/middleware/security.clj b/src/metabase/middleware/security.clj index 3aa2d77b21179894b79cb6a7c06cafb94c0bc286..7c3d73c2909126d66290a52d667beecf15f57be4 100644 --- a/src/metabase/middleware/security.clj +++ b/src/metabase/middleware/security.clj @@ -2,12 +2,11 @@ "Ring middleware for adding security-related headers to API responses." (:require [clojure.java.io :as io] [clojure.string :as str] + [java-time :as t] [metabase.config :as config] [metabase.middleware.util :as middleware.u] [metabase.models.setting :refer [defsetting]] - [metabase.util - [date :as du] - [i18n :as ui18n :refer [deferred-tru]]] + [metabase.util.i18n :as ui18n :refer [deferred-tru]] [ring.util.codec :refer [base64-encode]]) (:import java.security.MessageDigest)) @@ -37,7 +36,7 @@ [] {"Cache-Control" "max-age=0, no-cache, must-revalidate, proxy-revalidate" "Expires" "Tue, 03 Jul 2001 06:00:00 GMT" - "Last-Modified" (du/format-date :rfc822)}) + "Last-Modified" (t/format :rfc-1123-date-time (t/zoned-date-time))}) (defn- cache-far-future-headers "Headers that tell browsers to cache a static resource for a long time." diff --git a/src/metabase/middleware/session.clj b/src/metabase/middleware/session.clj index a2276e1436342b90135fc6fc9310e92f48401884..2fbedbf5e6b5a72c8be1b65afc5944588c81f7d4 100644 --- a/src/metabase/middleware/session.clj +++ b/src/metabase/middleware/session.clj @@ -1,6 +1,7 @@ (ns metabase.middleware.session "Ring middleware related to session (binding current user and permissions)." (:require [clojure.string :as str] + [java-time :as t] [metabase [config :as config] [db :as mdb]] @@ -9,11 +10,12 @@ [metabase.models [session :refer [Session]] [user :as user :refer [User]]] + [metabase.util.date-2 :as u.date] [ring.util.response :as resp] [schema.core :as s] [toucan.db :as db]) - (:import java.util.UUID - org.joda.time.DateTime)) + (:import java.time.temporal.Temporal + java.util.UUID)) ;; How do authenticated API requests work? Metabase first looks for a cookie called `metabase.SESSION`. This is the ;; normal way of doing things; this cookie gets set automatically upon login. `metabase.SESSION` is an HttpOnly @@ -32,7 +34,7 @@ (def ^:private ^String metabase-session-header "x-metabase-session") (defn- clear-cookie [response cookie-name] - (resp/set-cookie response cookie-name nil {:expires (DateTime. 0), :path "/"})) + (resp/set-cookie response cookie-name nil {:expires "Thu, 1 Jan 1970 00:00:00 GMT", :path "/"})) (defn- wrap-body-if-needed "You can't add a cookie (by setting the `:cookies` key of a response) if the response is an unwrapped JSON response; @@ -123,24 +125,22 @@ (handler (wrap-session-id* request) respond raise))) (defn- session-with-id - "Fetch a session with SESSION-ID, and include the User ID and superuser status associated with it." + "Fetch a session with `session-id`, and include the User ID and superuser status associated with it." [session-id] (db/select-one [Session :created_at :user_id (db/qualify User :is_superuser)] (mdb/join [Session :user_id] [User :id]) (db/qualify User :is_active) true (db/qualify Session :id) session-id)) -(defn- session-age-ms [session] - (- (System/currentTimeMillis) (or (when-let [^java.util.Date created-at (:created_at session)] - (.getTime created-at)) - 0))) +(s/defn ^:private session-expired? + ([session] + (session-expired? session (config/config-int :max-session-age))) -(defn- session-age-minutes [session] - (quot (session-age-ms session) 60000)) - -(defn- session-expired? [session] - (> (session-age-minutes session) - (config/config-int :max-session-age))) + ([{created-at :created_at} :- {(s/optional-key :created_at) (s/maybe Temporal), s/Keyword s/Any} + max-age-minutes :- s/Int] + (or + (not created-at) + (u.date/older-than? created-at (t/minutes max-age-minutes))))) (defn- current-user-info-for-session "Return User ID and superuser status for Session with `session-id` if it is valid and not expired." diff --git a/src/metabase/models.clj b/src/metabase/models.clj new file mode 100644 index 0000000000000000000000000000000000000000..5969c7d28badf334d652ceddf8fd538c15d4c64c --- /dev/null +++ b/src/metabase/models.clj @@ -0,0 +1,106 @@ +(ns metabase.models + (:require [metabase.models + [activity :as activity] + [card :as card] + [card-favorite :as card-favorite] + [collection :as collection] + [collection-revision :as collection-revision] + [dashboard :as dashboard] + [dashboard-card :as dashboard-card] + [dashboard-card-series :as dashboard-card-series] + [dashboard-favorite :as dashboard-favorite] + [database :as database] + [dependency :as dependency] + [dimension :as dimension] + [field :as field] + [field-values :as field-values] + [metric :as metric] + [metric-important-field :as metric-important-field] + [permissions :as permissions] + [permissions-group :as permissions-group] + [permissions-group-membership :as permissions-group-membership] + [permissions-revision :as permissions-revision] + [pulse :as pulse] + [pulse-card :as pulse-card] + [pulse-channel :as pulse-channel] + [pulse-channel-recipient :as pulse-channel-recipient] + [query-cache :as query-cache] + [query-execution :as query-execution] + [revision :as revision] + [segment :as segment] + [session :as session] + [setting :as setting] + [table :as table] + [user :as user] + [view-log :as view-log]] + [potemkin :as p])) + +;; Fool the linter +(comment activity/keep-me + card/keep-me + card-favorite/keep-me + collection/keep-me + collection-revision/keep-me + dashboard/keep-me + dashboard-card/keep-me + dashboard-card-series/keep-me + dashboard-favorite/keep-me + database/keep-me + dependency/keep-me + dimension/keep-me + field/keep-me + field-values/keep-me + metric/keep-me + metric-important-field/keep-me + permissions/keep-me + permissions-group/keep-me + permissions-group-membership/keep-me + permissions-revision/keep-me + pulse/keep-me + pulse-card/keep-me + pulse-channel/keep-me + pulse-channel-recipient/keep-me + query-cache/keep-me + query-execution/keep-me + revision/keep-me + segment/keep-me + session/keep-me + setting/keep-me + table/keep-me + user/keep-me + view-log/keep-me) + +(p/import-vars + [activity Activity] + [card Card] + [card-favorite CardFavorite] + [collection Collection] + [collection-revision CollectionRevision] + [dashboard Dashboard] + [dashboard-card DashboardCard] + [dashboard-card-series DashboardCardSeries] + [dashboard-favorite DashboardFavorite] + [database Database] + [dependency Dependency] + [dimension Dimension] + [field Field] + [field-values FieldValues] + [metric Metric] + [metric-important-field MetricImportantField] + [permissions Permissions] + [permissions-group PermissionsGroup] + [permissions-group-membership PermissionsGroupMembership] + [permissions-revision PermissionsRevision] + [pulse Pulse] + [pulse-card PulseCard] + [pulse-channel PulseChannel] + [pulse-channel-recipient PulseChannelRecipient] + [query-cache QueryCache] + [query-execution QueryExecution] + [revision Revision] + [segment Segment] + [session Session] + [setting Setting] + [table Table] + [user User] + [view-log ViewLog]) diff --git a/src/metabase/models/activity.clj b/src/metabase/models/activity.clj index c88a0e8cb79451273c6cb0d7ee79cd8236ecb999..8159d28952b1bbaa0951c43e6903a961f13a9cdb 100644 --- a/src/metabase/models/activity.clj +++ b/src/metabase/models/activity.clj @@ -10,7 +10,6 @@ [metric :refer [Metric]] [pulse :refer [Pulse]] [segment :refer [Segment]]] - [metabase.util.date :as du] [toucan [db :as db] [models :as models]])) @@ -52,7 +51,7 @@ (models/defmodel Activity :activity) (defn- pre-insert [activity] - (let [defaults {:timestamp (du/new-sql-timestamp) + (let [defaults {:timestamp :%now :details {}}] (merge defaults activity))) @@ -70,7 +69,6 @@ ;;; ------------------------------------------------------ Etc. ------------------------------------------------------ - ;; ## Persistence Functions ;; TODO - this is probably the exact wrong way to have written this functionality. diff --git a/src/metabase/models/card.clj b/src/metabase/models/card.clj index a501de24f33ead5906f929ae20b25334e90e3ace..014b12eb09cc6f0830682b55e5da2d084e0ab6c6 100644 --- a/src/metabase/models/card.clj +++ b/src/metabase/models/card.clj @@ -103,7 +103,7 @@ (defn- maybe-normalize-query [card] (cond-> card - (:dataset_query card) (update :dataset_query normalize/normalize))) + (seq (:dataset_query card)) (update :dataset_query normalize/normalize))) (defn- pre-insert [{query :dataset_query, :as card}] ;; TODO - we usually check permissions to save/update stuff in the API layer rather than here in the Toucan @@ -167,7 +167,6 @@ (merge models/IModelDefaults {:hydration-keys (constantly [:card]) :types (constantly {:dataset_query :metabase-query - :description :clob :display :keyword :embedding_params :json :query_type :keyword diff --git a/src/metabase/models/collection.clj b/src/metabase/models/collection.clj index 72a1356eda02e5147ef895c0d0c7c28cabbce536..699d99bfc67cc5759af7016773be98bae1abf670 100644 --- a/src/metabase/models/collection.clj +++ b/src/metabase/models/collection.clj @@ -837,7 +837,6 @@ models/IModel (merge models/IModelDefaults {:hydration-keys (constantly [:collection]) - :types (constantly {:name :clob, :description :clob}) :pre-insert pre-insert :post-insert post-insert :pre-update pre-update diff --git a/src/metabase/models/collection_revision.clj b/src/metabase/models/collection_revision.clj index 8cf08c4a78d12366cb89f8a944b7d302023d9c46..c8ca745b3c4398226f8cd6479544691b2f4b757e 100644 --- a/src/metabase/models/collection_revision.clj +++ b/src/metabase/models/collection_revision.clj @@ -1,8 +1,6 @@ (ns metabase.models.collection-revision (:require [metabase.util :as u] - [metabase.util - [date :as du] - [i18n :refer [tru]]] + [metabase.util.i18n :refer [tru]] [toucan [db :as db] [models :as models]])) @@ -10,14 +8,13 @@ (models/defmodel CollectionRevision :collection_revision) (defn- pre-insert [revision] - (assoc revision :created_at (du/new-sql-timestamp))) + (assoc revision :created_at :%now)) (u/strict-extend (class CollectionRevision) models/IModel (merge models/IModelDefaults {:types (constantly {:before :json - :after :json - :remark :clob}) + :after :json}) :pre-insert pre-insert :pre-update (fn [& _] (throw (Exception. (tru "You cannot update a CollectionRevision!"))))})) diff --git a/src/metabase/models/dashboard.clj b/src/metabase/models/dashboard.clj index 5be46568503856b96ab211fd45fca5be2717104c..1cf324587f970b0b1d0adab5b6ba1076fe7a483a 100644 --- a/src/metabase/models/dashboard.clj +++ b/src/metabase/models/dashboard.clj @@ -63,7 +63,7 @@ models/IModel (merge models/IModelDefaults {:properties (constantly {:timestamped? true}) - :types (constantly {:description :clob, :parameters :json, :embedding_params :json}) + :types (constantly {:parameters :json, :embedding_params :json}) :pre-delete pre-delete :pre-insert pre-insert :post-select public-settings/remove-public-uuid-if-public-sharing-is-disabled}) diff --git a/src/metabase/models/dependency.clj b/src/metabase/models/dependency.clj index 753beec5abbb1bf17ce9e63ef3cc95b0906f8191..019026abbfae0a9cadf374adcee8bcb7e840bc92 100644 --- a/src/metabase/models/dependency.clj +++ b/src/metabase/models/dependency.clj @@ -3,7 +3,6 @@ example, a Card might use a Segment; a Dependency object will be used to track this dependency so appropriate actions can take place or be prevented when something changes." (:require [clojure.set :as set] - [metabase.util.date :as du] [potemkin.types :as p.types] [toucan [db :as db] @@ -20,15 +19,8 @@ (dependencies Card 13 {}) -> {:Segment [25 134 344] :Table [18]}")) - -;;; # Dependency Entity - (models/defmodel Dependency :dependency) - -;;; ## Persistence Functions - - (defn retrieve-dependencies "Get the list of dependencies for a given object." [entity id] @@ -56,7 +48,7 @@ dependencies+ (set/difference dependencies-new dependencies-old) dependencies- (set/difference dependencies-old dependencies-new)] (when (seq dependencies+) - (let [vs (map #(merge % {:model entity-name, :model_id id, :created_at (du/new-sql-timestamp)}) dependencies+)] + (let [vs (map #(merge % {:model entity-name, :model_id id, :created_at :%now}) dependencies+)] (db/insert-many! Dependency vs))) (when (seq dependencies-) (doseq [{:keys [dependent_on_model dependent_on_id]} dependencies-] diff --git a/src/metabase/models/field.clj b/src/metabase/models/field.clj index 22b4b2cdba1320a665cdf3fc9938dde0b13bc33f..88bc80867fa14067e0d5e7d552306fef1fbf23da 100644 --- a/src/metabase/models/field.clj +++ b/src/metabase/models/field.clj @@ -144,8 +144,6 @@ :types (constantly {:base_type :keyword :special_type :keyword :visibility_type :keyword - :description :clob - :database_type :clob :has_field_values :keyword :fingerprint :json-for-fingerprints :settings :json}) @@ -298,4 +296,4 @@ "Is field a UNIX timestamp?" [{:keys [base_type special_type]}] (and (isa? base_type :type/Integer) - (isa? special_type :type/DateTime))) + (isa? special_type :type/Temporal))) diff --git a/src/metabase/models/field_values.clj b/src/metabase/models/field_values.clj index b485af2838dacecd3568b3605a10caf53787df1c..07e70a4cce1e6a99de56f8910e22788332ce45bd 100644 --- a/src/metabase/models/field_values.clj +++ b/src/metabase/models/field_values.clj @@ -54,12 +54,12 @@ s/Keyword s/Any}] (boolean (and (not (contains? #{:retired :sensitive :hidden :details-only} (keyword visibility-type))) - (not (isa? (keyword base-type) :type/DateTime)) + (not (isa? (keyword base-type) :type/Temporal)) (#{:list :auto-list} (keyword has-field-values))))) (defn- values-less-than-total-max-length? - "`true` if the combined length of all the values in DISTINCT-VALUES is below the threshold for what we'll allow in a + "`true` if the combined length of all the values in `distinct-values` is below the threshold for what we'll allow in a FieldValues entry. Does some logging as well." [distinct-values] (let [total-length (reduce + (map (comp count str) diff --git a/src/metabase/models/interface.clj b/src/metabase/models/interface.clj index 37cf2966f46572a259aa9e6240ae92144c2ef120..d6a3ed0ab7701030637e25748ebea3fdcc1ef139 100644 --- a/src/metabase/models/interface.clj +++ b/src/metabase/models/interface.clj @@ -6,7 +6,6 @@ [metabase.util :as u] [metabase.util [cron :as cron-util] - [date :as du] [encryption :as encryption] [i18n :refer [trs tru]]] [potemkin.types :as p.types] @@ -33,15 +32,14 @@ obj (json/generate-string obj))) -(defn- json-out [obj keywordize-keys?] - (let [s (u/jdbc-clob->str obj)] - (if (string? s) - (try - (json/parse-string s keywordize-keys?) - (catch Throwable e - (log/error e (str (trs "Error parsing JSON"))) - s)) - obj))) +(defn- json-out [s keywordize-keys?] + (if (string? s) + (try + (json/parse-string s keywordize-keys?) + (catch Throwable e + (log/error e (str (trs "Error parsing JSON"))) + s)) + s)) (defn json-out-with-keywordization "Default out function for columns given a Toucan type `:json`. Parses serialized JSON string and keywordizes keys." @@ -64,8 +62,8 @@ ;; `metabase-query` type is for *outer* queries like Card.dataset_query. Normalizes them on the way in & out (defn- maybe-normalize [query] - (when query - (normalize/normalize query))) + (cond-> query + (seq query) normalize/normalize)) (defn- catch-normalization-exceptions "Wraps normalization fn `f` and returns a version that gracefully handles Exceptions during normalization. When @@ -110,10 +108,6 @@ :in json-in :out #(some-> % json-out-with-keywordization set)) -(models/add-type! :clob - :in identity - :out u/jdbc-clob->str) - (def ^:private encrypted-json-in (comp encryption/maybe-encrypt json-in)) (def ^:private encrypted-json-out (comp json-out-with-keywordization encryption/maybe-decrypt)) @@ -123,11 +117,11 @@ (models/add-type! :encrypted-json :in encrypted-json-in - :out (comp cached-encrypted-json-out u/jdbc-clob->str)) + :out cached-encrypted-json-out) (models/add-type! :encrypted-text :in encryption/maybe-encrypt - :out (comp encryption/maybe-decrypt u/jdbc-clob->str)) + :out encryption/maybe-decrypt) (defn decompress "Decompress `compressed-bytes`." @@ -156,16 +150,15 @@ ;; handles those cases. (models/add-type! :keyword :in u/qualified-name - :out (comp keyword u/jdbc-clob->str)) - + :out keyword) ;;; properties (defn- add-created-at-timestamp [obj & _] - (assoc obj :created_at (du/new-sql-timestamp))) + (assoc obj :created_at :%now)) (defn- add-updated-at-timestamp [obj & _] - (assoc obj :updated_at (du/new-sql-timestamp))) + (assoc obj :updated_at :%now)) (models/add-property! :timestamped? :insert (comp add-created-at-timestamp add-updated-at-timestamp) diff --git a/src/metabase/models/metric.clj b/src/metabase/models/metric.clj index da515f56ae652bf47c29c857107d2db66da0542c..5d93a2beb25682e79d32ec3742413e1984960f45 100644 --- a/src/metabase/models/metric.clj +++ b/src/metabase/models/metric.clj @@ -39,7 +39,7 @@ models/IModel (merge models/IModelDefaults - {:types (constantly {:definition :metric-segment-definition, :description :clob}) + {:types (constantly {:definition :metric-segment-definition}) :properties (constantly {:timestamped? true}) :pre-delete pre-delete :pre-update pre-update}) diff --git a/src/metabase/models/metric_important_field.clj b/src/metabase/models/metric_important_field.clj index cf63488f7c387ec4e9abc8ac95b1e63aa25c69c8..fa47ad3102c553aff509a984a2be15fae0729f24 100644 --- a/src/metabase/models/metric_important_field.clj +++ b/src/metabase/models/metric_important_field.clj @@ -9,7 +9,7 @@ (u/strict-extend (class MetricImportantField) models/IModel (merge models/IModelDefaults - {:types (constantly {:definition :json, :description :clob})}) + {:types (constantly {:definition :json})}) i/IObjectPermissions (merge i/IObjectPermissionsDefaults {:can-read? (constantly true) diff --git a/src/metabase/models/permissions/parse.clj b/src/metabase/models/permissions/parse.clj index 9f283e7f6ef74456a455c2c62ea8b881cd718dd8..908422167a4541c22b6242b44ae521af776bca60 100644 --- a/src/metabase/models/permissions/parse.clj +++ b/src/metabase/models/permissions/parse.clj @@ -5,6 +5,7 @@ - Convert parse tree to path, e.g. ['3' :all] or ['3' :schemas :all] - Convert set of paths to a map, the permission graph" (:require [clojure.core.match :as match] + [clojure.walk :as walk] [instaparse.core :as insta])) (def ^:private grammar @@ -73,23 +74,23 @@ (into paths path) (conj paths path))) []) - (clojure.walk/prewalk (fn [x] - (if (and (sequential? x) - (sequential? (first x)) - (seq (first x))) - (->> x - (group-by first) - (reduce-kv (fn [m k v] - (assoc m k (->> (map rest v) - (filter seq)))) - {})) - x))) - (clojure.walk/prewalk (fn [x] - (if-let [terminal (and (map? x) - (some #(and (= (% x) '()) %) - [:all :some :write :read :segmented]))] - terminal - x))))) + (walk/prewalk (fn [x] + (if (and (sequential? x) + (sequential? (first x)) + (seq (first x))) + (->> x + (group-by first) + (reduce-kv (fn [m k v] + (assoc m k (->> (map rest v) + (filter seq)))) + {})) + x))) + (walk/prewalk (fn [x] + (if-let [terminal (and (map? x) + (some #(and (= (% x) '()) %) + [:all :some :write :read :segmented]))] + terminal + x))))) (defn permissions->graph "Given a set of permission strings, return a graph that expresses the most permissions possible for the set" diff --git a/src/metabase/models/permissions_revision.clj b/src/metabase/models/permissions_revision.clj index 1530e9ae8f69329edcc6fb12c7a9662f6ad88ec7..131147d9328387aa31b7b29c5d14a08dad6a1ca2 100644 --- a/src/metabase/models/permissions_revision.clj +++ b/src/metabase/models/permissions_revision.clj @@ -1,8 +1,6 @@ (ns metabase.models.permissions-revision (:require [metabase.util :as u] - [metabase.util - [date :as du] - [i18n :refer [tru]]] + [metabase.util.i18n :refer [tru]] [toucan [db :as db] [models :as models]])) @@ -10,14 +8,13 @@ (models/defmodel PermissionsRevision :permissions_revision) (defn- pre-insert [revision] - (assoc revision :created_at (du/new-sql-timestamp))) + (assoc revision :created_at :%now)) (u/strict-extend (class PermissionsRevision) models/IModel (merge models/IModelDefaults {:types (constantly {:before :json - :after :json - :remark :clob}) + :after :json}) :pre-insert pre-insert :pre-update (fn [& _] (throw (Exception. (tru "You cannot update a PermissionsRevision!"))))})) diff --git a/src/metabase/models/query_execution.clj b/src/metabase/models/query_execution.clj index 2158c15f65b164057f0d23ba472dd2e8e7de5e34..3de2a2e3f37a2affe928c51cacd402ada3944258 100644 --- a/src/metabase/models/query_execution.clj +++ b/src/metabase/models/query_execution.clj @@ -23,7 +23,7 @@ (u/strict-extend (class QueryExecution) models/IModel (merge models/IModelDefaults - {:types (constantly {:json_query :json, :status :keyword, :context :keyword, :error :clob}) + {:types (constantly {:json_query :json, :status :keyword, :context :keyword}) :pre-insert pre-insert :pre-update (fn [& _] (throw (Exception. (tru "You cannot update a QueryExecution!")))) :post-select post-select})) diff --git a/src/metabase/models/revision.clj b/src/metabase/models/revision.clj index 7009e0917e251bb56d74c48f71b026322f1d2490..602639b48c341bd662e7d42071d6bb43b80811a9 100644 --- a/src/metabase/models/revision.clj +++ b/src/metabase/models/revision.clj @@ -3,9 +3,7 @@ [metabase.models.revision.diff :refer [diff-string]] [metabase.models.user :refer [User]] [metabase.util :as u] - [metabase.util - [date :as du] - [i18n :refer [tru]]] + [metabase.util.i18n :refer [tru]] [potemkin.types :as p.types] [toucan [db :as db] @@ -13,7 +11,8 @@ [models :as models]])) (def ^:const max-revisions - "Maximum number of revisions to keep for each individual object. After this limit is surpassed, the oldest revisions will be deleted." + "Maximum number of revisions to keep for each individual object. After this limit is surpassed, the oldest revisions + will be deleted." 15) ;;; # IRevisioned Protocl @@ -22,13 +21,13 @@ "Methods an entity may optionally implement to control how revisions of an instance are saved and reverted to. All of these methods except for `serialize-instance` have a default implementation in `IRevisionedDefaults`." (serialize-instance [this id instance] - "Prepare an instance for serialization in a `Revision`.") + "Prepare an instance for serialization in a Revision.") (revert-to-revision! [this id user-id serialized-instance] - "Return an object to the state recorded by SERIALIZED-INSTANCE.") - (diff-map [this object1 object2] - "Return a map describing the difference between OBJECT1 and OBJECT2.") - (diff-str [this object1 object2] - "Return a string describing the difference between OBJECT1 and OBJECT2.")) + "Return an object to the state recorded by `serialized-INSTANCE`.") + (diff-map [this object-1 object-2] + "Return a map describing the difference between `object-1` and `object-2`.") + (diff-str [this object-1 object-2] + "Return a string describing the difference between `object-1` and `object-2`.")) ;;; # Reusable Base Implementations for IRevisioned functions @@ -66,7 +65,7 @@ (models/defmodel Revision :revision) (defn- pre-insert [revision] - (assoc revision :timestamp (du/new-sql-timestamp))) + (assoc revision :timestamp :%now)) (defn- do-post-select-for-object "Call the appropriate `post-select` methods (including the type functions) on the `:object` this Revision recorded. @@ -82,7 +81,7 @@ (u/strict-extend (class Revision) models/IModel (merge models/IModelDefaults - {:types (constantly {:object :json, :message :clob}) + {:types (constantly {:object :json}) :pre-insert pre-insert :pre-update (fn [& _] (throw (Exception. (tru "You cannot update a Revision!")))) :post-select do-post-select-for-object})) @@ -98,18 +97,18 @@ :description (diff-str entity (:object prev-revision) (:object revision))) ;; add revision user details (hydrate :user) - (update :user (u/rpartial select-keys [:id :first_name :last_name :common_name])) + (update :user select-keys [:id :first_name :last_name :common_name]) ;; Filter out irrelevant info (dissoc :model :model_id :user_id :object))) (defn revisions - "Get the revisions for ENTITY with ID in reverse chronological order." + "Get the revisions for `entity` with `id` in reverse chronological order." [entity id] {:pre [(models/model? entity) (integer? id)]} (db/select Revision, :model (:name entity), :model_id id, {:order-by [[:id :desc]]})) (defn revisions+details - "Fetch `revisions` for ENTITY with ID and add details." + "Fetch `revisions` for `entity` with `id` and add details." [entity id] (when-let [revisions (revisions entity id)] (loop [acc [], [r1 r2 & more] revisions] @@ -119,7 +118,7 @@ (conj more r2)))))) (defn- delete-old-revisions! - "Delete old revisions of ENTITY with ID when there are more than `max-revisions` in the DB." + "Delete old revisions of `entity` with `id` when there are more than `max-revisions` in the DB." [entity id] {:pre [(models/model? entity) (integer? id)]} (when-let [old-revisions (seq (drop max-revisions (map :id (db/select [Revision :id] @@ -129,8 +128,7 @@ (db/delete! Revision :id [:in old-revisions]))) (defn push-revision! - "Record a new `Revision` for ENTITY with ID. - Returns OBJECT." + "Record a new Revision for `entity` with `id`. Returns `object`." {:arglists '([& {:keys [object entity id user-id is-creation? message]}]), :style/indent 0} [& {object :object, :keys [entity id user-id is-creation? message], @@ -157,7 +155,7 @@ object) (defn revert! - "Revert ENTITY with ID to a given `Revision`." + "Revert `entity` with `id` to a given Revision." {:style/indent 0} [& {:keys [entity id user-id revision-id]}] {:pre [(models/model? entity) diff --git a/src/metabase/models/segment.clj b/src/metabase/models/segment.clj index ccd48a8ec29958123f949272755018987d889dc9..03a62a81a50ad05fab8ddf01e0efd7b0a8b159fd 100644 --- a/src/metabase/models/segment.clj +++ b/src/metabase/models/segment.clj @@ -33,7 +33,7 @@ models/IModel (merge models/IModelDefaults - {:types (constantly {:definition :metric-segment-definition, :description :clob}) + {:types (constantly {:definition :metric-segment-definition}) :properties (constantly {:timestamped? true}) :hydration-keys (constantly [:segment]) :pre-update pre-update}) diff --git a/src/metabase/models/session.clj b/src/metabase/models/session.clj index 285218a277deaa040cf0b5de88ab52ade2de5f94..99ab2611cb950d288d6b1d092b168792cc044f82 100644 --- a/src/metabase/models/session.clj +++ b/src/metabase/models/session.clj @@ -1,6 +1,5 @@ (ns metabase.models.session (:require [metabase.util :as u] - [metabase.util.date :as du] [toucan [db :as db] [models :as models]])) @@ -8,7 +7,7 @@ (models/defmodel Session :core_session) (defn- pre-insert [session] - (assoc session :created_at (du/new-sql-timestamp))) + (assoc session :created_at :%now)) (u/strict-extend (class Session) models/IModel diff --git a/src/metabase/models/setting.clj b/src/metabase/models/setting.clj index 7e94e65027b69d3fa1756ae67b02e7f5dae35954..c3d5e70ed1a41c4e116c2b125522377c9429c888 100644 --- a/src/metabase/models/setting.clj +++ b/src/metabase/models/setting.clj @@ -43,7 +43,7 @@ [util :as u]] [metabase.models.setting.cache :as cache] [metabase.util - [date :as du] + [date-2 :as u.date] [i18n :as ui18n :refer [deferred-trs deferred-tru trs tru]]] [schema.core :as s] [toucan @@ -71,7 +71,7 @@ :boolean Boolean :integer Long :double Double - :timestamp java.sql.Timestamp}) + :timestamp java.time.temporal.Temporal}) (def ^:private SettingDefinition {:name s/Keyword @@ -204,7 +204,7 @@ (defn get-timestamp "Get the string value of `setting-or-name` and parse it as an ISO-8601-formatted string, returning a Timestamp." [setting-or-name] - (du/->Timestamp (get-string setting-or-name) :no-timezone)) + (u.date/parse (get-string setting-or-name))) (defn get-csv "Get the string value of `setting-or-name` and parse it as CSV, returning a sequence of exploded strings." @@ -341,7 +341,7 @@ (defn set-timestamp! "Serialize `new-value` for `setting-or-name` as a ISO 8601-encoded timestamp string and save it." [setting-or-name new-value] - (set-string! setting-or-name (some-> new-value du/date->iso-8601))) + (set-string! setting-or-name (some-> new-value u.date/format))) (defn- serialize-csv [value] (cond diff --git a/src/metabase/models/table.clj b/src/metabase/models/table.clj index bdf58308d2be5e4fdf8ff6e55dfde22855a6efca..835cd583737ebd555e691176ee4d2da44b9b99e0 100644 --- a/src/metabase/models/table.clj +++ b/src/metabase/models/table.clj @@ -50,11 +50,8 @@ models/IModel (merge models/IModelDefaults {:hydration-keys (constantly [:table]) - :types (constantly {:entity_type :keyword, - :visibility_type :keyword, - :description :clob, - :has_field_values :clob, - :fields_hash :clob}) + :types (constantly {:entity_type :keyword + :visibility_type :keyword}) :properties (constantly {:timestamped? true}) :pre-insert pre-insert :pre-delete pre-delete}) diff --git a/src/metabase/models/task_history.clj b/src/metabase/models/task_history.clj index 0e058eccb492207df056c5ce257054c2f3de488a..31ba19738720dbd01d0239187d4be9cfc16add93 100644 --- a/src/metabase/models/task_history.clj +++ b/src/metabase/models/task_history.clj @@ -1,9 +1,9 @@ (ns metabase.models.task-history (:require [clojure.tools.logging :as log] + [java-time :as t] [metabase.models.interface :as i] [metabase.util :as u] [metabase.util - [date :as du] [i18n :refer [trs]] [schema :as su]] [schema.core :as s] @@ -63,8 +63,8 @@ (try (db/insert! TaskHistory (assoc info - :started_at (du/->Timestamp start-time-ms) - :ended_at (du/->Timestamp end-time-ms) + :started_at (t/instant start-time-ms) + :ended_at (t/instant end-time-ms) :duration duration-ms)) (catch Throwable e (log/warn e (trs "Error saving task history")))))) diff --git a/src/metabase/models/user.clj b/src/metabase/models/user.clj index e3f351c2bd956273544aaa4f02aa874b76e91023..3ce417449675f1e0eb01495fc9497532e8dbbbb8 100644 --- a/src/metabase/models/user.clj +++ b/src/metabase/models/user.clj @@ -14,7 +14,6 @@ [permissions-group :as group] [permissions-group-membership :as perm-membership :refer [PermissionsGroupMembership]]] [metabase.util - [date :as du] [i18n :refer [trs]] [schema :as su]] [schema.core :as s] @@ -35,7 +34,7 @@ (assert (not (:password_salt user)) "Don't try to pass an encrypted password to (insert! User). Password encryption is handled by pre-insert.") (let [salt (str (UUID/randomUUID)) - defaults {:date_joined (du/new-sql-timestamp) + defaults {:date_joined :%now :last_login nil :is_active true :is_superuser false}] diff --git a/src/metabase/models/view_log.clj b/src/metabase/models/view_log.clj index ec7a07eed8a29b299434c7951b825fcc7b12dd60..bc183698b42d68297d5f9129e98a4cd7b4df9d8d 100644 --- a/src/metabase/models/view_log.clj +++ b/src/metabase/models/view_log.clj @@ -2,13 +2,12 @@ "The ViewLog is used to log an event where a given User views a given object such as a Table or Card (Question)." (:require [metabase.models.interface :as i] [metabase.util :as u] - [metabase.util.date :as du] [toucan.models :as models])) (models/defmodel ViewLog :view_log) (defn- pre-insert [log-entry] - (let [defaults {:timestamp (du/new-sql-timestamp)}] + (let [defaults {:timestamp :%now}] (merge defaults log-entry))) (u/strict-extend (class ViewLog) diff --git a/src/metabase/plugins.clj b/src/metabase/plugins.clj index 92780b8a5c68d02e03ea4b68abe7804dc440ff10..b3a1e110e3e8a9f9e1b40d8ce6744b71ef3d53b8 100644 --- a/src/metabase/plugins.clj +++ b/src/metabase/plugins.clj @@ -6,7 +6,6 @@ [metabase.plugins [classloader :as classloader] [initialize :as initialize]] - [metabase.util :as u] [metabase.util [files :as files] [i18n :refer [trs]]] @@ -20,28 +19,30 @@ ;; logic for determining plugins dir -- see below (defonce ^:private plugins-dir* (delay - (let [filename (plugins-dir-filename)] - (try - ;; attempt to create <current-dir>/plugins if it doesn't already exist. Check that the directory is readable. - (u/prog1 (files/get-path filename) - (files/create-dir-if-not-exists! <>) - (assert (Files/isWritable <>) - (trs "Metabase does not have permissions to write to plugins directory {0}" filename))) - ;; If we couldn't create the directory, or the directory is not writable, fall back to a temporary directory - ;; rather than failing to launch entirely. Log instructions for what should be done to fix the problem. - (catch Throwable e - (log/warn - e - (trs "Metabase cannot use the plugins directory {0}" filename) - "\n" - (trs "Please make sure the directory exists and that Metabase has permission to write to it.") - (trs "You can change the directory Metabase uses for modules by setting the environment variable MB_PLUGINS_DIR.") - (trs "Falling back to a temporary directory for now.")) - ;; Check whether the fallback temporary directory is writable. If it's not, there's no way for us to - ;; gracefully proceed here. Throw an Exception detailing the critical issues. - (u/prog1 (files/get-path (System/getProperty "java.io.tmpdir")) - (assert (Files/isWritable <>) - (trs "Metabase cannot write to temporary directory. Please set MB_PLUGINS_DIR to a writable directory and restart Metabase.")))))))) + (let [filename (plugins-dir-filename)] + (try + ;; attempt to create <current-dir>/plugins if it doesn't already exist. Check that the directory is readable. + (let [path (files/get-path filename)] + (files/create-dir-if-not-exists! path) + (assert (Files/isWritable path) + (trs "Metabase does not have permissions to write to plugins directory {0}" filename)) + path) + ;; If we couldn't create the directory, or the directory is not writable, fall back to a temporary directory + ;; rather than failing to launch entirely. Log instructions for what should be done to fix the problem. + (catch Throwable e + (log/warn + e + (trs "Metabase cannot use the plugins directory {0}" filename) + "\n" + (trs "Please make sure the directory exists and that Metabase has permission to write to it.") + (trs "You can change the directory Metabase uses for modules by setting the environment variable MB_PLUGINS_DIR.") + (trs "Falling back to a temporary directory for now.")) + ;; Check whether the fallback temporary directory is writable. If it's not, there's no way for us to + ;; gracefully proceed here. Throw an Exception detailing the critical issues. + (let [path (files/get-path (System/getProperty "java.io.tmpdir"))] + (assert (Files/isWritable path) + (trs "Metabase cannot write to temporary directory. Please set MB_PLUGINS_DIR to a writable directory and restart Metabase.")) + path)))))) ;; Actual logic is wrapped in a delay rather than a normal function so we don't log the error messages more than once ;; in cases where we have to fall back to the system temporary directory @@ -100,8 +101,7 @@ ;; if different JARs with `metabase` packages have different signing keys. Go ahead and ;; ignore it but let people know they can get rid of it. (log/warn - (u/format-color 'red - (trs "spark-deps.jar is no longer needed by Metabase 0.32.0+. You can delete it from the plugins directory.")))))] + (trs "spark-deps.jar is no longer needed by Metabase 0.32.0+. You can delete it from the plugins directory."))))] path)) (defn- has-manifest? ^Boolean [^Path path] @@ -117,7 +117,15 @@ (try (init-plugin! path) (catch Throwable e - (log/error e (u/format-color 'red (trs "Failied to initialize plugin {0}" (.getFileName path)))))))) + (log/error e (trs "Failied to initialize plugin {0}" (.getFileName path))))))) + +(defn- load! [] + (log/info (trs "Loading plugins in {0}..." (str (plugins-dir)))) + (extract-system-modules!) + (let [paths (plugins-paths)] + (init-plugins! paths))) + +(defonce ^:private load!* (delay (load!))) (defn load-plugins! "Load Metabase plugins. The are JARs shipped as part of Metabase itself, under the `resources/modules` directory (the @@ -129,10 +137,12 @@ * Metabase creates the plugins directory if it does not already exist. * Any plugins that are shipped as part of Metabase itself are extracted from the Metabase uberjar (or `resources` directory when running with `lein`) into the plugins directory. - * Each JAR in the plugins directory is added to the classpath. - * For JARs that include a Metabase plugin manifest (a `metabase-plugin.yaml` file), " + * Each JAR in the plugins directory that *does not* include a Metabase plugin manifest is added to the classpath. + * For JARs that include a Metabase plugin manifest (a `metabase-plugin.yaml` file), a lazy-loading Metabase driver + is registered; when the driver is initialized (automatically, when certain methods are called) the JAR is added + to the classpath and the driver namespace is loaded + + This function will only perform loading steps the first time it is called — it is safe to call this function more + than once." [] - (log/info (u/format-color 'magenta (trs "Loading plugins in {0}..." (str (plugins-dir))))) - (extract-system-modules!) - (let [paths (plugins-paths)] - (init-plugins! paths))) + @load!*) diff --git a/src/metabase/plugins/classloader.clj b/src/metabase/plugins/classloader.clj index c0c38ac2dbf8a6196e36f1ec9341eb7422bf53f1..d63538927ca1d2468ca4d025718fe2beb69f87d8 100644 --- a/src/metabase/plugins/classloader.clj +++ b/src/metabase/plugins/classloader.clj @@ -81,8 +81,8 @@ current-thread-context-classloader)) ;; otherwise set the current thread's context classloader to the shared context classloader (let [shared-classloader @shared-context-classloader] - (log/debug - (deferred-trs "Setting current thread context classloader to shared classloader {0}..." shared-classloader)) + (log/trace + (deferred-trs "Setting current thread context classloader to shared classloader {0}..." shared-classloader)) (.setContextClassLoader (Thread/currentThread) shared-classloader) shared-classloader))) @@ -96,8 +96,9 @@ ;; as elsewhere make sure Clojure is using our context classloader (which should normally be true anyway) because ;; that's the one that will have access to the JARs we've added to the classpath at runtime (binding [*use-context-classloader* true] - (apply clojure.core/require args))) - + ;; serialize requires + (locking clojure.lang.RT/REQUIRE_LOCK + (apply clojure.core/require args)))) (defn- classloader-hierarchy "Return a sequence of classloaders representing the hierarchy for `classloader` by iterating over calls to diff --git a/src/metabase/plugins/dependencies.clj b/src/metabase/plugins/dependencies.clj index 7d34cb2fbf78d93d2400607a5dc48697f8c565a9..05c930e9ff5c42cafcaddb8500430c6d5587e7ca 100644 --- a/src/metabase/plugins/dependencies.clj +++ b/src/metabase/plugins/dependencies.clj @@ -7,7 +7,6 @@ (def ^:private plugins-with-unsatisfied-deps (atom #{})) - (defn- dependency-type [{classname :class, plugin :plugin}] (cond classname :class diff --git a/src/metabase/plugins/lazy_loaded_driver.clj b/src/metabase/plugins/lazy_loaded_driver.clj index f7fc0e80a7190ed6047e30769b068f3fac1d2d2c..28a546df2a4690eada31cb56c5ad3d019114c1ab 100644 --- a/src/metabase/plugins/lazy_loaded_driver.clj +++ b/src/metabase/plugins/lazy_loaded_driver.clj @@ -13,7 +13,6 @@ [metabase.driver.common :as driver.common] [metabase.plugins.init-steps :as init-steps] [metabase.util - [date :as du] [i18n :refer [trs]] [ssh :as ssh]]) (:import clojure.lang.MultiFn)) @@ -55,7 +54,7 @@ ;; implementation (remove-method driver/initialize! driver) ;; ok, do the init steps listed in the plugin mainfest - (du/profile (u/format-color 'magenta (trs "Load lazy loading driver {0}" driver)) + (u/profile (u/format-color 'magenta (trs "Load lazy loading driver {0}" driver)) (init-steps/do-init-steps! init-steps)) ;; ok, now go ahead and call `driver/initialize!` a second time on the driver in case it actually has ;; an implementation of `initialize!` other than this one. If it does not, we'll just end up hitting diff --git a/src/metabase/public_settings.clj b/src/metabase/public_settings.clj index 1a0c158dd20b5be5c079bd43ad747980d1407ab0..bbf3e976ed74540085acf47179252b60c8270e1b 100644 --- a/src/metabase/public_settings.clj +++ b/src/metabase/public_settings.clj @@ -1,6 +1,7 @@ (ns metabase.public-settings (:require [clojure.string :as str] [clojure.tools.logging :as log] + [java-time :as t] [metabase [config :as config] [types :as types] @@ -15,7 +16,7 @@ [i18n :refer [available-locales-with-names deferred-tru set-locale trs tru]] [password :as password]] [toucan.db :as db]) - (:import [java.util TimeZone UUID])) + (:import java.util.UUID)) (defsetting check-for-updates (deferred-tru "Identify when new versions of Metabase are available.") @@ -171,6 +172,16 @@ :type :boolean :default true) +(defsetting show-homepage-data + (deferred-tru "Whether or not to display data on the homepage. Admins might turn this off in order to direct users to better content than raw data") + :type :boolean + :default true) + +(defsetting show-homepage-xrays + (deferred-tru "Whether or not to display x-ray suggestions on the homepage. They will also be hidden if any dashboards are pinned. Admins might hide this to direct users to better content than raw data") + :type :boolean + :default true) + (defsetting source-address-header (deferred-tru "Identify the source of HTTP requests by this header's value, instead of its remote address.") :getter (fn [] (some-> (setting/get-string :source-address-header) @@ -185,16 +196,14 @@ (assoc object :public_uuid nil) object)) - -(defn- short-timezone-name* - "Get a short display name (e.g. `PST`) for `report-timezone`, or fall back to the System default if it's not set." - [^String timezone-name] - (let [^TimeZone timezone (or (when (seq timezone-name) - (TimeZone/getTimeZone timezone-name)) - (TimeZone/getDefault))] - (.getDisplayName timezone (.inDaylightTime timezone (java.util.Date.)) TimeZone/SHORT))) - -(def ^:private short-timezone-name (memoize short-timezone-name*)) +(defn- short-timezone-name [timezone-id] + (let [^java.time.ZoneId zone (if (seq timezone-id) + (t/zone-id timezone-id) + (t/zone-id))] + (.getDisplayName + zone + java.time.format.TextStyle/SHORT + (java.util.Locale/getDefault)))) (defn- resolve-setting [ns-symb setting-symb] (classloader/require ns-symb) @@ -234,6 +243,8 @@ :public_sharing (enable-public-sharing) :report_timezone (resolve-setting 'metabase.driver 'report-timezone) :setup_token (resolve-setting 'metabase.setup 'token-value) + :show_homepage_data (show-homepage-data) + :show_homepage_xrays (show-homepage-xrays) :site_name (site-name) :site_url (site-url) :timezone_short (short-timezone-name (setting/get :report-timezone)) diff --git a/src/metabase/pulse.clj b/src/metabase/pulse.clj index 062fdb13aa0a70e8b44a374622cbd455e71716db..88e070542f1e0e9b5f1d444e7ccd431aa569c6dc 100644 --- a/src/metabase/pulse.clj +++ b/src/metabase/pulse.clj @@ -5,22 +5,22 @@ [email :as email] [query-processor :as qp] [util :as u]] - [metabase.driver.util :as driver.u] [metabase.email.messages :as messages] [metabase.integrations.slack :as slack] [metabase.middleware.session :as session] [metabase.models [card :refer [Card]] + [database :refer [Database]] [pulse :as pulse :refer [Pulse]]] [metabase.pulse.render :as render] + [metabase.query-processor.timezone :as qp.timezone] [metabase.util [i18n :refer [deferred-tru trs tru]] [ui-logic :as ui] [urls :as urls]] [schema.core :as s] [toucan.db :as db]) - (:import java.util.TimeZone - metabase.models.card.CardInstance)) + (:import metabase.models.card.CardInstance)) ;;; ------------------------------------------------- PULSE SENDING -------------------------------------------------- @@ -48,12 +48,11 @@ (or (:database_id card) (get-in card [:dataset_query :database]))) -(s/defn defaulted-timezone :- TimeZone - "Returns the timezone for the given `card`. Either the report timezone (if applicable) or the JVM timezone." +(s/defn defaulted-timezone :- s/Str + "Returns the timezone ID for the given `card`. Either the report timezone (if applicable) or the JVM timezone." [card :- CardInstance] - (let [^String timezone-str (or (some-> card database-id driver.u/database->driver driver.u/report-timezone-if-supported) - (System/getProperty "user.timezone"))] - (TimeZone/getTimeZone timezone-str))) + (or (some-> card database-id Database qp.timezone/results-timezone-id) + (qp.timezone/system-timezone-id))) (defn- first-question-name [pulse] (-> pulse :cards first :name)) diff --git a/src/metabase/pulse/render.clj b/src/metabase/pulse/render.clj index fe8fa0f42493b81fcfde6bb8c92e1cff44ead4cf..e8acf9f24281cd574761bee87f94ffec39bd99ef 100644 --- a/src/metabase/pulse/render.clj +++ b/src/metabase/pulse/render.clj @@ -1,13 +1,13 @@ (ns metabase.pulse.render (:require [clojure.tools.logging :as log] [hiccup.core :refer [h]] - [metabase.mbql.util :as mbql.u] [metabase.pulse.render [body :as body] [common :as common] [image-bundle :as image-bundle] [png :as png] [style :as style]] + [metabase.types :as types] [metabase.util [i18n :refer [trs tru]] [urls :as urls]] @@ -75,7 +75,7 @@ (and (= col-count 2) (> row-count 1) - (mbql.u/datetime-field? col-1) + (types/temporal-field? col-1) (number-field? col-2)) :sparkline @@ -91,7 +91,7 @@ (:include_xls card))) (s/defn ^:private render-pulse-card-body :- common/RenderedPulseCard - [render-type timezone card {:keys [data error], :as results}] + [render-type timezone-id :- (s/maybe s/Str) card {:keys [data error], :as results}] (try (when error (let [^String msg (tru "Card has errors: {0}" error)] @@ -100,7 +100,7 @@ (when (is-attached? card) :attached) :unknown)] - (body/render chart-type render-type timezone card data)) + (body/render chart-type render-type timezone-id card data)) (catch Throwable e (log/error e (trs "Pulse card render error")) (body/render :error nil nil nil nil)))) @@ -111,9 +111,9 @@ (s/defn ^:private render-pulse-card :- common/RenderedPulseCard "Render a single `card` for a `Pulse` to Hiccup HTML. `result` is the QP results." - [render-type timezone card results] + [render-type timezone-id :- (s/maybe s/Str) card results] (let [{title :content title-attachments :attachments} (make-title-if-needed render-type card) - {pulse-body :content body-attachments :attachments} (render-pulse-card-body render-type timezone card results)] + {pulse-body :content body-attachments :attachments} (render-pulse-card-body render-type timezone-id card results)] {:attachments (merge title-attachments body-attachments) :content [:a {:href (card-href card) :target "_blank" @@ -129,14 +129,14 @@ (defn render-pulse-card-for-display "Same as `render-pulse-card` but isn't intended for an email, rather for previewing so there is no need for attachments" - [timezone card results] - (:content (render-pulse-card :inline timezone card results))) + [timezone-id card results] + (:content (render-pulse-card :inline timezone-id card results))) (s/defn render-pulse-section :- common/RenderedPulseCard "Render a specific section of a Pulse, i.e. a single Card, to Hiccup HTML." - [timezone {card :card {:keys [data] :as result} :result}] + [timezone-id {card :card {:keys [data] :as result} :result}] (let [{:keys [attachments content]} (binding [*include-title* true] - (render-pulse-card :attachment timezone card result))] + (render-pulse-card :attachment timezone-id card result))] {:attachments attachments :content [:div {:style (style/style (merge {:margin-top :10px @@ -151,7 +151,7 @@ :box-shadow "0 1px 2px rgba(0, 0, 0, .08)"})))} content]})) -(defn render-pulse-card-to-png +(s/defn render-pulse-card-to-png :- bytes "Render a `pulse-card` as a PNG. `data` is the `:data` from a QP result (I think...)" - ^bytes [timezone pulse-card result] - (png/render-html-to-png (render-pulse-card :inline timezone pulse-card result) card-width)) + [timezone-id :- (s/maybe s/Str) pulse-card result] + (png/render-html-to-png (render-pulse-card :inline timezone-id pulse-card result) card-width)) diff --git a/src/metabase/pulse/render/body.clj b/src/metabase/pulse/render/body.clj index bd039c04794dc0fd57274fe4a74ca4d4619aa51a..a1b625d2564357b18395ffb79c2aa5c9f06e6b26 100644 --- a/src/metabase/pulse/render/body.clj +++ b/src/metabase/pulse/render/body.clj @@ -1,6 +1,5 @@ (ns metabase.pulse.render.body (:require [hiccup.core :refer [h]] - [metabase.mbql.util :as mbql.u] [metabase.pulse.render [color :as color] [common :as common] @@ -9,6 +8,7 @@ [sparkline :as sparkline] [style :as style] [table :as table]] + [metabase.types :as types] [metabase.util.i18n :refer [trs]] [schema.core :as s])) @@ -40,12 +40,12 @@ ;;; --------------------------------------------------- Formatting --------------------------------------------------- -(defn- format-cell - [timezone value col] +(s/defn ^:private format-cell + [timezone-id :- (s/maybe s/Str) value col] (cond - (mbql.u/datetime-field? col) (datetime/format-timestamp timezone value col) - (and (number? value) (not (mbql.u/datetime-field? col))) (common/format-number value) - :else (str value))) + (types/temporal-field? col) (datetime/format-temporal-str timezone-id value col) + (and (number? value) (not (types/temporal-field? col))) (common/format-number value) + :else (str value))) ;;; --------------------------------------------------- Rendering ---------------------------------------------------- @@ -80,9 +80,9 @@ column-name)) :bar-width (when include-bar? 99)}) -(defn- query-results->row-seq +(s/defn ^:private query-results->row-seq "Returns a seq of stringified formatted rows that can be rendered into HTML" - [timezone remapping-lookup cols rows bar-column max-value] + [timezone-id :- (s/maybe s/Str) remapping-lookup cols rows bar-column max-value] (for [row rows] {:bar-width (when-let [bar-value (and bar-column (bar-column row))] ;; cast to double to avoid "Non-terminating decimal expansion" errors @@ -94,17 +94,17 @@ [(nth cols (get remapping-lookup (:name maybe-remapped-col))) (nth row (get remapping-lookup (:name maybe-remapped-col)))] [maybe-remapped-col maybe-remapped-row-cell])]] - (format-cell timezone row-cell col))})) + (format-cell timezone-id row-cell col))})) -(defn- prep-for-html-rendering +(s/defn ^:private prep-for-html-rendering "Convert the query results (`cols` and `rows`) into a formatted seq of rows (list of strings) that can be rendered as HTML" - [timezone cols rows bar-column max-value column-limit] + [timezone-id :- (s/maybe s/Str) cols rows bar-column max-value column-limit] (let [remapping-lookup (create-remapping-lookup cols) limited-cols (take column-limit cols)] (cons (query-results->header-row remapping-lookup limited-cols bar-column) - (query-results->row-seq timezone remapping-lookup limited-cols (take rows-limit rows) bar-column max-value)))) + (query-results->row-seq timezone-id remapping-lookup limited-cols (take rows-limit rows) bar-column max-value)))) (defn- strong-limit-text [number] [:strong {:style (style/style {:color style/color-gray-3})} (h (common/format-number number))]) @@ -157,17 +157,16 @@ (defmulti render "Render a Pulse as `chart-type` (e.g. `:bar`, `:scalar`, etc.) and `render-type` (either `:inline` or `:attachment`)." - {:arglists '([chart-type render-type timezone card data])} + {:arglists '([chart-type render-type timezone-id card data])} (fn [chart-type _ _ _ _] chart-type)) - (s/defmethod render :table :- common/RenderedPulseCard - [_ render-type timezone card {:keys [cols rows] :as data}] + [_ render-type timezone-id :- (s/maybe s/Str) card {:keys [cols rows] :as data}] (let [table-body [:div (table/render-table (color/make-color-selector data (:visualization_settings card)) (mapv :name (:cols data)) - (prep-for-html-rendering timezone cols rows nil nil cols-limit)) + (prep-for-html-rendering timezone-id cols rows nil nil cols-limit)) (render-truncation-warning cols-limit (count-displayed-columns cols) rows-limit (count rows))]] {:attachments nil @@ -178,7 +177,7 @@ (list table-body))})) (s/defmethod render :bar :- common/RenderedPulseCard - [_ _ timezone card {:keys [cols] :as data}] + [_ _ timezone-id :- (s/maybe s/Str) card {:keys [cols] :as data}] (let [[x-axis-rowfn y-axis-rowfn] (common/graphing-column-row-fns card data) rows (common/non-nil-rows x-axis-rowfn y-axis-rowfn (:rows data)) max-value (apply max (map y-axis-rowfn rows))] @@ -189,29 +188,28 @@ [:div (table/render-table (color/make-color-selector data (:visualization_settings card)) (mapv :name cols) - (prep-for-html-rendering timezone cols rows y-axis-rowfn max-value 2)) + (prep-for-html-rendering timezone-id cols rows y-axis-rowfn max-value 2)) (render-truncation-warning 2 (count-displayed-columns cols) rows-limit (count rows))]})) - (s/defmethod render :scalar :- common/RenderedPulseCard - [_ _ timezone card {:keys [cols rows]}] + [_ _ timezone-id card {:keys [cols rows]}] {:attachments nil :content [:div {:style (style/style (style/scalar-style))} - (h (format-cell timezone (ffirst rows) (first cols)))]}) + (h (format-cell timezone-id (ffirst rows) (first cols)))]}) (s/defmethod render :sparkline :- common/RenderedPulseCard - [_ render-type timezone card {:keys [rows cols] :as data}] + [_ render-type timezone-id card {:keys [rows cols] :as data}] (let [[x-axis-rowfn y-axis-rowfn] (common/graphing-column-row-fns card data) - rows (sparkline/sparkline-rows timezone card data) + rows (sparkline/sparkline-rows timezone-id card data) last-rows (reverse (take-last 2 rows)) values (for [row last-rows] (some-> row y-axis-rowfn common/format-number)) - labels (datetime/format-timestamp-pair timezone (map x-axis-rowfn last-rows) (x-axis-rowfn cols)) - image-bundle (sparkline/sparkline-image-bundle render-type timezone card {:rows rows, :cols cols})] + labels (datetime/format-temporal-string-pair timezone-id (map x-axis-rowfn last-rows) (x-axis-rowfn cols)) + image-bundle (sparkline/sparkline-image-bundle render-type timezone-id card {:rows rows, :cols cols})] {:attachments (when image-bundle (image-bundle/image-bundle->attachment image-bundle)) @@ -242,7 +240,6 @@ :font-size :16px})} (second labels)]]]]})) - (s/defmethod render :empty :- common/RenderedPulseCard [_ render-type _ _ _] (let [image-bundle (image-bundle/no-results-image-bundle render-type)] @@ -259,7 +256,6 @@ :color style/color-gray-4})} (trs "No results")]]})) - (s/defmethod render :attached :- common/RenderedPulseCard [_ render-type _ _ _] (let [image-bundle (image-bundle/attached-image-bundle render-type)] @@ -276,7 +272,6 @@ :color style/color-gray-4})} (trs "This question has been included as a file attachment")]]})) - (s/defmethod render :unknown :- common/RenderedPulseCard [_ _ _ _ _] {:attachments @@ -291,7 +286,6 @@ [:br] (trs "Please view this card in Metabase.")]}) - (s/defmethod render :error :- common/RenderedPulseCard [_ _ _ _ _] {:attachments diff --git a/src/metabase/pulse/render/common.clj b/src/metabase/pulse/render/common.clj index 8b9cb0c8a0bab37dacdabb56ee21f442b4621415..8ba4b4b66978f7f8dbb2119bc054327c3e0c95ff 100644 --- a/src/metabase/pulse/render/common.clj +++ b/src/metabase/pulse/render/common.clj @@ -6,6 +6,9 @@ [schema.core :as s]) (:import java.net.URL)) +;; Fool Eastwood into thinking this namespace is used +(comment hutil/keep-me) + (def RenderedPulseCard "Schema used for functions that operate on pulse card contents and their attachments" {:attachments (s/maybe {s/Str URL}) diff --git a/src/metabase/pulse/render/datetime.clj b/src/metabase/pulse/render/datetime.clj index 130078dde59aa457ae5bef55fc28db0f91e88a14..25e664a6b2847c3c8036742277f04e8edfe71fd5 100644 --- a/src/metabase/pulse/render/datetime.clj +++ b/src/metabase/pulse/render/datetime.clj @@ -1,49 +1,40 @@ (ns metabase.pulse.render.datetime "Logic for rendering datetimes inside Pulses." - (:require [clj-time - [core :as t] - [format :as f]] + (:require [clojure.tools.logging :as log] + [java-time :as t] [metabase.util - [date :as du] - [i18n :refer [tru]] + [date-2 :as u.date] + [i18n :refer [trs tru]] [schema :as su]] [schema.core :as s]) - (:import [org.joda.time DateTime DateTimeZone] - [org.joda.time.base BaseDateTime BaseSingleFieldPeriod])) + (:import java.time.Period + java.time.temporal.Temporal)) -(defn- reformat-timestamp [timezone old-format-timestamp new-format-string] - (f/unparse (f/with-zone (f/formatter new-format-string) - (DateTimeZone/forTimeZone timezone)) - (du/str->date-time old-format-timestamp timezone))) +(defn- reformat-temporal-str [timezone-id s new-format-string] + (t/format new-format-string (u.date/parse s timezone-id))) -(defn format-timestamp - "Formats timestamps with human friendly absolute dates based on the column :unit" - [timezone timestamp col] +(defn format-temporal-str + "Reformat a temporal literal string `s` (i.e., an ISO-8601 string) with a human-friendly format based on the + column `:unit`." + [timezone-id s col] (case (:unit col) - :hour (reformat-timestamp timezone timestamp "h a - MMM YYYY") - :week (str "Week " (reformat-timestamp timezone timestamp "w - YYYY")) - :month (reformat-timestamp timezone timestamp "MMMM YYYY") - :quarter (let [timestamp-obj (du/str->date-time timestamp timezone)] - (str "Q" - (inc (int (/ (t/month timestamp-obj) - 3))) - " - " - (t/year timestamp-obj))) + ;; these types have special formatting + :hour (reformat-temporal-str timezone-id s "h a - MMM YYYY") + :week (str "Week " (reformat-temporal-str timezone-id s "w - YYYY")) + :month (reformat-temporal-str timezone-id s "MMMM YYYY") + :quarter (reformat-temporal-str timezone-id s "QQQ - YYYY") + ;; no special formatting here : return as ISO-8601 ;; TODO: probably shouldn't even be showing sparkline for x-of-y groupings? (:year :hour-of-day :day-of-week :week-of-year :month-of-year) - (str timestamp) + s - (reformat-timestamp timezone timestamp "MMM d, YYYY"))) - - -(defn- year [] (t/year (t/now))) -(defn- month [] (t/month (t/now))) -(defn- day [] (t/day (t/now))) + ;; for everything else return in this format + (reformat-temporal-str timezone-id s "MMM d, YYYY"))) (def ^:private RenderableInterval - {:interval-start BaseDateTime - :interval BaseSingleFieldPeriod + {:interval-start Temporal + :interval Period :this-interval-name su/NonBlankString :last-interval-name su/NonBlankString}) @@ -55,13 +46,13 @@ (s/defmethod renderable-interval :day :- RenderableInterval [_] - {:interval-start (t/date-midnight (year) (month) (day)) + {:interval-start (u.date/truncate :day) :interval (t/days 1) :this-interval-name (tru "Today") :last-interval-name (tru "Yesterday")}) (defn- start-of-this-week [] - (-> (org.joda.time.LocalDate. (t/now)) .weekOfWeekyear .roundFloorCopy .toDateTimeAtStartOfDay)) + (u.date/truncate :week)) (s/defmethod renderable-interval :week :- RenderableInterval [_] @@ -72,33 +63,30 @@ (s/defmethod renderable-interval :month :- RenderableInterval [_] - {:interval-start (t/date-midnight (year) (month)) + {:interval-start (u.date/truncate :month) :interval (t/months 1) :this-interval-name (tru "This month") :last-interval-name (tru "Last month")}) -(defn- start-of-this-quarter [] - (t/date-midnight (year) (inc (* 3 (Math/floor (/ (dec (month)) - 3)))))) (s/defmethod renderable-interval :quarter :- RenderableInterval [_] - {:interval-start (start-of-this-quarter) + {:interval-start (u.date/truncate :quarter) :interval (t/months 3) :this-interval-name (tru "This quarter") :last-interval-name (tru "Last quarter")}) (s/defmethod renderable-interval :year :- RenderableInterval [_] - {:interval-start (t/date-midnight (year)) + {:interval-start (u.date/truncate :year) :interval (t/years 1) :this-interval-name (tru "This year") :last-interval-name (tru "Last year")}) (s/defn ^:private date->interval-name :- (s/maybe su/NonBlankString) - [date :- (s/maybe DateTime), unit :- (s/maybe s/Keyword)] - (when (and date unit) + [t :- (s/maybe Temporal), unit :- (s/maybe s/Keyword)] + (when (and t unit) (when-let [{:keys [interval-start interval this-interval-name last-interval-name]} (renderable-interval unit)] - (condp t/within? date + (condp t/contains? t (t/interval interval-start (t/plus interval-start interval)) this-interval-name @@ -107,16 +95,23 @@ nil)))) -(s/defn format-timestamp-relative :- (s/maybe su/NonBlankString) +(s/defn format-temporal-str-relative :- (s/maybe su/NonBlankString) "Formats timestamps with relative names (today, yesterday, this *, last *) based on column :unit, if possible, otherwie returns nil" - [timezone timestamp-str {:keys [unit]}] - (date->interval-name (du/str->date-time timestamp-str timezone) unit)) - -(defn format-timestamp-pair - "Formats a pair of timestamps, using relative formatting for the first timestamps if possible and 'Previous :unit' for - the second, otherwise absolute timestamps for both" - [timezone [a b] col] - (if-let [a' (format-timestamp-relative timezone a col)] - [a' (str "Previous " (-> col :unit name))] - [(format-timestamp timezone a col) (format-timestamp timezone b col)])) + [timezone-id s {:keys [unit]}] + (date->interval-name (u.date/parse s timezone-id) unit)) + +(defn format-temporal-string-pair + "Formats a pair of temporal string literals (i.e., ISO-8601 strings) using relative formatting for the first + temporal values if possible, and 'Previous :unit' for the second; otherwise absolute instants in time for both." + [timezone-id [a b] col] + {:pre [((some-fn nil? string?) timezone-id)]} + (try + (if-let [a' (format-temporal-str-relative timezone-id a col)] + [a' (tru "Previous {0}" (-> col :unit name))] + [(format-temporal-str timezone-id a col) (format-temporal-str timezone-id b col)]) + (catch Throwable _ + ;; TODO - there is code that calls this in `render.body` regardless of the types of values + (log/warn (trs "FIXME: These aren''t valid temporal literals: {0} {1}. Why are we attempting to format them as such?" + (pr-str a) (pr-str b))) + nil))) diff --git a/src/metabase/pulse/render/sparkline.clj b/src/metabase/pulse/render/sparkline.clj index 5031d4859ca36cb90310366d49eae6d5d4a7282a..447fb3608cc3f4cfc3258bbb11a77030901ba59c 100644 --- a/src/metabase/pulse/render/sparkline.clj +++ b/src/metabase/pulse/render/sparkline.clj @@ -1,16 +1,19 @@ (ns metabase.pulse.render.sparkline - (:require [metabase.mbql.util :as mbql.u] + (:require [java-time :as t] [metabase.pulse.render [common :as common] [image-bundle :as image-bundle] [style :as style]] + [metabase.types :as types] [metabase.util - [date :as du] - [i18n :refer [tru]]]) + [date-2 :as u.date] + [i18n :refer [tru]]] + [schema.core :as s]) (:import [java.awt BasicStroke Color RenderingHints] java.awt.image.BufferedImage java.io.ByteArrayOutputStream - java.util.Date + [java.time LocalDate LocalDateTime LocalTime OffsetTime] + java.time.temporal.Temporal javax.imageio.ImageIO)) (def ^:private ^:const dot-radius 6) @@ -58,18 +61,26 @@ (throw (Exception. (tru "No appropriate image writer found!")))) (.toByteArray os)))) -(defn- format-val-fn [timezone cols x-axis-rowfn] - (if (mbql.u/datetime-field? (x-axis-rowfn cols)) - #(.getTime ^Date (du/->Timestamp % timezone)) +(defn- format-val-fn [timezone-id cols x-axis-rowfn] + (if (types/temporal-field? (x-axis-rowfn cols)) + (fn f [x] + (cond + (string? x) (f (u.date/parse x timezone-id)) + (instance? LocalDate x) (f (t/local-date-time x (t/local-time 0))) + (instance? LocalTime x) (f (t/local-date-time (t/local-date "1970-01-01") x)) + (instance? LocalDateTime x) (f (t/offset-date-time x (t/zone-offset 0))) + (instance? OffsetTime x) (f (t/offset-date-time (t/local-date "1970-01-01") x (t/zone-offset x))) + (instance? Temporal x) (java-time/to-millis-from-epoch x) + :else x)) identity)) (defn sparkline-image-bundle "Render a sparkline chart to an image bundle." - [render-type timezone card {:keys [rows cols] :as data}] + [render-type timezone-id card {:keys [rows cols] :as data}] ;; `x-axis-rowfn` and `y-axis-rowfn` are functions that get whatever is at the corresponding index (let [[x-axis-rowfn y-axis-rowfn] (common/graphing-column-row-fns card data) - format-val (format-val-fn timezone cols x-axis-rowfn) + format-val (format-val-fn timezone-id cols x-axis-rowfn) x-axis-values (let [x-axis-values (map (comp format-val x-axis-rowfn) rows) xmin (apply min x-axis-values) xmax (apply max x-axis-values) @@ -88,12 +99,12 @@ (image-bundle/make-image-bundle render-type (render-sparkline-to-png x-axis-values y-axis-values)))) -(defn sparkline-rows +(s/defn sparkline-rows "Get sorted rows from query results, with nils removed, appropriate for rendering as a sparkline." - [timezone card {:keys [rows cols], :as data}] + [timezone-id :- (s/maybe s/Str) card {:keys [rows cols], :as data}] (let [[x-axis-rowfn y-axis-rowfn] (common/graphing-column-row-fns card data) - format-val (format-val-fn timezone cols x-axis-rowfn)] + format-val (format-val-fn timezone-id cols x-axis-rowfn)] (common/non-nil-rows x-axis-rowfn y-axis-rowfn diff --git a/src/metabase/query_processor.clj b/src/metabase/query_processor.clj index 451bd32b110b199c863bd783044ae50bf3e6a369..8d8ca193dbd25f7651f4e93549c2b4100a5d3bef 100644 --- a/src/metabase/query_processor.clj +++ b/src/metabase/query_processor.clj @@ -21,7 +21,6 @@ [async :as async] [async-wait :as async-wait] [auto-bucket-datetimes :as bucket-datetime] - [bind-effective-timezone :as bind-timezone] [binning :as binning] [cache :as cache] [catch-exceptions :as catch-exceptions] @@ -66,9 +65,8 @@ "The pivotal stage of the `process-query` pipeline where the query is actually executed by the driver's Query Processor methods. This function takes the fully pre-processed query, runs it, and returns the results, which then run through the various post-processing steps." - [query :- {:driver s/Keyword - s/Keyword s/Any}] - (driver/execute-query (:driver query) query)) + [query :- (s/pred map?)] + (driver/execute-query driver/*driver* query)) ;; The way these functions are applied is actually straight-forward; it matches the middleware pattern used by ;; Ring. @@ -147,7 +145,6 @@ ;; TODO - `resolve-driver` and `resolve-database` can be combined into a single step, so we don't need to fetch ;; DB twice #'resolve-driver/resolve-driver - #'bind-timezone/bind-effective-timezone #'resolve-database/resolve-database #'fetch-source-query/resolve-card-id-source-tables #'store/initialize-store @@ -319,7 +316,7 @@ the core.async channel is closed, the query will be canceled." (if config/is-dev? (s/fn :- QueryResponse - [query] + [query :- clojure.lang.IPersistentMap] ((if *debug* debugging-pipeline default-pipeline) query)) diff --git a/src/metabase/query_processor/error_type.clj b/src/metabase/query_processor/error_type.clj index 532721325b6aec44fed591aa48875b05f1d85853..a37e978ca310536092fd5cf2d01d97aa16c964d5 100644 --- a/src/metabase/query_processor/error_type.clj +++ b/src/metabase/query_processor/error_type.clj @@ -3,14 +3,7 @@ is one of the types here. If you see an Exception in QP code that doesn't return an `:type`, add it!") (def ^:private hierarchy - (-> (make-hierarchy) - ;; errors deriving from `:client-error` are the equivalent of HTTP 4xx client status codes - (derive :client-error :error) - (derive :invalid-query :client-error) - ;; errors deriving from `:unexpected-server-error` are the equivalent of HTTP 5xx status codes - (derive :unexpected-server-error :error) - (derive :unexpected-qp-error :unexpected-server-error) - (derive :unexpected-db-error :unexpected-server-error))) + (make-hierarchy)) (defn known-error-types "Set of all known QP error types." @@ -80,6 +73,10 @@ "Generic ancestor type for all unexpected errors (e.g., uncaught Exceptions) in QP code." :parent server) +(deferror driver + "Generic ancestor type for all errors related to bad drivers and uncaught Exceptions in driver code." + :parent qp) + ;;;; #### Data Warehouse (DB) Errors (deferror db diff --git a/src/metabase/query_processor/middleware/add_implicit_clauses.clj b/src/metabase/query_processor/middleware/add_implicit_clauses.clj index b867548a29a0df8b6f57d3124ab9e11589ac47fd..2a463630e07eefcec79c36ec22ca9c786af132b8 100644 --- a/src/metabase/query_processor/middleware/add_implicit_clauses.clj +++ b/src/metabase/query_processor/middleware/add_implicit_clauses.clj @@ -4,6 +4,7 @@ [honeysql.core :as hsql] [metabase [db :as mdb] + [types :as types] [util :as u]] [metabase.mbql [schema :as mbql.s] @@ -28,9 +29,9 @@ [:position :asc] ;; or if that's the same, sort PKs first, followed by names, followed by everything else [(hsql/call :case - (mdb/isa :special_type :type/PK) 0 - (mdb/isa :special_type :type/Name) 1 - :else 2) + (mdb/isa :special_type :type/PK) 0 + (mdb/isa :special_type :type/Name) 1 + :else 2) :asc] ;; finally, sort by name (case-insensitive) [:%lower.name :asc]]) @@ -49,7 +50,7 @@ in `metabase.query-processor.sort`, for all the Fields in a given Table." [table-id :- su/IntGreaterThanZero] (for [field (table->sorted-fields table-id)] - (if (mbql.u/datetime-field? field) + (if (types/temporal-field? field) ;; implicit datetime Fields get bucketing of `:default`. This is so other middleware doesn't try to give it ;; default bucketing of `:day` [:datetime-field [:field-id (u/get-id field)] :default] diff --git a/src/metabase/query_processor/middleware/add_settings.clj b/src/metabase/query_processor/middleware/add_settings.clj index ed012987a3325539067f8c9ba104615c6d5306d1..151113156be82d8bc57c89c499ccf88212ed8784 100644 --- a/src/metabase/query_processor/middleware/add_settings.clj +++ b/src/metabase/query_processor/middleware/add_settings.clj @@ -1,50 +1,15 @@ (ns metabase.query-processor.middleware.add-settings "Middleware for adding a `:settings` map to a query before it is processed." - (:require [metabase.driver :as driver] - [metabase.driver.util :as driver.u] - [metabase.util.date :as du])) - -(defn- settings-for-current-driver [] - (when-let [report-timezone (driver.u/report-timezone-if-supported driver/*driver*)] - {:report-timezone report-timezone})) - -(defn- current-database-timezone-id [] - (when (bound? #'du/*database-timezone*) - (some-> du/*database-timezone* .getID))) - -(defn- system-timezone-id [] - (.getID (java.util.TimeZone/getDefault))) - -(defn- expected-timezone-id - "The timezone that we would *like* to run a query in, regardless of whether we are actaully able to do so. This is - always equal to the value of the `report-timezone` Setting (if it is set), otherwise the database timezone (if known), - otherwise the system timezone." - [] - (or (driver/report-timezone) - (current-database-timezone-id) - (system-timezone-id))) - -(defn- actual-timezone-id - "The timezone that a query is actually ran in -- report timezone, if set and supported by the current driver; - otherwise the timezone of the database (if known), otherwise the system timezone." - [] - (or (driver.u/report-timezone-if-supported driver/*driver*) - (current-database-timezone-id) - (system-timezone-id))) + (:require [metabase.query-processor.timezone :as qp.timezone])) +;; TODO - rename this (TIMEZONE FIXME) (defn add-settings - "Adds the `:settings` map to the query which can contain any fixed properties that would be useful at execution time, - and to the results of the query. Currently supports a settings object like: - - {:report-timezone \"US/Pacific\"}" + "Add `:results_timezone` and `:requested_timezone` info to query results." [qp] - (fn [query] - (let [{:keys [report-timezone], :as settings} (settings-for-current-driver) - query (cond-> query - settings (assoc :settings settings)) - results (qp query)] - (update results - :data - assoc - :requested_timezone (expected-timezone-id) - :results_timezone (actual-timezone-id))))) + (comp + (fn [results] + (update results :data merge + {:results_timezone (qp.timezone/results-timezone-id)} + (when-let [requested-timezone-id (qp.timezone/requested-timezone-id)] + {:requested_timezone requested-timezone-id}))) + qp)) diff --git a/src/metabase/query_processor/middleware/async.clj b/src/metabase/query_processor/middleware/async.clj index 9142a86cfe5602ff57ea6e9a362ab4e0333486fb..30324d29cac3b1e8a0975c48af5e9bf9c1dc947f 100644 --- a/src/metabase/query_processor/middleware/async.clj +++ b/src/metabase/query_processor/middleware/async.clj @@ -2,11 +2,11 @@ "Middleware for implementing async QP behavior." (:require [clojure.core.async :as a] [clojure.tools.logging :as log] + [metabase + [config :as config] + [util :as u]] [metabase.async.util :as async.u] - [metabase.config :as config] - [metabase.util - [date :as du] - [i18n :refer [trs tru]]]) + [metabase.util.i18n :refer [trs tru]]) (:import java.util.concurrent.TimeoutException)) ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -73,9 +73,9 @@ ;; prod but for test and dev purposes we want to fail faster because it usually means I broke something in the QP ;; code (cond - config/is-prod? (du/minutes->ms 20) - config/is-test? (du/seconds->ms 30) - config/is-dev? (du/minutes->ms 3))) + config/is-prod? (u/minutes->ms 20) + config/is-test? (u/seconds->ms 30) + config/is-dev? (u/minutes->ms 3))) (defn- wait-for-result [out-chan] (let [[result port] (a/alts!! [out-chan (a/timeout query-timeout-ms)])] @@ -86,7 +86,7 @@ (not= port out-chan) (do (a/close! out-chan) - (throw (TimeoutException. (tru "Query timed out after {0}" (du/format-milliseconds query-timeout-ms))))) + (throw (TimeoutException. (tru "Query timed out after {0}" (u/format-milliseconds query-timeout-ms))))) :else result))) diff --git a/src/metabase/query_processor/middleware/auto_bucket_datetimes.clj b/src/metabase/query_processor/middleware/auto_bucket_datetimes.clj index c46a0e3dce98b81c83da654a1e8a95d8d204b0e9..78922abdf90047645f33b9f316e07a6713f5cccc 100644 --- a/src/metabase/query_processor/middleware/auto_bucket_datetimes.clj +++ b/src/metabase/query_processor/middleware/auto_bucket_datetimes.clj @@ -1,5 +1,5 @@ (ns metabase.query-processor.middleware.auto-bucket-datetimes - "Middleware for automatically bucketing unbucketed `:type/DateTime` (but not `:type/Time`) Fields with `:day` + "Middleware for automatically bucketing unbucketed `:type/Temporal` (but not `:type/Time`) Fields with `:day` bucketing. Applies to any unbucketed Field in a breakout, or fields in a filter clause being compared against `yyyy-MM-dd` format datetime strings." (:require [metabase.mbql @@ -68,6 +68,12 @@ (and (mbql.preds/Field? x) (not (mbql.u/is-clause? #{:field-id :field-literal} x))))) +(defn- date-or-datetime-field? [{base-type :base_type, special-type :special_type}] + (some (fn [field-type] + (some #(isa? field-type %) + [:type/Date :type/DateTime])) + [base-type special-type])) + (s/defn ^:private wrap-unbucketed-fields "Wrap Fields in breakouts and filters in a `:datetime-field` clause if appropriate; look at corresponing type information in `field-id->type-inf` to see if we should do so." @@ -79,13 +85,13 @@ (wrap-unbucketed-fields field-id->type-info :filter))) ([query field-id->type-info clause-to-rewrite] - (let [datetime-but-not-time? (comp mbql.u/datetime-but-not-time-field? field-id->type-info)] + (let [datetime-but-not-time? (comp date-or-datetime-field? field-id->type-info)] (mbql.u/replace-in query [:query clause-to-rewrite] ;; don't replace anything that's already wrapping a `field-id` (_ :guard should-not-be-autobucketed?) &match - ;; if it's a raw `:field-id` and `field-id->type-info` tells us it's a `:type/DateTime` (but not `:type/Time`), + ;; if it's a raw `:field-id` and `field-id->type-info` tells us it's a `:type/Temporal` (but not `:type/Time`), ;; then go ahead and replace it [(_ :guard #{:field-id :field-literal}) (_ :guard datetime-but-not-time?) & _] [:datetime-field &match :day])))) @@ -108,7 +114,7 @@ (defn auto-bucket-datetimes "Middleware that automatically wraps breakout and filter `:field-id` clauses in `[:datetime-field ... :day]` if the - Field they refer to has a type that derives from `:type/DateTime` (but not `:type/Time`). (This is done for historic + Field they refer to has a type that derives from `:type/Temporal` (but not `:type/Time`). (This is done for historic reasons, before datetime bucketing was added to MBQL; datetime Fields defaulted to breaking out by day. We might want to revisit this behavior in the future.) diff --git a/src/metabase/query_processor/middleware/bind_effective_timezone.clj b/src/metabase/query_processor/middleware/bind_effective_timezone.clj deleted file mode 100644 index a42687bec58d24a53780ada6782d29326100cfa0..0000000000000000000000000000000000000000 --- a/src/metabase/query_processor/middleware/bind_effective_timezone.clj +++ /dev/null @@ -1,9 +0,0 @@ -(ns metabase.query-processor.middleware.bind-effective-timezone - (:require [metabase.util.date :as du])) - -(defn bind-effective-timezone - "Middlware that ensures the `*report-timezone*` and `*database-timezone*` are bound based on the database being queried against" - [qp] - (fn [query] - (du/with-effective-timezone (:database query) - (qp query)))) diff --git a/src/metabase/query_processor/middleware/cache.clj b/src/metabase/query_processor/middleware/cache.clj index 723dd20e1f85163d877ff04beb443d7c16325919..565a6001006d16e3f7ce79743376fa2cd29fa2a5 100644 --- a/src/metabase/query_processor/middleware/cache.clj +++ b/src/metabase/query_processor/middleware/cache.clj @@ -21,9 +21,7 @@ [metabase.plugins.classloader :as classloader] [metabase.query-processor.middleware.cache-backend.interface :as i] [metabase.query-processor.util :as qputil] - [metabase.util - [date :as du] - [i18n :refer [trs]]])) + [metabase.util.i18n :refer [trs]])) ;; TODO - Why not make this an option in the query itself? :confused: (def ^:dynamic ^Boolean *ignore-cached-results* @@ -78,7 +76,7 @@ (defn- cached-results [query-hash max-age-seconds] (when-not *ignore-cached-results* (when-let [results (i/cached-results @backend-instance query-hash max-age-seconds)] - (assert (du/is-temporal? (:updated_at results)) + (assert (instance? java.time.temporal.Temporal (:updated_at results)) "cached-results should include an `:updated_at` field containing the date when the query was last ran.") (log/info "Returning cached results for query" (u/emoji "💾")) (assoc results :cached true)))) diff --git a/src/metabase/query_processor/middleware/cache_backend/db.clj b/src/metabase/query_processor/middleware/cache_backend/db.clj index d51adb1ee55f990d94f5cdd70d4150b9ff7acd74..89154e0dd8a6322c592acf9b33f4c1bba6cd975c 100644 --- a/src/metabase/query_processor/middleware/cache_backend/db.clj +++ b/src/metabase/query_processor/middleware/cache_backend/db.clj @@ -1,31 +1,29 @@ (ns metabase.query-processor.middleware.cache-backend.db (:require [clojure.tools.logging :as log] + [java-time :as t] [metabase [public-settings :as public-settings] [util :as u]] [metabase.models.query-cache :refer [QueryCache]] [metabase.query-processor.middleware.cache-backend.interface :as i] - [metabase.util.date :as du] [taoensso.nippy :as nippy] [toucan.db :as db]) (:import [java.io BufferedOutputStream ByteArrayOutputStream DataOutputStream] java.util.zip.GZIPOutputStream)) (defn- cached-results - "Return cached results for QUERY-HASH if they exist and are newer than MAX-AGE-SECONDS." + "Return cached results for `query-hash` if they exist and are newer than `max-age-seconds`." [query-hash max-age-seconds] (when-let [{:keys [results updated_at]} (db/select-one [QueryCache :results :updated_at] :query_hash query-hash - :updated_at [:>= (du/->Timestamp (- (System/currentTimeMillis) - (* 1000 max-age-seconds)))])] + :updated_at [:>= (t/minus (t/instant) (t/seconds max-age-seconds))])] (assoc results :updated_at updated_at))) (defn- purge-old-cache-entries! "Delete any cache entries that are older than the global max age `max-cache-entry-age-seconds` (currently 3 months)." [] (db/simple-delete! QueryCache - :updated_at [:<= (du/->Timestamp (- (System/currentTimeMillis) - (* 1000 (public-settings/query-caching-max-ttl))))])) + :updated_at [:<= (t/minus (t/instant) (t/seconds (public-settings/query-caching-max-ttl)))])) (defn- throw-if-max-exceeded [max-num-bytes bytes-in-flight] (when (< max-num-bytes bytes-in-flight) @@ -75,7 +73,7 @@ (throw e))))) (defn- save-results! - "Save the RESULTS of query with QUERY-HASH, updating an existing QueryCache entry + "Save the `results` of query with `query-hash`, updating an existing QueryCache entry if one already exists, otherwise creating a new entry." [query-hash results] ;; Explicitly compressing the results here rather than having Toucan compress it automatically. This allows us to @@ -86,7 +84,7 @@ (do (purge-old-cache-entries!) (or (db/update-where! QueryCache {:query_hash query-hash} - :updated_at (du/new-sql-timestamp) + :updated_at :%now :results compressed-results) (db/insert! QueryCache :query_hash query-hash diff --git a/src/metabase/query_processor/middleware/driver_specific.clj b/src/metabase/query_processor/middleware/driver_specific.clj index 487466f6b0937004f8932315f9d2ef5fba1eef90..e2fe6ce936ffbab404f587d1829daa092452a8a9 100644 --- a/src/metabase/query_processor/middleware/driver_specific.clj +++ b/src/metabase/query_processor/middleware/driver_specific.clj @@ -8,5 +8,5 @@ "Middleware that runs the query using the driver's `process-query-in-context` implementation, if any. (Implementing this method effectively allows drivers to inject their own QP middleware functions.)" [qp] - (fn [{driver :driver, :as query}] - ((driver/process-query-in-context driver qp) query))) + (fn [query] + ((driver/process-query-in-context driver/*driver* qp) query))) diff --git a/src/metabase/query_processor/middleware/format_rows.clj b/src/metabase/query_processor/middleware/format_rows.clj index 7032fcf4773391f7b370ea34d349f18699ac0c06..f491c6da3927ec60e0934b220a5ca4a5ba4a6cae 100644 --- a/src/metabase/query_processor/middleware/format_rows.clj +++ b/src/metabase/query_processor/middleware/format_rows.clj @@ -1,28 +1,78 @@ (ns metabase.query-processor.middleware.format-rows "Middleware that formats the results of a query. Currently, the only thing this does is convert datetime types to ISO-8601 strings in the appropriate timezone." - (:require [metabase.util.date :as du])) + (:require [clojure.tools.logging :as log] + [java-time :as t] + [metabase.query-processor.timezone :as qp.timezone] + [metabase.util :as u] + [metabase.util.i18n :refer [tru]] + [potemkin.types :as p.types]) + (:import [java.time Instant LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime ZonedDateTime ZoneId])) -(defn- format-rows* [{:keys [report-timezone]} rows] - (let [timezone (or report-timezone (System/getProperty "user.timezone"))] - (for [row rows] - (for [v row] - ;; NOTE: if we don't have an explicit report-timezone then use the JVM timezone - ;; this ensures alignment between the way dates are processed by JDBC and our returned data - ;; GH issues: #2282, #2035 - (cond - (du/is-time? v) - (du/format-time v timezone) +;; TODO - consider moving to `metabase.util.date-2/format-with-timezone` +(p.types/defprotocol+ FormatValue + "Protocol for determining how QP results of various classes are serialized. Drivers can add implementations to support + custom driver types as needed." + (format-value [v, ^ZoneId timezone-id] + "Serialize a value in the QP results. You can add impementations for driver-specific types as needed.")) + +(extend-protocol FormatValue + nil + (format-value [_ _] nil) + + Object + (format-value [v _] + v) + + ;; TIMEZONE FIXME — not sure this makes sense at all... + LocalTime + (format-value [t timezone-id] + (t/format :iso-offset-time (t/offset-time t timezone-id))) + + ;; TODO - this is a little screwy, for `OffsetDateTime` and `ZonedDateTime` we convert them into the `timezone-id` + ;; (by adjusting offset as needed); because `OffsetTime` doesn't have a date (and adjusting offset can't be done + ;; with Zone ID alone), return it *without* adjusting it into `timezone-id` + OffsetTime + (format-value [t _] + (t/format :iso-offset-time t)) - (du/is-temporal? v) - (du/->iso-8601-datetime v timezone) + LocalDate + (format-value [t timezone-id] + (t/format :iso-offset-date-time (t/offset-date-time t (t/local-time 0) timezone-id))) - :else v))))) + LocalDateTime + (format-value [t timezone-id] + (t/format :iso-offset-date-time (t/offset-date-time t timezone-id))) + + Instant + (format-value [t timezone-id] + (t/format :iso-offset-date-time (t/offset-date-time t timezone-id))) + + OffsetDateTime + (format-value [t, ^ZoneId timezone-id] + (t/format :iso-offset-date-time + (let [rules (.getRules timezone-id) + offset (.getOffset rules (t/instant t))] + (t/with-offset-same-instant t offset)))) + + ZonedDateTime + (format-value [t timezone-id] + (t/format :iso-offset-date-time + (t/offset-date-time (t/with-zone-same-instant t timezone-id))))) + +(defn- format-rows* [rows] + (log/debug (tru "Formatting rows with results timezone ID {0}" (qp.timezone/results-timezone-id)) + "\n" + (u/pprint-to-str 'blue (take 5 rows))) + (let [timezone-id (t/zone-id (qp.timezone/results-timezone-id))] + (for [row rows] + (for [v row] + (format-value v timezone-id))))) (defn format-rows - "Format individual query result values as needed. Ex: format temporal values as iso8601 strings w/ timezone." + "Format individual query result values as needed. Ex: format temporal values as ISO-8601 strings w/ timezone offset." [qp] - (fn [{:keys [settings], {:keys [format-rows?] :or {format-rows? true}} :middleware, :as query}] + (fn [{{:keys [format-rows?] :or {format-rows? true}} :middleware, :as query}] (let [results (qp query)] (cond-> results - (and format-rows? (:rows results)) (update :rows (partial format-rows* settings)))))) + (and format-rows? (:rows results)) (update :rows format-rows*))))) diff --git a/src/metabase/query_processor/middleware/log.clj b/src/metabase/query_processor/middleware/log.clj index 3a0ba913f3a0e1c2d41ae5ba6fc898755894bb32..b79da31656f88582a0bc585fc3841aba677d72ef 100644 --- a/src/metabase/query_processor/middleware/log.clj +++ b/src/metabase/query_processor/middleware/log.clj @@ -2,14 +2,11 @@ "Middleware for logging a query before it is processed. (Various other middleware functions log the query as well in different stages.)" (:require [clojure.tools.logging :as log] - [metabase.query-processor.interface :as i] [metabase.util :as u])) (defn- log-query* [query] (u/prog1 query - (when-not i/*disable-qp-logging* - (log/debug (u/format-color 'blue "\nQUERY: %s\n%s" (u/emoji "😎") (u/pprint-to-str query)))))) - + (log/trace (u/format-color 'blue "\nQuery (before preprocessing): %s\n%s" (u/emoji "😎") (u/pprint-to-str query))))) (defn log-query "Middleware that logs the query that will be ran." diff --git a/src/metabase/query_processor/middleware/mbql_to_native.clj b/src/metabase/query_processor/middleware/mbql_to_native.clj index 30019ee4073d77ab88b3a630ed7f9444d7362fc4..4dee262bad3282cc276daa62e5a90b329dead0ed 100644 --- a/src/metabase/query_processor/middleware/mbql_to_native.clj +++ b/src/metabase/query_processor/middleware/mbql_to_native.clj @@ -14,19 +14,21 @@ (u/prog1 (if-not (= :query query-type) (:native query) (try - (driver/mbql->native (:driver query) query) + (driver/mbql->native driver/*driver* query) (catch Throwable e (when-not i/*disable-qp-logging* (log/error (tru "Error transforming MBQL query to native:") "\n" (u/pprint-to-str query))) (throw e)))) (when-not i/*disable-qp-logging* - (log/debug (u/format-color 'green "NATIVE FORM: %s\n%s\n" (u/emoji "😳") (u/pprint-to-str <>)))))) + (log/trace (u/format-color 'green "Native form: %s\n%s\n" (u/emoji "😳") (u/pprint-to-str <>)))))) (defn mbql->native "Middleware that handles conversion of MBQL queries to native (by calling driver QP methods) so the queries can be executed. For queries that are already native, this function is effectively a no-op." [qp] (fn [{query-type :type, {:keys [disable-mbql->native?]} :middleware, :as query}] + (when-not i/*disable-qp-logging* + (log/trace (u/format-color 'yellow "\nPreprocessed:\n%s" (u/pprint-to-str query)))) ;; disabling mbql->native is only used by the `qp/query->preprocessed` function so we can get the fully ;; pre-processed query *before* we convert it to native, which might fail for one reason or another (if disable-mbql->native? diff --git a/src/metabase/query_processor/middleware/optimize_datetime_filters.clj b/src/metabase/query_processor/middleware/optimize_datetime_filters.clj index f77a900b247d6544d6b9e5d54f86e5102fc00e23..6ef71afeaf3746f8417c93b51e52878afb4880f5 100644 --- a/src/metabase/query_processor/middleware/optimize_datetime_filters.clj +++ b/src/metabase/query_processor/middleware/optimize_datetime_filters.clj @@ -1,8 +1,9 @@ (ns metabase.query-processor.middleware.optimize-datetime-filters "Middlware that optimizes equality (`=` and `!=`) and comparison (`<`, `between`, etc.) filter clauses against bucketed datetime fields. See docstring for `optimize-datetime-filters` for more details." - (:require [metabase.mbql.util :as mbql.u] - [metabase.util.date :as du])) + (:require [clojure.tools.logging :as log] + [metabase.mbql.util :as mbql.u] + [metabase.util.date-2 :as u.date])) (def ^:private optimizable-units #{:second :minute :hour :day :week :month :quarter :year}) @@ -33,11 +34,11 @@ [:absolute-datetime _ (unit-2 :guard optimizable-units)]] (= (datetime-field-unit field) unit-1 unit-2))) -(defn- lower-bound [unit inst report-timezone] - (du/date-trunc unit inst (or report-timezone "UTC"))) +(defn- lower-bound [unit t] + (:start (u.date/range t unit))) -(defn- upper-bound [unit inst report-timezone] - (du/relative-date unit 1 (lower-bound unit inst report-timezone))) +(defn- upper-bound [unit t] + (:end (u.date/range t unit))) (defn- change-datetime-field-unit-to-default [field] (mbql.u/replace field @@ -45,59 +46,62 @@ [:datetime-field wrapped :default])) (defmulti ^:private optimize-filter - {:arglists '([clause report-timezone])} - (fn [clause _] + {:arglists '([clause])} + (fn [clause] (mbql.u/dispatch-by-clause-name-or-class clause))) (defmethod optimize-filter := - [[_ field [_ inst unit]] report-timezone] + [[_ field [_ inst unit]]] (let [[_ _ datetime-field-unit] (mbql.u/match-one field :datetime-field)] (when (= unit datetime-field-unit) (let [field' (change-datetime-field-unit-to-default field)] [:and - [:>= field' [:absolute-datetime (lower-bound unit inst report-timezone) :default]] - [:< field' [:absolute-datetime (upper-bound unit inst report-timezone) :default]]])))) + [:>= field' [:absolute-datetime (lower-bound unit inst) :default]] + [:< field' [:absolute-datetime (upper-bound unit inst) :default]]])))) (defmethod optimize-filter :!= - [filter-clause report-timezone] - (mbql.u/negate-filter-clause ((get-method optimize-filter :=) filter-clause report-timezone))) + [filter-clause] + (mbql.u/negate-filter-clause ((get-method optimize-filter :=) filter-clause))) (defn- optimize-comparison-filter - [trunc-fn [filter-type field [_ inst unit]] report-timezone] - [filter-type + [trunc-fn [filter-type field [_ inst unit]] new-filter-type] + [new-filter-type (change-datetime-field-unit-to-default field) - [:absolute-datetime (trunc-fn unit inst report-timezone) :default]]) + [:absolute-datetime (trunc-fn unit inst) :default]]) (defmethod optimize-filter :< - [filter-clause report-timezone] - (optimize-comparison-filter lower-bound filter-clause report-timezone)) + [filter-clause] + (optimize-comparison-filter lower-bound filter-clause :<)) (defmethod optimize-filter :<= - [filter-clause report-timezone] - (optimize-comparison-filter lower-bound filter-clause report-timezone)) + [filter-clause] + (optimize-comparison-filter upper-bound filter-clause :<)) (defmethod optimize-filter :> - [filter-clause report-timezone] - (optimize-comparison-filter upper-bound filter-clause report-timezone)) + [filter-clause] + (optimize-comparison-filter upper-bound filter-clause :>=)) (defmethod optimize-filter :>= - [filter-clause report-timezone] - (optimize-comparison-filter upper-bound filter-clause report-timezone)) + [filter-clause] + (optimize-comparison-filter lower-bound filter-clause :>=)) (defmethod optimize-filter :between - [[_ field [_ lower unit] [_ upper]] report-timezone] + [[_ field [_ lower unit] [_ upper]]] (let [field' (change-datetime-field-unit-to-default field)] [:and - [:>= field' [:absolute-datetime (lower-bound unit lower report-timezone) :default]] - [:< field' [:absolute-datetime (upper-bound unit upper report-timezone) :default]]])) + [:>= field' [:absolute-datetime (lower-bound unit lower) :default]] + [:< field' [:absolute-datetime (upper-bound unit upper) :default]]])) -(defn- optimize-datetime-filters* [{query-type :type, {:keys [report-timezone]} :settings, :as query}] +(defn- optimize-datetime-filters* [{query-type :type, :as query}] (if (not= query-type :query) query (mbql.u/replace query (_ :guard (partial mbql.u/is-clause? (set (keys (methods optimize-filter))))) (if (can-optimize-filter? &match) - (optimize-filter &match report-timezone) + (let [optimized (optimize-filter &match)] + (when-not (= &match optimized) + (log/tracef "Optimized filter %s to %s" (pr-str &match) (pr-str optimized))) + optimized) &match)))) (defn optimize-datetime-filters @@ -105,11 +109,11 @@ bucketed datetime fields. Rewrites those filter clauses as logically equivalent filter clauses that do not use bucketing (i.e., their datetime unit is `:default`, meaning no bucketing functions need be applied). - [:= [:datetime-field [:field-id 1] :month] [:absolute-datetime #inst \"2019-09-01\" :month]] + [:= [:datetime-field [:field-id 1] :month] [:absolute-datetime #t \"2019-09-01\" :month]] -> [:and - [:>= [:datetime-field [:field-id 1] :default] [:absolute-datetime #inst \"2019-09-01\" :month]] - [:< [:datetime-field [:field-id 1] :default] [:absolute-datetime #inst \"2019-10-01\" :month]]] + [:>= [:datetime-field [:field-id 1] :default] [:absolute-datetime #t \"2019-09-01\" :month]] + [:< [:datetime-field [:field-id 1] :default] [:absolute-datetime #t \"2019-10-01\" :month]]] The equivalent SQL, before and after, looks like: diff --git a/src/metabase/query_processor/middleware/parameters.clj b/src/metabase/query_processor/middleware/parameters.clj index ed2d48bca10db02b07f906c431d160135c4ac47d..d4a042497373208a874674b1c8453043bd68296a 100644 --- a/src/metabase/query_processor/middleware/parameters.clj +++ b/src/metabase/query_processor/middleware/parameters.clj @@ -38,19 +38,16 @@ (cond-> expanded (join? m) move-join-condition-to-source-query))) -(defn- expand-native-params [_ m] - (params.native/expand-inner m)) - (defn- expand-one "Expand `:parameters` in one inner-query-style map that contains them." [outer-query {:keys [source-table source-query parameters], :as m}] ;; HACK - normalization does not yet operate on `:parameters` that aren't at the top level, so double-check that ;; they're normalized properly before proceeding. - (let [m (cond-> m - (seq parameters) (update :parameters (partial normalize/normalize-fragment [:parameters]))) - expanded ((if (or source-table source-query) - expand-mbql-params - expand-native-params) outer-query m)] + (let [m (cond-> m + (seq parameters) (update :parameters (partial normalize/normalize-fragment [:parameters]))) + expanded (if (or source-table source-query) + (expand-mbql-params outer-query m) + (params.native/expand-inner m))] (dissoc expanded :parameters :template-tags))) (defn- expand-all @@ -79,14 +76,14 @@ [outer-query] (-> outer-query move-top-level-params-to-inner-query expand-all)) -(defn- substitute-parameters* +(s/defn ^:private substitute-parameters* :- clojure.lang.IPersistentMap "If any parameters were supplied then substitute them into the query." [query] (u/prog1 (expand-parameters query) (when (and (not i/*disable-qp-logging*) (not= <> query)) (when-let [diff (second (data/diff query <>))] - (log/debug (u/format-color 'cyan "\n\nPARAMS/SUBSTITUTED: %s\n%s" (u/emoji "😻") (u/pprint-to-str diff))))))) + (log/tracef "\n\nSubstituted params:\n%s\n" (u/pprint-to-str 'cyan diff)))))) (defn substitute-parameters "Substitute Dashboard or Card-supplied parameters in a query, replacing the param placeholers with appropriate values diff --git a/src/metabase/query_processor/middleware/parameters/mbql.clj b/src/metabase/query_processor/middleware/parameters/mbql.clj index 2c84b53e998ada0618c1aa89f5721a547cb2b20d..7cc10ba7db94853884ccb25202fee5fb19fc267e 100644 --- a/src/metabase/query_processor/middleware/parameters/mbql.clj +++ b/src/metabase/query_processor/middleware/parameters/mbql.clj @@ -1,12 +1,12 @@ (ns metabase.query-processor.middleware.parameters.mbql "Code for handling parameter substitution in MBQL queries." - (:require [metabase.mbql + (:require [metabase.driver.common.parameters.dates :as date-params] + [metabase.mbql [schema :as mbql.s] [util :as mbql.u]] [metabase.models [field :refer [Field]] [params :as params]] - [metabase.query-processor.middleware.parameters.dates :as date-params] [metabase.util.schema :as su] [schema.core :as s] [toucan.db :as db])) diff --git a/src/metabase/query_processor/middleware/parameters/native.clj b/src/metabase/query_processor/middleware/parameters/native.clj index 3ce365ea4ca860c06e5c944e4dfd13ad4410d1c3..bf8c1b3e7bbb1d2a58b866fbaf98304735c67261 100644 --- a/src/metabase/query_processor/middleware/parameters/native.clj +++ b/src/metabase/query_processor/middleware/parameters/native.clj @@ -1,13 +1,9 @@ (ns metabase.query-processor.middleware.parameters.native - "Param substitution for *SQL* queries. - - This is a new implementation, fondly referred to as 'SQL parameters 2.0', written for v0.23.0. The new - implementation uses prepared statement args instead of substituting them directly into the query, and is much - better-organized and better-documented. + "Param substitution for native queries. The Basics: - * Things like `{{x}}` (required params) get subsituted with the value of `:x`, which can be a literal used in a + * Things like `{{x}}` (required params) get substituted with the value of `:x`, which can be a literal used in a clause (e.g. in a clause like `value = {{x}}`) or a \"field filter\" that handles adding the clause itself (e.g. `{{timestamp}}` might become `timestamp BETWEEN ? AND ?`). @@ -15,21 +11,21 @@ `[[...]]` is replaced with an empty string; If it is specified, the value inside the curly brackets `{{x}}` is replaced as usual and the rest of the clause (`AND ...`) is included in the query as-is - Various `metabase.query-processor.middleware.parameters.native.*` namespaces implement different steps of this - process, which are as follows: + Native parameter parsing and substution logic shared by multiple drivers lives in + `metabase.driver.common.parameters.*`. Driver-specific parsing/substitution logic is implemented in + `metabase.driver.sql.parameters.*` (for SQL drivers) or similar namespaces for others. + + The different steps of this process, are similar between existing driver implementations, and are as follows: 1. `values` parses `:parameters` passed in as arguments to the query and returns a map of param key -> value - 2. `parse` takes a SQL query string and breaks it out into a series of string fragments interleaved with objects + 2. `parse` takes a string and breaks it out into a series of string fragments interleaved with objects representing optional and non-optional params 3. `substitute` (and the related namespace `substitution`) replace optional and param objects with appropriate SQL snippets and prepared statement args, and combine the sequence of fragments back into a single SQL string." - (:require [metabase.driver :as driver] - [metabase.query-processor.middleware.parameters.native - [parse :as parse] - [substitute :as substitute] - [values :as values]])) + (:require [clojure.set :as set] + [metabase.driver :as driver])) (defn expand-inner "Expand parameters inside an *inner* native `query`. Not recursive -- recursive transformations are handled in @@ -39,18 +35,7 @@ inner-query ;; Totally ridiculous, but top-level native queries use the key `:query` for SQL or equivalent, while native ;; source queries use `:native`. So we need to handle either case. - (let [query (or query native)] - ;; only SQL is officially supported rn! We can change this in the future. But we will probably want separate - ;; implementations of `parse` for other drivers, such as ones with JSON-based query languages. I think? - (if-not (string? query) - inner-query - (merge - (dissoc inner-query :parameters :template-tags) - (let [[query params] (-> query - parse/parse - (substitute/substitute (values/query->params-map inner-query)))] - (merge - (if (:query inner-query) - {:query query} - {:native query}) - {:params params}))))))) + (let [source-query? (:native inner-query) + substituted-inner-query (driver/substitue-native-parameters driver/*driver* (set/rename-keys inner-query {:native :query}))] + (cond-> (dissoc substituted-inner-query :parameters :template-tags) + source-query? (set/rename-keys {:query :native}))))) diff --git a/src/metabase/query_processor/middleware/parameters/native/parse.clj b/src/metabase/query_processor/middleware/parameters/native/parse.clj deleted file mode 100644 index cc5b7287a662af67ef1c687bfcd879186cbec1de..0000000000000000000000000000000000000000 --- a/src/metabase/query_processor/middleware/parameters/native/parse.clj +++ /dev/null @@ -1,93 +0,0 @@ -(ns metabase.query-processor.middleware.parameters.native.parse - (:require [clojure.string :as str] - [metabase.query-processor.middleware.parameters.native.interface :as i] - [metabase.util.i18n :refer [tru]] - [schema.core :as s]) - (:import [metabase.query_processor.middleware.parameters.native.interface Optional Param])) - -(def ^:private StringOrToken (s/cond-pre s/Str (s/enum :optional-begin :param-begin :end))) - -(defn- split-on-token [^String s token-str token] - (when-let [index (str/index-of s token-str)] - (let [before (.substring s 0 index) - after (.substring s (+ index (count token-str)) (count s))] - [before token after]))) - -(defn- tokenize-one [s token-str token] - (loop [acc [], s s] - (if (empty? s) - acc - (if-let [[before token after] (split-on-token s token-str token)] - (recur (into acc [before token]) after) - (conj acc s))))) - -(s/defn ^:private tokenize :- [StringOrToken] - [s :- s/Str] - (reduce - (fn [strs [token-str token]] - (filter - (some-fn keyword? seq) - (mapcat - (fn [s] - (if-not (string? s) - [s] - (tokenize-one s token-str token))) - strs))) - [s] - [["[[" :optional-begin] - ["]]" :end] - ["{{" :param-begin] - ["}}" :end]])) - -(defn- param [& [k & more]] - (when (or (seq more) - (not (string? k))) - (throw (Exception. (tru "Invalid '{{...}}' clause: expected a param name")))) - (let [k (str/trim k)] - (when (empty? k) - (throw (Exception. (tru "'{{...}}' clauses cannot be empty.")))) - (i/->Param k))) - -(defn- optional [& parsed] - (when-not (some i/Param? parsed) - (throw (Exception. (tru "'[[...]]' clauses must contain at least one '{{...}}' clause.")))) - (i/->Optional parsed)) - -(def ^:private ParsedToken (s/cond-pre s/Str Param Optional)) - -(declare parse-tokens) - -(s/defn ^:private parse-tokens :- [(s/one [ParsedToken] "parsed tokens") (s/one [StringOrToken] "remaining tokens")] - ([tokens :- [StringOrToken]] - (parse-tokens tokens 0)) - - ([tokens :- [StringOrToken], level] - (loop [acc [], [token & more] tokens] - (condp = token - nil - (if (pos? level) - (throw - (IllegalArgumentException. (tru "Invalid query: found '[[' or '{{' with no matching ']]' or '}}'"))) - [acc nil]) - - :optional-begin - (let [[parsed more] (parse-tokens more (inc level))] - (recur (conj acc (apply optional parsed)) more)) - - :param-begin - (let [[parsed more] (parse-tokens more (inc level))] - (recur (conj acc (apply param parsed)) more)) - - :end - (if (zero? level) - (throw - (IllegalArgumentException. (tru "Invalid query: found ']]' or '}}' with no matching '[[' or '{{'"))) - [acc more]) - - (recur (conj acc token) more))))) - -(s/defn parse :- [(s/cond-pre s/Str Param Optional)] - "Attempts to parse SQL string `s`. Parses any optional clauses or parameters found, and returns a sequence of SQL - query fragments Strings (possibly) interposed with `Param` or `Optional` instances." - [s :- s/Str] - (-> s tokenize parse-tokens first)) diff --git a/src/metabase/query_processor/middleware/process_userland_query.clj b/src/metabase/query_processor/middleware/process_userland_query.clj index 2906d760c89045c183e12554114766c5a6290e33..d9844585990da04e579be8e42b17d324679efacf 100644 --- a/src/metabase/query_processor/middleware/process_userland_query.clj +++ b/src/metabase/query_processor/middleware/process_userland_query.clj @@ -11,9 +11,7 @@ [interface :as qp.i] [util :as qputil]] [metabase.util :as u] - [metabase.util - [date :as du] - [i18n :refer [deferred-tru trs tru]]] + [metabase.util.i18n :refer [deferred-tru trs tru]] [toucan.db :as db])) (defn- add-running-time [{start-time-ms :start_time_millis, :as query-execution}] @@ -142,7 +140,7 @@ :hash query-hash :native (= (keyword query-type) :native) :json_query (dissoc query :info) - :started_at (du/new-sql-timestamp) + :started_at :%now :running_time 0 :result_rows 0 :start_time_millis (System/currentTimeMillis)}) diff --git a/src/metabase/query_processor/middleware/resolve_driver.clj b/src/metabase/query_processor/middleware/resolve_driver.clj index 3ee7d298c672d4b83ef5c8437744c4c1c9d2bb27..94330ac7f57b4100c9cf6d844c74f9f42533d73d 100644 --- a/src/metabase/query_processor/middleware/resolve_driver.clj +++ b/src/metabase/query_processor/middleware/resolve_driver.clj @@ -19,4 +19,4 @@ (throw (ex-info (tru "Unable to resolve driver for query: Database {0} does not exist." database) {:database database})))] (binding [driver/*driver* driver] - (qp (assoc query :driver driver)))))) + (qp query))))) diff --git a/src/metabase/query_processor/middleware/wrap_value_literals.clj b/src/metabase/query_processor/middleware/wrap_value_literals.clj index 71981fa1b07009f876396c3eec59dda661ef206b..c4f5ebb5aea4828c49ed2cae0a03dda99d7f389d 100644 --- a/src/metabase/query_processor/middleware/wrap_value_literals.clj +++ b/src/metabase/query_processor/middleware/wrap_value_literals.clj @@ -2,13 +2,15 @@ "Middleware that wraps value literals in `value`/`absolute-datetime`/etc. clauses containing relevant type information; parses datetime string literals when appropriate." (:require [metabase.mbql - [predicates :as mbql.preds] [schema :as mbql.s] [util :as mbql.u]] [metabase.models.field :refer [Field]] - [metabase.query-processor.store :as qp.store] - [metabase.util.date :as du]) - (:import java.util.TimeZone)) + [metabase.query-processor + [store :as qp.store] + [timezone :as qp.timezone]] + [metabase.types :as types] + [metabase.util.date-2 :as u.date]) + (:import [java.time LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime ZonedDateTime])) ;;; --------------------------------------------------- Type Info ---------------------------------------------------- @@ -27,7 +29,7 @@ field-info ;; add in a default unit for this Field so we know to wrap datetime strings in `absolute-datetime` below based on ;; its presence. It will get replaced by `:datetime-field` unit if we're wrapped by one - (when (mbql.u/datetime-field? field-info) + (when (types/temporal-field? field-info) {:unit :default})))) (defmethod type-info :field-id [[_ field-id]] @@ -49,39 +51,50 @@ {:arglists '([x info & {:keys [parse-datetime-strings?]}])} (fn [x & _] (class x))) -(defmethod add-type-info nil [_ info & _] +(defmethod add-type-info nil + [_ info & _] [:value nil info]) -(defmethod add-type-info Object [this info & _] +(defmethod add-type-info Object + [this info & _] [:value this info]) -(defmethod add-type-info java.util.Date [this info & _] - [:absolute-datetime (du/->Timestamp this) (get info :unit :default)]) +(defmethod add-type-info LocalDate + [this info & _] + [:absolute-datetime this (get info :unit :default)]) + +(defmethod add-type-info LocalDateTime + [this info & _] + [:absolute-datetime this (get info :unit :default)]) -(defmethod add-type-info java.sql.Time [this info & _] +(defmethod add-type-info LocalTime + [this info & _] [:time this (get info :unit :default)]) -(defmethod add-type-info java.sql.Timestamp [this info & _] +(defmethod add-type-info OffsetDateTime + [this info & _] [:absolute-datetime this (get info :unit :default)]) -(defn- maybe-parse-as-time [time-str unit report-timezone] - (when (mbql.preds/TimeUnit? unit) - (du/str->time time-str (when report-timezone - (TimeZone/getTimeZone ^String report-timezone))))) +(defmethod add-type-info OffsetTime + [this info & _] + [:time this (get info :unit :default)]) + +(defmethod add-type-info ZonedDateTime + [this info & _] + [:absolute-datetime this (get info :unit :default)]) (defmethod add-type-info String - [this info & {:keys [parse-datetime-strings? report-timezone] - :or {parse-datetime-strings? true}}] - (if-let [unit (when (and (du/date-string? this) - parse-datetime-strings?) - (:unit info))] - ;; should use report timezone by default - (if-let [time (maybe-parse-as-time this unit report-timezone)] - [:time time unit] - (let [timestamp (if report-timezone - (du/->Timestamp this report-timezone) - (du/->Timestamp this))] - [:absolute-datetime timestamp unit])) + [this {:keys [unit], :as info} & {:keys [parse-datetime-strings?] + :or {parse-datetime-strings? true}}] + (if-let [temporal-value (when (and unit + parse-datetime-strings? + (string? this)) + ;; TIMEZONE FIXME - I think this should actually use + ;; (qp.timezone/report-timezone-id-if-supported) instead ? + (u.date/parse this (qp.timezone/results-timezone-id)))] + (if (some #(instance? % temporal-value) [LocalTime OffsetTime]) + [:time temporal-value unit] + [:absolute-datetime temporal-value unit]) [:value this info])) @@ -90,29 +103,29 @@ (def ^:private raw-value? (complement mbql.u/mbql-clause?)) (defn ^:private wrap-value-literals-in-mbql-query - [{:keys [source-query], :as inner-query} {:keys [report-timezone], :as options}] + [{:keys [source-query], :as inner-query} options] (let [inner-query (cond-> inner-query source-query (update :source-query wrap-value-literals-in-mbql-query options))] (mbql.u/replace inner-query [(clause :guard #{:= :!= :< :> :<= :>=}) field (x :guard raw-value?)] - [clause field (add-type-info x (type-info field), :report-timezone report-timezone)] + [clause field (add-type-info x (type-info field))] [:between field (min-val :guard raw-value?) (max-val :guard raw-value?)] [:between field - (add-type-info min-val (type-info field), :report-timezone report-timezone) - (add-type-info max-val (type-info field), :report-timezone report-timezone)] + (add-type-info min-val (type-info field)) + (add-type-info max-val (type-info field))] [(clause :guard #{:starts-with :ends-with :contains}) field (s :guard string?) & more] (let [s (add-type-info s (type-info field), :parse-datetime-strings? false)] (into [clause field s] more))))) (defn- wrap-value-literals* - [{{:keys [report-timezone]} :settings, query-type :type, :as query}] + [{query-type :type, :as query}] (if-not (= query-type :query) query (mbql.s/validate-query - (update query :query wrap-value-literals-in-mbql-query {:report-timezone report-timezone})))) + (update query :query wrap-value-literals-in-mbql-query nil)))) (defn wrap-value-literals "Middleware that wraps ran value literals in `:value` (for integers, strings, etc.) or `:absolute-datetime` (for diff --git a/src/metabase/query_processor/store.clj b/src/metabase/query_processor/store.clj index 9c945a4bef869885a4aacffbb79e7c3994938852..8d42bb6d8a81e6bc2d1d6513c05253d1a191428a 100644 --- a/src/metabase/query_processor/store.clj +++ b/src/metabase/query_processor/store.clj @@ -116,7 +116,7 @@ ;;; ------------------------------------------ Saving objects in the Store ------------------------------------------- -(s/defn ^:private store-database! +(s/defn store-database! "Store the Database referenced by this query for the duration of the current query execution. Throws an Exception if database is invalid or doesn't have all the required keys." [database :- DatabaseInstanceWithRequiredStoreKeys] diff --git a/src/metabase/query_processor/timezone.clj b/src/metabase/query_processor/timezone.clj new file mode 100644 index 0000000000000000000000000000000000000000..67069a9f4402aa0f36910203fbe4ffe17ae3679a --- /dev/null +++ b/src/metabase/query_processor/timezone.clj @@ -0,0 +1,103 @@ +(ns metabase.query-processor.timezone + "Functions for fetching the timezone for the current query." + (:require [clojure.tools.logging :as log] + [java-time :as t] + [metabase + [config :as config] + [driver :as driver]] + [metabase.query-processor.store :as qp.store] + [metabase.util.i18n :refer [tru]]) + (:import java.time.ZonedDateTime)) + +(def ^:private ^:dynamic *report-timezone-id-override* nil) + +(def ^:private ^:dynamic *database-timezone-id-override* nil) + +(def ^:private ^:dynamic *results-timezone-id-override* nil) + +;; TODO - consider making this `metabase.util.date-2/the-timezone-id` +(defn- valid-timezone-id [timezone-id] + (when (and (string? timezone-id) + (seq timezone-id)) + (try + (t/zone-id timezone-id) + timezone-id + (catch Throwable _ + (log/warn (tru "Invalid timezone ID ''{0}''" timezone-id)) + nil)))) + +(defn- report-timezone-id* [] + (or *report-timezone-id-override* + (driver/report-timezone))) + + +;;; +----------------------------------------------------------------------------------------------------------------+ +;;; | Public Interface | +;;; +----------------------------------------------------------------------------------------------------------------+ + +(defn report-timezone-id-if-supported + "Timezone ID for the report timezone, if the current driver supports it. (If the current driver supports it, this is + bound by the `bind-effective-timezone` middleware.)" + (^String [] + (report-timezone-id-if-supported driver/*driver*)) + + (^String [driver] + (when (driver/supports? driver :set-timezone) + (valid-timezone-id (report-timezone-id*))))) + +(defn database-timezone-id + "The timezone that the current database is in, as determined by the most recent sync." + (^String [] + (database-timezone-id ::db-from-store)) + + (^String [database] + (valid-timezone-id + (or *database-timezone-id-override* + (:timezone (if (= database ::db-from-store) (qp.store/database) database)))))) + +(defn system-timezone-id + "The system timezone of this Metabase instance." + ^String [] + (.. (t/system-clock) getZone getId)) + +(defn requested-timezone-id + "The timezone that we would *like* to run a query in, regardless of whether we are actaully able to do so. This is + always equal to the value of the `report-timezone` Setting (if it is set), otherwise the database timezone (if known), + otherwise the system timezone." + ^String [] + (valid-timezone-id (report-timezone-id*))) + +(defn results-timezone-id + "The timezone that a query is actually ran in -- report timezone, if set and supported by the current driver; + otherwise the timezone of the database (if known), otherwise the system timezone. Guaranteed to always return a + timezone ID — never returns `nil`." + (^String [] + (results-timezone-id driver/*driver* ::db-from-store)) + + (^String [database] + (results-timezone-id (:engine database) database)) + + (^String [driver database & {:keys [use-report-timezone-id-if-unsupported?] + :or {use-report-timezone-id-if-unsupported? false}}] + (valid-timezone-id + (or *results-timezone-id-override* + (if use-report-timezone-id-if-unsupported? + (valid-timezone-id (report-timezone-id*)) + (report-timezone-id-if-supported driver)) + ;; don't actually fetch DB from store unless needed — that way if `*results-timezone-id-override*` is set we + ;; don't need to init a store during tests + (database-timezone-id database) + ;; NOTE: if we don't have an explicit report-timezone then use the JVM timezone + ;; this ensures alignment between the way dates are processed by JDBC and our returned data + ;; GH issues: #2282, #2035 + (system-timezone-id))))) + +(def ^ZonedDateTime now + "Get the current moment in time adjusted to the results timezone ID, e.g. for relative datetime calculations." + (comp (fn [timezone-id] + (t/with-zone-same-instant (t/zoned-date-time) (t/zone-id timezone-id))) + results-timezone-id)) + +;; normally I'd do this inline with the `def` form above but it busts Eastwood +(when config/is-dev? + (alter-meta! #'now assoc :arglists (:arglists (meta #'results-timezone-id)))) diff --git a/src/metabase/sync/analyze.clj b/src/metabase/sync/analyze.clj index ffb975ddfeb28b0f2faf2adf002a0f71fe442f29..0a4d07b4f9416f23f52bc607faaf2f70118044d1 100644 --- a/src/metabase/sync/analyze.clj +++ b/src/metabase/sync/analyze.clj @@ -12,9 +12,7 @@ [classify :as classify] [fingerprint :as fingerprint]] [metabase.util :as u] - [metabase.util - [date :as du] - [i18n :refer [trs]]] + [metabase.util.i18n :refer [trs]] [schema.core :as s] [toucan.db :as db])) @@ -63,7 +61,7 @@ (db/update-where! Field {:table_id [:in ids] :fingerprint_version i/latest-fingerprint-version :last_analyzed nil} - :last_analyzed (du/new-sql-timestamp)))) + :last_analyzed :%now))) (s/defn ^:private update-fields-last-analyzed! "Update the `last_analyzed` date for all the recently re-fingerprinted/re-classified Fields in TABLE." diff --git a/src/metabase/sync/analyze/classifiers/category.clj b/src/metabase/sync/analyze/classifiers/category.clj index 6548238d41c9bda4e83fe590c4072331258108d9..be3689fa6316a7036168a4e258c23f39505f012f 100644 --- a/src/metabase/sync/analyze/classifiers/category.clj +++ b/src/metabase/sync/analyze/classifiers/category.clj @@ -23,7 +23,7 @@ (defn- cannot-be-category-or-list? [{:keys [base_type special_type]}] - (or (isa? base_type :type/DateTime) + (or (isa? base_type :type/Temporal) (isa? base_type :type/Collection) (isa? base_type :type/Float) ;; Don't let IDs become list Fields (they already can't become categories, because they already have a special diff --git a/src/metabase/sync/analyze/classifiers/name.clj b/src/metabase/sync/analyze/classifiers/name.clj index b011c3fadef8b6bf924b7f3bef66c0cf38369e84..c2710a2e1df697bde1f9a53d9c05f879ac8b5239 100644 --- a/src/metabase/sync/analyze/classifiers/name.clj +++ b/src/metabase/sync/analyze/classifiers/name.clj @@ -2,9 +2,7 @@ "Classifier that infers the special type of a Field based on its name and base type." (:require [clojure.string :as str] [clojure.tools.logging :as log] - [metabase - [config :as config] - [util :as u]] + [metabase.config :as config] [metabase.models.database :refer [Database]] [metabase.sync [interface :as i] @@ -68,9 +66,6 @@ [#"^zip(?:_?)code$" int-or-text-type :type/ZipCode] [#"discount" number-type :type/Discount] [#"income" number-type :type/Income] - [#"amount" number-type :type/Income] - [#"^total" number-type :type/Income] - [#"_total$" number-type :type/Income] [#"quantity" int-type :type/Quantity] [#"count$" int-type :type/Quantity] [#"number" int-type :type/Quantity] @@ -118,7 +113,7 @@ (when-not config/is-prod? (doseq [[name-pattern base-types special-type] pattern+base-types+special-type] (assert (instance? java.util.regex.Pattern name-pattern)) - (assert (every? (u/rpartial isa? :type/*) base-types)) + (assert (every? #(isa? % :type/*) base-types)) (assert (isa? special-type :type/*)))) @@ -134,17 +129,18 @@ (def ^:private FieldOrColumn "Schema that allows a `metabase.model.field/Field` or a column from a query resultset" - {:name su/NonBlankString + {:name s/Str ; Some DBs such as MSSQL can return columns with blank name :base_type s/Keyword (s/optional-key :special_type) (s/maybe s/Keyword) s/Any s/Any}) (s/defn infer-special-type :- (s/maybe s/Keyword) - "Classifer that infers the special type of a FIELD based on its name and base type." + "Classifer that infers the special type of a `field` based on its name and base type." [field-or-column :- FieldOrColumn] ;; Don't overwrite keys, else we're ok with overwriting as a new more precise type might have ;; been added. - (when (not-any? (partial isa? (:special_type field-or-column)) [:type/PK :type/FK]) + (when-not (or (some (partial isa? (:special_type field-or-column)) [:type/PK :type/FK]) + (str/blank? (:name field-or-column))) (special-type-for-name-and-base-type (:name field-or-column) (:base_type field-or-column)))) (s/defn infer-and-assoc-special-type :- (s/maybe FieldOrColumn) diff --git a/src/metabase/sync/analyze/classify.clj b/src/metabase/sync/analyze/classify.clj index 8438a84a7a34d2e5760acc53d22e2dbd24e9e8c3..61cdedc88007d9aac227a2336a2f01ef91a6aef6 100644 --- a/src/metabase/sync/analyze/classify.clj +++ b/src/metabase/sync/analyze/classify.clj @@ -75,7 +75,7 @@ text-fingerprint/infer-special-type]) (s/defn run-classifiers :- i/FieldInstance - "Run all the available `classifiers` against FIELD and FINGERPRINT, and return the resulting FIELD with changes + "Run all the available `classifiers` against `field` and `fingerprint`, and return the resulting `field` with changes decided upon by the classifiers." [field :- i/FieldInstance, fingerprint :- (s/maybe i/Fingerprint)] (loop [field field, [classifier & more] classifiers] @@ -89,10 +89,11 @@ (s/defn ^:private classify! - "Run various classifiers on FIELD and its FINGERPRINT, and save any detected changes." + "Run various classifiers on `field` and its `fingerprint`, and save any detected changes." ([field :- i/FieldInstance] (classify! field (or (:fingerprint field) (db/select-one-field :fingerprint Field :id (u/get-id field))))) + ([field :- i/FieldInstance, fingerprint :- (s/maybe i/Fingerprint)] (sync-util/with-error-handling (format "Error classifying %s" (sync-util/name-for-logging field)) (let [updated-field (run-classifiers field fingerprint)] @@ -105,8 +106,8 @@ ;;; +------------------------------------------------------------------------------------------------------------------+ (s/defn ^:private fields-to-classify :- (s/maybe [i/FieldInstance]) - "Return a sequences of Fields belonging to TABLE for which we should attempt to determine special type. This should - include Fields that have the latest fingerprint, but have not yet *completed* analysis." + "Return a sequences of Fields belonging to `table` for which we should attempt to determine special type. This + should include Fields that have the latest fingerprint, but have not yet *completed* analysis." [table :- i/TableInstance] (seq (db/select Field :table_id (u/get-id table) @@ -127,8 +128,7 @@ fields)})) (s/defn ^:always-validate classify-table! - "Run various classifiers on the TABLE. These do things like inferring (and - setting) entitiy type of TABLE." + "Run various classifiers on the `table`. These do things like inferring (and setting) entitiy type of `table`." [table :- i/TableInstance] (save-model-updates! table (name/infer-entity-type table))) diff --git a/src/metabase/sync/analyze/fingerprint.clj b/src/metabase/sync/analyze/fingerprint.clj index a51149a823869c59feee4b9d684109e345944a9e..23b9b9c6db6b9f40318e8b28caa315b0cb769981 100644 --- a/src/metabase/sync/analyze/fingerprint.clj +++ b/src/metabase/sync/analyze/fingerprint.clj @@ -9,12 +9,13 @@ [util :as u]] [metabase.db.metadata-queries :as metadata-queries] [metabase.models.field :refer [Field]] + [metabase.query-processor.store :as qp.store] [metabase.sync [interface :as i] [util :as sync-util]] [metabase.sync.analyze.fingerprint.fingerprinters :as f] [metabase.util - [date :as du] + [i18n :refer [trs]] [schema :as su]] [redux.core :as redux] [schema.core :as s] @@ -22,7 +23,7 @@ (s/defn ^:private save-fingerprint! [field :- i/FieldInstance, fingerprint :- (s/maybe i/Fingerprint)] - (log/debug (format "Saving fingerprint for %s" (sync-util/name-for-logging field))) + (log/debug (trs "Saving fingerprint for {0}" (sync-util/name-for-logging field))) ;; All Fields who get new fingerprints should get marked as having the latest fingerprint version, but we'll ;; clear their values for `last_analyzed`. This way we know these fields haven't "completed" analysis for the ;; latest fingerprints. @@ -166,9 +167,11 @@ [database :- i/DatabaseInstance tables :- [i/TableInstance] log-progress-fn] - (du/with-effective-timezone database + (qp.store/with-store + ;; store is bound so DB timezone can be used in date coercion logic + (qp.store/store-database! database) (apply merge-with + (for [table tables - :let [result (fingerprint-fields! table)]] + :let [result (fingerprint-fields! table)]] (do (log-progress-fn "fingerprint-fields" table) result))))) diff --git a/src/metabase/sync/analyze/fingerprint/fingerprinters.clj b/src/metabase/sync/analyze/fingerprint/fingerprinters.clj index 0ab0424fd164dbef7951f759acad55d29efc6b60..dc2f48b162f65ecef8120fd677023fbe22a47079 100644 --- a/src/metabase/sync/analyze/fingerprint/fingerprinters.clj +++ b/src/metabase/sync/analyze/fingerprint/fingerprinters.clj @@ -2,7 +2,7 @@ "Non-identifying fingerprinters for various field types." (:require [bigml.histogram.core :as hist] [cheshire.core :as json] - [clj-time.coerce :as t.coerce] + [java-time :as t] [kixi.stats [core :as stats] [math :as math]] @@ -11,12 +11,12 @@ [metabase.sync.util :as sync-util] [metabase.util :as u] [metabase.util - [date :as du] + [date-2 :as u.date] [i18n :refer [trs]]] [redux.core :as redux]) (:import com.bigml.histogram.Histogram com.clearspring.analytics.stream.cardinality.HyperLogLogPlus - org.joda.time.DateTime)) + java.time.temporal.Temporal)) (defn col-wise "Apply reducing functinons `rfs` coll-wise to a seq of seqs." @@ -55,12 +55,16 @@ (defmulti fingerprinter "Return a fingerprinter transducer for a given field based on the field's type." - (fn [{:keys [base_type special_type unit] :as field}] - [(cond - (du/date-extract-units unit) :type/Integer - (field/unix-timestamp? field) :type/DateTime - :else base_type) - (or special_type :type/*)])) + {:arglists '([field])} + (fn [{:keys [base_type special_type unit] :as field}] + [(cond + (u.date/extract-units unit) :type/Integer + (field/unix-timestamp? field) :type/DateTime + ;; for historical reasons the Temporal fingerprinter is still called `:type/DateTime` so anything that derives + ;; from `Temporal` (such as DATEs and TIMEs) should still use the `:type/DateTime` fingerprinter + (isa? base_type :type/Temporal) :type/DateTime + :else base_type) + (or special_type :type/*)])) (def ^:private global-fingerprinter (redux/post-complete @@ -132,44 +136,37 @@ (trs "Error generating fingerprint for {0}" (sync-util/name-for-logging field#)))))) (defn- earliest - ([] (java.util.Date. Long/MAX_VALUE)) + ([] nil) ([acc] - (when (not= acc (earliest)) - (du/date->iso-8601 acc))) - ([^java.util.Date acc dt] - (if dt - (if (.before ^java.util.Date dt acc) - dt - acc) - acc))) + (some-> acc u.date/format)) + ([acc t] + (if (and t acc (t/before? t acc)) + t + (or acc t)))) (defn- latest - ([] (java.util.Date. 0)) + ([] nil) ([acc] - (when (not= acc (latest)) - (du/date->iso-8601 acc))) - ([^java.util.Date acc dt] - (if dt - (if (.after ^java.util.Date dt acc) - dt - acc) - acc))) - -(defprotocol IDateCoercible - "Protocol for converting objects in resultset to `java.util.Date`" - (->date ^java.util.Date [this] - "Coerce object to a `java.util.Date`.")) - -(extend-protocol IDateCoercible - nil (->date [_] nil) - String (->date [this] (-> this du/str->date-time t.coerce/to-date)) - java.util.Date (->date [this] this) - DateTime (->date [this] (t.coerce/to-date this)) - Long (->date [^Long this] (java.util.Date. this)) - Integer (->date [^Integer this] (java.util.Date. (long this)))) + (some-> acc u.date/format)) + ([acc t] + (if (and t acc (t/after? t acc)) + t + (or acc t)))) + +(defprotocol ^:private ITemporalCoerceable + "Protocol for converting objects in resultset to a `java.time` temporal type." + (->temporal ^java.time.temporal.Temporal [this] + "Coerce object to a `java.time` temporal type.")) + +(extend-protocol ITemporalCoerceable + nil (->temporal [_] nil) + String (->temporal [this] (u.date/parse this)) + Long (->temporal [this] (t/instant this)) + Integer (->temporal [this] (t/instant this)) + Temporal (->temporal [this] this)) (deffingerprinter :type/DateTime - ((map ->date) + ((map ->temporal) (redux/fuse {:earliest earliest :latest latest}))) @@ -198,9 +195,9 @@ ((some-fn map? sequential?) (json/parse-string x)))) (deffingerprinter :type/Text - ((map (comp str u/jdbc-clob->str)) ; we cast to str to support `field-literal` type overwriting: - ; `[:field-literal "A_NUMBER" :type/Text]` (which still - ; returns numbers in the result set) + ((map str) ; we cast to str to support `field-literal` type overwriting: + ; `[:field-literal "A_NUMBER" :type/Text]` (which still + ; returns numbers in the result set) (redux/fuse {:percent-json (stats/share valid-serialized-json?) :percent-url (stats/share u/url?) :percent-email (stats/share u/email?) diff --git a/src/metabase/sync/analyze/fingerprint/insights.clj b/src/metabase/sync/analyze/fingerprint/insights.clj index 09c1c26b2bd37439863bda08f1bfe2a0b413e9fb..13bc117ca9f49bc5713b2c801f4f77f8f824a3c0 100644 --- a/src/metabase/sync/analyze/fingerprint/insights.clj +++ b/src/metabase/sync/analyze/fingerprint/insights.clj @@ -1,12 +1,15 @@ (ns metabase.sync.analyze.fingerprint.insights "Deeper statistical analysis of results." - (:require [kixi.stats + (:require [java-time :as t] + [kixi.stats [core :as stats] [math :as math]] [metabase.mbql.util :as mbql.u] [metabase.models.field :as field] [metabase.sync.analyze.fingerprint.fingerprinters :as f] - [redux.core :as redux])) + [metabase.util.date-2 :as u.date] + [redux.core :as redux]) + (:import [java.time Instant LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime ZonedDateTime])) (defn- last-n [n] @@ -170,6 +173,19 @@ (when (and from to unit) (about= (- to from) (unit->duration unit)))) +(defn- ->millis-from-epoch [t] + (when t + (condp instance? t + Instant (t/to-millis-from-epoch t) + OffsetDateTime (t/to-millis-from-epoch t) + ZonedDateTime (t/to-millis-from-epoch t) + ;; TODO - really not convinced this behavior makes sense. Not sure what `xfn` below is actually supposed to be + ;; doing? This roughly matches the old behavior when we were using `java.util.Date`. + LocalDate (->millis-from-epoch (t/offset-date-time t (t/local-time 0) (t/zone-offset 0))) + LocalDateTime (->millis-from-epoch (t/offset-date-time t (t/zone-offset 0))) + LocalTime (->millis-from-epoch (t/offset-date-time (t/local-date "1970-01-01") t (t/zone-offset 0))) + OffsetTime (->millis-from-epoch (t/offset-date-time (t/local-date "1970-01-01") t (t/zone-offset t)))))) + (defn- timeseries-insight [{:keys [numbers datetimes]}] (let [datetime (first datetimes) @@ -177,8 +193,8 @@ xfn #(some-> % (nth x-position) ;; at this point in the pipeline, dates are still stings - f/->date - (.getTime) + f/->temporal + ->millis-from-epoch ms->day)] (apply redux/juxt (for [number-col numbers] @@ -214,13 +230,13 @@ (assoc col :position idx))) (group-by (fn [{:keys [base_type special_type unit] :as field}] (cond - (#{:type/FK :type/PK} special_type) :others - (= unit :year) :datetimes - (metabase.util.date/date-extract-units unit) :numbers - (field/unix-timestamp? field) :datetimes - (isa? base_type :type/Number) :numbers - (isa? base_type :type/DateTime) :datetimes - :else :others))))] + (#{:type/FK :type/PK} special_type) :others + (= unit :year) :datetimes + (u.date/extract-units unit) :numbers + (field/unix-timestamp? field) :datetimes + (isa? base_type :type/Number) :numbers + (isa? base_type :type/Temporal) :datetimes + :else :others))))] (cond (timeseries? cols-by-type) (timeseries-insight cols-by-type) :else (f/constant-fingerprinter nil)))) diff --git a/src/metabase/sync/interface.clj b/src/metabase/sync/interface.clj index 53100c7a5d981925737ad5f9c0d78982ae9b393e..2cb1727ae190fbc25e0190477f4c7e94e24a307d 100644 --- a/src/metabase/sync/interface.clj +++ b/src/metabase/sync/interface.clj @@ -114,8 +114,8 @@ (s/optional-key :percent-email) (s/maybe Percent) (s/optional-key :average-length) s/Num}) -(def DateTimeFingerprint - "Schema for fingerprint information for Fields deriving from `:type/DateTime`." +(def TemporalFingerprint + "Schema for fingerprint information for Fields deriving from `:type/Temporal`." {(s/optional-key :earliest) (s/maybe s/Str) (s/optional-key :latest) (s/maybe s/Str)}) @@ -124,7 +124,9 @@ (s/constrained {(s/optional-key :type/Number) NumberFingerprint (s/optional-key :type/Text) TextFingerprint - (s/optional-key :type/DateTime) DateTimeFingerprint} + ;; temporal fingerprints are keyed by `:type/DateTime` for historical reasons. `DateTime` used to be the parent of + ;; all temporal MB types. + (s/optional-key :type/DateTime) TemporalFingerprint} (fn [m] (= 1 (count (keys m)))) "Type-specific fingerprint with exactly one key")) diff --git a/src/metabase/sync/sync_metadata/sync_timezone.clj b/src/metabase/sync/sync_metadata/sync_timezone.clj index c4da3ec3d8b9c6d1b85bad98c5c4e0293b6473d0..d01613bd175a040fe9e4d9d8f36134139d006020 100644 --- a/src/metabase/sync/sync_metadata/sync_timezone.clj +++ b/src/metabase/sync/sync_metadata/sync_timezone.clj @@ -8,6 +8,7 @@ [toucan.db :as db]) (:import org.joda.time.DateTime)) +;; TIMEZONE FIXME - no Joda Time (defn- extract-time-zone [^DateTime dt] (-> dt .getChronology .getZone .getID)) @@ -19,12 +20,11 @@ upon success, `nil` if query failed." [database :- i/DatabaseInstance] (try - (let [tz-id (some-> database - driver.u/database->driver - (driver/current-db-time database) - extract-time-zone)] - (when-not (= tz-id (:timezone database)) - (db/update! Database (:id database) {:timezone tz-id})) - {:timezone-id tz-id}) + (let [driver (driver.u/database->driver database) + zone-id (or (driver/db-default-timezone driver database) + (some-> (driver/current-db-time driver database) extract-time-zone))] + (when-not (= zone-id (:timezone database)) + (db/update! Database (:id database) {:timezone zone-id})) + {:timezone-id zone-id}) (catch Exception e (log/warn e "Error syncing database timezone")))) diff --git a/src/metabase/sync/util.clj b/src/metabase/sync/util.clj index 5adf01b4e3a47814c0b396dd166ac1bc22a1e564..ab5d570d27cddb80ee17eb049b60defe35b42102 100644 --- a/src/metabase/sync/util.clj +++ b/src/metabase/sync/util.clj @@ -2,12 +2,10 @@ "Utility functions and macros to abstract away some common patterns and operations across the sync processes, such as logging start/end messages." (:require [buddy.core.hash :as buddy-hash] - [clj-time - [coerce :as tcoerce] - [core :as time]] [clojure.math.numeric-tower :as math] [clojure.string :as str] [clojure.tools.logging :as log] + [java-time :as t] [medley.core :as m] [metabase [driver :as driver] @@ -20,14 +18,14 @@ [metabase.query-processor.interface :as qpi] [metabase.sync.interface :as i] [metabase.util - [date :as du] + [date-2 :as u.date] [i18n :refer [trs]] [schema :as su]] [ring.util.codec :as codec] [schema.core :as s] [taoensso.nippy :as nippy] [toucan.db :as db]) - (:import org.joda.time.DateTime)) + (:import java.time.temporal.Temporal)) ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | SYNC OPERATION "MIDDLEWARE" | @@ -104,7 +102,7 @@ result (f)] (log-fn (u/format-color 'magenta "FINISHED: %s (%s)" message - (du/format-nanoseconds (- (System/nanoTime) start-time)))) + (u/format-nanoseconds (- (System/nanoTime) start-time)))) result)) (defn- with-start-and-finish-logging @@ -289,12 +287,8 @@ (s/defn calculate-duration-str :- s/Str "Given two datetimes, caculate the time between them, return the result as a string" - [begin-time :- (s/protocol tcoerce/ICoerce) - end-time :- (s/protocol tcoerce/ICoerce)] - (-> (du/calculate-duration begin-time end-time) - ;; Millis -> Nanos - (* 1000000) - du/format-nanoseconds)) + [begin-time :- Temporal, end-time :- Temporal] + (u/format-nanoseconds (.toNanos (t/duration begin-time end-time)))) (def StepSpecificMetadata "A step function can return any metadata and is used by the related LogSummaryFunction to provide step-specific @@ -303,8 +297,8 @@ (def ^:private TimedSyncMetadata "Metadata common to both sync steps and an entire sync/analyze operation run" - {:start-time DateTime - :end-time DateTime}) + {:start-time Temporal + :end-time Temporal}) (def StepRunMetadata "Map with metadata about the step. Contains both generic information like `start-time` and `end-time` and step @@ -342,19 +336,16 @@ :log-summary-fn (when log-summary-fn (comp str log-summary-fn))})) -(defn- datetime->str [datetime] - (du/->iso-8601-datetime datetime "UTC")) - (s/defn run-step-with-metadata :- StepNameWithMetadata "Runs `step` on `database returning metadata from the run" [database :- i/DatabaseInstance {:keys [step-name sync-fn log-summary-fn] :as step} :- StepDefinition] - (let [start-time (time/now) + (let [start-time (t/zoned-date-time) results (with-start-and-finish-debug-logging (trs "step ''{0}'' for {1}" step-name (name-for-logging database)) #(sync-fn database)) - end-time (time/now)] + end-time (t/zoned-date-time)] [step-name (assoc results :start-time start-time :end-time end-time @@ -374,8 +365,8 @@ "# %s\n" "# %s\n") [(trs "Completed {0} on {1}" operation (:name database)) - (trs "Start: {0}" (datetime->str start-time)) - (trs "End: {0}" (datetime->str end-time)) + (trs "Start: {0}" (u.date/format start-time)) + (trs "End: {0}" (u.date/format end-time)) (trs "Duration: {0}" (calculate-duration-str start-time end-time))]) (apply str (for [[step-name {:keys [start-time end-time log-summary-fn] :as step-info}] steps] (apply format (str "# ---------------------------------------------------------------\n" @@ -386,8 +377,8 @@ (when log-summary-fn (format "# %s\n" (log-summary-fn step-info)))) [(trs "Completed step ''{0}''" step-name) - (trs "Start: {0}" (datetime->str start-time)) - (trs "End: {0}" (datetime->str end-time)) + (trs "Start: {0}" (u.date/format start-time)) + (trs "End: {0}" (u.date/format end-time)) (trs "Duration: {0}" (calculate-duration-str start-time end-time))]))) "#################################################################\n")) @@ -413,9 +404,9 @@ {:keys [start-time end-time]} :- SyncOperationOrStepRunMetadata] {:task task-name :db_id (u/get-id database) - :started_at (du/->Timestamp start-time) - :ended_at (du/->Timestamp end-time) - :duration (du/calculate-duration start-time end-time)}) + :started_at start-time + :ended_at end-time + :duration (.toMillis (t/duration start-time end-time))}) (s/defn ^:private store-sync-summary! [operation :- s/Str @@ -437,9 +428,9 @@ [operation :- s/Str database :- i/DatabaseInstance sync-steps :- [StepDefinition]] - (let [start-time (time/now) + (let [start-time (t/zoned-date-time) step-metadata (mapv #(run-step-with-metadata database %) sync-steps) - end-time (time/now) + end-time (t/zoned-date-time) sync-metadata {:start-time start-time :end-time end-time :steps step-metadata}] diff --git a/src/metabase/task/follow_up_emails.clj b/src/metabase/task/follow_up_emails.clj index 7665af8e5b6ff9211c52c132f2a0e67798d0c6f0..3831c466b82dce29a3be9a9b5ae23089f747cb00 100644 --- a/src/metabase/task/follow_up_emails.clj +++ b/src/metabase/task/follow_up_emails.clj @@ -1,13 +1,11 @@ (ns metabase.task.follow-up-emails "Tasks which follow up with Metabase users." - (:require [clj-time - [coerce :as c] - [core :as t]] - [clojure.tools.logging :as log] + (:require [clojure.tools.logging :as log] [clojurewerkz.quartzite [jobs :as jobs] [triggers :as triggers]] [clojurewerkz.quartzite.schedule.cron :as cron] + [java-time :as t] [metabase [email :as email] [public-settings :as public-settings] @@ -18,8 +16,12 @@ [setting :as setting] [user :as user :refer [User]] [view-log :refer [ViewLog]]] - [metabase.util.i18n :refer [trs]] - [toucan.db :as db])) + [metabase.util + [date-2 :as u.date] + [i18n :refer [trs]]] + [schema.core :as s] + [toucan.db :as db]) + (:import java.time.temporal.Temporal)) ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | send follow-up emails | @@ -51,7 +53,7 @@ (defn- instance-creation-timestamp "The date this Metabase instance was created. We use the `:date_joined` of the first `User` to determine this." - ^java.sql.Timestamp [] + ^java.time.temporal.Temporal [] (db/select-one-field :date_joined User, {:order-by [[:date_joined :asc]]})) ;; this sends out a general 2 week email follow up email @@ -60,9 +62,8 @@ (when-not (follow-up-email-sent) ;; figure out when we consider the instance created (when-let [instance-created (instance-creation-timestamp)] - ;; we need to be 2+ weeks (14 days) from creation to send the follow up - (when (< (* 14 24 60 60 1000) - (- (System/currentTimeMillis) (.getTime instance-created))) + ;; we need to be 2+ weeks from creation to send the follow up + (when (u.date/older-than? instance-created (t/weeks 2)) (send-follow-up-email!))))) (def ^:private follow-up-emails-job-key "metabase.task.follow-up-emails.job") @@ -91,39 +92,47 @@ :default false :internal? true) -(defn- send-abandonment-email! +(s/defn ^:private should-send-abandoment-email? + ([] + (should-send-abandoment-email? + (instance-creation-timestamp) + (db/select-one [User [:%max.date_joined :last-user]]) + (db/select-one [Activity [:%max.timestamp :last-activity]]) + (db/select-one [ViewLog [:%max.timestamp :last-view]]))) + + ([instance-creation :- (s/maybe Temporal) + last-user :- (s/maybe Temporal) + last-activity :- (s/maybe Temporal) + last-view :- (s/maybe Temporal)] + (boolean + (and instance-creation + (u.date/older-than? instance-creation (t/weeks 4)) + (or (not last-user) (u.date/older-than? last-user (t/weeks 2))) + (or (not last-activity) (u.date/older-than? last-activity (t/weeks 2))) + (or (not last-view) (u.date/older-than? last-view (t/weeks 2))))))) + +(defn- send-abandoment-email-if-needed! "Send an email to the instance admin about why Metabase usage has died down." [] ;; grab the oldest admins email address, that's who we'll send to - (when-let [admin (User :is_superuser true, {:order-by [:date_joined]})] - ;; inactive = no users created, no activity created, no dash/card views (past 7 days) - (let [last-user (c/from-sql-time (db/select-one-field :date_joined User, {:order-by [[:date_joined :desc]]})) - last-activity (c/from-sql-time (db/select-one-field :timestamp Activity, {:order-by [[:timestamp :desc]]})) - last-view (c/from-sql-time (db/select-one-field :timestamp ViewLog, {:order-by [[:timestamp :desc]]})) - two-weeks-ago (t/minus (t/now) (t/days 14))] - (when (and (t/before? last-user two-weeks-ago) - (t/before? last-activity two-weeks-ago) - (t/before? last-view two-weeks-ago)) - (try - (messages/send-follow-up-email! (:email admin) "abandon") - (catch Throwable e - (log/error e (trs "Problem sending abandonment email"))) - (finally - (abandonment-email-sent true))))))) + (when-let [admin-email (db/select-one-field :email User :is_superuser true, {:order-by [:date_joined]})] + (when (should-send-abandoment-email?) + (log/info (trs "Sending abandonment email!")) + (try + (messages/send-follow-up-email! admin-email "abandon") + (catch Throwable e + (log/error e (trs "Problem sending abandonment email"))) + (finally + (abandonment-email-sent true)))))) ;; this sends out an email any time after 30 days if the instance has stopped being used for 14 days (jobs/defjob AbandonmentEmail [_] ;; if we've already sent the abandonment email then we are done (when-not (abandonment-email-sent) - ;; figure out when we consider the instance created - (when-let [instance-created (instance-creation-timestamp)] - ;; we need to be 4+ weeks (30 days) from creation to send the follow up - (when (< (* 30 24 60 60 1000) - (- (System/currentTimeMillis) (.getTime instance-created))) - ;; we need access to email AND the instance must be opted into anonymous tracking - (when (and (email/email-configured?) - (public-settings/anon-tracking-enabled)) - (send-abandonment-email!)))))) + ;; we need access to email AND the instance must be opted into anonymous tracking + (when (and (email/email-configured?) + (public-settings/anon-tracking-enabled)) + (send-abandoment-email-if-needed!)))) (def ^:private abandonment-emails-job-key "metabase.task.abandonment-emails.job") (def ^:private abandonment-emails-trigger-key "metabase.task.abandonment-emails.trigger") diff --git a/src/metabase/types.clj b/src/metabase/types.clj index f215b73e7658c702287985d20e55ba9c08f09bf7..c5793816f6f47a1aadfa1fdc96f2dde1ba282559 100644 --- a/src/metabase/types.clj +++ b/src/metabase/types.clj @@ -80,13 +80,32 @@ ;;; DateTime Types -(derive :type/DateTime :type/*) +(derive :type/Temporal :type/*) -(derive :type/Time :type/DateTime) -(derive :type/Date :type/DateTime) -(derive :type/DateTimeWithTZ :type/DateTime) +(derive :type/Date :type/Temporal) +;; You could have Dates with TZ info but it's not supported by JSR-310 so we'll not worry about that for now. + +(derive :type/Time :type/Temporal) +(derive :type/TimeWithTZ :type/Time) +(derive :type/TimeWithLocalTZ :type/TimeWithTZ) ; a column that is timezone-aware, but normalized to UTC or another offset at rest. +(derive :type/TimeWithZoneOffset :type/TimeWithTZ) ; a column that stores its timezone offset -(derive :type/UNIXTimestamp :type/DateTime) +(derive :type/DateTime :type/Temporal) +(derive :type/DateTimeWithTZ :type/DateTime) +(derive :type/DateTimeWithLocalTZ :type/DateTimeWithTZ) ; a column that is timezone-aware, but normalized to UTC or another offset at rest. +(derive :type/DateTimeWithZoneOffset :type/DateTimeWithTZ) ; a column that stores its timezone offset, e.g. `-08:00` +(derive :type/DateTimeWithZoneID :type/DateTimeWithTZ) ; a column that stores its timezone ID, e.g. `US/Pacific` + +;; An `Instant` is a timestamp in (milli-)seconds since the epoch, UTC. Since it doesn't store TZ information, but is +;; normalized to UTC, it is a DateTimeWithLocalTZ +;; +;; `Instant` if differentiated from other `DateTimeWithLocalTZ` columns in the same way `java.time.Instant` is +;; different from `java.time.OffsetDateTime` +;; +;; TIMEZONE FIXME — not 100% sure this distinction is needed or makes sense. +(derive :type/Instant :type/DateTimeWithLocalTZ) + +(derive :type/UNIXTimestamp :type/Instant) (derive :type/UNIXTimestamp :type/Integer) (derive :type/UNIXTimestampSeconds :type/UNIXTimestamp) (derive :type/UNIXTimestampMilliseconds :type/UNIXTimestamp) @@ -98,7 +117,7 @@ (derive :type/CreationDate :type/CreationTimestamp) (derive :type/JoinTimestamp :type/DateTime) -(derive :type/JoinTime :type/Date) +(derive :type/JoinTime :type/Date) ; TODO - shouldn't this be derived from `:type/Time` ? (derive :type/JoinTime :type/JoinTimestamp) (derive :type/JoinDate :type/Date) (derive :type/JoinDate :type/JoinTimestamp) @@ -174,8 +193,17 @@ (defn types->parents "Return a map of various types to their parent types. - This is intended for export to the frontend as part of `MetabaseBootstrap` so it can build its own implementation of `isa?`." + + This is intended for export to the frontend as part of `MetabaseBootstrap` so it can build its own implementation of + `isa?`." ([] (types->parents :type/*)) ([root] (into {} (for [t (descendants root)] {t (parents t)})))) + +(defn temporal-field? + "True if a Metabase `Field` instance has a temporal base or special type, i.e. if this Field represents a value + relating to a moment in time." + {:arglists '([field])} + [{base-type :base_type, special-type :special_type}] + (some #(isa? % :type/Temporal) [base-type special-type])) diff --git a/src/metabase/util.clj b/src/metabase/util.clj index 07ed435a14b9d4b6b9b5a143d87c6eb5a1833092..a5a84e3df46abbae3b11c0b05f54b46242e270c3 100644 --- a/src/metabase/util.clj +++ b/src/metabase/util.clj @@ -20,8 +20,7 @@ [metabase.util.i18n :refer [trs tru]] [ring.util.codec :as codec] [weavejester.dependency :as dep]) - (:import [java.io BufferedReader Reader] - [java.net InetAddress InetSocketAddress Socket] + (:import [java.net InetAddress InetSocketAddress Socket] [java.text Normalizer Normalizer$Form] java.util.concurrent.TimeoutException java.util.Locale @@ -61,41 +60,6 @@ [& body] `(try ~@body (catch Throwable ~'_))) -;;; ## Etc - -(defprotocol ^:private IClobToStr - (jdbc-clob->str ^String [this] - "Convert a Postgres/H2/SQLServer JDBC Clob to a string. (If object isn't a Clob, this function returns it as-is.)")) - -(extend-protocol IClobToStr - nil (jdbc-clob->str [_] nil) - Object (jdbc-clob->str [this] this) - - org.postgresql.util.PGobject - (jdbc-clob->str [this] (.getValue this)) - - ;; H2 + SQLServer clobs both have methods called `.getCharacterStream` that officially return a `Reader`, - ;; but in practice I've only seen them return a `BufferedReader`. Just to be safe include a method to convert - ;; a plain `Reader` to a `BufferedReader` so we don't get caught with our pants down - Reader - (jdbc-clob->str [this] - (jdbc-clob->str (BufferedReader. this))) - - ;; Read all the lines for the `BufferedReader` and combine into a single `String` - BufferedReader - (jdbc-clob->str [this] - (with-open [_ this] - (loop [acc []] - (if-let [line (.readLine this)] - (recur (conj acc line)) - (str/join "\n" acc))))) - - ;; H2 -- See also http://h2database.com/javadoc/org/h2/jdbc/JdbcClob.html - org.h2.jdbc.JdbcClob - (jdbc-clob->str [this] - (jdbc-clob->str (.getCharacterStream this)))) - - (defn optional "Helper function for defining functions that accept optional arguments. If `pred?` is true of the first item in `args`, a pair like `[first-arg other-args]` is returned; otherwise, a pair like `[default other-args]` is returned. @@ -187,7 +151,7 @@ (catch Throwable _ false))) (defn ^:deprecated rpartial - "Like `partial`, but applies additional args *before* BOUND-ARGS. + "Like `partial`, but applies additional args *before* `bound-args`. Inspired by [`-rpartial` from dash.el](https://github.com/magnars/dash.el#-rpartial-fn-rest-args) ((partial - 5) 8) -> (- 5 8) -> -3 @@ -316,6 +280,7 @@ (some->> last-mb-frame (str "--> ")) frames-before-last-mb))))}) +(declare format-milliseconds) (defn deref-with-timeout "Call `deref` on a something derefable (e.g. a future or promise), and throw an exception if it takes more than @@ -325,7 +290,7 @@ (when (= result ::timeout) (when (instance? java.util.concurrent.Future reff) (future-cancel reff)) - (throw (TimeoutException. (tru "Timed out after {0} milliseconds." timeout-ms)))) + (throw (TimeoutException. (tru "Timed out after {0}" (format-milliseconds timeout-ms))))) result)) (defn do-with-timeout @@ -801,3 +766,67 @@ `Locale/US` locale." [^CharSequence s] (.. s toString (toLowerCase (Locale/US)))) + +(defn lower-case-map-keys + "Changes the keys of a given map to lower case." + [m] + (into {} (for [[k v] m] + [(-> k name lower-case-en keyword) v]))) + +(defn format-nanoseconds + "Format a time interval in nanoseconds to something more readable. (µs/ms/etc.)" + ^String [nanoseconds] + ;; The basic idea is to take `n` and see if it's greater than the divisior. If it is, we'll print it out as that + ;; unit. If more, we'll divide by the divisor and recur, trying each successively larger unit in turn. e.g. + ;; + ;; (format-nanoseconds 500) ; -> "500 ns" + ;; (format-nanoseconds 500000) ; -> "500 µs" + (loop [n nanoseconds, [[unit divisor] & more] [[:ns 1000] [:µs 1000] [:ms 1000] [:s 60] [:mins 60] [:hours 24] + [:days 7] [:weeks (/ 365.25 7)] [:years Double/POSITIVE_INFINITY]]] + (if (and (> n divisor) + (seq more)) + (recur (/ n divisor) more) + (format "%.1f %s" (double n) (name unit))))) + +(defn format-microseconds + "Format a time interval in microseconds into something more readable." + ^String [microseconds] + (format-nanoseconds (* 1000.0 microseconds))) + +(defn format-milliseconds + "Format a time interval in milliseconds into something more readable." + ^String [milliseconds] + (format-microseconds (* 1000.0 milliseconds))) + +(defn format-seconds + "Format a time interval in seconds into something more readable." + ^String [seconds] + (format-milliseconds (* 1000.0 seconds))) + +(defmacro profile + "Like `clojure.core/time`, but lets you specify a `message` that gets printed with the total time, and formats the + time nicely using `format-nanoseconds`." + {:style/indent 1} + ([form] + `(profile ~(str form) ~form)) + ([message & body] + `(let [start-time# (System/nanoTime)] + (u/prog1 (do ~@body) + (println (u/format-color '~'green "%s took %s" + ~message + (format-nanoseconds (- (System/nanoTime) start-time#)))))))) + +(defn seconds->ms + "Convert `seconds` to milliseconds. More readable than doing this math inline." + [seconds] + (* seconds 1000)) + +(defn minutes->seconds + "Convert `minutes` to seconds. More readable than doing this math inline." + [minutes] + (* 60 minutes)) + +(defn minutes->ms + "Convert `minutes` to milliseconds. More readable than doing this math inline." + [minutes] + (-> minutes minutes->seconds seconds->ms)) diff --git a/src/metabase/util/date.clj b/src/metabase/util/date.clj deleted file mode 100644 index 61e1e11fb1255d7bcbc33affdb68d76a402a254c..0000000000000000000000000000000000000000 --- a/src/metabase/util/date.clj +++ /dev/null @@ -1,495 +0,0 @@ -(ns metabase.util.date - "Utility functions for working with datetimes of different types, and other related tasks." - (:require [clj-time - [coerce :as coerce] - [core :as t] - [format :as time]] - [clojure.math.numeric-tower :as math] - [clojure.tools.logging :as log] - [metabase.util :as u] - [metabase.util - [i18n :refer [deferred-trs]] - [schema :as su]] - [schema.core :as s]) - (:import clojure.lang.Keyword - [java.sql Time Timestamp] - [java.util Calendar Date TimeZone] - [org.joda.time DateTime DateTimeZone] - org.joda.time.format.DateTimeFormatter)) - -(def ^{:tag TimeZone - :dynamic true - :doc "Timezone to be used when formatting timestamps for display or for the data (pre aggregation)"} - *report-timezone*) - -(def ^{:dynamic true - :doc "The timezone of the database currently being queried." - :tag TimeZone} - *database-timezone*) - -(defprotocol ^:private ITimeZoneCoercible - "Coerce object to `java.util.TimeZone`" - (coerce-to-timezone ^TimeZone [this] - "Coerce `this` to `java.util.TimeZone`")) - -(extend-protocol ^:private ITimeZoneCoercible - String (coerce-to-timezone [this] - (TimeZone/getTimeZone this)) - TimeZone (coerce-to-timezone [this] - this) - DateTimeZone (coerce-to-timezone [this] - (.toTimeZone this))) - -(def ^TimeZone utc - "UTC TimeZone" - (coerce-to-timezone "UTC")) - -(def jvm-timezone - "Machine time zone" - (delay (coerce-to-timezone (System/getProperty "user.timezone")))) - -(defn- warn-on-timezone-conflict - "Attempts to check the combination of report-timezone, jvm-timezone and database-timezone to determine of we have a - possible conflict. If one is found, warn the user." - [driver db ^TimeZone report-timezone ^TimeZone jvm-timezone ^TimeZone database-timezone] - ;; No need to check this if we don't have a database-timezone - (when (and database-timezone driver) - (let [jvm-data-tz-conflict? (not (.hasSameRules jvm-timezone database-timezone))] - (if ((resolve 'metabase.driver/supports?) driver :set-timezone) - ;; This database could have a report-timezone configured, if it doesn't and the JVM and data timezones don't - ;; match, we should suggest that the user configure a report timezone - (when (and (not report-timezone) - jvm-data-tz-conflict?) - (log/warn (str (deferred-trs "Possible timezone conflict found on database {0}." (:name db)) - " " - (deferred-trs "JVM timezone is {0} and detected database timezone is {1}." - (.getID jvm-timezone) (.getID database-timezone)) - " " - (deferred-trs "Configure a report timezone to ensure proper date and time conversions.")))) - ;; This database doesn't support a report timezone, check the JVM and data timezones, if they don't match, - ;; warn the user - (when jvm-data-tz-conflict? - (log/warn (str (deferred-trs "Possible timezone conflict found on database {0}." (:name db)) - " " - (deferred-trs "JVM timezone is {0} and detected database timezone is {1}." - (.getID jvm-timezone) (.getID database-timezone))))))))) - -(defn call-with-effective-timezone - "Invokes `f` with `*report-timezone*` and `*database-timezone*` bound for the given `db`" - [db f] - (let [driver ((resolve 'metabase.driver.util/database->driver) db) - report-tz (when-let [report-tz-id (and driver ((resolve 'metabase.driver.util/report-timezone-if-supported) driver))] - (coerce-to-timezone report-tz-id)) - data-tz (some-> db :timezone coerce-to-timezone) - jvm-tz @jvm-timezone] - (warn-on-timezone-conflict driver db report-tz jvm-tz data-tz) - (binding [*report-timezone* (or report-tz jvm-tz) - *database-timezone* data-tz] - (f)))) - -(defmacro with-effective-timezone - "Runs `body` with `*report-timezone*` and `*database-timezone*` configured using the given `db`" - [db & body] - `(call-with-effective-timezone ~db (fn [] ~@body))) - -(defprotocol ^:private ITimestampCoercible - "Coerce object to a `java.sql.Timestamp`." - (coerce-to-timestamp ^java.sql.Timestamp [this] [this timezone-coercible] - "Coerce this object to a `java.sql.Timestamp`. Strings are parsed as ISO-8601.")) - -(extend-protocol ^:private ITimestampCoercible - nil (coerce-to-timestamp [_] - nil) - Timestamp (coerce-to-timestamp [this] - this) - Date (coerce-to-timestamp - [this] - (coerce/to-timestamp (coerce/from-date this))) - ;; Number is assumed to be a UNIX timezone in milliseconds (UTC) - Number (coerce-to-timestamp [this] - (coerce/to-timestamp (coerce/from-long (long this)))) - Calendar (coerce-to-timestamp [this] - (coerce-to-timestamp (.getTime this))) - DateTime (coerce-to-timestamp [this] - (coerce/to-timestamp this))) - -(declare str->date-time) - -(defn ^Timestamp ->Timestamp - "Converts `coercible-to-ts` to a `java.util.Timestamp`. Requires a `coercible-to-tz` if converting a string. Leans - on clj-time to ensure correct conversions between the various types - - NOTE: This function requires you to pass in a timezone or bind `*report-timezone*`, probably to make sure you're not - doing something dumb by forgetting it. For cases where you'd just like to parse an ISO-8601-encoded String in peace - without specifying a timezone, pass in `:no-timezone` as the second param to explicitly have things parsed without - one. (Keep in mind that if your string does not specify a timezone, it will be parsed as UTC by default.)" - ([coercible-to-ts] - {:pre [(or (not (string? coercible-to-ts)) - (and (string? coercible-to-ts) (bound? #'*report-timezone*)))]} - (->Timestamp coercible-to-ts *report-timezone*)) - ([coercible-to-ts timezone] - {:pre [(or (not (string? coercible-to-ts)) - (and (string? coercible-to-ts) timezone))]} - (if (string? coercible-to-ts) - (coerce-to-timestamp (str->date-time coercible-to-ts (when-not (= timezone :no-timezone) - (coerce-to-timezone timezone)))) - (coerce-to-timestamp coercible-to-ts)))) - -(defprotocol ^:private IDateTimeFormatterCoercible - "Protocol for converting objects to `DateTimeFormatters`." - (->DateTimeFormatter ^org.joda.time.format.DateTimeFormatter [this] - "Coerce object to a `DateTimeFormatter`.")) - -(extend-protocol IDateTimeFormatterCoercible - ;; Specify a format string like "yyyy-MM-dd" - String (->DateTimeFormatter [this] (time/formatter this)) - DateTimeFormatter (->DateTimeFormatter [this] this) - ;; Keyword will be used to get matching formatter from time/formatters - Keyword (->DateTimeFormatter [this] - (or (time/formatters this) - (throw (Exception. (format "Invalid formatter name, must be one of:\n%s" - (u/pprint-to-str (sort (keys time/formatters))))))))) - - -(defn parse-date - "Parse a datetime string `s` with a custom `date-format`, which can be a format string, clj-time formatter keyword, or - anything else that can be coerced to a `DateTimeFormatter`. - - (parse-date \"yyyyMMdd\" \"20160201\") -> #inst \"2016-02-01\" - (parse-date :date-time \"2016-02-01T00:00:00.000Z\") -> #inst \"2016-02-01\"" - ^java.sql.Timestamp [date-format, ^String s] - (->Timestamp (time/parse (->DateTimeFormatter date-format) s))) - -(defprotocol ^:private ISO8601 - "Protocol for converting objects to ISO8601 formatted strings." - (->iso-8601-datetime ^String [this, ^String timezone-id-or-nil] - "Coerce object to an ISO8601 date-time string such as \"2015-11-18T23:55:03.841Z\" with a given `timezone-id` - string (such as '\"UTC\"'), or `nil`, which defaults to \"UTC\" (?)")) - -(def ^:private ^{:arglists '([timezone-id])} ISO8601Formatter - ;; memoize this because the formatters are static. They must be distinct per timezone though. - (memoize - (fn [^String timezone-id] - (if timezone-id - (time/with-zone (time/formatters :date-time) (t/time-zone-for-id timezone-id)) - (time/formatters :date-time))))) - -(extend-protocol ISO8601 - nil (->iso-8601-datetime [_ _] nil) - java.util.Date (->iso-8601-datetime [this timezone-id] (time/unparse (ISO8601Formatter timezone-id) (coerce/from-date this))) - java.sql.Date (->iso-8601-datetime [this timezone-id] (time/unparse (ISO8601Formatter timezone-id) (coerce/from-sql-date this))) - java.sql.Timestamp (->iso-8601-datetime [this timezone-id] (time/unparse (ISO8601Formatter timezone-id) (coerce/from-sql-time this))) - org.joda.time.DateTime (->iso-8601-datetime [this timezone-id] (time/unparse (ISO8601Formatter timezone-id) this))) - -(def ^:private ^{:arglists '([timezone-id])} time-formatter - ;; memoize this because the formatters are static. They must be distinct per timezone though. - (memoize (fn [timezone-id] - (if timezone-id - (time/with-zone (time/formatters :time) (t/time-zone-for-id timezone-id)) - (time/formatters :time))))) - -(defn format-time - "Returns a string representation of the time found in `t`" - [t time-zone-id] - (time/unparse (time-formatter time-zone-id) (coerce/to-date-time t))) - -(defn is-time? - "Returns true if `v` is a Time object" - [v] - (and v (instance? Time v))) - -;;; ## Date Stuff - -(defn is-temporal? - "Is VALUE an instance of a datetime class like `java.util.Date` or `org.joda.time.DateTime`?" - [v] - (or (instance? java.util.Date v) - (instance? org.joda.time.DateTime v))) - -(defn new-sql-timestamp - "`java.sql.Date` doesn't have an empty constructor so this is a convenience that lets you make one with the current - date. (Some DBs like Postgres will get snippy if you don't use a `java.sql.Timestamp`)." - ^java.sql.Timestamp [] - (->Timestamp (System/currentTimeMillis))) - -(defn format-date - "Format `date` using a given `date-format`. NOTE: This will create a date string in the JVM's timezone, not the report - timezone. - - `date` is anything that can coerced to a `Timestamp` via `->Timestamp`, such as a `Date`, `Timestamp`, - `Long` (ms since the epoch), or an ISO-8601 `String`. `date` defaults to the current moment in time. - - `date-format` is anything that can be passed to `->DateTimeFormatter`, such as `String` - (using [the usual date format args](http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)), - `Keyword`, or `DateTimeFormatter`. - - - (format-date \"yyyy-MM-dd\") -> \"2015-11-18\" - (format-date :year (java.util.Date.)) -> \"2015\" - (format-date :date-time (System/currentTimeMillis)) -> \"2015-11-18T23:55:03.841Z\"" - (^String [date-format] - (format-date date-format (System/currentTimeMillis))) - (^String [date-format date] - (time/unparse (->DateTimeFormatter date-format) (coerce/from-sql-time (->Timestamp date))))) - -(def ^{:arglists '([] [date])} date->iso-8601 - "Format `date` a an ISO-8601 string." - (partial format-date :date-time)) - -(defn date-string? - "Is S a valid ISO 8601 date string?" - [^String s] - (boolean (when (string? s) - (u/ignore-exceptions - ;; Using UTC as the timezone here as it's `def`'d and the result of the parse is discarded, any - ;; timezone is fine here - (->Timestamp s utc))))) - -(defn ->Date - "Coerece `date` to a `java.util.Date`." - (^java.util.Date [] - (java.util.Date.)) - (^java.util.Date [date] - (java.util.Date. (.getTime (->Timestamp date))))) - -(defn ->Calendar - "Coerce `date` to a `java.util.Calendar`." - (^java.util.Calendar [] - (doto (Calendar/getInstance) - (.setTimeZone (TimeZone/getTimeZone "UTC")))) - (^java.util.Calendar [date] - (doto (->Calendar) - (.setTime (->Timestamp date)))) - (^java.util.Calendar [date, ^String timezone-id] - (doto (->Calendar date) - (.setTimeZone (TimeZone/getTimeZone timezone-id))))) - -(defn relative-date - "Return a new Timestamp relative to the current time using a relative date `unit`. - - (relative-date :year -1) -> #inst 2014-11-12 ..." - (^java.sql.Timestamp [unit amount] - (relative-date unit amount (Calendar/getInstance))) - (^java.sql.Timestamp [unit amount date] - (let [cal (->Calendar date) - [unit multiplier] (case unit - :millisecond [Calendar/MILLISECOND 1] - :second [Calendar/SECOND 1] - :minute [Calendar/MINUTE 1] - :hour [Calendar/HOUR 1] - :day [Calendar/DATE 1] - :week [Calendar/DATE 7] - :month [Calendar/MONTH 1] - :quarter [Calendar/MONTH 3] - :year [Calendar/YEAR 1])] - (.set cal unit (+ (.get cal unit) - (* amount multiplier))) - (->Timestamp cal)))) - -(def date-extract-units - "Units which return a (numerical, periodic) component of a date" - #{:minute-of-hour :hour-of-day :day-of-week :day-of-month :day-of-year :week-of-year :month-of-year :quarter-of-year - :year}) - -(defn date-extract - "Extract `unit` from `date`. `date` defaults to now. - - (date-extract :year) -> 2015" - ([unit] - (date-extract unit (System/currentTimeMillis) "UTC")) - ([unit date] - (date-extract unit date "UTC")) - ([unit date timezone-id] - (let [cal (->Calendar date timezone-id)] - (case unit - :minute-of-hour (.get cal Calendar/MINUTE) - :hour-of-day (.get cal Calendar/HOUR_OF_DAY) - ;; 1 = Sunday <-> 6 = Saturday - :day-of-week (.get cal Calendar/DAY_OF_WEEK) - :day-of-month (.get cal Calendar/DAY_OF_MONTH) - :day-of-year (.get cal Calendar/DAY_OF_YEAR) - ;; 1 = First week of year - :week-of-year (.get cal Calendar/WEEK_OF_YEAR) - :month-of-year (inc (.get cal Calendar/MONTH)) - :quarter-of-year (let [month (date-extract :month-of-year date timezone-id)] - (int (/ (+ 2 month) - 3))) - :year (.get cal Calendar/YEAR))))) - -(def date-trunc-units - "Valid date bucketing units" - #{:second :minute :hour :day :week :month :quarter :year}) - -(defn- trunc-with-format [format-string date timezone-id] - (->Timestamp (format-date (time/with-zone (time/formatter format-string) - (t/time-zone-for-id timezone-id)) - date) - timezone-id)) - -(defn- trunc-with-floor [date amount-ms] - (->Timestamp (* (math/floor (/ (.getTime (->Timestamp date)) - amount-ms)) - amount-ms))) - -(defn- ->first-day-of-week [date timezone-id] - (let [day-of-week (date-extract :day-of-week date timezone-id)] - (relative-date :day (- (dec day-of-week)) date))) - -(defn- format-string-for-quarter ^String [date timezone-id] - (let [year (date-extract :year date timezone-id) - quarter (date-extract :quarter-of-year date timezone-id) - month (- (* 3 quarter) 2)] - (format "%d-%02d-01'T'ZZ" year month))) - -(defn date-trunc - "Truncate `date` to `unit`. `date` defaults to now. - - (date-trunc :month). - ;; -> #inst \"2015-11-01T00:00:00\"" - (^java.sql.Timestamp [unit] - (date-trunc unit (System/currentTimeMillis) "UTC")) - - (^java.sql.Timestamp [unit date] - (date-trunc unit date "UTC")) - - (^java.sql.Timestamp [unit date timezone-id] - (case unit - ;; For minute and hour truncation timezone should not be taken into account - :millisecond (trunc-with-floor date 1) - :second (trunc-with-floor date 1000) - :minute (trunc-with-floor date (* 60 1000)) - :hour (trunc-with-floor date (* 60 60 1000)) - :day (trunc-with-format "yyyy-MM-dd'T'ZZ" date timezone-id) - :week (trunc-with-format "yyyy-MM-dd'T'ZZ" (->first-day-of-week date timezone-id) timezone-id) - :month (trunc-with-format "yyyy-MM-01'T'ZZ" date timezone-id) - :quarter (trunc-with-format (format-string-for-quarter date timezone-id) date timezone-id) - :year (trunc-with-format "yyyy-01-01'T'ZZ" date timezone-id)))) - -(defn date-trunc-or-extract - "Apply date bucketing with `unit` to `date`. `date` defaults to now." - ([unit] - (date-trunc-or-extract unit (System/currentTimeMillis) "UTC")) - ([unit date] - (date-trunc-or-extract unit date "UTC")) - ([unit date timezone-id] - (cond - (= unit :default) date - - (contains? date-extract-units unit) - (date-extract unit date timezone-id) - - (contains? date-trunc-units unit) - (date-trunc unit date timezone-id)))) - -(defn format-nanoseconds - "Format a time interval in nanoseconds to something more readable (µs/ms/etc.) - Useful for logging elapsed time when using `(System/nanotime)`" - ^String [nanoseconds] - (loop [n nanoseconds, [[unit divisor] & more] [[:ns 1000] [:µs 1000] [:ms 1000] [:s 60] [:mins 60] [:hours 24] - [:days 7] [:weeks Integer/MAX_VALUE]]] - (if (and (> n divisor) - (seq more)) - (recur (/ n divisor) more) - (format "%.1f %s" (double n) (name unit))))) - -(defn format-microseconds - "Format a time interval in microseconds into something more readable." - ^String [microseconds] - (format-nanoseconds (* 1000.0 microseconds))) - -(defn format-milliseconds - "Format a time interval in milliseconds into something more readable." - ^String [milliseconds] - (format-microseconds (* 1000.0 milliseconds))) - -(defn format-seconds - "Format a time interval in seconds into something more readable." - ^String [seconds] - (format-milliseconds (* 1000.0 seconds))) - -;; TODO - Not sure this belongs in the datetime util namespace -(defmacro profile - "Like `clojure.core/time`, but lets you specify a `message` that gets printed with the total time, and formats the - time nicely using `format-nanoseconds`." - {:style/indent 1} - ([form] - `(profile ~(str form) ~form)) - ([message & body] - `(let [start-time# (System/nanoTime)] - (u/prog1 (do ~@body) - (println (u/format-color '~'green "%s took %s" - ~message - (format-nanoseconds (- (System/nanoTime) start-time#)))))))) - -(defn- str->date-time-with-formatters - "Attempt to parse `date-str` using `formatters`. First successful parse is returned, or `nil` if it cannot be - successfully parsed." - ([formatters date-str] - (str->date-time-with-formatters formatters date-str nil)) - ([formatters ^String date-str ^TimeZone tz] - (let [dtz (some-> tz .getID t/time-zone-for-id)] - (first - (for [formatter formatters - :let [formatter-with-tz (time/with-zone formatter dtz) - parsed-date (u/ignore-exceptions (time/parse formatter-with-tz date-str))] - :when parsed-date] - parsed-date))))) - -(def ^:private date-time-with-millis-no-t - "This primary use for this formatter is for Dates formatted by the built-in SQLite functions" - (->DateTimeFormatter "yyyy-MM-dd HH:mm:ss.SSS")) - -(def ^:private ordered-date-parsers - "When using clj-time.format/parse without a formatter, it tries all default formatters, but not ordered by how likely - the date formatters will succeed. This leads to very slow parsing as many attempts fail before the right one is - found. Using this retains that flexibility but improves performance by trying the most likely ones first" - (let [most-likely-default-formatters [:mysql :date-hour-minute-second :date-time :date - :basic-date-time :basic-date-time-no-ms - :date-time :date-time-no-ms]] - (concat (map time/formatters most-likely-default-formatters) - [date-time-with-millis-no-t] - (vals (apply dissoc time/formatters most-likely-default-formatters))))) - -(defn str->date-time - "Like clj-time.format/parse but uses an ordered list of parsers to be faster. Returns the parsed date, or `nil` if it - was unable to be parsed." - (^DateTime [^String date-str] - (str->date-time date-str nil)) - - (^DateTime [^String date-str, ^TimeZone tz] - (str->date-time-with-formatters ordered-date-parsers date-str tz))) - -(def ^:private ordered-time-parsers - (let [most-likely-default-formatters [:hour-minute :hour-minute-second :hour-minute-second-fraction]] - (concat (map time/formatters most-likely-default-formatters) - [(time/formatter "HH:mmZ") (time/formatter "HH:mm:SSZ") (time/formatter "HH:mm:SS.SSSZ")]))) - -(defn str->time - "Parse `time-str` and return a `java.sql.Time` instance. Returns `nil` if `time-str` can't be parsed." - ([^String date-str] - (str->time date-str nil)) - ([^String date-str ^TimeZone tz] - (some-> (str->date-time-with-formatters ordered-time-parsers date-str tz) - coerce/to-long - Time.))) - -(s/defn calculate-duration :- su/NonNegativeInt - "Given two datetimes, caculate the time between them, return the result in millis" - [begin-time :- (s/protocol coerce/ICoerce) - end-time :- (s/protocol coerce/ICoerce)] - (- (coerce/to-long end-time) (coerce/to-long begin-time))) - -(defn seconds->ms - "Convert `seconds` to milliseconds. More readable than doing this math inline." - [seconds] - (* seconds 1000)) - -(defn minutes->seconds - "Convert `minutes` to seconds. More readable than doing this math inline." - [minutes] - (* 60 minutes)) - -(defn minutes->ms - "Convert `minutes` to milliseconds. More readable than doing this math inline." - [minutes] - (-> minutes minutes->seconds seconds->ms)) diff --git a/src/metabase/util/date_2.clj b/src/metabase/util/date_2.clj new file mode 100644 index 0000000000000000000000000000000000000000..b8da94a7a28868fc1e904c079c1f714fa2756708 --- /dev/null +++ b/src/metabase/util/date_2.clj @@ -0,0 +1,437 @@ +(ns metabase.util.date-2 + "Replacement for `metabase.util.date` that consistently uses `java.time` instead of a mix of `java.util.Date`, + `java.sql.*`, and Joda-Time." + (:refer-clojure :exclude [format range]) + (:require [clojure.string :as str] + [clojure.tools.logging :as log] + [java-time :as t] + [java-time.core :as t.core] + [metabase.config :as config] + [metabase.util.date-2 + [common :as common] + [parse :as parse]] + [metabase.util.i18n :refer [tru]] + [schema.core :as s]) + (:import [java.time Duration Instant LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime Period ZonedDateTime] + [java.time.temporal Temporal TemporalAdjuster WeekFields] + org.threeten.extra.PeriodDuration)) + +(defn- add-zone-to-local [t timezone-id] + (condp instance? t + LocalDateTime (t/zoned-date-time t (t/zone-id timezone-id)) + LocalDate (t/zoned-date-time t (t/local-time 0) (t/zone-id timezone-id)) + ;; don't attempt to convert local times to offset times because we have no idea what the offset + ;; actually should be, since we don't know the date. Since it's not an exact instant in time we're + ;; not using it to make ranges in MBQL filter clauses anyway + ;; + ;; TIMEZONE FIXME - not sure we even want to be adding zone-id info for the timestamps above either + #_LocalTime #_ (t/offset-time t (t/zone-id timezone-id)) + t)) + +(defn parse + "With one arg, parse a temporal literal into a corresponding `java.time` class, such as `LocalDate` or + `OffsetDateTime`. With a second arg, literals that do not explicitly specify a timezone are interpreted as being in + `timezone-id`." + ([s] + (parse/parse s)) + + ([s default-timezone-id] + (let [result (parse s)] + (if-not default-timezone-id + result + (let [result-with-timezone (add-zone-to-local result default-timezone-id)] + (when-not (= result result-with-timezone) + (log/tracef "Applying default timezone %s to temporal literal without timezone '%s' -> %s" + default-timezone-id s (pr-str result-with-timezone))) + result-with-timezone))))) + +(defn- temporal->iso-8601-formatter [t] + (condp instance? t + Instant :iso-offset-date-time + LocalDate :iso-local-date + LocalTime :iso-local-time + LocalDateTime :iso-local-date-time + OffsetTime :iso-offset-time + OffsetDateTime :iso-offset-date-time + ZonedDateTime :iso-offset-date-time)) + +(defn- format* [formatter t] + (when t + (if (t/instant? t) + (recur formatter (t/zoned-date-time t (t/zone-id "UTC"))) + (t/format formatter t)))) + +(defn format + "Format temporal value `t` as a ISO-8601 date/time/datetime string." + ^String [t] + (format* (temporal->iso-8601-formatter t) t)) + +(defn format-sql + "Format a temporal value `t` as a SQL-style literal string (for most SQL databases). This is the same as ISO-8601 but + uses a space rather than of a `T` to separate the date and time components." + ^String [t] + ;; replace the `T` with a space. Easy! + (str/replace-first (format t) #"(\d{2})T(\d{2})" "$1 $2")) + +(def ^:private add-units + #{:millisecond :second :minute :hour :day :week :month :quarter :year}) + +(s/defn add :- Temporal + "Return a temporal value relative to temporal value `t` by adding (or subtracting) a number of units. Returned value + will be of same class as `t`. + + (add (t/zoned-date-time \"2019-11-05T15:44-08:00[US/Pacific]\") :month 2) + -> + (t/zoned-date-time \"2020-01-05T15:44-08:00[US/Pacific]\")" + ([unit amount] + (add (t/zoned-date-time) unit amount)) + + ([t :- Temporal, unit :- (apply s/enum add-units), amount :- (s/maybe s/Int)] + (if (zero? amount) + t + (t/plus t (case unit + :millisecond (t/millis amount) + :second (t/seconds amount) + :minute (t/minutes amount) + :hour (t/hours amount) + :day (t/days amount) + :week (t/days (* amount 7)) + :month (t/months amount) + :quarter (t/months (* amount 3)) + :year (t/years amount)))))) + +;; TIMEZONE FIXME - we should add `:millisecond-of-second` (or `:fraction-of-second`?) and `:second-of-minute` as +;; well. Not sure where we'd use these, but we should have them for consistency +(def extract-units + "Units which return a (numerical, periodic) component of a date" + #{:minute-of-hour + :hour-of-day + :day-of-week + :iso-day-of-week + :day-of-month + :day-of-year + :week-of-year + :iso-week-of-year + :month-of-year + :quarter-of-year + :year}) + +(def ^:private week-fields* + (common/static-instances WeekFields)) + +;; this function is separate from the map above mainly to appease Eastwood due to a bug in `clojure/tools.analyzer` — +;; see https://clojure.atlassian.net/browse/TANAL-132 +(defn- week-fields ^WeekFields [k] + (get week-fields* k)) + +(s/defn extract :- Number + "Extract a field such as `:minute-of-hour` from a temporal value `t`. + + (extract (t/zoned-date-time \"2019-11-05T15:44-08:00[US/Pacific]\") :day-of-month) + ;; -> 5 + + Values are returned as numbers (currently, always and integers, but this may change if we add support for + `:fraction-of-second` in the future.)" + ([unit] + (extract (t/zoned-date-time) unit)) + + ([t :- Temporal, unit :- (apply s/enum extract-units)] + (t/as t (case unit + :minute-of-hour :minute-of-hour + :hour-of-day :hour-of-day + :day-of-week (.dayOfWeek (week-fields :sunday-start)) + :iso-day-of-week (.dayOfWeek (week-fields :iso)) + :day-of-month :day-of-month + :day-of-year :day-of-year + :week-of-year (.weekOfYear (week-fields :sunday-start)) + :iso-week-of-year (.weekOfYear (week-fields :iso)) + :month-of-year :month-of-year + :quarter-of-year :quarter-of-year + :year :year)))) + +(defmulti ^TemporalAdjuster adjuster + "Get the custom `TemporalAdjuster` named by `k`. + + ;; adjust 2019-12-10T17:26 to the second week of the year + (t/adjust #t \"2019-12-10T17:26\" (u.date/adjuster :week-of-year 2)) ;; -> #t \"2019-01-06T17:26\"" + {:arglists '([k & args])} + (fn [k & _] (keyword k))) + +(defmethod adjuster :default + [k] + (throw (Exception. (tru "No temporal adjuster named {0}" k)))) + +(defmethod adjuster :first-day-of-week + [_] + (reify TemporalAdjuster + (adjustInto [_ t] + (t/adjust t :previous-or-same-day-of-week :sunday)))) + +(defmethod adjuster :first-day-of-iso-week + [_] + (reify TemporalAdjuster + (adjustInto [_ t] + (t/adjust t :previous-or-same-day-of-week :monday)))) + +(defmethod adjuster :first-day-of-quarter + [_] + (reify TemporalAdjuster + (adjustInto [_ t] + (.with t (.atDay (t/year-quarter t) 1))))) + +(defmethod adjuster :first-week-of-year + [_] + (reify TemporalAdjuster + (adjustInto [_ t] + (-> t + (t/adjust :first-day-of-year) + (t/adjust (adjuster :first-day-of-week)))))) + +(defmethod adjuster :week-of-year + [_ week-of-year] + (reify TemporalAdjuster + (adjustInto [_ t] + (-> t + (t/adjust (adjuster :first-week-of-year)) + (t/plus (t/weeks (dec week-of-year))))))) + +;; if you attempt to truncate a `LocalDate` to `:day` or anything smaller we can go ahead and return it as is +(extend-protocol t.core/Truncatable + LocalDate + (truncate-to [t unit] + (case unit + :millis t + :seconds t + :minutes t + :hours t + :days t))) + +(def truncate-units "Valid date trucation units" + #{:millisecond :second :minute :hour :day :week :iso-week :month :quarter :year}) + +(s/defn truncate :- Temporal + "Truncate a temporal value `t` to the beginning of `unit`, e.g. `:hour` or `:day`. Not all truncation units are + supported on all subclasses of `Temporal` — for example, you can't truncate a `LocalTime` to `:month`, for obvious + reasons." + ([unit] + (truncate (t/zoned-date-time) unit)) + + ([t :- Temporal, unit :- (apply s/enum truncate-units)] + (case unit + :default t + :millisecond (t/truncate-to t :millis) + :second (t/truncate-to t :seconds) + :minute (t/truncate-to t :minutes) + :hour (t/truncate-to t :hours) + :day (t/truncate-to t :days) + :week (-> (.with t (adjuster :first-day-of-week)) (t/truncate-to :days)) + :iso-week (-> (.with t (adjuster :first-day-of-iso-week)) (t/truncate-to :days)) + :month (-> (t/adjust t :first-day-of-month) (t/truncate-to :days)) + :quarter (-> (.with t (adjuster :first-day-of-quarter)) (t/truncate-to :days)) + :year (-> (t/adjust t :first-day-of-year) (t/truncate-to :days))))) + +(s/defn bucket :- (s/cond-pre Number Temporal) + "Perform a truncation or extraction unit on temporal value `t`. (These two operations are collectively known as + 'date bucketing' in Metabase code and MBQL, e.g. for date/time columns in MBQL `:breakout` (SQL `GROUP BY`)). + + You can combine this function with `group-by` to do some date/time bucketing in Clojure-land: + + (group-by #(bucket % :quarter-of-year) (map t/local-date [\"2019-01-01\" \"2019-01-02\" \"2019-01-04\"])) + ;; -> {1 [(t/local-date \"2019-01-01\") (t/local-date \"2019-01-02\")], 2 [(t/local-date \"2019-01-04\")]}" + ([unit] + (bucket (t/zoned-date-time) unit)) + + ([t :- Temporal, unit :- (apply s/enum (into extract-units truncate-units))] + (cond + (= unit :default) t + (extract-units unit) (extract t unit) + (truncate-units unit) (truncate t unit) + :else (throw (Exception. (tru "Invalid unit: {0}" unit)))))) + +(s/defn range :- {:start Temporal, :end Temporal} + "Get a start (by default, inclusive) and end (by default, exclusive) pair of instants for a `unit` span of time + containing `t`. e.g. + + (range (t/zoned-date-time \"2019-11-01T15:29:00Z[UTC]\") :week) + -> + {:start (t/zoned-date-time \"2019-10-27T00:00Z[UTC]\") + :end (t/zoned-date-time \"2019-11-03T00:00Z[UTC]\")}" + ([unit] + (range (t/zoned-date-time) unit)) + + ([t unit] + (range t unit nil)) + + ([t :- Temporal, unit :- (apply s/enum add-units), {:keys [start end resolution] + :or {start :inclusive + end :exclusive + resolution :millisecond}}] + (let [t (truncate t unit)] + {:start (case start + :inclusive t + :exclusive (add t resolution -1)) + :end (case end + :inclusive (add (add t unit 1) resolution -1) + :exclusive (add t unit 1))}))) + +(defn comparison-range + "Generate an range that of instants that when bucketed by `unit` would be `=`, `<`, `<=`, `>`, or `>=` to the value of + an instant `t` bucketed by `unit`. (`comparison-type` is one of `:=`, `:<`, `:<=`, `:>`, or `:>=`.) By default, the + start of the resulting range is inclusive, and the end exclusive; this can be tweaked by passing `options`. + + ;; Generate range off instants that have the same MONTH as Nov 18th + (comparison-range (t/local-date \"2019-11-18\") :month := {:resolution :day}) + ;; -> {:start (t/local-date \"2019-11-01\"), :end (t/local-date \"2019-12-01\")}" + ([unit comparison-type] + (comparison-range (t/zoned-date-time) unit comparison-type)) + + ([t unit comparison-type] + (comparison-range t unit comparison-type nil)) + + ([t unit comparison-type {:keys [start end resolution] + :or {start :inclusive + end :exclusive + resolution :millisecond} + :as options}] + (case comparison-type + :< {:end (case end + :inclusive (add (truncate t unit) resolution -1) + :exclusive (truncate t unit))} + :<= {:end (let [t (add (truncate t unit) unit 1)] + (case end + :inclusive (add t resolution -1) + :exclusive t))} + :> {:start (let [t (add (truncate t unit) unit 1)] + (case start + :inclusive t + :exclusive (add t resolution -1)))} + :>= {:start (let [t (truncate t unit)] + (case start + :inclusive t + :exclusive (add t resolution -1)))} + := (range t unit options)))) + +(defn ^PeriodDuration period-duration + "Return the Duration between two temporal values `x` and `y`." + {:arglists '([s] [period] [duration] [period duration] [start end])} + ([x] + (when x + (condp instance? x + PeriodDuration x + CharSequence (PeriodDuration/parse x) + Period (PeriodDuration/of ^Period x) + Duration (PeriodDuration/of ^Duration x)))) + + ([x y] + (cond + (and (instance? Period x) (instance? Duration y)) + (PeriodDuration/of x y) + + (instance? Instant x) + (period-duration (t/offset-date-time x (t/zone-offset 0)) y) + + (instance? Instant y) + (period-duration x (t/offset-date-time y (t/zone-offset 0))) + + :else + (PeriodDuration/between x y)))) + +(defn compare-period-durations + "With two args: Compare two periods/durations. Returns a negative value if `d1` is shorter than `d2`, zero if they are + equal, or positive if `d1` is longer than `d2`. + + (u.date/compare-period-durations \"P1Y\" \"P11M\") ; -> 1 (i.e., 1 year is longer than 11 months) + + You can combine this with `period-duration` to compare the duration between two temporal values against another + duration: + + (u.date/compare-period-durations (u.date/period-duration #t \"2019-01-01\" #t \"2019-07-01\") \"P11M\") ; -> -1 + + Note that this calculation is inexact, since it calclates relative to a fixed point in time, but should be + sufficient for most if not all use cases." + [d1 d2] + (when (and d1 d2) + (let [t (t/offset-date-time "1970-01-01T00:00Z")] + (compare (.addTo (period-duration d1) t) + (.addTo (period-duration d2) t))))) + +(defn less-than-period-duration? + "True if period/duration `d1` is shorter than period/duration `d2`." + [d1 d2] + (neg? (compare-period-durations d1 d2))) + +(defn greater-than-period-duration? + "True if period/duration `d1` is longer than period/duration `d2`." + [d1 d2] + (pos? (compare-period-durations d1 d2))) + +(defn- now-of-same-class + "Return a temporal value representing *now* of the same class as `t`, e.g. for comparison purposes." + ^Temporal [t] + (when t + (condp instance? t + Instant (t/instant) + LocalDate (t/local-date) + LocalTime (t/local-time) + LocalDateTime (t/local-date-time) + OffsetTime (t/offset-time) + OffsetDateTime (t/offset-date-time) + ZonedDateTime (t/zoned-date-time)))) + +(defn older-than? + "True if temporal value `t` happened before some period/duration ago. Prefer this over using `t/before?` + because it is incredibly fussy about the classes of arguments it is passed. + + ;; did `t` happen more than 2 months ago? + (older-than? t (t/months 2))" + [t duration] + (greater-than-period-duration? + (period-duration t (now-of-same-class t)) + duration)) + + +;;; +----------------------------------------------------------------------------------------------------------------+ +;;; | Etc | +;;; +----------------------------------------------------------------------------------------------------------------+ + +;; Mainly for REPL usage. Have various temporal types print as a `java-time` function call you can use +(doseq [[klass f-symb] {Instant 't/instant + LocalDate 't/local-date + LocalDateTime 't/local-date-time + LocalTime 't/local-time + OffsetDateTime 't/offset-date-time + OffsetTime 't/offset-time + ZonedDateTime 't/zoned-date-time}] + (defmethod print-method klass + [t writer] + (print-method (list f-symb (str t)) writer)) + + (defmethod print-dup klass + [t ^java.io.Writer writer] + (.write writer (clojure.core/format "#t \"%s\"" (str t))))) + +(defmethod print-method PeriodDuration + [d writer] + (print-method (list 'u.date/period-duration (str d)) writer)) + +(defmethod print-dup PeriodDuration + [d ^java.io.Writer writer] + (.write writer (clojure.core/format "(metabase.util.date-2/period-duration \"%s\")" (str d)))) + +(defmethod print-method Period + [d writer] + (print-method (list 't/period (str d)) writer)) + +(defmethod print-method Duration + [d writer] + (print-method (list 't/duration (str d)) writer)) + +;; mark everything in the `clj-time` namespaces as `:deprecated`, if they're loaded. If not, we don't care +(when config/is-dev? + (doseq [a-namespace '[clj-time.core clj-time.coerce clj-time.format]] + (try + (let [a-namespace (the-ns a-namespace)] + (alter-meta! a-namespace assoc :deprecated true) + (doseq [[_ varr] (ns-publics a-namespace)] + (alter-meta! varr assoc :deprecated true))) + (catch Throwable _)))) diff --git a/src/metabase/util/date_2/common.clj b/src/metabase/util/date_2/common.clj new file mode 100644 index 0000000000000000000000000000000000000000..c322c46aa7f70df96a7fc7f8aedc0c839d82be74 --- /dev/null +++ b/src/metabase/util/date_2/common.clj @@ -0,0 +1,34 @@ +(ns metabase.util.date-2.common + (:require [clojure.string :as str]) + (:import [java.time.temporal ChronoField IsoFields TemporalField WeekFields])) + +;; TODO - not sure this belongs here, it seems to be a bit more general than just `date-2`. + +(defn static-instances + "Utility function to get the static members of a class. Returns map of `lisp-case` keyword names of members -> value." + ([^Class klass] + (static-instances klass klass)) + + ([^Class klass ^Class target-class] + (into {} (for [^java.lang.reflect.Field f (.getFields klass) + :when (.isAssignableFrom target-class (.getType f))] + [(keyword (str/lower-case (str/replace (.getName f) #"_" "-"))) + (.get f nil)])))) + +(def ^TemporalField temporal-field + "Map of lisp-style-name -> TemporalField for all the various TemporalFields we use in day-to-day parsing and other + temporal operations." + (merge + ;; honestly I have no idea why there's both IsoFields/WEEK_OF_WEEK_BASED_YEAR and (.weekOfWeekBasedYear + ;; WeekFields/ISO) + (into {} (for [[k v] (static-instances IsoFields TemporalField)] + [(keyword "iso" (name k)) v])) + (static-instances ChronoField) + {:week-fields/iso-week-based-year (.weekBasedYear WeekFields/ISO) + :week-fields/iso-week-of-month (.weekOfMonth WeekFields/ISO) + :week-fields/iso-week-of-week-based-year (.weekOfWeekBasedYear WeekFields/ISO) + :week-fields/iso-week-of-year (.weekOfYear WeekFields/ISO)} + {:week-fields/week-based-year (.weekBasedYear WeekFields/SUNDAY_START) + :week-fields/week-of-month (.weekOfMonth WeekFields/SUNDAY_START) + :week-fields/week-of-week-based-year (.weekOfWeekBasedYear WeekFields/SUNDAY_START) + :week-fields/week-of-year (.weekOfYear WeekFields/SUNDAY_START)})) diff --git a/src/metabase/util/date_2/parse.clj b/src/metabase/util/date_2/parse.clj new file mode 100644 index 0000000000000000000000000000000000000000..518312d1d81440fce4233f9528853c3aaa206c13 --- /dev/null +++ b/src/metabase/util/date_2/parse.clj @@ -0,0 +1,128 @@ +(ns metabase.util.date-2.parse + (:require [clojure.string :as str] + [java-time :as t] + [metabase.util.date-2.common :as common] + [metabase.util.date-2.parse.builder :as b] + [metabase.util.i18n :refer [tru]] + [schema.core :as s]) + (:import [java.time LocalDateTime OffsetDateTime OffsetTime ZonedDateTime ZoneOffset] + java.time.format.DateTimeFormatter + [java.time.temporal Temporal TemporalAccessor TemporalField TemporalQueries])) + +(def ^:private ^{:arglists '([temporal-accessor query])} query + (let [queries {:local-date (TemporalQueries/localDate) + :local-time (TemporalQueries/localTime) + :zone-offset (TemporalQueries/offset) + :zone-id (TemporalQueries/zoneId)}] + (fn [^TemporalAccessor temporal-accessor query] + (.query temporal-accessor (queries query))))) + +(defn- normalize [s] + (-> s + ;; HACK - haven't figured out how to get the parser builder to allow HHmm offsets (i.e., no colons) yet, so add + ;; one in there if needed. TODO - what about HH:mm:ss offsets? Will we ever see those? + (str/replace #"([+-][0-2]\d)([0-5]\d)$" "$1:$2") + (str/replace #"([0-2]\d:[0-5]\d(?::[0-5]\d(?:\.\d{1,9})?)?[+-][0-2]\d$)" "$1:00"))) + +(defn all-supported-fields + "Returns a map of supported temporal field lisp-style name -> value, e.g. + + (parse-special-case (.parse + (b/formatter + (b/value :year 4) + (b/value :iso/week-of-year 2)) + \"201901\")) + ;; -> {:year 2019, :iso-week-of-year 1}" + [^TemporalAccessor temporal-accessor] + (into {} (for [[k ^TemporalField field] common/temporal-field + :when (.isSupported temporal-accessor field)] + [k (.getLong temporal-accessor field)]))) + +(s/defn parse-with-formatter :- (s/maybe Temporal) + "Parse a String with a DateTimeFormatter, returning an appropriate instance of an `java.time` temporal class." + [formattr s :- (s/maybe s/Str)] + {:pre [((some-fn string? nil?) s)]} + (when-not (str/blank? s) + (let [formattr (t/formatter formattr) + s (normalize s) + temporal-accessor (.parse formattr s) + local-date (query temporal-accessor :local-date) + local-time (query temporal-accessor :local-time) + zone-offset (query temporal-accessor :zone-offset) + zone-id (or (query temporal-accessor :zone-id) + (when (= zone-offset ZoneOffset/UTC) + (t/zone-id "UTC"))) + literal-type [(cond + zone-id :zone + zone-offset :offset + :else :local) + (cond + (and local-date local-time) :datetime + local-date :date + local-time :time)]] + (case literal-type + [:zone :datetime] (ZonedDateTime/of local-date local-time zone-id) + [:offset :datetime] (OffsetDateTime/of local-date local-time zone-offset) + [:local :datetime] (LocalDateTime/of local-date local-time) + [:zone :date] (ZonedDateTime/of local-date (t/local-time 0) zone-id) + [:offset :date] (OffsetDateTime/of local-date (t/local-time 0) zone-offset) + [:local :date] local-date + [:zone :time] (OffsetTime/of local-time zone-offset) + [:offset :time] (OffsetTime/of local-time zone-offset) + [:local :time] local-time + (throw (ex-info (tru "Don''t know how to parse {0} using format {1}" (pr-str s) (pr-str formattr)) + {:s s + :formatter formattr + :supported-fields (all-supported-fields temporal-accessor)})))))) + +(def ^:private ^DateTimeFormatter date-formatter* + (b/formatter + (b/value :year 4 10 :exceeds-pad) + (b/optional + "-" + (b/value :month-of-year 2) + (b/optional + "-" + (b/value :day-of-month 2))) + (b/default-value :month-of-year 1) + (b/default-value :day-of-month 1))) + +(def ^:private ^DateTimeFormatter time-formatter* + (b/formatter + (b/value :hour-of-day 2) + (b/optional + ":" + (b/value :minute-of-hour 2) + (b/optional + ":" + (b/value :second-of-minute 2) + (b/optional + (b/fraction :nano-of-second 0 9, :decimal-point? true)))) + (b/default-value :minute-of-hour 0) + (b/default-value :second-of-minute 0) + (b/default-value :nano-of-second 0))) + +(def ^:private ^DateTimeFormatter offset-formatter* + (b/formatter + (b/optional " ") + (b/optional + (b/zone-offset)) + (b/optional + (b/zone-id)))) + +(def ^:private ^DateTimeFormatter formatter + (b/formatter + (b/case-insensitive + (b/optional + date-formatter*) + (b/optional "T") + (b/optional " ") + (b/optional + time-formatter*) + (b/optional + offset-formatter*)))) + +(defn parse + "Parse a string into a `java.time` object." + [^String s] + (parse-with-formatter formatter s)) diff --git a/src/metabase/util/date_2/parse/builder.clj b/src/metabase/util/date_2/parse/builder.clj new file mode 100644 index 0000000000000000000000000000000000000000..cfca94f97511de0429cd1e336f0cac0d8e7298a9 --- /dev/null +++ b/src/metabase/util/date_2/parse/builder.clj @@ -0,0 +1,164 @@ +(ns metabase.util.date-2.parse.builder + "Utility functions for programatically building a `DateTimeFormatter`. Easier to understand than chaining a hundred + Java calls and trying to keep the structure straight. + + The basic idea here is you pass a number of `sections` to `formatter` to build a `DateTimeFormatter` — see + `metabase.util.date-2.parse` for examples. Most of these sections are simple wrappers around corresponding + `DateTimeFormatterBuilder` -- see + https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatterBuilder.html for documenation. + + TODO - this is a prime library candidate." + (:require [metabase.util.date-2.common :as common]) + (:import [java.time.format DateTimeFormatter DateTimeFormatterBuilder SignStyle] java.time.temporal.TemporalField)) + +(defprotocol ^:private Section + (^:private apply-section [this builder])) + +(extend-protocol Section + String + (apply-section [s builder] + (.appendLiteral ^DateTimeFormatterBuilder builder s)) + + clojure.lang.Fn + (apply-section [f builder] + (f builder)) + + clojure.lang.Sequential + (apply-section [sections builder] + (doseq [section sections] + (apply-section section builder))) + + DateTimeFormatter + (apply-section [formatter builder] + (.append ^DateTimeFormatterBuilder builder formatter))) + +(defn optional + "Make wrapped `sections` optional." + [& sections] + (reify Section + (apply-section [_ builder] + (.optionalStart ^DateTimeFormatterBuilder builder) + (apply-section sections builder) + (.optionalEnd ^DateTimeFormatterBuilder builder)))) + +(defn- set-option [^DateTimeFormatterBuilder builder option] + (case option + :strict (.parseStrict builder) + :lenient (.parseLenient builder) + :case-sensitive (.parseCaseSensitive builder) + :case-insensitive (.parseCaseInsensitive builder))) + +(def ^:private ^:dynamic *options* + {:strictness :strict + :case-sensitivity :case-sensitive}) + +(defn- do-with-option [builder k new-value thunk] + (let [old-value (get *options* k)] + (if (= old-value new-value) + (thunk) + (binding [*options* (assoc *options* k new-value)] + (set-option builder new-value) + (thunk) + (set-option builder old-value))))) + +(defn- with-option-section [k v sections] + (reify Section + (apply-section [_ builder] + (do-with-option builder k v (fn [] (apply-section sections builder)))))) + +(defn strict + "Use strict parsing for wrapped `sections`." + [& sections] + (with-option-section :strictness :strict sections)) + +(defn lenient + "Use lenient parsing for wrapped `sections`." + [& sections] + (with-option-section :strictness :lenient sections)) + +(defn case-sensitive + "Make wrapped `sections` case-sensitive." + [& sections] + (with-option-section :case-sensitivity :case-sensitive sections)) + +(defn case-insensitive + "Make wrapped `sections` case-insensitive." + [& sections] + (with-option-section :case-sensitivity :case-insensitive sections)) + +(def ^:private ^SignStyle sign-style + (common/static-instances SignStyle)) + +(defn- temporal-field ^TemporalField [x] + (let [field (if (keyword? x) + (common/temporal-field x) + x)] + (assert (instance? TemporalField field) + (format "Invalid TemporalField: %s" (pr-str field))) + field)) + +(defn value + "Define a section for a specific field such as `:hour-of-day` or `:minute-of-hour`. Refer to + `metabase.util.date-2.common/temporal-field` for all possible temporal fields names." + ([temporal-field-name] + (fn [^DateTimeFormatterBuilder builder] + (.appendValue builder (temporal-field temporal-field-name)))) + + ([temporal-field-name width] + (fn [^DateTimeFormatterBuilder builder] + (.appendValue builder (temporal-field temporal-field-name) width))) + + ([temporal-field-name min-val max-val sign-style-name] + (fn [^DateTimeFormatterBuilder builder] + (.appendValue builder (temporal-field temporal-field-name) min-val max-val (sign-style sign-style-name))))) + +(defn default-value + "Define a section that sets a default value for a field like `:minute-of-hour`." + [temporal-field-name default-value] + (fn [^DateTimeFormatterBuilder builder] + (.parseDefaulting builder (temporal-field temporal-field-name) default-value))) + +(defn fraction + "Define a section for a fractional value, e.g. milliseconds or nanoseconds." + [temporal-field-name min-val-width max-val-width & {:keys [decimal-point?]}] + (fn [^DateTimeFormatterBuilder builder] + (.appendFraction builder (temporal-field temporal-field-name) 0 9 (boolean decimal-point?)))) + +(defn zone-offset + "Define a section for a timezone offset. e.g. `-08:00`." + [] + (lenient + (fn [^DateTimeFormatterBuilder builder] + (.appendOffsetId builder)))) + +(defn zone-id + "An a section for a timezone ID wrapped in square brackets, e.g. `[America/Los_Angeles]`." + [] + (strict + (case-sensitive + (optional "[") + (fn [^DateTimeFormatterBuilder builder] + (.appendZoneRegionId builder)) + (optional "]")))) + +(defn formatter + "Return a new `DateTimeFormatter` from `sections`. See examples in `metabase.util.date-2.parse` for more details. + + (formatter + (case-insensitive + (value :hour-of-day 2) + (optional + \":\" + (value :minute-of-hour 2) + (optional + \":\" + (value :second-of-minute))))) + + -> + + #object[java.time.format.DateTimeFormatter + \"ParseCaseSensitive(false)Value(HourOfDay,2)[':'Value(MinuteOfHour,2)[':'Value(SecondOfMinute)]]\"]" + ^DateTimeFormatter [& sections] + (let [builder (DateTimeFormatterBuilder.)] + (apply-section sections builder) + (.toFormatter builder))) diff --git a/src/metabase/util/files.clj b/src/metabase/util/files.clj index 0a79cab2e10e41e85fc7090ac3e3016451242c8e..05491ea84600ec4bc86d693b4f6fd0383c258ae7 100644 --- a/src/metabase/util/files.clj +++ b/src/metabase/util/files.clj @@ -9,9 +9,7 @@ [clojure.string :as str] [clojure.tools.logging :as log] [metabase.util :as u] - [metabase.util - [date :as du] - [i18n :refer [trs]]]) + [metabase.util.i18n :refer [trs]]) (:import java.io.FileNotFoundException java.net.URL [java.nio.file CopyOption Files FileSystem FileSystems LinkOption OpenOption Path StandardCopyOption] @@ -76,7 +74,7 @@ (defn- copy-file! [^Path source, ^Path dest] (when (or (not (exists? dest)) (pos? (.compareTo (last-modified-time source) (last-modified-time dest)))) - (du/profile (trs "Extract file {0} -> {1}" source dest) + (u/profile (trs "Extract file {0} -> {1}" source dest) (Files/copy source dest (u/varargs CopyOption [StandardCopyOption/REPLACE_EXISTING]))))) (defn copy-files! diff --git a/src/metabase/util/honeysql_extensions.clj b/src/metabase/util/honeysql_extensions.clj index 14368778be48040aef7895a65d069c9229a9c29a..61ede48659ef7d2887cae307d4965be4f1232436 100644 --- a/src/metabase/util/honeysql_extensions.clj +++ b/src/metabase/util/honeysql_extensions.clj @@ -1,22 +1,18 @@ (ns metabase.util.honeysql-extensions (:refer-clojure :exclude [+ - / * mod inc dec cast concat format]) - (:require [clojure.string :as str] + (:require [clojure + [pprint :as pprint] + [string :as str]] [honeysql [core :as hsql] [format :as hformat]] - [metabase - [config :as config] - [util :as u]] + [metabase.util :as u] [potemkin.types :as p.types] - [pretty.core :refer [PrettyPrintable]] + [pretty.core :as pretty :refer [PrettyPrintable]] [schema.core :as s]) (:import honeysql.format.ToSql java.util.Locale)) -(when config/is-dev? - (alter-meta! #'honeysql.core/format assoc :style/indent 1) - (alter-meta! #'honeysql.core/call assoc :style/indent 1)) - (defn- english-upper-case "Use this function when you need to upper-case an identifier or table name. Similar to `clojure.string/upper-case` but always converts the string to upper-case characters in the English locale. Using `clojure.string/upper-case` for @@ -84,9 +80,8 @@ (cons 'identifier (cons identifier-type components)))) ;; don't use `->Identifier` or `map->Identifier`. Use the `identifier` function instead, which cleans up its input -(when-not config/is-prod? - (alter-meta! #'->Identifier assoc :private true) - (alter-meta! #'map->Identifier assoc :private true)) +(alter-meta! #'->Identifier assoc :private true) +(alter-meta! #'map->Identifier assoc :private true) (s/defn identifier :- Identifier "Define an identifer of type with `components`. Prefer this to using keywords for identifiers, as those do not @@ -119,9 +114,8 @@ (list 'literal literal))) ;; as with `Identifier` you should use the the `literal` function below instead of the auto-generated factory functions. -(when-not config/is-prod? - (alter-meta! #'->Literal assoc :private true) - (alter-meta! #'map->Literal assoc :private true)) +(alter-meta! #'->Literal assoc :private true) +(alter-meta! #'map->Literal assoc :private true) (defn literal "Wrap keyword or string `s` in single quotes and a HoneySQL `raw` form. @@ -184,3 +178,22 @@ (def ^{:arglists '([& exprs])} quarter "SQL `quarter` function."(partial hsql/call :quarter)) (def ^{:arglists '([& exprs])} year "SQL `year` function." (partial hsql/call :year)) (def ^{:arglists '([& exprs])} concat "SQL `concat` function." (partial hsql/call :concat)) + +;; Etc (Dev Stuff) +(alter-meta! #'honeysql.core/format assoc :style/indent 1) +(alter-meta! #'honeysql.core/call assoc :style/indent 1) + +(require 'honeysql.types) +(extend-protocol PrettyPrintable + honeysql.types.SqlCall + (pretty [{fn-name :name, args :args, :as this}] + (with-meta (apply list 'hsql/call fn-name args) + (meta this)))) + +(defmethod print-method honeysql.types.SqlCall + [call writer] + (print-method (pretty/pretty call) writer)) + +(defmethod clojure.pprint/simple-dispatch honeysql.types.SqlCall + [call] + (clojure.pprint/write-out (pretty/pretty call))) diff --git a/src/metabase/util/stats.clj b/src/metabase/util/stats.clj index 2d9e5f27fc5c9cd576639d732a69a02b8fa8ac81..7ba410f5bbf83d246a922ff2ccd961250513e6ed 100644 --- a/src/metabase/util/stats.clj +++ b/src/metabase/util/stats.clj @@ -3,35 +3,21 @@ (:require [clj-http.client :as client] [clojure.string :as str] [clojure.tools.logging :as log] + [java-time :as t] [medley.core :as m] [metabase [config :as config] [driver :as driver] [email :as email] + [models :refer [Card Collection Dashboard DashboardCard Database Field Metric PermissionsGroup Pulse + PulseCard PulseChannel QueryCache QueryExecution Segment Table User]] [public-settings :as public-settings] [util :as u]] [metabase.api.session :as session-api] [metabase.integrations.slack :as slack] - [metabase.models - [card :refer [Card]] - [collection :refer [Collection]] - [dashboard :refer [Dashboard]] - [dashboard-card :refer [DashboardCard]] - [database :refer [Database]] - [field :refer [Field]] - [humanization :as humanization] - [metric :refer [Metric]] - [permissions-group :refer [PermissionsGroup]] - [pulse :refer [Pulse]] - [pulse-card :refer [PulseCard]] - [pulse-channel :refer [PulseChannel]] - [query-cache :refer [QueryCache]] - [query-execution :refer [QueryExecution]] - [segment :refer [Segment]] - [table :refer [Table]] - [user :refer [User]]] - [toucan.db :as db]) - (:import java.util.Date)) + [metabase.models.humanization :as humanization] + [metabase.util.i18n :refer [trs]] + [toucan.db :as db])) (defn- merge-count-maps "Merge sequence of maps `ms` by summing counts inside them. Non-integer values are allowed; truthy values are @@ -343,7 +329,7 @@ (update-in [:num_by_latency (bin-large-number (/ (:running_time execution) 1000))] u/safe-inc)))) (defn- summarize-executions-per-user - "Convert a map of USER-ID->NUM-EXECUTIONS to the histogram output format we expect." + "Convert a map of `user-id->num-executions` to the histogram output format we expect." [user-id->num-executions] (frequencies (map bin-large-number (vals user-id->num-executions)))) @@ -390,22 +376,23 @@ "generate a map of the usage stats for this instance" [] (merge (instance-settings) - {:uuid (public-settings/site-uuid) :timestamp (Date.)} - {:stats {:cache (cache-metrics) - :collection (collection-metrics) - :dashboard (dashboard-metrics) - :database (database-metrics) - :execution (execution-metrics) - :field (field-metrics) - :group (group-metrics) - :metric (metric-metrics) - :pulse (pulse-metrics) - :alert (alert-metrics) - :question (question-metrics) - :segment (segment-metrics) - :system (system-metrics) - :table (table-metrics) - :user (user-metrics)}})) + {:uuid (public-settings/site-uuid) + :timestamp (t/offset-date-time) + :stats {:cache (cache-metrics) + :collection (collection-metrics) + :dashboard (dashboard-metrics) + :database (database-metrics) + :execution (execution-metrics) + :field (field-metrics) + :group (group-metrics) + :metric (metric-metrics) + :pulse (pulse-metrics) + :alert (alert-metrics) + :question (question-metrics) + :segment (segment-metrics) + :system (system-metrics) + :table (table-metrics) + :user (user-metrics)}})) (defn- send-stats! @@ -414,7 +401,7 @@ (try (client/post metabase-usage-url {:form-params stats, :content-type :json, :throw-entire-message? true}) (catch Throwable e - (log/error "Sending usage stats FAILED:" (.getMessage e))))) + (log/error e (trs "Sending usage stats FAILED"))))) (defn phone-home-stats! diff --git a/src/metabase/util/ui_logic.clj b/src/metabase/util/ui_logic.clj index b7dbc35c3ba82d8ddd3583769cd8b6002e27c5c2..7ae2885679700c36b6cc34317039788c9348dd3d 100644 --- a/src/metabase/util/ui_logic.clj +++ b/src/metabase/util/ui_logic.clj @@ -14,7 +14,7 @@ (and (or (isa? base_type :type/Number) (isa? special_type :type/Number)) (not (isa? special_type :type/Special)) - (not (isa? special_type :type/DateTime)))) + (not (isa? special_type :type/Temporal)))) (defn- metric-column? "A metric column is any non-breakout column that is summable (numeric that isn't a special type like an FK/PK/Unix diff --git a/test/expectations.clj b/test/expectations.clj index 40bc2354b032b4973ece9e10e2fd1f7178ed5f21..7ee8e3678612e876810ce16e7589e65bb2d8205a 100644 --- a/test/expectations.clj +++ b/test/expectations.clj @@ -1,9 +1,11 @@ -(ns expectations +(ns ^:deprecated expectations (:require [clojure [data :as data] [test :as t]] [methodical.core :as m])) +(alter-meta! *ns* assoc :deprecated true) + ;; Basically a Chain of Responibility pattern: we try each impl in turn until one of them accepts the args and returns ;; a report (m/defmulti ^:private compare-expr* @@ -113,7 +115,6 @@ (t/do-report (compare-expr ~e a# ~msg '~form)))) - (defmacro ^:deprecated expect "Simple macro that simulates converts an Expectations-style `expect` form into a `clojure.test` `deftest` form." {:arglists '([actual] [actual expected] [test-name actual expected])} diff --git a/test/metabase/api/activity_test.clj b/test/metabase/api/activity_test.clj index 1de5071a5696b0ea4a4a1070da00a22a8f065f5d..c28d5b021e537b4f5481dfc7cba57b5296c1f5b0 100644 --- a/test/metabase/api/activity_test.clj +++ b/test/metabase/api/activity_test.clj @@ -2,6 +2,9 @@ "Tests for /api/activity endpoints." (:require [clojure.test :refer :all] [expectations :refer [expect]] + [metabase + [db :as mdb] + [util :as u]] [metabase.api.activity :as activity-api] [metabase.models [activity :refer [Activity]] @@ -10,8 +13,6 @@ [view-log :refer [ViewLog]]] [metabase.test.data.users :as test-users] [metabase.test.fixtures :as fixtures] - [metabase.util :as u] - [metabase.util.date :as du] [toucan.db :as db] [toucan.util.test :as tt])) @@ -39,44 +40,45 @@ [:common_name :date_joined :email :first_name :is_qbnewb :is_superuser :last_login :last_name]))) ;; NOTE: timestamp matching was being a real PITA so I cheated a bit. ideally we'd fix that -(tt/expect-with-temp [Activity [activity1 {:topic "install" - :details {} - :timestamp (du/->Timestamp #inst "2015-09-09T12:13:14.888Z")}] - Activity [activity2 {:topic "dashboard-create" - :user_id (test-users/user->id :crowberto) - :model "dashboard" - :model_id 1234 - :details {:description "Because I can!" - :name "Bwahahaha"} - :timestamp (du/->Timestamp #inst "2015-09-10T18:53:01.632Z")}] - Activity [activity3 {:topic "user-joined" - :user_id (test-users/user->id :rasta) - :model "user" - :details {} - :timestamp (du/->Timestamp #inst "2015-09-10T05:33:43.641Z")}]] - (let [activity-ids (fn [activity] - (db/select-one [Activity :id :user_id :details :model :model_id] :id (u/get-id activity)))] - [(merge - activity-defaults - (activity-ids activity2) - {:topic "dashboard-create" - :user (activity-user-info :crowberto)}) - (merge - activity-defaults - (activity-ids activity3) - {:topic "user-joined" - :user (activity-user-info :rasta)}) - (merge - activity-defaults - (activity-ids activity1) - {:topic "install" - :user_id nil - :user nil})]) - ;; remove other activities from the API response just in case -- we're not interested in those - (let [these-activity-ids #{(u/get-id activity1) (u/get-id activity2) (u/get-id activity3)}] - (for [activity ((test-users/user->client :crowberto) :get 200 "activity") - :when (contains? these-activity-ids (u/get-id activity))] - (dissoc activity :timestamp)))) +(deftest activity-list-test + (testing "GET /api/activity" + (tt/with-temp* [Activity [activity1 {:topic "install" + :details {} + :timestamp #t "2015-09-09T12:13:14.888Z[UTC]"}] + Activity [activity2 {:topic "dashboard-create" + :user_id (test-users/user->id :crowberto) + :model "dashboard" + :model_id 1234 + :details {:description "Because I can!" + :name "Bwahahaha"} + :timestamp #t "2015-09-10T18:53:01.632Z[UTC]"}] + Activity [activity3 {:topic "user-joined" + :user_id (test-users/user->id :rasta) + :model "user" + :details {} + :timestamp #t "2015-09-10T05:33:43.641Z[UTC]"}]] + (is (= (letfn [(fetch-activity [activity] + (merge + activity-defaults + (db/select-one [Activity :id :user_id :details :model :model_id] :id (u/get-id activity))))] + [(merge + (fetch-activity activity2) + {:topic "dashboard-create" + :user (activity-user-info :crowberto)}) + (merge + (fetch-activity activity3) + {:topic "user-joined" + :user (activity-user-info :rasta)}) + (merge + (fetch-activity activity1) + {:topic "install" + :user_id nil + :user nil})]) + ;; remove other activities from the API response just in case -- we're not interested in those + (let [these-activity-ids (set (map u/get-id [activity1 activity2 activity3]))] + (for [activity ((test-users/user->client :crowberto) :get 200 "activity") + :when (contains? these-activity-ids (u/get-id activity))] + (dissoc activity :timestamp)))))))) ;;; GET /recent_views @@ -92,59 +94,59 @@ :user_id user :model model :model_id model-id - :timestamp (du/new-sql-timestamp)) + :timestamp :%now) ;; we sleep a bit to ensure no events have the same timestamp ;; sadly, MySQL doesn't support milliseconds so we have to wait a second ;; otherwise our records are out of order and this test fails :( - (Thread/sleep 1000)) - -(tt/expect-with-temp [Card [card1 {:name "rand-name" - :creator_id (test-users/user->id :crowberto) - :display "table" - :dataset_query {} - :visualization_settings {}}] - Dashboard [dash1 {:name "rand-name" - :description "rand-name" - :creator_id (test-users/user->id :crowberto)}] - Card [card2 {:name "rand-name" - :creator_id (test-users/user->id :crowberto) - :display "table" - :dataset_query {} - :visualization_settings {}}]] - [{:cnt 1 - :user_id (test-users/user->id :crowberto) - :model "card" - :model_id (:id card1) - :model_object {:id (:id card1) - :name (:name card1) - :collection_id nil - :description (:description card1) - :display (name (:display card1))}} - {:cnt 1 - :user_id (test-users/user->id :crowberto) - :model "dashboard" - :model_id (:id dash1) - :model_object {:id (:id dash1) - :name (:name dash1) - :collection_id nil - :description (:description dash1)}} - {:cnt 1 - :user_id (test-users/user->id :crowberto) - :model "card" - :model_id (:id card2) - :model_object {:id (:id card2) - :name (:name card2) - :collection_id nil - :description (:description card2) - :display (name (:display card2))}}] - (do + (Thread/sleep (if (= (mdb/db-type) :mysql) + 1000 + 10))) + +(deftest recent-views-test + (tt/with-temp* [Card [card1 {:name "rand-name" + :creator_id (test-users/user->id :crowberto) + :display "table" + :visualization_settings {}}] + Dashboard [dash1 {:name "rand-name" + :description "rand-name" + :creator_id (test-users/user->id :crowberto)}] + Card [card2 {:name "rand-name" + :creator_id (test-users/user->id :crowberto) + :display "table" + :visualization_settings {}}]] (create-view! (test-users/user->id :crowberto) "card" (:id card2)) (create-view! (test-users/user->id :crowberto) "dashboard" (:id dash1)) (create-view! (test-users/user->id :crowberto) "card" (:id card1)) (create-view! (test-users/user->id :crowberto) "card" 36478) (create-view! (test-users/user->id :rasta) "card" (:id card1)) - (for [recent-view ((test-users/user->client :crowberto) :get 200 "activity/recent_views")] - (dissoc recent-view :max_ts)))) + (is (= [{:cnt 1 + :user_id (test-users/user->id :crowberto) + :model "card" + :model_id (:id card1) + :model_object {:id (:id card1) + :name (:name card1) + :collection_id nil + :description (:description card1) + :display (name (:display card1))}} + {:cnt 1 + :user_id (test-users/user->id :crowberto) + :model "dashboard" + :model_id (:id dash1) + :model_object {:id (:id dash1) + :name (:name dash1) + :collection_id nil + :description (:description dash1)}} + {:cnt 1 + :user_id (test-users/user->id :crowberto) + :model "card" + :model_id (:id card2) + :model_object {:id (:id card2) + :name (:name card2) + :collection_id nil + :description (:description card2) + :display (name (:display card2))}}] + (for [recent-view ((test-users/user->client :crowberto) :get 200 "activity/recent_views")] + (dissoc recent-view :max_ts)))))) ;;; activities->referenced-objects, referenced-objects->existing-objects, add-model-exists-info @@ -188,16 +190,21 @@ {:model "dashboard", :model_id 0, :topic :dashboard-remove-cards, :details {:dashcards [{:card_id card-id} {:card_id 0}]}}])) -;; Only admins should get to see user-joined activities (defn- user-can-see-user-joined-activity? [user] ;; clear out all existing Activity entries (db/delete! Activity) (-> (tt/with-temp Activity [activity {:topic "user-joined" :details {} - :timestamp (du/->Timestamp #inst "2019-02-15T11:55:00.000Z")}] + :timestamp #t "2019-02-15T11:55:00.000Z"}] ((test-users/user->client user) :get 200 "activity")) seq boolean)) -(expect true (user-can-see-user-joined-activity? :crowberto)) -(expect false (user-can-see-user-joined-activity? :rasta)) +(deftest activity-visibility-test + (testing "Only admins should get to see user-joined activities" + (is (= true + (user-can-see-user-joined-activity? :crowberto)) + "admin should see `:user-joined` activities") + (is (= false + (user-can-see-user-joined-activity? :rasta)) + "non-admin should *not* see `:user-joined` activities"))) diff --git a/test/metabase/api/alert_test.clj b/test/metabase/api/alert_test.clj index 7fd652707c7f36635c0d892116386e953f08f5b6..aa43a65e48a90ce8507129a86c5f715c45755808 100644 --- a/test/metabase/api/alert_test.clj +++ b/test/metabase/api/alert_test.clj @@ -53,6 +53,7 @@ (defn- default-email-channel ([pulse-card] (default-email-channel pulse-card [(fetch-user :rasta)])) + ([pulse-card recipients] {:id pulse-card :enabled true diff --git a/test/metabase/api/card_test.clj b/test/metabase/api/card_test.clj index 791a945d20f4d3a8f17c4b1010eec0ddf2c31eec..2a82679af786deff25ca88743daf2009c3b2a944 100644 --- a/test/metabase/api/card_test.clj +++ b/test/metabase/api/card_test.clj @@ -2,8 +2,9 @@ "Tests for /api/card endpoints." (:require [cheshire.core :as json] [clojure.data.csv :as csv] + [clojure.test :refer :all] [dk.ative.docjure.spreadsheet :as spreadsheet] - [expectations :refer :all] + [expectations :refer [expect]] [medley.core :as m] [metabase [email-test :as et] @@ -33,7 +34,6 @@ [data :as data] [util :as tu]] [metabase.test.data.users :as test-users] - [metabase.util.date :as du] [toucan.db :as db] [toucan.util.test :as tt]) (:import java.io.ByteArrayInputStream @@ -47,13 +47,14 @@ {:archived false :collection_id nil :collection_position nil + :dataset_query {} :description nil :display "scalar" :enable_embedding false :embedding_params nil :made_public_by_id nil :public_uuid nil - :query_type "query" + :query_type nil :cache_ttl nil :result_metadata nil}) @@ -207,15 +208,15 @@ ;; 3 was viewed most recently, followed by 4, then 1. Card 2 was viewed by a different user so ;; shouldn't be returned ViewLog [_ {:model "card", :model_id (u/get-id card-1), :user_id (test-users/user->id :rasta) - :timestamp (du/->Timestamp #inst "2015-12-01")}] + :timestamp #t "2015-12-01"}] ViewLog [_ {:model "card", :model_id (u/get-id card-2), :user_id (test-users/user->id :trashbird) - :timestamp (du/->Timestamp #inst "2016-01-01")}] + :timestamp #t "2016-01-01"}] ViewLog [_ {:model "card", :model_id (u/get-id card-3), :user_id (test-users/user->id :rasta) - :timestamp (du/->Timestamp #inst "2016-02-01")}] + :timestamp #t "2016-02-01"}] ViewLog [_ {:model "card", :model_id (u/get-id card-4), :user_id (test-users/user->id :rasta) - :timestamp (du/->Timestamp #inst "2016-03-01")}] + :timestamp #t "2016-03-01"}] ViewLog [_ {:model "card", :model_id (u/get-id card-3), :user_id (test-users/user->id :rasta) - :timestamp (du/->Timestamp #inst "2016-04-01")}]] + :timestamp #t "2016-04-01"}]] (with-cards-in-readable-collection [card-1 card-2 card-3 card-4] (map :name ((test-users/user->client :rasta) :get 200 "card", :f :recent))))) @@ -274,6 +275,7 @@ :collection true :creator_id (test-users/user->id :rasta) :dataset_query true + :query_type "query" :visualization_settings {:global {:title nil}} :database_id true :table_id true @@ -496,6 +498,7 @@ :dataset_query (tu/obj->json->obj (:dataset_query card)) :read_permissions nil :display "table" + :query_type "query" :visualization_settings {} :can_write true :database_id (u/get-id db) ; these should be inferred from the dataset_query @@ -954,91 +957,77 @@ ;;; +----------------------------------------------------------------------------------------------------------------+ (defn- rasta-alert-not-working [body-map] - (et/email-to :rasta {:subject "One of your alerts has stopped working", - :body body-map})) + (et/email-to :rasta {:subject "One of your alerts has stopped working" + :body body-map})) (defn- crowberto-alert-not-working [body-map] - (et/email-to :crowberto {:subject "One of your alerts has stopped working", - :body body-map})) - -;; Validate archiving a card trigers alert deletion -(expect - {:emails (merge (crowberto-alert-not-working {"the question was archived by Rasta Toucan" true}) - (rasta-alert-not-working {"the question was archived by Rasta Toucan" true})) - :pulse nil} - (tt/with-temp* [Card [card] - Pulse [pulse {:alert_condition "rows" - :alert_first_only false - :creator_id (test-users/user->id :rasta) - :name "Original Alert Name"}] - - PulseCard [_ {:pulse_id (u/get-id pulse) - :card_id (u/get-id card) - :position 0}] - PulseChannel [pc {:pulse_id (u/get-id pulse)}] - PulseChannelRecipient [_ {:user_id (test-users/user->id :crowberto) - :pulse_channel_id (u/get-id pc)}] - PulseChannelRecipient [_ {:user_id (test-users/user->id :rasta) - :pulse_channel_id (u/get-id pc)}]] - (with-cards-in-writeable-collection card - (et/with-fake-inbox - (et/with-expected-messages 2 - ((test-users/user->client :rasta) :put 200 (str "card/" (u/get-id card)) {:archived true})) - (array-map - :emails (et/regex-email-bodies #"the question was archived by Rasta Toucan") - :pulse (Pulse (u/get-id pulse))))))) - -;; Validate changing a display type trigers alert deletion -(expect - {:emails (merge (crowberto-alert-not-working {"the question was edited by Rasta Toucan" true}) - (rasta-alert-not-working {"the question was edited by Rasta Toucan" true})) - - :pulse nil} - (tt/with-temp* [Card [card {:display :table}] - Pulse [pulse {:alert_condition "rows" - :alert_first_only false - :creator_id (test-users/user->id :rasta) - :name "Original Alert Name"}] - - PulseCard [_ {:pulse_id (u/get-id pulse) - :card_id (u/get-id card) - :position 0}] - PulseChannel [pc {:pulse_id (u/get-id pulse)}] - PulseChannelRecipient [_ {:user_id (test-users/user->id :crowberto) - :pulse_channel_id (u/get-id pc)}] - PulseChannelRecipient [_ {:user_id (test-users/user->id :rasta) - :pulse_channel_id (u/get-id pc)}]] - (with-cards-in-writeable-collection card - (et/with-fake-inbox - (et/with-expected-messages 2 - ((test-users/user->client :rasta) :put 200 (str "card/" (u/get-id card)) {:display :line})) - (array-map - :emails (et/regex-email-bodies #"the question was edited by Rasta Toucan") - :pulse (Pulse (u/get-id pulse))))))) - -;; Changing the display type from line to table should force a delete -(expect - {:emails (rasta-alert-not-working {"the question was edited by Rasta Toucan" true}) - :pulse nil} - (tt/with-temp* [Card [card {:display :line - :visualization_settings {:graph.goal_value 10}}] - Pulse [pulse {:alert_condition "goal" - :alert_first_only false - :creator_id (test-users/user->id :rasta) - :name "Original Alert Name"}] - PulseCard [_ {:pulse_id (u/get-id pulse) - :card_id (u/get-id card) - :position 0}] - PulseChannel [pc {:pulse_id (u/get-id pulse)}] - PulseChannelRecipient [_ {:user_id (test-users/user->id :rasta) - :pulse_channel_id (u/get-id pc)}]] - (with-cards-in-writeable-collection card - (et/with-fake-inbox - (et/with-expected-messages 1 - ((test-users/user->client :rasta) :put 200 (str "card/" (u/get-id card)) {:display :table})) - (array-map - :emails (et/regex-email-bodies #"the question was edited by Rasta Toucan") - :pulse (Pulse (u/get-id pulse))))))) + (et/email-to :crowberto {:subject "One of your alerts has stopped working" + :body body-map})) + +(deftest alert-deletion-test + (doseq [{:keys [message card expected-email f]} + [{:message "Archiving a Card should trigger Alert deletion" + :expected-email "the question was archived by Rasta Toucan" + :f (fn [{:keys [card]}] + ((test-users/user->client :rasta) :put 200 (str "card/" (u/get-id card)) {:archived true}))} + {:message "Validate changing a display type triggers alert deletion" + :card {:display :table} + :expected-email "the question was edited by Rasta Toucan" + :f (fn [{:keys [card]}] + ((test-users/user->client :rasta) :put 200 (str "card/" (u/get-id card)) {:display :line}))} + {:message "Changing the display type from line to table should force a delete" + :card {:display :line} + :expected-email "the question was edited by Rasta Toucan" + :f (fn [{:keys [card]}] + ((test-users/user->client :rasta) :put 200 (str "card/" (u/get-id card)) {:display :table}))} + {:message "Removing the goal value will trigger the alert to be deleted" + :card {:display :line + :visualization_settings {:graph.goal_value 10}} + :expected-email "the question was edited by Rasta Toucan" + :f (fn [{:keys [card]}] + ((test-users/user->client :rasta) :put 200 (str "card/" (u/get-id card)) {:visualization_settings {:something "else"}}))} + {:message "Adding an additional breakout will cause the alert to be removed" + :card {:display :line + :visualization_settings {:graph.goal_value 10} + :dataset_query (assoc-in + (mbql-count-query (data/id) (data/id :checkins)) + [:query :breakout] + [["datetime-field" + (data/id :checkins :date) + "hour"]])} + :expected-email "the question was edited by Crowberto Corv" + :f (fn [{:keys [card]}] + ((test-users/user->client :crowberto) :put 200 (str "card/" (u/get-id card)) + {:dataset_query (assoc-in (mbql-count-query (data/id) (data/id :checkins)) + [:query :breakout] [[:datetime-field (data/id :checkins :date) "hour"] + [:datetime-field (data/id :checkins :date) "minute"]])}))}]] + (testing message + (tt/with-temp* [Card [card card] + Pulse [pulse {:alert_condition "rows" + :alert_first_only false + :creator_id (test-users/user->id :rasta) + :name "Original Alert Name"}] + + PulseCard [_ {:pulse_id (u/get-id pulse) + :card_id (u/get-id card) + :position 0}] + PulseChannel [pc {:pulse_id (u/get-id pulse)}] + PulseChannelRecipient [_ {:user_id (test-users/user->id :crowberto) + :pulse_channel_id (u/get-id pc)}] + PulseChannelRecipient [_ {:user_id (test-users/user->id :rasta) + :pulse_channel_id (u/get-id pc)}]] + (with-cards-in-writeable-collection card + (et/with-fake-inbox + (metabase.util/with-timeout 5000 + (et/with-expected-messages 2 + (f {:card card}))) + (is (= (merge (crowberto-alert-not-working {expected-email true}) + (rasta-alert-not-working {expected-email true})) + (et/regex-email-bodies (re-pattern expected-email))) + (format "Email containing %s should have been sent to Crowberto and Rasta" (pr-str expected-email))) + (is (= nil + (Pulse (u/get-id pulse))) + "Alert should have been deleted"))))))) ;; Changing the display type from line to area/bar is fine and doesn't delete the alert (expect @@ -1070,62 +1059,6 @@ (et/regex-email-bodies #"the question was edited by Rasta Toucan")) :pulse-2 (boolean (Pulse (u/get-id pulse)))))))) -;; Removing the goal value will trigger the alert to be deleted -(expect - {:emails (rasta-alert-not-working {"the question was edited by Rasta Toucan" true}) - :pulse nil} - (tt/with-temp* [Card [card {:display :line - :visualization_settings {:graph.goal_value 10}}] - Pulse [pulse {:alert_condition "goal" - :alert_first_only false - :creator_id (test-users/user->id :rasta) - :name "Original Alert Name"}] - PulseCard [_ {:pulse_id (u/get-id pulse) - :card_id (u/get-id card) - :position 0}] - PulseChannel [pc {:pulse_id (u/get-id pulse)}] - PulseChannelRecipient [pcr {:user_id (test-users/user->id :rasta) - :pulse_channel_id (u/get-id pc)}]] - (with-cards-in-writeable-collection card - (et/with-fake-inbox - (et/with-expected-messages 1 - ((test-users/user->client :rasta) :put 200 (str "card/" (u/get-id card)) {:visualization_settings {:something "else"}})) - (array-map - :emails (et/regex-email-bodies #"the question was edited by Rasta Toucan") - :pulse (Pulse (u/get-id pulse))))))) - -;; Adding an additional breakout will cause the alert to be removed -(expect - {:emails (rasta-alert-not-working {"the question was edited by Crowberto Corv" true}) - :pulse nil} - (tt/with-temp* [Card [card {:display :line - :visualization_settings {:graph.goal_value 10} - :dataset_query (assoc-in - (mbql-count-query (data/id) (data/id :checkins)) - [:query :breakout] - [["datetime-field" - (data/id :checkins :date) - "hour"]])}] - Pulse [pulse {:alert_condition "goal" - :alert_first_only false - :creator_id (test-users/user->id :rasta) - :name "Original Alert Name"}] - PulseCard [_ {:pulse_id (u/get-id pulse) - :card_id (u/get-id card) - :position 0}] - PulseChannel [pc {:pulse_id (u/get-id pulse)}] - PulseChannelRecipient [pcr {:user_id (test-users/user->id :rasta) - :pulse_channel_id (u/get-id pc)}]] - (et/with-fake-inbox - (et/with-expected-messages 1 - ((test-users/user->client :crowberto) :put 200 (str "card/" (u/get-id card)) - {:dataset_query (assoc-in (mbql-count-query (data/id) (data/id :checkins)) - [:query :breakout] [["datetime-field" (data/id :checkins :date) "hour"] - ["datetime-field" (data/id :checkins :date) "minute"]])})) - (array-map - :emails (et/regex-email-bodies #"the question was edited by Crowberto Corv") - :pulse (Pulse (u/get-id pulse)))))) - ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | DELETING A CARD (DEPRECATED) | ;;; +----------------------------------------------------------------------------------------------------------------+ diff --git a/test/metabase/api/dashboard_test.clj b/test/metabase/api/dashboard_test.clj index 07a4e9dc0f94ac96bc25f99f1fd33a82eac6581c..570d4dcd6773bedda143f394d332c01a705c6b24 100644 --- a/test/metabase/api/dashboard_test.clj +++ b/test/metabase/api/dashboard_test.clj @@ -1,7 +1,10 @@ (ns metabase.api.dashboard-test "Tests for /api/dashboard endpoints." - (:require [clojure.walk :as walk] - [expectations :refer :all] + (:require [clojure + [string :as str] + [test :refer :all] + [walk :as walk]] + [expectations :refer [expect]] [medley.core :as m] [metabase [http-client :as http] @@ -33,19 +36,21 @@ ;;; | Helper Fns & Macros | ;;; +----------------------------------------------------------------------------------------------------------------+ -(defn- remove-ids-and-booleanize-timestamps [m] - (let [f (fn [v] - (cond - (map? v) (remove-ids-and-booleanize-timestamps v) - (coll? v) (mapv remove-ids-and-booleanize-timestamps v) - :else v))] - (into {} (for [[k v] m] +(defn- remove-ids-and-booleanize-timestamps [x] + (cond + (map? x) + (into {} (for [[k v] x] (when-not (or (= :id k) - (.endsWith (name k) "_id")) - (if (or (= :created_at k) - (= :updated_at k)) + (str/ends-with? k "_id")) + (if (#{:created_at :updated_at} k) [k (boolean v)] - [k (f v)])))))) + [k (remove-ids-and-booleanize-timestamps v)])))) + + (coll? x) + (mapv remove-ids-and-booleanize-timestamps x) + + :else + x)) (defn- user-details [user] (select-keys user [:common_name :date_joined :email :first_name :id :is_qbnewb :is_superuser :last_login :last_name])) @@ -195,8 +200,6 @@ :creator_id (user->id :rasta) :collection_id true :display "table" - :query_type nil - :dataset_query {} :read_permissions nil :visualization_settings {} :result_metadata nil}) @@ -231,8 +234,9 @@ :display_name display-name :base_type "type/Text" :special_type nil - :has_field_values "search" :name_field nil - :dimensions ()}} + :has_field_values "search" + :name_field nil + :dimensions []}} :ordered_cards [{:sizeX 2 :sizeY 2 :col 0 @@ -249,7 +253,6 @@ :collection_id true :display "table" :query_type nil - :dataset_query {} :read_permissions nil :visualization_settings {} :result_metadata nil}) @@ -647,61 +650,40 @@ ;;; | POST /api/dashboard/:id/cards | ;;; +----------------------------------------------------------------------------------------------------------------+ -;; simple creation with no additional series -(expect - {1 {:sizeX 2 - :sizeY 2 - :col 4 - :row 4 - :series [] - :parameter_mappings [{:card-id 123, :hash "abc", :target "foo"}] - :visualization_settings {} - :created_at true - :updated_at true} - 2 [{:sizeX 2 - :sizeY 2 - :col 4 - :row 4 - :parameter_mappings [{:card-id 123, :hash "abc", :target "foo"}] - :visualization_settings {}}]} +(deftest simple-creation-with-no-additional-series-test (tt/with-temp* [Dashboard [{dashboard-id :id}] Card [{card-id :id}]] (with-dashboards-in-writeable-collection [dashboard-id] (card-api-test/with-cards-in-readable-collection [card-id] - (array-map - 1 (-> ((user->client :rasta) :post 200 (format "dashboard/%d/cards" dashboard-id) - {:cardId card-id - :row 4 + (is (= {:sizeX 2 + :sizeY 2 + :col 4 + :row 4 + :series [] + :parameter_mappings [{:card-id 123, :hash "abc", :target "foo"}] + :visualization_settings {} + :created_at true + :updated_at true} + (-> ((user->client :rasta) :post 200 (format "dashboard/%d/cards" dashboard-id) + {:cardId card-id + :row 4 + :col 4 + :parameter_mappings [{:card-id 123, :hash "abc", :target "foo"}] + :visualization_settings {}}) + (dissoc :id :dashboard_id :card_id) + (update :created_at boolean) + (update :updated_at boolean)))) + (is (= [{:sizeX 2 + :sizeY 2 :col 4 + :row 4 :parameter_mappings [{:card-id 123, :hash "abc", :target "foo"}] - :visualization_settings {}}) - (dissoc :id :dashboard_id :card_id) - (update :created_at boolean) - (update :updated_at boolean)) - 2 (map (partial into {}) - (db/select [DashboardCard :sizeX :sizeY :col :row :parameter_mappings :visualization_settings] - :dashboard_id dashboard-id))))))) - -;; new dashboard card w/ additional series -(expect - {1 {:sizeX 2 - :sizeY 2 - :col 4 - :row 4 - :parameter_mappings [] - :visualization_settings {} - :series [{:name "Series Card" - :description nil - :display "table" - :dataset_query {} - :visualization_settings {}}] - :created_at true - :updated_at true} - 2 [{:sizeX 2 - :sizeY 2 - :col 4 - :row 4}] - 3 #{0}} + :visualization_settings {}}] + (map (partial into {}) + (db/select [DashboardCard :sizeX :sizeY :col :row :parameter_mappings :visualization_settings] + :dashboard_id dashboard-id)))))))) + +(deftest new-dashboard-card-with-additional-series-test (tt/with-temp* [Dashboard [{dashboard-id :id}] Card [{card-id :id}] Card [{series-id-1 :id} {:name "Series Card"}]] @@ -712,105 +694,123 @@ :row 4 :col 4 :series [{:id series-id-1}]})] - (array-map - 1 (remove-ids-and-booleanize-timestamps dashboard-card) - 2 (map (partial into {}) - (db/select [DashboardCard :sizeX :sizeY :col :row], :dashboard_id dashboard-id)) - 3 (db/select-field :position DashboardCardSeries, :dashboardcard_id (:id dashboard-card)))))))) + (is (= {:sizeX 2 + :sizeY 2 + :col 4 + :row 4 + :parameter_mappings [] + :visualization_settings {} + :series [{:name "Series Card" + :description nil + :dataset_query (:dataset_query card-api-test/card-defaults) + :display "table" + :visualization_settings {}}] + :created_at true + :updated_at true} + (remove-ids-and-booleanize-timestamps dashboard-card))) + (is (= [{:sizeX 2 + :sizeY 2 + :col 4 + :row 4}] + (map (partial into {}) + (db/select [DashboardCard :sizeX :sizeY :col :row], :dashboard_id dashboard-id)))) + (is (= #{0} + (db/select-field :position DashboardCardSeries, :dashboardcard_id (:id dashboard-card))))))))) ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | DELETE /api/dashboard/:id/cards | ;;; +----------------------------------------------------------------------------------------------------------------+ -(expect - {1 1 - 2 {:success true} - 3 0} - ;; fetch a dashboard WITH a dashboard card on it - (tt/with-temp* [Dashboard [{dashboard-id :id}] - Card [{card-id :id}] - Card [{series-id-1 :id}] - Card [{series-id-2 :id}] - DashboardCard [{dashcard-id :id} {:dashboard_id dashboard-id, :card_id card-id}] - DashboardCardSeries [_ {:dashboardcard_id dashcard-id, :card_id series-id-1, :position 0}] - DashboardCardSeries [_ {:dashboardcard_id dashcard-id, :card_id series-id-2, :position 1}]] - (with-dashboards-in-writeable-collection [dashboard-id] - (array-map - 1 (count (db/select-ids DashboardCard, :dashboard_id dashboard-id)) - 2 ((user->client :rasta) :delete 200 (format "dashboard/%d/cards" dashboard-id) :dashcardId dashcard-id) - 3 (count (db/select-ids DashboardCard, :dashboard_id dashboard-id)))))) +(deftest delete-cards-test + (testing "DELETE /api/dashboard/id/:cards" + ;; fetch a dashboard WITH a dashboard card on it + (tt/with-temp* [Dashboard [{dashboard-id :id}] + Card [{card-id :id}] + Card [{series-id-1 :id}] + Card [{series-id-2 :id}] + DashboardCard [{dashcard-id :id} {:dashboard_id dashboard-id, :card_id card-id}] + DashboardCardSeries [_ {:dashboardcard_id dashcard-id, :card_id series-id-1, :position 0}] + DashboardCardSeries [_ {:dashboardcard_id dashcard-id, :card_id series-id-2, :position 1}]] + (with-dashboards-in-writeable-collection [dashboard-id] + (is (= 1 + (count (db/select-ids DashboardCard, :dashboard_id dashboard-id)))) + (is (= {:success true} + ((user->client :rasta) :delete 200 (format "dashboard/%d/cards" dashboard-id) :dashcardId dashcard-id))) + (is (= 0 + (count (db/select-ids DashboardCard, :dashboard_id dashboard-id)))))))) ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | PUT /api/dashboard/:id/cards | ;;; +----------------------------------------------------------------------------------------------------------------+ -(expect - {1 [{:sizeX 2 - :sizeY 2 - :col 0 - :row 0 - :series [] - :parameter_mappings [] - :visualization_settings {} - :created_at true - :updated_at true} - {:sizeX 2 - :sizeY 2 - :col 0 - :row 0 - :parameter_mappings [] - :visualization_settings {} - :series [] - :created_at true - :updated_at true}] - 2 {:status "ok"} - 3 [{:sizeX 4 - :sizeY 2 - :col 0 - :row 0 - :parameter_mappings [] - :visualization_settings {} - :series [{:name "Series Card" - :description nil - :display :table - :dataset_query {} - :visualization_settings {}}] - :created_at true - :updated_at true} - {:sizeX 1 - :sizeY 1 - :col 1 - :row 3 - :parameter_mappings [] - :visualization_settings {} - :series [] - :created_at true - :updated_at true}]} - ;; fetch a dashboard WITH a dashboard card on it - (tt/with-temp* [Dashboard [{dashboard-id :id}] - Card [{card-id :id}] - DashboardCard [{dashcard-id-1 :id} {:dashboard_id dashboard-id, :card_id card-id}] - DashboardCard [{dashcard-id-2 :id} {:dashboard_id dashboard-id, :card_id card-id}] - Card [{series-id-1 :id} {:name "Series Card"}]] - (with-dashboards-in-writeable-collection [dashboard-id] - (array-map - 1 [(remove-ids-and-booleanize-timestamps (retrieve-dashboard-card dashcard-id-1)) - (remove-ids-and-booleanize-timestamps (retrieve-dashboard-card dashcard-id-2))] - 2 ((user->client :rasta) :put 200 (format "dashboard/%d/cards" dashboard-id) {:cards [{:id dashcard-id-1 - :sizeX 4 - :sizeY 2 - :col 0 - :row 0 - :series [{:id series-id-1}]} - {:id dashcard-id-2 - :sizeX 1 - :sizeY 1 - :col 1 - :row 3}]}) - 3 [(remove-ids-and-booleanize-timestamps (retrieve-dashboard-card dashcard-id-1)) - (remove-ids-and-booleanize-timestamps (retrieve-dashboard-card dashcard-id-2))])))) +(deftest update-cards-test + (testing "PUT /api/dashboard/:id/cards" + ;; fetch a dashboard WITH a dashboard card on it + (tt/with-temp* [Dashboard [{dashboard-id :id}] + Card [{card-id :id}] + DashboardCard [{dashcard-id-1 :id} {:dashboard_id dashboard-id, :card_id card-id}] + DashboardCard [{dashcard-id-2 :id} {:dashboard_id dashboard-id, :card_id card-id}] + Card [{series-id-1 :id} {:name "Series Card"}]] + (with-dashboards-in-writeable-collection [dashboard-id] + (is (= {:sizeX 2 + :sizeY 2 + :col 0 + :row 0 + :series [] + :parameter_mappings [] + :visualization_settings {} + :created_at true + :updated_at true} + (remove-ids-and-booleanize-timestamps (retrieve-dashboard-card dashcard-id-1)))) + (is (= {:sizeX 2 + :sizeY 2 + :col 0 + :row 0 + :parameter_mappings [] + :visualization_settings {} + :series [] + :created_at true + :updated_at true} + (remove-ids-and-booleanize-timestamps (retrieve-dashboard-card dashcard-id-2)))) + (is (= {:status "ok"} + ((user->client :rasta) :put 200 (format "dashboard/%d/cards" dashboard-id) + {:cards [{:id dashcard-id-1 + :sizeX 4 + :sizeY 2 + :col 0 + :row 0 + :series [{:id series-id-1}]} + {:id dashcard-id-2 + :sizeX 1 + :sizeY 1 + :col 1 + :row 3}]}))) + (is (= {:sizeX 4 + :sizeY 2 + :col 0 + :row 0 + :parameter_mappings [] + :visualization_settings {} + :series [{:name "Series Card" + :description nil + :display :table + :dataset_query {} + :visualization_settings {}}] + :created_at true + :updated_at true} + (remove-ids-and-booleanize-timestamps (retrieve-dashboard-card dashcard-id-1)))) + (is (= {:sizeX 1 + :sizeY 1 + :col 1 + :row 3 + :parameter_mappings [] + :visualization_settings {} + :series [] + :created_at true + :updated_at true} + (remove-ids-and-booleanize-timestamps (retrieve-dashboard-card dashcard-id-2)))))))) ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -869,71 +869,64 @@ ;;; | POST /api/dashboard/:id/revert | ;;; +----------------------------------------------------------------------------------------------------------------+ -(expect {:errors {:revision_id "value must be an integer greater than zero."}} - ((user->client :crowberto) :post 400 "dashboard/1/revert" {})) - -(expect {:errors {:revision_id "value must be an integer greater than zero."}} - ((user->client :crowberto) :post 400 "dashboard/1/revert" {:revision_id "foobar"})) - - -(expect - {:response - {:is_reversion true - :is_creation false - :message nil - :user (-> (user-details (fetch-user :crowberto)) - (dissoc :email :date_joined :last_login :is_superuser :is_qbnewb)) - :diff {:before {:name "b"} - :after {:name "a"}} - :description "renamed it from \"b\" to \"a\"."} - - :revisions - [{:is_reversion true - :is_creation false - :message nil - :user (-> (user-details (fetch-user :crowberto)) - (dissoc :email :date_joined :last_login :is_superuser :is_qbnewb)) - :diff {:before {:name "b"} - :after {:name "a"}} - :description "renamed it from \"b\" to \"a\"."} - {:is_reversion false - :is_creation false - :message "updated" - :user (-> (user-details (fetch-user :crowberto)) - (dissoc :email :date_joined :last_login :is_superuser :is_qbnewb)) - :diff {:before {:name "a"} - :after {:name "b"}} - :description "renamed it from \"a\" to \"b\"."} - {:is_reversion false - :is_creation true - :message nil - :user (-> (user-details (fetch-user :rasta)) - (dissoc :email :date_joined :last_login :is_superuser :is_qbnewb)) - :diff nil - :description nil}]} - (tt/with-temp* [Dashboard [{dashboard-id :id}] - Revision [{revision-id :id} {:model "Dashboard" - :model_id dashboard-id - :object {:name "a" - :description nil - :cards []} - :is_creation true}] - Revision [_ {:model "Dashboard" - :model_id dashboard-id - :user_id (user->id :crowberto) - :object {:name "b" - :description nil - :cards []} - :message "updated"}]] - (array-map - :response - (dissoc ((user->client :crowberto) :post 200 (format "dashboard/%d/revert" dashboard-id) - {:revision_id revision-id}) - :id :timestamp) - - :revisions - (doall (for [revision ((user->client :crowberto) :get 200 (format "dashboard/%d/revisions" dashboard-id))] - (dissoc revision :timestamp :id)))))) +(deftest revert-dashboard-test + (testing "POST /api/dashboard/:id/revert" + (testing "parameter validation" + (is (= {:errors {:revision_id "value must be an integer greater than zero."}} + ((user->client :crowberto) :post 400 "dashboard/1/revert" {}))) + (is (= {:errors {:revision_id "value must be an integer greater than zero."}} + ((user->client :crowberto) :post 400 "dashboard/1/revert" {:revision_id "foobar"}))) ) + (tt/with-temp* [Dashboard [{dashboard-id :id}] + Revision [{revision-id :id} {:model "Dashboard" + :model_id dashboard-id + :object {:name "a" + :description nil + :cards []} + :is_creation true}] + Revision [_ {:model "Dashboard" + :model_id dashboard-id + :user_id (user->id :crowberto) + :object {:name "b" + :description nil + :cards []} + :message "updated"}]] + (is (= {:is_reversion true + :is_creation false + :message nil + :user (-> (user-details (fetch-user :crowberto)) + (dissoc :email :date_joined :last_login :is_superuser :is_qbnewb)) + :diff {:before {:name "b"} + :after {:name "a"}} + :description "renamed it from \"b\" to \"a\"."} + (dissoc ((user->client :crowberto) :post 200 (format "dashboard/%d/revert" dashboard-id) + {:revision_id revision-id}) + :id :timestamp))) + + (is (= [{:is_reversion true + :is_creation false + :message nil + :user (-> (user-details (fetch-user :crowberto)) + (dissoc :email :date_joined :last_login :is_superuser :is_qbnewb)) + :diff {:before {:name "b"} + :after {:name "a"}} + :description "renamed it from \"b\" to \"a\"."} + {:is_reversion false + :is_creation false + :message "updated" + :user (-> (user-details (fetch-user :crowberto)) + (dissoc :email :date_joined :last_login :is_superuser :is_qbnewb)) + :diff {:before {:name "a"} + :after {:name "b"}} + :description "renamed it from \"a\" to \"b\"."} + {:is_reversion false + :is_creation true + :message nil + :user (-> (user-details (fetch-user :rasta)) + (dissoc :email :date_joined :last_login :is_superuser :is_qbnewb)) + :diff nil + :description nil}] + (doall (for [revision ((user->client :crowberto) :get 200 (format "dashboard/%d/revisions" dashboard-id))] + (dissoc revision :timestamp :id)))))))) ;;; +----------------------------------------------------------------------------------------------------------------+ diff --git a/test/metabase/api/database_test.clj b/test/metabase/api/database_test.clj index 9fb3cfb6b0a1668c0442533f4a919bb7379f5fd4..dcfad8686d7fd34becd55995508d85dd5ad6e78f 100644 --- a/test/metabase/api/database_test.clj +++ b/test/metabase/api/database_test.clj @@ -117,11 +117,11 @@ (tu/expect-schema (merge (m/map-vals s/eq default-db-details) - {:created_at java.sql.Timestamp + {:created_at java.time.temporal.Temporal :engine (s/eq ::test-driver) :id su/IntGreaterThanZero :details (s/eq {:db "my_db"}) - :updated_at java.sql.Timestamp + :updated_at java.time.temporal.Temporal :name su/NonBlankString :features (s/eq (driver.u/features ::test-driver))}) (create-db-via-api!)) diff --git a/test/metabase/api/dataset_test.clj b/test/metabase/api/dataset_test.clj index 2f44e3de3cbfa7e2573ac9f3ccee7443a10fd99a..c4981b3a3de67c0e47d16e38e60b0d3f17600959 100644 --- a/test/metabase/api/dataset_test.clj +++ b/test/metabase/api/dataset_test.clj @@ -32,6 +32,9 @@ (:import com.fasterxml.jackson.core.JsonGenerator)) (defn- format-response [m] + (when-not (map? m) + (throw (ex-info (format "Expected results to be a map! Got: %s" (u/pprint-to-str m)) + {:results m}))) (into {} (for [[k v] (-> m @@ -59,11 +62,10 @@ (testing "Just a basic sanity check to make sure Query Processor endpoint is still working correctly." (let [result ((test-users/user->client :rasta) :post 200 "dataset" (data/mbql-query checkins {:aggregation [[:count]]}))] - (is (= {:data {:rows [[1000]] - :cols [(tu/obj->json->obj (qp.test/aggregate-col :count))] - :native_form true - :results_timezone "UTC" - :requested_timezone "UTC"} + (is (= {:data {:rows [[1000]] + :cols [(tu/obj->json->obj (qp.test/aggregate-col :count))] + :native_form true + :results_timezone "UTC"} :row_count 1 :status "completed" :context "ad-hoc" @@ -205,11 +207,11 @@ ;; DateTime fields are untouched when exported (expect - [["1" "Plato Yeshua" "2014-04-01T08:30:00.000Z"] - ["2" "Felipinho Asklepios" "2014-12-05T15:15:00.000Z"] - ["3" "Kaneonuskatew Eiran" "2014-11-06T16:15:00.000Z"] - ["4" "Simcha Yan" "2014-01-01T08:30:00.000Z"] - ["5" "Quentin Sören" "2014-10-03T17:30:00.000Z"]] + [["1" "Plato Yeshua" "2014-04-01T08:30:00Z"] + ["2" "Felipinho Asklepios" "2014-12-05T15:15:00Z"] + ["3" "Kaneonuskatew Eiran" "2014-11-06T16:15:00Z"] + ["4" "Simcha Yan" "2014-01-01T08:30:00Z"] + ["5" "Quentin Sören" "2014-10-03T17:30:00Z"]] (let [result ((test-users/user->client :rasta) :post 200 "dataset/csv" :query (json/generate-string (data/mbql-query users)))] (take 5 (parse-and-sort-csv result)))) @@ -280,8 +282,8 @@ (data/mbql-query venues {:fields [$id $name]})))) (is (= {:query (str "SELECT \"PUBLIC\".\"CHECKINS\".\"ID\" AS \"ID\" FROM \"PUBLIC\".\"CHECKINS\" " - "WHERE (\"PUBLIC\".\"CHECKINS\".\"DATE\" >= timestamp '2015-11-13T00:00:00.000Z'" - " AND \"PUBLIC\".\"CHECKINS\".\"DATE\" < timestamp '2015-11-14T00:00:00.000Z') " + "WHERE (\"PUBLIC\".\"CHECKINS\".\"DATE\" >= timestamp with time zone '2015-11-13 00:00:00.000Z'" + " AND \"PUBLIC\".\"CHECKINS\".\"DATE\" < timestamp with time zone '2015-11-14 00:00:00.000Z') " "LIMIT 1048576") :params nil} ((test-users/user->client :rasta) :post 200 "dataset/native" diff --git a/test/metabase/api/email_test.clj b/test/metabase/api/email_test.clj index 350bb44e03b35d9276ebdd26ecbe668839893141..c238b04f3126428e188bbc0ac1ecaead6f42c9c4 100644 --- a/test/metabase/api/email_test.clj +++ b/test/metabase/api/email_test.clj @@ -1,7 +1,8 @@ (ns metabase.api.email-test - (:require [expectations :refer :all] + (:require [clojure.test :refer :all] [metabase.models.setting :as setting] - [metabase.test.data.users :refer [user->client]])) + [metabase.test.data.users :refer [user->client]] + [metabase.test.util :as tu])) (defn- email-settings [] @@ -21,30 +22,28 @@ :email-from-address "eating@hungry.com"}) ;; PUT /api/email - check updating email settings -(expect - default-email-settings - (let [orig-settings (email-settings)] - (try +(deftest update-email-settings-test + (testing "PUT /api/email" + (tu/discard-setting-changes [email-smtp-host email-smtp-port email-smtp-security email-smtp-username + email-smtp-password email-from-address] ((user->client :crowberto) :put 200 "email" default-email-settings) - (email-settings) - (finally - (setting/set-many! orig-settings))))) + (is (= default-email-settings + (email-settings)))))) -;; DELETE /api/email - check clearing email settings -(expect - [default-email-settings - {:email-smtp-host nil - :email-smtp-port nil - :email-smtp-security "none" - :email-smtp-username nil - :email-smtp-password nil - :email-from-address "notifications@metabase.com"}] - (let [orig-settings (email-settings)] - (try +;; +(deftest clear-email-settings-test + (testing "DELETE /api/email" + (tu/discard-setting-changes [email-smtp-host email-smtp-port email-smtp-security email-smtp-username + email-smtp-password email-from-address] ((user->client :crowberto) :put 200 "email" default-email-settings) (let [new-email-settings (email-settings)] ((user->client :crowberto) :delete 204 "email") - [new-email-settings - (email-settings)]) - (finally - (setting/set-many! orig-settings))))) + (is (= default-email-settings + new-email-settings)) + (is (= {:email-smtp-host nil + :email-smtp-port nil + :email-smtp-security "none" + :email-smtp-username nil + :email-smtp-password nil + :email-from-address "notifications@metabase.com"} + (email-settings))))))) diff --git a/test/metabase/api/embed_test.clj b/test/metabase/api/embed_test.clj index 3b1de6a24763c3c3122e6e4d1d2a240fe73bdf77..f9f366138eecf596675f6e736dc776343c023254 100644 --- a/test/metabase/api/embed_test.clj +++ b/test/metabase/api/embed_test.clj @@ -73,14 +73,12 @@ (defn successful-query-results ([] - {:data {:cols [(tu/obj->json->obj (qp.test/aggregate-col :count))] - :rows [[100]] - :insights nil - :results_timezone "UTC" - :requested_timezone "UTC" - } - :json_query {:parameters nil} - :status "completed"}) + {:data {:cols [(tu/obj->json->obj (qp.test/aggregate-col :count))] + :rows [[100]] + :insights nil + :results_timezone "UTC"} + :json_query {:parameters nil} + :status "completed"}) ([results-format] (case results-format diff --git a/test/metabase/api/public_test.clj b/test/metabase/api/public_test.clj index 7990843ebdfba65673cad0fc0c1d452e2226f1d0..4c4bfd7d162bfddab871da31bd55d9ede29f929b 100644 --- a/test/metabase/api/public_test.clj +++ b/test/metabase/api/public_test.clj @@ -271,7 +271,7 @@ :aggregation [[:count]]}})) (expect - #{:cols :rows :insights :results_timezone :requested_timezone} + #{:cols :rows :insights :results_timezone} (tu/with-temporary-setting-values [enable-public-sharing true] (tt/with-temp Card [{uuid :public_uuid} (card-with-trendline)] (-> (http/client :get 200 (str "public/card/" uuid "/query")) diff --git a/test/metabase/api/pulse_test.clj b/test/metabase/api/pulse_test.clj index 1e2be92eb98322e83ab3c98d6096d1a780f9c5c9..bdccb94bddd63567bd576000ef78d46dd2579025 100644 --- a/test/metabase/api/pulse_test.clj +++ b/test/metabase/api/pulse_test.clj @@ -1,6 +1,7 @@ (ns metabase.api.pulse-test "Tests for /api/pulse endpoints." - (:require [expectations :refer [expect]] + (:require [clojure.test :refer :all] + [expectations :refer [expect]] [metabase [email-test :as et] [http-client :as http] @@ -845,10 +846,7 @@ ;;; | POST /api/pulse/test | ;;; +----------------------------------------------------------------------------------------------------------------+ -(expect - {:response {:ok true} - :emails (et/email-to :rasta {:subject "Pulse: Daily Sad Toucans" - :body {"Daily Sad Toucans" true}})} +(deftest create-pulse-test (tu/with-non-admin-groups-no-root-collection-perms (tu/with-model-cleanup [Pulse] (et/with-fake-inbox @@ -860,23 +858,22 @@ :aggregation [[:count]]}}}]] (perms/grant-collection-readwrite-permissions! (perms-group/all-users) collection) (card-api-test/with-cards-in-readable-collection [card] - (array-map - :response - ((user->client :rasta) :post 200 "pulse/test" {:name "Daily Sad Toucans" - :collection_id (u/get-id collection) - :cards [{:id (u/get-id card) - :include_csv false - :include_xls false}] - :channels [{:enabled true - :channel_type "email" - :schedule_type "daily" - :schedule_hour 12 - :schedule_day nil - :recipients [(fetch-user :rasta)]}] - :skip_if_empty false}) - - :emails - (et/regex-email-bodies #"Daily Sad Toucans"))))))))) + (is (= {:ok true} + ((user->client :rasta) :post 200 "pulse/test" {:name "Daily Sad Toucans" + :collection_id (u/get-id collection) + :cards [{:id (u/get-id card) + :include_csv false + :include_xls false}] + :channels [{:enabled true + :channel_type "email" + :schedule_type "daily" + :schedule_hour 12 + :schedule_day nil + :recipients [(fetch-user :rasta)]}] + :skip_if_empty false}))) + (is (= (et/email-to :rasta {:subject "Pulse: Daily Sad Toucans" + :body {"Daily Sad Toucans" true}}) + (et/regex-email-bodies #"Daily Sad Toucans")))))))))) ;; This test follows a flow that the user/UI would follow by first creating a pulse, then making a small change to ;; that pulse and testing it. The primary purpose of this test is to ensure tha the pulse/test endpoint accepts data diff --git a/test/metabase/api/table_test.clj b/test/metabase/api/table_test.clj index 8b31d89ad721a6c5623bedbd35a4e8906eab7cef..6ebd84328f180b1dae22050a00878940a6f31bf4 100644 --- a/test/metabase/api/table_test.clj +++ b/test/metabase/api/table_test.clj @@ -495,8 +495,8 @@ :dimension_options (var-get #'table-api/datetime-dimension-indexes) :fingerprint {:global {:distinct-count 15 :nil% 0.0}, - :type {:type/DateTime {:earliest "2014-01-01T08:30:00.000Z", - :latest "2014-12-05T15:15:00.000Z"}}}}]}) + :type {:type/DateTime {:earliest "2014-01-01T08:30:00" + :latest "2014-12-05T15:15:00"}}}}]}) (do ;; run the Card which will populate its result_metadata column ((test-users/user->client :crowberto) :post 200 (format "card/%d/query" (u/get-id card))) diff --git a/test/metabase/api/task_test.clj b/test/metabase/api/task_test.clj index 2b9aed04ccefd3ce1b54c62ca99f08f0babec9e9..510bc8303945c76c1a25350573dd245de1af9914 100644 --- a/test/metabase/api/task_test.clj +++ b/test/metabase/api/task_test.clj @@ -1,11 +1,10 @@ (ns metabase.api.task-test - (:require [clj-time.core :as time] - [expectations :refer :all] + (:require [expectations :refer :all] + [java-time :as t] [metabase.models.task-history :refer [TaskHistory]] [metabase.test.data.users :as users] [metabase.test.util :as tu] [metabase.util :as u] - [metabase.util.date :as du] [toucan.db :as db] [toucan.util.test :as tt])) @@ -16,12 +15,12 @@ "Creates `n` task history maps with guaranteed increasing `:ended_at` times. This means that when stored and queried via the GET `/` endpoint, will return in reverse order from how this function returns the task history maps." [n] - (let [task-names (repeatedly n tu/random-name) - now (time/now)] + (let [now (t/zoned-date-time) + task-names (repeatedly n tu/random-name)] (map-indexed (fn [idx task-name] {:task task-name - :started_at (du/->Timestamp now) - :ended_at (du/->Timestamp (time/plus now (time/seconds idx)))}) + :started_at now + :ended_at (t/plus now (t/seconds idx))}) task-names))) ;; Only superusers can query for TaskHistory diff --git a/test/metabase/api/transform_test.clj b/test/metabase/api/transform_test.clj index 2b59d806d1a25fec3fcedc04123b597b6e23f46a..96864f9a993ba67a8de0c3d453a3a4ac3b17fdcc 100644 --- a/test/metabase/api/transform_test.clj +++ b/test/metabase/api/transform_test.clj @@ -1,5 +1,6 @@ (ns metabase.api.transform-test - (:require [expectations :refer :all] + (:require [clojure.test :refer :all] + [expectations :refer :all] [metabase.models [card :refer [Card]] [collection :refer [Collection]] @@ -9,10 +10,13 @@ [metabase.test [data :as data] [domain-entities :refer :all] + [fixtures :as fixtures] [transforms :refer :all] [util :as tu]] [metabase.test.data.users :as test-users])) +(use-fixtures :once (fixtures/initialize :db)) + (defn- test-endpoint [] (format "transform/%s/%s/%s" (data/id) "PUBLIC" "Test transform")) diff --git a/test/metabase/automagic_dashboards/core_test.clj b/test/metabase/automagic_dashboards/core_test.clj index 6d7da53a9e1eaded49a62a4c6ba80edf417dd5c4..fc78a207d1e3bca6304a1317d58a09bd14a91e4c 100644 --- a/test/metabase/automagic_dashboards/core_test.clj +++ b/test/metabase/automagic_dashboards/core_test.clj @@ -1,10 +1,8 @@ (ns metabase.automagic-dashboards.core-test - (:require [clj-time - [core :as t] - [format :as t.format]] - [clojure.core.async :as a] + (:require [clojure.core.async :as a] [clojure.test :refer :all] [expectations :refer :all] + [java-time :as t] [metabase.automagic-dashboards [core :as magic :refer :all] [rules :as rules]] @@ -24,7 +22,7 @@ [data :as data] [util :as tu]] [metabase.util - [date :as date] + [date-2 :as u.date] [i18n :refer [tru]]] [toucan.db :as db] [toucan.util.test :as tt])) @@ -442,79 +440,51 @@ ;;; ------------------- Datetime resolution inference ------------------- -(expect - :month - (#'magic/optimal-datetime-resolution - {:fingerprint {:type {:type/DateTime {:earliest "2015" - :latest "2017"}}}})) - -(expect - :day - (#'magic/optimal-datetime-resolution - {:fingerprint {:type {:type/DateTime {:earliest "2017-01-01" - :latest "2017-03-04"}}}})) - -(expect - :year - (#'magic/optimal-datetime-resolution - {:fingerprint {:type {:type/DateTime {:earliest "2005" - :latest "2017"}}}})) - -(expect - :hour - (#'magic/optimal-datetime-resolution - {:fingerprint {:type {:type/DateTime {:earliest "2017-01-01" - :latest "2017-01-02"}}}})) - -(expect - :minute - (#'magic/optimal-datetime-resolution - {:fingerprint {:type {:type/DateTime {:earliest "2017-01-01T00:00:00" - :latest "2017-01-01T00:02:00"}}}})) +(deftest optimal-datetime-resolution-test + (doseq [[m expected] [[{:earliest "2015" + :latest "2017"} + :month] + [{:earliest "2017-01-01" + :latest "2017-03-04"} + :day] + [{:earliest "2005" + :latest "2017"} + :year] + [{:earliest "2017-01-01" + :latest "2017-01-02"} + :hour] + [{:earliest "2017-01-01T00:00:00" + :latest "2017-01-01T00:02:00"} + :minute]] + :let [fingerprint {:type {:type/DateTime m}}]] + (testing (format "fingerprint = %s" (pr-str fingerprint)) + (is (= expected + (#'magic/optimal-datetime-resolution {:fingerprint fingerprint})))))) ;;; ------------------- Datetime humanization (for chart and dashboard titles) ------------------- -(let [tz (-> date/jvm-timezone deref ^TimeZone .getID) - dt (t/from-time-zone (t/date-time 1990 9 9 12 30) - (t/time-zone-for-id tz)) - unparse-with-formatter (fn [formatter dt] - (t.format/unparse - (t.format/formatter formatter (t/time-zone-for-id tz)) dt))] - (expect - (map str [(tru "at {0}" (unparse-with-formatter "h:mm a, MMMM d, YYYY" dt)) - (tru "at {0}" (unparse-with-formatter "h a, MMMM d, YYYY" dt)) - (tru "on {0}" (unparse-with-formatter "MMMM d, YYYY" dt)) - (tru "in {0} week - {1}" - (#'magic/pluralize (date/date-extract :week-of-year dt tz)) - (str (date/date-extract :year dt tz))) - (tru "in {0}" (unparse-with-formatter "MMMM YYYY" dt)) - (tru "in Q{0} - {1}" - (date/date-extract :quarter-of-year dt tz) - (str (date/date-extract :year dt tz))) - (unparse-with-formatter "YYYY" dt) - (unparse-with-formatter "EEEE" dt) - (tru "at {0}" (unparse-with-formatter "h a" dt)) - (unparse-with-formatter "MMMM" dt) - (tru "Q{0}" (date/date-extract :quarter-of-year dt tz)) - (date/date-extract :minute-of-hour dt tz) - (date/date-extract :day-of-month dt tz) - (date/date-extract :week-of-year dt tz)]) - (let [dt (t.format/unparse (t.format/formatters :date-hour-minute-second) dt)] - (map (comp str (partial #'magic/humanize-datetime dt)) [:minute - :hour - :day - :week - :month - :quarter - :year - :day-of-week - :hour-of-day - :month-of-year - :quarter-of-year - :minute-of-hour - :day-of-month - :week-of-year])))) +(deftest temporal-humanization-test + (let [tz "UTC" + dt #t "1990-09-09T12:30" + t-str "1990-09-09T12:30:00"] + (doseq [[unit expected] {:minute (tru "at {0}" (t/format "h:mm a, MMMM d, YYYY" dt)) + :hour (tru "at {0}" (t/format "h a, MMMM d, YYYY" dt)) + :day (tru "on {0}" (t/format "MMMM d, YYYY" dt)) + :week (tru "in {0} week - {1}" (#'magic/pluralize (u.date/extract dt :week-of-year)) (str (u.date/extract dt :year))) + :month (tru "in {0}" (t/format "MMMM YYYY" dt)) + :quarter (tru "in Q{0} - {1}" (u.date/extract dt :quarter-of-year) (str (u.date/extract dt :year))) + :year (t/format "YYYY" dt) + :day-of-week (t/format "EEEE" dt) + :hour-of-day (tru "at {0}" (t/format "h a" dt)) + :month-of-year (t/format "MMMM" dt) + :quarter-of-year (tru "Q{0}" (u.date/extract dt :quarter-of-year)) + :minute-of-hour (u.date/extract dt :minute-of-hour) + :day-of-month (u.date/extract dt :day-of-month) + :week-of-year (u.date/extract dt :week-of-year)}] + (testing (format "unit = %s" unit) + (is (= (str expected) + (str (#'magic/humanize-datetime t-str unit)))))))) (deftest pluralize-test (are [expected n] (= (str expected) @@ -527,6 +497,7 @@ (deftest handlers-test (testing "Make sure we have handlers for all the units available" - (doseq [unit (concat date/date-extract-units date/date-trunc-units)] + (doseq [unit (disj (set (concat u.date/extract-units u.date/truncate-units)) + :iso-day-of-week :iso-day-of-year :iso-week :iso-week-of-year :millisecond)] (testing unit (is (some? (#'magic/humanize-datetime "1990-09-09T12:30:00" unit))))))) diff --git a/test/metabase/cmd/compare_h2_dbs.clj b/test/metabase/cmd/compare_h2_dbs.clj index f2fe0acb00cbc348e26679dff5d7a580672e4ba9..1d495d1dc7eb1d40e1ab381bbf20193531bb2de0 100644 --- a/test/metabase/cmd/compare_h2_dbs.clj +++ b/test/metabase/cmd/compare_h2_dbs.clj @@ -5,8 +5,9 @@ [pprint :as pprint] [string :as str]] [clojure.java.jdbc :as jdbc] - [metabase.util :as u]) - (:import org.h2.jdbc.JdbcClob)) + metabase.db.jdbc-protocols)) + +(comment metabase.db.jdbc-protocols/keep-me) (defn- jdbc-spec [db-file] {:classname "org.h2.Driver" @@ -42,7 +43,7 @@ (jdbc/with-db-metadata [metadata spec] (let [result (jdbc/metadata-result (.getTables metadata nil nil nil - (into-array String ["TABLE", "VIEW", "FOREIGN TABLE", "MATERIALIZED VIEW"])))] + (into-array String ["TABLE" "VIEW" "FOREIGN TABLE" "MATERIALIZED VIEW"])))] (sort (remove ignored-table-names (map :table_name result)))))) (defmulti ^:private normalize-value @@ -52,10 +53,6 @@ [v] v) -(defmethod normalize-value JdbcClob - [v] - (u/jdbc-clob->str v)) - (def ^:private ignored-keys #{:created_at :updated_at :timestamp :last_login :date_joined :last_analyzed}) @@ -77,8 +74,7 @@ (->> rows (mapv normalize-values) sort-rows))) (defn- different-table-names? - "Diff the table names in two DBs. Returns a truthy value if there is a difference. - the same." + "True if the set of tables names is different between DBs represented by `conn-1` and `conn-2`." [conn-1 conn-2] (let [[table-names-1 table-names-2] (map table-names [conn-1 conn-2]) _ (printf "Diffing %d/%d table names...\n" (count table-names-1) (count table-names-2)) diff --git a/test/metabase/cmd/load_from_h2_test.clj b/test/metabase/cmd/load_from_h2_test.clj index 7c1b269009571be81e9bee31942d5fc08f002453..e2f44f61fb665c31d97144f5235e707a9692c003 100644 --- a/test/metabase/cmd/load_from_h2_test.clj +++ b/test/metabase/cmd/load_from_h2_test.clj @@ -1,11 +1,9 @@ (ns metabase.cmd.load-from-h2-test (:require [expectations :refer [expect]] [flatland.ordered.map :as ordered-map] - [metabase - [db :as mdb] - [util :as u]] [metabase.cmd.load-from-h2 :as load-from-h2] [metabase.plugins.classloader :as classloader] + [metabase.util :as u] [toucan [db :as db] [models :as models]])) @@ -68,26 +66,3 @@ :sizex 18 :sizey 9)]) (update :cols vec)))) - -;; make sure `objects->colums+values` properly de-CLOBs and CLOBs (by calling `u/jdbc-clob->str`) - -(defrecord ^:private FakeClob [s]) - -(expect - {:cols ["\"created_at\"" "\"description\"" "\"parameter_mappings\"" "\"visualization_settings\""] - :vals [[#inst "2019-04-05T21:26:39.936-00:00" - "This is a description" - [] - {}]]} - (binding [db/*quoting-style* :ansi] - (with-redefs [mdb/db-type (constantly :postgres) - u/jdbc-clob->str #(cond-> % - (instance? FakeClob %) :s)] - (-> (#'load-from-h2/objects->colums+values - [(ordered-map/ordered-map - :created_at #inst "2019-04-05T21:26:39.936000000-00:00" - :description (FakeClob. "This is a description") - :parameter_mappings [] - :visualization_settings {})]) - (update :cols vec) - (update :vals vec))))) diff --git a/test/metabase/config_test.clj b/test/metabase/config_test.clj new file mode 100644 index 0000000000000000000000000000000000000000..b36562ae62e4d33d45f6664e800459ebfbe6e203 --- /dev/null +++ b/test/metabase/config_test.clj @@ -0,0 +1,17 @@ +(ns metabase.config-test + (:require [clojure.test :refer :all] + [environ.core :as environ] + [metabase.config :as config])) + +(deftest config-parsing + (testing "takes value of non-empty env var" + (with-redefs [environ/env (assoc environ/env :max-session-age "123")] + (is (= "123" + (config/config-str :max-session-age))))) + (testing "falls back to default if env var is nil or an empty string" + (with-redefs [environ/env (assoc environ/env :max-session-age "")] + (is (= "20160" + (config/config-str :max-session-age)))) + (with-redefs [environ/env (assoc environ/env :max-session-age nil)] + (is (= "20160" + (config/config-str :max-session-age)))))) diff --git a/test/metabase/db/migrations_test.clj b/test/metabase/db/migrations_test.clj index 53ac7e17ba67bc246a29e36102e38795db9f793a..fb280c2d0485dfda5f2b5dcea265829ece14d2e1 100644 --- a/test/metabase/db/migrations_test.clj +++ b/test/metabase/db/migrations_test.clj @@ -1,7 +1,9 @@ (ns metabase.db.migrations-test "Tests to make sure the data migrations actually work as expected and don't break things. Shamefully, we have way less of these than we should... but that doesn't mean we can't write them for our new ones :)" - (:require [clojure.set :as set] + (:require [clojure + [set :as set] + [test :refer :all]] [expectations :refer :all] [medley.core :as m] [metabase.db.migrations :as migrations] @@ -15,12 +17,15 @@ [pulse :refer [Pulse]] [user :refer [User]]] [metabase.test.data.datasets :as datasets] + [metabase.test.fixtures :as fixtures] [metabase.test.util.log :as tu.log] [metabase.util :as u] [metabase.util.password :as upass] [toucan.db :as db] [toucan.util.test :as tt])) +(use-fixtures :once (fixtures/initialize :db)) + ;; add-legacy-sql-directive-to-bigquery-sql-cards ;; ;; only run this test when we're running tests for BigQuery because when a Database gets deleted it calls diff --git a/test/metabase/driver/common/parameters/dates_test.clj b/test/metabase/driver/common/parameters/dates_test.clj new file mode 100644 index 0000000000000000000000000000000000000000..f30c0e2c108a0bdf8f128ed862ef78c06765f825 --- /dev/null +++ b/test/metabase/driver/common/parameters/dates_test.clj @@ -0,0 +1,78 @@ +(ns metabase.driver.common.parameters.dates-test + (:require [clojure.test :refer :all] + [java-time :as t] + [metabase.driver.common.parameters.dates :as dates])) + +(deftest date-string->filter-test) +(testing "year and month" + (is (= [:between + [:datetime-field [:field-literal "field" :type/DateTime] :day] + "2019-04-01" + "2019-04-30"] + (dates/date-string->filter "2019-04" [:field-literal "field" :type/DateTime]))) + (testing "quarter year" + (is (= [:between + [:datetime-field [:field-literal "field" :type/DateTime] :day] + "2019-04-01" + "2019-06-30"] + (dates/date-string->filter "Q2-2019" [:field-literal "field" :type/DateTime])))) + (testing "single day" + (is (= [:= + [:datetime-field [:field-literal "field" :type/DateTime] :day] + "2019-04-01"] + (dates/date-string->filter "2019-04-01" [:field-literal "field" :type/DateTime])))) + (testing "day range" + (is (= [:between + [:datetime-field [:field-literal "field" :type/DateTime] :day] + "2019-04-01" + "2019-04-03"] + (dates/date-string->filter "2019-04-01~2019-04-03" [:field-literal "field" :type/DateTime])))) + (testing "after day" + (is (= [:> + [:datetime-field [:field-literal "field" :type/DateTime] :day] + "2019-04-01"] + (dates/date-string->filter "2019-04-01~" [:field-literal "field" :type/DateTime]))))) + +(deftest date-string->range-test + (t/with-clock (t/mock-clock #t "2016-06-07T12:00Z") + (doseq [[group s->expected] + {"absolute datetimes" {"Q1-2016" {:end "2016-03-31", :start "2016-01-01"} + "2016-02" {:end "2016-02-29", :start "2016-02-01"} + "2016-04-18" {:end "2016-04-18", :start "2016-04-18"} + "2016-04-18~2016-04-23" {:end "2016-04-23", :start "2016-04-18"} + "2016-04-18~" {:start "2016-04-18"} + "~2016-04-18" {:end "2016-04-18"}} + "relative (past)" {"past3days" {:end "2016-06-06", :start "2016-06-04"} + "past3days~" {:end "2016-06-07", :start "2016-06-04"} + "past7days" {:end "2016-06-06", :start "2016-05-31"} + "past30days" {:end "2016-06-06", :start "2016-05-08"} + "past2months" {:end "2016-05-31", :start "2016-04-01"} + "past2months~" {:end "2016-06-30", :start "2016-04-01"} + "past13months" {:end "2016-05-31", :start "2015-05-01"} + "past1years" {:end "2015-12-31", :start "2015-01-01"} + "past1years~" {:end "2016-12-31", :start "2015-01-01"} + "past16years" {:end "2015-12-31", :start "2000-01-01"}} + "relative (next)" {"next3days" {:end "2016-06-10", :start "2016-06-08"} + "next3days~" {:end "2016-06-10", :start "2016-06-07"} + "next7days" {:end "2016-06-14", :start "2016-06-08"} + "next30days" {:end "2016-07-07", :start "2016-06-08"} + "next2months" {:end "2016-08-31", :start "2016-07-01"} + "next2months~" {:end "2016-08-31", :start "2016-06-01"} + "next13months" {:end "2017-07-31", :start "2016-07-01"} + "next1years" {:end "2017-12-31", :start "2017-01-01"} + "next1years~" {:end "2017-12-31", :start "2016-01-01"} + "next16years" {:end "2032-12-31", :start "2017-01-01"}} + "relative (this)" {"thisday" {:end "2016-06-07", :start "2016-06-07"} + "thisweek" {:end "2016-06-11", :start "2016-06-05"} + "thismonth" {:end "2016-06-30", :start "2016-06-01"} + "thisyear" {:end "2016-12-31", :start "2016-01-01"}} + "relative (last)" {"lastweek" {:end "2016-06-04", :start "2016-05-29"} + "lastmonth" {:end "2016-05-31", :start "2016-05-01"} + "lastyear" {:end "2015-12-31", :start "2015-01-01"}} + "relative (today/yesterday)" {"yesterday" {:end "2016-06-06", :start "2016-06-06"} + "today" {:end "2016-06-07", :start "2016-06-07"}}}] + (testing group + (doseq [[s expected] s->expected] + (is (= expected + (dates/date-string->range s nil)) + (format "%s should parse to %s" (pr-str s) (pr-str expected)))))))) diff --git a/test/metabase/driver/common/parameters/parse_test.clj b/test/metabase/driver/common/parameters/parse_test.clj new file mode 100644 index 0000000000000000000000000000000000000000..27af2e335662467a33a5167f1fca03444c7c44ba --- /dev/null +++ b/test/metabase/driver/common/parameters/parse_test.clj @@ -0,0 +1,93 @@ +(ns metabase.driver.common.parameters.parse-test + (:require [clojure.test :refer :all] + [metabase.driver.common.parameters.parse :as parse])) + +(def ^:private ^{:arglists '([field-name])} param (var-get #'parse/param)) +(def ^:private ^{:arglists '([& args])} optional (var-get #'parse/optional)) + +(deftest tokenize-test + (doseq [[query expected] + {"{{num_toucans}}" + [:param-begin "num_toucans" :param-end] + + "[[AND num_toucans > {{num_toucans}}]]" + [:optional-begin "AND num_toucans > " :param-begin "num_toucans" :param-end :optional-end] + + "}}{{]][[" + [:param-end :param-begin :optional-end :optional-begin] + + "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" + ["SELECT * FROM toucanneries WHERE TRUE " :optional-begin "AND num_toucans > " :param-begin "num_toucans" :param-end :optional-end] + + "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" + ["SELECT * FROM toucanneries WHERE TRUE " :optional-begin "AND num_toucans > " :param-begin "num_toucans" :param-end :optional-end + " " :optional-begin "AND total_birds > " :param-begin "total_birds" :param-end :optional-end]}] + (is (= expected + (#'parse/tokenize query)) + (format "%s should get tokenized to %s" (pr-str query) (pr-str expected))))) + +(deftest parse-test + (doseq [[group s->expected] + {"queries with one param" + {"select * from foo where bar=1" ["select * from foo where bar=1"] + "select * from foo where bar={{baz}}" ["select * from foo where bar=" (param "baz")] + "select * from foo [[where bar = {{baz}} ]]" ["select * from foo " (optional "where bar = " (param "baz") " ")]} + + "multiple params" + {"SELECT * FROM bird_facts WHERE toucans_are_cool = {{toucans_are_cool}} AND bird_type = {{bird_type}}" + ["SELECT * FROM bird_facts WHERE toucans_are_cool = " (param "toucans_are_cool") + " AND bird_type = " (param "bird_type")]} + + "Multiple optional clauses" + {(str "select * from foo where bar1 = {{baz}} " + "[[and bar2 = {{baz}}]] " + "[[and bar3 = {{baz}}]] " + "[[and bar4 = {{baz}}]]") + ["select * from foo where bar1 = " (param "baz") " " + (optional "and bar2 = " (param "baz")) " " + (optional "and bar3 = " (param "baz")) " " + (optional "and bar4 = " (param "baz"))] + + "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" + ["SELECT * FROM toucanneries WHERE TRUE " + (optional "AND num_toucans > " (param "num_toucans")) + " " + (optional "AND total_birds > " (param "total_birds"))] + + "select * from foobars [[ where foobars.id in (string_to_array({{foobar_id}}, ',')::integer[]) ]]" + ["select * from foobars " + (optional " where foobars.id in (string_to_array(" (param "foobar_id") ", ',')::integer[]) ")]} + + "single square brackets shouldn't get parsed" + (let [query (str "SELECT [test_data.checkins.venue_id] AS [venue_id], " + " [test_data.checkins.user_id] AS [user_id], " + " [test_data.checkins.id] AS [checkins_id] " + "FROM [test_data.checkins] " + "LIMIT 2")] + {query [query]}) + + "Valid syntax in PG -- shouldn't get parsed" + (let [query "SELECT array_dims(1 || '[0:1]={2,3}'::int[])"] + {query [query]}) + + "Queries with newlines (#11526)" + {"SELECT count(*)\nFROM products\nWHERE category = {{category}}" + ["SELECT count(*)\nFROM products\nWHERE category = " (param "category")]} + + "JSON queries that contain non-param fragments like '}}'" + {"{x: {y: \"{{param}}\"}}" ["{x: {y: \"" (param "param") "\"}}"] + "{$match: {{{date}}, field: 1}}}" ["{$match: {" (param "date") ", field: 1}}}"]}}] + (testing group + (doseq [[s expected] s->expected] + (is (= expected + (parse/parse s)) + (format "%s should get parsed to %s" (pr-str s) (pr-str expected)))))) + + (testing "Testing that invalid/unterminated template params/clauses throw an exception" + (doseq [invalid ["select * from foo [[where bar = {{baz}} " + "select * from foo [[where bar = {{baz]]" + "select * from foo {{bar}} {{baz" + "select * from foo [[clause 1 {{bar}}]] [[clause 2"]] + (is (thrown? clojure.lang.ExceptionInfo + (parse/parse invalid)) + (format "Parsing %s should throw an exception" (pr-str invalid)))))) diff --git a/test/metabase/query_processor/middleware/parameters/native/values_test.clj b/test/metabase/driver/common/parameters/values_test.clj similarity index 95% rename from test/metabase/query_processor/middleware/parameters/native/values_test.clj rename to test/metabase/driver/common/parameters/values_test.clj index 9db24b3306dae30a70612825a7b3b61850e15b0b..96336c39510cf65bcf2ed96d270c23437ae05a0a 100644 --- a/test/metabase/query_processor/middleware/parameters/native/values_test.clj +++ b/test/metabase/driver/common/parameters/values_test.clj @@ -1,8 +1,7 @@ -(ns metabase.query-processor.middleware.parameters.native.values-test +(ns metabase.driver.common.parameters.values-test (:require [expectations :refer [expect]] - [metabase.query-processor.middleware.parameters.native - [interface :as i] - [values :as values]] + [metabase.driver.common.parameters :as i] + [metabase.driver.common.parameters.values :as values] [metabase.test.data :as data])) ;; variable -- specified diff --git a/test/metabase/driver/common_test.clj b/test/metabase/driver/common_test.clj index 3b4784408cace17ad555edaaa40f67efef6354a3..d8a381dfb0c26a6119543c20903bbc4c0b16501a 100644 --- a/test/metabase/driver/common_test.clj +++ b/test/metabase/driver/common_test.clj @@ -19,7 +19,7 @@ ;; should fall back to :type/* if no better type is found (expect :type/* - (driver.common/values->base-type [(Object.)])) + (driver.common/values->base-type [(Object.)]) ) ;; Should work with initial nils even if sequence is lazy (expect diff --git a/test/metabase/driver/impl_test.clj b/test/metabase/driver/impl_test.clj new file mode 100644 index 0000000000000000000000000000000000000000..d55c5d8cd73e8703f695a7bdd72bd38296240134 --- /dev/null +++ b/test/metabase/driver/impl_test.clj @@ -0,0 +1,11 @@ +(ns metabase.driver.impl-test + (:require [clojure.test :refer :all] + [metabase.driver.impl :as impl])) + +(deftest driver->expected-namespace-test + (testing "expected namespace for a non-namespaced driver should be `metabase.driver.<driver>`" + (is (= 'metabase.driver.sql-jdbc + (#'impl/driver->expected-namespace :sql-jdbc)))) + (testing "for a namespaced driver it should be the namespace of the keyword" + (is (= 'metabase.driver.impl-test + (#'impl/driver->expected-namespace ::toucans))))) diff --git a/test/metabase/driver/mysql_test.clj b/test/metabase/driver/mysql_test.clj index 3a136115bd8e7b0afda881cf0767a4dd724d701b..4134c588fdeb980079b0bab983cc98dcfcce19b2 100644 --- a/test/metabase/driver/mysql_test.clj +++ b/test/metabase/driver/mysql_test.clj @@ -1,17 +1,16 @@ (ns metabase.driver.mysql-test - (:require [clj-time.core :as t] + (:require [clojure + [string :as str] + [test :refer :all]] [clojure.java.jdbc :as jdbc] [expectations :refer [expect]] - [honeysql.core :as hsql] [metabase [driver :as driver] [query-processor :as qp] [query-processor-test :as qp.test] [sync :as sync] [util :as u]] - [metabase.driver.mysql :as mysql] [metabase.driver.sql-jdbc.connection :as sql-jdbc.conn] - [metabase.driver.sql.query-processor :as sql.qp] [metabase.models [database :refer [Database]] [field :refer [Field]]] @@ -19,10 +18,9 @@ [data :as data] [util :as tu]] [metabase.test.data - [datasets :refer [expect-with-driver]] + [datasets :as datasets :refer [expect-with-driver]] [interface :as tx]] [metabase.test.util.timezone :as tu.tz] - [metabase.util.date :as du] [toucan.db :as db] [toucan.util.test :as tt])) @@ -89,51 +87,36 @@ (sync/sync-database! db) (db->fields db)))) -(expect-with-driver :mysql - "UTC" - (tu/db-timezone-id)) - -(expect-with-driver :mysql - "-02:00" - (with-redefs [driver/execute-query (constantly {:rows [["2018-01-09 18:39:08.000000 -02"]]})] - (tu/db-timezone-id))) - -(expect-with-driver :mysql - "Europe/Paris" - (with-redefs [driver/execute-query (constantly {:rows [["2018-01-08 23:00:00.008 CET"]]})] - (tu/db-timezone-id))) - - -(def ^:private before-daylight-savings (du/str->date-time "2018-03-10 10:00:00" du/utc)) -(def ^:private after-daylight-savings (du/str->date-time "2018-03-12 10:00:00" du/utc)) - -(expect (#'mysql/timezone-id->offset-str "US/Pacific" before-daylight-savings) "-08:00") -(expect (#'mysql/timezone-id->offset-str "US/Pacific" after-daylight-savings) "-07:00") - -(expect (#'mysql/timezone-id->offset-str "UTC" before-daylight-savings) "+00:00") -(expect (#'mysql/timezone-id->offset-str "UTC" after-daylight-savings) "+00:00") - -(expect (#'mysql/timezone-id->offset-str "America/Los_Angeles" before-daylight-savings) "-08:00") -(expect (#'mysql/timezone-id->offset-str "America/Los_Angeles" after-daylight-savings) "-07:00") - -;; make sure DateTime types generate appropriate SQL... -;; ...with no report-timezone set -(expect - ["?" (du/->Timestamp #inst "2018-01-03")] - (tu/with-temporary-setting-values [report-timezone nil] - (hsql/format (sql.qp/->honeysql :mysql (du/->Timestamp #inst "2018-01-03"))))) - -;; ...with a report-timezone set -(expect - ["convert_tz('2018-01-03T00:00:00.000', '+00:00', '-08:00')"] - (tu/with-temporary-setting-values [report-timezone "US/Pacific"] - (hsql/format (sql.qp/->honeysql :mysql (du/->Timestamp #inst "2018-01-03"))))) - -;; ...with a report-timezone set to the same as the system timezone (shouldn't need to do TZ conversion) -(expect - ["?" (du/->Timestamp #inst "2018-01-03")] - (tu/with-temporary-setting-values [report-timezone "UTC"] - (hsql/format (sql.qp/->honeysql :mysql (du/->Timestamp #inst "2018-01-03"))))) +(deftest db-timezone-id-test + (datasets/test-driver :mysql + (let [timezone (fn [result-row] + (let [db (data/db)] + (with-redefs [jdbc/query (let [orig jdbc/query] + (fn [spec sql-args & options] + (if (and (string? sql-args) + (str/includes? sql-args "GLOBAL.time_zone")) + [result-row] + (apply orig spec sql-args options))))] + (driver/db-default-timezone driver/*driver* db))))] + (is (= "US/Pacific" + (timezone {:global "US/Pacific", :system "UTC"})) + "Should use global timezone by default") + (is (= "UTC" + (timezone {:global "SYSTEM", :system "UTC"})) + "If global timezone is 'SYSTEM', should use system timezone") + (is (= "+00:00" + (timezone {:offset "00:00"})) + "Should fall back to returning `offset` if global/system aren't present") + (is (= "-08:00" + (timezone {:global "PDT", :system "PDT", :offset "-08:00"})) + "If global timezone is invalid, should fall back to offset") + (is (= "+00:00" + (timezone {:global "PDT", :system "UTC", :offset "00:00"})) + "Should add a `+` if needed to offset")))) + + +(def ^:private before-daylight-savings #t "2018-03-10T10:00:00Z") +(def ^:private after-daylight-savings #t "2018-03-12T10:00:00Z") ;; Most of our tests either deal in UTC (offset 00:00) or America/Los_Angeles timezones (-07:00/-08:00). When dealing ;; with dates, we will often truncate the timestamp to a date. When we only test with negative timezone offsets, in @@ -145,11 +128,11 @@ ;; ;; This test ensures if our JVM timezone and reporting timezone are Asia/Hong_Kong, we get a correctly formatted date (expect-with-driver :mysql - ["2018-04-18T00:00:00.000+08:00"] - (tu.tz/with-jvm-tz (t/time-zone-for-id "Asia/Hong_Kong") + ["2018-04-18T00:00:00+08:00"] + (tu.tz/with-system-timezone-id "Asia/Hong_Kong" (tu/with-temporary-setting-values [report-timezone "Asia/Hong_Kong"] (qp.test/first-row - (du/with-effective-timezone (data/db) + (identity #_du/with-effective-timezone #_(data/db) (qp/process-query {:database (data/id) :type :native @@ -168,11 +151,11 @@ ;; in the system timezone rather than UTC which caused an incorrect conversion and with the trucation, let to it being ;; off by a day (expect-with-driver :mysql - ["2018-04-18T00:00:00.000-07:00"] - (tu.tz/with-jvm-tz (t/time-zone-for-id "Asia/Hong_Kong") + ["2018-04-18T00:00:00-07:00"] + (tu.tz/with-system-timezone-id "Asia/Hong_Kong" (tu/with-temporary-setting-values [report-timezone "America/Los_Angeles"] (qp.test/first-row - (du/with-effective-timezone (data/db) + (identity #_du/with-effective-timezone #_(data/db) (qp/process-query {:database (data/id) :type :native diff --git a/test/metabase/driver/postgres_test.clj b/test/metabase/driver/postgres_test.clj index 2811e8dbfa6654c3d4539281522c7385874ad62d..76045a0e94135a520fe19fd623509c8a4fd80cea 100644 --- a/test/metabase/driver/postgres_test.clj +++ b/test/metabase/driver/postgres_test.clj @@ -1,7 +1,8 @@ (ns metabase.driver.postgres-test "Tests for features/capabilities specific to PostgreSQL driver, such as support for Postgres UUID or enum types." (:require [clojure.java.jdbc :as jdbc] - [expectations :refer :all] + [clojure.test :refer :all] + [expectations :refer [expect]] [honeysql.core :as hsql] [metabase [driver :as driver] @@ -25,6 +26,7 @@ [metabase.test.data [datasets :as datasets] [interface :as tx]] + [metabase.test.util.log :as tu.log] [toucan.db :as db] [toucan.util.test :as tt])) @@ -85,7 +87,7 @@ (datasets/expect-with-driver :postgres [{:name "id", :base_type :type/Integer} {:name "user_id", :base_type :type/UUID}] - (->> (data/dataset metabase.driver.postgres-test/with-uuid + (->> (data/dataset with-uuid (data/run-mbql-query users)) :data :cols @@ -95,21 +97,21 @@ ;; Check that we can filter by a UUID Field (datasets/expect-with-driver :postgres [[2 #uuid "4652b2e7-d940-4d55-a971-7e484566663e"]] - (rows (data/dataset metabase.driver.postgres-test/with-uuid + (rows (data/dataset with-uuid (data/run-mbql-query users {:filter [:= $user_id "4652b2e7-d940-4d55-a971-7e484566663e"]})))) ;; check that a nil value for a UUID field doesn't barf (#2152) (datasets/expect-with-driver :postgres [] - (rows (data/dataset metabase.driver.postgres-test/with-uuid + (rows (data/dataset with-uuid (data/run-mbql-query users {:filter [:= $user_id nil]})))) ;; Check that we can filter by a UUID for SQL Field filters (#7955) (datasets/expect-with-driver :postgres [[#uuid "4f01dcfd-13f7-430c-8e6f-e505c0851027" 1]] - (data/dataset metabase.driver.postgres-test/with-uuid + (data/dataset with-uuid (rows (qp/process-query {:database (data/id) :type :native :native {:query "SELECT * FROM users WHERE {{user}}" @@ -260,12 +262,16 @@ ;;; timezone tests +(defn- server-spec [] + (sql-jdbc.conn/connection-details->spec :postgres (tx/dbdef->connection-details :postgres :server nil))) + +(def ^:private current-timezone-query + {:query "SELECT current_setting('TIMEZONE') AS timezone;"}) + (defn- get-timezone-with-report-timezone [report-timezone] - (ffirst (:rows (#'sql-jdbc.execute/run-query-with-timezone - :postgres - {:report-timezone report-timezone} - (sql-jdbc.conn/connection-details->spec :postgres (tx/dbdef->connection-details :postgres :server nil)) - {:query "SELECT current_setting('TIMEZONE') AS timezone;"})))) + (-> (#'sql-jdbc.execute/run-query-with-timezone :postgres report-timezone (server-spec) current-timezone-query) + :rows + ffirst)) ;; check that if we set report-timezone to US/Pacific that the session timezone is in fact US/Pacific (datasets/expect-with-driver :postgres @@ -280,8 +286,9 @@ ;; ok, check that if we try to put in a fake timezone that the query still reëxecutes without a custom timezone. This ;; should give us the same result as if we didn't try to set a timezone at all (datasets/expect-with-driver :postgres - (get-timezone-with-report-timezone nil) - (get-timezone-with-report-timezone "Crunk Burger")) + (-> (#'sql-jdbc.execute/run-query-without-timezone :postgres nil (server-spec) current-timezone-query) :rows ffirst) + (tu.log/suppress-output + (get-timezone-with-report-timezone "Crunk Burger"))) ;; make sure connection details w/ extra params work as expected @@ -302,20 +309,8 @@ (tu/db-timezone-id)) ;; Make sure we're able to fingerprint TIME fields (#5911) -(datasets/expect-with-driver :postgres - #{#metabase.models.field.FieldInstance{:name "start_time", :fingerprint {:global {:distinct-count 1 - :nil% 0.0} - :type {:type/DateTime {:earliest "1970-01-01T22:00:00.000Z", :latest "1970-01-01T22:00:00.000Z"}}}} - #metabase.models.field.FieldInstance{:name "end_time", :fingerprint {:global {:distinct-count 1 - :nil% 0.0} - :type {:type/DateTime {:earliest "1970-01-01T09:00:00.000Z", :latest "1970-01-01T09:00:00.000Z"}}}} - #metabase.models.field.FieldInstance{:name "reason", :fingerprint {:global {:distinct-count 1 - :nil% 0.0} - :type {:type/Text {:percent-json 0.0 - :percent-url 0.0 - :percent-email 0.0 - :average-length 12.0}}}}} - (do +(deftest fingerprint-time-fields-test + (datasets/test-driver :postgres (drop-if-exists-and-create-db! "time_field_test") (let [details (tx/dbdef->connection-details :postgres :db {:database-name "time_field_test"})] (jdbc/execute! (sql-jdbc.conn/connection-details->spec :postgres details) @@ -328,7 +323,22 @@ " VALUES ('22:00'::time, '9:00'::time, 'Beauty Sleep');")]) (tt/with-temp Database [database {:engine :postgres, :details (assoc details :dbname "time_field_test")}] (sync/sync-database! database) - (set (db/select [Field :name :fingerprint] :table_id (db/select-one-id Table :db_id (u/get-id database)))))))) + (is (= {"start_time" {:global {:distinct-count 1 + :nil% 0.0} + :type {:type/DateTime {:earliest "22:00:00" + :latest "22:00:00"}}} + "end_time" {:global {:distinct-count 1 + :nil% 0.0} + :type {:type/DateTime {:earliest "09:00:00" + :latest "09:00:00"}}} + "reason" {:global {:distinct-count 1 + :nil% 0.0} + :type {:type/Text {:percent-json 0.0 + :percent-url 0.0 + :percent-email 0.0 + :average-length 12.0}}}} + (db/select-field->field :name :fingerprint Field + :table_id (db/select-one-id Table :db_id (u/get-id database))))))))) ;;; +----------------------------------------------------------------------------------------------------------------+ diff --git a/test/metabase/driver/sql/parameters/substitute_test.clj b/test/metabase/driver/sql/parameters/substitute_test.clj new file mode 100644 index 0000000000000000000000000000000000000000..c0b4df0615ff4a9dd8bcf77868aa229856bb43c7 --- /dev/null +++ b/test/metabase/driver/sql/parameters/substitute_test.clj @@ -0,0 +1,755 @@ +(ns metabase.driver.sql.parameters.substitute-test + (:require [clojure.test :refer :all] + [expectations :refer [expect]] + [java-time :as t] + [metabase + [driver :as driver] + [models :refer [Field]] + [query-processor :as qp] + [query-processor-test :as qp.test] + [test :as mt]] + [metabase.driver.common.parameters :as i] + [metabase.driver.common.parameters.parse :as parse] + [metabase.driver.sql.parameters.substitute :as substitute] + [metabase.mbql.normalize :as normalize] + [metabase.query-processor.middleware.parameters.native :as native] + [metabase.query-processor.test-util :as qp.test-util] + [metabase.test.data.datasets :as datasets] + [metabase.util.schema :as su] + [schema.core :as s])) + +(defn- optional [& args] (i/->Optional args)) +(defn- param [param-name] (i/->Param param-name)) + +(defn- substitute [parsed param->value] + (driver/with-driver :h2 + (substitute/substitute parsed param->value))) + +;; normal substitution +(expect + ["select * from foobars where bird_type = ?" ["Steller's Jay"]] + (substitute + ["select * from foobars where bird_type = " (param "bird_type")] + {"bird_type" "Steller's Jay"})) + +;; make sure falsey values are substituted correctly +;; `nil` should get substituted as `NULL` +(expect + ["select * from foobars where bird_type = NULL" []] + (substitute + ["select * from foobars where bird_type = " (param "bird_type")] + {"bird_type" nil})) + +;; `false` should get substituted as `false` +(expect + ["select * from foobars where bird_type = FALSE" []] + (substitute + ["select * from foobars where bird_type = " (param "bird_type")] + {"bird_type" false})) + +;; optional substitution -- param present +(expect + ;; should preserve whitespace inside optional params + ["select * from foobars where bird_type = ?" ["Steller's Jay"]] + (substitute + ["select * from foobars " (optional " where bird_type = " (param "bird_type"))] + {"bird_type" "Steller's Jay"})) + +;; optional substitution -- param not present +(expect + ["select * from foobars" nil] + (substitute + ["select * from foobars " (optional " where bird_type = " (param "bird_type"))] + {})) + +;; optional -- multiple params -- all present +(expect + ["select * from foobars where bird_type = ? AND color = ?" ["Steller's Jay" "Blue"]] + (substitute + ["select * from foobars " (optional " where bird_type = " (param "bird_type") " AND color = " (param "bird_color"))] + {"bird_type" "Steller's Jay", "bird_color" "Blue"})) + +;; optional -- multiple params -- some present +(expect + ["select * from foobars" nil] + (substitute + ["select * from foobars " (optional " where bird_type = " (param "bird_type") " AND color = " (param "bird_color"))] + {"bird_type" "Steller's Jay"})) + +;; nested optionals -- all present +(expect + ["select * from foobars where bird_type = ? AND color = ?" ["Steller's Jay" "Blue"]] + (substitute + ["select * from foobars " (optional " where bird_type = " (param "bird_type") + (optional " AND color = " (param "bird_color")))] + {"bird_type" "Steller's Jay", "bird_color" "Blue"})) + +;; nested optionals -- some present +(expect + ["select * from foobars where bird_type = ?" ["Steller's Jay"]] + (substitute + ["select * from foobars " (optional " where bird_type = " (param "bird_type") + (optional " AND color = " (param "bird_color")))] + {"bird_type" "Steller's Jay"})) + +;;; ------------------------------------------------- Field Filters -------------------------------------------------- + +(defn- date-field-filter-value + "Field filter 'values' returned by the `values` namespace are actualy `FieldFilter` record types that contain + information about" + [] + (i/map->FieldFilter + {:field (Field (mt/id :checkins :date)) + :value {:type :date/single + :value (t/offset-date-time "2019-09-20T19:52:00.000-07:00")}})) + +;; field filter -- non-optional + present +(expect + ["select * from checkins where CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) = ?" + [(t/offset-date-time "2019-09-20T19:52:00.000-07:00")]] + (substitute + ["select * from checkins where " (param "date")] + {"date" (date-field-filter-value)})) + +;; field filter -- non-optional + missing -- should be replaced with 1 = 1 +(expect + ["select * from checkins where 1 = 1" []] + (substitute + ["select * from checkins where " (param "date")] + {"date" (assoc (date-field-filter-value) :value i/no-value)})) + +;; field filter -- optional + present +(expect + ["select * from checkins where CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) = ?" + [(t/offset-date-time "2019-09-20T19:52:00.000-07:00")]] + (substitute + ["select * from checkins " (optional "where " (param "date"))] + {"date" (date-field-filter-value)})) + +;; field filter -- optional + missing -- should be omitted entirely +(expect + ["select * from checkins" nil] + (substitute + ["select * from checkins " (optional "where " (param "date"))] + {"date" (assoc (date-field-filter-value) :value i/no-value)})) + + +;;; ------------------------------------------ simple substitution — {{x}} ------------------------------------------ + +(defn- substitute-e2e {:style/indent 1} [sql params] + (let [[query params] (driver/with-driver :h2 + (qp.test-util/with-everything-store + (#'substitute/substitute (parse/parse sql) (into {} params))))] + {:query query, :params (vec params)})) + +(deftest basic-substitution-test + (is (= {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE" + :params []} + (substitute-e2e "SELECT * FROM bird_facts WHERE toucans_are_cool = {{toucans_are_cool}}" + {"toucans_are_cool" true}))) + (is (thrown? + Exception + (substitute-e2e "SELECT * FROM bird_facts WHERE toucans_are_cool = {{toucans_are_cool}}" + nil))) + (testing "Multiple params" + (is (= {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE AND bird_type = ?" + :params ["toucan"]} + (substitute-e2e "SELECT * FROM bird_facts WHERE toucans_are_cool = {{toucans_are_cool}} AND bird_type = {{bird_type}}" + {"toucans_are_cool" true, "bird_type" "toucan"})))) + + (testing "Should throw an Exception if a required param is missing" + (is (thrown? + Exception + (substitute-e2e "SELECT * FROM bird_facts WHERE toucans_are_cool = {{toucans_are_cool}} AND bird_type = {{bird_type}}" + {"toucans_are_cool" true}))))) + + +;;; ---------------------------------- optional substitution — [[ ... {{x}} ... ]] ---------------------------------- + +(deftest optional-substitution-test + (is (= {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE" + :params []} + (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{toucans_are_cool}}]]" + {"toucans_are_cool" true}))) + + (is (= {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE" + :params []} + (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{ toucans_are_cool }}]]" + {"toucans_are_cool" true}))) + + (is (= {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE" + :params []} + (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{toucans_are_cool }}]]" + {"toucans_are_cool" true}))) + + (is (= {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE" + :params []} + (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{ toucans_are_cool}}]]" + {"toucans_are_cool" true}))) + + (is (= {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE" + :params []} + (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{toucans_are_cool_2}}]]" + {"toucans_are_cool_2" true}))) + + (is (= {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE AND bird_type = 'toucan'" + :params []} + (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{toucans_are_cool}} AND bird_type = 'toucan']]" + {"toucans_are_cool" true}))) + + (testing "Two parameters in an optional" + (is (= {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE AND bird_type = ?" + :params ["toucan"]} + (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{toucans_are_cool}} AND bird_type = {{bird_type}}]]" + {"toucans_are_cool" true, "bird_type" "toucan"})))) + + (is (= {:query "SELECT * FROM bird_facts" + :params []} + (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{toucans_are_cool}}]]" + nil))) + + (is (= {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > 5" + :params []} + (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" + {"num_toucans" 5}))) + + (testing "make sure nil gets substitute-e2ed in as `NULL`" + (is (= {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > NULL" + :params []} + (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" + {"num_toucans" nil})))) + + (is (= {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > TRUE" + :params []} + (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" + {"num_toucans" true}))) + + (is (= {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > FALSE" + :params []} + (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" + {"num_toucans" false}))) + + (is (= {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > ?" + :params ["abc"]} + (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" + {"num_toucans" "abc"}))) + + (is (= {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > ?" + :params ["yo' mama"]} + (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" + {"num_toucans" "yo' mama"}))) + + (is (= {:query "SELECT * FROM toucanneries WHERE TRUE" + :params []} + (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" + nil))) + + (is (= {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > 2 AND total_birds > 5" + :params []} + (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" + {"num_toucans" 2, "total_birds" 5}))) + + (is (= {:query "SELECT * FROM toucanneries WHERE TRUE AND total_birds > 5" + :params []} + (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" + {"total_birds" 5}))) + + (is (= {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > 3" + :params []} + (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" + {"num_toucans" 3}))) + + (is (= {:query "SELECT * FROM toucanneries WHERE TRUE" + :params []} + (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" + nil))) + + (is (= {:query "SELECT * FROM toucanneries WHERE bird_type = ? AND num_toucans > 2 AND total_birds > 5" + :params ["toucan"]} + (substitute-e2e "SELECT * FROM toucanneries WHERE bird_type = {{bird_type}} [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" + {"bird_type" "toucan", "num_toucans" 2, "total_birds" 5}))) + + (testing "should throw an Exception if a required param is missing" + (is (thrown? + Exception + (substitute-e2e "SELECT * FROM toucanneries WHERE bird_type = {{bird_type}} [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" + {"num_toucans" 2, "total_birds" 5})))) + + (is (= {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > 5 AND num_toucans < 5" + :params []} + (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND num_toucans < {{num_toucans}}]]" + {"num_toucans" 5}))) + + (testing "Make sure that substiutions still work if the subsitution contains brackets inside it (#3657)" + (is (= {:query "select * from foobars where foobars.id in (string_to_array(100, ',')::integer[])" + :params []} + (substitute-e2e "select * from foobars [[ where foobars.id in (string_to_array({{foobar_id}}, ',')::integer[]) ]]" + {"foobar_id" 100}))))) + + +;;; ------------------------------------------- expansion tests: variables ------------------------------------------- + +(defn- expand** + "Expand parameters inside a top-level native `query`. Not recursive. " + [{:keys [parameters], inner :native, :as query}] + (driver/with-driver :h2 + (qp.test-util/with-everything-store + (let [inner' (native/expand-inner (update inner :parameters #(concat parameters %)))] + (assoc query :native inner'))))) + +(defn- expand* [query] + (-> (expand** (normalize/normalize query)) + :native + (select-keys [:query :params :template-tags]) + (update :params vec))) + +(deftest expand-variables-test + ;; unspecified optional param + (is (= {:query "SELECT * FROM orders ;" + :params []} + (expand* {:native {:query "SELECT * FROM orders [[WHERE id = {{id}}]];" + :template-tags {"id" {:name "id", :display-name "ID", :type :number}}} + :parameters []}))) + + (testing "unspecified *required* param" + (is (thrown? + Exception + (expand** {:native {:query "SELECT * FROM orders [[WHERE id = {{id}}]];" + :template-tags {"id" {:name "id", :display-name "ID", :type :number, :required true}}} + :parameters []})))) + + (testing "default value" + (is (= {:query "SELECT * FROM orders WHERE id = 100;" + :params []} + (expand* {:native {:query "SELECT * FROM orders WHERE id = {{id}};" + :template-tags {"id" {:name "id", :display-name "ID", :type :number, :required true, :default "100"}}} + :parameters []})))) + + (testing "specified param (numbers)" + (is (= {:query "SELECT * FROM orders WHERE id = 2;" + :params []} + (expand* {:native {:query "SELECT * FROM orders WHERE id = {{id}};" + :template-tags {"id" {:name "id", :display-name "ID", :type :number, :required true, :default "100"}}} + :parameters [{:type "category", :target [:variable [:template-tag "id"]], :value "2"}]})))) + + (testing "specified param (date/single)" + (is (= {:query "SELECT * FROM orders WHERE created_at > ?;" + :params [#t "2016-07-19"]} + (expand* {:native {:query "SELECT * FROM orders WHERE created_at > {{created_at}};" + :template-tags {"created_at" {:name "created_at", :display-name "Created At", :type "date"}}} + :parameters [{:type :date/single, :target [:variable [:template-tag "created_at"]], :value "2016-07-19"}]})))) + + (testing "specified param (text)" + (is (= {:query "SELECT * FROM products WHERE category = ?;" + :params ["Gizmo"]} + (expand* {:native {:query "SELECT * FROM products WHERE category = {{category}};" + :template-tags {"category" {:name "category", :display-name "Category", :type :text}}} + :parameters [{:type "category", :target [:variable [:template-tag "category"]], :value "Gizmo"}]}))))) + + +;;; ----------------------------------------- expansion tests: field filters ----------------------------------------- + +(defn- expand-with-field-filter-param + ([field-filter-param] + (expand-with-field-filter-param "SELECT * FROM checkins WHERE {{date}};" field-filter-param)) + + ([sql field-filter-param] + ;; TIMEZONE FIXME + (t/with-clock (t/mock-clock #t "2016-06-07T12:00-00:00" (t/zone-id "UTC")) + (-> {:native {:query + sql + :template-tags {"date" {:name "date" + :display-name "Checkin Date" + :type :dimension + :dimension [:field-id (mt/id :checkins :date)]}}} + :parameters (when field-filter-param + [(merge {:target [:dimension [:template-tag "date"]]} + field-filter-param)])} + expand* + (dissoc :template-tags))))) + +(deftest expand-field-filters-test + (testing "dimension (date/single)" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) = ?;" + :params [#t "2016-07-01"]} + (expand-with-field-filter-param {:type :date/single, :value "2016-07-01"})))) + (testing "dimension (date/range)" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" + :params [#t "2016-07-01" + #t "2016-08-01"]} + (expand-with-field-filter-param {:type :date/range, :value "2016-07-01~2016-08-01"})))) + (testing "dimension (date/month-year)" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" + :params [#t "2016-07-01" + #t "2016-07-31"]} + (expand-with-field-filter-param {:type :date/month-year, :value "2016-07"})))) + (testing "dimension (date/quarter-year)" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" + :params [#t "2016-01-01" + #t "2016-03-31"]} + (expand-with-field-filter-param {:type :date/quarter-year, :value "Q1-2016"})))) + (testing "dimension (date/all-options, before)" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) < ?;" + :params [#t "2016-07-01"]} + (expand-with-field-filter-param {:type :date/all-options, :value "~2016-07-01"})))) + (testing "dimension (date/all-options, after)" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) > ?;" + :params [#t "2016-07-01"]} + (expand-with-field-filter-param {:type :date/all-options, :value "2016-07-01~"})))) + (testing "relative date — 'yesterday'" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) = ?;" + :params [#t "2016-06-06"]} + (expand-with-field-filter-param {:type :date/range, :value "yesterday"})))) + (testing "relative date — 'past7days'" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" + :params [#t "2016-05-31" + #t "2016-06-06"]} + (expand-with-field-filter-param {:type :date/range, :value "past7days"})))) + (testing "relative date — 'past30days'" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" + :params [#t "2016-05-08" + #t "2016-06-06"]} + (expand-with-field-filter-param {:type :date/range, :value "past30days"})))) + (testing "relative date — 'thisweek'" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" + :params [#t "2016-06-05" + #t "2016-06-11"]} + (expand-with-field-filter-param {:type :date/range, :value "thisweek"})))) + (testing "relative date — 'thismonth'" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" + :params [#t "2016-06-01" + #t "2016-06-30"]} + (expand-with-field-filter-param {:type :date/range, :value "thismonth"})))) + (testing "relative date — 'thisyear'" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" + :params [#t "2016-01-01" + #t "2016-12-31"]} + (expand-with-field-filter-param {:type :date/range, :value "thisyear"})))) + (testing "relative date — 'lastweek'" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" + :params [#t "2016-05-29" + #t "2016-06-04"]} + (expand-with-field-filter-param {:type :date/range, :value "lastweek"})))) + (testing "relative date — 'lastmonth'" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" + :params [#t "2016-05-01" + #t "2016-05-31"]} + (expand-with-field-filter-param {:type :date/range, :value "lastmonth"})))) + (testing "relative date — 'lastyear'" + (is (= {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" + :params [#t "2015-01-01" + #t "2015-12-31"]} + (expand-with-field-filter-param {:type :date/range, :value "lastyear"})))) + (testing "dimension with no value — just replace with an always true clause (e.g. 'WHERE 1 = 1')" + (is (= {:query "SELECT * FROM checkins WHERE 1 = 1;" + :params []} + (expand-with-field-filter-param nil)))) + (testing "dimension — number — should get parsed to Number" + (is (= {:query "SELECT * FROM checkins WHERE \"PUBLIC\".\"CHECKINS\".\"DATE\" = 100;" + :params []} + (expand-with-field-filter-param {:type :number, :value "100"})))) + (testing "dimension — text" + (is (= {:query "SELECT * FROM checkins WHERE \"PUBLIC\".\"CHECKINS\".\"DATE\" = ?;" + :params ["100"]} + (expand-with-field-filter-param {:type :text, :value "100"})))) + (testing (str "*OPTIONAL* Field Filter params should not get replaced with 1 = 1 if the param is not present " + "(#5541, #9489). *Optional params should be emitted entirely.") + (is (= {:query "SELECT * FROM ORDERS WHERE TOTAL > 100 AND CREATED_AT < now()" + :params []} + (expand-with-field-filter-param + "SELECT * FROM ORDERS WHERE TOTAL > 100 [[AND {{created}} #]] AND CREATED_AT < now()" + nil))))) + + +;;; -------------------------------------------- "REAL" END-TO-END-TESTS --------------------------------------------- + +(s/defn ^:private checkins-identifier :- su/NonBlankString + "Get the identifier used for `checkins` for the current driver by looking at what the driver uses when converting MBQL + to SQL. Different drivers qualify to different degrees (i.e. `table` vs `schema.table` vs `database.schema.table`)." + [] + (let [sql (:query (qp/query->native (mt/mbql-query checkins)))] + (second (re-find #"FROM\s([^\s()]+)" sql)))) + +;; as with the MBQL parameters tests Redshift fail for unknown reasons; disable their tests for now +;; TIMEZONE FIXME +(defn- sql-parameters-engines [] + (set (for [driver (mt/normal-drivers-with-feature :native-parameters) + :when (and (isa? driver/hierarchy driver :sql) + (not= driver :redshift))] + driver))) + +(defn- process-native {:style/indent 0} [& kvs] + (qp/process-query + (apply assoc {:database (mt/id), :type :native} kvs))) + +(deftest e2e-basic-test + (datasets/test-drivers (sql-parameters-engines) + (is (= [29] + (mt/first-row + (mt/format-rows-by [int] + (process-native + :native {:query (format "SELECT COUNT(*) FROM %s WHERE {{checkin_date}}" (checkins-identifier)) + :template-tags {"checkin_date" {:name "checkin_date" + :display-name "Checkin Date" + :type :dimension + :dimension [:field-id (mt/id :checkins :date)]}}} + :parameters [{:type :date/range + :target [:dimension [:template-tag "checkin_date"]] + :value "2015-04-01~2015-05-01"}]))))))) + +(deftest e2e-no-parameter-test + (datasets/test-drivers (sql-parameters-engines) + (testing "no parameter — should give us a query with \"WHERE 1 = 1\"" + (is (= [1000] + (mt/first-row + (mt/format-rows-by [int] + (process-native + :native {:query (format "SELECT COUNT(*) FROM %s WHERE {{checkin_date}}" (checkins-identifier)) + :template-tags {"checkin_date" {:name "checkin_date" + :display-name "Checkin Date" + :type :dimension + :dimension [:field-id (mt/id :checkins :date)]}}} + :parameters [])))))))) + +(deftest e2e-relative-dates-test + (datasets/test-drivers (sql-parameters-engines) + (testing (str "test that relative dates work correctly. It should be enough to try just one type of relative date " + "here, since handling them gets delegated to the functions in `metabase.query-processor.parameters`, " + "which is fully-tested :D") + (is (= [0] + (mt/first-row + (mt/format-rows-by [int] + (process-native + :native {:query (format "SELECT COUNT(*) FROM %s WHERE {{checkin_date}}" + (checkins-identifier)) + :template-tags {"checkin_date" {:name "checkin_date" + :display-name "Checkin Date" + :type :dimension + :dimension [:field-id (mt/id :checkins :date)]}}} + :parameters [{:type :date/relative + :target [:dimension [:template-tag "checkin_date"]] + :value "thismonth"}])))))))) + +(deftest e2e-combine-multiple-filters-test + (datasets/test-drivers (sql-parameters-engines) + (testing "test that multiple filters applied to the same variable combine into `AND` clauses (#3539)" + (is (= [4] + (mt/first-row + (mt/format-rows-by [int] + (process-native + :native {:query (format "SELECT COUNT(*) FROM %s WHERE {{checkin_date}}" + (checkins-identifier)) + :template-tags {"checkin_date" {:name "checkin_date" + :display-name "Checkin Date" + :type :dimension + :dimension [:field-id (mt/id :checkins :date)]}}} + :parameters [{:type :date/range + :target [:dimension [:template-tag "checkin_date"]] + :value "2015-01-01~2016-09-01"} + {:type :date/single + :target [:dimension [:template-tag "checkin_date"]] + :value "2015-07-01"}])))))))) + +(deftest e2e-parse-native-dates-test + (datasets/test-drivers (disj (sql-parameters-engines) :sqlite) + (is (= [(cond + (= driver/*driver* :presto) + "2018-04-18" + + ;; TIMEZONE FIXME — Busted + (#{:snowflake :vertica} driver/*driver*) + "2018-04-17T00:00:00-07:00" + + (qp.test/supports-report-timezone? driver/*driver*) + "2018-04-18T00:00:00-07:00" + + :else + "2018-04-18T00:00:00Z")] + (mt/with-report-timezone-id "America/Los_Angeles" + (mt/first-row + (process-native + :native {:query (case driver/*driver* + :bigquery + "SELECT {{date}} as date" + + :oracle + "SELECT cast({{date}} as date) from dual" + + "SELECT cast({{date}} as date)") + :template-tags {"date" {:name "date" :display-name "Date" :type :date}}} + :parameters [{:type :date/single :target [:variable [:template-tag "date"]] :value "2018-04-18"}])))) + "Native dates should be parsed with the report timezone"))) + +;; Some random end-to-end param expansion tests added as part of the SQL Parameters 2.0 rewrite +(deftest param-expansion-test + (is (= {:query "SELECT count(*) FROM CHECKINS WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?", + :params [#t "2017-03-01" + #t "2017-03-31"]} + (expand* {:native {:query "SELECT count(*) FROM CHECKINS WHERE {{created_at}}" + :template-tags {"created_at" {:name "created_at" + :display-name "Created At" + :type :dimension + :dimension [:field-id (mt/id :checkins :date)]}}} + :parameters [{:type :date/month-year + :target [:dimension [:template-tag "created_at"]] + :value "2017-03"}]}))) + (is (= {:query "SELECT count(*) FROM ORDERS" + :params []} + (expand* {:native {:query "SELECT count(*) FROM ORDERS [[WHERE price > {{price}}]]" + :template-tags {"price" {:name "price" + :display-name "Price" + :type :number + :required false}}}}))) + (is (= {:query "SELECT count(*) FROM ORDERS WHERE price > 100" + :params []} + (expand* {:native {:query "SELECT count(*) FROM ORDERS [[WHERE price > {{price}}]]" + :template-tags {"price" {:name "price" + :display-name "Price" + :type :number + :required false}}} + :parameters [{:type "category", :target [:variable [:template-tag "price"]], :value "100"}]}))) + (is (= {:query "SELECT count(*) FROM PRODUCTS WHERE TITLE LIKE ?" + :params ["%Toucan%"]} + (expand* {:native {:query "SELECT count(*) FROM PRODUCTS WHERE TITLE LIKE {{x}}", + :template-tags {"x" {:name "x" + :display-name "X" + :type :text + :required true + :default "%Toucan%"}}} + :parameters [{:type "category", :target [:variable [:template-tag "x"]]}]}))) + (testing "make sure that you can use the same parameter multiple times (#4659)" + (is (= {:query "SELECT count(*) FROM products WHERE title LIKE ? AND subtitle LIKE ?" + :params ["%Toucan%" "%Toucan%"]} + (expand* {:native {:query "SELECT count(*) FROM products WHERE title LIKE {{x}} AND subtitle LIKE {{x}}", + :template-tags {"x" {:name "x" + :display-name "X" + :type :text + :required true + :default "%Toucan%"}}} + :parameters [{:type "category", :target [:variable [:template-tag "x"]]}]}))) + (is (= {:query "SELECT * FROM ORDERS WHERE true AND ID = ? OR USER_ID = ?" + :params ["2" "2"]} + (expand* {:native {:query "SELECT * FROM ORDERS WHERE true [[ AND ID = {{id}} OR USER_ID = {{id}} ]]" + :template-tags {"id" {:name "id", :display-name "ID", :type :text}}} + :parameters [{:type "category", :target [:variable [:template-tag "id"]], :value "2"}]}))))) + + +;;; +----------------------------------------------------------------------------------------------------------------+ +;;; | RELATIVE DATES & DEFAULTS IN "DIMENSION" PARAMS (#6059) | +;;; +----------------------------------------------------------------------------------------------------------------+ + +(deftest expand-field-filter-relative-dates-test + (testing "Make sure relative date forms like `past5days` work correctly with Field Filters" + (t/with-clock (t/mock-clock #t "2017-11-05T12:00Z" (t/zone-id "UTC")) + (is (= {:query (str "SELECT count(*) AS \"count\", \"DATE\" " + "FROM CHECKINS " + "WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ? " + "GROUP BY \"DATE\"") + :params [#t "2017-10-31" + #t "2017-11-04"]} + (expand* {:native {:query (str "SELECT count(*) AS \"count\", \"DATE\" " + "FROM CHECKINS " + "WHERE {{checkin_date}} " + "GROUP BY \"DATE\"") + :template-tags {"checkin_date" {:name "checkin_date" + :display-name "Checkin Date" + :type :dimension + :dimension [:field-id (mt/id :checkins :date)]}}} + :parameters [{:type :date/range + :target [:dimension [:template-tag "checkin_date"]] + :value "past5days"}]})))))) + +;; Make sure we can specify the type of a default value for a "Dimension" (Field Filter) by setting the +;; `:widget-type` key. Check that it works correctly with relative dates... +(expect + {:query (str "SELECT count(*) AS \"count\", \"DATE\" " + "FROM CHECKINS " + "WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ? " + "GROUP BY \"DATE\"") + :params [#t "2017-10-31" + #t "2017-11-04"]} + (t/with-clock (t/mock-clock #t "2017-11-05T12:00Z" (t/zone-id "UTC")) + (expand* {:native {:query (str "SELECT count(*) AS \"count\", \"DATE\" " + "FROM CHECKINS " + "WHERE {{checkin_date}} " + "GROUP BY \"DATE\"") + :template-tags {"checkin_date" {:name "checkin_date" + :display-name "Checkin Date" + :type :dimension + :dimension [:field-id (mt/id :checkins :date)] + :default "past5days" + :widget-type :date/all-options}}}}))) + +;; Check that it works with absolute dates as well +(expect + {:query (str "SELECT count(*) AS \"count\", \"DATE\" " + "FROM CHECKINS " + "WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) = ? " + "GROUP BY \"DATE\"") + :params [#t "2017-11-14"]} + (expand* {:native {:query (str "SELECT count(*) AS \"count\", \"DATE\" " + "FROM CHECKINS " + "WHERE {{checkin_date}} " + "GROUP BY \"DATE\"") + :template-tags {"checkin_date" {:name "checkin_date" + :display-name "Checkin Date" + :type :dimension + :dimension [:field-id (mt/id :checkins :date)] + :default "2017-11-14" + :widget-type :date/all-options}}}})) + +(deftest newlines-test + (testing "Make sure queries with newlines are parsed correctly (#11526)" + (is (= [[1]] + (mt/rows + (qp/process-query + {:database (mt/id) + :type "native" + :native {:query "SELECT count(*)\nFROM venues\n WHERE name = {{name}}" + :template-tags {:name {:name "name" + :display_name "Name" + :type "text" + :required true + :default "Fred 62"}}} + :parameters []})))))) + + +;;; ------------------------------- Multiple Value Support (comma-separated or array) -------------------------------- + +(deftest multiple-value-test + (testing "Make sure using commas in numeric params treats them as separate IDs (#5457)" + (is (= "SELECT * FROM USERS where id IN (1, 2, 3)" + (-> (qp/process-query + {:database (mt/id) + :type "native" + :native {:query "SELECT * FROM USERS [[where id IN ({{ids_list}})]]" + :template-tags {"ids_list" {:name "ids_list" + :display-name "Ids list" + :type :number}}} + :parameters [{:type "category" + :target [:variable [:template-tag "ids_list"]] + :value "1,2,3"}]}) + :data :native_form :query)))) + (testing "make sure you can now also pass multiple values in by passing an array of values" + (is (= {:query "SELECT * FROM CATEGORIES where name IN (?, ?, ?)" + :params ["BBQ" "Bakery" "Bar"]} + (expand* + {:native {:query "SELECT * FROM CATEGORIES [[where name IN ({{names_list}})]]" + :template-tags {"names_list" {:name "names_list" + :display-name "Names List" + :type :text}}} + :parameters [{:type "category" + :target [:variable [:template-tag "names_list"]] + :value ["BBQ", "Bakery", "Bar"]}]})))) + (testing "Make sure arrays of values also work for 'field filter' params" + (is (= {:query "SELECT * FROM CATEGORIES WHERE \"PUBLIC\".\"USERS\".\"ID\" IN (?, ?, ?)", + :params ["BBQ" "Bakery" "Bar"]} + (expand* + {:native {:query "SELECT * FROM CATEGORIES WHERE {{names_list}}" + :template-tags {"names_list" {:name "names_list" + :display-name "Names List" + :type :dimension + :dimension [:field-id (mt/id :users :id)]}}} + :parameters [{:type :text + :target [:dimension [:template-tag "names_list"]] + :value ["BBQ", "Bakery", "Bar"]}]}))))) diff --git a/test/metabase/driver/sql/parameters/substitution_test.clj b/test/metabase/driver/sql/parameters/substitution_test.clj new file mode 100644 index 0000000000000000000000000000000000000000..5bb00c2cd83ef1ae132aa50777d92191d4613fc1 --- /dev/null +++ b/test/metabase/driver/sql/parameters/substitution_test.clj @@ -0,0 +1,11 @@ +(ns metabase.driver.sql.parameters.substitution-test + (:require [clojure.test :refer :all] + [metabase.driver :as driver] + [metabase.driver.sql.parameters.substitution :as substitution])) + +(deftest honeysql->replacement-snippet-info-test + (driver/with-driver :h2 + (testing "make sure we handle quotes inside names correctly!" + (is (= {:replacement-snippet "\"test-data\".\"PUBLIC\".\"checkins\".\"date\"" + :prepared-statement-args nil} + (#'substitution/honeysql->replacement-snippet-info :test-data.PUBLIC.checkins.date)))))) diff --git a/test/metabase/driver/sql/query_processor_test.clj b/test/metabase/driver/sql/query_processor_test.clj index b0ed17c7c7567b0dd212b5874713add0ed4890a5..590fb5eaf8efc67a11d4f4ff2334284d1a17941d 100644 --- a/test/metabase/driver/sql/query_processor_test.clj +++ b/test/metabase/driver/sql/query_processor_test.clj @@ -102,7 +102,7 @@ :from [(id :table "PUBLIC" "CHECKINS")] :where [:> (id :field "PUBLIC" "CHECKINS" "DATE") - #inst "2015-01-01T00:00:00.000-00:00"]} + #t "2015-01-01T00:00:00.000-00:00"]} (id :table-alias "source")]] :left-join [[(id :table "PUBLIC" "VENUES") (bound-alias :source (id :table-alias "v"))] [:= @@ -123,7 +123,7 @@ :fields [$id [:datetime-field $date :default] $user_id $venue_id] :filter [:> $date - [:absolute-datetime #inst "2015-01-01T00:00:00.000000000-00:00" :default]],}, + [:absolute-datetime #t "2015-01-01T00:00:00.000000000-00:00" :default]],}, :aggregation [[:count]] :order-by [[:asc [:joined-field "v" $venues.name]]] :breakout [[:joined-field "v" $venues.name]], diff --git a/test/metabase/driver/sql/util/unprepare_test.clj b/test/metabase/driver/sql/util/unprepare_test.clj index 3b72703bf8c0b20a6df3fd1b42618905ba01e3cb..f983ba6cab2a421a59dabcd399edea986ab121af 100644 --- a/test/metabase/driver/sql/util/unprepare_test.clj +++ b/test/metabase/driver/sql/util/unprepare_test.clj @@ -1,9 +1,11 @@ (ns metabase.driver.sql.util.unprepare-test (:require [clojure.string :as str] [expectations :refer [expect]] + [java-time :as t] [metabase.driver :as driver] - [metabase.driver.sql.util.unprepare :as unprepare]) - (:import java.util.Date)) + [metabase.driver.sql.util.unprepare :as unprepare] + [metabase.util.date-2 :as u.date]) + (:import java.time.OffsetDateTime)) ;; check simple unprepare with only one string arg (expect @@ -14,26 +16,28 @@ ;; ok, thry to trip it up -- multiple args: string, boolean, and date; `??` which should not be replaced by a value (expect - "SELECT 'Cam''s Cool Toucan' FROM TRUE WHERE x ?? y AND z = timestamp('2017-01-01T00:00:00.000Z')" + "SELECT 'Cam''s Cool Toucan' FROM TRUE WHERE x ?? y AND z = timestamp with time zone '2017-01-01 00:00:00.000Z'" (unprepare/unprepare :sql ["SELECT ? FROM ? WHERE x ?? y AND z = ?" "Cam's Cool Toucan" true - #inst "2017-01-01T00:00:00.000Z"])) + (t/offset-date-time "2017-01-01T00:00:00.000Z")])) ;; check that we can override methods for unpreparing values of specific classes (driver/register! ::unprepare-test, :parent :sql, :abstract? true) -(defmethod unprepare/unprepare-value [::unprepare-test String] [_ value] +(defmethod unprepare/unprepare-value [::unprepare-test String] + [_ value] (str \' (str/replace value "'" "\\\\'") \')) -(defmethod unprepare/unprepare-value [::unprepare-test Date] [_ value] - (unprepare/unprepare-date-with-iso-8601-fn :from_iso8601_timestamp value)) +(defmethod unprepare/unprepare-value [::unprepare-test OffsetDateTime] + [_ t] + (format "from_iso8601_timestamp('%s')" (u.date/format t))) (expect - "SELECT 'Cam\\'s Cool Toucan' FROM TRUE WHERE x ?? y AND z = from_iso8601_timestamp('2017-01-01T00:00:00.000Z')" + "SELECT 'Cam\\'s Cool Toucan' FROM TRUE WHERE x ?? y AND z = from_iso8601_timestamp('2017-01-01T00:00:00Z')" (unprepare/unprepare ::unprepare-test ["SELECT ? FROM ? WHERE x ?? y AND z = ?" "Cam's Cool Toucan" true - #inst "2017-01-01T00:00:00.000Z"])) + (t/offset-date-time "2017-01-01T00:00:00.000Z")])) diff --git a/test/metabase/driver/sql_jdbc/execute_test.clj b/test/metabase/driver/sql_jdbc/execute_test.clj index ef2f72db550db71e8851cbe8286e6b2bfde4b018..ea1f0d3f941dc9092a937996e812a1490aa73fef 100644 --- a/test/metabase/driver/sql_jdbc/execute_test.clj +++ b/test/metabase/driver/sql_jdbc/execute_test.clj @@ -4,7 +4,9 @@ [clojure.string :as str] [expectations :refer [expect]] [metabase + [driver :as driver] [query-processor :as qp] + [test :as mt] [util :as u]] [metabase.driver.sql-jdbc-test :as sql-jdbc-test] [metabase.driver.sql-jdbc.execute :as sql-jdbc.execute] @@ -40,7 +42,7 @@ `(do-with-max-rows (fn [] ~@body))) ;; We should be setting statement max rows based on appropriate limits when running queries (Snowflake runs tests with -(datasets/expect-with-drivers @sql-jdbc-test/sql-jdbc-drivers +(datasets/expect-with-drivers (sql-jdbc-test/sql-jdbc-drivers) {:max-rows 10} (with-max-rows (qp/process-query @@ -49,7 +51,7 @@ :query {:source-table (data/id :venues) :limit 10}}))) -(datasets/expect-with-drivers @sql-jdbc-test/sql-jdbc-drivers +(datasets/expect-with-drivers (sql-jdbc-test/sql-jdbc-drivers) {:max-rows 5} (with-max-rows (qp/process-query @@ -60,7 +62,7 @@ :constraints {:max-results 5}}))) -(datasets/expect-with-drivers @sql-jdbc-test/sql-jdbc-drivers +(datasets/expect-with-drivers (sql-jdbc-test/sql-jdbc-drivers) {:max-rows 15} (with-max-rows (qp/process-query @@ -223,11 +225,12 @@ sql-jdbc.execute/set-timezone! (let [orig @#'sql-jdbc.execute/set-timezone!] - (fn [driver {:keys [report-timezone], :as settings} connection] + (fn [driver report-timezone connection] (deliver timezone report-timezone) - (orig driver settings connection)))] + (orig driver report-timezone connection)))] (qp.tu/with-everything-store - (sql-jdbc.execute/execute-query driver query)) + (driver/with-driver driver + (sql-jdbc.execute/execute-query driver query))) {:ran-with-timezone? (u/deref-with-timeout ran-with-timezone? 1000) :timezone (u/deref-with-timeout timezone 1000)}))) @@ -241,9 +244,11 @@ (expect {:ran-with-timezone? true, :timezone "US/Pacific"} - (ran-with-timezone? - :h2 - {:database (data/id) - :type :native - :native {:query "SELECT * FROM VENUES LIMIT 1;"} - :settings {:report-timezone "US/Pacific"}})) + (with-redefs [driver/supports? (constantly true) + sql-jdbc.execute/set-timezone! (constantly nil)] + (mt/with-report-timezone-id "US/Pacific" + (ran-with-timezone? + :h2 + {:database (data/id) + :type :native + :native {:query "SELECT * FROM VENUES LIMIT 1;"}})))) diff --git a/test/metabase/driver/sql_jdbc/native_test.clj b/test/metabase/driver/sql_jdbc/native_test.clj index 73b0647831c29bd1d3789840532a8602533b6fbb..775a22bebfbf2229d93d095c341f0cc3872d606f 100644 --- a/test/metabase/driver/sql_jdbc/native_test.clj +++ b/test/metabase/driver/sql_jdbc/native_test.clj @@ -1,6 +1,6 @@ (ns metabase.driver.sql-jdbc.native-test "Tests for running native queries against SQL databases." - (:require [expectations :refer [expect]] + (:require [clojure.test :refer :all] [medley.core :as m] [metabase.query-processor :as qp] [metabase.test @@ -10,55 +10,53 @@ [metabase.util.schema :as su] [schema.core :as s])) -;; Just check that a basic query works -(expect - {:status :completed - :row_count 2 - :data {:rows [[100] - [99]] - :cols [{:name "ID" - :display_name "ID" - :base_type :type/Integer - :source :native - :field_ref [:field-literal "ID" :type/Integer]}] - :native_form {:query "SELECT ID FROM VENUES ORDER BY ID DESC LIMIT 2"} - :requested_timezone "UTC" - :results_timezone "UTC"}} - (-> (qp/process-query {:native {:query "SELECT ID FROM VENUES ORDER BY ID DESC LIMIT 2"} - :type :native - :database (data/id)}) - (m/dissoc-in [:data :results_metadata]) - (m/dissoc-in [:data :insights]))) +(deftest basic-query-test + (is (= {:status :completed + :row_count 2 + :data {:rows [[100] + [99]] + :cols [{:name "ID" + :display_name "ID" + :base_type :type/Integer + :source :native + :field_ref [:field-literal "ID" :type/Integer]}] + :native_form {:query "SELECT ID FROM VENUES ORDER BY ID DESC LIMIT 2"} + :results_timezone "UTC"}} + (-> (qp/process-query {:native {:query "SELECT ID FROM VENUES ORDER BY ID DESC LIMIT 2"} + :type :native + :database (data/id)}) + (m/dissoc-in [:data :results_metadata]) + (m/dissoc-in [:data :insights]))) + "Check that a basic query works")) -;; Check that column ordering is maintained -(expect - {:status :completed - :row_count 2 - :data {:rows [[100 "Mohawk Bend" 46] - [99 "Golden Road Brewing" 10]] - :cols [{:name "ID" - :display_name "ID" - :source :native - :base_type :type/Integer - :field_ref [:field-literal "ID" :type/Integer]} - {:name "NAME" - :display_name "NAME" - :source :native - :base_type :type/Text - :field_ref [:field-literal "NAME" :type/Text]} - {:name "CATEGORY_ID" - :display_name "CATEGORY_ID" - :source :native - :base_type :type/Integer - :field_ref [:field-literal "CATEGORY_ID" :type/Integer]}] - :native_form {:query "SELECT ID, NAME, CATEGORY_ID FROM VENUES ORDER BY ID DESC LIMIT 2"} - :requested_timezone "UTC" - :results_timezone "UTC"}} - (-> (qp/process-query {:native {:query "SELECT ID, NAME, CATEGORY_ID FROM VENUES ORDER BY ID DESC LIMIT 2"} - :type :native - :database (data/id)}) - (m/dissoc-in [:data :results_metadata]) - (m/dissoc-in [:data :insights]))) +(deftest column-ordering-test + (is (= {:status :completed + :row_count 2 + :data {:rows [[100 "Mohawk Bend" 46] + [99 "Golden Road Brewing" 10]] + :cols [{:name "ID" + :display_name "ID" + :source :native + :base_type :type/Integer + :field_ref [:field-literal "ID" :type/Integer]} + {:name "NAME" + :display_name "NAME" + :source :native + :base_type :type/Text + :field_ref [:field-literal "NAME" :type/Text]} + {:name "CATEGORY_ID" + :display_name "CATEGORY_ID" + :source :native + :base_type :type/Integer + :field_ref [:field-literal "CATEGORY_ID" :type/Integer]}] + :native_form {:query "SELECT ID, NAME, CATEGORY_ID FROM VENUES ORDER BY ID DESC LIMIT 2"} + :results_timezone "UTC"}} + (-> (qp/process-query {:native {:query "SELECT ID, NAME, CATEGORY_ID FROM VENUES ORDER BY ID DESC LIMIT 2"} + :type :native + :database (data/id)}) + (m/dissoc-in [:data :results_metadata]) + (m/dissoc-in [:data :insights]))) + "Check that column ordering is maintained")) ;; Check that we get proper error responses for malformed SQL (tu/expect-schema diff --git a/test/metabase/driver/sql_jdbc_test.clj b/test/metabase/driver/sql_jdbc_test.clj index 4c46398022781943dc9ebe536b838eec99030fc8..bba9d464286cc1fd0cbb396854f7cc957b5ace84 100644 --- a/test/metabase/driver/sql_jdbc_test.clj +++ b/test/metabase/driver/sql_jdbc_test.clj @@ -1,10 +1,10 @@ (ns metabase.driver.sql-jdbc-test (:require [clojure.test :refer :all] - [expectations :refer [expect]] [metabase [driver :as driver] [query-processor :as qp] - [query-processor-test :as qp.test]] + [query-processor-test :as qp.test] + [util :as u]] [metabase.db.metadata-queries :as metadata-queries] [metabase.driver.util :as driver.u] [metabase.models @@ -15,89 +15,96 @@ [datasets :as datasets] [env :as tx.env] [interface :as tx]] - [metabase.test.util.log :as tu.log] - [metabase.util.date :as du]) - (:import java.sql.Time)) + [metabase.test.util.log :as tu.log])) -(defonce ^{:doc "Set of drivers descending from `:sql-jdbc`, for test purposes (i.e. `expect-with-drivers`)"} - sql-jdbc-drivers +(defonce ^:private sql-jdbc-drivers* (delay - (du/profile "resolve @metabase.driver.sql-jdbc-test/sql-jdbc-drivers" - (set - (for [driver @tx.env/test-drivers - :when (isa? driver/hierarchy (driver/the-driver driver) (driver/the-driver :sql-jdbc))] - (tx/the-driver-with-test-extensions driver)))))) - - -;; DESCRIBE-DATABASE -(expect - {:tables (set (for [table ["CATEGORIES" "VENUES" "CHECKINS" "USERS"]] - {:name table, :schema "PUBLIC", :description nil}))} - (driver/describe-database :h2 (data/db))) - -;; DESCRIBE-TABLE -(expect - {:name "VENUES" - :schema "PUBLIC" - :fields #{{:name "NAME", - :database-type "VARCHAR" - :base-type :type/Text} - {:name "LATITUDE" - :database-type "DOUBLE" - :base-type :type/Float} - {:name "LONGITUDE" - :database-type "DOUBLE" - :base-type :type/Float} - {:name "PRICE" - :database-type "INTEGER" - :base-type :type/Integer} - {:name "CATEGORY_ID" - :database-type "INTEGER" - :base-type :type/Integer} - {:name "ID" - :database-type "BIGINT" - :base-type :type/BigInteger - :pk? true}}} - (driver/describe-table :h2 (data/db) (Table (data/id :venues)))) - -;; DESCRIBE-TABLE-FKS -(expect - #{{:fk-column-name "CATEGORY_ID" - :dest-table {:name "CATEGORIES" - :schema "PUBLIC"} - :dest-column-name "ID"}} - (driver/describe-table-fks :h2 (data/db) (Table (data/id :venues)))) - -;;; TABLE-ROWS-SAMPLE -(datasets/expect-with-drivers @sql-jdbc-drivers - [["20th Century Cafe"] - ["25°"] - ["33 Taps"] - ["800 Degrees Neapolitan Pizzeria"] - ["BCD Tofu House"]] - (->> (metadata-queries/table-rows-sample (Table (data/id :venues)) - [(Field (data/id :venues :name))]) - ;; since order is not guaranteed do some sorting here so we always get the same results - (sort-by first) - (take 5))) - - -;;; TABLE-ROWS-SEQ -(datasets/expect-with-drivers @sql-jdbc-drivers - [{:name "Red Medicine", :price 3, :category_id 4, :id 1} - {:name "Stout Burgers & Beers", :price 2, :category_id 11, :id 2} - {:name "The Apple Pan", :price 2, :category_id 11, :id 3} - {:name "Wurstküche", :price 2, :category_id 29, :id 4} - {:name "Brite Spot Family Restaurant", :price 2, :category_id 20, :id 5}] - (for [row (take 5 (sort-by :id (driver/table-rows-seq driver/*driver* - (data/db) - (Table (data/id :venues)))))] - ;; different DBs use different precisions for these - (-> (dissoc row :latitude :longitude) - (update :price int) - (update :category_id int) - (update :id int)))) - + (u/profile "resolve sql-jdbc-drivers" + (set + (for [driver (tx.env/test-drivers) + :when (isa? driver/hierarchy (driver/the-driver driver) (driver/the-driver :sql-jdbc))] + (tx/the-driver-with-test-extensions driver)))))) + +(def ^{:arglists '([])} sql-jdbc-drivers + "Set of drivers descending from `:sql-jdbc`, for test purposes (i.e. `expect-with-drivers`). + + You should use this as a function call going forward, e.g. + + (sql-jdbc-drivers) + + but for historic reasons, it can also be dereffed as if it were a delay (as it was in the past)" + (reify + clojure.lang.IDeref + (deref [_] + @sql-jdbc-drivers*) + clojure.lang.IFn + (invoke [_] + @sql-jdbc-drivers*))) + +(deftest describe-database-test + (is (= {:tables (set (for [table ["CATEGORIES" "VENUES" "CHECKINS" "USERS"]] + {:name table, :schema "PUBLIC", :description nil}))} + (driver/describe-database :h2 (data/db))))) + +(deftest describe-table-test + (is (= {:name "VENUES" + :schema "PUBLIC" + :fields #{{:name "NAME", + :database-type "VARCHAR" + :base-type :type/Text} + {:name "LATITUDE" + :database-type "DOUBLE" + :base-type :type/Float} + {:name "LONGITUDE" + :database-type "DOUBLE" + :base-type :type/Float} + {:name "PRICE" + :database-type "INTEGER" + :base-type :type/Integer} + {:name "CATEGORY_ID" + :database-type "INTEGER" + :base-type :type/Integer} + {:name "ID" + :database-type "BIGINT" + :base-type :type/BigInteger + :pk? true}}} + (driver/describe-table :h2 (data/db) (Table (data/id :venues)))))) + +(deftest describe-table-fks-test + (is (= #{{:fk-column-name "CATEGORY_ID" + :dest-table {:name "CATEGORIES" + :schema "PUBLIC"} + :dest-column-name "ID"}} + (driver/describe-table-fks :h2 (data/db) (Table (data/id :venues)))))) + +(deftest table-rows-sample-test + (datasets/test-drivers (sql-jdbc-drivers) + (is (= [["20th Century Cafe"] + ["25°"] + ["33 Taps"] + ["800 Degrees Neapolitan Pizzeria"] + ["BCD Tofu House"]] + (->> (metadata-queries/table-rows-sample (Table (data/id :venues)) + [(Field (data/id :venues :name))]) + ;; since order is not guaranteed do some sorting here so we always get the same results + (sort-by first) + (take 5)))))) + +(deftest table-rows-seq-test + (datasets/test-drivers (sql-jdbc-drivers) + (is (= [{:name "Red Medicine", :price 3, :category_id 4, :id 1} + {:name "Stout Burgers & Beers", :price 2, :category_id 11, :id 2} + {:name "The Apple Pan", :price 2, :category_id 11, :id 3} + {:name "Wurstküche", :price 2, :category_id 29, :id 4} + {:name "Brite Spot Family Restaurant", :price 2, :category_id 20, :id 5}] + (for [row (take 5 (sort-by :id (driver/table-rows-seq driver/*driver* + (data/db) + (Table (data/id :venues)))))] + ;; different DBs use different precisions for these + (-> (dissoc row :latitude :longitude) + (update :price int) + (update :category_id int) + (update :id int))))))) ;;; Make sure invalid ssh credentials are detected if a direct connection is possible (datasets/expect-with-driver :postgres @@ -124,13 +131,14 @@ e) (some-> (.getCause e) recur)))))) + ;;; --------------------------------- Tests for splice-parameters-into-native-query ---------------------------------- ;; test splicing a single param ;; ;; (This test won't work if a driver that doesn't use single quotes for string literals comes along. We can cross that ;; bridge when we get there.) -(datasets/expect-with-drivers @sql-jdbc-drivers +(datasets/expect-with-drivers (sql-jdbc-drivers) {:query "SELECT * FROM birds WHERE name = 'Reggae'" :params nil} (driver/splice-parameters-into-native-query driver/*driver* @@ -138,7 +146,7 @@ :params ["Reggae"]})) ;; test splicing multiple params -(datasets/expect-with-drivers @sql-jdbc-drivers +(datasets/expect-with-drivers (sql-jdbc-drivers) {:query "SELECT * FROM birds WHERE name = 'Reggae' AND type = 'toucan' AND favorite_food = 'blueberries';", :params nil} @@ -148,7 +156,7 @@ ;; I think we're supposed to ignore multiple question narks, only single ones should get substituted ;; (`??` becomes `?` in JDBC, which is used for Postgres as a "key exists?" JSON operator amongst other uses) -(datasets/expect-with-drivers @sql-jdbc-drivers +(datasets/expect-with-drivers (sql-jdbc-drivers) {:query "SELECT * FROM birds WHERE favorite_food ?? bird_info AND name = 'Reggae'", :params nil} @@ -157,7 +165,7 @@ :params ["Reggae"]})) ;; splicing with no params should no-op -(datasets/expect-with-drivers @sql-jdbc-drivers +(datasets/expect-with-drivers (sql-jdbc-drivers) {:query "SELECT * FROM birds;", :params []} (driver/splice-parameters-into-native-query driver/*driver* {:query "SELECT * FROM birds;" @@ -180,7 +188,7 @@ :native spliced})))))) (deftest splice-parameters-test - (datasets/test-drivers @sql-jdbc-drivers + (datasets/test-drivers (sql-jdbc-drivers) (data/$ids venues (testing "splicing a string" (is (= 3 @@ -203,13 +211,13 @@ (is (= 2 (spliced-count-of :places [:= $liked true])))))) (data/$ids checkins - (testing "splicing a `Date`" + (testing "splicing a date" (is (= 3 (spliced-count-of :checkins [:= $date "2014-03-05"])))))) ;; Oracle, Redshift, and SparkSQL don't have 'Time' types - (datasets/test-drivers (disj @sql-jdbc-drivers :oracle :redshift :sparksql) - (testing "splicing a `Time`" + (datasets/test-drivers (disj (sql-jdbc-drivers) :oracle :redshift :sparksql) + (testing "splicing a time" (is (= 2 (data/dataset test-data-with-time (data/$ids users - (spliced-count-of :users [:= $last_login_time (Time. 9 30 0)])))))))) + (spliced-count-of :users [:= $last_login_time "09:30"])))))))) diff --git a/test/metabase/driver_test.clj b/test/metabase/driver_test.clj index dab2a2bf64664f05f110305c39432a658fb60a11..d9c82aca145a856fee3ffd9180051e06e01e9b0f 100644 --- a/test/metabase/driver_test.clj +++ b/test/metabase/driver_test.clj @@ -1,41 +1,31 @@ (ns metabase.driver-test - (:require [expectations :refer [expect]] + (:require [clojure.test :refer :all] [metabase.driver :as driver] + [metabase.driver.impl :as impl] [metabase.plugins.classloader :as classloader])) (driver/register! ::test-driver, :abstract? true) (defmethod driver/supports? [::test-driver :foreign-keys] [_ _] true) -;; driver-supports? +(deftest driver-supports?-test + (is (= true + (driver/supports? ::test-driver :foreign-keys))) + (is (= false + (driver/supports? ::test-driver :expressions)))) -(expect true (driver/supports? ::test-driver :foreign-keys)) -(expect false (driver/supports? ::test-driver :expressions)) - -;; expected namespace for a non-namespaced driver should be `metabase.driver.<driver>` -(expect - 'metabase.driver.sql-jdbc - (#'driver/driver->expected-namespace :sql-jdbc)) - -;; for a namespaced driver it should be the namespace of the keyword -(expect - 'metabase.driver-test - (#'driver/driver->expected-namespace ::toucans)) - -;; calling `the-driver` should set the context classloader, important because driver plugin code exists there but not -;; elsewhere -(expect - @@#'classloader/shared-context-classloader - (do +(deftest the-driver-test + (testing (str "calling `the-driver` should set the context classloader, important because driver plugin code exists " + "there but not elsewhere") (.setContextClassLoader (Thread/currentThread) (ClassLoader/getSystemClassLoader)) (driver/the-driver :h2) - (.getContextClassLoader (Thread/currentThread)))) - -;; `driver/available?` should work for if `driver` is a string -- see #10135 -(expect - (with-redefs [driver/concrete? (constantly true)] - (driver/available? ::test-driver))) - -(expect - (with-redefs [driver/concrete? (constantly true)] - (driver/available? "metabase.driver-test/test-driver"))) + (is (= @@#'classloader/shared-context-classloader + (.getContextClassLoader (Thread/currentThread)))))) + +(deftest available?-test + (with-redefs [impl/concrete? (constantly true)] + (is (= true + (driver/available? ::test-driver))) + (is (= true + (driver/available? "metabase.driver-test/test-driver")) + "`driver/available?` should work for if `driver` is a string -- see #10135"))) diff --git a/test/metabase/email_test.clj b/test/metabase/email_test.clj index 3529f0d95177ea04d4d64b4969a4fd3e5e1bd5d2..93d2445dc488ab31f99d6dd3ac1c71b3ebb8d147 100644 --- a/test/metabase/email_test.clj +++ b/test/metabase/email_test.clj @@ -26,9 +26,10 @@ (swap! inbox assoc recipient (-> (get @inbox recipient []) (conj email))))) -(defn call-with-expected-messages - "Invokes `F`, blocking until `N` messages are found in the inbox" - [n f] +(defn do-with-expected-messages + "Invokes `thunk`, blocking until `n` messages are found in the inbox." + [n thunk] + {:pre [(number? n)]} (let [p (promise)] ;; Watches get invoked on the callers thread. In our case, this will be the future (or background thread) that is ;; sending the message. It will block that thread, counting the number of messages. If it has reached it's goal, @@ -39,11 +40,11 @@ (when (<= n num-msgs) (deliver p num-msgs))))) (try - (let [result (f) + (let [result (thunk) ;; This will block the calling thread (i.e. the test) waiting for the promise to be delivered. There is a - ;; very high timeout (1 minute) that we should never reach, but without it, if we do hit that scenario, it + ;; very high timeout (30 seconds) that we should never reach, but without it, if we do hit that scenario, it ;; should at least not hang forever in CI - promise-value (deref p 60000 ::timeout)] + promise-value (deref p 30000 ::timeout)] (if (= promise-value ::timeout) (throw (Exception. "Timed out while waiting for messages in the inbox")) result)) @@ -51,11 +52,11 @@ (remove-watch inbox ::inbox-watcher))))) (defmacro with-expected-messages - "Invokes `BODY`, waiting until `N` messages are found in the inbox before returning. This is useful if the code you + "Invokes `body`, waiting until `n` messages are found in the inbox before returning. This is useful if the code you are testing sends emails via a future or background thread. Using this will block the test, waiting for the messages to arrive before continuing." [n & body] - `(call-with-expected-messages ~n (fn [] ~@body))) + `(do-with-expected-messages ~n (fn [] ~@body))) (defn do-with-fake-inbox "Impl for `with-fake-inbox` macro; prefer using that rather than calling this directly." @@ -80,7 +81,7 @@ `(do-with-fake-inbox (fn [] ~@body))) (defn- create-email-body->regex-fn - "Returns a function expecting the email body structure. It will apply the regexes in `REGEX-SEQ` over the body and + "Returns a function expecting the email body structure. It will apply the regexes in `regex-seq` over the body and return map of the stringified regex as the key and a boolean as the value. True if it returns results via `re-find` false otherwise." [regex-seq] @@ -90,7 +91,7 @@ (map #(boolean (re-find % content)) regex-seq))))) (defn regex-email-bodies - "Will be apply each regex to each email body in the fake inbox. The body will be replaced by a map with the + "Return messages in the fake inbox whose body matches the regex(es). The body will be replaced by a map with the stringified regex as it's key and a boolean indicated that the regex returned results." [& regexes] (let [email-body->regex-boolean (create-email-body->regex-fn regexes)] diff --git a/test/metabase/http_client.clj b/test/metabase/http_client.clj index 23a1ae7f2f10c04e44091c741c36413a154a3d59..05f4fd4fe073fbd367a03f5aec99d29a360ac0f0 100644 --- a/test/metabase/http_client.clj +++ b/test/metabase/http_client.clj @@ -6,12 +6,13 @@ [string :as str] [test :as t]] [clojure.tools.logging :as log] + [java-time :as java-time] [metabase [config :as config] [util :as u]] [metabase.middleware.session :as mw.session] [metabase.test.initialize :as initialize] - [metabase.util.date :as du] + [metabase.util.date-2 :as u.date] [schema.core :as s])) ;;; build-url @@ -23,7 +24,7 @@ (defn build-url "Build an API URL for `localhost` and `MB_JETTY_PORT` with `url-param-kwargs`. - (build-url \"db/1\" {:x true}) -> \"http://localhost:3000/api/db/1?x=true\"" + (build-url \"db/1\" {:x true}) -> \"http://localhost:3000/api/db/1?x=true\"" [url url-param-kwargs] {:pre [(string? url) (u/maybe? map? url-param-kwargs)]} (str *url-prefix* url (when (seq url-param-kwargs) @@ -35,23 +36,41 @@ ;;; parse-response -(def ^:private ^:const auto-deserialize-dates-keys +(def ^:private auto-deserialize-dates-keys #{:created_at :updated_at :last_login :date_joined :started_at :finished_at :last_analyzed}) (defn- auto-deserialize-dates "Automatically recurse over `response` and look for keys that are known to correspond to dates. Parse their values and - convert to `java.sql.Timestamps`." + convert to java temporal types." [response] - (cond (sequential? response) (map auto-deserialize-dates response) - (map? response) (->> response - (map (fn [[k v]] - {k (cond - ;; Our tests only run in UTC, parsing timestamp strings as UTC - (contains? auto-deserialize-dates-keys k) (du/->Timestamp v du/utc) - (coll? v) (auto-deserialize-dates v) - :else v)})) - (into {})) - :else response)) + (cond (sequential? response) + (map auto-deserialize-dates response) + + (map? response) + (->> response + (map (fn [[k v]] + {k (cond + ;; `u.date/parse` converts OffsetDateTimes with `Z` offset to + ;; `ZonedDateTime` automatically (for better or worse) since this + ;; won't match what's actually in the DB convert it back to an `OffsetDateTime` + (contains? auto-deserialize-dates-keys k) + (try + (let [parsed (u.date/parse v)] + (if (java-time/zoned-date-time? parsed) + (java-time/offset-date-time parsed) + parsed)) + (catch Throwable _ + v)) + + (coll? v) + (auto-deserialize-dates v) + + :else + v)})) + (into {})) + + :else + response)) (defn- parse-response "Deserialize the JSON response or return as-is if that fails." @@ -60,7 +79,7 @@ body (try (auto-deserialize-dates (json/parse-string body keyword)) - (catch Throwable _ + (catch Throwable e (when-not (str/blank? body) body))))) @@ -69,7 +88,7 @@ (declare client) -(s/defn authenticate +(s/defn authenticate :- s/Str "Authenticate a test user with `username` and `password`, returning their Metabase Session token; or throw an Exception if that fails." [credentials :- {:username s/Str, :password s/Str}] @@ -150,11 +169,14 @@ [body [& {:as url-param-kwargs}]] (u/optional map? args)] [credentials method expected-status url body url-param-kwargs request-options])) +(def ^:private response-timeout-ms (* 15 1000)) + (defn client-full-response "Identical to `client` except returns the full HTTP response map, not just the body of the response" {:arglists '([credentials? method expected-status-code? url request-options? http-body-map? & url-kwargs])} [& args] - (apply -client (parse-http-client-args args))) + (u/with-timeout response-timeout-ms + (apply -client (parse-http-client-args args)))) (defn client "Perform an API call and return the response (for test purposes). diff --git a/test/metabase/integrations/ldap_test.clj b/test/metabase/integrations/ldap_test.clj index eae1b63d34d0c58c736016a29611e133f0456b85..0ad3bc1a860f27955a91c9bb9d832adfc58c88f5 100644 --- a/test/metabase/integrations/ldap_test.clj +++ b/test/metabase/integrations/ldap_test.clj @@ -105,6 +105,16 @@ (ldap.test/with-ldap-server (ldap/find-user "John.Smith@metabase.com"))) +;; Find by email should also work (also given our default settings and fixtures) +(expect + {:dn "cn=Fred Taylor,ou=People,dc=metabase,dc=com" + :first-name "Fred" + :last-name "Taylor" + :email "fred.taylor@metabase.com" + :groups []} + (ldap.test/with-ldap-server + (ldap/find-user "fred.taylor@metabase.com"))) + ;; LDAP group matching should identify Metabase groups using DN equality rules (expect #{1 2 3} diff --git a/test/metabase/metabot/instance_test.clj b/test/metabase/metabot/instance_test.clj index a5df6b828c8ac69fe83ffb2a6bad527b258ffd9e..943d97c6e620e78c2525b44bfcd8fbeab86f7447 100644 --- a/test/metabase/metabot/instance_test.clj +++ b/test/metabase/metabot/instance_test.clj @@ -1,7 +1,7 @@ (ns metabase.metabot.instance-test (:require [expectations :refer [expect]] [metabase.metabot.instance :as metabot.instance] - [metabase.util.date :as du])) + [metabase.util.date-2 :as u.date])) ;; test that if we're not the MetaBot based on Settings, our function to check is working correctly (expect @@ -23,7 +23,7 @@ (expect (do (#'metabot.instance/metabot-instance-uuid (str (java.util.UUID/randomUUID))) - (#'metabot.instance/metabot-instance-last-checkin (du/relative-date :minute -10 (#'metabot.instance/current-timestamp-from-db))) + (#'metabot.instance/metabot-instance-last-checkin (u.date/add (#'metabot.instance/current-timestamp-from-db) :minute -10)) (#'metabot.instance/check-and-update-instance-status!) (#'metabot.instance/am-i-the-metabot?))) diff --git a/test/metabase/middleware/auth_test.clj b/test/metabase/middleware/auth_test.clj index 5aca8276d6ae1acd05fbb3eb354022ed1eb61e2f..05752ab58bc53e62dc3ce13c81b10b389ba57eca 100644 --- a/test/metabase/middleware/auth_test.clj +++ b/test/metabase/middleware/auth_test.clj @@ -1,5 +1,6 @@ (ns metabase.middleware.auth-test (:require [expectations :refer [expect]] + [java-time :as t] [metabase.middleware [auth :as mw.auth] [session :as mw.session] @@ -9,8 +10,7 @@ [ring.mock.request :as mock] [toucan.db :as db] [toucan.util.test :as tt]) - (:import java.sql.Timestamp - java.util.UUID)) + (:import java.util.UUID)) ;; create a simple example of our middleware wrapped around a handler that simply returns the request (defn- auth-enforced-handler [request] @@ -60,7 +60,7 @@ (tt/with-temp Session [_ {:id session-id :user_id (test-users/user->id :rasta)}] (db/update-where! Session {:id session-id} - :created_at (Timestamp. 0)) + :created_at (t/instant 0)) (auth-enforced-handler (request-with-session-id session-id))))) diff --git a/test/metabase/middleware/log_test.clj b/test/metabase/middleware/log_test.clj new file mode 100644 index 0000000000000000000000000000000000000000..c480a0109f9248b37be728d17ec092c35884df63 --- /dev/null +++ b/test/metabase/middleware/log_test.clj @@ -0,0 +1,12 @@ +(ns metabase.middleware.log-test + (:require [clojure.test :refer :all] + [metabase.middleware.log :as log])) + +(deftest log-info-input-tests + (testing "log-info handles nil status input" + (is (true? + (try + (#'log/log-info nil) + true + (catch Throwable _ + false)))))) ; Make sure it didn't throw NPE diff --git a/test/metabase/middleware/session_test.clj b/test/metabase/middleware/session_test.clj index 11423c54cd947a76e6aee3ead0e75bab4917db9a..e5ae70175632962112c37a4d573b77ae9726ba43 100644 --- a/test/metabase/middleware/session_test.clj +++ b/test/metabase/middleware/session_test.clj @@ -1,68 +1,73 @@ (ns metabase.middleware.session-test - (:require [environ.core :as env] + (:require [clojure.test :refer :all] + [environ.core :as env] [expectations :refer [expect]] + [java-time :as t] [metabase.api.common :refer [*current-user* *current-user-id*]] [metabase.middleware.session :as mw.session] [metabase.test.data.users :as test-users] [ring.mock.request :as mock]) - (:import java.util.UUID - org.joda.time.DateTime)) - -;;; ----------------------------------------------- set-session-cookie ----------------------------------------------- - -;; let's see whether we can set a Session cookie using the default options -(let [uuid (UUID/randomUUID)] - (expect - ;; should unset the old SESSION_ID if it's present - {"metabase.SESSION_ID" - {:value nil - :expires (DateTime. 0) - :path "/"} - "metabase.SESSION" - {:value (str uuid) - :same-site :lax - :http-only true - :path "/" - :max-age 1209600}} - (-> (mw.session/set-session-cookie {} {} uuid) - :cookies))) - -;; if `MB_SESSION_COOKIES=true` we shouldn't set a `Max-Age` -(let [uuid (UUID/randomUUID)] - (expect - {:value (str uuid) - :same-site :lax - :http-only true - :path "/"} - (let [env env/env] - (with-redefs [env/env (assoc env :mb-session-cookies "true")] - (-> (mw.session/set-session-cookie {} {} uuid) - (get-in [:cookies "metabase.SESSION"])))))) + (:import java.util.UUID)) + +(deftest set-session-cookie-test + (let [uuid (UUID/randomUUID)] + (testing "should unset the old SESSION_ID if it's present" + (is (= {"metabase.SESSION_ID" + {:value nil + :expires "Thu, 1 Jan 1970 00:00:00 GMT" + :path "/"} + "metabase.SESSION" + {:value (str uuid) + :same-site :lax + :http-only true + :path "/" + :max-age 1209600}} + (-> (mw.session/set-session-cookie {} {} uuid) + :cookies)))) + (testing "if `MB_SESSION_COOKIES=true` we shouldn't set a `Max-Age`" + (is (= {:value (str uuid) + :same-site :lax + :http-only true + :path "/"} + (let [env env/env] + (with-redefs [env/env (assoc env :mb-session-cookies "true")] + (-> (mw.session/set-session-cookie {} {} uuid) + (get-in [:cookies "metabase.SESSION"]))))))))) ;; if request is an HTTPS request then we should set `:secure true`. There are several different headers we check for ;; this. Make sure they all work. -(defn- secure-cookie-for-headers? [headers] - (-> (mw.session/set-session-cookie {:headers headers} {} (UUID/randomUUID)) - (get-in [:cookies "metabase.SESSION" :secure]) - boolean)) - -(expect true (secure-cookie-for-headers? {"x-forwarded-proto" "https"})) -(expect false (secure-cookie-for-headers? {"x-forwarded-proto" "http"})) - -(expect true (secure-cookie-for-headers? {"x-forwarded-protocol" "https"})) -(expect false (secure-cookie-for-headers? {"x-forwarded-protocol" "http"})) - -(expect true (secure-cookie-for-headers? {"x-url-scheme" "https"})) -(expect false (secure-cookie-for-headers? {"x-url-scheme" "http"})) - -(expect true (secure-cookie-for-headers? {"x-forwarded-ssl" "on"})) -(expect false (secure-cookie-for-headers? {"x-forwarded-ssl" "off"})) - -(expect true (secure-cookie-for-headers? {"front-end-https" "on"})) -(expect false (secure-cookie-for-headers? {"front-end-https" "off"})) - -(expect true (secure-cookie-for-headers? {"origin" "https://mysite.com"})) -(expect false (secure-cookie-for-headers? {"origin" "http://mysite.com"})) +(deftest secure-cookie-test + (doseq [[headers expected] [[{"x-forwarded-proto" "https"} true] + [{"x-forwarded-proto" "http"} false] + [{"x-forwarded-protocol" "https"} true] + [{"x-forwarded-protocol" "http"} false] + [{"x-url-scheme" "https"} true] + [{"x-url-scheme" "http"} false] + [{"x-forwarded-ssl" "on"} true] + [{"x-forwarded-ssl" "off"} false] + [{"front-end-https" "on"} true] + [{"front-end-https" "off"} false] + [{"origin" "https://mysite.com"} true] + [{"origin" "http://mysite.com"} false]]] + (let [actual (-> (mw.session/set-session-cookie {:headers headers} {} (UUID/randomUUID)) + (get-in [:cookies "metabase.SESSION" :secure]) + boolean)] + (is (= expected + actual) + (format "With headers %s we %s set the 'secure' attribute on the session cookie" + (pr-str headers) (if expected "SHOULD" "SHOULD NOT")))))) + +(deftest session-expired-test + (testing "Session expiration time = 1 minute" + (doseq [[created-at expected msg] + [[nil true "nil created-at"] + [(t/offset-date-time) false "brand-new session"] + [#t "1970-01-01T00:00:00Z" true "really old session"] + [(t/instant (- (System/currentTimeMillis) 61000)) true "session that is 61 seconds old"] + [(t/instant (- (System/currentTimeMillis) 59000)) false "session that is 59 seconds old"]]] + (is (= expected + (#'mw.session/session-expired? {:created_at created-at} 1)) + (format "%s %s be expired." msg (if expected "SHOULD" "SHOULD NOT")))))) ;;; ---------------------------------------- TEST wrap-session-id middleware ----------------------------------------- diff --git a/test/metabase/models/dependency_test.clj b/test/metabase/models/dependency_test.clj index 3e07ac8e12f5bd2271c06a52b8e2739c61892e4a..7add2b471510a2156acdda1c97fd80c957df6670 100644 --- a/test/metabase/models/dependency_test.clj +++ b/test/metabase/models/dependency_test.clj @@ -5,7 +5,6 @@ [metabase.test [fixtures :as fixtures] [util :as tu]] - [metabase.util.date :as du] [toucan [db :as db] [models :as models]] @@ -55,12 +54,12 @@ :model_id 4 :dependent_on_model "test" :dependent_on_id 1 - :created_at (du/new-sql-timestamp)}] + :created_at :%now}] Dependency [_ {:model "Mock" :model_id 4 :dependent_on_model "foobar" :dependent_on_id 13 - :created_at (du/new-sql-timestamp)}]] + :created_at :%now}]] (format-dependencies (dep/retrieve-dependencies Mock 4)))) @@ -105,7 +104,7 @@ :model_id 1 :dependent_on_model "test" :dependent_on_id 5 - :created_at (du/new-sql-timestamp)}] + :created_at :%now}] (tu/with-model-cleanup [Dependency] (dep/update-dependencies! Mock 1 {:test [1 2]}) (format-dependencies (db/select Dependency, :model "Mock", :model_id 1))))) diff --git a/test/metabase/models/session_test.clj b/test/metabase/models/session_test.clj index 333389d969e76b2bf02c9cfaf17e9556548b4408..edfe1368823ef9849c300c5e13611c05599b149c 100644 --- a/test/metabase/models/session_test.clj +++ b/test/metabase/models/session_test.clj @@ -1,16 +1,12 @@ (ns metabase.models.session-test - (:require [expectations :refer :all] - [metabase.models - [session :refer :all] - [user :refer [User]]] + (:require [clojure.test :refer :all] + [metabase.models :refer [Session User]] + [metabase.models.session :as session] [metabase.test.util :as tu] - [metabase.util.date :as du] [toucan.db :as db] [toucan.util.test :as tt])) -;; first-session-for-user -(expect - "the-greatest-day-ever" +(deftest first-session-for-user-test (tt/with-temp User [{user-id :id} {:first_name (tu/random-name) :last_name (tu/random-name) :email (str (tu/random-name) "@metabase.com") @@ -18,17 +14,18 @@ (db/simple-insert-many! Session [{:id "the-greatest-day-ever" :user_id user-id - :created_at (du/->Timestamp #inst "1980-10-19T05:05:05.000Z")} + :created_at #t "1980-10-19T05:05:05.000Z"} {:id "even-more-greatness" :user_id user-id - :created_at (du/->Timestamp #inst "1980-10-19T05:08:05.000Z")} + :created_at #t "1980-10-19T05:08:05.000Z"} {:id "the-world-of-bi-changes-forever" :user_id user-id - :created_at (du/->Timestamp #inst "2015-10-21")} + :created_at #t "2015-10-21"} {:id "something-could-have-happened" :user_id user-id - :created_at (du/->Timestamp #inst "1999-12-31")} + :created_at #t "1999-12-31"} {:id "now" :user_id user-id - :created_at (du/new-sql-timestamp)}]) - (first-session-for-user user-id))) + :created_at :%now}]) + (is (= "the-greatest-day-ever" + (session/first-session-for-user user-id))))) diff --git a/test/metabase/models/setting/cache_test.clj b/test/metabase/models/setting/cache_test.clj index ff2c625f99cb7f5eda95cd35db1c325dd92d515d..e8b740818b7a34e2e60c88cf1d678b8d5cbb2b18 100644 --- a/test/metabase/models/setting/cache_test.clj +++ b/test/metabase/models/setting/cache_test.clj @@ -1,5 +1,6 @@ (ns metabase.models.setting.cache-test (:require [clojure.core.memoize :as memoize] + [clojure.test :refer :all] [expectations :refer [expect]] [honeysql.core :as hsql] [metabase @@ -9,9 +10,13 @@ [setting :refer [Setting]] [setting-test :as setting-test]] [metabase.models.setting.cache :as cache] - [metabase.test.util :as tu] + [metabase.test + [fixtures :as fixtures] + [util :as tu]] [toucan.db :as db])) +(use-fixtures :once (fixtures/initialize :db)) + ;;; --------------------------------------------- Cache Synchronization ---------------------------------------------- (defn- clear-cache! [] diff --git a/test/metabase/models/setting_test.clj b/test/metabase/models/setting_test.clj index 6c1b7ff30ed0a9422eaa72dbac86785b5a970371..b5815e24c49a401a7153d3ef9a6c60d275e6fe14 100644 --- a/test/metabase/models/setting_test.clj +++ b/test/metabase/models/setting_test.clj @@ -420,7 +420,7 @@ (-> (db/query {:select [:value] :from [:setting] :where [:= :key (name setting-key)]}) - first :value u/jdbc-clob->str)) + first :value)) ;; If encryption is *enabled*, make sure Settings get saved as encrypted! (expect @@ -451,13 +451,13 @@ :type :timestamp) (expect - java.sql.Timestamp + java.time.temporal.Temporal (:tag (meta #'test-timestamp-setting))) ;; make sure we can set & fetch the value and that it gets serialized/deserialized correctly (expect - #inst "2018-07-11T09:32:00.000Z" - (do (test-timestamp-setting #inst "2018-07-11T09:32:00.000Z") + #t "2018-07-11T09:32:00.000Z" + (do (test-timestamp-setting #t "2018-07-11T09:32:00.000Z") (test-timestamp-setting))) diff --git a/test/metabase/models/task_history_test.clj b/test/metabase/models/task_history_test.clj index e38f43ba185f8b19719290a8b8329ef78f001a3b..5b99e451cb8f3a814f4ee5f29703e363b4efc28c 100644 --- a/test/metabase/models/task_history_test.clj +++ b/test/metabase/models/task_history_test.clj @@ -1,38 +1,37 @@ (ns metabase.models.task-history-test - (:require [clj-time.core :as time] - [expectations :refer :all] + (:require [expectations :refer :all] + [java-time :as t] [metabase.models.task-history :refer :all] [metabase.test.util :as tu] [metabase.util :as u] - [metabase.util.date :as du] [toucan.db :as db] [toucan.util.test :as tt])) (defn add-second "Adds one second to `t`" [t] - (time/plus t (time/seconds 1))) + (t/plus t (t/seconds 1))) (defn add-10-millis "Adds 10 milliseconds to `t`" [t] - (time/plus t (time/millis 10))) + (t/plus t (t/millis 10))) (defn make-10-millis-task "Creates a map suitable for a `with-temp*` call for `TaskHistory`. Uses the `started_at` param sets the `ended_at` to 10 milliseconds later" [started-at] (let [ended-at (add-10-millis started-at)] - {:started_at (du/->Timestamp started-at) - :ended_at (du/->Timestamp ended-at) - :duration (du/calculate-duration started-at ended-at)})) + {:started_at started-at + :ended_at ended-at + :duration (.between java.time.temporal.ChronoUnit/MILLIS started-at ended-at)})) ;; Basic cleanup test where older rows are deleted and newer rows kept (let [task-4 (tu/random-name) task-5 (tu/random-name)] (expect #{task-4 task-5} - (let [t1-start (time/now) + (let [t1-start (t/zoned-date-time) t2-start (add-second t1-start) t3-start (add-second t2-start) t4-start (add-second t3-start) @@ -57,7 +56,7 @@ (expect [#{task-1 task-2} #{task-1 task-2}] - (let [t1-start (time/now) + (let [t1-start (t/zoned-date-time) t2-start (add-second t1-start)] (tt/with-temp* [TaskHistory [t1 (assoc (make-10-millis-task t1-start) :task task-1)] diff --git a/test/metabase/pulse/render/body_test.clj b/test/metabase/pulse/render/body_test.clj index d903fbd8e5850b76e6a60e42f6b682ef5e0611cc..f79532b612a4e012bc508d8a442d70eb8f0a7abb 100644 --- a/test/metabase/pulse/render/body_test.clj +++ b/test/metabase/pulse/render/body_test.clj @@ -1,14 +1,15 @@ (ns metabase.pulse.render.body-test - (:require [clojure.walk :as walk] + (:require [clojure + [test :refer :all] + [walk :as walk]] [expectations :refer [expect]] [hiccup.core :refer [html]] [metabase.pulse.render [body :as body] [common :as common] - [test-util :as render.tu]]) - (:import java.util.TimeZone)) + [test-util :as render.tu]])) -(def ^:private pacific-tz (TimeZone/getTimeZone "America/Los_Angeles")) +(def ^:private pacific-tz "America/Los_Angeles") (def ^:private test-columns [{:name "ID", @@ -316,37 +317,35 @@ :base_type :type/BigInteger :special_type nil}]) -;; Render a bar graph with non-nil values for the x and y axis -(expect - [true true] - (let [result (render-bar-graph {:cols default-columns - :rows [[10.0 1] [5.0 10] [2.50 20] [1.25 30]]})] - [(some #(= "Price" %) result) - (some #(= "NumPurchased" %) result)])) - -;; Check to make sure we allow nil values for the y-axis -(expect - [true true] - (let [result (render-bar-graph {:cols default-columns - :rows [[10.0 1] [5.0 10] [2.50 20] [1.25 nil]]})] - [(some #(= "Price" %) result) - (some #(= "NumPurchased" %) result)])) - -;; Check to make sure we allow nil values for the y-axis -(expect - [true true] - (let [result (render-bar-graph {:cols default-columns - :rows [[10.0 1] [5.0 10] [2.50 20] [nil 30]]})] - [(some #(= "Price" %) result) - (some #(= "NumPurchased" %) result)])) - -;; Check to make sure we allow nil values for both x and y on different rows -(expect - [true true] - (let [result (render-bar-graph {:cols default-columns - :rows [[10.0 1] [5.0 10] [nil 20] [1.25 nil]]})] - [(some #(= "Price" %) result) - (some #(= "NumPurchased" %) result)])) +(deftest render-bar-graph-test + (testing "Render a bar graph with non-nil values for the x and y axis" + (let [result (render-bar-graph {:cols default-columns + :rows [[10.0 1] [5.0 10] [2.50 20] [1.25 30]]})] + (is (= true + (some #(= "Price" %) result))) + (is (= true + (some #(= "NumPurchased" %) result))))) + (testing "Check to make sure we allow nil values for the y-axis" + (let [result (render-bar-graph {:cols default-columns + :rows [[10.0 1] [5.0 10] [2.50 20] [1.25 nil]]})] + (is (= true + (some #(= "Price" %) result))) + (is (= true + (some #(= "NumPurchased" %) result))))) + (testing "Check to make sure we allow nil values for the y-axis" + (let [result (render-bar-graph {:cols default-columns + :rows [[10.0 1] [5.0 10] [2.50 20] [nil 30]]})] + (is (= true + (some #(= "Price" %) result))) + (is (= true + (some #(= "NumPurchased" %) result))))) + (testing "Check to make sure we allow nil values for both x and y on different rows" + (let [result (render-bar-graph {:cols default-columns + :rows [[10.0 1] [5.0 10] [nil 20] [1.25 nil]]})] + (is (= true + (some #(= "Price" %) result))) + (is (= true + (some #(= "NumPurchased" %) result)))))) ;; Test rendering a sparkline ;; @@ -359,37 +358,29 @@ :attachments count)) -;; Test that we can render a sparkline with all valid values -(expect - 1 - (render-sparkline - {:cols default-columns - :rows [[10.0 1] [5.0 10] [2.50 20] [1.25 30]]})) - -;; Tex that we can have a nil value in the middle -(expect - 1 - (render-sparkline - {:cols default-columns - :rows [[10.0 1] [11.0 2] [5.0 nil] [2.50 20] [1.25 30]]})) - -;; Test that we can have a nil value for the y-axis at the end of the results -(expect - 1 - (render-sparkline - {:cols default-columns - :rows [[10.0 1] [11.0 2] [2.50 20] [1.25 nil]]})) - -;; Test that we can have a nil value for the x-axis at the end of the results -(expect - 1 - (render-sparkline - {:cols default-columns - :rows [[10.0 1] [11.0 2] [nil 20] [1.25 30]]})) - -;; Test that we can have a nil value for both x and y axis for different rows -(expect - 1 - (render-sparkline - {:cols default-columns - :rows [[10.0 1] [11.0 2] [nil 20] [1.25 nil]]})) +(deftest render-sparkline-test + (testing "Test that we can render a sparkline with all valid values" + (is (= 1 + (render-sparkline + {:cols default-columns + :rows [[10.0 1] [5.0 10] [2.50 20] [1.25 30]]})))) + (testing "Tex that we can have a nil value in the middle" + (is (= 1 + (render-sparkline + {:cols default-columns + :rows [[10.0 1] [11.0 2] [5.0 nil] [2.50 20] [1.25 30]]})))) + (testing "Test that we can have a nil value for the y-axis at the end of the results" + (is (= 1 + (render-sparkline + {:cols default-columns + :rows [[10.0 1] [11.0 2] [2.50 20] [1.25 nil]]})))) + (testing "Test that we can have a nil value for the x-axis at the end of the results" + (is (= 1 + (render-sparkline + {:cols default-columns + :rows [[10.0 1] [11.0 2] [nil 20] [1.25 30]]})))) + (testing "Test that we can have a nil value for both x and y axis for different rows" + (is (= 1 + (render-sparkline + {:cols default-columns + :rows [[10.0 1] [11.0 2] [nil 20] [1.25 nil]]}))))) diff --git a/test/metabase/pulse/render/datetime_test.clj b/test/metabase/pulse/render/datetime_test.clj index b8e808bc0592d6a1eaf7fae518f1ee5345406ec4..70b60d92b76aa70d5e938f5ce42bf7f937d8d572 100644 --- a/test/metabase/pulse/render/datetime_test.clj +++ b/test/metabase/pulse/render/datetime_test.clj @@ -1,80 +1,46 @@ (ns metabase.pulse.render.datetime-test - (:require [clj-time.core :as t] - [expectations :refer [expect]] - [metabase.pulse.render.datetime :as datetime] - [metabase.util.date :as du]) - (:import java.util.TimeZone)) + (:require [clojure.test :refer :all] + [java-time :as t] + [metabase.pulse.render.datetime :as datetime])) -(def ^:private now "2020-07-16T18:04:00Z") +(def ^:private now "2020-07-16T18:04:00Z[UTC]") -(defn- utc [] (TimeZone/getTimeZone "UTC")) - -(defn- format-timestamp-pair +(defn- format-temporal-string-pair [unit datetime-str-1 datetime-str-2] - (with-redefs [t/now (constantly (du/str->date-time now (utc)))] - (datetime/format-timestamp-pair (utc) [datetime-str-1 datetime-str-2] {:unit unit}))) - -;; check that we can render relative timestamps for the various units we support + (t/with-clock (t/mock-clock (t/zoned-date-time now) (t/zone-id "UTC")) + (datetime/format-temporal-string-pair "UTC" [datetime-str-1 datetime-str-2] {:unit unit}))) ;; I don't know what exactly this is used for but we should at least make sure it's working correctly, see (#10326) - -(expect - ["Yesterday" "Previous day"] - (format-timestamp-pair :day "2020-07-15T18:04:00Z" nil)) - -(expect - ["Today" "Previous day"] - (format-timestamp-pair :day now nil)) - -(expect - ["Jul 18, 2020" "Jul 20, 2020"] - (format-timestamp-pair :day "2020-07-18T18:04:00Z" "2020-07-20T18:04:00Z")) - -(expect - ["Last week" "Previous week"] - (format-timestamp-pair :week "2020-07-09T18:04:00Z" nil)) - -(expect - ["This week" "Previous week"] - (format-timestamp-pair :week now nil)) - -(expect - ["Week 5 - 2020" "Week 13 - 2020"] - (format-timestamp-pair :week "2020-02-01T18:04:00Z" "2020-03-25T18:04:00Z")) - -(expect - ["This month" "Previous month"] - (format-timestamp-pair :month "2020-07-16T18:04:00Z" nil)) - -(expect - ["This month" "Previous month"] - (format-timestamp-pair :month now nil)) - -(expect - ["July 2021" "July 2022"] - (format-timestamp-pair :month "2021-07-16T18:04:00Z" "2022-07-16T18:04:00Z")) - -(expect - ["Last quarter" "Previous quarter"] - (format-timestamp-pair :quarter "2020-05-16T18:04:00Z" nil)) - -(expect - ["This quarter" "Previous quarter"] - (format-timestamp-pair :quarter now nil)) - -(expect - ["Q3 - 2018" "Q3 - 2019"] - (format-timestamp-pair :quarter "2018-07-16T18:04:00Z" "2019-07-16T18:04:00Z")) - -(expect - ["Last year" "Previous year"] - (format-timestamp-pair :year "2019-07-16T18:04:00Z" nil)) - -(expect - ["This year" "Previous year"] - (format-timestamp-pair :year now nil)) - -;; No special formatting for year? :shrug: -(expect - ["2018-07-16T18:04:00Z" "2021-07-16T18:04:00Z"] - (format-timestamp-pair :year "2018-07-16T18:04:00Z" "2021-07-16T18:04:00Z")) +(deftest format-temporal-string-pair-test + (testing "check that we can render relative timestamps for the various units we support" + (is (= ["Yesterday" "Previous day"] + (format-temporal-string-pair :day "2020-07-15T18:04:00Z" nil))) + (is (= ["Today" "Previous day"] + (format-temporal-string-pair :day now nil))) + (is (= ["Jul 18, 2020" "Jul 20, 2020"] + (format-temporal-string-pair :day "2020-07-18T18:04:00Z" "2020-07-20T18:04:00Z"))) + (is (= ["Last week" "Previous week"] + (format-temporal-string-pair :week "2020-07-09T18:04:00Z" nil))) + (is (= ["This week" "Previous week"] + (format-temporal-string-pair :week now nil))) + (is (= ["Week 5 - 2020" "Week 13 - 2020"] + (format-temporal-string-pair :week "2020-02-01T18:04:00Z" "2020-03-25T18:04:00Z"))) + (is (= ["This month" "Previous month"] + (format-temporal-string-pair :month "2020-07-16T18:04:00Z" nil))) + (is (= ["This month" "Previous month"] + (format-temporal-string-pair :month now nil))) + (is (= ["July 2021" "July 2022"] + (format-temporal-string-pair :month "2021-07-16T18:04:00Z" "2022-07-16T18:04:00Z"))) + (is (= ["Last quarter" "Previous quarter"] + (format-temporal-string-pair :quarter "2020-05-16T18:04:00Z" nil))) + (is (= ["This quarter" "Previous quarter"] + (format-temporal-string-pair :quarter now nil))) + (is (= ["Q3 - 2018" "Q3 - 2019"] + (format-temporal-string-pair :quarter "2018-07-16T18:04:00Z" "2019-07-16T18:04:00Z"))) + (is (= ["Last year" "Previous year"] + (format-temporal-string-pair :year "2019-07-16T18:04:00Z" nil))) + (is (= ["This year" "Previous year"] + (format-temporal-string-pair :year now nil))) + (testing "No special formatting for year? :shrug:" + (is (= ["2018-07-16T18:04:00Z" "2021-07-16T18:04:00Z"] + (format-temporal-string-pair :year "2018-07-16T18:04:00Z" "2021-07-16T18:04:00Z")))))) diff --git a/test/metabase/pulse/render/sparkline_test.clj b/test/metabase/pulse/render/sparkline_test.clj new file mode 100644 index 0000000000000000000000000000000000000000..e9c3965322dd09a5b680246d6c943a20cfb57881 --- /dev/null +++ b/test/metabase/pulse/render/sparkline_test.clj @@ -0,0 +1,22 @@ +(ns metabase.pulse.render.sparkline-test + (:require [clojure.test :refer :all] + [java-time :as t] + [metabase.pulse.render.sparkline :as sparkline])) + +(deftest format-val-fn-test + "Make sure format-val-fn works correctly for all of the various temporal types" + (let [f (#'sparkline/format-val-fn "US/Pacific" nil (constantly {:base_type :type/DateTime})) + t #t "2019-11-20T20:09:55.752-08:00[America/Los_Angeles]"] + (doseq [t' [(t/instant t) + (t/local-date t) + (t/local-time t) + (t/offset-time t) + (t/offset-time t) + (t/local-date-time t) + (t/offset-date-time t) + (t/offset-date-time t) + t] + x [t' (str t')]] + (testing (format "^%s %s" (.getName (class x)) x) + (is (= true + (boolean (f x)))))))) diff --git a/test/metabase/pulse_test.clj b/test/metabase/pulse_test.clj index 9707fd551d6d3ed4822de5138d093192a7fc6091..f7676e5b929578c6c4ef5be2b10d5a0698961622 100644 --- a/test/metabase/pulse_test.clj +++ b/test/metabase/pulse_test.clj @@ -539,7 +539,7 @@ (output (var-get #'render.body/attached-results-text))])))) (defn- produces-bytes? [{:keys [attachment-bytes-thunk]}] - (< 0 (alength (attachment-bytes-thunk)))) + (< 0 (alength ^bytes (attachment-bytes-thunk)))) ;; Basic slack test, 2 cards, 1 recipient channel (tt/expect-with-temp [Card [{card-id-1 :id} (checkins-query {:breakout [["datetime-field" (data/id :checkins :date) "hour"]]})] @@ -578,12 +578,12 @@ [(thunk->boolean slack-data) (every? produces-bytes? (:attachments slack-data))]))) -(defn- email-body? [{message-type :type content :content}] +(defn- email-body? [{message-type :type, ^String content :content}] (and (= "text/html; charset=utf-8" message-type) (string? content) (.startsWith content "<html>"))) -(defn- attachment? [{message-type :type content-type :content-type content :content}] +(defn- attachment? [{message-type :type, content-type :content-type, content :content}] (and (= :inline message-type) (= "image/png" content-type) (instance? java.net.URL content))) @@ -898,7 +898,7 @@ :collection_id (:id coll)}]] (perms/revoke-collection-permissions! (group/all-users) coll) (pulse.tu/send-pulse-created-by-user! user-kw card)))] - (is (= [[1 "2014-04-07T00:00:00.000Z" 5 12]] + (is (= [[1 "2014-04-07T00:00:00Z" 5 12]] (send-pulse-created-by-user! :crowberto))) (is (thrown-with-msg? clojure.lang.ExceptionInfo #"^You do not have permissions to view Card \d+\." diff --git a/test/metabase/query_processor/middleware/add_dimension_projections_test.clj b/test/metabase/query_processor/middleware/add_dimension_projections_test.clj index d4023f053af1ffd9dfa898b24ca28071ede14d50..1cad06a20d97b33902d7fd2892c2e1b0c0a833dd 100644 --- a/test/metabase/query_processor/middleware/add_dimension_projections_test.clj +++ b/test/metabase/query_processor/middleware/add_dimension_projections_test.clj @@ -1,8 +1,12 @@ (ns metabase.query-processor.middleware.add-dimension-projections-test - (:require [expectations :refer [expect]] + (:require [clojure.test :refer :all] + [expectations :refer [expect]] [metabase.query-processor.middleware.add-dimension-projections :as add-dim-projections] + [metabase.test.fixtures :as fixtures] [toucan.hydrate :as hydrate])) +(use-fixtures :once (fixtures/initialize :db)) + ;;; ----------------------------------------- add-fk-remaps (pre-processing) ----------------------------------------- (def ^:private example-query diff --git a/test/metabase/query_processor/middleware/add_implicit_clauses_test.clj b/test/metabase/query_processor/middleware/add_implicit_clauses_test.clj index e252907a0ab30dca534746f386f4b33a48d2a51c..646d1b6a4b1e11652cf71c1fa50301eda7b80e33 100644 --- a/test/metabase/query_processor/middleware/add_implicit_clauses_test.clj +++ b/test/metabase/query_processor/middleware/add_implicit_clauses_test.clj @@ -1,5 +1,6 @@ (ns metabase.query-processor.middleware.add-implicit-clauses-test - (:require [expectations :refer [expect]] + (:require [clojure.test :refer :all] + [expectations :refer [expect]] [metabase.models.field :refer [Field]] [metabase.query-processor.middleware.add-implicit-clauses :as add-implicit-clauses] [metabase.query-processor.test-util :as qp.test-util] @@ -11,23 +12,23 @@ [toucan.db :as db] [toucan.util.test :as tt])) -;; check we fetch Fields in the right order -(expect - [ ;; sorted first because it has lowest positon - {:position -1, :name "PRICE", :special_type :type/Category} - ;; PK - {:position 0, :name "ID", :special_type :type/PK} - ;; Name - {:position 0, :name "NAME", :special_type :type/Name} - ;; The rest are sorted by name - {:position 0, :name "CATEGORY_ID", :special_type :type/FK} - {:position 0, :name "LATITUDE", :special_type :type/Latitude} - {:position 0, :name "LONGITUDE", :special_type :type/Longitude}] - (tu/with-temp-vals-in-db Field (data/id :venues :price) {:position -1} - (let [ids (map second (#'add-implicit-clauses/sorted-implicit-fields-for-table (data/id :venues))) - id->field (u/key-by :id (db/select [Field :id :position :name :special_type] :id [:in ids]))] - (for [id ids] - (into {} (dissoc (id->field id) :id)))))) +(deftest ordering-test + (testing "check we fetch Fields in the right order" + (is (= [ ;; sorted first because it has lowest positon + {:position -1, :name "PRICE", :special_type :type/Category} + ;; PK + {:position 0, :name "ID", :special_type :type/PK} + ;; Name + {:position 0, :name "NAME", :special_type :type/Name} + ;; The rest are sorted by name + {:position 0, :name "CATEGORY_ID", :special_type :type/FK} + {:position 0, :name "LATITUDE", :special_type :type/Latitude} + {:position 0, :name "LONGITUDE", :special_type :type/Longitude}] + (tu/with-temp-vals-in-db Field (data/id :venues :price) {:position -1} + (let [ids (map second (#'add-implicit-clauses/sorted-implicit-fields-for-table (data/id :venues))) + id->field (u/key-by :id (db/select [Field :id :position :name :special_type] :id [:in ids]))] + (for [id ids] + (into {} (dissoc (id->field id) :id))))))))) ;; we should add order-bys for breakout clauses (expect @@ -101,18 +102,19 @@ [:field-id (u/get-id field-2)]]})) (#'add-implicit-clauses/add-implicit-fields (:query (data/mbql-query venues)))) -;; datetime Fields should get default bucketing of :day -(tt/expect-with-temp [Field [field {:table_id (data/id :venues), :position 0, :name "aaaaa", :base_type :type/DateTime}]] - (:query - (data/mbql-query venues - {:fields [[:field-id (data/id :venues :id)] - [:field-id (data/id :venues :name)] - [:datetime-field [:field-id (u/get-id field)] :default] - [:field-id (data/id :venues :category_id)] - [:field-id (data/id :venues :latitude)] - [:field-id (data/id :venues :longitude)] - [:field-id (data/id :venues :price)]]})) - (#'add-implicit-clauses/add-implicit-fields (:query (data/mbql-query venues)))) +(deftest default-bucketing-test + (testing "datetime Fields should get default bucketing of :day" + (tt/with-temp* [Field [field {:table_id (data/id :venues), :position 0, :name "aaaaa", :base_type :type/DateTime}]] + (is (= (:query + (data/mbql-query venues + {:fields [[:field-id (data/id :venues :id)] + [:field-id (data/id :venues :name)] + [:datetime-field [:field-id (u/get-id field)] :default] + [:field-id (data/id :venues :category_id)] + [:field-id (data/id :venues :latitude)] + [:field-id (data/id :venues :longitude)] + [:field-id (data/id :venues :price)]]})) + (#'add-implicit-clauses/add-implicit-fields (:query (data/mbql-query venues)))))))) ;; We should add implicit Fields for source queries that have source-metadata as appropriate (tu/expect-schema diff --git a/test/metabase/query_processor/middleware/add_settings_test.clj b/test/metabase/query_processor/middleware/add_settings_test.clj index 3151f2f8f2bfc74b0214681c627c235446b0eeb6..7ebc6e368d13c53c486d7205ce347c33e5e6aa6b 100644 --- a/test/metabase/query_processor/middleware/add_settings_test.clj +++ b/test/metabase/query_processor/middleware/add_settings_test.clj @@ -1,8 +1,9 @@ (ns metabase.query-processor.middleware.add-settings-test (:require [clojure.test :refer :all] - [metabase.driver :as driver] - [metabase.query-processor.middleware.add-settings :as add-settings] - [metabase.test.util :as tu])) + [metabase + [driver :as driver] + [test :as mt]] + [metabase.query-processor.middleware.add-settings :as add-settings])) (driver/register! ::timezone-driver, :abstract? true) @@ -12,47 +13,23 @@ (defmethod driver/supports? [::no-timezone-driver :set-timezone] [_ _] false) -(deftest pre-processing-test - (let [add-settings (fn [driver query] - (let [pre-processed (atom nil)] - (driver/with-driver driver - ((add-settings/add-settings (partial reset! pre-processed)) query)) - @pre-processed))] - (is (= {} - (tu/with-temporary-setting-values [report-timezone nil] - (add-settings ::timezone-driver {}))) - "no `report-timezone` set = query should not be changed") - (is (= {} - (tu/with-temporary-setting-values [report-timezone ""] - (add-settings ::timezone-driver {}))) - "`report-timezone` is an empty string = query should not be changed") - (is (= {:settings {:report-timezone "US/Mountain"}} - (tu/with-temporary-setting-values [report-timezone "US/Mountain"] - (add-settings ::timezone-driver {}))) - "if the timezone is something valid it should show up in the query settings") - (is (= {} - (tu/with-temporary-setting-values [report-timezone "US/Mountain"] - (add-settings ::no-timezone-driver {}))) - "if the driver doesn't support `:set-timezone`, query should be unchanged, even if `report-timezone` is valid"))) - (deftest post-processing-test (doseq [[driver timezone->expected] {::timezone-driver {"US/Pacific" {:results_timezone "US/Pacific" :requested_timezone "US/Pacific"} - nil {:results_timezone "UTC" - :requested_timezone "UTC"}} + nil {:results_timezone "UTC"}} ::no-timezone-driver {"US/Pacific" {:results_timezone "UTC" :requested_timezone "US/Pacific"} - nil {:results_timezone "UTC" - :requested_timezone "UTC"}}} + nil {:results_timezone "UTC"}}} [timezone expected] timezone->expected] (testing driver - (tu/with-temporary-setting-values [report-timezone timezone] + (mt/with-temporary-setting-values [report-timezone timezone] (driver/with-driver driver - (is (= expected - (let [query {:query? true} - results {:results? true} - add-settings (add-settings/add-settings (constantly results))] - (:data (add-settings query)))))))))) + (mt/with-database-timezone-id nil + (is (= expected + (let [query {:query? true} + results {:results? true} + add-settings (add-settings/add-settings (constantly results))] + (:data (add-settings query))))))))))) (defn- env [_] "SOME_VALUE") diff --git a/test/metabase/query_processor/middleware/bind_effective_timezone_test.clj b/test/metabase/query_processor/middleware/bind_effective_timezone_test.clj deleted file mode 100644 index 4b0e8873de83d8a2121415719f78ad9fe0ae12f4..0000000000000000000000000000000000000000 --- a/test/metabase/query_processor/middleware/bind_effective_timezone_test.clj +++ /dev/null @@ -1,18 +0,0 @@ -(ns metabase.query-processor.middleware.bind-effective-timezone-test - (:require [expectations :refer [expect]] - [metabase.models.database :refer [Database]] - [metabase.query-processor.middleware.bind-effective-timezone :as bind-effective-timezone] - [metabase.test.util :as tu] - [metabase.util :as u] - [metabase.util.date :as du] - [toucan.util.test :as tt])) - -(expect - "US/Hawaii" - (let [bound-timezone (atom nil)] - (tt/with-temp Database [db {:engine :postgres}] - (tu/with-temporary-setting-values [report-timezone "US/Hawaii"] - ((bind-effective-timezone/bind-effective-timezone (fn [_] (reset! bound-timezone du/*report-timezone*))) - {:database (u/get-id db)}))) - (when-let [^java.util.TimeZone timezone @bound-timezone] - (.getID timezone)))) diff --git a/test/metabase/query_processor/middleware/format_rows_test.clj b/test/metabase/query_processor/middleware/format_rows_test.clj index 6d5732d1e9e2391b092e5d71b64ad0b2fc38e7b5..65941e2b7137437ff02f2259708182aec16f2ae5 100644 --- a/test/metabase/query_processor/middleware/format_rows_test.clj +++ b/test/metabase/query_processor/middleware/format_rows_test.clj @@ -1,88 +1,182 @@ (ns metabase.query-processor.middleware.format-rows-test - (:require [clj-time.coerce :as tc] - [expectations :refer :all] + (:require [clojure.test :refer :all] + [java-time :as t] [metabase [driver :as driver] - [query-processor-test :as qp.test]] - [metabase.query-processor.middleware.format-rows :as format-rows] - [metabase.test - [data :as data] - [util :as tu]])) + [query-processor-test :as qp.test] + [test :as mt]] + [metabase.query-processor.middleware.format-rows :as format-rows])) +(driver/register! ::timezone-driver, :abstract? true) + +(defmethod driver/supports? [::timezone-driver :set-timezone] [_ _] true) + +;; TIMEZONE FIXME (def ^:private dbs-exempt-from-format-rows-tests - "DBs to skip the tests below for. TODO - why are so many databases not running these tests? Most of these should be - able to pass with a few tweaks." + "DBs to skip the tests below for. TIMEZONE FIXME — why are so many databases not running these tests? Most of these + should be able to pass with a few tweaks." #{:oracle :mongo :redshift :presto :sparksql :snowflake}) -(qp.test/expect-with-non-timeseries-dbs-except dbs-exempt-from-format-rows-tests - (if (= :sqlite driver/*driver*) - [[1 "Plato Yeshua" "2014-04-01 00:00:00" "08:30:00"] - [2 "Felipinho Asklepios" "2014-12-05 00:00:00" "15:15:00"] - [3 "Kaneonuskatew Eiran" "2014-11-06 00:00:00" "16:15:00"] - [4 "Simcha Yan" "2014-01-01 00:00:00" "08:30:00"] - [5 "Quentin Sören" "2014-10-03 00:00:00" "17:30:00"]] - - [[1 "Plato Yeshua" "2014-04-01T00:00:00.000Z" "08:30:00.000Z"] - [2 "Felipinho Asklepios" "2014-12-05T00:00:00.000Z" "15:15:00.000Z"] - [3 "Kaneonuskatew Eiran" "2014-11-06T00:00:00.000Z" "16:15:00.000Z"] - [4 "Simcha Yan" "2014-01-01T00:00:00.000Z" "08:30:00.000Z"] - [5 "Quentin Sören" "2014-10-03T00:00:00.000Z" "17:30:00.000Z"]]) - (qp.test/rows - (data/dataset test-data-with-time - (data/run-mbql-query users - {:order-by [[:asc $id]] - :limit 5})))) - -(qp.test/expect-with-non-timeseries-dbs-except dbs-exempt-from-format-rows-tests - (cond - (= :sqlite driver/*driver*) - [[1 "Plato Yeshua" "2014-04-01 00:00:00" "08:30:00"] - [2 "Felipinho Asklepios" "2014-12-05 00:00:00" "15:15:00"] - [3 "Kaneonuskatew Eiran" "2014-11-06 00:00:00" "16:15:00"] - [4 "Simcha Yan" "2014-01-01 00:00:00" "08:30:00"] - [5 "Quentin Sören" "2014-10-03 00:00:00" "17:30:00"]] - - (qp.test/supports-report-timezone? driver/*driver*) - [[1 "Plato Yeshua" "2014-04-01T00:00:00.000-07:00" "00:30:00.000-08:00"] - [2 "Felipinho Asklepios" "2014-12-05T00:00:00.000-08:00" "07:15:00.000-08:00"] - [3 "Kaneonuskatew Eiran" "2014-11-06T00:00:00.000-08:00" "08:15:00.000-08:00"] - [4 "Simcha Yan" "2014-01-01T00:00:00.000-08:00" "00:30:00.000-08:00"] - [5 "Quentin Sören" "2014-10-03T00:00:00.000-07:00" "09:30:00.000-08:00"]] - - :else - [[1 "Plato Yeshua" "2014-04-01T00:00:00.000Z" "08:30:00.000Z"] - [2 "Felipinho Asklepios" "2014-12-05T00:00:00.000Z" "15:15:00.000Z"] - [3 "Kaneonuskatew Eiran" "2014-11-06T00:00:00.000Z" "16:15:00.000Z"] - [4 "Simcha Yan" "2014-01-01T00:00:00.000Z" "08:30:00.000Z"] - [5 "Quentin Sören" "2014-10-03T00:00:00.000Z" "17:30:00.000Z"]]) - (data/dataset test-data-with-time - (tu/with-temporary-setting-values [report-timezone "America/Los_Angeles"] - (qp.test/rows - (data/run-mbql-query users - {:order-by [[:asc $id]] - :limit 5}))))) - - -(expect - {:rows [["2011-04-18T10:12:47.232Z"] - ["2011-04-18T00:00:00.000Z"] - ["2011-04-18T10:12:47.232Z"]]} - ((format-rows/format-rows - (constantly - {:rows - [[(tc/to-sql-time 1303121567232)] - [(tc/to-sql-date "2011-04-18")] ; joda-time assumes this is UTC time when parsing it - [(tc/to-date 1303121567232)]]})) - {:settings {}})) - -(expect - {:rows [["2011-04-18T19:12:47.232+09:00"] - ["2011-04-18T09:00:00.000+09:00"] - ["2011-04-18T19:12:47.232+09:00"]]} - ((format-rows/format-rows - (constantly - {:rows - [[(tc/to-sql-time 1303121567232)] - [(tc/to-sql-date "2011-04-18")] ; joda-time assumes this is UTC time when parsing it - [(tc/to-date 1303121567232)]]})) - {:settings {:report-timezone "Asia/Tokyo"}})) +(deftest format-rows-test + (mt/test-drivers (mt/normal-drivers-except dbs-exempt-from-format-rows-tests) + (testing "without report timezone" + (is (= (if (= driver/*driver* :sqlite) + ;; TIMEZONE FIXME + [[1 "Plato Yeshua" "2014-04-01T00:00:00Z" "08:30:00"] + [2 "Felipinho Asklepios" "2014-12-05T00:00:00Z" "15:15:00"] + [3 "Kaneonuskatew Eiran" "2014-11-06T00:00:00Z" "16:15:00"] + [4 "Simcha Yan" "2014-01-01T00:00:00Z" "08:30:00"] + [5 "Quentin Sören" "2014-10-03T00:00:00Z" "17:30:00"]] + [[1 "Plato Yeshua" "2014-04-01T00:00:00Z" "08:30:00Z"] + [2 "Felipinho Asklepios" "2014-12-05T00:00:00Z" "15:15:00Z"] + [3 "Kaneonuskatew Eiran" "2014-11-06T00:00:00Z" "16:15:00Z"] + [4 "Simcha Yan" "2014-01-01T00:00:00Z" "08:30:00Z"] + [5 "Quentin Sören" "2014-10-03T00:00:00Z" "17:30:00Z"]]) + (mt/rows + (mt/dataset test-data-with-time + (mt/run-mbql-query users + {:order-by [[:asc $id]] + :limit 5})))))) + (testing "with report timezone" + (mt/with-report-timezone-id "America/Los_Angeles" + (is (= (cond + (= driver/*driver* :sqlite) + [[1 "Plato Yeshua" "2014-04-01T00:00:00Z" "08:30:00"] + [2 "Felipinho Asklepios" "2014-12-05T00:00:00Z" "15:15:00"] + [3 "Kaneonuskatew Eiran" "2014-11-06T00:00:00Z" "16:15:00"] + [4 "Simcha Yan" "2014-01-01T00:00:00Z" "08:30:00"] + [5 "Quentin Sören" "2014-10-03T00:00:00Z" "17:30:00"]] + + (qp.test/supports-report-timezone? driver/*driver*) + [[1 "Plato Yeshua" "2014-04-01T00:00:00-07:00" "08:30:00-08:00"] + [2 "Felipinho Asklepios" "2014-12-05T00:00:00-08:00" "15:15:00-08:00"] + [3 "Kaneonuskatew Eiran" "2014-11-06T00:00:00-08:00" "16:15:00-08:00"] + [4 "Simcha Yan" "2014-01-01T00:00:00-08:00" "08:30:00-08:00"] + [5 "Quentin Sören" "2014-10-03T00:00:00-07:00" "17:30:00-08:00"]] + + :else + [[1 "Plato Yeshua" "2014-04-01T00:00:00Z" "08:30:00Z"] + [2 "Felipinho Asklepios" "2014-12-05T00:00:00Z" "15:15:00Z"] + [3 "Kaneonuskatew Eiran" "2014-11-06T00:00:00Z" "16:15:00Z"] + [4 "Simcha Yan" "2014-01-01T00:00:00Z" "08:30:00Z"] + [5 "Quentin Sören" "2014-10-03T00:00:00Z" "17:30:00Z"]]) + (mt/dataset test-data-with-time + (mt/rows + (mt/run-mbql-query users + {:order-by [[:asc $id]] + :limit 5}))))))))) + +(deftest format-value-test + (doseq [[t expected zone] + [[(t/zoned-date-time 2011 4 18 0 0 0 0 (t/zone-id "Asia/Tokyo")) + "2011-04-17T15:00:00Z" + "UTC"] + + [(t/zoned-date-time 2011 4 18 0 0 0 0 (t/zone-id "Asia/Tokyo")) + "2011-04-18T00:00:00+09:00" + "Asia/Tokyo"] + + [(t/zoned-date-time 2011 4 18 0 0 0 0 (t/zone-id "UTC")) + "2011-04-18T09:00:00+09:00" + "Asia/Tokyo"] + + [(t/zoned-date-time 2011 4 18 0 0 0 0 (t/zone-id "UTC")) + "2011-04-18T00:00:00Z" + "UTC"] + + [(t/offset-date-time 2011 4 18 0 0 0 0 (t/zone-offset 9)) + "2011-04-17T15:00:00Z" + "UTC"] + + [(t/offset-date-time 2011 4 18 0 0 0 0 (t/zone-offset 9)) + "2011-04-18T00:00:00+09:00" + "Asia/Tokyo"] + + [(t/offset-date-time 2011 4 18 0 0 0 0 (t/zone-offset 0)) + "2011-04-18T09:00:00+09:00" + "Asia/Tokyo"] + + [(t/instant (t/offset-date-time 2011 4 18 0 0 0 0 (t/zone-offset 0))) + "2011-04-18T00:00:00Z" + "UTC"] + + [(t/instant (t/offset-date-time 2011 4 18 0 0 0 0 (t/zone-offset 0))) + "2011-04-18T09:00:00+09:00" + "Asia/Tokyo"] + + [(t/instant (t/offset-date-time 2011 4 18 0 0 0 0 (t/zone-offset 0))) + "2011-04-18T00:00:00Z" + "UTC"] + + [(t/local-date-time 2011 4 18 0 0 0 0) + "2011-04-18T00:00:00+09:00" + "Asia/Tokyo"] + + [(t/local-date-time 2011 4 18 0 0 0 0) + "2011-04-18T00:00:00Z" + "UTC"] + + [(t/local-date 2011 4 18) + "2011-04-18T00:00:00+09:00" + "Asia/Tokyo"] + + [(t/local-date 2011 4 18) + "2011-04-18T00:00:00Z" + "UTC"] + + ;; formatting `OffsetTime` currently doesn't adjust the time into the results timezone, because that can't + ;; be done without knowing the date (e.g., because of DST boundaries) + [(t/offset-time 19 55 0 0 (t/zone-offset 9)) + "19:55:00+09:00" + "UTC"] + + [(t/offset-time 19 55 0 0 (t/zone-offset 9)) + "19:55:00+09:00" + "Asia/Tokyo"] + + [(t/offset-time 19 55 0 0 (t/zone-offset 0)) + "19:55:00Z" + "UTC"] + + [(t/offset-time 19 55 0 0 (t/zone-offset 0)) + "19:55:00Z" + "Asia/Tokyo"] + + [(t/local-time 19 55) + "19:55:00Z" + "UTC"] + + [(t/local-time 19 55) + "19:55:00+09:00" + "Asia/Tokyo"]]] + ;; results should be completely independent of the system clock + (doseq [[clock-instant clock-zone] [["2019-07-01T00:00:00Z" "UTC"] + ["2019-01-01T00:00:00Z" "US/Pacific"] + ["2019-07-01T00:00:00Z" "US/Pacific"] + ["2019-07-01T13:14:15Z" "UTC"] + ["2019-07-01T13:14:15Z" "US/Pacific"]]] + (testing (format "system clock = %s; system timezone = %s" clock-instant clock-zone) + (mt/with-clock (t/mock-clock (t/instant clock-instant) clock-zone) + (is (= expected + (format-rows/format-value t (t/zone-id zone))) + (format "format %s '%s' with results timezone ID '%s'" (.getName (class t)) t zone)))))) + + (deftest results-timezone-test + (testing "Make sure ISO-8601 timestamps are written correctly based on the report-timezone" + (doseq [[timezone-id expected-rows] {"UTC" [["2011-04-18T10:12:47.232Z" + "2011-04-18T00:00:00Z" + "2011-04-18T10:12:47.232Z"]] + "Asia/Tokyo" [["2011-04-18T19:12:47.232+09:00" + "2011-04-18T00:00:00+09:00" + "2011-04-18T19:12:47.232+09:00"]]}] + (mt/with-results-timezone-id timezone-id + (testing (format "timezone ID '%s'" timezone-id) + (let [results (driver/with-driver ::timezone-driver + ((format-rows/format-rows + (constantly + {:rows [[(t/instant "2011-04-18T10:12:47.232Z") + (t/local-date 2011 4 18) + (t/offset-date-time "2011-04-18T10:12:47.232Z")]]})) + {}))] + (is (= {:rows expected-rows} + results))))))))) diff --git a/test/metabase/query_processor/middleware/optimize_datetime_filters_test.clj b/test/metabase/query_processor/middleware/optimize_datetime_filters_test.clj index dd18eb77dc5a360b9213839a5ab05565f842b0a1..53255d0254633d91a27005aac0a4f14da91d2aa7 100644 --- a/test/metabase/query_processor/middleware/optimize_datetime_filters_test.clj +++ b/test/metabase/query_processor/middleware/optimize_datetime_filters_test.clj @@ -2,10 +2,17 @@ (:require [clojure [string :as str] [test :refer :all]] - [metabase.query-processor :as qp] + [java-time :as t] + [metabase + [driver :as driver] + [query-processor :as qp] + [test :as mt]] [metabase.query-processor.middleware.optimize-datetime-filters :as optimize-datetime-filters] - [metabase.test.data :as data] - [metabase.util.date :as du])) + [metabase.util.date-2 :as u.date])) + +(driver/register! ::timezone-driver, :abstract? true) + +(defmethod driver/supports? [::timezone-driver :set-timezone] [_ _] true) (defn- optimize-datetime-filters [filter-clause] (-> ((optimize-datetime-filters/optimize-datetime-filters identity) @@ -14,124 +21,163 @@ :query {:filter filter-clause}}) (get-in [:query :filter]))) +(deftest optimize-day-bucketed-filter-test + (testing "Make sure we aren't doing anything wacky when optimzing filters against fields bucketed by day" + (letfn [(optimize [filter-type] + (#'optimize-datetime-filters/optimize-filter + [filter-type + [:datetime-field [:field-id 1] :day] + [:absolute-datetime (t/zoned-date-time "2014-03-04T12:30Z[UTC]") :day]]))] + (testing :< + (is (= [:< + [:datetime-field [:field-id 1] :default] + [:absolute-datetime (t/zoned-date-time "2014-03-04T00:00Z[UTC]") :default]] + (optimize :<)) + "day(field) < day('2014-03-04T12:30') => day(field) < '2014-03-04' => field < '2014-03-04T00:00'")) + (testing :<= + (is (= [:< + [:datetime-field [:field-id 1] :default] + [:absolute-datetime (t/zoned-date-time "2014-03-05T00:00Z[UTC]") :default]] + (optimize :<=)) + "day(field) <= day('2014-03-04T12:30') => day(field) <= '2014-03-04' => field < '2014-03-05T00:00'")) + (testing :> + (is (= [:>= + [:datetime-field [:field-id 1] :default] + [:absolute-datetime (t/zoned-date-time "2014-03-05T00:00Z[UTC]") :default]] + (optimize :>)) + "day(field) > day('2014-03-04T12:30') => day(field) > '2014-03-04' => field >= '2014-03-05T00:00'")) + (testing :>= + (is (= [:>= + [:datetime-field [:field-id 1] :default] + [:absolute-datetime (t/zoned-date-time "2014-03-04T00:00Z[UTC]") :default]] + (optimize :>=)) + "day(field) >= day('2014-03-04T12:30') => day(field) >= '2014-03-04' => field >= '2014-03-04T00:00'"))))) + (def ^:private test-units-and-values [{:unit :second - :filter-value #inst "2019-09-24T12:19:30.500Z" - :lower #inst "2019-09-24T12:19:30.000Z" - :upper #inst "2019-09-24T12:19:31.000Z"} + :filter-value (u.date/parse "2019-09-24T12:19:30.500Z" "UTC") + :lower (u.date/parse "2019-09-24T12:19:30.000Z" "UTC") + :upper (u.date/parse "2019-09-24T12:19:31.000Z" "UTC")} {:unit :minute - :filter-value #inst "2019-09-24T12:19:30.000Z" - :lower #inst "2019-09-24T12:19:00.000Z" - :upper #inst "2019-09-24T12:20:00.000Z"} + :filter-value (u.date/parse "2019-09-24T12:19:30.000Z" "UTC") + :lower (u.date/parse "2019-09-24T12:19:00.000Z" "UTC") + :upper (u.date/parse "2019-09-24T12:20:00.000Z" "UTC")} {:unit :hour - :filter-value #inst "2019-09-24T12:30:00.000Z" - :lower #inst "2019-09-24T12:00:00.000Z" - :upper #inst "2019-09-24T13:00:00.000Z"} + :filter-value (u.date/parse "2019-09-24T12:30:00.000Z" "UTC") + :lower (u.date/parse "2019-09-24T12:00:00.000Z" "UTC") + :upper (u.date/parse "2019-09-24T13:00:00.000Z" "UTC")} {:unit :day - :filter-value #inst "2019-09-24T12:00:00.000Z" - :lower #inst "2019-09-24" - :upper #inst "2019-09-25"} + :filter-value (u.date/parse "2019-09-24T12:00:00.000Z" "UTC") + :lower (u.date/parse "2019-09-24" "UTC") + :upper (u.date/parse "2019-09-25" "UTC")} {:unit :week - :filter-value #inst "2019-09-24" - :lower #inst "2019-09-22" - :upper #inst "2019-09-29"} + :filter-value (u.date/parse "2019-09-24" "UTC") + :lower (u.date/parse "2019-09-22" "UTC") + :upper (u.date/parse "2019-09-29" "UTC")} {:unit :month - :filter-value #inst "2019-09-24" - :lower #inst "2019-09-01" - :upper #inst "2019-10-01"} + :filter-value (u.date/parse "2019-09-24" "UTC") + :lower (u.date/parse "2019-09-01" "UTC") + :upper (u.date/parse "2019-10-01" "UTC")} {:unit :quarter - :filter-value #inst "2019-09-01" - :lower #inst "2019-07-01" - :upper #inst "2019-10-01"} + :filter-value (u.date/parse "2019-09-01" "UTC") + :lower (u.date/parse "2019-07-01" "UTC") + :upper (u.date/parse "2019-10-01" "UTC")} {:unit :year - :filter-value #inst "2019-09-24" - :lower #inst "2019-01-01" - :upper #inst "2020-01-01"}]) + :filter-value (u.date/parse "2019-09-24" "UTC") + :lower (u.date/parse "2019-01-01" "UTC") + :upper (u.date/parse "2020-01-01" "UTC")}]) (deftest optimize-datetime-filters-test - (doseq [{:keys [unit filter-value lower upper]} test-units-and-values] - (let [lower [:absolute-datetime lower :default] - upper [:absolute-datetime upper :default]] - (testing unit - (testing := - (is (= [:and - [:>= [:datetime-field [:field-id 1] :default] lower] - [:< [:datetime-field [:field-id 1] :default] upper]] - (optimize-datetime-filters - [:= - [:datetime-field [:field-id 1] unit] - [:absolute-datetime filter-value unit]])))) - (testing :!= - (is (= [:or - [:< [:datetime-field [:field-id 1] :default] lower] - [:>= [:datetime-field [:field-id 1] :default] upper]] - (optimize-datetime-filters - [:!= - [:datetime-field [:field-id 1] unit] - [:absolute-datetime filter-value unit]])))) - (doseq [filter-type [:< :<=]] - (testing filter-type - (is (= [filter-type [:datetime-field [:field-id 1] :default] lower] + (driver/with-driver ::timezone-driver + (doseq [{:keys [unit filter-value lower upper]} test-units-and-values] + (let [lower [:absolute-datetime lower :default] + upper [:absolute-datetime upper :default]] + (testing unit + (testing := + (is (= [:and + [:>= [:datetime-field [:field-id 1] :default] lower] + [:< [:datetime-field [:field-id 1] :default] upper]] + (optimize-datetime-filters + [:= + [:datetime-field [:field-id 1] unit] + [:absolute-datetime filter-value unit]])))) + (testing :!= + (is (= [:or + [:< [:datetime-field [:field-id 1] :default] lower] + [:>= [:datetime-field [:field-id 1] :default] upper]] + (optimize-datetime-filters + [:!= + [:datetime-field [:field-id 1] unit] + [:absolute-datetime filter-value unit]])))) + (testing :< + (is (= [:< [:datetime-field [:field-id 1] :default] lower] + (optimize-datetime-filters + [:< + [:datetime-field [:field-id 1] unit] + [:absolute-datetime filter-value unit]])))) + (testing :<= + (is (= [:< [:datetime-field [:field-id 1] :default] upper] (optimize-datetime-filters - [filter-type + [:<= [:datetime-field [:field-id 1] unit] - [:absolute-datetime filter-value unit]]))))) - (doseq [filter-type [:> :>=]] - (testing filter-type - (is (= [filter-type [:datetime-field [:field-id 1] :default] upper] + [:absolute-datetime filter-value unit]])))) + (testing :> + (is (= [:>= [:datetime-field [:field-id 1] :default] upper] (optimize-datetime-filters - [filter-type + [:> [:datetime-field [:field-id 1] unit] - [:absolute-datetime filter-value unit]]))))) - (testing :betweenn - (is (= [:and - [:>= [:datetime-field [:field-id 1] :default] lower] - [:< [:datetime-field [:field-id 1] :default] upper]] - (optimize-datetime-filters - [:between - [:datetime-field [:field-id 1] unit] - [:absolute-datetime filter-value unit] - [:absolute-datetime filter-value unit]])))))))) + [:absolute-datetime filter-value unit]])))) + (testing :>= + (is (= [:>= [:datetime-field [:field-id 1] :default] lower] + (optimize-datetime-filters + [:>= + [:datetime-field [:field-id 1] unit] + [:absolute-datetime filter-value unit]])))) + (testing :between + (is (= [:and + [:>= [:datetime-field [:field-id 1] :default] lower] + [:< [:datetime-field [:field-id 1] :default] upper]] + (optimize-datetime-filters + [:between + [:datetime-field [:field-id 1] unit] + [:absolute-datetime filter-value unit] + [:absolute-datetime filter-value unit]]))))))))) + +(defn- optimize-with-timezone [t] + (-> ((optimize-datetime-filters/optimize-datetime-filters identity) + {:database 1 + :type :query + :query {:filter [:= + [:datetime-field [:field-id 1] :day] + [:absolute-datetime t :day]]}}) + (get-in [:query :filter]))) (deftest timezones-test - (let [optimize-with-timezone (fn [inst timezone] - (-> ((optimize-datetime-filters/optimize-datetime-filters identity) - {:database 1 - :type :query - :query {:filter [:= - [:datetime-field [:field-id 1] :day] - [:absolute-datetime inst :day]]} - :settings {:report-timezone timezone}}) - (get-in [:query :filter])))] - (doseq [[timezone {:keys [inst lower upper]}] - {"UTC" {:inst "2015-11-18T00:00:00.000000000-00:00" - :lower "2015-11-18T00:00:00.000000000-00:00" - :upper "2015-11-19T00:00:00.000000000-00:00"} - "US/Pacific" {:inst "2015-11-18T08:00:00.000000000-00:00" - :lower "2015-11-18T08:00:00.000000000-00:00" - :upper "2015-11-19T08:00:00.000000000-00:00"}}] - (testing (format "%s timezone" timezone) - (let [inst' (du/->Timestamp inst "UTC") - lower' (du/->Timestamp lower "UTC") - upper' (du/->Timestamp upper "UTC")] - (testing "lower-bound and upper-bound util fns" - (is (= lower' - (#'optimize-datetime-filters/lower-bound :day inst' timezone)) - (format "lower bound of day(%s) in the %s timezone should be %s" inst timezone lower)) - (is (= upper' - (#'optimize-datetime-filters/upper-bound :day inst' timezone)) - (format "upper bound of day(%s) in the %s timezone should be %s" inst timezone upper))) - (testing "optimize-with-datetime" - (let [expected [:and - [:>= [:datetime-field [:field-id 1] :default] [:absolute-datetime lower' :default]] - [:< [:datetime-field [:field-id 1] :default] [:absolute-datetime upper' :default]]]] - (is (= expected - (optimize-with-timezone inst' timezone)) - (format "= %s in the %s timezone should be optimized to range %s -> %s" - inst timezone lower upper))))))))) + (driver/with-driver ::timezone-driver + (doseq [timezone-id ["UTC" "US/Pacific"]] + (testing (format "%s timezone" timezone-id) + (let [t (u.date/parse "2015-11-18" timezone-id) + lower (t/zoned-date-time (t/local-date 2015 11 18) (t/local-time 0) timezone-id) + upper (t/zoned-date-time (t/local-date 2015 11 19) (t/local-time 0) timezone-id)] + (mt/with-report-timezone-id timezone-id + (testing "lower-bound and upper-bound util fns" + (is (= lower + (#'optimize-datetime-filters/lower-bound :day t)) + (format "lower bound of day(%s) in the %s timezone should be %s" t timezone-id lower)) + (is (= upper + (#'optimize-datetime-filters/upper-bound :day t)) + (format "upper bound of day(%s) in the %s timezone should be %s" t timezone-id upper))) + (testing "optimize-with-datetime" + (let [expected [:and + [:>= [:datetime-field [:field-id 1] :default] [:absolute-datetime lower :default]] + [:< [:datetime-field [:field-id 1] :default] [:absolute-datetime upper :default]]]] + (is (= expected + (optimize-with-timezone t)) + (format "= %s in the %s timezone should be optimized to range %s -> %s" + t timezone-id lower upper)))))))))) (deftest skip-optimization-test - (let [clause [:= [:datetime-field [:field-id 1] :day] [:absolute-datetime #inst "2019-01-01" :month]]] + (let [clause [:= [:datetime-field [:field-id 1] :day] [:absolute-datetime #t "2019-01-01" :month]]] (is (= clause (optimize-datetime-filters clause)) "Filters with different units in the datetime field and absolute-datetime shouldn't get optimized"))) @@ -139,7 +185,7 @@ ;; Make sure the optimization logic is actually applied in the resulting native query! (defn- filter->sql [filter-clause] (let [result (qp/query->native - (data/mbql-query checkins + (mt/mbql-query checkins {:aggregation [[:count]] :filter filter-clause}))] (update result :query #(-> (last (re-matches #"^.*(WHERE .*$)" %)) @@ -149,18 +195,23 @@ (deftest e2e-test (testing := (is (= {:query "WHERE (CHECKINS.DATE >= ? AND CHECKINS.DATE < ?)" - :params [#inst "2019-09-24T00:00:00.000000000-00:00" - #inst "2019-09-25T00:00:00.000000000-00:00"]} - (data/$ids checkins + :params [(t/zoned-date-time (t/local-date 2019 9 24) (t/local-time 0) "UTC") + (t/zoned-date-time (t/local-date 2019 9 25) (t/local-time 0) "UTC")]} + (mt/$ids checkins (filter->sql [:= !day.date "2019-09-24T12:00:00.000Z"]))))) (testing :< (is (= {:query "WHERE CHECKINS.DATE < ?" - :params [#inst "2019-09-24T00:00:00.000000000-00:00"]} - (data/$ids checkins + :params [(t/zoned-date-time (t/local-date 2019 9 24) (t/local-time 0) "UTC")]} + (mt/$ids checkins (filter->sql [:< !day.date "2019-09-24T12:00:00.000Z"]))))) (testing :between (is (= {:query "WHERE (CHECKINS.DATE >= ? AND CHECKINS.DATE < ?)" - :params [#inst "2019-09-01T00:00:00.000000000-00:00" - #inst "2019-11-01T00:00:00.000000000-00:00"]} - (data/$ids checkins - (filter->sql [:between !month.date "2019-09-02T12:00:00.000Z" "2019-10-05T12:00:00.000Z"])))))) + :params [(t/zoned-date-time (t/local-date 2019 9 1) (t/local-time 0) "UTC") + (t/zoned-date-time (t/local-date 2019 11 1) (t/local-time 0) "UTC")]} + (mt/$ids checkins + (filter->sql [:between !month.date "2019-09-02T12:00:00.000Z" "2019-10-05T12:00:00.000Z"])))) + (is (= {:query "WHERE (CHECKINS.DATE >= ? AND CHECKINS.DATE < ?)" + :params [(t/zoned-date-time "2019-09-01T00:00Z[UTC]") + (t/zoned-date-time "2019-10-02T00:00Z[UTC]")]} + (mt/$ids checkins + (filter->sql [:between !day.date "2019-09-01" "2019-10-01"])))))) diff --git a/test/metabase/query_processor/middleware/parameters/date_test.clj b/test/metabase/query_processor/middleware/parameters/date_test.clj deleted file mode 100644 index 2117dd72234c383a33cbd4bb6709af67d9ac39c3..0000000000000000000000000000000000000000 --- a/test/metabase/query_processor/middleware/parameters/date_test.clj +++ /dev/null @@ -1,51 +0,0 @@ -(ns metabase.query-processor.middleware.parameters.date-test - "Tests for datetime parameters." - (:require [clj-time.core :as t] - [expectations :refer :all] - [metabase.query-processor.middleware.parameters.dates :refer :all])) - -;; we hard code "now" to a specific point in time so that we can control the test output -(defn- test-date->range [value] - (with-redefs [t/now (constantly (t/date-time 2016 06 07 12 0 0))] - (date-string->range value nil))) - -(expect {:end "2016-03-31", :start "2016-01-01"} (test-date->range "Q1-2016")) -(expect {:end "2016-02-29", :start "2016-02-01"} (test-date->range "2016-02")) -(expect {:end "2016-04-18", :start "2016-04-18"} (test-date->range "2016-04-18")) -(expect {:end "2016-04-23", :start "2016-04-18"} (test-date->range "2016-04-18~2016-04-23")) -(expect {:end "2016-04-23", :start "2016-04-18"} (test-date->range "2016-04-18~2016-04-23")) -(expect {:start "2016-04-18"} (test-date->range "2016-04-18~")) -(expect {:end "2016-04-18"} (test-date->range "~2016-04-18")) - -(expect {:end "2016-06-06", :start "2016-06-04"} (test-date->range "past3days")) -(expect {:end "2016-06-07", :start "2016-06-04"} (test-date->range "past3days~")) -(expect {:end "2016-06-06", :start "2016-05-31"} (test-date->range "past7days")) -(expect {:end "2016-06-06", :start "2016-05-08"} (test-date->range "past30days")) -(expect {:end "2016-05-31", :start "2016-04-01"} (test-date->range "past2months")) -(expect {:end "2016-06-30", :start "2016-04-01"} (test-date->range "past2months~")) -(expect {:end "2016-05-31", :start "2015-05-01"} (test-date->range "past13months")) -(expect {:end "2015-12-31", :start "2015-01-01"} (test-date->range "past1years")) -(expect {:end "2016-12-31", :start "2015-01-01"} (test-date->range "past1years~")) -(expect {:end "2015-12-31", :start "2000-01-01"} (test-date->range "past16years")) - -(expect {:end "2016-06-10", :start "2016-06-08"} (test-date->range "next3days")) -(expect {:end "2016-06-10", :start "2016-06-07"} (test-date->range "next3days~")) -(expect {:end "2016-06-14", :start "2016-06-08"} (test-date->range "next7days")) -(expect {:end "2016-07-07", :start "2016-06-08"} (test-date->range "next30days")) -(expect {:end "2016-08-31", :start "2016-07-01"} (test-date->range "next2months")) -(expect {:end "2016-08-31", :start "2016-06-01"} (test-date->range "next2months~")) -(expect {:end "2017-07-31", :start "2016-07-01"} (test-date->range "next13months")) -(expect {:end "2017-12-31", :start "2017-01-01"} (test-date->range "next1years")) -(expect {:end "2017-12-31", :start "2016-01-01"} (test-date->range "next1years~")) -(expect {:end "2032-12-31", :start "2017-01-01"} (test-date->range "next16years")) - -(expect {:end "2016-06-07", :start "2016-06-07"} (test-date->range "thisday")) -(expect {:end "2016-06-11", :start "2016-06-05"} (test-date->range "thisweek")) -(expect {:end "2016-06-30", :start "2016-06-01"} (test-date->range "thismonth")) -(expect {:end "2016-12-31", :start "2016-01-01"} (test-date->range "thisyear")) - -(expect {:end "2016-06-04", :start "2016-05-29"} (test-date->range "lastweek")) -(expect {:end "2016-05-31", :start "2016-05-01"} (test-date->range "lastmonth")) -(expect {:end "2015-12-31", :start "2015-01-01"} (test-date->range "lastyear")) -(expect {:end "2016-06-06", :start "2016-06-06"} (test-date->range "yesterday")) -(expect {:end "2016-06-07", :start "2016-06-07"} (test-date->range "today")) diff --git a/test/metabase/query_processor/middleware/parameters/dates_test.clj b/test/metabase/query_processor/middleware/parameters/dates_test.clj deleted file mode 100644 index 7382c244721abd874eebf2d36f13247f2cf57855..0000000000000000000000000000000000000000 --- a/test/metabase/query_processor/middleware/parameters/dates_test.clj +++ /dev/null @@ -1,61 +0,0 @@ -(ns metabase.query-processor.middleware.parameters.dates-test - (:require [expectations :refer [expect]] - [metabase.query-processor.middleware.parameters.dates :as dates])) - -;; year and month -(expect - {:end "2019-04-30", :start "2019-04-01"} - (dates/date-string->range "2019-04" "UTC")) - -(expect - [:between - [:datetime-field [:field-literal "field" :type/DateTime] :day] - "2019-04-01" - "2019-04-30"] - (dates/date-string->filter "2019-04" [:field-literal "field" :type/DateTime])) - -;; quarter year -(expect - {:start "2019-04-01", :end "2019-06-30"} - (dates/date-string->range "Q2-2019" "UTC")) - -(expect - [:between - [:datetime-field [:field-literal "field" :type/DateTime] :day] - "2019-04-01" - "2019-06-30"] - (dates/date-string->filter "Q2-2019" [:field-literal "field" :type/DateTime])) - -;; single day -(expect - {:start "2019-04-01", :end "2019-04-01"} - (dates/date-string->range "2019-04-01" "UTC")) - -(expect - [:= - [:datetime-field [:field-literal "field" :type/DateTime] :day] - "2019-04-01"] - (dates/date-string->filter "2019-04-01" [:field-literal "field" :type/DateTime])) - -;; day range -(expect - {:start "2019-04-01", :end "2019-04-03"} - (dates/date-string->range "2019-04-01~2019-04-03" "UTC")) - -(expect - [:between - [:datetime-field [:field-literal "field" :type/DateTime] :day] - "2019-04-01" - "2019-04-03"] - (dates/date-string->filter "2019-04-01~2019-04-03" [:field-literal "field" :type/DateTime])) - -;; after day -(expect - {:start "2019-04-01"} - (dates/date-string->range "2019-04-01~" "UTC")) - -(expect - [:> - [:datetime-field [:field-literal "field" :type/DateTime] :day] - "2019-04-01"] - (dates/date-string->filter "2019-04-01~" [:field-literal "field" :type/DateTime])) diff --git a/test/metabase/query_processor/middleware/parameters/mbql_test.clj b/test/metabase/query_processor/middleware/parameters/mbql_test.clj index 36321b13b51c133fdba2ca511ea0d7a2542096a0..7562121d7cfad8fd2d75aba9dc19ea389411b477 100644 --- a/test/metabase/query_processor/middleware/parameters/mbql_test.clj +++ b/test/metabase/query_processor/middleware/parameters/mbql_test.clj @@ -2,6 +2,7 @@ "Tests for *MBQL* parameter substitution." (:require [clojure.test :refer :all] [expectations :refer [expect]] + [java-time :as t] [metabase [driver :as driver] [query-processor :as qp] @@ -9,8 +10,7 @@ [metabase.mbql.normalize :as normalize] [metabase.query-processor.middleware.parameters.mbql :as mbql-params] [metabase.test.data :as data] - [metabase.test.data.datasets :as datasets] - [metabase.util.date :as du])) + [metabase.test.data.datasets :as datasets])) (defn- expand-parameters [query] (let [query (normalize/normalize query)] @@ -141,11 +141,11 @@ ;;; +----------------------------------------------------------------------------------------------------------------+ ;; for some reason param substitution tests fail on Redshift so just don't run those for now -(def ^:private params-test-drivers - (delay (disj @qp.test/non-timeseries-drivers :redshift))) +(defn- params-test-drivers [] + (disj (qp.test/normal-drivers) :redshift)) ;; check that date ranges work correctly -(datasets/expect-with-drivers @params-test-drivers +(datasets/expect-with-drivers (params-test-drivers) [29] (do ;; Prevent an issue with Snowflake were a previous connection's report-timezone setting can affect this test's @@ -164,7 +164,7 @@ :value "2015-04-01~2015-05-01"}]})))))) ;; check that IDs work correctly (passed in as numbers) -(datasets/expect-with-drivers @params-test-drivers +(datasets/expect-with-drivers (params-test-drivers) [1] (qp.test/first-row (qp.test/format-rows-by [int] @@ -178,7 +178,7 @@ :value 100}]}))))) ;; check that IDs work correctly (passed in as strings, as the frontend is wont to do; should get converted) -(datasets/expect-with-drivers @params-test-drivers +(datasets/expect-with-drivers (params-test-drivers) [1] (qp.test/first-row (qp.test/format-rows-by [int] @@ -192,7 +192,7 @@ :value "100"}]}))))) ;; check that Categories work correctly (passed in as strings, as the frontend is wont to do; should get converted) -(datasets/expect-with-drivers @params-test-drivers +(datasets/expect-with-drivers (params-test-drivers) [[6]] (qp.test/format-rows-by [int] (qp.test/rows @@ -205,7 +205,7 @@ :value "4"}]}))))) ;; test that we can inject a basic `WHERE id = 9` type param (`id` type) -(datasets/expect-with-drivers @params-test-drivers +(datasets/expect-with-drivers (params-test-drivers) [[9 "Nils Gotam"]] (qp.test/format-rows-by [int str] (qp.test/rows @@ -217,7 +217,7 @@ :value 9}]}))))) ;; test that we can do the same thing but with a `category` type -(datasets/expect-with-drivers @params-test-drivers +(datasets/expect-with-drivers (params-test-drivers) [[6]] (qp.test/format-rows-by [int] (qp.test/rows @@ -233,7 +233,7 @@ ;; Make sure that *multiple* values work. This feature was added in 0.28.0. You are now allowed to pass in an array of ;; parameter values instead of a single value, which should stick them together in a single MBQL `:=` clause, which ;; ends up generating a SQL `*or*` clause -(datasets/expect-with-drivers @params-test-drivers +(datasets/expect-with-drivers (params-test-drivers) [[19]] (qp.test/format-rows-by [int] (qp.test/rows @@ -270,10 +270,10 @@ "(\"PUBLIC\".\"CHECKINS\".\"DATE\" >= ? AND \"PUBLIC\".\"CHECKINS\".\"DATE\" < ?)" " OR (\"PUBLIC\".\"CHECKINS\".\"DATE\" >= ? AND \"PUBLIC\".\"CHECKINS\".\"DATE\" < ?)" ")") - :params [(du/->Timestamp #inst "2014-06-01") - (du/->Timestamp #inst "2014-07-01") - (du/->Timestamp #inst "2015-06-01") - (du/->Timestamp #inst "2015-07-01")]} + :params [(t/zoned-date-time "2014-06-01T00:00Z[UTC]") + (t/zoned-date-time "2014-07-01T00:00Z[UTC]") + (t/zoned-date-time "2015-06-01T00:00Z[UTC]") + (t/zoned-date-time "2015-07-01T00:00Z[UTC]")]} (qp/query->native (data/query checkins {:query {:aggregation [[:count]]} @@ -295,7 +295,7 @@ "make sure that :id type params get converted to numbers when appropriate")) ;; Make sure we properly handle paramters that have `fk->` forms in `:dimension` targets (#9017) -(datasets/expect-with-drivers (filter #(driver/supports? % :foreign-keys) @params-test-drivers) +(datasets/expect-with-drivers (filter #(driver/supports? % :foreign-keys) (params-test-drivers)) [[31 "Bludso's BBQ" 5 33.8894 -118.207 2] [32 "Boneyard Bistro" 5 34.1477 -118.428 3] [33 "My Brother's Bar-B-Q" 5 34.167 -118.595 2] diff --git a/test/metabase/query_processor/middleware/parameters/native/parse_test.clj b/test/metabase/query_processor/middleware/parameters/native/parse_test.clj deleted file mode 100644 index 1441331f97c35af8e93a05e41b5a325ea9c8b7ba..0000000000000000000000000000000000000000 --- a/test/metabase/query_processor/middleware/parameters/native/parse_test.clj +++ /dev/null @@ -1,100 +0,0 @@ -(ns metabase.query-processor.middleware.parameters.native.parse-test - (:require [expectations :refer [expect]] - [metabase.query-processor.middleware.parameters.native - [interface :as i] - [parse :as parse]])) - -(def ^:private param (var-get #'parse/param)) -(def ^:private optional (var-get #'parse/optional)) - -;; tests for tokenization -(expect - [:param-begin "num_toucans" :end] - (#'parse/tokenize "{{num_toucans}}")) - -(expect - [:optional-begin "AND num_toucans > " :param-begin "num_toucans" :end :end] - (#'parse/tokenize "[[AND num_toucans > {{num_toucans}}]]")) - -(expect - [:end :param-begin :end :optional-begin] - (#'parse/tokenize "}}{{]][[")) - -(expect - ["SELECT * FROM toucanneries WHERE TRUE " :optional-begin "AND num_toucans > " :param-begin "num_toucans" :end :end] - (#'parse/tokenize "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]")) - -(expect - ["SELECT * FROM toucanneries WHERE TRUE " :optional-begin "AND num_toucans > " :param-begin "num_toucans" :end :end - " " :optional-begin "AND total_birds > " :param-begin "total_birds" :end :end] - (#'parse/tokenize - "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]")) - -(expect - ["select * from foo where bar=1"] - (parse/parse "select * from foo where bar=1")) - -(expect - ["select * from foo where bar=" (i/->Param "baz")] - (parse/parse "select * from foo where bar={{baz}}")) - -(expect - ["select * from foo " (i/->Optional ["where bar = " (i/->Param "baz") " "])] - (parse/parse "select * from foo [[where bar = {{baz}} ]]")) - -;; Multiple optional clauses -(expect - ["select * from foo where bar1 = " (param "baz") " " - (optional "and bar2 = " (param "baz")) " " - (optional "and bar3 = " (param "baz")) " " - (optional "and bar4 = " (param "baz"))] - (parse/parse (str "select * from foo where bar1 = {{baz}} " - "[[and bar2 = {{baz}}]] " - "[[and bar3 = {{baz}}]] " - "[[and bar4 = {{baz}}]]"))) - -(expect - ["select * from foobars " - (optional " where foobars.id in (string_to_array(" (param "foobar_id") ", ',')::integer[]) ")] - (parse/parse "select * from foobars [[ where foobars.id in (string_to_array({{foobar_id}}, ',')::integer[]) ]]")) - -;; single square brackets shouldn't get parsed -(let [query (str "SELECT [test_data.checkins.venue_id] AS [venue_id], " - " [test_data.checkins.user_id] AS [user_id], " - " [test_data.checkins.id] AS [checkins_id] " - "FROM [test_data.checkins] " - "LIMIT 2")] - (expect - [query] - (parse/parse query))) - -(expect - ["SELECT * FROM toucanneries WHERE TRUE " - (optional "AND num_toucans > " (param "num_toucans")) - " " - (optional "AND total_birds > " (param "total_birds"))] - (parse/parse - "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]")) - -;; Valid syntax in PG -- shouldn't get parsed -(let [query "SELECT array_dims(1 || '[0:1]={2,3}'::int[])"] - (expect - [query] - (parse/parse query))) - -;; Testing that invalid/unterminated template params/clauses throw an exception -(expect - IllegalArgumentException - (parse/parse "select * from foo [[where bar = {{baz}} ")) - -(expect - IllegalArgumentException - (parse/parse "select * from foo [[where bar = {{baz]]")) - -(expect - IllegalArgumentException - (parse/parse "select * from foo {{bar}} {{baz")) - -(expect - IllegalArgumentException - (parse/parse "select * from foo [[clause 1 {{bar}}]] [[clause 2")) diff --git a/test/metabase/query_processor/middleware/parameters/native/substitute_test.clj b/test/metabase/query_processor/middleware/parameters/native/substitute_test.clj deleted file mode 100644 index d0f3bc381a557ccbb25bfeae4df65a79c872276a..0000000000000000000000000000000000000000 --- a/test/metabase/query_processor/middleware/parameters/native/substitute_test.clj +++ /dev/null @@ -1,122 +0,0 @@ -(ns metabase.query-processor.middleware.parameters.native.substitute-test - (:require [expectations :refer [expect]] - [metabase.driver :as driver] - [metabase.models.field :refer [Field]] - [metabase.query-processor.middleware.parameters.native - [interface :as i] - [substitute :as substitute]] - [metabase.test.data :as data])) - -(defn- optional [& args] (i/->Optional args)) -(defn- param [param-name] (i/->Param param-name)) - -(defn- substitute [parsed param->value] - (driver/with-driver :h2 - (substitute/substitute parsed param->value))) - -;; normal substitution -(expect - ["select * from foobars where bird_type = ?" ["Steller's Jay"]] - (substitute - ["select * from foobars where bird_type = " (param "bird_type")] - {"bird_type" "Steller's Jay"})) - -;; make sure falsey values are substituted correctly -;; `nil` should get substituted as `NULL` -(expect - ["select * from foobars where bird_type = NULL" []] - (substitute - ["select * from foobars where bird_type = " (param "bird_type")] - {"bird_type" nil})) - -;; `false` should get substituted as `false` -(expect - ["select * from foobars where bird_type = FALSE" []] - (substitute - ["select * from foobars where bird_type = " (param "bird_type")] - {"bird_type" false})) - -;; optional substitution -- param present -(expect - ;; should preserve whitespace inside optional params - ["select * from foobars where bird_type = ?" ["Steller's Jay"]] - (substitute - ["select * from foobars " (optional " where bird_type = " (param "bird_type"))] - {"bird_type" "Steller's Jay"})) - -;; optional substitution -- param not present -(expect - ["select * from foobars" nil] - (substitute - ["select * from foobars " (optional " where bird_type = " (param "bird_type"))] - {})) - -;; optional -- multiple params -- all present -(expect - ["select * from foobars where bird_type = ? AND color = ?" ["Steller's Jay" "Blue"]] - (substitute - ["select * from foobars " (optional " where bird_type = " (param "bird_type") " AND color = " (param "bird_color"))] - {"bird_type" "Steller's Jay", "bird_color" "Blue"})) - -;; optional -- multiple params -- some present -(expect - ["select * from foobars" nil] - (substitute - ["select * from foobars " (optional " where bird_type = " (param "bird_type") " AND color = " (param "bird_color"))] - {"bird_type" "Steller's Jay"})) - -;; nested optionals -- all present -(expect - ["select * from foobars where bird_type = ? AND color = ?" ["Steller's Jay" "Blue"]] - (substitute - ["select * from foobars " (optional " where bird_type = " (param "bird_type") - (optional " AND color = " (param "bird_color")))] - {"bird_type" "Steller's Jay", "bird_color" "Blue"})) - -;; nested optionals -- some present -(expect - ["select * from foobars where bird_type = ?" ["Steller's Jay"]] - (substitute - ["select * from foobars " (optional " where bird_type = " (param "bird_type") - (optional " AND color = " (param "bird_color")))] - {"bird_type" "Steller's Jay"})) - -;;; ------------------------------------------------- Field Filters -------------------------------------------------- - -(defn- date-field-filter-value - "Field filter 'values' returned by the `values` namespace are actualy `FieldFilter` record types that contain information about" - [] - (i/map->FieldFilter - {:field (Field (data/id :checkins :date)) - :value {:type :date/single - :value #inst "2019-09-20T19:52:00.000-07:00"}})) - -;; field filter -- non-optional + present -(expect - ["select * from checkins where CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) = ?" - [#inst "2019-09-20T19:52:00.000-07:00"]] - (substitute - ["select * from checkins where " (param "date")] - {"date" (date-field-filter-value)})) - -;; field filter -- non-optional + missing -- should be replaced with 1 = 1 -(expect - ["select * from checkins where 1 = 1" []] - (substitute - ["select * from checkins where " (param "date")] - {"date" (assoc (date-field-filter-value) :value i/no-value)})) - -;; field filter -- optional + present -(expect - ["select * from checkins where CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) = ?" - [#inst "2019-09-20T19:52:00.000-07:00"]] - (substitute - ["select * from checkins " (optional "where " (param "date"))] - {"date" (date-field-filter-value)})) - -;; field filter -- optional + missing -- should be omitted entirely -(expect - ["select * from checkins" nil] - (substitute - ["select * from checkins " (optional "where " (param "date"))] - {"date" (assoc (date-field-filter-value) :value i/no-value)})) diff --git a/test/metabase/query_processor/middleware/parameters/native/substitution_test.clj b/test/metabase/query_processor/middleware/parameters/native/substitution_test.clj deleted file mode 100644 index 2a91b453a927434f0598cd1fddfc40b6b4d17b53..0000000000000000000000000000000000000000 --- a/test/metabase/query_processor/middleware/parameters/native/substitution_test.clj +++ /dev/null @@ -1,11 +0,0 @@ -(ns metabase.query-processor.middleware.parameters.native.substitution-test - (:require [expectations :refer [expect]] - [metabase.driver :as driver] - [metabase.query-processor.middleware.parameters.native.substitution :as substitution])) - -;; make sure we handle quotes inside names correctly! -(expect - {:replacement-snippet "\"test-data\".\"PUBLIC\".\"checkins\".\"date\"" - :prepared-statement-args nil} - (driver/with-driver :h2 - (#'substitution/honeysql->replacement-snippet-info :test-data.PUBLIC.checkins.date))) diff --git a/test/metabase/query_processor/middleware/parameters/native_test.clj b/test/metabase/query_processor/middleware/parameters/native_test.clj deleted file mode 100644 index 23b72afeca5fc9c6262adab220cbc4474dfab889..0000000000000000000000000000000000000000 --- a/test/metabase/query_processor/middleware/parameters/native_test.clj +++ /dev/null @@ -1,686 +0,0 @@ -(ns metabase.query-processor.middleware.parameters.native-test - "E2E tests for SQL param substitution." - (:require [clj-time.core :as t] - [expectations :refer [expect]] - [metabase - [driver :as driver] - [query-processor :as qp] - [query-processor-test :as qp.test]] - [metabase.mbql.normalize :as normalize] - [metabase.query-processor.middleware.parameters.native :as native] - [metabase.query-processor.middleware.parameters.native - [parse :as parse] - [substitute :as substitute]] - [metabase.test - [data :as data] - [util :as tu]] - [metabase.test.data.datasets :as datasets] - [metabase.util - [date :as du] - [schema :as su]] - [schema.core :as s])) - -;;; ------------------------------------------ simple substitution -- {{x}} ------------------------------------------ - -(defn- substitute-e2e {:style/indent 1} [sql params] - (let [[query params] (driver/with-driver :h2 - (#'substitute/substitute (parse/parse sql) (into {} params)))] - {:query query, :params (vec params)})) - -(expect - {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE" - :params []} - (substitute-e2e "SELECT * FROM bird_facts WHERE toucans_are_cool = {{toucans_are_cool}}" - {"toucans_are_cool" true})) - -(expect Exception - (substitute-e2e "SELECT * FROM bird_facts WHERE toucans_are_cool = {{toucans_are_cool}}" - nil)) - -(expect - {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE AND bird_type = ?" - :params ["toucan"]} - (substitute-e2e "SELECT * FROM bird_facts WHERE toucans_are_cool = {{toucans_are_cool}} AND bird_type = {{bird_type}}" - {"toucans_are_cool" true, "bird_type" "toucan"})) - -(expect Exception - (substitute-e2e "SELECT * FROM bird_facts WHERE toucans_are_cool = {{toucans_are_cool}} AND bird_type = {{bird_type}}" - {"toucans_are_cool" true})) - -;;; ---------------------------------- optional substitution -- [[ ... {{x}} ... ]] ---------------------------------- - -(expect - {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE" - :params []} - (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{toucans_are_cool}}]]" - {"toucans_are_cool" true})) - -(expect - {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE" - :params []} - (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{ toucans_are_cool }}]]" - {"toucans_are_cool" true})) - -(expect - {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE" - :params []} - (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{toucans_are_cool }}]]" - {"toucans_are_cool" true})) - -(expect - {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE" - :params []} - (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{ toucans_are_cool}}]]" - {"toucans_are_cool" true})) - -(expect - {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE" - :params []} - (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{toucans_are_cool_2}}]]" - {"toucans_are_cool_2" true})) - -(expect - {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE AND bird_type = 'toucan'" - :params []} - (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{toucans_are_cool}} AND bird_type = 'toucan']]" - {"toucans_are_cool" true})) - -;; Two parameters in an optional -(expect - {:query "SELECT * FROM bird_facts WHERE toucans_are_cool = TRUE AND bird_type = ?" - :params ["toucan"]} - (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{toucans_are_cool}} AND bird_type = {{bird_type}}]]" - {"toucans_are_cool" true, "bird_type" "toucan"})) - -(expect - {:query "SELECT * FROM bird_facts" - :params []} - (substitute-e2e "SELECT * FROM bird_facts [[WHERE toucans_are_cool = {{toucans_are_cool}}]]" - nil)) - -(expect - {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > 5" - :params []} - (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" - {"num_toucans" 5})) - -;; make sure nil gets substitute-e2ed in as `NULL` -(expect - {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > NULL" - :params []} - (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" - {"num_toucans" nil})) - -(expect - {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > TRUE" - :params []} - (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" - {"num_toucans" true})) - -(expect - {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > FALSE" - :params []} - (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" - {"num_toucans" false})) - -(expect - {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > ?" - :params ["abc"]} - (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" - {"num_toucans" "abc"})) - -(expect - {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > ?" - :params ["yo' mama"]} - (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" - {"num_toucans" "yo' mama"})) - -(expect - {:query "SELECT * FROM toucanneries WHERE TRUE" - :params []} - (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]]" - nil)) - -(expect - {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > 2 AND total_birds > 5" - :params []} - (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" - {"num_toucans" 2, "total_birds" 5})) - -(expect - {:query "SELECT * FROM toucanneries WHERE TRUE AND total_birds > 5" - :params []} - (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" - {"total_birds" 5})) - -(expect - {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > 3" - :params []} - (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" - {"num_toucans" 3})) - -(expect - {:query "SELECT * FROM toucanneries WHERE TRUE" - :params []} - (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" - nil)) - -(expect - {:query "SELECT * FROM toucanneries WHERE bird_type = ? AND num_toucans > 2 AND total_birds > 5" - :params ["toucan"]} - (substitute-e2e "SELECT * FROM toucanneries WHERE bird_type = {{bird_type}} [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" - {"bird_type" "toucan", "num_toucans" 2, "total_birds" 5})) - -(expect - Exception - (substitute-e2e "SELECT * FROM toucanneries WHERE bird_type = {{bird_type}} [[AND num_toucans > {{num_toucans}}]] [[AND total_birds > {{total_birds}}]]" - {"num_toucans" 2, "total_birds" 5})) - -(expect - {:query "SELECT * FROM toucanneries WHERE TRUE AND num_toucans > 5 AND num_toucans < 5" - :params []} - (substitute-e2e "SELECT * FROM toucanneries WHERE TRUE [[AND num_toucans > {{num_toucans}}]] [[AND num_toucans < {{num_toucans}}]]" - {"num_toucans" 5})) - -;; Make sure that substiutions still work if the subsitution contains brackets inside it (#3657) -(expect - {:query "select * from foobars where foobars.id in (string_to_array(100, ',')::integer[])" - :params []} - (substitute-e2e "select * from foobars [[ where foobars.id in (string_to_array({{foobar_id}}, ',')::integer[]) ]]" - {"foobar_id" 100})) - - -;;; ------------------------------------------- expansion tests: variables ------------------------------------------- - -(defmacro ^:private with-h2-db-timezone - "This macro is useful when testing pieces of the query pipeline (such as expand) where it's a basic unit test not - involving a database, but does need to parse dates" - [& body] - `(du/with-effective-timezone {:engine :h2 - :timezone "UTC" - :name "mock_db" - :id 1} - ~@body)) - -(defn- expand** - "Expand parameters inside a top-level native `query`. Not recursive. " - [{:keys [parameters], inner :native, :as query}] - (driver/with-driver :h2 - (let [inner' (native/expand-inner (update inner :parameters #(concat parameters %)))] - (assoc query :native inner')))) - -(defn- expand* [query] - (-> (with-h2-db-timezone - (expand** (normalize/normalize query))) - :native - (select-keys [:query :params :template-tags]) - (update :params vec))) - -;; unspecified optional param -(expect - {:query "SELECT * FROM orders ;" - :params []} - (expand* {:native {:query "SELECT * FROM orders [[WHERE id = {{id}}]];" - :template-tags {"id" {:name "id", :display-name "ID", :type :number}}} - :parameters []})) - -;; unspecified *required* param -(expect - Exception - (expand** {:native {:query "SELECT * FROM orders [[WHERE id = {{id}}]];" - :template-tags {"id" {:name "id", :display-name "ID", :type :number, :required true}}} - :parameters []})) - -;; default value -(expect - {:query "SELECT * FROM orders WHERE id = 100;" - :params []} - (expand* {:native {:query "SELECT * FROM orders WHERE id = {{id}};" - :template-tags {"id" {:name "id", :display-name "ID", :type :number, :required true, :default "100"}}} - :parameters []})) - -;; specified param (numbers) -(expect - {:query "SELECT * FROM orders WHERE id = 2;" - :params []} - (expand* {:native {:query "SELECT * FROM orders WHERE id = {{id}};" - :template-tags {"id" {:name "id", :display-name "ID", :type :number, :required true, :default "100"}}} - :parameters [{:type "category", :target [:variable [:template-tag "id"]], :value "2"}]})) - -;; specified param (date/single) -(expect - {:query "SELECT * FROM orders WHERE created_at > ?;" - :params [#inst "2016-07-19T00:00:00.000000000-00:00"]} - (expand* {:native {:query "SELECT * FROM orders WHERE created_at > {{created_at}};" - :template-tags {"created_at" {:name "created_at", :display-name "Created At", :type "date"}}} - :parameters [{:type :date/single, :target [:variable [:template-tag "created_at"]], :value "2016-07-19"}]})) - -;; specified param (text) -(expect - {:query "SELECT * FROM products WHERE category = ?;" - :params ["Gizmo"]} - (expand* {:native {:query "SELECT * FROM products WHERE category = {{category}};" - :template-tags {"category" {:name "category", :display-name "Category", :type :text}}} - :parameters [{:type "category", :target [:variable [:template-tag "category"]], :value "Gizmo"}]})) - - -;;; ----------------------------------------- expansion tests: field filters ----------------------------------------- - -(defn- expand-with-field-filter-param - ([field-filter-param] - (expand-with-field-filter-param "SELECT * FROM checkins WHERE {{date}};" field-filter-param)) - - ([sql field-filter-param] - (with-redefs [t/now (constantly (t/date-time 2016 06 07 12 0 0))] - (-> {:native {:query sql - :template-tags {"date" {:name "date" - :display-name "Checkin Date" - :type :dimension - :dimension [:field-id (data/id :checkins :date)]}}} - :parameters (when field-filter-param - [(merge {:target [:dimension [:template-tag "date"]]} - field-filter-param)])} - expand* - (dissoc :template-tags))))) - -;; dimension (date/single) -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) = ?;" - :params [#inst "2016-07-01T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/single, :value "2016-07-01"})) - -;; dimension (date/range) -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" - :params [#inst "2016-07-01T00:00:00.000000000-00:00" - #inst "2016-08-01T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/range, :value "2016-07-01~2016-08-01"})) - -;; dimension (date/month-year) -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" - :params [#inst "2016-07-01T00:00:00.000000000-00:00" - #inst "2016-07-31T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/month-year, :value "2016-07"})) - -;; dimension (date/quarter-year) -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" - :params [#inst "2016-01-01T00:00:00.000000000-00:00" - #inst "2016-03-31T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/quarter-year, :value "Q1-2016"})) - -;; dimension (date/all-options, before) -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) < ?;" - :params [#inst "2016-07-01T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/all-options, :value "~2016-07-01"})) - -;; dimension (date/all-options, after) -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) > ?;" - :params [#inst "2016-07-01T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/all-options, :value "2016-07-01~"})) - -;; relative date -- "yesterday" -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) = ?;" - :params [#inst "2016-06-06T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/range, :value "yesterday"})) - -;; relative date -- "past7days" -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" - :params [#inst "2016-05-31T00:00:00.000000000-00:00" - #inst "2016-06-06T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/range, :value "past7days"})) - -;; relative date -- "past30days" -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" - :params [#inst "2016-05-08T00:00:00.000000000-00:00" - #inst "2016-06-06T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/range, :value "past30days"})) - -;; relative date -- "thisweek" -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" - :params [#inst "2016-06-05T00:00:00.000000000-00:00" - #inst "2016-06-11T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/range, :value "thisweek"})) - -;; relative date -- "thismonth" -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" - :params [#inst "2016-06-01T00:00:00.000000000-00:00" - #inst "2016-06-30T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/range, :value "thismonth"})) - -;; relative date -- "thisyear" -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" - :params [#inst "2016-01-01T00:00:00.000000000-00:00" - #inst "2016-12-31T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/range, :value "thisyear"})) - -;; relative date -- "lastweek" -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" - :params [#inst "2016-05-29T00:00:00.000000000-00:00" - #inst "2016-06-04T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/range, :value "lastweek"})) - -;; relative date -- "lastmonth" -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" - :params [#inst "2016-05-01T00:00:00.000000000-00:00" - #inst "2016-05-31T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/range, :value "lastmonth"})) - -;; relative date -- "lastyear" -(expect - {:query "SELECT * FROM checkins WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?;" - :params [#inst "2015-01-01T00:00:00.000000000-00:00" - #inst "2015-12-31T00:00:00.000000000-00:00"]} - (expand-with-field-filter-param {:type :date/range, :value "lastyear"})) - -;; dimension with no value -- just replace with an always true clause (e.g. "WHERE 1 = 1") -(expect - {:query "SELECT * FROM checkins WHERE 1 = 1;" - :params []} - (expand-with-field-filter-param nil)) - -;; dimension -- number -- should get parsed to Number -(expect - {:query "SELECT * FROM checkins WHERE \"PUBLIC\".\"CHECKINS\".\"DATE\" = 100;" - :params []} - (expand-with-field-filter-param {:type :number, :value "100"})) - -;; dimension -- text -(expect - {:query "SELECT * FROM checkins WHERE \"PUBLIC\".\"CHECKINS\".\"DATE\" = ?;" - :params ["100"]} - (expand-with-field-filter-param {:type :text, :value "100"})) - -;; *OPTIONAL* Field Filter params should not get replaced with 1 = 1 if the param is not present (#5541, #9489). -;; *Optional params should be emitted entirely. -(expect - {:query "SELECT * FROM ORDERS WHERE TOTAL > 100 AND CREATED_AT < now()" - :params []} - (expand-with-field-filter-param - "SELECT * FROM ORDERS WHERE TOTAL > 100 [[AND {{created}} #]] AND CREATED_AT < now()" - nil)) - - -;;; -------------------------------------------- "REAL" END-TO-END-TESTS --------------------------------------------- - -(s/defn ^:private checkins-identifier :- su/NonBlankString - "Get the identifier used for `checkins` for the current driver by looking at what the driver uses when converting MBQL - to SQL. Different drivers qualify to different degrees (i.e. `table` vs `schema.table` vs `database.schema.table`)." - [] - (let [sql (:query (qp/query->native (data/mbql-query checkins)))] - (second (re-find #"FROM\s([^\s()]+)" sql)))) - -;; as with the MBQL parameters tests Redshift fail for unknown reasons; disable their tests for now -(def ^:private sql-parameters-engines - (delay (disj (qp.test/non-timeseries-drivers-with-feature :native-parameters) :redshift))) - -(defn- process-native {:style/indent 0} [& kvs] - (du/with-effective-timezone (data/db) - (qp/process-query - (apply assoc {:database (data/id), :type :native, :settings {:report-timezone "UTC"}} kvs)))) - -(datasets/expect-with-drivers @sql-parameters-engines - [29] - (qp.test/first-row - (qp.test/format-rows-by [int] - (process-native - :native {:query (format "SELECT COUNT(*) FROM %s WHERE {{checkin_date}}" (checkins-identifier)) - :template-tags {"checkin_date" {:name "checkin_date" - :display-name "Checkin Date" - :type :dimension - :dimension [:field-id (data/id :checkins :date)]}}} - :parameters [{:type :date/range - :target [:dimension [:template-tag "checkin_date"]] - :value "2015-04-01~2015-05-01"}])))) - -;; no parameter -- should give us a query with "WHERE 1 = 1" -(datasets/expect-with-drivers @sql-parameters-engines - [1000] - (qp.test/first-row - (qp.test/format-rows-by [int] - (process-native - :native {:query (format "SELECT COUNT(*) FROM %s WHERE {{checkin_date}}" (checkins-identifier)) - :template-tags {"checkin_date" {:name "checkin_date" - :display-name "Checkin Date" - :type :dimension - :dimension [:field-id (data/id :checkins :date)]}}} - :parameters [])))) - -;; test that relative dates work correctly. It should be enough to try just one type of relative date here, since -;; handling them gets delegated to the functions in `metabase.query-processor.parameters`, which is fully-tested :D -(datasets/expect-with-drivers @sql-parameters-engines - [0] - (qp.test/first-row - (qp.test/format-rows-by [int] - (process-native - :native {:query (format "SELECT COUNT(*) FROM %s WHERE {{checkin_date}}" (checkins-identifier)) - :template-tags {"checkin_date" {:name "checkin_date" - :display-name "Checkin Date" - :type :dimension - :dimension [:field-id (data/id :checkins :date)]}}} - :parameters [{:type :date/relative, :target [:dimension [:template-tag "checkin_date"]], :value "thismonth"}])))) - - -;; test that multiple filters applied to the same variable combine into `AND` clauses (#3539) -(datasets/expect-with-drivers @sql-parameters-engines - [4] - (qp.test/first-row - (qp.test/format-rows-by [int] - (process-native - :native {:query (format "SELECT COUNT(*) FROM %s WHERE {{checkin_date}}" (checkins-identifier)) - :template-tags {"checkin_date" {:name "checkin_date" - :display-name "Checkin Date" - :type :dimension - :dimension [:field-id (data/id :checkins :date)]}}} - :parameters [{:type :date/range, :target [:dimension [:template-tag "checkin_date"]], :value "2015-01-01~2016-09-01"} - {:type :date/single, :target [:dimension [:template-tag "checkin_date"]], :value "2015-07-01"}])))) - -;; Test that native dates are parsed with the report timezone (when supported) -(datasets/expect-with-drivers (disj @sql-parameters-engines :sqlite) - [(cond - (= :presto driver/*driver*) - "2018-04-18" - - ;; Snowflake appears to have a bug in their JDBC driver when including the target timezone along with the SQL - ;; date parameter. The below value is not correct, but is what the driver returns right now. This bug is written - ;; up as https://github.com/metabase/metabase/issues/8804 and when fixed this should be removed as it should - ;; return the same value as the other drivers that support a report timezone - (= :snowflake driver/*driver*) - "2018-04-16T17:00:00.000-07:00" - - (qp.test/supports-report-timezone? driver/*driver*) - "2018-04-18T00:00:00.000-07:00" - - :else - "2018-04-18T00:00:00.000Z")] - (tu/with-temporary-setting-values [report-timezone "America/Los_Angeles"] - (qp.test/first-row - (process-native - :native {:query (case driver/*driver* - :bigquery - "SELECT {{date}} as date" - - :oracle - "SELECT cast({{date}} as date) from dual" - - "SELECT cast({{date}} as date)") - :template-tags {"date" {:name "date" :display-name "Date" :type :date}}} - :parameters [{:type :date/single :target [:variable [:template-tag "date"]] :value "2018-04-18"}])))) - -;; Some random end-to-end param expansion tests added as part of the SQL Parameters 2.0 rewrite - -(expect - {:query "SELECT count(*) FROM CHECKINS WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ?", - :params [#inst "2017-03-01T00:00:00.000000000-00:00" - #inst "2017-03-31T00:00:00.000000000-00:00"]} - (expand* {:native {:query "SELECT count(*) FROM CHECKINS WHERE {{created_at}}" - :template-tags {"created_at" {:name "created_at" - :display-name "Created At" - :type :dimension - :dimension [:field-id (data/id :checkins :date)]}}} - :parameters [{:type :date/month-year, :target [:dimension [:template-tag "created_at"]], :value "2017-03"}]})) - -(expect - {:query "SELECT count(*) FROM ORDERS" - :params []} - (expand* {:native {:query "SELECT count(*) FROM ORDERS [[WHERE price > {{price}}]]" - :template-tags {"price" {:name "price", :display-name "Price", :type :number, :required false}}}})) - -(expect - {:query "SELECT count(*) FROM ORDERS WHERE price > 100" - :params []} - (expand* {:native {:query "SELECT count(*) FROM ORDERS [[WHERE price > {{price}}]]" - :template-tags {"price" {:name "price", :display-name "Price", :type :number, :required false}}} - :parameters [{:type "category", :target [:variable [:template-tag "price"]], :value "100"}]})) - -(expect - {:query "SELECT count(*) FROM PRODUCTS WHERE TITLE LIKE ?" - :params ["%Toucan%"]} - (expand* {:native {:query "SELECT count(*) FROM PRODUCTS WHERE TITLE LIKE {{x}}", - :template-tags {"x" {:name "x" - :display-name "X" - :type :text - :required true - :default "%Toucan%"}}} - :parameters [{:type "category", :target [:variable [:template-tag "x"]]}]})) - -;; make sure that you can use the same parameter multiple times (#4659) -(expect - {:query "SELECT count(*) FROM products WHERE title LIKE ? AND subtitle LIKE ?" - :params ["%Toucan%" "%Toucan%"]} - (expand* {:native {:query "SELECT count(*) FROM products WHERE title LIKE {{x}} AND subtitle LIKE {{x}}", - :template-tags {"x" {:name "x" - :display-name "X" - :type :text - :required true - :default "%Toucan%"}}} - :parameters [{:type "category", :target [:variable [:template-tag "x"]]}]})) - -(expect - {:query "SELECT * FROM ORDERS WHERE true AND ID = ? OR USER_ID = ?" - :params ["2" "2"]} - (expand* {:native {:query "SELECT * FROM ORDERS WHERE true [[ AND ID = {{id}} OR USER_ID = {{id}} ]]" - :template-tags {"id" {:name "id", :display-name "ID", :type :text}}} - :parameters [{:type "category", :target [:variable [:template-tag "id"]], :value "2"}]})) - - -;;; +----------------------------------------------------------------------------------------------------------------+ -;;; | RELATIVE DATES & DEFAULTS IN "DIMENSION" PARAMS (#6059) | -;;; +----------------------------------------------------------------------------------------------------------------+ - -;; Make sure relative date forms like `past5days` work correctly with Field Filters -(expect - {:query (str "SELECT count(*) AS \"count\", \"DATE\" " - "FROM CHECKINS " - "WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ? " - "GROUP BY \"DATE\"") - :params [#inst "2017-10-31T00:00:00.000000000-00:00" - #inst "2017-11-04T00:00:00.000000000-00:00"]} - (with-redefs [t/now (constantly (t/date-time 2017 11 05 12 0 0))] - (expand* {:native {:query (str "SELECT count(*) AS \"count\", \"DATE\" " - "FROM CHECKINS " - "WHERE {{checkin_date}} " - "GROUP BY \"DATE\"") - :template-tags {"checkin_date" {:name "checkin_date" - :display-name "Checkin Date" - :type :dimension - :dimension [:field-id (data/id :checkins :date)]}}} - :parameters [{:type :date/range - :target [:dimension [:template-tag "checkin_date"]] - :value "past5days"}]}))) - -;; Make sure we can specify the type of a default value for a "Dimension" (Field Filter) by setting the -;; `:widget-type` key. Check that it works correctly with relative dates... -(expect - {:query (str "SELECT count(*) AS \"count\", \"DATE\" " - "FROM CHECKINS " - "WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) BETWEEN ? AND ? " - "GROUP BY \"DATE\"") - :params [#inst "2017-10-31T00:00:00.000000000-00:00" - #inst "2017-11-04T00:00:00.000000000-00:00"]} - (with-redefs [t/now (constantly (t/date-time 2017 11 05 12 0 0))] - (expand* {:native {:query (str "SELECT count(*) AS \"count\", \"DATE\" " - "FROM CHECKINS " - "WHERE {{checkin_date}} " - "GROUP BY \"DATE\"") - :template-tags {"checkin_date" {:name "checkin_date" - :display-name "Checkin Date" - :type :dimension - :dimension [:field-id (data/id :checkins :date)] - :default "past5days" - :widget-type :date/all-options}}}}))) - -;; Check that it works with absolute dates as well -(expect - {:query (str "SELECT count(*) AS \"count\", \"DATE\" " - "FROM CHECKINS " - "WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) = ? " - "GROUP BY \"DATE\"") - :params [#inst "2017-11-14T00:00:00.000000000-00:00"]} - (expand* {:native {:query (str "SELECT count(*) AS \"count\", \"DATE\" " - "FROM CHECKINS " - "WHERE {{checkin_date}} " - "GROUP BY \"DATE\"") - :template-tags {"checkin_date" {:name "checkin_date" - :display-name "Checkin Date" - :type :dimension - :dimension [:field-id (data/id :checkins :date)] - :default "2017-11-14" - :widget-type :date/all-options}}}})) - - -;;; ------------------------------- Multiple Value Support (comma-separated or array) -------------------------------- - -;; Make sure using commas in numeric params treats them as separate IDs (#5457) -(expect - "SELECT * FROM USERS where id IN (1, 2, 3)" - (-> (qp/process-query - {:database (data/id) - :type "native" - :native {:query "SELECT * FROM USERS [[where id IN ({{ids_list}})]]" - :template-tags {"ids_list" {:name "ids_list" - :display-name "Ids list" - :type :number}}} - :parameters [{:type "category" - :target [:variable [:template-tag "ids_list"]] - :value "1,2,3"}]}) - :data :native_form :query)) - - -;; make sure you can now also pass multiple values in by passing an array of values -(expect - {:query "SELECT * FROM CATEGORIES where name IN (?, ?, ?)" - :params ["BBQ" "Bakery" "Bar"]} - (expand* - {:native {:query "SELECT * FROM CATEGORIES [[where name IN ({{names_list}})]]" - :template-tags {"names_list" {:name "names_list" - :display-name "Names List" - :type :text}}} - :parameters [{:type "category" - :target [:variable [:template-tag "names_list"]] - :value ["BBQ", "Bakery", "Bar"]}]})) - -;; Make sure arrays of values also work for 'field filter' params -(expect - {:query "SELECT * FROM CATEGORIES WHERE \"PUBLIC\".\"USERS\".\"ID\" IN (?, ?, ?)", - :params ["BBQ" "Bakery" "Bar"]} - (expand* - {:native {:query "SELECT * FROM CATEGORIES WHERE {{names_list}}" - :template-tags {"names_list" {:name "names_list" - :display-name "Names List" - :type :dimension - :dimension [:field-id (data/id :users :id)]}}} - :parameters [{:type :text - :target [:dimension [:template-tag "names_list"]] - :value ["BBQ", "Bakery", "Bar"]}]})) diff --git a/test/metabase/query_processor/middleware/parameters_test.clj b/test/metabase/query_processor/middleware/parameters_test.clj index 99111c1c5cd65d6d5679b1a342d3f53c5e70b12d..cab42d11dc84fc45d74d7a7236d3068ae55c4d7e 100644 --- a/test/metabase/query_processor/middleware/parameters_test.clj +++ b/test/metabase/query_processor/middleware/parameters_test.clj @@ -1,4 +1,6 @@ (ns metabase.query-processor.middleware.parameters-test + "Testings to make sure the parameter substitution middleware works as expected. Even though the below tests are + SQL-specific, they still confirm that the middleware itself is working correctly." (:require [expectations :refer [expect]] [metabase.driver :as driver] [metabase.mbql.normalize :as normalize] diff --git a/test/metabase/query_processor/middleware/results_metadata_test.clj b/test/metabase/query_processor/middleware/results_metadata_test.clj index c5c40e96818e579bc7eb248b150977aebe2c22c0..fa93aa831a9bd3be14cf825dbf6c5a27dfe6b25a 100644 --- a/test/metabase/query_processor/middleware/results_metadata_test.clj +++ b/test/metabase/query_processor/middleware/results_metadata_test.clj @@ -1,5 +1,6 @@ (ns metabase.query-processor.middleware.results-metadata-test - (:require [expectations :refer [expect]] + (:require [clojure.test :refer :all] + [expectations :refer [expect]] [metabase [query-processor :as qp] [util :as u]] @@ -163,31 +164,31 @@ round-to-2-decimals (->> (tu/round-fingerprint-cols [:columns])))) -;; make sure that a Card where a DateTime column is broken out by year works the way we'd expect -(expect - [{:base_type "type/Date" - :display_name "Date" - :name "DATE" - :unit "year" - :special_type nil - :fingerprint {:global {:distinct-count 618 :nil% 0.0}, :type {:type/DateTime {:earliest "2013-01-03T00:00:00.000Z" - :latest "2015-12-29T00:00:00.000Z"}}}} - {:base_type "type/Integer" - :display_name "Count" - :name "count" - :special_type "type/Quantity" - :fingerprint {:global {:distinct-count 3 - :nil% 0.0}, - :type {:type/Number {:min 235.0, :max 498.0, :avg 333.33 :q1 243.0, :q3 440.0 :sd 143.5}}}}] - (tt/with-temp Card [card] - (qp/process-query {:database (data/id) - :type :query - :query {:source-table (data/id :checkins) - :aggregation [[:count]] - :breakout [[:datetime-field [:field-id (data/id :checkins :date)] :year]]} - :info {:card-id (u/get-id card) - :query-hash (qputil/query-hash {})}}) - (-> card - card-metadata - round-to-2-decimals - tu/round-fingerprint-cols))) +(deftest card-with-datetime-breakout-by-year-test + (testing "make sure that a Card where a DateTime column is broken out by year works the way we'd expect" + (is (= [{:base_type "type/Date" + :display_name "Date" + :name "DATE" + :unit "year" + :special_type nil + :fingerprint {:global {:distinct-count 618 :nil% 0.0}, :type {:type/DateTime {:earliest "2013-01-03" + :latest "2015-12-29"}}}} + {:base_type "type/Integer" + :display_name "Count" + :name "count" + :special_type "type/Quantity" + :fingerprint {:global {:distinct-count 3 + :nil% 0.0}, + :type {:type/Number {:min 235.0, :max 498.0, :avg 333.33 :q1 243.0, :q3 440.0 :sd 143.5}}}}] + (tt/with-temp Card [card] + (qp/process-query {:database (data/id) + :type :query + :query {:source-table (data/id :checkins) + :aggregation [[:count]] + :breakout [[:datetime-field [:field-id (data/id :checkins :date)] :year]]} + :info {:card-id (u/get-id card) + :query-hash (qputil/query-hash {})}}) + (-> card + card-metadata + round-to-2-decimals + tu/round-fingerprint-cols)))))) diff --git a/test/metabase/query_processor/middleware/wrap_value_literals_test.clj b/test/metabase/query_processor/middleware/wrap_value_literals_test.clj index c0bc0f87e20fcf429ddc2ae0314b9d97f4527f4f..aa4ff5e74551f79a1c63f441df344d26cb25b9c3 100644 --- a/test/metabase/query_processor/middleware/wrap_value_literals_test.clj +++ b/test/metabase/query_processor/middleware/wrap_value_literals_test.clj @@ -1,13 +1,15 @@ (ns metabase.query-processor.middleware.wrap-value-literals-test (:require [clojure.test :refer :all] - [expectations :refer [expect]] + [java-time :as t] + [metabase + [driver :as driver] + [test :as mt]] [metabase.query-processor.middleware.wrap-value-literals :as wrap-value-literals] - [metabase.query-processor.test-util :as qp.test-util] - [metabase.test - [data :as data] - [util :as tu]] - [metabase.util.date :as du]) - (:import java.util.TimeZone)) + [metabase.query-processor.timezone :as qp.timezone])) + +(driver/register! ::tz-driver, :abstract? true) + +(defmethod driver/supports? [::tz-driver :set-timezone] [_ _] true) (defn- wrap-value-literals {:style/indent 0} @@ -15,111 +17,112 @@ (wrap-value-literals query "UTC")) ([query, ^String timezone-id] - (qp.test-util/with-everything-store - (binding [du/*report-timezone* (TimeZone/getTimeZone timezone-id)] + (mt/with-everything-store + (mt/with-results-timezone-id timezone-id ((wrap-value-literals/wrap-value-literals identity) query))))) -(expect - (data/mbql-query venues - {:filter [:> - $id - [:value 50 {:base_type :type/BigInteger - :special_type :type/PK - :database_type "BIGINT"}]]}) - (wrap-value-literals - (data/mbql-query venues - {:filter [:> $id 50]}))) - -(expect - (data/mbql-query venues - {:filter [:and - [:> $id [:value 50 {:base_type :type/BigInteger - :special_type :type/PK - :database_type "BIGINT"}]] - [:< $price [:value 5 {:base_type :type/Integer - :special_type :type/Category - :database_type "INTEGER"}]]]}) - (wrap-value-literals - (data/mbql-query venues - {:filter [:and - [:> $id 50] - [:< $price 5]]}))) +(deftest wrap-integers-test + (is (= (mt/mbql-query venues + {:filter [:> + $id + [:value 50 {:base_type :type/BigInteger + :special_type :type/PK + :database_type "BIGINT"}]]}) + (wrap-value-literals + (mt/mbql-query venues + {:filter [:> $id 50]})))) + (is (= (mt/mbql-query venues + {:filter [:and + [:> $id [:value 50 {:base_type :type/BigInteger + :special_type :type/PK + :database_type "BIGINT"}]] + [:< $price [:value 5 {:base_type :type/Integer + :special_type :type/Category + :database_type "INTEGER"}]]]}) + (wrap-value-literals + (mt/mbql-query venues + {:filter [:and + [:> $id 50] + [:< $price 5]]}))))) (deftest parse-datetime-literal-strings-test (let [parse-with-timezone (fn [datetime-str, ^String timezone-id] - (binding [du/*report-timezone* (TimeZone/getTimeZone timezone-id)] - (second (#'wrap-value-literals/add-type-info datetime-str - {:unit :day} - :report-timezone timezone-id))))] - (doseq [[timezone expected] {"UTC" #inst "2018-10-01T00:00:00.000000000-00:00" - "US/Pacific" #inst "2018-10-01T07:00:00.000000000-00:00"}] - (is (= (du/->Timestamp expected "UTC") + (driver/with-driver ::tz-driver + (mt/with-temporary-setting-values [report-timezone timezone-id] + (is (= (qp.timezone/results-timezone-id) + timezone-id) + "Make sure `results-timezone-id` is returning the bound value") + (second (#'wrap-value-literals/add-type-info datetime-str + {:unit :day})))))] + (doseq [[timezone expected] {"UTC" (t/zoned-date-time "2018-10-01T00:00:00Z[UTC]") + "US/Pacific" (t/zoned-date-time "2018-10-01T00:00:00-07:00[US/Pacific]")}] + (is (= expected (parse-with-timezone "2018-10-01" timezone)) (format "datetime literal string '2018-10-01' parsed with the %s timezone should be %s" timezone expected))))) (deftest wrap-datetime-literal-strings-test (is (= (:query - (data/mbql-query checkins - {:filter [:= !month.date [:absolute-datetime (du/->Timestamp "2018-10-01" "UTC") :month]]})) - (:query - (data/$ids checkins - (wrap-value-literals - (data/mbql-query checkins - {:filter [:= !month.date "2018-10-01"]}))))) + (mt/mbql-query checkins + {:filter [:= !month.date [:absolute-datetime (t/zoned-date-time "2018-10-01T00:00Z[UTC]") :month]]})) + (-> (mt/$ids checkins + (mt/mbql-query checkins + {:filter [:= !month.date "2018-10-01"]})) + wrap-value-literals + :query)) "do datetime literal strings get wrapped in `absolute-datetime` clauses when in appropriate filters?") (is (= (:query - (data/mbql-query checkins + (mt/mbql-query checkins {:source-query {:source-table $$checkins} :filter [:= !month.*date - [:absolute-datetime (du/->Timestamp "2018-10-01" "UTC") :month]]})) + [:absolute-datetime (t/zoned-date-time "2018-10-01T00:00Z[UTC]") :month]]})) (:query (wrap-value-literals - (data/mbql-query checkins + (mt/mbql-query checkins {:source-query {:source-table $$checkins} :filter [:= !month.*date "2018-10-01"]})))) (str "make sure datetime literal strings should also get wrapped in `absolute-datetime` clauses if they are " "being compared against a type/DateTime `field-literal`")) (is (= (:query - (data/mbql-query checkins - {:filter [:= $date [:absolute-datetime (du/->Timestamp "2018-10-01" "UTC") :default]]})) + (mt/mbql-query checkins + {:filter [:= $date [:absolute-datetime (t/zoned-date-time "2018-10-01T00:00Z[UTC]") :default]]})) (:query (wrap-value-literals - (data/mbql-query checkins + (mt/mbql-query checkins {:filter [:= $date "2018-10-01"]})))) (str "even if the Field in question is not wrapped in a datetime-field clause, we should still auto-bucket the " "value, but we should give it a a`:default` unit")) (is (= (:query - (data/dataset sad-toucan-incidents - (data/mbql-query incidents + (mt/dataset sad-toucan-incidents + (mt/mbql-query incidents {:filter [:and [:> !day.timestamp - [:absolute-datetime #inst "2015-06-01T00:00:00.000000000-00:00" :day]] + [:absolute-datetime (t/zoned-date-time "2015-06-01T00:00Z[UTC]") :day]] [:< !day.timestamp - [:absolute-datetime #inst "2015-06-03T00:00:00.000000000-00:00" :day]]]}))) + [:absolute-datetime (t/zoned-date-time "2015-06-03T00:00:00Z[UTC]") :day]]]}))) (:query - (data/dataset sad-toucan-incidents + (mt/dataset sad-toucan-incidents (wrap-value-literals - (data/mbql-query incidents + (mt/mbql-query incidents {:filter [:and [:> !day.timestamp "2015-06-01"] [:< !day.timestamp "2015-06-03"]]}))))) "should also apply if the Fields are UNIX timestamps or other things with special type of :type/Datetime") - (tu/with-temporary-setting-values [report-timezone "US/Pacific"] + (mt/with-temporary-setting-values [report-timezone "US/Pacific"] (is (= (:query - (data/mbql-query checkins + (mt/mbql-query checkins {:source-query {:source-table $$checkins} :filter [:= !day.*date - [:absolute-datetime (du/->Timestamp #inst "2018-10-01T07:00:00.000Z" "UTC") :day]]})) - (-> (data/mbql-query checkins + [:absolute-datetime (t/zoned-date-time "2018-10-01T00:00-07:00[US/Pacific]") :day]]})) + (-> (mt/mbql-query checkins {:source-query {:source-table $$checkins} :filter [:= !day.*date "2018-10-01"]}) (assoc-in [:settings :report-timezone] "US/Pacific") @@ -127,39 +130,39 @@ :query)) "Datetime literal strings should get parsed in the current report timezone."))) -;; string filters like `starts-with` should not parse datetime strings for obvious reasons -(expect - (data/mbql-query checkins - {:filter [:starts-with - !month.date - [:value "2018-10-01" {:base_type :type/Date - :special_type nil - :database_type "DATE" - :unit :month}]]}) - (wrap-value-literals - (data/mbql-query checkins - {:filter [:starts-with !month.date "2018-10-01"]}))) - -;; does wrapping value literals work recursively on source queries as well? -(expect - (data/mbql-query checkins - {:source-query {:source-table $$checkins - :filter [:> - $date - [:absolute-datetime #inst "2014-01-01T00:00:00.000000000-00:00" :default]]}}) - (wrap-value-literals - (data/mbql-query checkins - {:source-query {:source-table $$checkins - :filter [:> $date "2014-01-01"]}}))) +(deftest string-filters-test + (testing "string filters like `starts-with` should not parse datetime strings for obvious reasons" + (is (= (mt/mbql-query checkins + {:filter [:starts-with + !month.date + [:value "2018-10-01" {:base_type :type/Date + :special_type nil + :database_type "DATE" + :unit :month}]]}) + (wrap-value-literals + (mt/mbql-query checkins + {:filter [:starts-with !month.date "2018-10-01"]})))))) -;; Make sure we apply the transformation to predicates in all parts of the query, not only `:filter` -(expect - (data/dataset sad-toucan-incidents - (data/mbql-query incidents - {:aggregation [[:share - [:> !day.timestamp [:absolute-datetime (du/->Timestamp "2015-06-01" "UTC") :day]]]]})) +(deftest wrap-literals-in-source-queries-test + (testing "does wrapping value literals work recursively on source queries as well?" + (is (= + (mt/mbql-query checkins + {:source-query {:source-table $$checkins + :filter [:> + $date + [:absolute-datetime (t/zoned-date-time "2014-01-01T00:00Z[UTC]") :default]]}}) + (wrap-value-literals + (mt/mbql-query checkins + {:source-query {:source-table $$checkins + :filter [:> $date "2014-01-01"]}})))))) - (data/dataset sad-toucan-incidents - (wrap-value-literals - (data/mbql-query incidents - {:aggregation [[:share [:> !day.timestamp "2015-06-01"]]]})))) +(deftest other-clauses-test + (testing "Make sure we apply the transformation to predicates in all parts of the query, not only `:filter`" + (is (= (mt/dataset sad-toucan-incidents + (mt/mbql-query incidents + {:aggregation [[:share + [:> !day.timestamp [:absolute-datetime (t/zoned-date-time "2015-06-01T00:00Z[UTC]") :day]]]]})) + (mt/dataset sad-toucan-incidents + (wrap-value-literals + (mt/mbql-query incidents + {:aggregation [[:share [:> !day.timestamp "2015-06-01"]]]}))))))) diff --git a/test/metabase/query_processor/test_util.clj b/test/metabase/query_processor/test_util.clj index 91c0414c9a80d859852483ee81204b537e9c7902..a6812ff616056f28be69ffa67b4130b2339c2275 100644 --- a/test/metabase/query_processor/test_util.clj +++ b/test/metabase/query_processor/test_util.clj @@ -5,15 +5,19 @@ The various QP Store functions & macros in this namespace are primarily meant to help write QP Middleware tests, so you can test a given piece of middleware without having to worry about putting things in the QP Store yourself (since this is usually done by other middleware in the first place)." - (:require [metabase + (:require [clojure.test :refer :all] + [metabase + [driver :as driver] [query-processor :as qp] [util :as u]] [metabase.mbql.util :as mbql.u] [metabase.models [field :refer [Field]] [table :refer [Table]]] + [metabase.query-processor + [store :as qp.store] + [timezone :as qp.timezone]] [metabase.query-processor.middleware.add-implicit-joins :as add-implicit-joins] - [metabase.query-processor.store :as qp.store] [metabase.test.data :as data] [metabase.util.schema :as su] [schema.core :as s] @@ -23,12 +27,16 @@ ;; `metabase.query-processor-test` (s/defn ^:private everything-store-table [table-id :- (s/maybe su/IntGreaterThanZero)] + (assert (= (:id (qp.store/database)) (data/id)) + "with-everything-store currently does not support switching drivers. Make sure you call with-driver *before* with-everything-store.") (or (get-in @@#'qp.store/*store* [:tables table-id]) (do (qp.store/fetch-and-store-tables! [table-id]) (qp.store/table table-id)))) (s/defn ^:private everything-store-field [field-id :- (s/maybe su/IntGreaterThanZero)] + (assert (= (:id (qp.store/database)) (data/id)) + "with-everything-store currently does not support switching drivers. Make sure you call with-driver *before* with-everything-store.") (or (get-in @@#'qp.store/*store* [:fields field-id]) (do (qp.store/fetch-and-store-fields! [field-id]) @@ -74,7 +82,6 @@ (when-let [field-ids (seq (mbql.u/match query [:field-id id] id))] (qp.store/fetch-and-store-fields! field-ids))) - (defn store-contents "Fetch the names of all the objects currently in the QP Store." [] @@ -109,3 +116,50 @@ (#'add-implicit-joins/join-alias (db/select-one-field :name Table :id (u/get-id table-or-id)) (db/select-one-field :name Field :id (u/get-id field-or-id)))) + + +;;; ------------------------------------------------- Timezone Stuff ------------------------------------------------- + +(defn do-with-report-timezone-id + "Impl for `with-report-timezone-id`." + [timezone-id thunk] + {:pre [((some-fn nil? string?) timezone-id)]} + ;; This will fail if the app DB isn't initialized yet. That's fine — there's no DBs to notify if the app DB isn't + ;; set up. + (try + (#'driver/notify-all-databases-updated) + (catch Throwable _)) + (binding [qp.timezone/*report-timezone-id-override* (or timezone-id ::nil)] + (testing (format "\nreport timezone id = %s" timezone-id) + (thunk)))) + +(defmacro with-report-timezone-id + "Override the `report-timezone` Setting and execute `body`. Intended primarily for REPL and test usage." + [timezone-id & body] + `(do-with-report-timezone-id ~timezone-id (fn [] ~@body))) + +(defn do-with-database-timezone-id + "Impl for `with-database-timezone-id`." + [timezone-id thunk] + {:pre [((some-fn nil? string?) timezone-id)]} + (binding [qp.timezone/*database-timezone-id-override* (or timezone-id ::nil)] + (testing (format "\ndatabase timezone id = %s" timezone-id) + (thunk)))) + +(defmacro with-database-timezone-id + "Override the database timezone ID and execute `body`. Intended primarily for REPL and test usage." + [timezone-id & body] + `(do-with-database-timezone-id ~timezone-id (fn [] ~@body))) + +(defn do-with-results-timezone-id + "Impl for `with-results-timezone-id`." + [timezone-id thunk] + {:pre [((some-fn nil? string?) timezone-id)]} + (binding [qp.timezone/*results-timezone-id-override* (or timezone-id ::nil)] + (testing (format "\nresults timezone id = %s" timezone-id) + (thunk)))) + +(defmacro with-results-timezone-id + "Override the determined results timezone ID and execute `body`. Intended primarily for REPL and test usage." + [timezone-id & body] + `(do-with-results-timezone-id ~timezone-id (fn [] ~@body))) diff --git a/test/metabase/query_processor_test.clj b/test/metabase/query_processor_test.clj index 09061b89823c52f5f0f8c8f480a85d0c8dcfae8d..50557d06b2214e655cb66364b66ac0f2ead629b5 100644 --- a/test/metabase/query_processor_test.clj +++ b/test/metabase/query_processor_test.clj @@ -21,59 +21,81 @@ ;;; ---------------------------------------------- Helper Fns + Macros ----------------------------------------------- -;; TODO - now that we've added Google Analytics to this, `timeseries-drivers` doesn't really make sense anymore. -;; Perhaps we should rename it to `abnormal-drivers` - ;; Event-Based DBs aren't tested here, but in `event-query-processor-test` instead. -(def ^:private timeseries-drivers #{:druid :googleanalytics}) +(def ^:private abnormal-drivers + "Drivers that are so weird that we can't run the normal driver tests against them." + #{:druid :googleanalytics}) -;; TODO - we should make this a function instead to facilitate rebinding with macros like `dev/with-test-drivers` -(def non-timeseries-drivers - "Set of engines for non-timeseries DBs (i.e., every driver except `:druid`)." - (delay - (set/difference @tx.env/test-drivers timeseries-drivers))) +(defn normal-drivers + "Drivers that are reasonably normal in the sense that they can participate in the shared driver tests." + [] + (set/difference (tx.env/test-drivers) abnormal-drivers)) -(defn non-timeseries-drivers-with-feature +;; TODO - we should make this a function instead to facilitate rebinding with macros like `dev/with-test-drivers` +(def ^:deprecated non-timeseries-drivers + "Set of engines for non-timeseries DBs (i.e., every driver except `:druid`). DEPRECATED — Use `normal-drivers` + instead." + (reify + clojure.lang.IDeref + (deref [_] + (normal-drivers)))) + +(defn normal-drivers-with-feature "Set of engines that support a given `feature`. If additional features are given, it will ensure all features are supported." [feature & more-features] (let [features (set (cons feature more-features))] - (set (for [driver @non-timeseries-drivers + (set (for [driver (normal-drivers) :let [driver (tx/the-driver-with-test-extensions driver)] :when (set/subset? features (driver.u/features driver))] driver)))) -(defn non-timeseries-drivers-without-feature +(defn ^:deprecated non-timeseries-drivers-with-feature + "DEPRECATED — use `normal-drivers-with-feature` instead." + [feature & more-features] + (apply normal-drivers-with-feature feature more-features)) + +(defn normal-drivers-without-feature "Return a set of all non-timeseries engines (e.g., everything except Druid) that DO NOT support `feature`." [feature] - (set/difference @non-timeseries-drivers (non-timeseries-drivers-with-feature feature))) + (set/difference (normal-drivers) (normal-drivers-with-feature feature))) + +(defn ^:deprecated non-timeseries-drivers-without-feature + "DEPRECATED — use `normal-drivers-without-feature` instead." + [feature] + (normal-drivers-without-feature feature)) (defmacro ^:deprecated expect-with-non-timeseries-dbs - "DEPRECATED — Use `deftest` + `test-drivers` + `non-timeseries-drivers` instead. + "DEPRECATED — Use `deftest` + `test-drivers` + `normal-drivers` instead. (deftest my-test - (datasets/test-drivers @qp.test/non-timeseries-drivers + (datasets/test-drivers (qp.test/normal-drivers) (is (= ...))))" {:style/indent 0} [expected actual] - `(datasets/expect-with-drivers @non-timeseries-drivers + `(datasets/expect-with-drivers (normal-drivers) ~expected ~actual)) -(defn non-timeseries-drivers-except +(defn normal-drivers-except "Return the set of all drivers except Druid, Google Analytics, and those in `excluded-drivers`." [excluded-drivers] - (set/difference @non-timeseries-drivers (set excluded-drivers))) + (set/difference (normal-drivers) (set excluded-drivers))) + +(defn ^:deprecated non-timeseries-drivers-except + "DEPRECATED — Use `normal-drivers-except` instead." + [excluded-drivers] + (normal-drivers-except excluded-drivers)) (defmacro ^:deprecated expect-with-non-timeseries-dbs-except - "DEPRECATED — Use `deftest` + `test-drivers` + `non-timeseries-drivers-except` instead. + "DEPRECATED — Use `deftest` + `test-drivers` + `normal-drivers-except` instead. (deftest my-test - (datasets/test-drivers (qp.test/non-timeseries-drivers-except #{:snowflake}) + (datasets/test-drivers (qp.test/normal-drivers-except #{:snowflake}) (is (= ...))))" {:style/indent 1} [excluded-drivers expected actual] - `(datasets/expect-with-drivers (non-timeseries-drivers-except ~excluded-drivers) + `(datasets/expect-with-drivers (normal-drivers-except ~excluded-drivers) ~expected ~actual)) @@ -84,7 +106,7 @@ `qp.test/rows-and-columns` instead. DEPRECATED x2 - You also shouldn't use this because it ultimately uses `expectations`-style `expect` -- see - docstring for `expect-with-non-timeseries-dbs for suggested alternative." + docstring for `expect-with-non-timeseries-dbs` for suggested alternative." {:style/indent 0} [data query-form & post-process-fns] `(expect-with-non-timeseries-dbs @@ -317,7 +339,7 @@ (try (f v) (catch Throwable e - (throw (ex-info (printf "format-rows-by failed (f = %s, value = %s %s): %s" f (.getName (class v)) v (.getMessage e)) + (throw (ex-info (format "format-rows-by failed (f = %s, value = %s %s): %s" f (.getName (class v)) v (.getMessage e)) {:f f, :v v} e))))))))) @@ -389,4 +411,5 @@ differentiate Oracle from the other report-timezone databases until that bug can get fixed. Redshift and Snowflake also have this issue." [driver] + ;; TIMEZONE FIXME — remove this and fix the drivers (contains? #{:snowflake :oracle :redshift} driver)) diff --git a/test/metabase/query_processor_test/aggregation_test.clj b/test/metabase/query_processor_test/aggregation_test.clj index ce4508a627e7df53a62cdbb4b51b094bfcf12351..3f56c5c6c186c8c03907a8859310fd78581bc944 100644 --- a/test/metabase/query_processor_test/aggregation_test.clj +++ b/test/metabase/query_processor_test/aggregation_test.clj @@ -1,6 +1,7 @@ (ns metabase.query-processor-test.aggregation-test "Tests for MBQL aggregations." - (:require [expectations :refer [expect]] + (:require [clojure.test :refer :all] + [expectations :refer [expect]] [metabase.models.field :refer [Field]] [metabase.query-processor-test :as qp.test] [metabase.test @@ -37,15 +38,14 @@ (data/run-mbql-query venues {:aggregation [[:avg $latitude]]})))) - -;; distinct count aggregation -(qp.test/expect-with-non-timeseries-dbs - {:rows [[15]] - :cols [(qp.test/aggregate-col :distinct :checkins :user_id)]} - (qp.test/rows-and-cols - (qp.test/format-rows-by [int] - (data/run-mbql-query checkins - {:aggregation [[:distinct $user_id]]})))) +(deftest distinct-count-test + (datasets/test-drivers (qp.test/normal-drivers) + (is (= {:rows [[15]] + :cols [(qp.test/aggregate-col :distinct :checkins :user_id)]} + (qp.test/rows-and-cols + (qp.test/format-rows-by [int] + (data/run-mbql-query checkins + {:aggregation [[:distinct $user_id]]}))))))) ;; Test that no aggregation (formerly known as a 'rows' aggregation in MBQL '95) just returns rows as-is. (qp.test/expect-with-non-timeseries-dbs @@ -66,7 +66,7 @@ ;; standard deviation aggregations -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :standard-deviation-aggregations) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :standard-deviation-aggregations) {:cols [(qp.test/aggregate-col :stddev :venues :latitude)] :rows [[3.4]]} (qp.test/rows-and-cols @@ -74,7 +74,7 @@ (data/run-mbql-query venues {:aggregation [[:stddev $latitude]]})))) ;; Make sure standard deviation fails for the Mongo driver since its not supported -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-without-feature :standard-deviation-aggregations) +(datasets/expect-with-drivers (qp.test/normal-drivers-without-feature :standard-deviation-aggregations) {:status :failed :error "standard-deviation-aggregations is not supported by this driver."} (select-keys (data/run-mbql-query venues @@ -138,7 +138,7 @@ ;; TODO - this isn't tested against Mongo because those driver doesn't currently work correctly with multiple columns ;; with the same name. It seems like it would be pretty easy to take the stuff we have for BigQuery and generalize it ;; so we can use it with Mongo -(datasets/expect-with-drivers (disj @qp.test/non-timeseries-drivers :mongo) +(datasets/expect-with-drivers (disj (qp.test/normal-drivers) :mongo) [(qp.test/aggregate-col :count) (assoc (qp.test/aggregate-col :count) :name "count_2", :field_ref [:aggregation 1])] (qp.test/cols diff --git a/test/metabase/query_processor_test/date_bucketing_test.clj b/test/metabase/query_processor_test/date_bucketing_test.clj index 14cfb074554e1f8a7d29d967146074a42be56484..c2a97e5249320d3a1f7e9142ffc4c0008fef10b2 100644 --- a/test/metabase/query_processor_test/date_bucketing_test.clj +++ b/test/metabase/query_processor_test/date_bucketing_test.clj @@ -20,82 +20,112 @@ [clojure [string :as str] [test :refer :all]] + [java-time :as t] [metabase [driver :as driver] [query-processor :as qp] [query-processor-test :as qp.test] + [test :as mt] [util :as u]] [metabase.driver.sql.query-processor :as sql.qp] - [metabase.test - [data :as data] - [util :as tu]] - [metabase.test.data - [datasets :as datasets] - [interface :as tx]] - [metabase.test.util.timezone :as tu.tz] - [metabase.util.date :as du] - [potemkin.types :as p.types]) - (:import [org.joda.time DateTime DateTimeZone])) + [metabase.models.database :refer [Database]] + [metabase.query-processor.middleware.format-rows :as format-rows] + [metabase.util.date-2 :as u.date] + [potemkin.types :as p.types] + [pretty.core :as pretty] + [toucan.db :as db]) + (:import [java.time LocalDate LocalDateTime] + [org.joda.time DateTime DateTimeZone])) (defn- ->long-if-number [x] (if (number? x) (long x) x)) +(def ^:private timezone + {:utc "UTC" + :pacific "America/Los_Angeles" + :eastern "America/New_York"}) + +(defn- ->timezone-id ^String [x] + (if (keyword? x) + (get timezone x) + x)) + +(deftest sanity-check-test + ;; TIMEZONE FIXME — currently broken for Snowflake. UNIX timestamps are interpreted as being in the report timezone + ;; rather than UTC. + (mt/test-drivers (disj (mt/normal-drivers) :snowflake :redshift) + (testing "\nRegardless of report timezone, UNIX timestamps should always be interpreted a being in UTC." + (let [utc-results [[1 "2015-06-06T10:40:00Z" 4] + [2 "2015-06-10T19:51:00Z" 0] + [3 "2015-06-09T15:42:00Z" 5] + [4 "2015-06-22T23:49:00Z" 3] + [5 "2015-06-20T01:45:00Z" 3]]] + (doseq [timezone [:pacific :utc :eastern]] + (testing "\nResults should be returned in report timezone, if supported by driver." + (testing (format "\ntimezone = %s" timezone) + (let [local-results (cond + (= driver/*driver* :sqlite) + (for [[id s cnt] utc-results] + [id (u.date/format-sql (t/local-date-time (u.date/parse s))) cnt]) + + (or (= timezone :utc) + (not (driver/supports? driver/*driver* :set-timezone))) + utc-results + + :else + (for [[id s cnt] utc-results] + (let [zone-id (t/zone-id (->timezone-id timezone)) + t (t/offset-date-time (t/with-zone-same-instant (u.date/parse s) zone-id)) + s (t/format :iso-offset-date-time t)] + [id s cnt])))] + (mt/with-report-timezone-id (->timezone-id timezone) + (mt/dataset sad-toucan-incidents + (is (= local-results + (mt/formatted-rows [int identity int] + (mt/run-mbql-query incidents + {:fields [$id $timestamp $severity] + :order-by [[:asc $id]] + :limit 5} )))))))))))))) + (defn- sad-toucan-incidents-with-bucketing - "Returns 10 sad toucan incidents grouped by `UNIT`" + "Returns 10 sad toucan incidents grouped by `unit`" ([unit] - (->> (data/dataset sad-toucan-incidents - (data/run-mbql-query incidents + (->> (mt/dataset sad-toucan-incidents + (mt/run-mbql-query incidents {:aggregation [[:count]] :breakout [[:datetime-field $timestamp unit]] :limit 10})) - qp.test/rows - (qp.test/format-rows-by [->long-if-number int]))) - ([unit, ^DateTimeZone tz] - (tu/with-temporary-setting-values [report-timezone (.getID tz)] - (sad-toucan-incidents-with-bucketing unit)))) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Timezones and date formatters used by all date tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + mt/rows + (mt/format-rows-by [->long-if-number int]))) -(def ^:private pacific-tz (time/time-zone-for-id "America/Los_Angeles")) -(def ^:private eastern-tz (time/time-zone-for-id "America/New_York")) -(def ^:private utc-tz (time/time-zone-for-id "UTC")) + ([unit timezone-id] + (mt/initialize-if-needed! :db) + (mt/with-report-timezone-id (->timezone-id timezone-id) + (sad-toucan-incidents-with-bucketing unit)))) -(defn- source-date-formatter +(defn- default-timezone-parse-fn "Create a date formatter, interpretting the datestring as being in `tz`" - [tz] - (tformat/with-zone (tformat/formatters :date-hour-minute-second-fraction) tz)) + [default-timezone-id] + (let [timezone-id (->timezone-id default-timezone-id)] + (fn [s] + (u.date/parse s timezone-id)))) -(defn- result-date-formatter +(defn- format-in-timezone-fn "Create a formatter for converting a date to `tz` and in the format that the query processor would return" - [tz] - (tformat/with-zone (tformat/formatters :date-time) tz)) - -(def ^:private result-date-formatter-without-tz - "sqlite returns date strings that do not include their timezone, this formatter is useful for those DBs" - (tformat/formatters :mysql)) + [results-timezone-id] + (let [zone-id (-> results-timezone-id ->timezone-id t/zone-id)] + (fn [t] + (format-rows/format-value t zone-id)))) -(def ^:private date-formatter-without-time +(defn- date-without-time-format-fn "sqlite returns dates that do not include their time, this formatter is useful for those DBs" - (tformat/formatters :date)) - -(defn- adjust-date - "Parses `dates` using `source-formatter` and convert them to a string via `result-formatter`" - [source-formatter result-formatter dates] - (map (comp #(tformat/unparse result-formatter %) - #(tformat/parse source-formatter %)) - dates)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Default grouping tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + [t] + (condp instance? t + LocalDate (t/format :iso-local-date t) + LocalDateTime (t/format :iso-local-date t) + (t/format :iso-offset-date t))) (def ^:private sad-toucan-dates "This is the first 10 sad toucan dates when converted from millis since epoch in the UTC timezone. The timezone is @@ -113,241 +143,292 @@ "2015-06-02T11:11:00.000"]) (defn- sad-toucan-result - "Creates a sad toucan resultset using the given `source-formatter` and `result-formatter`. Pairs the dates with the - record counts." - [source-formatter result-formatter] - (mapv vector - (adjust-date source-formatter result-formatter sad-toucan-dates) - (repeat 1))) - -;; Bucket sad toucan events by their default bucketing, which is the full datetime value -(qp.test/expect-with-non-timeseries-dbs - (cond - ;; Timezone is omitted by these databases - (= :sqlite driver/*driver*) - (sad-toucan-result (source-date-formatter utc-tz) result-date-formatter-without-tz) - - ;; There's a bug here where we are reading in the UTC time as pacific, so we're 7 hours off - (qp.test/tz-shifted-driver-bug? driver/*driver*) - (sad-toucan-result (source-date-formatter pacific-tz) (result-date-formatter pacific-tz)) - - ;; When the reporting timezone is applied, the same datetime value is returned, but set in the pacific timezone - (qp.test/supports-report-timezone? driver/*driver*) - (sad-toucan-result (source-date-formatter utc-tz) (result-date-formatter pacific-tz)) - - ;; Databases that don't support report timezone will always return the time using the JVM's timezone setting Our - ;; tests force UTC time, so this should always be UTC - :else - (sad-toucan-result (source-date-formatter utc-tz) (result-date-formatter utc-tz))) - (sad-toucan-incidents-with-bucketing :default pacific-tz)) - -;; Buckets sad toucan events like above, but uses the eastern timezone as the report timezone -(qp.test/expect-with-non-timeseries-dbs - (cond - ;; These databases are always in UTC so aren't impacted by changes in report-timezone - (= :sqlite driver/*driver*) - (sad-toucan-result (source-date-formatter utc-tz) result-date-formatter-without-tz) - - (qp.test/tz-shifted-driver-bug? driver/*driver*) - (sad-toucan-result (source-date-formatter eastern-tz) (result-date-formatter eastern-tz)) - - ;; The time instant is the same as UTC (or pacific) but should be offset by the eastern timezone - (qp.test/supports-report-timezone? driver/*driver*) - (sad-toucan-result (source-date-formatter utc-tz) (result-date-formatter eastern-tz)) - - ;; The change in report timezone has no affect on this group - :else - (sad-toucan-result (source-date-formatter utc-tz) (result-date-formatter utc-tz))) - - (sad-toucan-incidents-with-bucketing :default eastern-tz)) - -;; Changes the JVM timezone from UTC to Pacific, this test isn't run on H2 as the database stores it's timezones in -;; the JVM timezone (UTC on startup). When we change that timezone, it then assumes the data was also stored in that -;; timezone. This leads to incorrect results. In this example it applies the pacific offset twice -;; -;; The exclusions here are databases that give incorrect answers when the JVM timezone doesn't match the databases -;; timezone -(qp.test/expect-with-non-timeseries-dbs-except #{:h2 :sqlserver :redshift :sparksql :mongo} - (cond - (= :sqlite driver/*driver*) - (sad-toucan-result (source-date-formatter utc-tz) result-date-formatter-without-tz) - - (qp.test/tz-shifted-driver-bug? driver/*driver*) - (sad-toucan-result (source-date-formatter eastern-tz) (result-date-formatter eastern-tz)) - - ;; The JVM timezone should have no impact on a database that uses a report timezone - (qp.test/supports-report-timezone? driver/*driver*) - (sad-toucan-result (source-date-formatter utc-tz) (result-date-formatter eastern-tz)) - - :else - (sad-toucan-result (source-date-formatter utc-tz) (result-date-formatter pacific-tz))) - - (tu.tz/with-jvm-tz pacific-tz - (sad-toucan-incidents-with-bucketing :default eastern-tz))) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by minute tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;; This dataset doesn't have multiple events in a minute, the results are the same as the default grouping -(qp.test/expect-with-non-timeseries-dbs - (cond - (= :sqlite driver/*driver*) - (sad-toucan-result (source-date-formatter utc-tz) result-date-formatter-without-tz) - - (qp.test/tz-shifted-driver-bug? driver/*driver*) - (sad-toucan-result (source-date-formatter pacific-tz) (result-date-formatter pacific-tz)) - - (qp.test/supports-report-timezone? driver/*driver*) - (sad-toucan-result (source-date-formatter utc-tz) (result-date-formatter pacific-tz)) - - :else - (sad-toucan-result (source-date-formatter utc-tz) (result-date-formatter utc-tz))) - (sad-toucan-incidents-with-bucketing :minute pacific-tz)) - -;; Grouping by minute of hour is not affected by timezones -(qp.test/expect-with-non-timeseries-dbs - [[0 5] - [1 4] - [2 2] - [3 4] - [4 4] - [5 3] - [6 5] - [7 1] - [8 1] - [9 1]] - (sad-toucan-incidents-with-bucketing :minute-of-hour pacific-tz)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by hour tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + "Creates a sad toucan result set by parsing literal strings with `parse-fn` and formatting then in results with + `format-result-fn`." + ([parse-fn format-result-fn] + (sad-toucan-result parse-fn format-result-fn sad-toucan-dates)) + + ([parse-fn format-result-fn temporal-literal-strs] + (for [s temporal-literal-strs] + [(-> s parse-fn format-result-fn) 1]))) + +(deftest group-by-default-test + (mt/test-drivers (mt/normal-drivers) + (testing "\nPacific timezone" + (is (= (cond + ;; Timezone is omitted by these databases HACK - SQLite returns datetimes as strings, and we don't + ;; re-parse them or do anything smart with them; we just return them directly. This is less than ideal. + ;; TIMEZONE FIXME + (= :sqlite driver/*driver*) + [["2015-06-01 10:31:00" 1] + ["2015-06-01 16:06:00" 1] + ["2015-06-01 17:23:00" 1] + ["2015-06-01 18:55:00" 1] + ["2015-06-01 21:04:00" 1] + ["2015-06-01 21:19:00" 1] + ["2015-06-02 02:13:00" 1] + ["2015-06-02 05:37:00" 1] + ["2015-06-02 08:20:00" 1] + ["2015-06-02 11:11:00" 1]] + + ;; There's a bug here where we are reading in the UTC time as pacific, so we're 7 hours off + ;; (This is fixed for Oracle now) + (and (qp.test/tz-shifted-driver-bug? driver/*driver*) (not= driver/*driver* :oracle)) + [["2015-06-01T10:31:00-07:00" 1] + ["2015-06-01T16:06:00-07:00" 1] + ["2015-06-01T17:23:00-07:00" 1] + ["2015-06-01T18:55:00-07:00" 1] + ["2015-06-01T21:04:00-07:00" 1] + ["2015-06-01T21:19:00-07:00" 1] + ["2015-06-02T02:13:00-07:00" 1] + ["2015-06-02T05:37:00-07:00" 1] + ["2015-06-02T08:20:00-07:00" 1] + ["2015-06-02T11:11:00-07:00" 1]] + + ;; When the reporting timezone is applied, the same datetime value is returned, but set in the pacific + ;; timezone + (qp.test/supports-report-timezone? driver/*driver*) + [["2015-06-01T03:31:00-07:00" 1] + ["2015-06-01T09:06:00-07:00" 1] + ["2015-06-01T10:23:00-07:00" 1] + ["2015-06-01T11:55:00-07:00" 1] + ["2015-06-01T14:04:00-07:00" 1] + ["2015-06-01T14:19:00-07:00" 1] + ["2015-06-01T19:13:00-07:00" 1] + ["2015-06-01T22:37:00-07:00" 1] + ["2015-06-02T01:20:00-07:00" 1] + ["2015-06-02T04:11:00-07:00" 1]] + + ;; Databases that don't support report timezone will always return the time using the JVM's timezone + ;; setting Our tests force UTC time, so this should always be UTC + :else + [["2015-06-01T10:31:00Z" 1] + ["2015-06-01T16:06:00Z" 1] + ["2015-06-01T17:23:00Z" 1] + ["2015-06-01T18:55:00Z" 1] + ["2015-06-01T21:04:00Z" 1] + ["2015-06-01T21:19:00Z" 1] + ["2015-06-02T02:13:00Z" 1] + ["2015-06-02T05:37:00Z" 1] + ["2015-06-02T08:20:00Z" 1] + ["2015-06-02T11:11:00Z" 1]]) + (sad-toucan-incidents-with-bucketing :default :pacific)))) + (testing "\nEastern timezone" + (is (= (cond + ;; These databases are always in UTC so aren't impacted by changes in report-timezone + (= :sqlite driver/*driver*) + [["2015-06-01 10:31:00" 1] + ["2015-06-01 16:06:00" 1] + ["2015-06-01 17:23:00" 1] + ["2015-06-01 18:55:00" 1] + ["2015-06-01 21:04:00" 1] + ["2015-06-01 21:19:00" 1] + ["2015-06-02 02:13:00" 1] + ["2015-06-02 05:37:00" 1] + ["2015-06-02 08:20:00" 1] + ["2015-06-02 11:11:00" 1]] + + (and (qp.test/tz-shifted-driver-bug? driver/*driver*) (not= driver/*driver* :oracle)) + [["2015-06-01T10:31:00-04:00" 1] + ["2015-06-01T16:06:00-04:00" 1] + ["2015-06-01T17:23:00-04:00" 1] + ["2015-06-01T18:55:00-04:00" 1] + ["2015-06-01T21:04:00-04:00" 1] + ["2015-06-01T21:19:00-04:00" 1] + ["2015-06-02T02:13:00-04:00" 1] + ["2015-06-02T05:37:00-04:00" 1] + ["2015-06-02T08:20:00-04:00" 1] + ["2015-06-02T11:11:00-04:00" 1]] + + ;; The time instant is the same as UTC (or pacific) but should be offset by the eastern timezone + (qp.test/supports-report-timezone? driver/*driver*) + [["2015-06-01T06:31:00-04:00" 1] + ["2015-06-01T12:06:00-04:00" 1] + ["2015-06-01T13:23:00-04:00" 1] + ["2015-06-01T14:55:00-04:00" 1] + ["2015-06-01T17:04:00-04:00" 1] + ["2015-06-01T17:19:00-04:00" 1] + ["2015-06-01T22:13:00-04:00" 1] + ["2015-06-02T01:37:00-04:00" 1] + ["2015-06-02T04:20:00-04:00" 1] + ["2015-06-02T07:11:00-04:00" 1]] + + ;; The change in report timezone has no affect on this group + :else + [["2015-06-01T10:31:00Z" 1] + ["2015-06-01T16:06:00Z" 1] + ["2015-06-01T17:23:00Z" 1] + ["2015-06-01T18:55:00Z" 1] + ["2015-06-01T21:04:00Z" 1] + ["2015-06-01T21:19:00Z" 1] + ["2015-06-02T02:13:00Z" 1] + ["2015-06-02T05:37:00Z" 1] + ["2015-06-02T08:20:00Z" 1] + ["2015-06-02T11:11:00Z" 1]]) + (sad-toucan-incidents-with-bucketing :default :eastern))))) + ;; Changes the JVM timezone from UTC to Pacific, this test isn't run on H2 as the database stores it's timezones in + ;; the JVM timezone (UTC on startup). When we change that timezone, it then assumes the data was also stored in that + ;; timezone. This leads to incorrect results. In this example it applies the pacific offset twice + ;; + ;; The exclusions here are databases that give incorrect answers when the JVM timezone doesn't match the databases + ;; timezone + ;; + ;; TIMEZONE FIXME + (mt/test-drivers (mt/normal-drivers-except #{:h2 :sqlserver :redshift :sparksql :mongo}) + (testing "Change JVM timezone from UTC to Pacific" + (is (= (cond + (= :sqlite driver/*driver*) + (sad-toucan-result (default-timezone-parse-fn :utc) (comp u.date/format-sql t/local-date-time)) + + (and (qp.test/tz-shifted-driver-bug? driver/*driver*) (not= driver/*driver* :oracle)) + (sad-toucan-result (default-timezone-parse-fn :eastern) (format-in-timezone-fn :eastern)) + + ;; The JVM timezone should have no impact on results from a database that uses a report timezone + (qp.test/supports-report-timezone? driver/*driver*) + (sad-toucan-result (default-timezone-parse-fn :utc) (format-in-timezone-fn :eastern)) + + :else + (sad-toucan-result (default-timezone-parse-fn :utc) (format-in-timezone-fn :pacific))) + (mt/with-system-timezone-id (timezone :pacific) + (sad-toucan-incidents-with-bucketing :default :eastern))))))) + +(deftest group-by-minute-test + (testing "This dataset doesn't have multiple events in a minute, the results are the same as the default grouping" + (mt/test-drivers (mt/normal-drivers) + (is (= (cond + (= :sqlite driver/*driver*) + (sad-toucan-result (default-timezone-parse-fn :utc) (comp u.date/format-sql t/local-date-time)) + + (qp.test/tz-shifted-driver-bug? driver/*driver*) + (sad-toucan-result (default-timezone-parse-fn :pacific) (format-in-timezone-fn :pacific)) + + (qp.test/supports-report-timezone? driver/*driver*) + (sad-toucan-result (default-timezone-parse-fn :utc) (format-in-timezone-fn :pacific)) + + :else + (sad-toucan-result (default-timezone-parse-fn :utc) (format-in-timezone-fn :utc))) + (sad-toucan-incidents-with-bucketing :minute :pacific)))))) + +(deftest group-by-minute-of-hour-test + (testing "Grouping by minute of hour is not affected by timezones" + (mt/test-drivers (mt/normal-drivers) + (is (= [[0 5] + [1 4] + [2 2] + [3 4] + [4 4] + [5 3] + [6 5] + [7 1] + [8 1] + [9 1]] + (sad-toucan-incidents-with-bucketing :minute-of-hour :pacific)))))) (def ^:private sad-toucan-dates-grouped-by-hour "This is the first 10 groupings of sad toucan dates at the same hour when converted from millis since epoch in the UTC timezone. The timezone is left off of the timezone string so that we can emulate how certain conversions are broken in the code today. As an example, the UTC dates in Oracle are interpreted as the reporting timezone when they're UTC" - ["2015-06-01T10:00:00.000" - "2015-06-01T16:00:00.000" - "2015-06-01T17:00:00.000" - "2015-06-01T18:00:00.000" - "2015-06-01T21:00:00.000" - "2015-06-02T02:00:00.000" - "2015-06-02T05:00:00.000" - "2015-06-02T08:00:00.000" - "2015-06-02T11:00:00.000" - "2015-06-02T13:00:00.000"]) - -(defn- results-by-hour - "Creates a sad toucan resultset using the given `source-formatter` and `result-formatter`. Pairs the dates with the - the record counts" - [source-formatter result-formatter] - (mapv vector - (adjust-date source-formatter result-formatter sad-toucan-dates-grouped-by-hour) - [1 1 1 1 2 1 1 1 1 1])) - -;; For this test, the results are the same for each database, but the -;; formatting of the time for that given count is different depending -;; on whether the database supports a report timezone and what -;; timezone that database is in -(qp.test/expect-with-non-timeseries-dbs - (cond - (= :sqlite driver/*driver*) - (results-by-hour (source-date-formatter utc-tz) - result-date-formatter-without-tz) - - (qp.test/tz-shifted-driver-bug? driver/*driver*) - (results-by-hour (source-date-formatter pacific-tz) (result-date-formatter pacific-tz)) - - (qp.test/supports-report-timezone? driver/*driver*) - (results-by-hour (source-date-formatter utc-tz) (result-date-formatter pacific-tz)) - - :else - (results-by-hour (source-date-formatter utc-tz) (result-date-formatter utc-tz))) - - (sad-toucan-incidents-with-bucketing :hour pacific-tz)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by hour of day tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;; The counts are affected by timezone as the times are shifted back -;; by 7 hours. These count changes can be validated by matching the -;; first three results of the pacific results to the last three of the -;; UTC results (i.e. pacific is 7 hours back of UTC at that time) -(qp.test/expect-with-non-timeseries-dbs - (if (and (not (qp.test/tz-shifted-driver-bug? driver/*driver*)) - (qp.test/supports-report-timezone? driver/*driver*)) - [[0 8] [1 9] [2 7] [3 10] [4 10] [5 9] [6 6] [7 5] [8 7] [9 7]] - [[0 13] [1 8] [2 4] [3 7] [4 5] [5 13] [6 10] [7 8] [8 9] [9 7]]) - (sad-toucan-incidents-with-bucketing :hour-of-day pacific-tz)) - -;; With all databases in UTC, the results should be the same for all DBs -(qp.test/expect-with-non-timeseries-dbs - [[0 13] [1 8] [2 4] [3 7] [4 5] [5 13] [6 10] [7 8] [8 9] [9 7]] - (sad-toucan-incidents-with-bucketing :hour-of-day utc-tz)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by day tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(defn- offset-time + ["2015-06-01T10:00:00" + "2015-06-01T16:00:00" + "2015-06-01T17:00:00" + "2015-06-01T18:00:00" + "2015-06-01T21:00:00" + "2015-06-02T02:00:00" + "2015-06-02T05:00:00" + "2015-06-02T08:00:00" + "2015-06-02T11:00:00" + "2015-06-02T13:00:00"]) + +(defn- results-by-hour [parse-fn format-result-fn] + (map + (fn [s cnt] + [(-> s parse-fn format-result-fn) cnt]) + sad-toucan-dates-grouped-by-hour + [1 1 1 1 2 1 1 1 1 1])) + +;; For this test, the results are the same for each database, but the formatting of the time for that given count is +;; different depending on whether the database supports a report timezone and what timezone that database is in +(deftest group-by-hour-test + (mt/test-drivers (mt/normal-drivers) + (is (= (cond + (= :sqlite driver/*driver*) + (results-by-hour (default-timezone-parse-fn :utc) (comp u.date/format-sql t/local-date-time)) + + (qp.test/tz-shifted-driver-bug? driver/*driver*) + (results-by-hour (default-timezone-parse-fn :pacific) (format-in-timezone-fn :pacific)) + + (qp.test/supports-report-timezone? driver/*driver*) + (results-by-hour (default-timezone-parse-fn :utc) (format-in-timezone-fn :pacific)) + + :else + (results-by-hour (default-timezone-parse-fn :utc) (format-in-timezone-fn :utc))) + (sad-toucan-incidents-with-bucketing :hour :pacific))))) + +;; The counts are affected by timezone as the times are shifted back by 7 hours. These count changes can be validated +;; by matching the first three results of the pacific results to the last three of the UTC results (i.e. pacific is 7 +;; hours back of UTC at that time) +(deftest group-by-hour-of-day-test + (mt/test-drivers (mt/normal-drivers) + (testing "results in pacific timezone" + (is (= (if (and (not (qp.test/tz-shifted-driver-bug? driver/*driver*)) + (qp.test/supports-report-timezone? driver/*driver*)) + [[0 8] [1 9] [2 7] [3 10] [4 10] [5 9] [6 6] [7 5] [8 7] [9 7]] + [[0 13] [1 8] [2 4] [3 7] [4 5] [5 13] [6 10] [7 8] [8 9] [9 7]]) + (sad-toucan-incidents-with-bucketing :hour-of-day :pacific)))) + (testing "results in UTC" + (is (= [[0 13] [1 8] [2 4] [3 7] [4 5] [5 13] [6 10] [7 8] [8 9] [9 7]] + (sad-toucan-incidents-with-bucketing :hour-of-day :utc)) + "With all databases in UTC, the results should be the same for all DBs")))) + + +(defn- ^:deprecated offset-time "Add to `date` offset from UTC found in `tz`" - [^DateTimeZone tz, ^DateTime date] - (time/minus date - (time/seconds - (/ (.getOffset tz date) 1000)))) + [timezone-id, ^DateTime date] + (let [^DateTimeZone tz (time/time-zone-for-id (->timezone-id timezone-id))] + (time/minus date + (time/seconds + (/ (.getOffset tz date) 1000))))) (defn- find-events-in-range "Find the number of sad toucan events between `start-date-str` and `end-date-str`" [start-date-str end-date-str] - (-> (data/dataset sad-toucan-incidents - (data/run-mbql-query incidents + (-> (mt/dataset sad-toucan-incidents + (mt/run-mbql-query incidents {:aggregation [[:count]] :breakout [[:datetime-field $timestamp :day]] :filter [:between [:datetime-field $timestamp :default] start-date-str end-date-str]})) - qp.test/rows + mt/rows first second (or 0))) -(defn- new-events-after-tz-shift - "Given a `date-str` and a `tz`, how many new events would appear if the time were shifted by the offset in `tz`. This - function is useful for figuring out what the counts would be if the database was in that timezone" - [date-str tz] - (let [date-obj (tformat/parse (tformat/formatters :date) date-str) - next-day (time/plus date-obj (time/days 1)) - unparse-utc #(tformat/unparse (result-date-formatter utc-tz) %)] - (- - ;; Once the time is shifted to `TZ`, how many new events will this add - (find-events-in-range (unparse-utc next-day) (unparse-utc (offset-time tz next-day))) - ;; Subtract the number of events that we will loose with the timezone shift - (find-events-in-range (unparse-utc date-obj) (unparse-utc (offset-time tz date-obj)))))) - -;; This test uses H2 (in UTC) to determine the difference in number of -;; events in UTC time vs pacific time. It does this using a the UTC -;; dataset and some math to figure out if our 24 hour window is -;; shifted 7 hours back, how many events to we gain and lose. Although -;; this test is technically covered by the other grouping by day -;; tests, it's useful for debugging to answer why row counts change -;; when the timezone shifts by removing timezones and the related +;; This test uses H2 (in UTC) to determine the difference in number of events in UTC time vs pacific time. It does +;; this using a the UTC dataset and some math to figure out if our 24 hour window is shifted 7 hours back, how many +;; events to we gain and lose. Although this test is technically covered by the other grouping by day tests, it's +;; useful for debugging to answer why row counts change when the timezone shifts by removing timezones and the related ;; database settings -(datasets/expect-with-drivers #{:h2} - [2 -1 5 -5 2 0 -2 1 -1 1] - (map #(new-events-after-tz-shift (str "2015-06-" %) pacific-tz) - ["01" "02" "03" "04" "05" "06" "07" "08" "09" "10"])) +(deftest new-events-after-timezone-shift-test + (driver/with-driver :h2 + (doseq [[timezone-id expected-net-gains] {:pacific [2 -1 5 -5 2 0 -2 1 -1 1] + :eastern [1 -1 3 -3 3 -2 -1 0 1 1]}] + (testing (format "Timezone = %s" timezone-id) + (doseq [[i expected-net-gain] (map-indexed vector expected-net-gains) + :let [start (t/local-date 2015 6 (inc i)) + end (t/plus start (t/days 1)) + ->tz #(t/zoned-date-time % (t/local-time 0) (t/zone-id (->timezone-id timezone-id))) + find-events-in-range (fn [x y] + (find-events-in-range (u.date/format x) (u.date/format y))) + num-events-gained (find-events-in-range end (->tz end)) + num-events-lost (find-events-in-range start (->tz start))]] + (testing (format "events between %s and %s" start end) + (is (= expected-net-gain + (- num-events-gained num-events-lost)) + (format "When shifting to %s timezone we should lose %d events and gain %d, for a net gain of %d" + timezone-id num-events-gained num-events-lost expected-net-gain)))))))) (def ^:private sad-toucan-events-grouped-by-day ["2015-06-01" @@ -361,202 +442,166 @@ "2015-06-09" "2015-06-10"]) -(defn- results-by-day - "Creates a sad toucan resultset using the given `source-formatter` and `result-formatter`. Pairs the dates with the - record counts supplied in `counts`" - [source-formatter result-formatter counts] - (mapv vector - (adjust-date source-formatter result-formatter sad-toucan-events-grouped-by-day) - counts)) - -(qp.test/expect-with-non-timeseries-dbs - (if (= :sqlite driver/*driver*) - (results-by-day date-formatter-without-time - date-formatter-without-time - [6 10 4 9 9 8 8 9 7 9]) - (results-by-day date-formatter-without-time - (result-date-formatter utc-tz) - [6 10 4 9 9 8 8 9 7 9])) - - (sad-toucan-incidents-with-bucketing :day utc-tz)) - -(qp.test/expect-with-non-timeseries-dbs - (cond - (= :sqlite driver/*driver*) - (results-by-day date-formatter-without-time - date-formatter-without-time - [6 10 4 9 9 8 8 9 7 9]) - - (qp.test/tz-shifted-driver-bug? driver/*driver*) - (results-by-day (tformat/with-zone date-formatter-without-time pacific-tz) - (result-date-formatter pacific-tz) - [6 10 4 9 9 8 8 9 7 9]) - - (qp.test/supports-report-timezone? driver/*driver*) - (results-by-day (tformat/with-zone date-formatter-without-time pacific-tz) - (result-date-formatter pacific-tz) - [8 9 9 4 11 8 6 10 6 10]) - - :else - (results-by-day (tformat/with-zone date-formatter-without-time utc-tz) - (result-date-formatter utc-tz) - [6 10 4 9 9 8 8 9 7 9])) - - (sad-toucan-incidents-with-bucketing :day pacific-tz)) - -;; This test provides a validation of how many events are gained or -;; lost when the timezone is shifted to eastern, similar to the test -;; above with pacific -(datasets/expect-with-drivers #{:h2} - [1 -1 3 -3 3 -2 -1 0 1 1] - (map #(new-events-after-tz-shift (str "2015-06-" %) eastern-tz) - ["01" "02" "03" "04" "05" "06" "07" "08" "09" "10"])) - -;; Similar to the pacific test above, just validating eastern timezone shifts -(qp.test/expect-with-non-timeseries-dbs - (cond - (= :sqlite driver/*driver*) - (results-by-day date-formatter-without-time - date-formatter-without-time - [6 10 4 9 9 8 8 9 7 9]) - - (qp.test/tz-shifted-driver-bug? driver/*driver*) - (results-by-day (tformat/with-zone date-formatter-without-time eastern-tz) - (result-date-formatter eastern-tz) - [6 10 4 9 9 8 8 9 7 9]) - - (qp.test/supports-report-timezone? driver/*driver*) - (results-by-day (tformat/with-zone date-formatter-without-time eastern-tz) - (result-date-formatter eastern-tz) - [7 9 7 6 12 6 7 9 8 10]) - - :else - (results-by-day date-formatter-without-time - (result-date-formatter utc-tz) - [6 10 4 9 9 8 8 9 7 9])) - - (sad-toucan-incidents-with-bucketing :day eastern-tz)) - -;; This tests out the JVM timezone's impact on the results. For databases supporting a report timezone, this should -;; have no affect on the results. When no report timezone is used it should convert dates to the JVM's timezone -;; -;; H2 doesn't support us switching timezones after the dates have been stored. This causes H2 to (incorrectly) apply -;; the timezone shift twice, so instead of -07:00 it will become -14:00. Leaving out the test rather than validate -;; wrong results. -;; -;; The exclusions here are databases that give incorrect answers when the JVM timezone doesn't match the databases -;; timezone -(qp.test/expect-with-non-timeseries-dbs-except #{:h2 :sqlserver :redshift :sparksql :mongo} - (cond - (= :sqlite driver/*driver*) - (results-by-day date-formatter-without-time - date-formatter-without-time - [6 10 4 9 9 8 8 9 7 9]) - - (qp.test/tz-shifted-driver-bug? driver/*driver*) - (results-by-day (tformat/with-zone date-formatter-without-time pacific-tz) - (result-date-formatter pacific-tz) - [6 10 4 9 9 8 8 9 7 9]) - - (qp.test/supports-report-timezone? driver/*driver*) - (results-by-day (tformat/with-zone date-formatter-without-time pacific-tz) - (result-date-formatter pacific-tz) - [8 9 9 4 11 8 6 10 6 10]) - - :else - (results-by-day (tformat/with-zone date-formatter-without-time utc-tz) - (result-date-formatter pacific-tz) - [6 10 4 9 9 8 8 9 7 9])) - - (tu.tz/with-jvm-tz pacific-tz - (sad-toucan-incidents-with-bucketing :day pacific-tz))) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by day-of-week tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(qp.test/expect-with-non-timeseries-dbs - (if (and (not (qp.test/tz-shifted-driver-bug? driver/*driver*)) - (qp.test/supports-report-timezone? driver/*driver*)) - [[1 29] [2 36] [3 33] [4 29] [5 13] [6 38] [7 22]] - [[1 28] [2 38] [3 29] [4 27] [5 24] [6 30] [7 24]]) - (sad-toucan-incidents-with-bucketing :day-of-week pacific-tz)) - -(qp.test/expect-with-non-timeseries-dbs - [[1 28] [2 38] [3 29] [4 27] [5 24] [6 30] [7 24]] - (sad-toucan-incidents-with-bucketing :day-of-week utc-tz)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by day-of-month tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(qp.test/expect-with-non-timeseries-dbs - (if (and (not (qp.test/tz-shifted-driver-bug? driver/*driver*)) - (qp.test/supports-report-timezone? driver/*driver*)) - [[1 8] [2 9] [3 9] [4 4] [5 11] [6 8] [7 6] [8 10] [9 6] [10 10]] - [[1 6] [2 10] [3 4] [4 9] [5 9] [6 8] [7 8] [8 9] [9 7] [10 9]]) - (sad-toucan-incidents-with-bucketing :day-of-month pacific-tz)) - -(qp.test/expect-with-non-timeseries-dbs - [[1 6] [2 10] [3 4] [4 9] [5 9] [6 8] [7 8] [8 9] [9 7] [10 9]] - (sad-toucan-incidents-with-bucketing :day-of-month utc-tz)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by day-of-month tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(qp.test/expect-with-non-timeseries-dbs - (if (and (not (qp.test/tz-shifted-driver-bug? driver/*driver*)) - (qp.test/supports-report-timezone? driver/*driver*)) - [[152 8] [153 9] [154 9] [155 4] [156 11] [157 8] [158 6] [159 10] [160 6] [161 10]] - [[152 6] [153 10] [154 4] [155 9] [156 9] [157 8] [158 8] [159 9] [160 7] [161 9]]) - (sad-toucan-incidents-with-bucketing :day-of-year pacific-tz)) - -(qp.test/expect-with-non-timeseries-dbs - [[152 6] [153 10] [154 4] [155 9] [156 9] [157 8] [158 8] [159 9] [160 7] [161 9]] - (sad-toucan-incidents-with-bucketing :day-of-year utc-tz)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by week tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(defn- results-by-week - "Creates a sad toucan resultset using the given `source-formatter` and `result-formatter`. Pairs the dates with the - record counts supplied in `counts`" - [source-formatter result-formatter counts] - (mapv vector - (adjust-date source-formatter result-formatter ["2015-05-31" - "2015-06-07" - "2015-06-14" - "2015-06-21" - "2015-06-28"]) - counts)) - -(qp.test/expect-with-non-timeseries-dbs - (if (= :sqlite driver/*driver*) - (results-by-week date-formatter-without-time - date-formatter-without-time - [46 47 40 60 7]) - (results-by-week date-formatter-without-time - (result-date-formatter utc-tz) - [46 47 40 60 7])) - - (sad-toucan-incidents-with-bucketing :week utc-tz)) +(defn- results-by-day [parse-fn format-result-fn counts] + (map + (fn [s cnt] + [(-> s parse-fn format-result-fn) cnt]) + sad-toucan-events-grouped-by-day + counts)) + +(deftest group-by-day-test + (mt/test-drivers (mt/normal-drivers) + (testing "\nUTC timezone" + (is (= (if (= :sqlite driver/*driver*) + (results-by-day u.date/parse date-without-time-format-fn [6 10 4 9 9 8 8 9 7 9]) + (results-by-day u.date/parse (format-in-timezone-fn :utc) [6 10 4 9 9 8 8 9 7 9])) + (sad-toucan-incidents-with-bucketing :day :utc)))) + (testing "\nPacific timezone" + (is (= (cond + (= :sqlite driver/*driver*) + [["2015-06-01" 6] + ["2015-06-02" 10] + ["2015-06-03" 4] + ["2015-06-04" 9] + ["2015-06-05" 9] + ["2015-06-06" 8] + ["2015-06-07" 8] + ["2015-06-08" 9] + ["2015-06-09" 7] + ["2015-06-10" 9]] + + (qp.test/tz-shifted-driver-bug? driver/*driver*) + [["2015-06-01T00:00:00-07:00" 6] + ["2015-06-02T00:00:00-07:00" 10] + ["2015-06-03T00:00:00-07:00" 4] + ["2015-06-04T00:00:00-07:00" 9] + ["2015-06-05T00:00:00-07:00" 9] + ["2015-06-06T00:00:00-07:00" 8] + ["2015-06-07T00:00:00-07:00" 8] + ["2015-06-08T00:00:00-07:00" 9] + ["2015-06-09T00:00:00-07:00" 7] + ["2015-06-10T00:00:00-07:00" 9]] + + (qp.test/supports-report-timezone? driver/*driver*) + [["2015-06-01T00:00:00-07:00" 8] + ["2015-06-02T00:00:00-07:00" 9] + ["2015-06-03T00:00:00-07:00" 9] + ["2015-06-04T00:00:00-07:00" 4] + ["2015-06-05T00:00:00-07:00" 11] + ["2015-06-06T00:00:00-07:00" 8] + ["2015-06-07T00:00:00-07:00" 6] + ["2015-06-08T00:00:00-07:00" 10] + ["2015-06-09T00:00:00-07:00" 6] + ["2015-06-10T00:00:00-07:00" 10]] + + :else + [["2015-06-01T00:00:00Z" 6] + ["2015-06-02T00:00:00Z" 10] + ["2015-06-03T00:00:00Z" 4] + ["2015-06-04T00:00:00Z" 9] + ["2015-06-05T00:00:00Z" 9] + ["2015-06-06T00:00:00Z" 8] + ["2015-06-07T00:00:00Z" 8] + ["2015-06-08T00:00:00Z" 9] + ["2015-06-09T00:00:00Z" 7] + ["2015-06-10T00:00:00Z" 9]]) + (sad-toucan-incidents-with-bucketing :day :pacific)))) + (testing "\nEastern timezone" + (is (= (cond + (= :sqlite driver/*driver*) + (results-by-day u.date/parse date-without-time-format-fn [6 10 4 9 9 8 8 9 7 9]) + + (qp.test/tz-shifted-driver-bug? driver/*driver*) + (results-by-day (default-timezone-parse-fn :eastern) + (format-in-timezone-fn :eastern) + [6 10 4 9 9 8 8 9 7 9]) + + (qp.test/supports-report-timezone? driver/*driver*) + (results-by-day (default-timezone-parse-fn :eastern) + (format-in-timezone-fn :eastern) + [7 9 7 6 12 6 7 9 8 10]) + + :else + (results-by-day u.date/parse + (format-in-timezone-fn :utc) + [6 10 4 9 9 8 8 9 7 9])) + (sad-toucan-incidents-with-bucketing :day :eastern))))) + (testing "\nWith JVM timezone set to Pacific time" + ;; This tests out the JVM timezone's impact on the results. For databases supporting a report timezone, this should + ;; have no affect on the results. When no report timezone is used it should convert dates to the JVM's timezone + ;; + ;; H2 doesn't support us switching timezones after the dates have been stored. This causes H2 to (incorrectly) apply + ;; the timezone shift twice, so instead of -07:00 it will become -14:00. Leaving out the test rather than validate + ;; wrong results. + ;; + ;; The exclusions here are databases that give incorrect answers when the JVM timezone doesn't match the databases + ;; timezone + ;; + ;; TIMEZONE FIXME + (mt/test-drivers (mt/normal-drivers-except #{:h2 :sqlserver :redshift :sparksql :mongo :vertica}) + (is (= (cond + (= :sqlite driver/*driver*) + (results-by-day u.date/parse date-without-time-format-fn [6 10 4 9 9 8 8 9 7 9]) + + (qp.test/tz-shifted-driver-bug? driver/*driver*) + (results-by-day (default-timezone-parse-fn :pacific) + (format-in-timezone-fn :pacific) + [6 10 4 9 9 8 8 9 7 9]) + + (qp.test/supports-report-timezone? driver/*driver*) + (results-by-day (default-timezone-parse-fn :pacific) + (format-in-timezone-fn :pacific) + [8 9 9 4 11 8 6 10 6 10]) + + :else + (results-by-day (default-timezone-parse-fn :utc) + (format-in-timezone-fn :pacific) + [6 10 4 9 9 8 8 9 7 9])) + (mt/with-system-timezone-id (timezone :pacific) + (sad-toucan-incidents-with-bucketing :day :pacific))))))) + +(deftest group-by-day-of-week-test + (mt/test-drivers (mt/normal-drivers) + (testing "\nPacific timezone" + (is (= (if (and (not (qp.test/tz-shifted-driver-bug? driver/*driver*)) + (qp.test/supports-report-timezone? driver/*driver*)) + [[1 29] [2 36] [3 33] [4 29] [5 13] [6 38] [7 22]] + [[1 28] [2 38] [3 29] [4 27] [5 24] [6 30] [7 24]]) + (sad-toucan-incidents-with-bucketing :day-of-week :pacific)))) + (testing "\nUTC timezone" + (is (= [[1 28] [2 38] [3 29] [4 27] [5 24] [6 30] [7 24]] + (sad-toucan-incidents-with-bucketing :day-of-week :utc)))))) + +(deftest group-by-day-of-month-test + (mt/test-drivers (mt/normal-drivers) + (testing "\nPacific timezone" + (is (= (if (and (not (qp.test/tz-shifted-driver-bug? driver/*driver*)) + (qp.test/supports-report-timezone? driver/*driver*)) + [[1 8] [2 9] [3 9] [4 4] [5 11] [6 8] [7 6] [8 10] [9 6] [10 10]] + [[1 6] [2 10] [3 4] [4 9] [5 9] [6 8] [7 8] [8 9] [9 7] [10 9]]) + (sad-toucan-incidents-with-bucketing :day-of-month :pacific)))) + (testing "\nUTC timezone" + (is (= [[1 6] [2 10] [3 4] [4 9] [5 9] [6 8] [7 8] [8 9] [9 7] [10 9]] + (sad-toucan-incidents-with-bucketing :day-of-month :utc)))))) + +(deftest group-by-day-of-year-test + (mt/test-drivers (mt/normal-drivers) + (testing "\nPacific timezone" + (is (= (if (and (not (qp.test/tz-shifted-driver-bug? driver/*driver*)) + (qp.test/supports-report-timezone? driver/*driver*)) + [[152 8] [153 9] [154 9] [155 4] [156 11] [157 8] [158 6] [159 10] [160 6] [161 10]] + [[152 6] [153 10] [154 4] [155 9] [156 9] [157 8] [158 8] [159 9] [160 7] [161 9]]) + (sad-toucan-incidents-with-bucketing :day-of-year :pacific)))) + (testing "\nUTC timezone" + (is (= [[152 6] [153 10] [154 4] [155 9] [156 9] [157 8] [158 8] [159 9] [160 7] [161 9]] + (sad-toucan-incidents-with-bucketing :day-of-year :utc)))))) (defn- new-weekly-events-after-tz-shift "Finds the change in sad toucan events if the timezone is shifted to `tz`" [date-str tz] - (let [date-obj (tformat/parse (tformat/formatters :date) date-str) - next-week (time/plus date-obj (time/days 7)) - unparse-utc #(tformat/unparse (result-date-formatter utc-tz) %)] + (let [date-obj (tformat/parse (tformat/formatters :date) date-str) + next-week (time/plus date-obj (time/days 7)) + unparse-utc #(tformat/unparse (format-in-timezone-fn :utc) %)] (- ;; Once the time is shifted to `TZ`, how many new events will this add (find-events-in-range (unparse-utc next-week) (unparse-utc (offset-time tz next-week))) @@ -567,313 +612,350 @@ ;; find how those counts would change if time was in pacific time. The results of this test are also in the UTC test ;; above and pacific test below, but this is still useful for debugging as it doesn't involve changing timezones or ;; database settings -(datasets/expect-with-drivers #{:h2} - [3 0 -1 -2 0] - (map #(new-weekly-events-after-tz-shift % pacific-tz) - ["2015-05-31" "2015-06-07" "2015-06-14" "2015-06-21" "2015-06-28"])) +(deftest new-weekly-events-after-tz-shift-test + (driver/with-driver :h2 + (doseq [[timezone-id start-date->expected-net-gain] {:pacific {"2015-05-31" 3 + "2015-06-07" 0 + "2015-06-14" -1 + "2015-06-21" -2 + "2015-06-28" 0} + :eastern {"2015-05-31" 1 + "2015-06-07" 1 + "2015-06-14" -1 + "2015-06-21" -1 + "2015-06-28" 0}}] + (testing (format "Timezone = %s" timezone-id) + (doseq [[start-str expected-net-gain] start-date->expected-net-gain + :let [start (u.date/parse start-str) + end (t/plus start (t/days 7)) + ->tz #(t/zoned-date-time % (t/local-time 0) (t/zone-id (->timezone-id timezone-id))) + find-events-in-range (fn [x y] + (find-events-in-range (u.date/format x) (u.date/format y))) + num-events-gained (find-events-in-range end (->tz end)) + num-events-lost (find-events-in-range start (->tz start))]] + (testing (format "events between %s and %s" start end) + (is (= expected-net-gain + (- num-events-gained num-events-lost)) + (format "When shifting to %s timezone we should lose %d events and gain %d, for a net gain of %d" + timezone-id num-events-gained num-events-lost expected-net-gain)))))))) + +(defn- results-by-week [parse-fn format-result-fn counts] + (map + (fn [s cnt] + [(-> s parse-fn format-result-fn) cnt]) + ["2015-05-31" + "2015-06-07" + "2015-06-14" + "2015-06-21" + "2015-06-28"] + counts)) ;; Sad toucan incidents by week. Databases in UTC that don't support report timezones will be the same as the UTC test ;; above. Databases that support report timezone will have different counts as the week starts and ends 7 hours ;; earlier -(qp.test/expect-with-non-timeseries-dbs - (cond - (= :sqlite driver/*driver*) - (results-by-week date-formatter-without-time - date-formatter-without-time - [46 47 40 60 7]) - - (qp.test/tz-shifted-driver-bug? driver/*driver*) - (results-by-week (tformat/with-zone date-formatter-without-time pacific-tz) - (result-date-formatter pacific-tz) - [46 47 40 60 7]) - - (qp.test/supports-report-timezone? driver/*driver*) - (results-by-week (tformat/with-zone date-formatter-without-time pacific-tz) - (result-date-formatter pacific-tz) - [49 47 39 58 7]) - - :else - (results-by-week date-formatter-without-time - (result-date-formatter utc-tz) - [46 47 40 60 7])) - - (sad-toucan-incidents-with-bucketing :week pacific-tz)) - -;; Similar to above this test finds the difference in event counts for each week if we were in the eastern timezone -(datasets/expect-with-drivers #{:h2} - [1 1 -1 -1 0] - (map #(new-weekly-events-after-tz-shift % eastern-tz) - ["2015-05-31" "2015-06-07" "2015-06-14" "2015-06-21" "2015-06-28"])) - -;; Tests eastern timezone grouping by week, UTC databases don't change, databases with reporting timezones need to -;; account for the 4-5 hour difference -(qp.test/expect-with-non-timeseries-dbs - (cond - (= :sqlite driver/*driver*) - (results-by-week date-formatter-without-time - date-formatter-without-time - [46 47 40 60 7]) - - (qp.test/tz-shifted-driver-bug? driver/*driver*) - (results-by-week (tformat/with-zone date-formatter-without-time eastern-tz) - (result-date-formatter eastern-tz) - [46 47 40 60 7]) - - (qp.test/supports-report-timezone? driver/*driver*) - (results-by-week (tformat/with-zone date-formatter-without-time eastern-tz) - (result-date-formatter eastern-tz) - [47 48 39 59 7]) - - :else - (results-by-week date-formatter-without-time - (result-date-formatter utc-tz) - [46 47 40 60 7])) - - (sad-toucan-incidents-with-bucketing :week eastern-tz)) - -;; Setting the JVM timezone will change how the datetime results are displayed but don't impact the calculation of the -;; begin/end of the week -;; -;; The exclusions here are databases that give incorrect answers when the JVM timezone doesn't match the databases -;; timezone -(qp.test/expect-with-non-timeseries-dbs-except #{:h2 :sqlserver :redshift :sparksql :mongo} - (cond - (= :sqlite driver/*driver*) - (results-by-week date-formatter-without-time - date-formatter-without-time - [46 47 40 60 7]) - - (qp.test/tz-shifted-driver-bug? driver/*driver*) - (results-by-week (tformat/with-zone date-formatter-without-time pacific-tz) - (result-date-formatter pacific-tz) - [46 47 40 60 7]) - - (qp.test/supports-report-timezone? driver/*driver*) - (results-by-week (tformat/with-zone date-formatter-without-time pacific-tz) - (result-date-formatter pacific-tz) - [49 47 39 58 7]) - - :else - (results-by-week date-formatter-without-time - (result-date-formatter pacific-tz) - [46 47 40 60 7])) - (tu.tz/with-jvm-tz pacific-tz - (sad-toucan-incidents-with-bucketing :week pacific-tz))) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by week-of-year tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(qp.test/expect-with-non-timeseries-dbs - ;; Not really sure why different drivers have different opinions on these </3 - (cond - (= :snowflake driver/*driver*) - [[22 46] [23 47] [24 40] [25 60] [26 7]] - - (#{:sqlserver :sqlite :oracle :sparksql} driver/*driver*) - [[23 54] [24 46] [25 39] [26 61]] - - (and (qp.test/supports-report-timezone? driver/*driver*) - (not (= :redshift driver/*driver*))) - [[23 49] [24 47] [25 39] [26 58] [27 7]] - - :else - [[23 46] [24 47] [25 40] [26 60] [27 7]]) - (sad-toucan-incidents-with-bucketing :week-of-year pacific-tz)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by month tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(deftest group-by-week-test + (mt/test-drivers (mt/normal-drivers) + (testing "\nUTC timezone" + (is (= (if (= :sqlite driver/*driver*) + (results-by-week u.date/parse + date-without-time-format-fn + [46 47 40 60 7]) + (results-by-week u.date/parse + (format-in-timezone-fn :utc) + [46 47 40 60 7])) + (sad-toucan-incidents-with-bucketing :week :utc)))) + (testing "\nPacific timezone" + (is (= (cond + (= :sqlite driver/*driver*) + (results-by-week u.date/parse + date-without-time-format-fn + [46 47 40 60 7]) + + (qp.test/tz-shifted-driver-bug? driver/*driver*) + (results-by-week (default-timezone-parse-fn :pacific) + (format-in-timezone-fn :pacific) + [46 47 40 60 7]) + + (qp.test/supports-report-timezone? driver/*driver*) + (results-by-week (default-timezone-parse-fn :pacific) + (format-in-timezone-fn :pacific) + [49 47 39 58 7]) + + :else + (results-by-week u.date/parse + (format-in-timezone-fn :utc) + [46 47 40 60 7])) + + (sad-toucan-incidents-with-bucketing :week :pacific)))) + ;; Tests eastern timezone grouping by week, UTC databases don't change, databases with reporting timezones need to + ;; account for the 4-5 hour difference + (testing "\nEastern timezone" + (mt/test-drivers (mt/normal-drivers) + (is (= (cond + (= :sqlite driver/*driver*) + (results-by-week u.date/parse + date-without-time-format-fn + [46 47 40 60 7]) + + (qp.test/tz-shifted-driver-bug? driver/*driver*) + (results-by-week (default-timezone-parse-fn :eastern) + (format-in-timezone-fn :eastern) + [46 47 40 60 7]) + + (qp.test/supports-report-timezone? driver/*driver*) + (results-by-week (default-timezone-parse-fn :eastern) + (format-in-timezone-fn :eastern) + [47 48 39 59 7]) + + :else + (results-by-week u.date/parse + (format-in-timezone-fn :utc) + [46 47 40 60 7])) + + (sad-toucan-incidents-with-bucketing :week :eastern)))))) + ;; Setting the JVM timezone will change how the datetime results are displayed but don't impact the calculation of the + ;; begin/end of the week + ;; + ;; The exclusions here are databases that give incorrect answers when the JVM timezone doesn't match the databases + ;; timezone (TIMEZONE FIXME) + (testing "JVM timezone set to Pacific" + (mt/test-drivers (mt/normal-drivers-except #{:h2 :sqlserver :redshift :sparksql :mongo :bigquery}) + (is (= (cond + (= :sqlite driver/*driver*) + (results-by-week u.date/parse + date-without-time-format-fn + [46 47 40 60 7]) + + ;; TODO - these results are the same as the `:else` results + (qp.test/tz-shifted-driver-bug? driver/*driver*) + (results-by-week (default-timezone-parse-fn :pacific) + (format-in-timezone-fn :pacific) + [46 47 40 60 7]) + + (qp.test/supports-report-timezone? driver/*driver*) + (results-by-week (default-timezone-parse-fn :pacific) + (format-in-timezone-fn :pacific) + [49 47 39 58 7]) + + :else + (results-by-week u.date/parse + (format-in-timezone-fn :pacific) + [46 47 40 60 7])) + (mt/with-system-timezone-id (timezone :pacific) + (sad-toucan-incidents-with-bucketing :week :pacific))))))) + +;; TODO — Group by `:iso-week` test! + +(deftest group-by-week-of-year-test + (mt/test-drivers (mt/normal-drivers) + (is (= ;; Not really sure why different drivers have different opinions on these </3 + (cond + (= :snowflake driver/*driver*) + [[22 46] [23 47] [24 40] [25 60] [26 7]] + + (#{:sqlserver :sqlite :oracle :sparksql} driver/*driver*) + [[23 54] [24 46] [25 39] [26 61]] + + (and (qp.test/supports-report-timezone? driver/*driver*) + (not (= :redshift driver/*driver*))) + [[23 49] [24 47] [25 39] [26 58] [27 7]] + + :else + [[23 46] [24 47] [25 40] [26 60] [27 7]]) + (sad-toucan-incidents-with-bucketing :week-of-year :pacific))))) ;; All of the sad toucan events in the test data fit in June. The results are the same on all databases and the only ;; difference is how the beginning of hte month is represented, since we always return times with our dates -(qp.test/expect-with-non-timeseries-dbs - [[(cond - (= :sqlite driver/*driver*) - "2015-06-01" - - (qp.test/supports-report-timezone? driver/*driver*) - "2015-06-01T00:00:00.000-07:00" - - :else - "2015-06-01T00:00:00.000Z") - 200]] - (sad-toucan-incidents-with-bucketing :month pacific-tz)) - -(qp.test/expect-with-non-timeseries-dbs - [[(cond - (= :sqlite driver/*driver*) - "2015-06-01" - - (qp.test/supports-report-timezone? driver/*driver*) - "2015-06-01T00:00:00.000-04:00" - - :else - "2015-06-01T00:00:00.000Z") - 200]] - (sad-toucan-incidents-with-bucketing :month eastern-tz)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by month-of-year tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(qp.test/expect-with-non-timeseries-dbs - [[6 200]] - (sad-toucan-incidents-with-bucketing :month-of-year pacific-tz)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by quarter tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(qp.test/expect-with-non-timeseries-dbs - [[(cond (= :sqlite driver/*driver*) - "2015-04-01" - - (qp.test/supports-report-timezone? driver/*driver*) - "2015-04-01T00:00:00.000-07:00" - - :else - "2015-04-01T00:00:00.000Z") - 200]] - (sad-toucan-incidents-with-bucketing :quarter pacific-tz)) - -(qp.test/expect-with-non-timeseries-dbs - [[(cond (= :sqlite driver/*driver*) - "2015-04-01" - - (qp.test/supports-report-timezone? driver/*driver*) - "2015-04-01T00:00:00.000-04:00" - - :else - "2015-04-01T00:00:00.000Z") - 200]] - (sad-toucan-incidents-with-bucketing :quarter eastern-tz)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Grouping by quarter-of-year tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(qp.test/expect-with-non-timeseries-dbs - [[2 200]] - (sad-toucan-incidents-with-bucketing :quarter-of-year pacific-tz)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;e -;; -;; Grouping by year tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(qp.test/expect-with-non-timeseries-dbs - [[(cond - (= :sqlite driver/*driver*) - "2015-01-01" - - (qp.test/supports-report-timezone? driver/*driver*) - "2015-01-01T00:00:00.000-08:00" - :else - "2015-01-01T00:00:00.000Z") - 200]] - (sad-toucan-incidents-with-bucketing :year pacific-tz)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Relative date tests -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(deftest group-by-month-test + (mt/test-drivers (mt/normal-drivers) + (testing "\nPacific timezone" + (is (= [[(cond + (= :sqlite driver/*driver*) + "2015-06-01" + + (qp.test/supports-report-timezone? driver/*driver*) + "2015-06-01T00:00:00-07:00" + + :else + "2015-06-01T00:00:00Z") + 200]] + (sad-toucan-incidents-with-bucketing :month :pacific)))) + (testing "\nEastern timezone" + (mt/test-drivers (mt/normal-drivers) + (is (= [[(cond + (= :sqlite driver/*driver*) + "2015-06-01" + + (qp.test/supports-report-timezone? driver/*driver*) + "2015-06-01T00:00:00-04:00" + + :else + "2015-06-01T00:00:00Z") + 200]] + (sad-toucan-incidents-with-bucketing :month :eastern))))))) + +(deftest group-by-month-of-year-test + (mt/test-drivers (mt/normal-drivers) + (is (= [[6 200]] + (sad-toucan-incidents-with-bucketing :month-of-year :pacific))))) + +(deftest group-by-quarter-test + (mt/test-drivers (mt/normal-drivers) + (testing "\nPacific timezone" + (is (= [[(cond (= :sqlite driver/*driver*) + "2015-04-01" + + (qp.test/supports-report-timezone? driver/*driver*) + "2015-04-01T00:00:00-07:00" + + :else + "2015-04-01T00:00:00Z") + 200]] + (sad-toucan-incidents-with-bucketing :quarter :pacific)))) + (testing "\nEastern timezone" + (is (= [[(cond (= :sqlite driver/*driver*) + "2015-04-01" + + (qp.test/supports-report-timezone? driver/*driver*) + "2015-04-01T00:00:00-04:00" + + :else + "2015-04-01T00:00:00Z") + 200]] + (sad-toucan-incidents-with-bucketing :quarter :eastern)))))) + +(deftest group-by-quarter-of-year-test + (mt/test-drivers (mt/normal-drivers) + (is (= [[2 200]] + (sad-toucan-incidents-with-bucketing :quarter-of-year :pacific))))) + +(deftest group-by-year-test + (mt/test-drivers (mt/normal-drivers) + (is (= [[(cond + (= :sqlite driver/*driver*) + "2015-01-01" + + (qp.test/supports-report-timezone? driver/*driver*) + "2015-01-01T00:00:00-08:00" + :else + "2015-01-01T00:00:00Z") + 200]] + (sad-toucan-incidents-with-bucketing :year :pacific))))) ;; RELATIVE DATES -(p.types/deftype+ ^:private TimestampDatasetDef [intervalSeconds]) +(p.types/deftype+ ^:private TimestampDatasetDef [intervalSeconds] + pretty/PrettyPrintable + (pretty [_] + (list 'TimestampDatasetDef. intervalSeconds))) -(defmethod tx/get-dataset-definition TimestampDatasetDef +(defmethod mt/get-dataset-definition TimestampDatasetDef [^TimestampDatasetDef this] (let [interval-seconds (.intervalSeconds this)] - (tx/dataset-definition (str "checkins_interval_" interval-seconds) + (mt/dataset-definition (str "checkins_interval_" interval-seconds) ["checkins" [{:field-name "timestamp" :base-type :type/DateTime}] (vec (for [i (range -15 15)] + ;; TIMESTAMP FIXME — not sure if still needed + ;; ;; Create timestamps using relative dates (e.g. `DATEADD(second, -195, GETUTCDATE())` instead of - ;; generating `java.sql.Timestamps` here so they'll be in the DB's native timezone. Some DBs refuse to use + ;; generating Java classes here so they'll be in the DB's native timezone. Some DBs refuse to use ;; the same timezone we're running the tests from *cough* SQL Server *cough* [(u/prog1 (if (isa? driver/hierarchy driver/*driver* :sql) (driver/date-add driver/*driver* (sql.qp/current-datetime-fn driver/*driver*) (* i interval-seconds) :second) - (du/relative-date :second (* i interval-seconds))) + (u.date/add :second (* i interval-seconds))) (assert <>))]))]))) (defn- dataset-def-with-timestamps [interval-seconds] (TimestampDatasetDef. interval-seconds)) (def ^:private checkins:4-per-minute (dataset-def-with-timestamps 15)) -(def ^:private checkins:4-per-hour (dataset-def-with-timestamps (* 60 15))) -(def ^:private checkins:1-per-day (dataset-def-with-timestamps (* 60 60 24))) - -(defn- count-of-grouping [dataset field-grouping & relative-datetime-args] - (-> (data/dataset dataset - (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter [:= - [:datetime-field $timestamp field-grouping] - (cons :relative-datetime relative-datetime-args)]})) - qp.test/first-row first int)) +(def ^:private checkins:4-per-hour (dataset-def-with-timestamps (u/minutes->seconds 15))) +(def ^:private checkins:1-per-day (dataset-def-with-timestamps (* 24 (u/minutes->seconds 60)))) + +(defn- checkins-db-is-old? [max-age-seconds] + (u.date/greater-than-period-duration? (u.date/period-duration (:created_at (mt/db)) (t/zoned-date-time)) + (t/seconds max-age-seconds))) + +(def ^:private ^:dynamic *recreate-db-if-stale?* true) + +(defn- count-of-grouping [^TimestampDatasetDef dataset, field-grouping & relative-datetime-args] + (-> (mt/dataset dataset + ;; DB has values in the range of now() - (interval-seconds * 15) and now() + (interval-seconds * 15). So if it + ;; was created more than (interval-seconds * 5) seconds ago, delete the Database and recreate it to make sure + ;; the tests pass. + ;; + ;; TODO - perhaps this should be rolled into `mt/dataset` itself -- it seems like a useful feature? + (if (and (checkins-db-is-old? (* (.intervalSeconds dataset) 5)) *recreate-db-if-stale?*) + (binding [*recreate-db-if-stale?* false] + (printf "DB for %s is stale! Deleteing and running test again\n" dataset) + (db/delete! Database :id (mt/id)) + (apply count-of-grouping dataset field-grouping relative-datetime-args)) + (-> (mt/run-mbql-query checkins + {:aggregation [[:count]] + :filter [:= + [:datetime-field $timestamp field-grouping] + (cons :relative-datetime relative-datetime-args)]}) + mt/first-row first int))))) ;; HACK - Don't run these tests against BigQuery/etc. because the databases need to be loaded every time the tests are ran ;; and loading data into BigQuery/etc. is mind-bogglingly slow. Don't worry, I promise these work though! - -;; Don't run the minute tests against Oracle because the Oracle tests are kind of slow and case CI to fail randomly -;; when it takes so long to load the data that the times are no longer current (these tests pass locally if your -;; machine isn't as slow as the CircleCI ones) -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery :oracle} 4 (count-of-grouping checkins:4-per-minute :minute "current")) - -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery :oracle} 4 (count-of-grouping checkins:4-per-minute :minute -1 "minute")) -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery :oracle} 4 (count-of-grouping checkins:4-per-minute :minute 1 "minute")) - -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} 4 (count-of-grouping checkins:4-per-hour :hour "current")) -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} 4 (count-of-grouping checkins:4-per-hour :hour -1 "hour")) -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} 4 (count-of-grouping checkins:4-per-hour :hour 1 "hour")) - -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} 1 (count-of-grouping checkins:1-per-day :day "current")) -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} 1 (count-of-grouping checkins:1-per-day :day -1 "day")) -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} 1 (count-of-grouping checkins:1-per-day :day 1 "day")) - -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} 7 (count-of-grouping checkins:1-per-day :week "current")) - -;; SYNTACTIC SUGAR -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} - 1 - (-> (data/dataset checkins:1-per-day - (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter [:time-interval $timestamp :current :day]})) - qp.test/first-row first int)) - -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} - 7 - (-> (data/dataset checkins:1-per-day - (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter [:time-interval $timestamp :last :week]})) - qp.test/first-row first int)) +(deftest count-of-grouping-test + ;; Don't run the minute tests against Oracle because the Oracle tests are kind of slow and case CI to fail randomly + ;; when it takes so long to load the data that the times are no longer current (these tests pass locally if your + ;; machine isn't as slow as the CircleCI ones) + (mt/test-drivers (mt/normal-drivers-except #{:snowflake :bigquery :oracle}) + (testing "4 checkins per minute dataset" + (testing "group by minute" + (doseq [args [[:current] [-1 :minute] [1 :minute]]] + (is (= 4 + (apply count-of-grouping checkins:4-per-minute :minute args)) + (format "filter by minute = %s" (into [:relative-datetime] args))))))) + (mt/test-drivers (mt/normal-drivers-except #{:snowflake :bigquery}) + (testing "4 checkins per hour dataset" + (testing "group by hour" + (doseq [args [[:current] [-1 :hour] [1 :hour]]] + (is (= 4 + (apply count-of-grouping checkins:4-per-hour :hour args)) + (format "filter by hour = %s" (into [:relative-datetime] args)))))) + (testing "1 checkin per day dataset" + (testing "group by day" + (doseq [args [[:current] [-1 :day] [1 :day]]] + (is (= 1 + (apply count-of-grouping checkins:1-per-day :day args)) + (format "filter by day = %s" (into [:relative-datetime] args))))) + (testing "group by week" + (is (= 7 + (count-of-grouping checkins:1-per-day :week :current)) + "filter by week = [:relative-datetime :current]"))))) + +(deftest time-interval-test + (mt/test-drivers (mt/normal-drivers-except #{:snowflake :bigquery}) + (testing "Syntactic sugar (`:time-interval` clause)" + (is (= 1 + (-> (mt/dataset checkins:1-per-day + (mt/run-mbql-query checkins + {:aggregation [[:count]] + :filter [:time-interval $timestamp :current :day]})) + mt/first-row first int))) + + (is (= 7 + (-> (mt/dataset checkins:1-per-day + (mt/run-mbql-query checkins + {:aggregation [[:count]] + :filter [:time-interval $timestamp :last :week]})) + mt/first-row first int)))))) ;; Make sure that when referencing the same field multiple times with different units we return the one that actually ;; reflects the units the results are in. eg when we breakout by one unit and filter by another, make sure the results ;; and the col info use the unit used by breakout (defn- date-bucketing-unit-when-you [& {:keys [breakout-by filter-by with-interval] :or {with-interval :current}}] - (let [results (data/dataset checkins:1-per-day - (data/run-mbql-query checkins + (let [results (mt/dataset checkins:1-per-day + (mt/run-mbql-query checkins {:aggregation [[:count]] :breakout [[:datetime-field $timestamp breakout-by]] :filter [:time-interval $timestamp with-interval filter-by]}))] @@ -881,36 +963,24 @@ (throw (ex-info "Query failed!" results))) :unit (-> results :data :cols first :unit)})) -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} - {:rows 1, :unit :day} - (date-bucketing-unit-when-you :breakout-by "day", :filter-by "day")) - -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} - {:rows 7, :unit :day} - (date-bucketing-unit-when-you :breakout-by "day", :filter-by "week")) - -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} - {:rows 1, :unit :week} - (date-bucketing-unit-when-you :breakout-by "week", :filter-by "day")) - -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} - {:rows 1, :unit :quarter} - (date-bucketing-unit-when-you :breakout-by "quarter", :filter-by "day")) - -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} - {:rows 1, :unit :hour} - (date-bucketing-unit-when-you :breakout-by "hour", :filter-by "day")) - -;; make sure if you use a relative date bucket in the past (e.g. "past 2 months") you get the correct amount of rows -;; (#3910) -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} - {:rows 2, :unit :day} - (date-bucketing-unit-when-you :breakout-by "day", :filter-by "day", :with-interval -2)) - -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} - {:rows 2, :unit :day} - (date-bucketing-unit-when-you :breakout-by "day", :filter-by "day", :with-interval 2)) - +(deftest date-bucketing-when-you-test + (mt/test-drivers (mt/normal-drivers-except #{:snowflake :bigquery}) + (is (= {:rows 1, :unit :day} + (date-bucketing-unit-when-you :breakout-by "day", :filter-by "day"))) + (is (= {:rows 7, :unit :day} + (date-bucketing-unit-when-you :breakout-by "day", :filter-by "week"))) + (is (= {:rows 1, :unit :week} + (date-bucketing-unit-when-you :breakout-by "week", :filter-by "day"))) + (is (= {:rows 1, :unit :quarter} + (date-bucketing-unit-when-you :breakout-by "quarter", :filter-by "day"))) + (is (= {:rows 1, :unit :hour} + (date-bucketing-unit-when-you :breakout-by "hour", :filter-by "day"))) + ;; make sure if you use a relative date bucket in the past (e.g. "past 2 months") you get the correct amount of rows + ;; (#3910) + (is (= {:rows 2, :unit :day} + (date-bucketing-unit-when-you :breakout-by "day", :filter-by "day", :with-interval -2))) + (is (= {:rows 2, :unit :day} + (date-bucketing-unit-when-you :breakout-by "day", :filter-by "day", :with-interval 2))))) ;; Filtering by a unbucketed datetime Field should automatically bucket that Field by day if not already done (#8927) ;; @@ -921,51 +991,46 @@ ;; ;; We should get count = 1 for the current day, as opposed to count = 0 if we weren't auto-bucketing ;; (e.g. 2018-11-19T00:00 != 2018-11-19T12:37 or whatever time the checkin is at) -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} - [[1]] - (qp.test/format-rows-by [int] - (qp.test/rows - (data/dataset checkins:1-per-day - (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter [:= [:field-id $timestamp] (du/format-date "yyyy-MM-dd" (du/date-trunc :day))]}))))) - -;; this is basically the same test as above, but using the office-checkins dataset instead of the dynamically created -;; checkins DBs so we can run it against Snowflake and BigQuery as well. -(qp.test/expect-with-non-timeseries-dbs - [[1]] - (qp.test/format-rows-by [int] - (qp.test/rows - (data/dataset office-checkins - (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter [:= [:field-id $timestamp] "2019-01-16"]}))))) - -;; Check that automatic bucketing still happens when using compound filter clauses (#9127) -(qp.test/expect-with-non-timeseries-dbs - [[1]] - (qp.test/format-rows-by [int] - (qp.test/rows - (data/dataset office-checkins - (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter [:and - [:= [:field-id $timestamp] "2019-01-16"] - [:= [:field-id $id] 6]]}))))) - -;; if datetime string is not yyyy-MM-dd no date bucketing should take place, and thus we should get no (exact) matches -(qp.test/expect-with-non-timeseries-dbs-except #{:snowflake :bigquery} - ;; Mongo returns empty row for count = 0. We should fix that - (case driver/*driver* - :mongo [] - [[0]]) - (qp.test/format-rows-by [int] - (qp.test/rows - (data/dataset checkins:1-per-day - (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter [:= [:field-id $timestamp] (str (du/format-date "yyyy-MM-dd" (du/date-trunc :day)) - "T14:16:00.000Z")]}))))) +(deftest default-bucketing-test + (mt/test-drivers (mt/normal-drivers-except #{:snowflake :bigquery}) + (is (= [[1]] + (mt/format-rows-by [int] + (mt/rows + (mt/dataset checkins:1-per-day + (mt/run-mbql-query checkins + {:aggregation [[:count]] + :filter [:= [:field-id $timestamp] (t/format "yyyy-MM-dd" (u.date/truncate :day))]}))))))) + ;; this is basically the same test as above, but using the office-checkins dataset instead of the dynamically + ;; created checkins DBs so we can run it against Snowflake and BigQuery as well. + (mt/test-drivers (mt/normal-drivers) + (mt/dataset office-checkins + (is (= [[1]] + (mt/format-rows-by [int] + (mt/rows + (mt/run-mbql-query checkins + {:aggregation [[:count]] + :filter [:= [:field-id $timestamp] "2019-01-16"]}))))) + (testing "Check that automatic bucketing still happens when using compound filter clauses (#9127)" + (is (= [[1]] + (mt/format-rows-by [int] + (mt/rows + (mt/run-mbql-query checkins + {:aggregation [[:count]] + :filter [:and + [:= [:field-id $timestamp] "2019-01-16"] + [:= [:field-id $id] 6]]}))))))) + (testing "if datetime string is not yyyy-MM-dd no date bucketing should take place, and thus we should get no (exact) matches" + (mt/dataset checkins:1-per-day + (is (= ;; Mongo returns empty row for count = 0. We should fix that + (case driver/*driver* + :mongo [] + [[0]]) + (mt/format-rows-by [int] + (mt/rows + (mt/run-mbql-query checkins + {:aggregation [[:count]] + :filter [:= [:field-id $timestamp] (str (t/format "yyyy-MM-dd" (u.date/truncate :day)) + "T14:16:00Z")]}))))))))) (def ^:private addition-unit-filtering-vals [[3 :day "2014-03-03"] @@ -982,17 +1047,17 @@ (defn- count-of-checkins [unit filter-value] (ffirst - (qp.test/format-rows-by [int] - (qp.test/rows - (data/run-mbql-query checkins + (mt/format-rows-by [int] + (mt/rows + (mt/run-mbql-query checkins {:aggregation [[:count]] :filter [:= [:datetime-field $date unit] filter-value]}))))) (deftest additional-unit-filtering-tests (testing "Additional tests for filtering against various datetime bucketing units that aren't tested above" - (datasets/test-drivers @qp.test/non-timeseries-drivers + (mt/test-drivers (mt/normal-drivers) (doseq [[expected-count unit filter-value] addition-unit-filtering-vals] - (testing unit + (testing (format "\nunit = %s" unit) (let [result (count-of-checkins unit filter-value)] (if (integer? expected-count) (is (= expected-count result) @@ -1007,7 +1072,7 @@ "WHERE CAST(\"PUBLIC\".\"CHECKINS\".\"DATE\" AS date) = CAST(now() AS date)") (:query (qp/query->native - (data/mbql-query checkins + (mt/mbql-query checkins {:aggregation [[:count]] :filter [:= $date [:relative-datetime :current]]})))) (str "Datetime fields that aren't wrapped in datetime-field clauses should get default :day bucketing for legacy " diff --git a/test/metabase/query_processor_test/explicit_joins_test.clj b/test/metabase/query_processor_test/explicit_joins_test.clj index 8c4c92cb4ad4d1806f2543d10a121c69c7756897..385f6b3a694ba2e58f12aba1ba2e8340cc34527d 100644 --- a/test/metabase/query_processor_test/explicit_joins_test.clj +++ b/test/metabase/query_processor_test/explicit_joins_test.clj @@ -249,9 +249,9 @@ (is (= (mapv data/format-name ["id" "name" "last_login" "id_2" "date" "user_id" "venue_id"]) columns)) ;; not sure why only Oracle seems to do this - (is (= [[1 "Plato Yeshua" "2014-04-01T08:30:00.000Z" 1 "2014-04-07T00:00:00.000Z" 5 12] - [2 "Felipinho Asklepios" "2014-12-05T15:15:00.000Z" 2 "2014-09-18T00:00:00.000Z" 1 31] - [3 "Kaneonuskatew Eiran" "2014-11-06T16:15:00.000Z" 3 "2014-09-15T00:00:00.000Z" 8 56]] + (is (= [[1 "Plato Yeshua" "2014-04-01T08:30:00Z" 1 "2014-04-07T00:00:00Z" 5 12] + [2 "Felipinho Asklepios" "2014-12-05T15:15:00Z" 2 "2014-09-18T00:00:00Z" 1 31] + [3 "Kaneonuskatew Eiran" "2014-11-06T16:15:00Z" 3 "2014-09-15T00:00:00Z" 8 56]] rows)))))) (deftest select-*-source-query-test @@ -314,16 +314,16 @@ ;; you include `:source-metadata`) (datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :left-join) {:rows - [["2013-01-01T00:00:00.000Z" 8 "2013-01-01T00:00:00.000Z" 8] - ["2013-02-01T00:00:00.000Z" 11 "2013-02-01T00:00:00.000Z" 11] - ["2013-03-01T00:00:00.000Z" 21 "2013-03-01T00:00:00.000Z" 21] - ["2013-04-01T00:00:00.000Z" 26 "2013-04-01T00:00:00.000Z" 26] - ["2013-05-01T00:00:00.000Z" 23 "2013-05-01T00:00:00.000Z" 23] - ["2013-06-01T00:00:00.000Z" 26 "2013-06-01T00:00:00.000Z" 26] - ["2013-07-01T00:00:00.000Z" 20 "2013-07-01T00:00:00.000Z" 20] - ["2013-08-01T00:00:00.000Z" 22 "2013-08-01T00:00:00.000Z" 22] - ["2013-09-01T00:00:00.000Z" 13 "2013-09-01T00:00:00.000Z" 13] - ["2013-10-01T00:00:00.000Z" 26 "2013-10-01T00:00:00.000Z" 26]] + [["2013-01-01T00:00:00Z" 8 "2013-01-01T00:00:00Z" 8] + ["2013-02-01T00:00:00Z" 11 "2013-02-01T00:00:00Z" 11] + ["2013-03-01T00:00:00Z" 21 "2013-03-01T00:00:00Z" 21] + ["2013-04-01T00:00:00Z" 26 "2013-04-01T00:00:00Z" 26] + ["2013-05-01T00:00:00Z" 23 "2013-05-01T00:00:00Z" 23] + ["2013-06-01T00:00:00Z" 26 "2013-06-01T00:00:00Z" 26] + ["2013-07-01T00:00:00Z" 20 "2013-07-01T00:00:00Z" 20] + ["2013-08-01T00:00:00Z" 22 "2013-08-01T00:00:00Z" 22] + ["2013-09-01T00:00:00Z" 13 "2013-09-01T00:00:00Z" 13] + ["2013-10-01T00:00:00Z" 26 "2013-10-01T00:00:00Z" 26]] :columns [(data/format-name "date") "count" (data/format-name "date_2") "count_2"]} (qp.test/format-rows-by [identity int identity int] (qp.test/rows+column-names @@ -347,14 +347,14 @@ (datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :left-join) ;; for whatever reason H2 gives slightly different answers :unamused: {:rows (let [driver-avg #(if (= metabase.driver/*driver* :h2) %1 %2)] - [["2014-01-01T00:00:00.000Z" 77] - ["2014-02-01T00:00:00.000Z" 81] - ["2014-04-01T00:00:00.000Z" (driver-avg 50 49)] - ["2014-07-01T00:00:00.000Z" (driver-avg 69 68)] - ["2014-08-01T00:00:00.000Z" 64] - ["2014-10-01T00:00:00.000Z" (driver-avg 66 65)] - ["2014-11-01T00:00:00.000Z" (driver-avg 75 74)] - ["2014-12-01T00:00:00.000Z" 70]]) + [["2014-01-01T00:00:00Z" 77] + ["2014-02-01T00:00:00Z" 81] + ["2014-04-01T00:00:00Z" (driver-avg 50 49)] + ["2014-07-01T00:00:00Z" (driver-avg 69 68)] + ["2014-08-01T00:00:00Z" 64] + ["2014-10-01T00:00:00Z" (driver-avg 66 65)] + ["2014-11-01T00:00:00Z" (driver-avg 75 74)] + ["2014-12-01T00:00:00Z" 70]]) :columns [(data/format-name "last_login") "avg"]} (qp.test/format-rows-by [identity int] (qp.test/rows+column-names @@ -372,9 +372,9 @@ ;; NEW! Can we still get all of our columns, even if we *DON'T* specify the metadata? (datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :left-join) - {:rows [["2013-01-01T00:00:00.000Z" 8 "2013-01-01T00:00:00.000Z" 8] - ["2013-02-01T00:00:00.000Z" 11 "2013-02-01T00:00:00.000Z" 11] - ["2013-03-01T00:00:00.000Z" 21 "2013-03-01T00:00:00.000Z" 21]] + {:rows [["2013-01-01T00:00:00Z" 8 "2013-01-01T00:00:00Z" 8] + ["2013-02-01T00:00:00Z" 11 "2013-02-01T00:00:00Z" 11] + ["2013-03-01T00:00:00Z" 21 "2013-03-01T00:00:00Z" 21]] :columns [(data/format-name "date") "count" (data/format-name "date_2") "count_2"]} (tt/with-temp Card [{card-id :id {source-query :query} :dataset_query @@ -417,11 +417,11 @@ "id_2" "name" "last_login" ; users "id_2_2" "name_2" "category_id" "latitude" "longitude" "price"]) ; venues :rows - [[1 "2014-04-07T00:00:00.000Z" 5 12 - 5 "Quentin Sören" "2014-10-03T17:30:00.000Z" + [[1 "2014-04-07T00:00:00Z" 5 12 + 5 "Quentin Sören" "2014-10-03T17:30:00Z" 5 "Brite Spot Family Restaurant" 20 34.078 -118.261 2] - [2 "2014-09-18T00:00:00.000Z" 1 31 - 1 "Plato Yeshua" "2014-04-01T08:30:00.000Z" + [2 "2014-09-18T00:00:00Z" 1 31 + 1 "Plato Yeshua" "2014-04-01T08:30:00Z" 1 "Red Medicine" 4 10.065 -165.374 3]]} (qp.test/rows+column-names (qp.test/format-rows-by [int ; checkins.id @@ -453,8 +453,8 @@ ;; we should be able to use a SQL question as a source query in a Join (datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries :left-join) - [[1 "2014-04-07T00:00:00.000Z" 5 12 12 "The Misfit Restaurant + Bar" 2 34.0154 -118.497 2] - [2 "2014-09-18T00:00:00.000Z" 1 31 31 "Bludso's BBQ" 5 33.8894 -118.207 2]] + [[1 "2014-04-07T00:00:00Z" 5 12 12 "The Misfit Restaurant + Bar" 2 34.0154 -118.497 2] + [2 "2014-09-18T00:00:00Z" 1 31 31 "Bludso's BBQ" 5 33.8894 -118.207 2]] (tt/with-temp Card [{card-id :id, :as card} (qp.test-util/card-with-source-metadata-for-query (data/native-query (qp/query->native (data/mbql-query venues))))] (qp.test/formatted-rows [int identity int int int identity int 4.0 4.0 int] diff --git a/test/metabase/query_processor_test/expressions_test.clj b/test/metabase/query_processor_test/expressions_test.clj index bc6fd61ca22e9e752d8f6a53c97bd0003038b4f0..a12afc96ebd47e2342ff59916f3bf084ee7f6625 100644 --- a/test/metabase/query_processor_test/expressions_test.clj +++ b/test/metabase/query_processor_test/expressions_test.clj @@ -1,9 +1,8 @@ (ns metabase.query-processor-test.expressions-test "Tests for expressions (calculated columns)." - (:require [clj-time - [coerce :as tcoerce] - [core :as time] - [format :as tformat]] + (:require [clj-time.core :as time] + [clojure.test :refer :all] + [java-time :as t] [metabase [driver :as driver] [query-processor-test :as qp.test]] @@ -11,10 +10,10 @@ [data :as data] [util :as tu]] [metabase.test.data.datasets :as datasets] - [metabase.util.date :as du])) + [metabase.util.date-2 :as u.date])) ;; Do a basic query including an expression -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[1 "Red Medicine" 4 10.0646 -165.374 3 5.0] [2 "Stout Burgers & Beers" 11 34.0996 -118.329 2 4.0] [3 "The Apple Pan" 11 34.0406 -118.428 2 4.0] @@ -27,20 +26,21 @@ :limit 5 :order-by [[:asc $id]]})))) -;; Make sure FLOATING POINT division is done -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) - [[1 "Red Medicine" 4 10.0646 -165.374 3 1.5] ; 3 / 2 SHOULD BE 1.5, NOT 1 (!) - [2 "Stout Burgers & Beers" 11 34.0996 -118.329 2 1.0] - [3 "The Apple Pan" 11 34.0406 -118.428 2 1.0]] - (qp.test/format-rows-by [int str int 4.0 4.0 int float] - (qp.test/rows - (data/run-mbql-query venues - {:expressions {:my-cool-new-field [:/ $price 2]} - :limit 3 - :order-by [[:asc $id]]})))) +(deftest floating-point-division-test + (datasets/test-drivers (qp.test/normal-drivers-with-feature :expressions) + (is (= [[1 "Red Medicine" 4 10.0646 -165.374 3 1.5] ; 3 / 2 SHOULD BE 1.5, NOT 1 (!) + [2 "Stout Burgers & Beers" 11 34.0996 -118.329 2 1.0] + [3 "The Apple Pan" 11 34.0406 -118.428 2 1.0]] + (qp.test/format-rows-by [int str int 4.0 4.0 int float] + (qp.test/rows + (data/run-mbql-query venues + {:expressions {:my-cool-new-field [:/ $price 2]} + :limit 3 + :order-by [[:asc $id]]})))) + "Make sure FLOATING POINT division is done"))) ;; Can we do NESTED EXPRESSIONS ? -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[1 "Red Medicine" 4 10.0646 -165.374 3 3.0] [2 "Stout Burgers & Beers" 11 34.0996 -118.329 2 2.0] [3 "The Apple Pan" 11 34.0406 -118.428 2 2.0]] @@ -52,7 +52,7 @@ :order-by [[:asc $id]]})))) ;; Can we have MULTIPLE EXPRESSIONS? -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[1 "Red Medicine" 4 10.0646 -165.374 3 2.0 4.0] [2 "Stout Burgers & Beers" 11 34.0996 -118.329 2 1.0 3.0] [3 "The Apple Pan" 11 34.0406 -118.428 2 1.0 3.0]] @@ -65,7 +65,7 @@ :order-by [[:asc $id]]})))) ;; Can we refer to expressions inside a FIELDS clause? -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[4] [4] [5]] (qp.test/format-rows-by [int] (qp.test/rows @@ -76,7 +76,7 @@ :order-by [[:asc $id]]})))) ;; Can we refer to expressions inside an ORDER BY clause? -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[100 "Mohawk Bend" 46 34.0777 -118.265 2 102.0] [99 "Golden Road Brewing" 10 34.1505 -118.274 2 101.0] [98 "Lucky Baldwin's Pub" 7 34.1454 -118.149 2 100.0]] @@ -88,7 +88,7 @@ :order-by [[:desc [:expression :x]]]})))) ;; Can we AGGREGATE + BREAKOUT by an EXPRESSION? -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[2 22] [4 59] [6 13] [8 6]] (qp.test/format-rows-by [int int] (qp.test/rows @@ -98,7 +98,7 @@ :breakout [[:expression :x]]})))) ;; Custom aggregation expressions should include their type -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) (conj #{{:name "x" :base_type :type/Float}} {:name (data/format-name "category_id") :base_type (case driver/*driver* @@ -137,19 +137,19 @@ ;; hey... expressions should work if they are just a Field! (Also, this lets us take a peek at the raw values being ;; used to calculate the formulas below, so we can tell at a glance if they're right without referring to the EDN def) -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[nil] [0.0] [0.0] [10.0] [8.0] [5.0] [5.0] [nil] [0.0] [0.0]] (calculate-bird-scarcity [:field-id $count])) ;; do expressions automatically handle division by zero? Should return `nil` in the results for places where that was ;; attempted -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[nil] [nil] [10.0] [12.5] [20.0] [20.0] [nil] [nil] [9.09] [7.14]] (calculate-bird-scarcity [:/ 100.0 [:field-id $count]] [:!= $count nil])) ;; do expressions handle division by `nil`? Should return `nil` in the results for places where that was attempted -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[nil] [10.0] [12.5] [20.0] [20.0] [nil] [9.09] [7.14] [12.5] [7.14]] (calculate-bird-scarcity [:/ 100.0 [:field-id $count]] [:or @@ -157,89 +157,86 @@ [:!= $count 0]])) ;; can we handle BOTH NULLS AND ZEROES AT THE SAME TIME???? -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[nil] [nil] [nil] [10.0] [12.5] [20.0] [20.0] [nil] [nil] [nil]] (calculate-bird-scarcity [:/ 100.0 [:field-id $count]])) ;; ok, what if we use multiple args to divide, and more than one is zero? -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[nil] [nil] [nil] [1.0] [1.56] [4.0] [4.0] [nil] [nil] [nil]] (calculate-bird-scarcity [:/ 100.0 [:field-id $count] [:field-id $count]])) ;; are nulls/zeroes still handled appropriately when nested inside other expressions? -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[nil] [nil] [nil] [20.0] [25.0] [40.0] [40.0] [nil] [nil] [nil]] (calculate-bird-scarcity [:* [:/ 100.0 [:field-id $count]] 2])) ;; if a zero is present in the NUMERATOR we should return ZERO and not NULL ;; (`0 / 10 = 0`; `10 / 0 = NULL`, at least as far as MBQL is concerned) -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[nil] [0.0] [0.0] [1.0] [0.8] [0.5] [0.5] [nil] [0.0] [0.0]] (calculate-bird-scarcity [:/ [:field-id $count] 10])) ;; can addition handle nulls & zeroes? -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[nil] [10.0] [10.0] [20.0] [18.0] [15.0] [15.0] [nil] [10.0] [10.0]] (calculate-bird-scarcity [:+ [:field-id $count] 10])) ;; can subtraction handle nulls & zeroes? -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[nil] [10.0] [10.0] [0.0] [2.0] [5.0] [5.0] [nil] [10.0] [10.0]] (calculate-bird-scarcity [:- 10 [:field-id $count]])) ;; can multiplications handle nulls & zeros? -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :expressions) [[nil] [0.0] [0.0] [10.0] [8.0] [5.0] [5.0] [nil] [0.0] [0.0]] (calculate-bird-scarcity [:* 1 [:field-id $count]])) ;;; +----------------------------------------------------------------------------------------------------------------+ -;;; | DATETIME EXTRACTION AND MANIPULATION | +;;; | DATETIME EXTRACTION AND MANIPULATION | ;;; +----------------------------------------------------------------------------------------------------------------+ -(def ^:private utc-tz (time/time-zone-for-id "UTC")) +(def ^:private ^org.joda.time.DateTimeZone utc-tz (time/time-zone-for-id "UTC")) (defn- maybe-truncate [dt] (if (= :sqlite driver/*driver*) - (->> dt (du/date-trunc :day) tcoerce/from-sql-date) + (u.date/truncate dt :day) dt)) (defn- robust-dates - [dates] - (let [output-format (if (= :sqlite driver/*driver*) - :mysql - :date-time)] - (for [d dates] - [(->> d - (tformat/parse (tformat/with-zone (tformat/formatters :date-hour-minute-second-fraction) utc-tz)) - maybe-truncate - (tformat/unparse (tformat/with-zone (tformat/formatters output-format) utc-tz)))]))) - -;; Test that we can do datetime arithemtics using MBQL `:interval` clause in expressions -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) - (robust-dates - ["2014-09-02T13:45:00.000" - "2014-07-02T09:30:00.000" - "2014-07-01T10:30:00.000"]) - (tu/with-temporary-setting-values [report-timezone (.getID utc-tz)] - (-> (data/run-mbql-query users - {:expressions {:prev_month [:+ $last_login [:interval -31 :day]]} - :fields [[:expression :prev_month]] - :limit 3 - :order-by [[:asc $name]]}) - qp.test/rows))) - -;; Test interaction of datetime arithmetics with truncation -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :expressions) - (robust-dates - ["2014-09-02T00:00:00.000" - "2014-07-02T00:00:00.000" - "2014-07-01T00:00:00.000"]) - (tu/with-temporary-setting-values [report-timezone (.getID utc-tz)] - (-> (data/run-mbql-query users - {:expressions {:prev_month [:+ [:datetime-field $last_login :day] [:interval -31 :day]]} - :fields [[:expression :prev_month]] - :limit 3 - :order-by [[:asc $name]]}) - qp.test/rows))) + [strs] + ;; TIMEZONE FIXME — SQLite shouldn't return strings. And for whatever weird reason it's truncating to date as well? + (let [format-fn (if (= driver/*driver* :sqlite) + #(u.date/format-sql (t/local-date-time (t/local-date %) (t/local-time 0))) + u.date/format)] + (for [s strs] + [(format-fn (u.date/parse s "UTC"))]))) + +(deftest temporal-arithmetic-test + (datasets/test-drivers (qp.test/normal-drivers-with-feature :expressions) + (testing "Test that we can do datetime arithemtics using MBQL `:interval` clause in expressions" + (is (= (robust-dates + ["2014-09-02T13:45:00" + "2014-07-02T09:30:00" + "2014-07-01T10:30:00"]) + (tu/with-temporary-setting-values [report-timezone "UTC"] + (-> (data/run-mbql-query users + {:expressions {:prev_month [:+ $last_login [:interval -31 :day]]} + :fields [[:expression :prev_month]] + :limit 3 + :order-by [[:asc $name]]}) + qp.test/rows))))) + (testing "Test interaction of datetime arithmetics with truncation" + (is (= (robust-dates + ["2014-09-02T00:00:00" + "2014-07-02T00:00:00" + "2014-07-01T00:00:00"]) + (tu/with-temporary-setting-values [report-timezone "UTC"] + (-> (data/run-mbql-query users + {:expressions {:prev_month [:+ [:datetime-field $last_login :day] [:interval -31 :day]]} + :fields [[:expression :prev_month]] + :limit 3 + :order-by [[:asc $name]]}) + qp.test/rows))))))) diff --git a/test/metabase/query_processor_test/failure_test.clj b/test/metabase/query_processor_test/failure_test.clj index b761e26fd0da6a49a32b3087ecb143c678326dff..3f738896f3c327091f37636cdb79fcae3f51e9f4 100644 --- a/test/metabase/query_processor_test/failure_test.clj +++ b/test/metabase/query_processor_test/failure_test.clj @@ -15,20 +15,26 @@ :query {:source-table (data/id :venues) :fields [["datetime_field" (data/id :venues :id) "MONTH"]]}}) -(defn- bad-query:preprocessed [] - {:database (data/id) - :type :query - :query {:source-table (data/id :venues) - :fields [[:datetime-field [:field-id (data/id :venues :id)] :month]] - :limit qp.i/absolute-max-results} - :preprocessing-level 1 - :driver :h2}) +(defn- bad-query-schema [] + {:database (s/eq (data/id)) + :type (s/eq :query) + :query {:source-table (s/eq (data/id :venues)) + :fields (s/eq [["datetime_field" (data/id :venues :id) "MONTH"]])}}) -(def ^:private bad-query:native - {:query (str "SELECT parsedatetime(formatdatetime(\"PUBLIC\".\"VENUES\".\"ID\", 'yyyyMM'), 'yyyyMM') AS \"ID\" " - "FROM \"PUBLIC\".\"VENUES\" " - "LIMIT 1048576") - :params nil}) +(defn- bad-query-preprocessed-schema [] + {:database (s/eq (data/id)) + :type (s/eq :query) + :query {:source-table (s/eq (data/id :venues)) + :fields (s/eq [[:datetime-field [:field-id (data/id :venues :id)] :month]]) + :limit (s/eq qp.i/absolute-max-results)} + :preprocessing-level (s/eq 1) + (s/optional-key :driver) (s/eq :h2)}) + +(def ^:private bad-query-native-schema + {:query (s/eq (str "SELECT parsedatetime(formatdatetime(\"PUBLIC\".\"VENUES\".\"ID\", 'yyyyMM'), 'yyyyMM') AS \"ID\" " + "FROM \"PUBLIC\".\"VENUES\" " + "LIMIT 1048576")) + :params (s/eq nil)}) ;; running a bad query via `process-query` should return stacktrace, query, preprocessed query, and native query (tu/expect-schema @@ -37,9 +43,9 @@ :error s/Str :stacktrace [su/NonBlankString] ;; `:database` is removed by the catch-exceptions middleware for historical reasons - :query (s/eq (dissoc (bad-query) :database)) - :preprocessed (s/eq (bad-query:preprocessed)) - :native (s/eq bad-query:native) + :query (dissoc (bad-query-schema) :database) + :preprocessed (bad-query-preprocessed-schema) + :native bad-query-native-schema :cause {:class (s/eq org.h2.jdbc.JdbcSQLException) :error #"Cannot parse \"TIMESTAMP\" constant \"1\"; SQL statement:.*" :cause {:class (s/eq java.lang.IllegalArgumentException) @@ -50,16 +56,16 @@ ;; running via `process-query-and-save-execution!` should return similar info and a bunch of other nonsense too (tu/expect-schema {:database_id (s/eq (data/id)) - :started_at java.util.Date - :json_query (s/eq (assoc-in (bad-query) [:middleware :userland-query?] true)) - :native (s/eq bad-query:native) + :started_at (s/eq :%now) + :json_query (assoc-in (bad-query-schema) [:middleware :userland-query?] (s/eq true)) + :native bad-query-native-schema :status (s/eq :failed) :stacktrace [su/NonBlankString] :context (s/eq :question) :error su/NonBlankString :row_count (s/eq 0) :running_time (s/constrained s/Int (complement neg?)) - :preprocessed (s/eq (assoc-in (bad-query:preprocessed) [:middleware :userland-query?] true)) + :preprocessed (assoc-in (bad-query-preprocessed-schema) [:middleware :userland-query?] (s/eq true)) :data {:rows (s/eq []) :cols (s/eq [])}} (tu.log/suppress-output diff --git a/test/metabase/query_processor_test/field_visibility_test.clj b/test/metabase/query_processor_test/field_visibility_test.clj index a4b4ae0b97d782e323ad55810ab3bad06af63e04..64aecb2826ca373845d97ece7fdae14551ad19c2 100644 --- a/test/metabase/query_processor_test/field_visibility_test.clj +++ b/test/metabase/query_processor_test/field_visibility_test.clj @@ -1,12 +1,14 @@ (ns metabase.query-processor-test.field-visibility-test "Tests for behavior of fields with different visibility settings." - (:require [metabase + (:require [clojure.test :refer :all] + [metabase [query-processor-test :as qp.test] [util :as u]] [metabase.models.field :refer [Field]] [metabase.test [data :as data] - [util :as tu]])) + [util :as tu]] + [metabase.test.data.datasets :as datasets])) ;;; ---------------------------------------------- :details-only fields ---------------------------------------------- @@ -33,26 +35,27 @@ ;;; ----------------------------------------------- :sensitive fields ------------------------------------------------ -;;; Make sure :sensitive information fields are never returned by the QP -(qp.test/expect-with-non-timeseries-dbs - {:cols (qp.test/expected-cols :users [:id :name :last_login]) - :rows [[ 1 "Plato Yeshua"] - [ 2 "Felipinho Asklepios"] - [ 3 "Kaneonuskatew Eiran"] - [ 4 "Simcha Yan"] - [ 5 "Quentin Sören"] - [ 6 "Shad Ferdynand"] - [ 7 "Conchúr Tihomir"] - [ 8 "Szymon Theutrich"] - [ 9 "Nils Gotam"] - [10 "Frans Hevel"] - [11 "Spiros Teofil"] - [12 "Kfir Caj"] - [13 "Dwight Gresham"] - [14 "Broen Olujimi"] - [15 "Rüstem Hebel"]]} - ;; Filter out the timestamps from the results since they're hard to test :/ - (qp.test/format-rows-by [int identity] - (qp.test/rows-and-cols - (data/run-mbql-query users - {:order-by [[:asc $id]]})))) +(deftest sensitive-fields-test + (datasets/test-drivers (qp.test/normal-drivers) + (testing "Make sure :sensitive information fields are never returned by the QP" + (is (= {:cols (qp.test/expected-cols :users [:id :name :last_login]) + :rows [[ 1 "Plato Yeshua"] + [ 2 "Felipinho Asklepios"] + [ 3 "Kaneonuskatew Eiran"] + [ 4 "Simcha Yan"] + [ 5 "Quentin Sören"] + [ 6 "Shad Ferdynand"] + [ 7 "Conchúr Tihomir"] + [ 8 "Szymon Theutrich"] + [ 9 "Nils Gotam"] + [10 "Frans Hevel"] + [11 "Spiros Teofil"] + [12 "Kfir Caj"] + [13 "Dwight Gresham"] + [14 "Broen Olujimi"] + [15 "Rüstem Hebel"]]} + ;; Filter out the timestamps from the results since they're hard to test :/ + (qp.test/format-rows-by [int identity] + (qp.test/rows-and-cols + (data/run-mbql-query users + {:order-by [[:asc $id]]})))))))) diff --git a/test/metabase/query_processor_test/filter_test.clj b/test/metabase/query_processor_test/filter_test.clj index efe891dab3a527a45ec1f62e0c5fde33aae98d88..621d8f39e336c81188b1c09a119193852d55df62 100644 --- a/test/metabase/query_processor_test/filter_test.clj +++ b/test/metabase/query_processor_test/filter_test.clj @@ -1,8 +1,10 @@ (ns metabase.query-processor-test.filter-test "Tests for the `:filter` clause." - (:require [metabase + (:require [clojure.test :refer :all] + [metabase [driver :as driver] - [query-processor-test :as qp.test]] + [query-processor-test :as qp.test] + [test :as mt]] [metabase.test.data :as data] [metabase.test.data.datasets :as datasets])) @@ -77,29 +79,28 @@ :order-by [[:asc $id]]})))) -;;; FILTER -- "BETWEEN", single subclause (neither "AND" nor "OR") -(qp.test/expect-with-non-timeseries-dbs - [[21 "PizzaHacker" 58 37.7441 -122.421 2] - [22 "Gordo Taqueria" 50 37.7822 -122.484 1]] - (qp.test/formatted-rows :venues - (data/run-mbql-query venues - {:filter [:between $id 21 22] - :order-by [[:asc $id]]}))) - -;;; FILTER -- "BETWEEN" with dates -(qp.test/expect-with-non-timeseries-dbs - {:rows [[29]] - :cols [(qp.test/aggregate-col :count)]} - (do - ;; Prevent an issue with Snowflake were a previous connection's report-timezone setting can affect this test's - ;; results - (when (= :snowflake driver/*driver*) - (driver/notify-database-updated driver/*driver* (data/id))) - (qp.test/rows-and-cols - (qp.test/format-rows-by [int] - (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter [:between [:datetime-field $date :day] "2015-04-01" "2015-05-01"]}))))) +(deftest between-test + (datasets/test-drivers (qp.test/normal-drivers) + (testing ":between filter, single subclause (neither :and nor :or)" + (is (= [[21 "PizzaHacker" 58 37.7441 -122.421 2] + [22 "Gordo Taqueria" 50 37.7822 -122.484 1]] + (qp.test/formatted-rows :venues + (data/run-mbql-query venues + {:filter [:between $id 21 22] + :order-by [[:asc $id]]}))))) + (testing ":between with dates" + (is (= {:rows [[29]] + :cols [(qp.test/aggregate-col :count)]} + (do + ;; Prevent an issue with Snowflake were a previous connection's report-timezone setting can affect this + ;; test's results + (when (= :snowflake driver/*driver*) + (driver/notify-database-updated driver/*driver* (data/id))) + (qp.test/rows-and-cols + (qp.test/format-rows-by [int] + (data/run-mbql-query checkins + {:aggregation [[:count]] + :filter [:between [:datetime-field $date :day] "2015-04-01" "2015-05-01"]}))))))))) ;;; FILTER -- "OR", "<=", "=" (qp.test/expect-with-non-timeseries-dbs @@ -119,34 +120,30 @@ (data/run-mbql-query venues {:filter [:inside $latitude $longitude 10.0649 -165.379 10.0641 -165.371]}))) -;;; FILTER - `is-null` & `not-null` on datetime columns -(qp.test/expect-with-non-timeseries-dbs - [1000] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter [:not-null $date]})))) - -;; Creates a query that uses a field-literal. Normally our test queries will use a field placeholder, but -;; https://github.com/metabase/metabase/issues/7381 is only triggered by a field literal -(qp.test/expect-with-non-timeseries-dbs - [1000] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter ["NOT_NULL" - ["field-id" - ["field-literal" (data/format-name "date") "type/DateTime"]]]})))) - -(qp.test/expect-with-non-timeseries-dbs - true - (let [result (qp.test/first-row (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter [:is-null $date]}))] - ;; Some DBs like Mongo don't return any results at all in this case, and there's no easy workaround - (contains? #{[0] [0M] [nil] nil} result))) +(deftest is-null-test + (mt/test-drivers (mt/normal-drivers) + (let [result (qp.test/first-row (data/run-mbql-query checkins + {:aggregation [[:count]] + :filter [:is-null $date]}))] + ;; Some DBs like Mongo don't return any results at all in this case, and there's no easy workaround + (is (= true + (contains? #{[0] [0M] [nil] nil} result)))))) + +(deftest not-null-test + (mt/test-drivers (mt/normal-drivers) + (is (= [1000] + (qp.test/first-row + (qp.test/format-rows-by [int] + (data/run-mbql-query checkins + {:aggregation [[:count]] + :filter [:not-null $date]}))))) + (testing "Make sure :not-null filters work correctly with field literals (#7381)" + (is (= [1000] + (qp.test/first-row + (qp.test/format-rows-by [int] + (data/run-mbql-query checkins + {:aggregation [[:count]] + :filter [:not-null *date]})))))))) ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -243,35 +240,35 @@ ;;; | NESTED AND/OR CLAUSES | ;;; +----------------------------------------------------------------------------------------------------------------+ -(qp.test/expect-with-non-timeseries-dbs - [[81]] - (qp.test/formatted-rows [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:and - [:!= $price 3] - [:or - [:= $price 1] - [:= $price 2]]]}))) +(defn- count-with-filter-clause* [table-name filter-clause] + (first + (qp.test/first-row + (qp.test/format-rows-by [int] + (data/run-mbql-query nil + {:source-table (data/id table-name) + :aggregation [[:count]] + :filter filter-clause}))))) + +(defmacro ^:private count-with-filter-clause + ([filter-clause] + `(count-with-filter-clause ~'venues ~filter-clause)) + + ([table-name filter-clause] + `(count-with-filter-clause* ~(keyword table-name) (data/$ids ~table-name ~filter-clause)))) ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | = AND != WITH MULTIPLE VALUES | ;;; +----------------------------------------------------------------------------------------------------------------+ -(qp.test/expect-with-non-timeseries-dbs - [[81]] - (qp.test/formatted-rows [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:= $price 1 2]}))) - -(qp.test/expect-with-non-timeseries-dbs - [[19]] - (qp.test/formatted-rows [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:!= $price 1 2]}))) +(deftest equals-and-not-equals-with-extra-args-test + (datasets/test-drivers (qp.test/normal-drivers)) + (testing ":= with >2 args" + (is (= 81 + (count-with-filter-clause [:= $price 1 2])))) + (testing ":!= with >2 args" + (is (= 19 + (count-with-filter-clause [:!= $price 1 2]))))) ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -283,196 +280,91 @@ ;; The majority of these tests aren't necessary since `not` automatically translates them to simpler, logically ;; equivalent expressions but I already wrote them so in this case it doesn't hurt to have a little more test coverage ;; than we need -;; - -;;; = -(qp.test/expect-with-non-timeseries-dbs - [99] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:= $id 1]]})))) - -;;; != -(qp.test/expect-with-non-timeseries-dbs - [1] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:!= $id 1]]})))) -;;; < -(qp.test/expect-with-non-timeseries-dbs - [61] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:< $id 40]]})))) - -;;; > -(qp.test/expect-with-non-timeseries-dbs - [40] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:> $id 40]]})))) - -;;; <= -(qp.test/expect-with-non-timeseries-dbs - [60] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:<= $id 40]]})))) - -;;; >= -(qp.test/expect-with-non-timeseries-dbs - [39] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:>= $id 40]]})))) - -;;; is-null -(qp.test/expect-with-non-timeseries-dbs - [100] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:is-null $id]]})))) - -;;; between -(qp.test/expect-with-non-timeseries-dbs - [89] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:between $id 30 40]]})))) - -;;; inside -(qp.test/expect-with-non-timeseries-dbs - [39] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:inside $latitude $longitude 40 -120 30 -110]]})))) - -;;; starts-with -(qp.test/expect-with-non-timeseries-dbs - [80] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:starts-with $name "T"]]})))) - -;;; contains -(qp.test/expect-with-non-timeseries-dbs - [97] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:contains $name "BBQ"]]})))) - -;;; does-not-contain -;; -;; This should literally be the exact same query as the one above by the time it leaves the Query eXpander, so this is -;; more of a QX test than anything else -(qp.test/expect-with-non-timeseries-dbs - [97] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:does-not-contain $name "BBQ"]})))) - -;;; ends-with -(qp.test/expect-with-non-timeseries-dbs - [87] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:ends-with $name "a"]]})))) -;;; and -(qp.test/expect-with-non-timeseries-dbs - [98] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:and - [:> $id 32] - [:contains $name "BBQ"]]]})))) -;;; or -(qp.test/expect-with-non-timeseries-dbs - [31] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:or - [:> $id 32] - [:contains $name "BBQ"]]]})))) +(deftest not-filter-test + (datasets/test-drivers (qp.test/normal-drivers) + (testing "=" + (is (= 99 + (count-with-filter-clause [:not [:= $id 1]])))) + (testing "!=" + (is (= 1 + (count-with-filter-clause [:not [:!= $id 1]])))) + (testing "<" + (is (= 61 + (count-with-filter-clause [:not [:< $id 40]])))) + (testing ">" + (is (= 40 + (count-with-filter-clause [:not [:> $id 40]])))) + (testing "<=" + (is (= 60 + (count-with-filter-clause [:not [:<= $id 40]])))) + (testing ">=" + (is (= 39 + (count-with-filter-clause [:not [:>= $id 40]])))) + (testing "is-null" + (is (= 100 + (count-with-filter-clause [:not [:is-null $id]])))) + (testing "between" + (is (= 89 + (count-with-filter-clause [:not [:between $id 30 40]])))) + (testing "inside" + (is (= 39 + (count-with-filter-clause [:not [:inside $latitude $longitude 40 -120 30 -110]])))) + (testing "starts-with" + (is (= 80 + (count-with-filter-clause [:not [:starts-with $name "T"]])))) + (testing "contains" + (is (= 97 + (count-with-filter-clause [:not [:contains $name "BBQ"]])))) + (testing "does-not-contain" + (is (= 97 + (count-with-filter-clause [:does-not-contain $name "BBQ"])) + "sanity check — does-not-contain should get converted to `:not` + `:contains` by QP middleware")) + (testing "ends-with" + (is (= 87 + (count-with-filter-clause [:not [:ends-with $name "a"]])))) + (testing "and" + (is (= 98 + (count-with-filter-clause [:not [:and + [:> $id 32] + [:contains $name "BBQ"]]])))) + (testing "or" + (is (= 31 + (count-with-filter-clause [:not [:or + [:> $id 32] + [:contains $name "BBQ"]]])))) + + (testing "nested and/or" + (is (= 96 + (count-with-filter-clause [:not [:or + [:and + [:> $id 32] + [:< $id 35]] + [:contains $name "BBQ"]]])))) + + (testing "nested not" + (is (= 3 + (count-with-filter-clause [:not [:not [:contains $name "BBQ"]]])))) + + (testing "not nested inside and/or" + (is (= 1 + (count-with-filter-clause [:and + [:not [:> $id 32]] + [:contains $name "BBQ"]])))))) -;;; nested and/or -(qp.test/expect-with-non-timeseries-dbs - [96] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:or - [:and - [:> $id 32] - [:< $id 35]] - [:contains $name "BBQ"]]]})))) - -;;; nested not -(qp.test/expect-with-non-timeseries-dbs - [3] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:not [:not [:contains $name "BBQ"]]]})))) -;;; not nested inside and/or -(qp.test/expect-with-non-timeseries-dbs - [1] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query venues - {:aggregation [[:count]] - :filter [:and - [:not [:> $id 32]] - [:contains $name "BBQ"]]})))) - - -;; make sure that filtering with dates truncating to minutes works (#4632) -(qp.test/expect-with-non-timeseries-dbs - [107] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter [:between [:datetime-field $date :minute] "2015-01-01T12:30:00" "2015-05-31"]})))) +;;; +----------------------------------------------------------------------------------------------------------------+ +;;; | Etc | +;;; +----------------------------------------------------------------------------------------------------------------+ -;; make sure that filtering with dates bucketing by weeks works (#4956) -(qp.test/expect-with-non-timeseries-dbs - [7] - (qp.test/first-row - (qp.test/format-rows-by [int] - (data/run-mbql-query checkins - {:aggregation [[:count]] - :filter [:= [:datetime-field $date :week] "2015-06-21T07:00:00.000000000-00:00"]})))) +(deftest etc-test + (datasets/test-drivers (qp.test/normal-drivers) + (testing "make sure that filtering with dates truncating to minutes works (#4632)" + (is (= 107 + (count-with-filter-clause checkins [:between + [:datetime-field $date :minute] + "2015-01-01T12:30:00" + "2015-05-31"])))) + (testing "make sure that filtering with dates bucketing by weeks works (#4956)" + (is (= 7 + (count-with-filter-clause checkins [:= [:datetime-field $date :week] "2015-06-21T07:00:00.000000000-00:00"])))))) diff --git a/test/metabase/query_processor_test/nested_queries_test.clj b/test/metabase/query_processor_test/nested_queries_test.clj index efb0924f1491338de4c244cbfe176dc452ea61f0..6e9a61d270e85f6a332e87cfeccb9028797a8695 100644 --- a/test/metabase/query_processor_test/nested_queries_test.clj +++ b/test/metabase/query_processor_test/nested_queries_test.clj @@ -3,6 +3,7 @@ (:require [clojure.test :refer :all] [expectations :refer [expect]] [honeysql.core :as hsql] + [java-time :as t] [metabase [driver :as driver] [query-processor :as qp] @@ -25,7 +26,7 @@ [toucan.util.test :as tt])) ;; make sure we can do a basic query with MBQL source-query -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries) {:rows [[1 "Red Medicine" 4 10.0646 -165.374 3] [2 "Stout Burgers & Beers" 11 34.0996 -118.329 2] [3 "The Apple Pan" 11 34.0406 -118.428 2] @@ -43,7 +44,7 @@ :limit 5})))) ;; make sure we can do a basic query with a SQL source-query -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries) {:rows [[1 -165.374 4 3 "Red Medicine" 10.0646] [2 -118.329 11 2 "Stout Burgers & Beers" 34.0996] [3 -118.428 11 2 "The Apple Pan" 34.0406] @@ -72,7 +73,7 @@ (qp.test/aggregate-col :count)]}) ;; make sure we can do a query with breakout and aggregation using an MBQL source query -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries) (breakout-results) (qp.test/rows-and-cols (qp.test/format-rows-by [int int] @@ -82,7 +83,7 @@ :breakout [*price]})))) ;; Test including a breakout of a nested query column that follows an FK -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries :foreign-keys) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries :foreign-keys) {:rows [[1 174] [2 474] [3 78] [4 39]] :cols [(qp.test/breakout-col (qp.test/fk-col :checkins :venue_id :venues :price)) (qp.test/aggregate-col :count)]} @@ -97,7 +98,7 @@ ;; Test two breakout columns from the nested query, both following an FK -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries :foreign-keys) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries :foreign-keys) {:rows [[2 33.7701 7] [2 33.8894 8] [2 33.9997 7] @@ -118,7 +119,7 @@ $venue_id->venues.latitude]})))) ;; Test two breakout columns from the nested query, one following an FK the other from the source table -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries :foreign-keys) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries :foreign-keys) {:rows [[1 1 6] [1 2 14] [1 3 13] @@ -139,7 +140,7 @@ :limit 5})))) ;; make sure we can do a query with breakout and aggregation using a SQL source query -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries) (breakout-results :has-source-metadata? false) (qp.test/rows-and-cols (qp.test/format-rows-by [int int] @@ -271,8 +272,8 @@ [:source.PRICE :PRICE]] :from [[venues-source-honeysql :source]] :where [:and - [:>= (hsql/raw "\"source\".\"BIRD.ID\"") #inst "2017-01-01T00:00:00.000000000-00:00"] - [:< (hsql/raw "\"source\".\"BIRD.ID\"") #inst "2017-01-08T00:00:00.000000000-00:00"]] + [:>= (hsql/raw "\"source\".\"BIRD.ID\"") (t/zoned-date-time "2017-01-01T00:00Z[UTC]")] + [:< (hsql/raw "\"source\".\"BIRD.ID\"") (t/zoned-date-time "2017-01-08T00:00Z[UTC]")]] :limit 10}) (qp/query->native (data/mbql-query venues @@ -349,22 +350,22 @@ :limit 10 :filter [:> *sender_id/Integer 3]}))) -;; make sure using a native query with default params as a source works -(expect - {:query "SELECT \"source\".* FROM (SELECT * FROM PRODUCTS WHERE CATEGORY = ? LIMIT 10) \"source\" LIMIT 1048576", - :params ["Widget"]} - (tt/with-temp Card [card {:dataset_query {:database (data/id) - :type :native - :native {:query "SELECT * FROM PRODUCTS WHERE CATEGORY = {{category}} LIMIT 10" - :template-tags {:category {:name "category" - :display_name "Category" - :type "text" - :required true - :default "Widget"}}}}}] - (qp/query->native - {:database (data/id) - :type :query - :query {:source-table (str "card__" (u/get-id card))}}))) +(deftest native-query-with-default-params-as-source-test + (testing "make sure using a native query with default params as a source works" + (is (= {:query "SELECT \"source\".* FROM (SELECT * FROM PRODUCTS WHERE CATEGORY = ? LIMIT 10) \"source\" LIMIT 1048576", + :params ["Widget"]} + (tt/with-temp Card [card {:dataset_query {:database (data/id) + :type :native + :native {:query "SELECT * FROM PRODUCTS WHERE CATEGORY = {{category}} LIMIT 10" + :template-tags {:category {:name "category" + :display_name "Category" + :type "text" + :required true + :default "Widget"}}}}}] + (qp/query->native + {:database (data/id) + :type :query + :query {:source-table (str "card__" (u/get-id card))}})))))) ;; make sure a query using a source query comes back with the correct columns metadata (expect @@ -423,18 +424,19 @@ status results)) -;; make sure using a time interval filter works -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries) - :completed - (tt/with-temp Card [card (mbql-card-def (data/$ids {:source-table $$checkins}))] - (-> (query-with-source-card card - (data/$ids checkins - {:filter [:time-interval *date -30 :day]})) - qp/process-query - completed-status))) +(deftest time-interval-test + (datasets/test-drivers (qp.test/normal-drivers-with-feature :nested-queries) + (testing "make sure using a time interval filter works" + (is (= :completed + (tt/with-temp Card [card (mbql-card-def (data/$ids {:source-table $$checkins}))] + (-> (query-with-source-card card + (data/$ids checkins + {:filter [:time-interval *date -30 :day]})) + qp/process-query + completed-status))))))) ;; make sure that wrapping a field literal in a datetime-field clause works correctly in filters & breakouts -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries) :completed (tt/with-temp Card [card (mbql-card-def (data/$ids {:source-table $$checkins}))] (-> (query-with-source-card card @@ -567,7 +569,7 @@ ;; make sure that if we refer to a Field that is actually inside the source query, the QP is smart enough to figure ;; out what you were referring to and behave appropriately -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries) [[10]] (qp.test/formatted-rows [int] (data/run-mbql-query venues @@ -577,7 +579,7 @@ :filter [:= $category_id 50]}))) ;; make sure that if a nested query includes joins queries based on it still work correctly (#8972) -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries :foreign-keys) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries :foreign-keys) [[31 "Bludso's BBQ" 5 33.8894 -118.207 2] [32 "Boneyard Bistro" 5 34.1477 -118.428 3] [33 "My Brother's Bar-B-Q" 5 34.167 -118.595 2] @@ -594,7 +596,7 @@ :order-by [[:asc $id]]}})))) ;; Make sure we parse datetime strings when compared against type/DateTime field literals (#9007) -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries :foreign-keys) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries :foreign-keys) [[395] [980]] (qp.test/formatted-rows [int] @@ -605,7 +607,7 @@ :filter [:= *date "2014-03-30"]}))) ;; make sure filters in source queries are applied correctly! -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries :foreign-keys) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries :foreign-keys) [["Fred 62" 1] ["Frolic Room" 1]] (qp.test/formatted-rows [str int] @@ -618,10 +620,10 @@ :filter [:starts-with $venue_id->venues.name "F"]}))) ;; Do nested queries work with two of the same aggregation? (#9767) -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries :foreign-keys) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries :foreign-keys) {:rows - [["2014-02-01T00:00:00.000Z" 302 1804] - ["2014-03-01T00:00:00.000Z" 350 2362]] + [["2014-02-01T00:00:00Z" 302 1804] + ["2014-03-01T00:00:00Z" 350 2362]] :cols [(assoc (qp.test/field-literal-col :checkins :date) :unit :month) @@ -645,7 +647,7 @@ :limit 2})))) ;; can you use nested queries that have expressions in them? -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries :foreign-keys :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries :foreign-keys :expressions) [[30] [20]] (qp.test/formatted-rows [int int] (data/run-mbql-query venues @@ -656,7 +658,7 @@ :order-by [[:asc $id]] :limit 2}}))) -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries :foreign-keys :expressions) +(datasets/expect-with-drivers (qp.test/normal-drivers-with-feature :nested-queries :foreign-keys :expressions) [[30] [20]] (tt/with-temp Card [{card-id :id} {:dataset_query (data/mbql-query venues {:fields [[:expression "price-times-ten"]] @@ -673,12 +675,13 @@ ;; currently possible to cast a DateTime field to a year in MBQL, and then cast it a second time in an another query ;; using the first as a source. This is a side-effect of MBQL year bucketing coming back as values like `2016` rather ;; than timestamps -(datasets/expect-with-drivers (qp.test/non-timeseries-drivers-with-feature :nested-queries) - [[(if (= :sqlite driver/*driver*) "2013-01-01" "2013-01-01T00:00:00.000Z")]] - (qp.test/rows - (data/run-mbql-query checkins - {:source-query {:source-table $$checkins - :fields [!year.date] - :order-by [[:asc !year.date]] - :limit 1} - :fields [!year.*date]}))) +(deftest bucketing-already-bucketed-year-test + (datasets/test-drivers (qp.test/normal-drivers-with-feature :nested-queries) + (is (= [[(if (= :sqlite driver/*driver*) "2013-01-01" "2013-01-01T00:00:00Z")]] + (qp.test/rows + (data/run-mbql-query checkins + {:source-query {:source-table $$checkins + :fields [!year.date] + :order-by [[:asc !year.date]] + :limit 1} + :fields [!year.*date]})))))) diff --git a/test/metabase/query_processor_test/parameters_test.clj b/test/metabase/query_processor_test/parameters_test.clj new file mode 100644 index 0000000000000000000000000000000000000000..6c3343f92fc3439b0720737e09fdb1e96c8dbcb8 --- /dev/null +++ b/test/metabase/query_processor_test/parameters_test.clj @@ -0,0 +1,133 @@ +(ns metabase.query-processor-test.parameters-test + "Tests for support for parameterized queries in drivers that support it. (There are other tests for parameter support + in various places; these are mainly for high-level verification that parameters are working.)" + (:require [cheshire + [core :as json] + [generate :as json.generate]] + [clojure + [string :as str] + [test :refer :all]] + [clojure.tools.logging :as log] + [metabase + [driver :as driver] + [models :refer [Field]] + [query-processor :as qp] + [test :as mt] + [util :as u]]) + (:import com.fasterxml.jackson.core.JsonGenerator)) + +(defmulti native-count-query + "Generate a native query for the count of rows in `table` matching a set of conditions defined by `field->type+value`, + which looks like + + {field-name [param-type param-value]} + + e.g. + + (native-count-query :mongo :venues {:price [:number 2]})" + ^{:arglists '([driver table field->type+value])} + driver/dispatch-on-initialized-driver + :hierarchy #'driver/hierarchy) + +;; TODO - these should go in test extensions namespaces, not here + +(defmethod native-count-query :sql + [driver table field->type+value] + (driver/with-driver driver + (let [mbql-query (mt/mbql-query nil + {:source-table (mt/id table) + :aggregation [[:count]] + :filter (into [:and] + (for [[i [field]] (map-indexed vector field->type+value)] + [:= [:field-id (mt/id table field)] i]))}) + {:keys [query]} (qp/query->native mbql-query) + query (reduce + (fn [query [field]] + ;; TODO — currently only supports one field + (str/replace query (re-pattern #"= .*") (format "= {{%s}}" (name field)))) + query + field->type+value)] + (log/tracef "%s\n->\n%s\n->\n%s" + (pr-str (list 'native-count-query driver table field->type+value)) + (pr-str mbql-query) + query) + {:query query}))) + +(defn- json-raw + "Wrap a string so it will be spliced directly into resulting JSON as-is. Analogous to HoneySQL `raw`." + [^String s] + (reify json.generate/JSONable + (to-json [_ generator] + (.writeRawValue ^JsonGenerator generator s)))) + +(deftest json-raw-test + (testing "Make sure the `json-raw` util fn actually works the way we expect it to" + (is (= "{\"x\":{{param}}}" + (json/generate-string {:x (json-raw "{{param}}")}))))) + +(defmethod native-count-query :mongo + [driver table field->type+value] + (driver/with-driver driver + {:projections [:count] + :query (json/generate-string + [{:$match (into {} (for [[field [param-type]] field->type+value + :let [base-type (:base_type (Field (mt/id table field)))]] + [(name field) (json-raw (format "{{%s}}" (name field)))]))} + {:$group {"_id" nil, "count" {:$sum 1}}} + {:$sort {"_id" 1}} + {:$project {"_id" false, "count" true}}]) + :collection (name table)})) + +(defn- count-query [table field->type+value {:keys [defaults?]}] + {:database (mt/id) + :type :native + :native (assoc (native-count-query driver/*driver* table field->type+value) + :template-tags (into {} (for [[field [param-type v]] field->type+value] + [field (cond-> {:name (name field) + :display-name (name field) + :type (or (namespace param-type) + (name param-type))} + defaults? (assoc :default v))]))) + :parameters (when-not defaults? + (for [[field [param-type v]] field->type+value] + {:type param-type + :target [:variable [:template-tag (name field)]] + :value v}))}) + +(deftest param-test + (mt/test-drivers (mt/normal-drivers-with-feature :native-parameters) + (doseq [[message {:keys [expected-count table param-name param-type value exclude-drivers]}] + {"text params" {:expected-count 1 + :table :venues + :param-name :name + :param-type :text + :value "In-N-Out Burger"} + "number params" {:expected-count 22 + :table :venues + :param-name :price + :param-type :number + :value "1"} + "date params" {:expected-count 1 + ;; FIXME — This is not currently working on SQLite, probably because SQLite's + ;; implementation of temporal types is wacko. + :exclude-drivers #{:sqlite} + :table :users + :param-name :last_login + :param-type :date/single + :value "2014-08-02T09:30Z"}} + :when (not (contains? exclude-drivers driver/*driver*))] + (testing (str "\n" message) + (doseq [[message options] {"Query with all supplied parameters" nil + "Query using default values" {:defaults? true}}] + (testing (str "\n" message) + (let [query (count-query table {param-name [param-type value]} options)] + (testing (str "\nquery =\n" (u/pprint-to-str query)) + (is (= expected-count + (ffirst + (mt/formatted-rows [int] + (qp/process-query query)))) + (format "count with of %s with %s = %s should be %d" + (name table) + (name param-name) + value + expected-count)))))))))) diff --git a/test/metabase/query_processor_test/time_field_test.clj b/test/metabase/query_processor_test/time_field_test.clj index 103f50e3496c48819d6440c3203010e8e67449fa..9c8805973c24d846e40e6b99c2d792012457b2f4 100644 --- a/test/metabase/query_processor_test/time_field_test.clj +++ b/test/metabase/query_processor_test/time_field_test.clj @@ -1,92 +1,84 @@ (ns metabase.query-processor-test.time-field-test - (:require [metabase + (:require [clojure.test :refer :all] + [metabase [driver :as driver] [query-processor-test :as qpt]] [metabase.test [data :as data] - [util :as tu]])) + [util :as tu]] + [metabase.test.data.datasets :as datasets])) -(defmacro ^:private time-query [additional-clauses] - `(qpt/rows - (data/dataset ~'test-data-with-time - (data/run-mbql-query users - ~(merge - '{:fields [$id $name $last_login_time] - :order-by [[:asc $id]]} - additional-clauses))))) +(defn- time-query [filter-type & filter-args] + (qpt/formatted-rows [int identity identity] + (data/dataset test-data-with-time + (data/run-mbql-query users + {:fields [$id $name $last_login_time] + :order-by [[:asc $id]] + :filter (into [filter-type $last_login_time] filter-args)})))) -;; Basic between query on a time field -(qpt/expect-with-non-timeseries-dbs-except #{:oracle :mongo :redshift :sparksql} - (if (= :sqlite driver/*driver*) - [[1 "Plato Yeshua" "08:30:00"] - [4 "Simcha Yan" "08:30:00"]] +;; TIMEZONE FIXME +(def ^:private skip-time-test-drivers + #{:oracle :mongo :redshift :sparksql}) - [[1 "Plato Yeshua" "08:30:00.000Z"] - [4 "Simcha Yan" "08:30:00.000Z"]]) - (time-query {:filter [:between $last_login_time "08:00:00" "09:00:00"]})) +(deftest basic-test + (datasets/test-drivers (qpt/normal-drivers-except skip-time-test-drivers) + (doseq [[message [start end]] {"Basic between query on a time field" + ["08:00:00" "09:00:00"] -;; Basic between query on a time field with milliseconds -(qpt/expect-with-non-timeseries-dbs-except #{:oracle :mongo :redshift :sparksql} - (if (= :sqlite driver/*driver*) - [[1 "Plato Yeshua" "08:30:00"] - [4 "Simcha Yan" "08:30:00"]] + "Basic between query on a time field with milliseconds in literal" + ["08:00:00" "09:00:00"]}] + (testing message + (is (= (if (= :sqlite driver/*driver*) + [[1 "Plato Yeshua" "08:30:00"] + [4 "Simcha Yan" "08:30:00"]] - [[1 "Plato Yeshua" "08:30:00.000Z"] - [4 "Simcha Yan" "08:30:00.000Z"]]) - (time-query {:filter [:between $last_login_time "08:00:00.000" "09:00:00.000"]})) + [[1 "Plato Yeshua" "08:30:00Z"] + [4 "Simcha Yan" "08:30:00Z"]]) + (time-query :between start end))))))) -;; Basic > query with a time field -(qpt/expect-with-non-timeseries-dbs-except #{:oracle :mongo :redshift :sparksql} - (if (= :sqlite driver/*driver*) - [[3 "Kaneonuskatew Eiran" "16:15:00"] - [5 "Quentin Sören" "17:30:00"] - [10 "Frans Hevel" "19:30:00"]] +(deftest greater-than-test + (datasets/test-drivers (qpt/normal-drivers-except skip-time-test-drivers) + (is (= (if (= :sqlite driver/*driver*) + [[3 "Kaneonuskatew Eiran" "16:15:00"] + [5 "Quentin Sören" "17:30:00"] + [10 "Frans Hevel" "19:30:00"]] - [[3 "Kaneonuskatew Eiran" "16:15:00.000Z"] - [5 "Quentin Sören" "17:30:00.000Z"] - [10 "Frans Hevel" "19:30:00.000Z"]]) - (time-query {:filter [:> $last_login_time "16:00:00.000Z"]})) + [[3 "Kaneonuskatew Eiran" "16:15:00Z"] + [5 "Quentin Sören" "17:30:00Z"] + [10 "Frans Hevel" "19:30:00Z"]]) + (time-query :> "16:00:00Z"))))) -;; Basic query with an = filter on a time field -(qpt/expect-with-non-timeseries-dbs-except #{:oracle :mongo :redshift :sparksql} - (if (= :sqlite driver/*driver*) - [[3 "Kaneonuskatew Eiran" "16:15:00"]] +(deftest equals-test + (datasets/test-drivers (qpt/normal-drivers-except skip-time-test-drivers) + (is (= (if (= :sqlite driver/*driver*) + [[3 "Kaneonuskatew Eiran" "16:15:00"]] + [[3 "Kaneonuskatew Eiran" "16:15:00Z"]]) + (time-query := "16:15:00Z"))))) - [[3 "Kaneonuskatew Eiran" "16:15:00.000Z"]]) - (time-query {:filter [:= $last_login_time "16:15:00.000Z"]})) +(deftest report-timezone-test + (datasets/test-drivers (qpt/normal-drivers-except skip-time-test-drivers) + (is (= (cond + (= :sqlite driver/*driver*) + [[1 "Plato Yeshua" "08:30:00"] + [4 "Simcha Yan" "08:30:00"]] -;; Query with a time filter and a report timezone -(qpt/expect-with-non-timeseries-dbs-except #{:oracle :mongo :redshift :sparksql} - (cond - (= :sqlite driver/*driver*) - [[1 "Plato Yeshua" "08:30:00"] - [4 "Simcha Yan" "08:30:00"]] + ;; TIMEZONE FIXME — Wack answer + (= :presto driver/*driver*) + [[3 "Kaneonuskatew Eiran" "08:15:00-08:00"]] - ;; This is the correct "answer" to this query, though it doesn't - ;; pass through JDBC. The 08:00 is adjusted to UTC (16:00), which - ;; should yield the third item - (= :presto driver/*driver*) - [[3 "Kaneonuskatew Eiran" "00:15:00.000-08:00"]] + ;; Databases like PostgreSQL ignore timezone information when + ;; using a time field, the result below is what happens when the + ;; 08:00 time is interpreted as UTC, then not adjusted to Pacific + ;; time by the DB + (qpt/supports-report-timezone? driver/*driver*) + ;; TIMEZONE FIXME — the value of this changes based on whether we are in DST. This is B R O K E N + [[1 "Plato Yeshua" "08:30:00-08:00"] + [4 "Simcha Yan" "08:30:00-08:00"]] - ;; It looks like Snowflake is doing this conversion correctly. Snowflake's time field is stored as wall clock time - ;; (vs. PG and others storing it without a timezone). Originally, this time is 16:15 in UTC, which is 8:15 in - ;; pacific time. The other report timezone databases are not doing this timezone conversion. - (= :snowflake driver/*driver*) - [[3 "Kaneonuskatew Eiran" "08:15:00.000-08:00"]] - - ;; Databases like PostgreSQL ignore timezone information when - ;; using a time field, the result below is what happens when the - ;; 08:00 time is interpreted as UTC, then not adjusted to Pacific - ;; time by the DB - (qpt/supports-report-timezone? driver/*driver*) - [[1 "Plato Yeshua" "00:30:00.000-08:00"] - [4 "Simcha Yan" "00:30:00.000-08:00"]] - - :else - [[1 "Plato Yeshua" "08:30:00.000Z"] - [4 "Simcha Yan" "08:30:00.000Z"]]) - (tu/with-temporary-setting-values [report-timezone "America/Los_Angeles"] - (time-query {:filter (into [:between $last_login_time] - (if (qpt/supports-report-timezone? driver/*driver*) - ["08:00:00" "09:00:00"] - ["08:00:00-00:00" "09:00:00-00:00"]))}))) + :else + [[1 "Plato Yeshua" "08:30:00Z"] + [4 "Simcha Yan" "08:30:00Z"]]) + (tu/with-temporary-setting-values [report-timezone "America/Los_Angeles"] + (apply time-query :between (if (qpt/supports-report-timezone? driver/*driver*) + ["08:00:00" "09:00:00"] + ["08:00:00-00:00" "09:00:00-00:00"]))))))) diff --git a/test/metabase/query_processor_test/timezones_test.clj b/test/metabase/query_processor_test/timezones_test.clj index b1e748ac0ebd8fb885cc5b4b55afe3dc80da808d..0b44a8d4e1c2c40124b0fe1a689a566e8a596ab6 100644 --- a/test/metabase/query_processor_test/timezones_test.clj +++ b/test/metabase/query_processor_test/timezones_test.clj @@ -3,6 +3,7 @@ [set :as set] [test :refer :all]] [honeysql.core :as hsql] + [java-time :as t] [metabase [driver :as driver] [query-processor :as qp] @@ -18,8 +19,9 @@ [datasets :as datasets] [sql :as sql.tx]] [metabase.util.honeysql-extensions :as hx] - [toucan.db :as db])) + [toucan.db :as db]) ) +;; TIMEZONE FIXME (def ^:private broken-drivers "The following drivers are broken to some extent -- details listed in the Google Doc, or can be see here: https://circleci.com/workflow-run/856f6dd0-3d95-4732-a56e-1af59e3ae4ba. The goal is to gradually remove these @@ -35,7 +37,7 @@ "Drivers that support setting a Session timezone." [] (set/difference - (set (qp.test/non-timeseries-drivers-with-feature :set-timezone)) + (set (qp.test/normal-drivers-with-feature :set-timezone)) broken-drivers)) (defn- timezone-aware-column-drivers @@ -47,8 +49,8 @@ (deftest result-rows-test (data/dataset test-data-with-timezones (datasets/test-drivers (timezone-aware-column-drivers) - (is (= [[12 "2014-07-03T01:30:00.000Z"] - [10 "2014-07-03T19:30:00.000Z"]] + (is (= [[12 "2014-07-03T01:30:00Z"] + [10 "2014-07-03T19:30:00Z"]] (qp.test/formatted-rows [int identity] (data/run-mbql-query users {:fields [$id $last_login] @@ -56,9 +58,9 @@ :order-by [[:asc $last_login]]}))) "Basic sanity check: make sure the rows come back with the values we'd expect without setting report-timezone")) (datasets/test-drivers (set-timezone-drivers) - (doseq [[timezone expected-rows] {"UTC" [[12 "2014-07-03T01:30:00.000Z"] - [10 "2014-07-03T19:30:00.000Z"]] - "US/Pacific" [[10 "2014-07-03T12:30:00.000-07:00"]]}] + (doseq [[timezone expected-rows] {"UTC" [[12 "2014-07-03T01:30:00Z"] + [10 "2014-07-03T19:30:00Z"]] + "US/Pacific" [[10 "2014-07-03T12:30:00-07:00"]]}] (tu/with-temporary-setting-values [report-timezone timezone] (is (= expected-rows (qp.test/formatted-rows [int identity] @@ -66,30 +68,29 @@ {:fields [$id $last_login] :filter [:= $last_login "2014-07-03"] :order-by [[:asc $last_login]]}))) - (format "There should be %d checkins on July 30th in the %s timezone" (count expected-rows) timezone))))))) + (format "There should be %d checkins on July 3rd in the %s timezone" (count expected-rows) timezone))))))) (deftest filter-test (data/dataset test-data-with-timezones (datasets/test-drivers (set-timezone-drivers) (tu/with-temporary-setting-values [report-timezone "America/Los_Angeles"] - (is (= [[6 "Shad Ferdynand" "2014-08-02T05:30:00.000-07:00"]] + (is (= [[6 "Shad Ferdynand" "2014-08-02T05:30:00-07:00"]] (qp.test/formatted-rows [int identity identity] (data/run-mbql-query users {:filter [:between $last_login "2014-08-02T03:00:00.000000" "2014-08-02T06:00:00.000000"]}))) (str "If MBQL datetime literal strings do not explicitly specify a timezone, they should be parsed as if " "in the current reporting timezone (Pacific in this case)")) - (is (= [[6 "Shad Ferdynand" "2014-08-02T05:30:00.000-07:00"]] + (is (= [[6 "Shad Ferdynand" "2014-08-02T05:30:00-07:00"]] (qp.test/formatted-rows [int identity identity] (data/run-mbql-query users {:filter [:between $last_login "2014-08-02T10:00:00.000000Z" "2014-08-02T13:00:00.000000Z"]}))) "MBQL datetime literal strings that include timezone should be parsed in it regardless of report timezone"))) - (testing "UTC timezone" (let [run-query (fn [] (qp.test/formatted-rows [int identity identity] (data/run-mbql-query users {:filter [:between $last_login "2014-08-02T10:00:00.000000" "2014-08-02T13:00:00.000000"]}))) - utc-results [[6 "Shad Ferdynand" "2014-08-02T12:30:00.000Z"]]] + utc-results [[6 "Shad Ferdynand" "2014-08-02T12:30:00Z"]]] (datasets/test-drivers (set-timezone-drivers) (is (= utc-results (tu/with-temporary-setting-values [report-timezone "UTC"] @@ -123,7 +124,7 @@ [:id :name :last_login]) :from [(table-identifier :users)] :where [:between - (hx/cast :date (field-identifier :users :last_login)) + (field-identifier :users :last_login) (hsql/raw "{{date1}}") (hsql/raw "{{date2}}")] :order-by [[(field-identifier :users :id) :asc]]}) @@ -170,16 +171,68 @@ ;; parameters always get `date` bucketing so doing something the between stuff we do below is basically just going ;; to match anything with a `2014-08-02` date (datasets/test-drivers (set-timezone-drivers) - (data/dataset test-data-with-timezones - (tu/with-temporary-setting-values [report-timezone "America/Los_Angeles"] - (testing "Native dates should be parsed with the report timezone" - (doseq [[params-description query] (native-params-queries)] - (testing (format "Query with %s" params-description) - (is (= [[6 "Shad Ferdynand" "2014-08-02T05:30:00.000-07:00"] - [7 "Conchúr Tihomir" "2014-08-02T02:30:00.000-07:00"]] - (qp.test/formatted-rows [int identity identity] - (qp/process-query - (merge - {:database (data/id) - :type :native} - query)))))))))))) + (when (driver/supports? driver/*driver* :native-parameters) + (data/dataset test-data-with-timezones + (tu/with-temporary-setting-values [report-timezone "America/Los_Angeles"] + (testing "Native dates should be parsed with the report timezone" + (doseq [[params-description query] (native-params-queries)] + (testing (format "Query with %s" params-description) + (is (= [[6 "Shad Ferdynand" "2014-08-02T05:30:00-07:00"] + [7 "Conchúr Tihomir" "2014-08-02T02:30:00-07:00"]] + (qp.test/formatted-rows [int identity identity] + (qp/process-query + (merge + {:database (data/id) + :type :native} + query))))))))))))) + + + +;; Make sure TIME values are handled consistently (#10366) +(defn- attempts [] + (zipmap + [:date :time :datetime :time-ltz :time-tz :datetime-ltz :datetime-tz :datetime-tz-id] + (qp.test/first-row + (qp/process-query + (data/query attempts + {:query {:fields [$date $time $datetime $time-ltz $time-tz $datetime-ltz $datetime-tz $datetime-tz-id] + :filter [:= $id 1]} + :middleware {:format-rows? false}}))))) + +(defn- driver-distinguishes-between-base-types? + "True if the current distinguishes between two base types when loading data in test datasets. + TODO — how is this supposed to work for MongoDB?" + [base-type-1 base-type-2] + (not= (sql.tx/field-base-type->sql-type driver/*driver* base-type-1) + (sql.tx/field-base-type->sql-type driver/*driver* base-type-2))) + +(defn- supports-time-with-time-zone? [] (driver-distinguishes-between-base-types? :type/TimeWithTZ :type/Time)) +(defn- supports-time-with-offset? [] (driver-distinguishes-between-base-types? :type/TimeWithZoneOffset :type/TimeWithTZ)) +(defn- supports-datetime-with-offset? [] (driver-distinguishes-between-base-types? :type/DateTimeWithZoneOffset :type/DateTimeWithTZ)) +(defn- supports-datetime-with-zone-id? [] (driver-distinguishes-between-base-types? :type/DateTimeWithZoneID :type/DateTimeWithTZ)) + +(defn- expected-attempts [] + (merge + {:date (t/local-date "2019-11-01") + :time (t/local-time "00:23:18.331") + :datetime (t/local-date-time "2019-11-01T00:23:18.331") + :datetime-ltz (t/offset-date-time "2019-11-01T07:23:18.331Z")} + (when (supports-time-with-time-zone?) + {:time-ltz (t/offset-time "07:23:18.331Z")}) + (when (supports-time-with-offset?) + {:time-tz (t/offset-time "00:23:18.331-07:00")}) + (when (supports-datetime-with-offset?) + {:datetime-tz (t/offset-date-time "2019-11-01T00:23:18.331-07:00")}) + (when (supports-datetime-with-zone-id?) + {:datetime-tz-id (t/zoned-date-time "2019-11-01T00:23:18.331-07:00[America/Los_Angeles]")}))) + +(deftest time-timezone-handling-test + ;; Actual value : "2019-11-01T00:23:18.331-07:00[America/Los_Angeles]" + ;; Oracle doesn't have a time type + (datasets/test-drivers (set-timezone-drivers) + (data/dataset attempted-murders + (doseq [timezone [nil "US/Pacific" "US/Eastern" "Asia/Hong_Kong"]] + (tu/with-temporary-setting-values [report-timezone timezone] + (let [expected (expected-attempts)] + (is (= expected + (select-keys (attempts) (keys expected)))))))))) diff --git a/test/metabase/query_processor_test/unix_timestamp_test.clj b/test/metabase/query_processor_test/unix_timestamp_test.clj index 395008e824c70d78335c1fd44cf640243a4d58d9..642599248f55be15fd27efc57168e04293c0b639 100644 --- a/test/metabase/query_processor_test/unix_timestamp_test.clj +++ b/test/metabase/query_processor_test/unix_timestamp_test.clj @@ -1,81 +1,83 @@ (ns metabase.query-processor-test.unix-timestamp-test "Tests for UNIX timestamp support." - (:require [metabase + (:require [clojure.test :refer :all] + [metabase [driver :as driver] [query-processor-test :as qp.test :refer :all]] [metabase.test [data :as data] - [util :as tu]])) + [util :as tu]] + [metabase.test.data.datasets :as datasets])) -;; There were 10 "sad toucan incidents" on 2015-06-02 in UTC -(expect-with-non-timeseries-dbs - 10 +(deftest filter-test + (datasets/test-drivers (qp.test/normal-drivers) + (is (= 10 + ;; There's a race condition with this test. If we happen to grab a + ;; connection that is in a session with the timezone set to pacific, + ;; we'll get 9 results even when the above if statement is true. It + ;; seems to be pretty rare, but explicitly specifying UTC will make + ;; the issue go away + (tu/with-temporary-setting-values [report-timezone "UTC"] + (count (rows (data/dataset sad-toucan-incidents + (data/run-mbql-query incidents + {:filter [:= [:datetime-field $timestamp :day] "2015-06-02"] + :order-by [[:asc $timestamp]]})))))) + "There were 10 'sad toucan incidents' on 2015-06-02 in UTC"))) - ;; There's a race condition with this test. If we happen to grab a - ;; connection that is in a session with the timezone set to pacific, - ;; we'll get 9 results even when the above if statement is true. It - ;; seems to be pretty rare, but explicitly specifying UTC will make - ;; the issue go away - (tu/with-temporary-setting-values [report-timezone "UTC"] - (count (rows (data/dataset sad-toucan-incidents - (data/run-mbql-query incidents - {:filter [:= [:datetime-field $timestamp :day] "2015-06-02"] - :order-by [[:asc $timestamp]]})))))) +(deftest results-test + (datasets/test-drivers (qp.test/normal-drivers) + (is (= (cond + (= :sqlite driver/*driver*) + [["2015-06-01" 6] + ["2015-06-02" 10] + ["2015-06-03" 4] + ["2015-06-04" 9] + ["2015-06-05" 9] + ["2015-06-06" 8] + ["2015-06-07" 8] + ["2015-06-08" 9] + ["2015-06-09" 7] + ["2015-06-10" 9]] -(expect-with-non-timeseries-dbs - (cond - (= :sqlite driver/*driver*) - [["2015-06-01" 6] - ["2015-06-02" 10] - ["2015-06-03" 4] - ["2015-06-04" 9] - ["2015-06-05" 9] - ["2015-06-06" 8] - ["2015-06-07" 8] - ["2015-06-08" 9] - ["2015-06-09" 7] - ["2015-06-10" 9]] + (qp.test/tz-shifted-driver-bug? driver/*driver*) + [["2015-06-01T00:00:00-07:00" 6] + ["2015-06-02T00:00:00-07:00" 10] + ["2015-06-03T00:00:00-07:00" 4] + ["2015-06-04T00:00:00-07:00" 9] + ["2015-06-05T00:00:00-07:00" 9] + ["2015-06-06T00:00:00-07:00" 8] + ["2015-06-07T00:00:00-07:00" 8] + ["2015-06-08T00:00:00-07:00" 9] + ["2015-06-09T00:00:00-07:00" 7] + ["2015-06-10T00:00:00-07:00" 9]] - (qp.test/tz-shifted-driver-bug? driver/*driver*) - [["2015-06-01T00:00:00.000-07:00" 6] - ["2015-06-02T00:00:00.000-07:00" 10] - ["2015-06-03T00:00:00.000-07:00" 4] - ["2015-06-04T00:00:00.000-07:00" 9] - ["2015-06-05T00:00:00.000-07:00" 9] - ["2015-06-06T00:00:00.000-07:00" 8] - ["2015-06-07T00:00:00.000-07:00" 8] - ["2015-06-08T00:00:00.000-07:00" 9] - ["2015-06-09T00:00:00.000-07:00" 7] - ["2015-06-10T00:00:00.000-07:00" 9]] + (supports-report-timezone? driver/*driver*) + [["2015-06-01T00:00:00-07:00" 8] + ["2015-06-02T00:00:00-07:00" 9] + ["2015-06-03T00:00:00-07:00" 9] + ["2015-06-04T00:00:00-07:00" 4] + ["2015-06-05T00:00:00-07:00" 11] + ["2015-06-06T00:00:00-07:00" 8] + ["2015-06-07T00:00:00-07:00" 6] + ["2015-06-08T00:00:00-07:00" 10] + ["2015-06-09T00:00:00-07:00" 6] + ["2015-06-10T00:00:00-07:00" 10]] - (supports-report-timezone? driver/*driver*) - [["2015-06-01T00:00:00.000-07:00" 8] - ["2015-06-02T00:00:00.000-07:00" 9] - ["2015-06-03T00:00:00.000-07:00" 9] - ["2015-06-04T00:00:00.000-07:00" 4] - ["2015-06-05T00:00:00.000-07:00" 11] - ["2015-06-06T00:00:00.000-07:00" 8] - ["2015-06-07T00:00:00.000-07:00" 6] - ["2015-06-08T00:00:00.000-07:00" 10] - ["2015-06-09T00:00:00.000-07:00" 6] - ["2015-06-10T00:00:00.000-07:00" 10]] - - :else - [["2015-06-01T00:00:00.000Z" 6] - ["2015-06-02T00:00:00.000Z" 10] - ["2015-06-03T00:00:00.000Z" 4] - ["2015-06-04T00:00:00.000Z" 9] - ["2015-06-05T00:00:00.000Z" 9] - ["2015-06-06T00:00:00.000Z" 8] - ["2015-06-07T00:00:00.000Z" 8] - ["2015-06-08T00:00:00.000Z" 9] - ["2015-06-09T00:00:00.000Z" 7] - ["2015-06-10T00:00:00.000Z" 9]]) - - (tu/with-temporary-setting-values [report-timezone "America/Los_Angeles"] - (->> (data/dataset sad-toucan-incidents - (data/run-mbql-query incidents - {:aggregation [[:count]] - :breakout [$timestamp] - :limit 10})) - rows (format-rows-by [identity int])))) + :else + [["2015-06-01T00:00:00Z" 6] + ["2015-06-02T00:00:00Z" 10] + ["2015-06-03T00:00:00Z" 4] + ["2015-06-04T00:00:00Z" 9] + ["2015-06-05T00:00:00Z" 9] + ["2015-06-06T00:00:00Z" 8] + ["2015-06-07T00:00:00Z" 8] + ["2015-06-08T00:00:00Z" 9] + ["2015-06-09T00:00:00Z" 7] + ["2015-06-10T00:00:00Z" 9]]) + (tu/with-temporary-setting-values [report-timezone "America/Los_Angeles"] + (->> (data/dataset sad-toucan-incidents + (data/run-mbql-query incidents + {:aggregation [[:count]] + :breakout [$timestamp] + :limit 10})) + rows (format-rows-by [identity int]))))))) diff --git a/test/metabase/sync/analyze/classify_test.clj b/test/metabase/sync/analyze/classify_test.clj index eb035e456bfe41197d464010643d25be9f90b516..01c93f27eb95c5c13ae89388e4d8316aabbdbdcb 100644 --- a/test/metabase/sync/analyze/classify_test.clj +++ b/test/metabase/sync/analyze/classify_test.clj @@ -7,7 +7,6 @@ [metabase.sync.analyze.classify :as classify] [metabase.sync.interface :as i] [metabase.util :as u] - [metabase.util.date :as du] [toucan.util.test :as tt])) ;; Check that only the right Fields get classified @@ -23,7 +22,7 @@ Field [_ {:table_id (u/get-id table) :name "Current fingerprint, already analzed" :fingerprint_version Short/MAX_VALUE - :last_analyzed (du/->Timestamp #inst "2017-08-09")}] + :last_analyzed #t "2017-08-09"}] Field [_ {:table_id (u/get-id table) :name "Old fingerprint, not analyzed" :fingerprint_version (dec Short/MAX_VALUE) @@ -31,7 +30,7 @@ Field [_ {:table_id (u/get-id table) :name "Old fingerprint, already analzed" :fingerprint_version (dec Short/MAX_VALUE) - :last_analyzed (du/->Timestamp #inst "2017-08-09")}]] + :last_analyzed #t "2017-08-09"}]] (for [field (#'classify/fields-to-classify table)] (:name field))))) diff --git a/test/metabase/sync/analyze/fingerprint/fingerprinters_test.clj b/test/metabase/sync/analyze/fingerprint/fingerprinters_test.clj index abb0bf9e8794374cbd405cf539b59bd86c2e3b0b..e317425b6d45d0578d5f88d0f37157933ad2982c 100644 --- a/test/metabase/sync/analyze/fingerprint/fingerprinters_test.clj +++ b/test/metabase/sync/analyze/fingerprint/fingerprinters_test.clj @@ -1,58 +1,56 @@ (ns metabase.sync.analyze.fingerprint.fingerprinters-test - (:require [expectations :refer :all] + (:require [clojure.test :refer :all] [metabase.models.field :as field] - [metabase.sync.analyze.fingerprint.fingerprinters :refer :all] - [metabase.util.date :as du])) + [metabase.sync.analyze.fingerprint.fingerprinters :refer :all])) -(expect - {:global {:distinct-count 3 - :nil% 0.0} - :type {:type/DateTime {:earliest (du/date->iso-8601 #inst "2013") - :latest (du/date->iso-8601 #inst "2018")}}} - (transduce identity - (fingerprinter (field/map->FieldInstance {:base_type :type/DateTime})) - [#inst "2013" #inst "2018" #inst "2015"])) +(deftest fingerprint-temporal-values-test + (is (= {:global {:distinct-count 4 + :nil% 0.5} + :type {:type/DateTime {:earliest "2013-01-01" + :latest "2018-01-01"}}} + (transduce identity + (fingerprinter (field/map->FieldInstance {:base_type :type/DateTime})) + [#t "2013" nil #t "2018" nil nil #t "2015"]))) + (testing "nil temporal values" + {:global {:distinct-count 1 + :nil% 1.0} + :type {:type/DateTime {:earliest nil + :latest nil}}} + (transduce identity + (fingerprinter (field/map->FieldInstance {:base_type :type/DateTime})) + (repeat 10 nil)))) -;; Correctly disambiguate multiple competing multimethods -(expect - {:global {:distinct-count 3 - :nil% 0.0} - :type {:type/DateTime {:earliest (du/date->iso-8601 #inst "2013") - :latest (du/date->iso-8601 #inst "2018")}}} - (transduce identity - (fingerprinter (field/map->FieldInstance {:base_type :type/DateTime - :special_type :type/FK})) - [#inst "2013" #inst "2018" #inst "2015"])) +(deftest disambiguate-test + (testing "We should correctly disambiguate multiple competing multimethods (DateTime and FK in this case)" + (is (= {:global {:distinct-count 3 + :nil% 0.0} + :type {:type/DateTime {:earliest "2013-01-01" + :latest "2018-01-01"}}} + (transduce identity + (fingerprinter (field/map->FieldInstance {:base_type :type/DateTime + :special_type :type/FK})) + [#t "2013" #t "2018" #t "2015"]))))) -(expect - {:global {:distinct-count 1 - :nil% 1.0} - :type {:type/DateTime {:earliest nil - :latest nil}}} - (transduce identity - (fingerprinter (field/map->FieldInstance {:base_type :type/DateTime})) - (repeat 10 nil))) +(deftest fingerprint-numeric-values-test + (is (= {:global {:distinct-count 3 + :nil% 0.0} + :type {:type/Number {:avg 2.0 + :min 1.0 + :max 3.0 + :q1 1.25 + :q3 2.75 + :sd 1.0}}} + (transduce identity + (fingerprinter (field/map->FieldInstance {:base_type :type/Number})) + [1.0 2.0 3.0])))) -(expect - {:global {:distinct-count 3 - :nil% 0.0} - :type {:type/Number {:avg 2.0 - :min 1.0 - :max 3.0 - :q1 1.25 - :q3 2.75 - :sd 1.0}}} - (transduce identity - (fingerprinter (field/map->FieldInstance {:base_type :type/Number})) - [1.0 2.0 3.0])) - -(expect - {:global {:distinct-count 5 - :nil% 0.0} - :type {:type/Text {:percent-json 0.2, - :percent-url 0.0, - :percent-email 0.0, - :average-length 6.4}}} - (transduce identity - (fingerprinter (field/map->FieldInstance {:base_type :type/Text})) - ["metabase" "more" "like" "metabae" "[1, 2, 3]"])) +(deftest fingerprint-string-values-test + (is (= {:global {:distinct-count 5 + :nil% 0.0} + :type {:type/Text {:percent-json 0.2 + :percent-url 0.0 + :percent-email 0.0 + :average-length 6.4}}} + (transduce identity + (fingerprinter (field/map->FieldInstance {:base_type :type/Text})) + ["metabase" "more" "like" "metabae" "[1, 2, 3]"])))) diff --git a/test/metabase/sync/analyze/fingerprint/insights_test.clj b/test/metabase/sync/analyze/fingerprint/insights_test.clj index c2be0ca102796cd5aa8b14f09a00094999dfcf50..39864469411daf603c8e758621eaa9a4622927c3 100644 --- a/test/metabase/sync/analyze/fingerprint/insights_test.clj +++ b/test/metabase/sync/analyze/fingerprint/insights_test.clj @@ -1,38 +1,29 @@ (ns metabase.sync.analyze.fingerprint.insights-test - (:require [expectations :refer :all] + (:require [clojure.test :refer :all] + [expectations :refer :all] [metabase.sync.analyze.fingerprint.insights :as i :refer :all])) (def ^:private cols [{:base_type :type/DateTime} {:base_type :type/Number}]) -(expect - 700 - (-> (transduce identity (insights cols) [["2014" 100] - ["2015" 200] - ["2016" nil] - [nil 300] - [nil nil] - ["2017" 700]]) - first - :last-value)) - -(expect - 700 - (-> (transduce identity (insights cols) [["2017" 700]]) - first - :last-value)) - -;; Here we just make sure we don't blow up on empty input -(expect - nil - (-> (transduce identity (insights cols) []) - first - :last-value)) - -(expect - nil - (-> (transduce identity (insights cols) [[nil nil]]) - first - :last-value)) +(deftest last-value-test + (doseq [{:keys [rows expected]} [{:rows [["2014" 100] + ["2015" 200] + ["2016" nil] + [nil 300] + [nil nil] + ["2017" 700]] + :expected 700} + {:rows [["2017" 700]] + :expected 700} + {:rows [] + :expected nil} + {:rows [[nil nil]] + :expected nil}]] + (testing (format "rows = %s" rows) + (is (= expected + (-> (transduce identity (insights cols) rows) + first + :last-value)))))) (expect (transduce identity @@ -42,50 +33,39 @@ ["2015-01-01T00:00:00Z" 200]])) (defn- inst->day - [inst] - (some-> inst (.getTime) (#'i/ms->day))) + [t] + (some-> t (#'i/->millis-from-epoch) (#'i/ms->day))) (defn- valid-period? ([from to] (valid-period? from to (#'i/infer-unit (inst->day from) (inst->day to)))) ([from to period] (boolean (#'i/valid-period? (inst->day from) (inst->day to) period)))) -(expect - true - (valid-period? #inst "2015-01" #inst "2015-02")) -(expect - true - (valid-period? #inst "2015-02" #inst "2015-03")) -(expect - false - (valid-period? #inst "2015-01" #inst "2015-03")) -(expect - false - (valid-period? #inst "2015-01" nil)) -(expect - true - (valid-period? #inst "2015-01-01" #inst "2015-01-02")) -(expect - true - (valid-period? #inst "2015-01-01" #inst "2015-01-08")) -(expect - true - (valid-period? #inst "2015-01-01" #inst "2015-04-03")) -(expect - true - (valid-period? #inst "2015" #inst "2016")) -(expect - false - (valid-period? #inst "2015-01-01" #inst "2015-01-09")) -(expect - true - (valid-period? #inst "2015-01-01" #inst "2015-04-03" :quarter)) -(expect - false - (valid-period? #inst "2015-01-01" #inst "2015-04-03" :month)) -(expect - false - (valid-period? #inst "2015-01" #inst "2015-02" nil)) +(deftest valid-period-test + (is (= true + (valid-period? #t "2015-01" #t "2015-02"))) + (is (= true + (valid-period? #t "2015-02" #t "2015-03"))) + (is (= false + (valid-period? #t "2015-01" #t "2015-03"))) + (is (= false + (valid-period? #t "2015-01" nil))) + (is (= true + (valid-period? #t "2015-01-01" #t "2015-01-02"))) + (is (= true + (valid-period? #t "2015-01-01" #t "2015-01-08"))) + (is (= true + (valid-period? #t "2015-01-01" #t "2015-04-03"))) + (is (= true + (valid-period? #t "2015" #t "2016"))) + (is (= false + (valid-period? #t "2015-01-01" #t "2015-01-09"))) + (is (= true + (valid-period? #t "2015-01-01" #t "2015-04-03" :quarter))) + (is (= false + (valid-period? #t "2015-01-01" #t "2015-04-03" :month))) + (is (= false + (valid-period? #t "2015-01" #t "2015-02" nil)))) ;; Make sure we don't return nosense results like infinitiy coeficients diff --git a/test/metabase/sync/analyze/fingerprint_test.clj b/test/metabase/sync/analyze/fingerprint_test.clj index fe9222f273b92bb5deeea1af48111191a6ff742f..a6f27c01cd81761be9b50109511488fe9dd10825 100644 --- a/test/metabase/sync/analyze/fingerprint_test.clj +++ b/test/metabase/sync/analyze/fingerprint_test.clj @@ -12,7 +12,6 @@ [metabase.sync.analyze.fingerprint.fingerprinters :as fingerprinters] [metabase.sync.interface :as i] [metabase.test.data :as data] - [metabase.util.date :as du] [toucan.db :as db] [toucan.util.test :as tt])) @@ -219,7 +218,7 @@ :table_id (data/id :venues) :fingerprint nil :fingerprint_version 1 - :last_analyzed (du/->Timestamp #inst "2017-08-09")}] + :last_analyzed #t "2017-08-09T00:00:00"}] (with-redefs [i/latest-fingerprint-version 3 metadata-queries/table-rows-sample (constantly [[1] [2] [3] [4] [5]]) fingerprinters/fingerprinter (constantly (fingerprinters/constant-fingerprinter {:experimental {:fake-fingerprint? true}}))] diff --git a/test/metabase/sync/analyze_test.clj b/test/metabase/sync/analyze_test.clj index 47e9db899dc1c4a446fa8d6d2ddb7919c60a2f7e..878063a0a706a50b392a0a34c631795a8077c2b1 100644 --- a/test/metabase/sync/analyze_test.clj +++ b/test/metabase/sync/analyze_test.clj @@ -1,5 +1,6 @@ (ns metabase.sync.analyze-test - (:require [expectations :refer :all] + (:require [clojure.test :refer :all] + [expectations :refer [expect]] [metabase.models [database :refer [Database]] [field :refer [Field]] @@ -10,35 +11,27 @@ [sync-metadata :as sync-metadata]] [metabase.test.data :as data] [metabase.util :as u] - [metabase.util.date :as du] [toucan.db :as db] [toucan.util.test :as tt])) -(def ^:private fake-analysis-completion-date - (du/->Timestamp #inst "2017-08-01")) - -;; Check that Fields do *not* get analyzed if they're not newly created and fingerprint version is current -(expect - ;; PK is ok because it gets marked as part of metadata sync - #{{:name "LONGITUDE", :special_type nil, :last_analyzed fake-analysis-completion-date} - {:name "CATEGORY_ID", :special_type nil, :last_analyzed fake-analysis-completion-date} - {:name "PRICE", :special_type nil, :last_analyzed fake-analysis-completion-date} - {:name "LATITUDE", :special_type nil, :last_analyzed fake-analysis-completion-date} - {:name "NAME", :special_type nil, :last_analyzed fake-analysis-completion-date} - {:name "ID", :special_type :type/PK, :last_analyzed fake-analysis-completion-date}} - (tt/with-temp* [Database [db {:engine "h2", :details (:details (data/db))}] - Table [table {:name "VENUES", :db_id (u/get-id db)}]] - ;; sync the metadata, but DON't do analysis YET - (sync-metadata/sync-table-metadata! table) - ;; now mark all the Tables as analyzed with so they won't be subject to analysis - (db/update-where! Field {:table_id (u/get-id table)} - :last_analyzed fake-analysis-completion-date - :fingerprint_version Short/MAX_VALUE) - ;; ok, NOW run the analysis process - (analyze/analyze-table! table) - ;; check and make sure all the Fields don't have special types and their last_analyzed date didn't change - (set (for [field (db/select [Field :name :special_type :last_analyzed] :table_id (u/get-id table))] - (into {} field))))) +(deftest skip-analysis-of-fields-with-current-fingerprint-version-test + (testing "Check that Fields do *not* get analyzed if they're not newly created and fingerprint version is current" + (data/with-temp-copy-of-db + ;; mark all the Fields as analyzed with so they won't be subject to analysis + (db/update-where! Field {:table_id (data/id :venues)} + :last_analyzed #t "2017-08-01T00:00" + :special_type nil + :fingerprint_version Short/MAX_VALUE) + ;; the type of the value that comes back may differ a bit between different application DBs + (let [analysis-date (db/select-one-field :last_analyzed Field :table_id (data/id :venues))] + ;; ok, NOW run the analysis process + (analyze/analyze-table! (Table (data/id :venues))) + ;; check and make sure all the Fields don't have special types and their last_analyzed date didn't change + ;; PK is ok because it gets marked as part of metadata sync + (is (= (zipmap ["CATEGORY_ID" "ID" "LATITUDE" "LONGITUDE" "NAME" "PRICE"] + (repeat {:special_type nil, :last_analyzed analysis-date})) + (into {} (for [field (db/select [Field :name :special_type :last_analyzed] :table_id (data/id :venues))] + [(:name field) (into {} (dissoc field :name))])))))))) ;; ...but they *SHOULD* get analyzed if they ARE newly created (expcept for PK which we skip) (expect @@ -58,27 +51,26 @@ (set (for [field (db/select [Field :name :special_type :last_analyzed] :table_id (u/get-id table))] (into {} (update field :last_analyzed boolean)))))) -;; Make sure that only the correct Fields get marked as recently analyzed -(expect - #{"Current fingerprint, not analyzed"} - (with-redefs [i/latest-fingerprint-version Short/MAX_VALUE - du/new-sql-timestamp (constantly (du/->Timestamp #inst "1999-01-01"))] - (tt/with-temp* [Table [table] - Field [_ {:table_id (u/get-id table) - :name "Current fingerprint, not analyzed" - :fingerprint_version Short/MAX_VALUE - :last_analyzed nil}] - Field [_ {:table_id (u/get-id table) - :name "Current fingerprint, already analzed" - :fingerprint_version Short/MAX_VALUE - :last_analyzed (du/->Timestamp #inst "2017-08-09")}] - Field [_ {:table_id (u/get-id table) - :name "Old fingerprint, not analyzed" - :fingerprint_version (dec Short/MAX_VALUE) - :last_analyzed nil}] - Field [_ {:table_id (u/get-id table) - :name "Old fingerprint, already analzed" - :fingerprint_version (dec Short/MAX_VALUE) - :last_analyzed (du/->Timestamp #inst "2017-08-09")}]] - (#'analyze/update-fields-last-analyzed! table) - (db/select-field :name Field :last_analyzed (du/new-sql-timestamp))))) +(deftest mark-fields-as-analyzed-test + (testing "Make sure that only the correct Fields get marked as recently analyzed" + (with-redefs [i/latest-fingerprint-version Short/MAX_VALUE] + (tt/with-temp* [Table [table] + Field [_ {:table_id (u/get-id table) + :name "Current fingerprint, not analyzed" + :fingerprint_version Short/MAX_VALUE + :last_analyzed nil}] + Field [_ {:table_id (u/get-id table) + :name "Current fingerprint, already analzed" + :fingerprint_version Short/MAX_VALUE + :last_analyzed #t "2017-08-09T00:00Z"}] + Field [_ {:table_id (u/get-id table) + :name "Old fingerprint, not analyzed" + :fingerprint_version (dec Short/MAX_VALUE) + :last_analyzed nil}] + Field [_ {:table_id (u/get-id table) + :name "Old fingerprint, already analzed" + :fingerprint_version (dec Short/MAX_VALUE) + :last_analyzed #t "2017-08-09T00:00Z"}]] + (#'analyze/update-fields-last-analyzed! table) + (is (= #{"Current fingerprint, not analyzed"} + (db/select-field :name Field :table_id (u/get-id table), :last_analyzed [:> #t "2018-01-01"]))))))) diff --git a/test/metabase/sync/util_test.clj b/test/metabase/sync/util_test.clj index ba9c30300bbbb821c77bb1b5c594a47267011fc8..4fe8081b38406f43591c46ae40054d6286030ad8 100644 --- a/test/metabase/sync/util_test.clj +++ b/test/metabase/sync/util_test.clj @@ -1,8 +1,10 @@ (ns metabase.sync.util-test "Tests for the utility functions shared by all parts of sync, such as the duplicate ops guard." - (:require [clj-time.core :as time] - [clojure.string :as str] - [expectations :refer :all] + (:require [clojure + [string :as str] + [test :refer :all]] + [expectations :refer [expect]] + [java-time :as t] [metabase [driver :as driver] [sync :as sync]] @@ -11,7 +13,6 @@ [task-history :refer [TaskHistory]]] [metabase.sync.util :as sync-util :refer :all] [metabase.test.util :as tu] - [metabase.util.date :as du] [toucan.db :as db] [toucan.util.test :as tt])) @@ -32,28 +33,28 @@ (defmethod driver/describe-table ::concurrent-sync-test [& _] nil) -;; only one sync should be going on at a time -(expect - ;; describe-database gets called twice during a single sync process, once for syncing tables and a second time for - ;; syncing the _metabase_metadata table - 2 - (tt/with-temp* [Database [db {:engine ::concurrent-sync-test}]] - (reset! calls-to-describe-database 0) - ;; start a sync processes in the background. It should take 1000 ms to finish - (let [f1 (future (sync/sync-database! db)) - f2 (do - ;; wait 200 ms to make sure everything is going - (Thread/sleep 200) - ;; Start another in the background. Nothing should happen here because the first is already running - (future (sync/sync-database! db)))] - ;; Start another in the foreground. Again, nothing should happen here because the original should still be - ;; running - (sync/sync-database! db) - ;; make sure both of the futures have finished - (deref f1) - (deref f2) - ;; Check the number of syncs that took place. Should be 2 (just the first) - @calls-to-describe-database))) +(deftest concurrent-sync-test + (testing "only one sync process be going on at a time" + ;; describe-database gets called twice during a single sync process, once for syncing tables and a second time for + ;; syncing the _metabase_metadata table + (tt/with-temp* [Database [db {:engine ::concurrent-sync-test}]] + (reset! calls-to-describe-database 0) + ;; start a sync processes in the background. It should take 1000 ms to finish + (let [f1 (future (sync/sync-database! db)) + f2 (do + ;; wait 200 ms to make sure everything is going + (Thread/sleep 200) + ;; Start another in the background. Nothing should happen here because the first is already running + (future (sync/sync-database! db)))] + ;; Start another in the foreground. Again, nothing should happen here because the original should still be + ;; running + (sync/sync-database! db) + ;; make sure both of the futures have finished + (deref f1) + (deref f2) + ;; Check the number of syncs that took place. Should be 2 (just the first) + (is (= 2 + @calls-to-describe-database)))))) (defn- call-with-operation-info "Call `f` with `log-sync-summary` and `store-sync-summary!` redef'd. For `log-sync-summary`, it intercepts the step @@ -61,20 +62,20 @@ TaskHistory rows. This is useful to validate that the metadata and history is correct as the message might not be logged at all (depending on the logging level) or not stored." [f] - (let [step-info-atom (atom []) + (let [step-info-atom (atom []) created-task-history-ids (atom []) - orig-log-fn (var-get #'metabase.sync.util/log-sync-summary) - orig-store-fn (var-get #'metabase.sync.util/store-sync-summary!)] - (with-redefs [metabase.sync.util/log-sync-summary (fn [operation database {:keys [steps] :as operation-metadata}] - (swap! step-info-atom conj operation-metadata) - (orig-log-fn operation database operation-metadata)) + orig-log-fn @#'metabase.sync.util/log-sync-summary + orig-store-fn @#'metabase.sync.util/store-sync-summary!] + (with-redefs [metabase.sync.util/log-sync-summary (fn [operation database {:keys [steps] :as operation-metadata}] + (swap! step-info-atom conj operation-metadata) + (orig-log-fn operation database operation-metadata)) metabase.sync.util/store-sync-summary! (fn [operation database operation-metadata] (let [result (orig-store-fn operation database operation-metadata)] (swap! created-task-history-ids concat result) result))] (f)) {:operation-results @step-info-atom - :task-history-ids @created-task-history-ids})) + :task-history-ids @created-task-history-ids})) (defn sync-database! "Calls `sync-database!` and returns the the metadata for `step` as the result along with the `TaskHistory` for that @@ -94,9 +95,8 @@ [step-info] (dissoc step-info :start-time :end-time :log-summary-fn)) -(defn- validate-times [m] - (and (-> m :start-time du/is-temporal?) - (-> m :end-time du/is-temporal?))) +(defn- validate-times [{:keys [start-time end-time]}] + (every? (partial instance? java.time.temporal.Temporal) [start-time end-time])) (def ^:private default-task-history {:id true, :db_id true, :started_at true, :ended_at true}) @@ -134,54 +134,60 @@ :step-2-history (fetch-task-history-row step-2-name)}))) (defn- create-test-sync-summary [step-name log-summary-fn] - (let [start (time/now)] + (let [start (t/zoned-date-time)] {:start-time start - :end-time (time/plus start (time/seconds 5)) - :steps [[step-name {:start-time start - :end-time (time/plus start (time/seconds 4)) - :log-summary-fn log-summary-fn}]]})) - -;; Test that we can create the log summary message. This is a big string blob, so validate that it contains the -;; important parts and it doesn't throw an exception -(expect - {:has-operation? true - :has-db-name? true - :has-operation-duration? true - :has-step-name? true - :has-step-duration? true - :has-log-summary-text? true} - (let [operation (tu/random-name) - db-name (tu/random-name) - step-name (tu/random-name) - step-log-text (tu/random-name) - results (#'sync-util/make-log-sync-summary-str operation - (mdb/map->DatabaseInstance {:name db-name}) - (create-test-sync-summary step-name - (fn [step-info] - step-log-text)))] - {:has-operation? (str/includes? results operation) - :has-db-name? (str/includes? results db-name) - :has-operation-duration? (str/includes? results "5.0 s") - :has-step-name? (str/includes? results step-name) - :has-step-duration? (str/includes? results "4.0 s") - :has-log-summary-text? (str/includes? results step-log-text)})) - -;; The `log-summary-fn` part of step info is optional as not all steps have it. Validate that we properly handle that -;; case -(expect - {:has-operation? true - :has-db-name? true - :has-operation-duration? true - :has-step-name? true - :has-step-duration? true} + :end-time (t/plus start (t/seconds 5)) + :steps [[step-name {:start-time start + :end-time (t/plus start (t/seconds 4)) + :log-summary-fn log-summary-fn}]]})) + +(deftest log-summary-message-test (let [operation (tu/random-name) db-name (tu/random-name) - step-name (tu/random-name) - results (#'sync-util/make-log-sync-summary-str operation - (mdb/map->DatabaseInstance {:name db-name}) - (create-test-sync-summary step-name nil))] - {:has-operation? (str/includes? results operation) - :has-db-name? (str/includes? results db-name) - :has-operation-duration? (str/includes? results "5.0 s") - :has-step-name? (str/includes? results step-name) - :has-step-duration? (str/includes? results "4.0 s")})) + step-name (tu/random-name)] + (testing (str "Test that we can create the log summary message. This is a big string blob, so validate that it" + " contains the important parts and it doesn't throw an exception") + (let [step-log-text (tu/random-name) + results (#'sync-util/make-log-sync-summary-str operation + (mdb/map->DatabaseInstance {:name db-name}) + (create-test-sync-summary step-name + (fn [step-info] + step-log-text)))] + (testing "has-operation?" + (is (= true + (str/includes? results operation)))) + (testing "has-db-name?" + (is (= true + (str/includes? results db-name)))) + (testing "has-operation-duration?" + (is (= true + (str/includes? results "5.0 s")))) + (testing "has-step-name?" + (is (= true + (str/includes? results step-name)))) + (testing "has-step-duration?" + (is (= true + (str/includes? results "4.0 s")))) + (testing "has-log-summary-text?" + (is (= true + (str/includes? results step-log-text)))))) + (testing (str "The `log-summary-fn` part of step info is optional as not all steps have it. Validate that we" + " properly handle that case") + (let [results (#'sync-util/make-log-sync-summary-str operation + (mdb/map->DatabaseInstance {:name db-name}) + (create-test-sync-summary step-name nil))] + (testing "has-operation?" + (is (= true + (str/includes? results operation)))) + (testing "has-db-name?" + (is (= true + (str/includes? results db-name)))) + (testing "has-operation-duration?" + (is (= true + (str/includes? results "5.0 s")))) + (testing "has-step-name?" + (is (= true + (str/includes? results step-name)))) + (testing "has-step-duration?" + (is (= true + (str/includes? results "4.0 s")))))))) diff --git a/test/metabase/sync_database/sync_dynamic_test.clj b/test/metabase/sync_database/sync_dynamic_test.clj index 2f285494aaeb4d78dc4fecf4a64aae459f60c806..93ea838cd367e6987f33a4c765a2eb8877578a23 100644 --- a/test/metabase/sync_database/sync_dynamic_test.clj +++ b/test/metabase/sync_database/sync_dynamic_test.clj @@ -18,8 +18,8 @@ [toucan.util.test :as tt])) (defn- remove-nonsense - "Remove fields that aren't really relevant in the output for TABLES and their FIELDS. - Done for the sake of making debugging some of the tests below easier." + "Remove fields that aren't really relevant in the output for `tables` and their `fields`. Done for the sake of making + debugging some of the tests below easier." [tables] (for [table tables] (-> (u/select-non-nil-keys table [:schema :name :fields]) diff --git a/test/metabase/task/follow_up_emails_test.clj b/test/metabase/task/follow_up_emails_test.clj index aafe5dc43d30552c755fa9b25a85cd7767b466a2..29eaaa644cd0ec5f19baccd183b24466b93aee9e 100644 --- a/test/metabase/task/follow_up_emails_test.clj +++ b/test/metabase/task/follow_up_emails_test.clj @@ -1,6 +1,6 @@ (ns metabase.task.follow-up-emails-test (:require [clojure.test :refer :all] - [expectations :refer [expect]] + [java-time :as t] [metabase.email-test :refer [inbox with-fake-inbox]] [metabase.task.follow-up-emails :as follow-up-emails] [metabase.test @@ -9,13 +9,30 @@ (use-fixtures :once (fixtures/initialize :test-users)) -;; Make sure that `send-follow-up-email!` only sends a single email instead even when triggered multiple times (#4253) -;; follow-up emails get sent to the oldest admin -(expect - 1 +(deftest send-follow-up-email-test + (testing (str "Make sure that `send-follow-up-email!` only sends a single email instead even when triggered multiple " + "times (#4253) follow-up emails get sent to the oldest admin")) (tu/with-temporary-setting-values [anon-tracking-enabled true follow-up-email-sent false] (with-fake-inbox (#'follow-up-emails/send-follow-up-email!) (#'follow-up-emails/send-follow-up-email!) - (-> @inbox vals first count)))) + (is (= 1 + (-> @inbox vals first count)))))) + +(deftest should-send-abandoment-email-test + (testing "Conditions where abandonment emails should be sent" + (doseq [now [(t/zoned-date-time) (t/offset-date-time) (t/instant)] + instance-creation [0 1 5 nil] + last-user [0 1 3 nil] + last-activity [0 1 3 nil] + last-view [0 1 3 nil]] + (testing (format "classes = %s, instance creation = %d weeks ago, last-user = %d weeks ago, last-activity = %d weeks ago, last-view = %d weeks ago" + (.getName (class now)) instance-creation last-user last-activity last-view) + (is (= (and (= instance-creation 5) + (every? #(contains? #{nil 3} %) [last-user last-activity last-view])) + (#'follow-up-emails/should-send-abandoment-email? + (when instance-creation (t/minus now (t/weeks instance-creation))) + (when last-user (t/minus now (t/weeks last-user))) + (when last-activity (t/minus now (t/weeks last-activity))) + (when last-view (t/minus now (t/weeks last-view)))))))))) diff --git a/test/metabase/task/sync_databases_test.clj b/test/metabase/task/sync_databases_test.clj index 8d942efe2cdb5e571c1b998bd083baf5d848f1b0..e539c5239a521ac6846138f39c2114afb5c70032 100644 --- a/test/metabase/task/sync_databases_test.clj +++ b/test/metabase/task/sync_databases_test.clj @@ -9,7 +9,7 @@ [metabase.test.util :as tu] [metabase.test.util.log :as tu.log] [metabase.util :as u] - [metabase.util.date :as du] + [metabase.util.date-2 :as u.date] [toucan.db :as db] [toucan.util.test :as tt]) (:import [metabase.task.sync_databases SyncAndAnalyzeDatabase UpdateFieldValues])) @@ -168,7 +168,7 @@ :ran-update-field-values? (deref update-field-values-ran? 500 false)}))))) (defn- cron-schedule-for-next-year [] - (format "0 15 10 * * ? %d" (inc (du/date-extract :year)))) + (format "0 15 10 * * ? %d" (inc (u.date/extract :year)))) ;; Make sure that a database that *is* marked full sync *will* get analyzed (expect diff --git a/test/metabase/task/task_history_cleanup_test.clj b/test/metabase/task/task_history_cleanup_test.clj index 53f0868b1cc7091838c582e3899ee65ff20027db..b46f7a46b77f9c274a5d3035282dd61fbb44d8f2 100644 --- a/test/metabase/task/task_history_cleanup_test.clj +++ b/test/metabase/task/task_history_cleanup_test.clj @@ -1,6 +1,6 @@ (ns metabase.task.task-history-cleanup-test - (:require [clj-time.core :as time] - [expectations :refer :all] + (:require [clojure.test :refer :all] + [java-time :as t] [metabase.models [task-history :refer [TaskHistory]] [task-history-test :as tht]] @@ -10,42 +10,35 @@ [toucan.db :as db] [toucan.util.test :as tt])) -;; Basic run of the cleanup task when it needs to remove rows. Should also add a TaskHistory row once complete -(let [task-2 (tu/random-name) - task-3 (tu/random-name)] - (expect - #{task-2 task-3 "task-history-cleanup"} - (let [t1-start (time/now) - t2-start (tht/add-second t1-start) - t3-start (tht/add-second t2-start)] - (tt/with-temp* [TaskHistory [t1 (tht/make-10-millis-task t1-start)] - TaskHistory [t2 (assoc (tht/make-10-millis-task t2-start) - :task task-2)] - TaskHistory [t3 (assoc (tht/make-10-millis-task t3-start) - :task task-3)]] - (with-redefs [cleanup-task/history-rows-to-keep 2] - (db/delete! TaskHistory :id [:not-in (map u/get-id [t1 t2 t3])]) - ;; Delete all but 2 task history rows - (#'cleanup-task/task-history-cleanup!) - (set (map :task (TaskHistory)))))))) - -;; When the task runs and nothing is removed, it should still insert a new TaskHistory row -(let [task-1 (tu/random-name) - task-2 (tu/random-name) - task-3 (tu/random-name)] - (expect - #{task-1 task-2 task-3 "task-history-cleanup"} - (let [t1-start (time/now) - t2-start (tht/add-second t1-start) - t3-start (tht/add-second t2-start)] - (tt/with-temp* [TaskHistory [t1 (assoc (tht/make-10-millis-task t1-start) - :task task-1)] - TaskHistory [t2 (assoc (tht/make-10-millis-task t2-start) - :task task-2)] - TaskHistory [t3 (assoc (tht/make-10-millis-task t3-start) - :task task-3)]] - (with-redefs [cleanup-task/history-rows-to-keep 10] - (db/delete! TaskHistory :id [:not-in (map u/get-id [t1 t2 t3])]) - ;; Delete all but 2 task history rows - (#'cleanup-task/task-history-cleanup!) - (set (map :task (TaskHistory)))))))) +(deftest cleanup-test + (let [task-1 (tu/random-name) + task-2 (tu/random-name) + task-3 (tu/random-name) + t1-start (t/offset-date-time) + t2-start (tht/add-second t1-start) + t3-start (tht/add-second t2-start)] + (letfn [(do-with-tasks [{:keys [rows-to-keep]} thunk] + (tt/with-temp* [TaskHistory [t1 (assoc (tht/make-10-millis-task t1-start) + :task task-1)] + TaskHistory [t2 (assoc (tht/make-10-millis-task t2-start) + :task task-2)] + TaskHistory [t3 (assoc (tht/make-10-millis-task t3-start) + :task task-3)]] + (db/delete! TaskHistory :id [:not-in (map u/get-id [t1 t2 t3])]) + (with-redefs [cleanup-task/history-rows-to-keep rows-to-keep] + (#'cleanup-task/task-history-cleanup!)) + (thunk))) + (task-history-tasks [] + (set (map :task (TaskHistory))))] + (testing "Basic run of the cleanup task when it needs to remove rows. Should also add a TaskHistory row once complete" + (do-with-tasks + {:rows-to-keep 2} + (fn [] + (is (= #{task-2 task-3 "task-history-cleanup"} + (task-history-tasks)))))) + (testing "When the task runs and nothing is removed, it should still insert a new TaskHistory row" + (do-with-tasks + {:rows-to-keep 10} + (fn [] + (is (= #{task-1 task-2 task-3 "task-history-cleanup"} + (task-history-tasks))))))))) diff --git a/test/metabase/test.clj b/test/metabase/test.clj new file mode 100644 index 0000000000000000000000000000000000000000..75b7d2a05b19177b6f834ebcb3daf1e3569ebe5d --- /dev/null +++ b/test/metabase/test.clj @@ -0,0 +1,171 @@ +(ns metabase.test + "The stuff you need to write almost every test, all in one place. Nice!" + (:require [clojure.test :refer :all] + [java-time :as t] + [metabase + [driver :as driver] + [query-processor :as qp] + [query-processor-test :as qp.test]] + [metabase.driver.sql-jdbc-test :as sql-jdbc-test] + [metabase.query-processor.test-util :as qp.test-util] + [metabase.test + [data :as data] + [initialize :as initialize] + [util :as tu]] + [metabase.test.data + [datasets :as datasets] + [env :as tx.env] + [interface :as tx] + [users :as test-users]] + [metabase.test.util + [log :as tu.log] + [timezone :as tu.tz]] + [potemkin :as p] + [toucan.util.test :as tt])) + +;; Fool the linters into thinking these namespaces are used! See discussion on +;; https://github.com/clojure-emacs/refactor-nrepl/pull/270 +(comment + data/keep-me + datasets/keep-me + driver/keep-me + initialize/keep-me + qp/keep-me + qp.test-util/keep-me + qp.test/keep-me + sql-jdbc-test/keep-me + [test-users/keep-me] + tt/keep-me + tu/keep-me + tu.log/keep-me + tu.tz/keep-me + tx/keep-me + tx.env/keep-me) + +;; Add more stuff here as needed +(p/import-vars + [data + $ids + dataset + db + format-name + id + mbql-query + native-query + query + run-mbql-query + with-db + with-temp-copy-of-db + with-temp-objects] + + [datasets + test-driver + test-drivers + when-testing-driver] + + [driver + *driver* + with-driver] + + [initialize + initialize-if-needed!] + + [qp + process-query + query->native + query->preprocessed] + + [qp.test + col + cols + first-row + format-rows-by + formatted-rows + normal-drivers + normal-drivers-except + normal-drivers-with-feature + normal-drivers-without-feature + rows + rows+column-names] + + [qp.test-util + with-database-timezone-id + with-everything-store + with-report-timezone-id + with-results-timezone-id] + + [sql-jdbc-test + sql-jdbc-drivers] + + [test-users + user->id + user->client + with-test-user] + + [tt + with-temp + with-temp*] + + [tu + boolean-ids-and-timestamps + call-with-paused-query + discard-setting-changes + doall-recursive + is-uuid-string? + metabase-logger + postwalk-pred + random-email + random-name + round-all-decimals + scheduler-current-tasks + throw-if-called + with-log-messages + with-log-messages-for-level + with-log-level + with-model-cleanup + with-non-admin-groups-no-root-collection-perms + with-scheduler + with-temp-scheduler + with-temp-vals-in-db + with-temporary-setting-values] + + [tu.log + suppress-output] + + [tu.tz + with-system-timezone-id] + + [tx + dataset-definition + db-qualified-table-name + db-test-env-var + db-test-env-var-or-throw + dbdef->connection-details + get-dataset-definition + has-questionable-timezone-support? + has-test-extensions? + metabase-instance] + + [tx.env + set-test-drivers! + with-test-drivers]) + +(defn do-with-clock [clock thunk] + (let [clock (cond + (t/clock? clock) clock + (t/zoned-date-time? clock) (t/mock-clock (t/instant clock) (t/zone-id clock)) + :else (throw (Exception. (format "Invalid clock: ^%s %s" + (.getName (class clock)) + (pr-str clock)))))] + (t/with-clock clock + (testing (format "\nsystem clock = %s" (pr-str clock)) + (thunk))))) + +(defmacro with-clock + "Same as `t/with-clock`, but adds `testing` context, and also supports using `ZonedDateTime` instances + directly (converting them to a mock clock automatically). + + (mt/with-clock #t \"2019-12-10T00:00-08:00[US/Pacific]\" + ...)" + [clock & body] + `(do-with-clock ~clock (fn [] ~@body))) diff --git a/test/metabase/test/data/dataset_definitions.clj b/test/metabase/test/data/dataset_definitions.clj index 54187da5b6681997008b60df4d2553fb7351ee42..6a205c63a1a88250b9aa3b0e7f1654475fc64848 100644 --- a/test/metabase/test/data/dataset_definitions.clj +++ b/test/metabase/test/data/dataset_definitions.clj @@ -1,9 +1,11 @@ (ns metabase.test.data.dataset-definitions "Definitions of various datasets for use in tests with `data/dataset` and the like." - (:require [medley.core :as m] - [metabase.test.data.interface :as tx]) + (:require [java-time :as t] + [medley.core :as m] + [metabase.test.data.interface :as tx] + [metabase.util.date-2 :as u.date]) (:import java.sql.Time - [java.util Calendar TimeZone])) + [java.time LocalDate LocalDateTime LocalTime OffsetDateTime OffsetTime ZonedDateTime])) ;;; +----------------------------------------------------------------------------------------------------------------+ ;;; | Various Datasets | @@ -49,28 +51,30 @@ not explicitly marked as a foreign key, because the test dataset syntax does not yet have a way to support nullable foreign keys.)") - -(defn- calendar-with-fields ^Calendar [date & fields] - (let [^Calendar cal-from-date (doto (Calendar/getInstance (TimeZone/getTimeZone "UTC")) - (.setTime date)) - ^Calendar blank-calendar (doto ^Calendar (.clone cal-from-date) - .clear)] - (doseq [field fields] - (.set blank-calendar field (.get cal-from-date field))) - blank-calendar)) - (defn- date-only - "This function emulates a date only field as it would come from the JDBC driver. The hour/minute/second/millisecond - fields should be 0s" - [date] - (.getTime (calendar-with-fields date Calendar/DAY_OF_MONTH Calendar/MONTH Calendar/YEAR))) + "Convert date or datetime temporal value to `t` to an appropriate date type, discarding time information." + [t] + (when t + (condp instance? t + LocalDate t + LocalDateTime (t/local-date t) + LocalTime (throw (Exception. "Cannot convert a time to a date")) + OffsetTime (throw (Exception. "Cannot convert a time to a date")) + ;; since there is no `OffsetDate` class use `OffsetDateTime`, but truncated to day + OffsetDateTime (u.date/truncate :day) + ZonedDateTime (u.date/truncate :day)))) (defn- time-only - "This function will return a java.sql.Time object. To create a Time object similar to what JDBC would return, the time - needs to be relative to epoch. As an example a time of 4:30 would be a Time instance, but it's a subclass of Date, - so it looks like 1970-01-01T04:30:00.000" - [date] - (Time. (.getTimeInMillis (calendar-with-fields date Calendar/HOUR_OF_DAY Calendar/MINUTE Calendar/SECOND)))) + "Convert time or datetime temporal value to `t` to an appropriate time type, discarding date information." + [t] + (when t + (condp instance? t + LocalDate (throw (Exception. "Cannot convert a date to a time")) + LocalDateTime (t/local-time t) + LocalTime t + OffsetTime t + OffsetDateTime (t/offset-time t) + ZonedDateTime (t/offset-time t)))) (defonce ^{:doc "The main `test-data` dataset, but only the `users` table, and with `last_login_date` and @@ -141,3 +145,46 @@ [username last-login password-text (if (zero? idx) 1 idx)]))))) + +(tx/defdataset ^:private attempted-murders + "A dataset for testing temporal values with and without timezones. Records of number of crow counts spoted and the + date/time when they spotting occured in several different column types." + [["attempts" + [{:field-name "num-crows", :base-type :type/Integer} + {:field-name "date", :base-type :type/Date} + {:field-name "time", :base-type :type/Time} + {:field-name "time-ltz", :base-type :type/TimeWithLocalTZ} + {:field-name "time-tz", :base-type :type/TimeWithZoneOffset} + {:field-name "datetime", :base-type :type/DateTime} + {:field-name "datetime-ltz", :base-type :type/DateTimeWithLocalTZ} + {:field-name "datetime-tz", :base-type :type/DateTimeWithZoneOffset} + {:field-name "datetime-tz-id", :base-type :type/DateTimeWithZoneID}] + (for [[cnt t] [[6 #t "2019-11-01T00:23:18.331-07:00[America/Los_Angeles]"] + [8 #t "2019-11-02T00:14:14.246-07:00[America/Los_Angeles]"] + [6 #t "2019-11-03T23:35:17.906-08:00[America/Los_Angeles]"] + [7 #t "2019-11-04T01:04:09.593-08:00[America/Los_Angeles]"] + [8 #t "2019-11-05T14:23:46.411-08:00[America/Los_Angeles]"] + [4 #t "2019-11-06T18:51:16.270-08:00[America/Los_Angeles]"] + [6 #t "2019-11-07T02:45:34.443-08:00[America/Los_Angeles]"] + [4 #t "2019-11-08T19:51:39.753-08:00[America/Los_Angeles]"] + [3 #t "2019-11-09T09:59:10.483-08:00[America/Los_Angeles]"] + [1 #t "2019-11-10T08:41:35.860-08:00[America/Los_Angeles]"] + [5 #t "2019-11-11T08:09:08.892-08:00[America/Los_Angeles]"] + [3 #t "2019-11-12T07:36:16.088-08:00[America/Los_Angeles]"] + [2 #t "2019-11-13T04:28:40.489-08:00[America/Los_Angeles]"] + [9 #t "2019-11-14T09:52:17.242-08:00[America/Los_Angeles]"] + [7 #t "2019-11-15T16:07:25.292-08:00[America/Los_Angeles]"] + [7 #t "2019-11-16T13:32:16.936-08:00[America/Los_Angeles]"] + [1 #t "2019-11-17T14:11:38.076-08:00[America/Los_Angeles]"] + [3 #t "2019-11-18T20:47:27.902-08:00[America/Los_Angeles]"] + [5 #t "2019-11-19T00:35:23.146-08:00[America/Los_Angeles]"] + [1 #t "2019-11-20T20:09:55.752-08:00[America/Los_Angeles]"]]] + [cnt ; num-crows + (t/local-date t) ; date + (t/local-time t) ; time + (t/offset-time t) ; time-ltz + (t/offset-time t) ; time-tz + (t/local-date-time t) ; datetime + (t/offset-date-time t) ; datetime-ltz + (t/offset-date-time t) ; datetime-tz + t])]]) ; datetime-tz-id diff --git a/test/metabase/test/data/dataset_definitions/daily-bird-counts.edn b/test/metabase/test/data/dataset_definitions/daily-bird-counts.edn index 658a7c639af6528b93acf16462ea468136ab657b..1d7d6b54f682522d5187cb6b1257c1dd3104c8b7 100644 --- a/test/metabase/test/data/dataset_definitions/daily-bird-counts.edn +++ b/test/metabase/test/data/dataset_definitions/daily-bird-counts.edn @@ -2,33 +2,33 @@ :base-type :type/Date} {:field-name "count" :base-type :type/Integer}] - [[#inst "2018-09-20" nil] - [#inst "2018-09-21" 0] - [#inst "2018-09-22" 0] - [#inst "2018-09-23" 10] - [#inst "2018-09-24" 8] - [#inst "2018-09-25" 5] - [#inst "2018-09-26" 5] - [#inst "2018-09-27" nil] - [#inst "2018-09-28" 0] - [#inst "2018-09-29" 0] - [#inst "2018-09-30" 11] - [#inst "2018-10-01" 14] - [#inst "2018-10-02" 8] - [#inst "2018-10-03" 14] - [#inst "2018-10-04" nil] - [#inst "2018-10-05" 6] - [#inst "2018-10-06" 4] - [#inst "2018-10-07" 0] - [#inst "2018-10-08" nil] - [#inst "2018-10-09" 3] - [#inst "2018-10-10" 13] - [#inst "2018-10-11" nil] - [#inst "2018-10-12" 14] - [#inst "2018-10-13" 6] - [#inst "2018-10-14" 12] - [#inst "2018-10-15" 13] - [#inst "2018-10-16" 0] - [#inst "2018-10-17" 7] - [#inst "2018-10-18" 10] - [#inst "2018-10-19" 5]]]] + [[#t "2018-09-20" nil] + [#t "2018-09-21" 0] + [#t "2018-09-22" 0] + [#t "2018-09-23" 10] + [#t "2018-09-24" 8] + [#t "2018-09-25" 5] + [#t "2018-09-26" 5] + [#t "2018-09-27" nil] + [#t "2018-09-28" 0] + [#t "2018-09-29" 0] + [#t "2018-09-30" 11] + [#t "2018-10-01" 14] + [#t "2018-10-02" 8] + [#t "2018-10-03" 14] + [#t "2018-10-04" nil] + [#t "2018-10-05" 6] + [#t "2018-10-06" 4] + [#t "2018-10-07" 0] + [#t "2018-10-08" nil] + [#t "2018-10-09" 3] + [#t "2018-10-10" 13] + [#t "2018-10-11" nil] + [#t "2018-10-12" 14] + [#t "2018-10-13" 6] + [#t "2018-10-14" 12] + [#t "2018-10-15" 13] + [#t "2018-10-16" 0] + [#t "2018-10-17" 7] + [#t "2018-10-18" 10] + [#t "2018-10-19" 5]]]] diff --git a/test/metabase/test/data/dataset_definitions/office-checkins.edn b/test/metabase/test/data/dataset_definitions/office-checkins.edn index 1315f3301bc74e0cb03f2b11b471be7acc834584..92c42085a468a81c097039a796c48d30ec2da71a 100644 --- a/test/metabase/test/data/dataset_definitions/office-checkins.edn +++ b/test/metabase/test/data/dataset_definitions/office-checkins.edn @@ -1,12 +1,12 @@ [["checkins" [{:field-name "person", :base-type :type/Text} {:field-name "timestamp", :base-type :type/DateTime}] - [["Cam", #inst "2019-01-02T05:30:00.000-07:00"] - ["Cam", #inst "2019-01-09T05:30:00.000-07:00"] - ["Kyle", #inst "2019-01-06T08:30:00.000-07:00"] - ["Cam", #inst "2019-01-07T04:00:00.000-07:00"] - ["Sameer", #inst "2019-01-26T16:00:00.000-07:00"] - ["Cam", #inst "2019-01-16T07:15:00.000-07:00"] - ["Tom", #inst "2019-01-27T01:30:00.000-07:00"] - ["Sameer", #inst "2019-01-24T14:00:00.000-07:00"] - ["Maz", #inst "2019-01-28T11:45:00.000-07:00"] - ["Cam", #inst "2019-01-25T07:30:00.000-07:00"]]]] + [["Cam", #t "2019-01-02T05:30:00.000-07:00"] + ["Cam", #t "2019-01-09T05:30:00.000-07:00"] + ["Kyle", #t "2019-01-06T08:30:00.000-07:00"] + ["Cam", #t "2019-01-07T04:00:00.000-07:00"] + ["Sameer", #t "2019-01-26T16:00:00.000-07:00"] + ["Cam", #t "2019-01-16T07:15:00.000-07:00"] + ["Tom", #t "2019-01-27T01:30:00.000-07:00"] + ["Sameer", #t "2019-01-24T14:00:00.000-07:00"] + ["Maz", #t "2019-01-28T11:45:00.000-07:00"] + ["Cam", #t "2019-01-25T07:30:00.000-07:00"]]]] diff --git a/test/metabase/test/data/dataset_definitions/test-data.edn b/test/metabase/test/data/dataset_definitions/test-data.edn index 827b10fa0a01021372f373e446edd3cbc082ac34..877eb8c623fc4c9263224f263bf35455af50e008 100644 --- a/test/metabase/test/data/dataset_definitions/test-data.edn +++ b/test/metabase/test/data/dataset_definitions/test-data.edn @@ -29,21 +29,21 @@ {:field-name "password" :base-type :type/Text :visibility-type :sensitive}] - [["Plato Yeshua" #inst "2014-04-01T08:30" "4be68cda-6fd5-4ba7-944e-2b475600bda5"] ; 1 - ["Felipinho Asklepios" #inst "2014-12-05T15:15" "5bb19ad9-f3f8-421f-9750-7d398e38428d"] ; 2 - ["Kaneonuskatew Eiran" #inst "2014-11-06T16:15" "a329ccfe-b99c-42eb-9c93-cb9adc3eb1ab"] ; 3 - ["Simcha Yan" #inst "2014-01-01T08:30" "a61f97c6-4484-4a63-b37e-b5e58bfa2ecb"] ; 4 - ["Quentin Sören" #inst "2014-10-03T17:30" "10a0fea8-9bb4-48fe-a336-4d9cbbd78aa0"] ; 5 - ["Shad Ferdynand" #inst "2014-08-02T12:30" "d35c9d78-f9cf-4f52-b1cc-cb9078eebdcb"] ; 6 - ["Conchúr Tihomir" #inst "2014-08-02T09:30" "900335ad-e03b-4259-abc7-76aac21cedca"] ; 7 - ["Szymon Theutrich" #inst "2014-02-01T10:15" "d6c47a54-9d88-4c4a-8054-ace76764ed0d"] ; 8 - ["Nils Gotam" #inst "2014-04-03T09:30" "b085040c-7aa4-4e96-8c8f-420b2c99c920"] ; 9 - ["Frans Hevel" #inst "2014-07-03T19:30" "b7a43e91-9fb9-4fe9-ab6f-ea51ab0f94e4"] ; 10 - ["Spiros Teofil" #inst "2014-11-01T07:00" "62b9602c-27b8-44ea-adbd-2748f26537af"] ; 11 - ["Kfir Caj" #inst "2014-07-03T01:30" "dfe21df3-f364-479d-a5e7-04bc5d85ad2b"] ; 12 - ["Dwight Gresham" #inst "2014-08-01T10:30" "75a1ebf1-cae7-4a50-8743-32d97500f2cf"] ; 13 - ["Broen Olujimi" #inst "2014-10-03T13:45" "f9b65c74-9f91-4cfd-9248-94a53af82866"] ; 14 - ["Rüstem Hebel" #inst "2014-08-01T12:45" "02ad6b15-54b0-4491-bf0f-d781b0a2c4f5"]]] ; 15 + [["Plato Yeshua" #t "2014-04-01T08:30" "4be68cda-6fd5-4ba7-944e-2b475600bda5"] ; 1 + ["Felipinho Asklepios" #t "2014-12-05T15:15" "5bb19ad9-f3f8-421f-9750-7d398e38428d"] ; 2 + ["Kaneonuskatew Eiran" #t "2014-11-06T16:15" "a329ccfe-b99c-42eb-9c93-cb9adc3eb1ab"] ; 3 + ["Simcha Yan" #t "2014-01-01T08:30" "a61f97c6-4484-4a63-b37e-b5e58bfa2ecb"] ; 4 + ["Quentin Sören" #t "2014-10-03T17:30" "10a0fea8-9bb4-48fe-a336-4d9cbbd78aa0"] ; 5 + ["Shad Ferdynand" #t "2014-08-02T12:30" "d35c9d78-f9cf-4f52-b1cc-cb9078eebdcb"] ; 6 + ["Conchúr Tihomir" #t "2014-08-02T09:30" "900335ad-e03b-4259-abc7-76aac21cedca"] ; 7 + ["Szymon Theutrich" #t "2014-02-01T10:15" "d6c47a54-9d88-4c4a-8054-ace76764ed0d"] ; 8 + ["Nils Gotam" #t "2014-04-03T09:30" "b085040c-7aa4-4e96-8c8f-420b2c99c920"] ; 9 + ["Frans Hevel" #t "2014-07-03T19:30" "b7a43e91-9fb9-4fe9-ab6f-ea51ab0f94e4"] ; 10 + ["Spiros Teofil" #t "2014-11-01T07:00" "62b9602c-27b8-44ea-adbd-2748f26537af"] ; 11 + ["Kfir Caj" #t "2014-07-03T01:30" "dfe21df3-f364-479d-a5e7-04bc5d85ad2b"] ; 12 + ["Dwight Gresham" #t "2014-08-01T10:30" "75a1ebf1-cae7-4a50-8743-32d97500f2cf"] ; 13 + ["Broen Olujimi" #t "2014-10-03T13:45" "f9b65c74-9f91-4cfd-9248-94a53af82866"] ; 14 + ["Rüstem Hebel" #t "2014-08-01T12:45" "02ad6b15-54b0-4491-bf0f-d781b0a2c4f5"]]] ; 15 ["categories" [{:field-name "name" :base-type :type/Text}] [["African"] ; 1 @@ -243,1003 +243,1003 @@ :fk :venues} {:field-name "date" :base-type :type/Date}] - [[5 12 #inst "2014-04-07"] - [1 31 #inst "2014-09-18"] - [8 56 #inst "2014-09-15"] - [5 4 #inst "2014-03-11"] - [3 49 #inst "2013-05-05"] - [3 35 #inst "2015-07-04"] - [12 6 #inst "2014-04-11"] - [11 16 #inst "2014-05-13"] - [3 79 #inst "2014-05-26"] - [3 55 #inst "2015-08-22"] - [15 23 #inst "2013-03-25"] - [5 25 #inst "2014-11-16"] - [6 80 #inst "2014-05-17"] - [9 93 #inst "2015-09-07"] - [5 61 #inst "2015-02-19"] - [11 34 #inst "2015-02-19"] - [8 69 #inst "2014-08-31"] - [3 27 #inst "2015-08-05"] - [11 70 #inst "2014-07-31"] - [11 81 #inst "2014-09-14"] - [4 73 #inst "2015-12-10"] - [8 18 #inst "2015-02-17"] - [8 71 #inst "2014-04-02"] - [12 45 #inst "2014-04-04"] - [12 31 #inst "2014-07-05"] - [8 67 #inst "2014-05-17"] - [11 57 #inst "2015-02-15"] - [10 100 #inst "2015-05-02"] - [15 7 #inst "2014-09-27"] - [5 48 #inst "2014-07-20"] - [8 27 #inst "2013-05-12"] - [14 31 #inst "2014-02-17"] - [5 6 #inst "2015-10-07"] - [14 28 #inst "2014-09-26"] - [10 56 #inst "2014-07-19"] - [8 19 #inst "2015-09-29"] - [4 48 #inst "2015-11-19"] - [10 11 #inst "2015-11-15"] - [11 65 #inst "2015-04-30"] - [6 6 #inst "2014-09-14"] - [10 62 #inst "2013-07-05"] - [11 88 #inst "2015-03-05"] - [5 51 #inst "2015-11-30"] - [2 61 #inst "2013-11-19"] - [9 59 #inst "2013-08-24"] - [9 66 #inst "2015-06-26"] - [14 67 #inst "2014-07-19"] - [12 15 #inst "2015-07-18"] - [5 12 #inst "2015-04-07"] - [8 13 #inst "2013-08-02"] - [13 30 #inst "2014-06-28"] - [4 8 #inst "2014-10-13"] - [6 65 #inst "2014-05-05"] - [4 93 #inst "2015-05-08"] - [15 14 #inst "2014-12-22"] - [3 99 #inst "2014-07-24"] - [2 15 #inst "2015-03-06"] - [4 40 #inst "2015-11-09"] - [13 24 #inst "2014-06-11"] - [10 69 #inst "2014-03-24"] - [3 15 #inst "2013-11-01"] - [10 3 #inst "2013-05-28"] - [5 15 #inst "2015-12-24"] - [6 34 #inst "2014-08-18"] - [7 29 #inst "2014-04-13"] - [6 86 #inst "2015-02-21"] - [3 28 #inst "2014-05-25"] - [5 29 #inst "2014-09-16"] - [8 85 #inst "2014-03-14"] - [11 65 #inst "2014-11-20"] - [14 93 #inst "2014-01-07"] - [1 1 #inst "2015-04-18"] - [11 75 #inst "2013-08-07"] - [11 91 #inst "2015-11-14"] - [7 97 #inst "2015-09-11"] - [9 9 #inst "2014-03-28"] - [14 33 #inst "2014-03-03"] - [4 3 #inst "2015-03-02"] - [8 19 #inst "2014-05-07"] - [1 99 #inst "2013-12-27"] - [7 18 #inst "2013-07-23"] - [13 30 #inst "2014-06-28"] - [11 17 #inst "2015-02-19"] - [12 58 #inst "2015-12-02"] - [13 82 #inst "2014-11-15"] - [8 69 #inst "2015-07-01"] - [14 95 #inst "2014-08-18"] - [6 75 #inst "2015-05-29"] - [14 83 #inst "2013-10-29"] - [7 66 #inst "2014-02-10"] - [11 73 #inst "2015-04-09"] - [4 93 #inst "2014-08-02"] - [2 18 #inst "2013-07-02"] - [10 17 #inst "2015-02-09"] - [8 60 #inst "2013-10-27"] - [13 24 #inst "2014-02-11"] - [2 71 #inst "2014-11-25"] - [11 29 #inst "2014-01-04"] - [13 91 #inst "2015-11-27"] - [9 21 #inst "2014-07-26"] - [11 99 #inst "2015-09-04"] - [5 44 #inst "2013-12-02"] - [8 51 #inst "2015-04-10"] - [8 9 #inst "2015-09-26"] - [11 19 #inst "2014-12-01"] - [2 38 #inst "2014-02-10"] - [10 12 #inst "2014-07-14"] - [10 30 #inst "2013-12-15"] - [8 33 #inst "2013-03-16"] - [9 49 #inst "2015-09-17"] - [6 38 #inst "2013-05-19"] - [15 93 #inst "2014-03-12"] - [2 36 #inst "2013-01-27"] - [7 98 #inst "2015-09-17"] - [4 6 #inst "2015-09-18"] - [6 34 #inst "2013-09-16"] - [11 73 #inst "2014-02-20"] - [14 46 #inst "2014-07-05"] - [1 44 #inst "2014-10-18"] - [10 83 #inst "2013-12-22"] - [3 21 #inst "2014-11-05"] - [12 57 #inst "2014-12-19"] - [10 77 #inst "2015-07-25"] - [10 97 #inst "2013-08-05"] - [14 8 #inst "2015-04-16"] - [12 13 #inst "2015-09-11"] - [15 81 #inst "2015-10-29"] - [13 17 #inst "2014-08-18"] - [15 2 #inst "2014-08-25"] - [8 74 #inst "2014-08-11"] - [7 90 #inst "2013-02-13"] - [4 84 #inst "2014-08-26"] - [10 87 #inst "2014-01-09"] - [8 88 #inst "2013-08-21"] - [6 85 #inst "2015-12-26"] - [8 62 #inst "2014-05-21"] - [4 97 #inst "2015-02-15"] - [4 65 #inst "2014-02-11"] - [9 1 #inst "2015-10-08"] - [13 96 #inst "2014-10-10"] - [10 83 #inst "2015-11-22"] - [15 24 #inst "2013-07-24"] - [10 38 #inst "2014-09-14"] - [12 3 #inst "2015-11-13"] - [4 78 #inst "2014-10-13"] - [14 12 #inst "2014-07-17"] - [3 18 #inst "2014-05-31"] - [11 10 #inst "2013-10-19"] - [11 81 #inst "2013-03-13"] - [5 61 #inst "2014-11-21"] - [13 81 #inst "2014-12-17"] - [13 24 #inst "2014-09-04"] - [8 54 #inst "2013-02-21"] - [10 42 #inst "2014-07-08"] - [7 97 #inst "2014-09-23"] - [3 14 #inst "2013-03-08"] - [12 58 #inst "2014-01-31"] - [11 100 #inst "2015-09-04"] - [8 90 #inst "2014-03-06"] - [12 20 #inst "2015-05-05"] - [3 47 #inst "2014-06-30"] - [5 44 #inst "2015-01-04"] - [1 47 #inst "2013-09-10"] - [7 11 #inst "2015-05-22"] - [15 87 #inst "2013-12-29"] - [2 66 #inst "2014-07-17"] - [2 52 #inst "2014-07-09"] - [11 3 #inst "2015-06-29"] - [9 12 #inst "2013-09-16"] - [2 39 #inst "2014-07-17"] - [11 3 #inst "2014-03-13"] - [10 47 #inst "2015-03-04"] - [15 78 #inst "2015-08-21"] - [12 3 #inst "2014-04-19"] - [11 45 #inst "2014-11-07"] - [2 75 #inst "2013-05-03"] - [10 9 #inst "2013-03-08"] - [2 51 #inst "2013-10-04"] - [4 4 #inst "2014-07-10"] - [8 57 #inst "2014-07-16"] - [8 38 #inst "2014-08-15"] - [5 31 #inst "2014-01-06"] - [3 54 #inst "2015-05-27"] - [10 84 #inst "2015-07-05"] - [5 54 #inst "2013-03-01"] - [3 43 #inst "2015-08-06"] - [8 70 #inst "2014-11-09"] - [2 59 #inst "2014-07-30"] - [11 18 #inst "2015-01-14"] - [9 75 #inst "2013-06-30"] - [13 41 #inst "2015-08-01"] - [7 87 #inst "2014-02-06"] - [6 91 #inst "2013-03-19"] - [7 90 #inst "2013-06-23"] - [8 61 #inst "2014-04-11"] - [5 35 #inst "2014-10-28"] - [2 82 #inst "2014-06-09"] - [9 35 #inst "2013-10-23"] - [6 52 #inst "2014-09-28"] - [6 96 #inst "2015-09-04"] - [11 59 #inst "2015-09-18"] - [12 34 #inst "2015-08-09"] - [10 80 #inst "2015-04-08"] - [4 78 #inst "2015-03-01"] - [6 4 #inst "2015-09-01"] - [4 35 #inst "2014-07-07"] - [13 50 #inst "2013-06-23"] - [11 69 #inst "2014-03-17"] - [10 62 #inst "2013-03-15"] - [13 31 #inst "2015-03-27"] - [13 42 #inst "2014-10-02"] - [14 86 #inst "2013-05-14"] - [4 83 #inst "2014-08-13"] - [9 21 #inst "2015-04-18"] - [14 90 #inst "2014-06-15"] - [12 65 #inst "2015-05-05"] - [7 57 #inst "2013-03-08"] - [12 70 #inst "2014-09-06"] - [11 16 #inst "2014-02-09"] - [7 38 #inst "2013-10-12"] - [2 40 #inst "2014-03-09"] - [8 52 #inst "2015-06-22"] - [7 84 #inst "2013-01-22"] - [9 4 #inst "2014-08-20"] - [2 4 #inst "2014-03-04"] - [8 56 #inst "2014-02-03"] - [6 23 #inst "2013-10-29"] - [7 87 #inst "2013-10-02"] - [5 28 #inst "2014-02-14"] - [5 19 #inst "2013-09-08"] - [2 13 #inst "2014-06-30"] - [12 65 #inst "2013-07-25"] - [4 73 #inst "2015-11-06"] - [7 56 #inst "2013-07-14"] - [1 46 #inst "2014-03-09"] - [13 58 #inst "2013-07-10"] - [4 68 #inst "2013-04-12"] - [14 86 #inst "2014-03-09"] - [7 89 #inst "2014-11-22"] - [4 42 #inst "2014-04-13"] - [13 83 #inst "2014-10-19"] - [10 66 #inst "2014-07-07"] - [11 69 #inst "2013-08-19"] - [2 18 #inst "2014-11-28"] - [12 7 #inst "2015-08-16"] - [7 45 #inst "2014-03-20"] - [8 85 #inst "2014-10-09"] - [13 27 #inst "2014-05-16"] - [8 6 #inst "2014-08-24"] - [9 52 #inst "2013-04-11"] - [2 75 #inst "2015-02-26"] - [11 65 #inst "2014-05-29"] - [7 30 #inst "2013-06-03"] - [11 14 #inst "2013-06-26"] - [11 61 #inst "2014-11-09"] - [8 81 #inst "2013-06-27"] - [10 92 #inst "2014-05-07"] - [3 52 #inst "2014-01-26"] - [5 56 #inst "2014-11-14"] - [11 75 #inst "2014-04-02"] - [9 13 #inst "2014-10-22"] - [4 25 #inst "2015-05-18"] - [10 70 #inst "2015-05-04"] - [2 48 #inst "2014-06-21"] - [6 78 #inst "2014-03-28"] - [12 68 #inst "2014-10-24"] - [10 8 #inst "2014-02-26"] - [5 63 #inst "2015-10-12"] - [14 66 #inst "2015-08-06"] - [2 3 #inst "2014-05-14"] - [3 36 #inst "2014-04-27"] - [11 71 #inst "2015-04-24"] - [1 85 #inst "2015-03-02"] - [13 68 #inst "2015-06-22"] - [5 34 #inst "2014-09-25"] - [2 75 #inst "2014-07-29"] - [7 13 #inst "2014-10-03"] - [12 86 #inst "2014-01-10"] - [13 100 #inst "2015-07-17"] - [8 59 #inst "2014-10-15"] - [15 27 #inst "2014-05-17"] - [13 83 #inst "2013-10-11"] - [2 68 #inst "2014-06-03"] - [10 23 #inst "2013-04-08"] - [12 17 #inst "2013-01-10"] - [8 89 #inst "2014-05-01"] - [4 11 #inst "2013-06-12"] - [3 97 #inst "2015-05-22"] - [14 77 #inst "2013-10-19"] - [10 69 #inst "2014-10-10"] - [13 79 #inst "2014-11-11"] - [5 95 #inst "2014-07-22"] - [14 33 #inst "2015-08-26"] - [2 75 #inst "2014-07-10"] - [7 97 #inst "2014-03-01"] - [6 88 #inst "2014-08-04"] - [12 73 #inst "2013-11-16"] - [14 61 #inst "2013-05-21"] - [9 43 #inst "2015-03-07"] - [4 44 #inst "2013-08-20"] - [15 61 #inst "2015-07-18"] - [11 98 #inst "2014-09-29"] - [11 32 #inst "2013-08-02"] - [3 94 #inst "2014-12-06"] - [4 48 #inst "2015-08-20"] - [11 59 #inst "2014-07-21"] - [9 77 #inst "2014-06-05"] - [7 10 #inst "2015-04-23"] - [7 17 #inst "2013-04-01"] - [9 45 #inst "2015-02-13"] - [3 2 #inst "2014-12-23"] - [9 85 #inst "2014-12-11"] - [6 22 #inst "2015-04-24"] - [12 96 #inst "2013-06-11"] - [1 78 #inst "2014-06-09"] - [13 29 #inst "2014-02-10"] - [3 54 #inst "2013-01-19"] - [11 60 #inst "2014-08-30"] - [2 16 #inst "2013-11-27"] - [9 41 #inst "2014-05-14"] - [10 98 #inst "2014-01-26"] - [13 98 #inst "2015-07-01"] - [12 4 #inst "2015-10-04"] - [1 63 #inst "2014-03-14"] - [11 2 #inst "2015-10-23"] - [14 64 #inst "2014-05-27"] - [6 42 #inst "2014-05-01"] - [2 44 #inst "2014-09-26"] - [5 42 #inst "2013-08-15"] - [5 39 #inst "2013-04-26"] - [11 94 #inst "2014-07-14"] - [4 17 #inst "2015-08-18"] - [9 3 #inst "2014-02-19"] - [3 75 #inst "2014-05-18"] - [10 38 #inst "2015-09-22"] - [10 74 #inst "2013-03-28"] - [11 25 #inst "2014-01-04"] - [7 20 #inst "2014-09-14"] - [7 33 #inst "2014-05-18"] - [2 40 #inst "2013-02-19"] - [9 62 #inst "2013-06-16"] - [6 5 #inst "2014-11-25"] - [14 13 #inst "2014-07-19"] - [4 82 #inst "2013-04-24"] - [6 86 #inst "2014-04-10"] - [15 66 #inst "2013-05-31"] - [10 63 #inst "2014-09-03"] - [13 46 #inst "2014-06-25"] - [13 44 #inst "2015-02-24"] - [5 82 #inst "2014-06-19"] - [12 57 #inst "2014-09-12"] - [5 96 #inst "2015-03-16"] - [12 36 #inst "2015-05-11"] - [6 100 #inst "2015-11-28"] - [9 44 #inst "2014-10-24"] - [13 70 #inst "2014-04-03"] - [10 77 #inst "2014-04-12"] - [13 42 #inst "2015-07-23"] - [6 99 #inst "2013-06-02"] - [9 22 #inst "2015-07-06"] - [13 83 #inst "2014-12-16"] - [13 27 #inst "2014-07-20"] - [10 94 #inst "2015-11-05"] - [13 70 #inst "2015-01-23"] - [5 59 #inst "2014-05-20"] - [12 61 #inst "2013-01-25"] - [1 5 #inst "2015-07-23"] - [5 95 #inst "2013-08-19"] - [6 88 #inst "2014-07-25"] - [3 54 #inst "2013-11-07"] - [11 57 #inst "2015-07-20"] - [7 27 #inst "2014-08-26"] - [2 62 #inst "2015-05-03"] - [4 36 #inst "2014-04-14"] - [12 1 #inst "2013-11-09"] - [4 27 #inst "2013-07-14"] - [10 63 #inst "2013-11-15"] - [6 31 #inst "2014-05-22"] - [2 90 #inst "2015-10-04"] - [8 2 #inst "2013-12-03"] - [1 86 #inst "2015-09-23"] - [7 46 #inst "2014-09-05"] - [9 8 #inst "2015-07-29"] - [1 51 #inst "2014-05-30"] - [7 68 #inst "2014-03-25"] - [14 74 #inst "2015-02-23"] - [8 63 #inst "2015-05-12"] - [1 68 #inst "2013-04-11"] - [7 20 #inst "2015-03-28"] - [14 28 #inst "2014-07-24"] - [13 8 #inst "2014-02-03"] - [3 40 #inst "2013-09-27"] - [9 72 #inst "2014-01-19"] - [11 15 #inst "2013-05-14"] - [9 11 #inst "2014-03-30"] - [4 10 #inst "2014-12-03"] - [4 79 #inst "2014-11-07"] - [4 74 #inst "2013-05-09"] - [5 78 #inst "2015-12-08"] - [12 74 #inst "2015-06-04"] - [6 89 #inst "2014-06-14"] - [2 87 #inst "2013-01-23"] - [15 84 #inst "2015-07-18"] - [4 65 #inst "2015-03-11"] - [7 66 #inst "2013-07-25"] - [10 14 #inst "2013-11-29"] - [5 77 #inst "2014-06-02"] - [8 74 #inst "2013-04-30"] - [14 7 #inst "2014-03-05"] - [4 45 #inst "2013-11-05"] - [15 96 #inst "2013-11-26"] - [4 45 #inst "2015-01-15"] - [15 52 #inst "2015-05-01"] - [6 46 #inst "2014-02-25"] - [12 42 #inst "2014-11-10"] - [13 17 #inst "2014-05-20"] - [6 44 #inst "2015-03-27"] - [3 71 #inst "2014-04-14"] - [2 35 #inst "2013-10-01"] - [9 74 #inst "2015-03-03"] - [4 68 #inst "2014-12-01"] - [6 40 #inst "2013-11-25"] - [4 63 #inst "2014-06-14"] - [11 12 #inst "2013-08-05"] - [13 41 #inst "2015-02-03"] - [11 13 #inst "2014-10-05"] - [10 18 #inst "2015-03-20"] - [5 20 #inst "2014-05-11"] - [5 79 #inst "2014-02-22"] - [7 15 #inst "2013-04-15"] - [6 25 #inst "2014-03-28"] - [14 9 #inst "2014-08-12"] - [8 53 #inst "2014-04-24"] - [9 78 #inst "2014-07-02"] - [3 4 #inst "2014-06-26"] - [7 3 #inst "2015-10-29"] - [6 56 #inst "2015-10-28"] - [4 65 #inst "2014-08-12"] - [15 35 #inst "2014-07-28"] - [8 49 #inst "2014-09-01"] - [11 80 #inst "2014-07-31"] - [10 51 #inst "2015-03-01"] - [14 70 #inst "2013-07-15"] - [12 18 #inst "2013-10-06"] - [8 80 #inst "2013-10-31"] - [15 91 #inst "2013-11-16"] - [9 78 #inst "2014-09-06"] - [9 88 #inst "2013-06-04"] - [12 88 #inst "2014-05-29"] - [7 22 #inst "2013-06-07"] - [2 38 #inst "2014-06-21"] - [4 7 #inst "2014-05-07"] - [2 49 #inst "2013-04-18"] - [13 56 #inst "2014-07-19"] - [9 66 #inst "2013-06-14"] - [9 57 #inst "2014-07-29"] - [5 91 #inst "2014-04-04"] - [10 46 #inst "2015-06-08"] - [10 97 #inst "2014-08-01"] - [2 53 #inst "2014-07-04"] - [14 54 #inst "2015-07-27"] - [2 81 #inst "2013-08-17"] - [11 77 #inst "2015-07-12"] - [13 39 #inst "2013-08-03"] - [7 86 #inst "2014-01-16"] - [14 68 #inst "2014-05-07"] - [13 61 #inst "2014-05-29"] - [6 90 #inst "2015-09-16"] - [11 59 #inst "2014-10-13"] - [11 41 #inst "2015-11-07"] - [12 2 #inst "2015-04-23"] - [10 76 #inst "2013-10-18"] - [14 77 #inst "2014-02-04"] - [2 80 #inst "2014-01-04"] - [3 65 #inst "2015-08-15"] - [9 59 #inst "2013-04-03"] - [11 6 #inst "2015-11-10"] - [9 29 #inst "2013-06-30"] - [10 37 #inst "2014-06-27"] - [2 26 #inst "2013-12-11"] - [3 28 #inst "2013-03-05"] - [2 94 #inst "2015-03-13"] - [11 72 #inst "2015-10-05"] - [7 39 #inst "2014-08-15"] - [9 6 #inst "2014-05-18"] - [10 98 #inst "2013-04-26"] - [9 92 #inst "2014-02-18"] - [13 39 #inst "2014-08-09"] - [9 21 #inst "2014-08-12"] - [2 60 #inst "2014-01-27"] - [6 58 #inst "2013-07-22"] - [8 41 #inst "2014-05-16"] - [6 15 #inst "2014-08-30"] - [12 7 #inst "2015-04-21"] - [7 14 #inst "2014-09-01"] - [10 43 #inst "2014-11-27"] - [14 22 #inst "2014-05-22"] - [2 48 #inst "2015-11-22"] - [9 92 #inst "2014-02-12"] - [8 48 #inst "2015-10-26"] - [13 97 #inst "2015-05-09"] - [6 12 #inst "2014-07-14"] - [11 22 #inst "2013-06-17"] - [4 23 #inst "2013-03-23"] - [10 68 #inst "2014-06-22"] - [5 78 #inst "2014-07-16"] - [4 32 #inst "2015-03-01"] - [10 33 #inst "2014-05-23"] - [10 6 #inst "2013-07-07"] - [7 98 #inst "2015-04-04"] - [14 29 #inst "2015-02-03"] - [2 53 #inst "2014-09-08"] - [9 43 #inst "2014-07-30"] - [14 74 #inst "2015-11-01"] - [3 94 #inst "2014-09-27"] - [11 86 #inst "2015-09-27"] - [1 50 #inst "2014-11-07"] - [4 43 #inst "2013-06-19"] - [2 85 #inst "2015-07-28"] - [5 24 #inst "2014-11-09"] - [14 88 #inst "2014-08-26"] - [6 61 #inst "2014-08-09"] - [2 83 #inst "2015-12-19"] - [1 38 #inst "2015-07-25"] - [6 49 #inst "2015-01-25"] - [12 31 #inst "2015-02-09"] - [6 61 #inst "2014-11-28"] - [5 50 #inst "2013-06-12"] - [7 81 #inst "2014-11-03"] - [9 48 #inst "2014-03-27"] - [6 72 #inst "2014-09-24"] - [4 59 #inst "2013-10-06"] - [8 48 #inst "2014-04-18"] - [11 88 #inst "2015-04-10"] - [10 67 #inst "2014-02-28"] - [2 74 #inst "2014-01-18"] - [10 70 #inst "2014-12-07"] - [4 53 #inst "2014-11-07"] - [8 81 #inst "2015-02-18"] - [3 72 #inst "2014-05-05"] - [15 72 #inst "2014-06-17"] - [4 8 #inst "2015-06-13"] - [8 73 #inst "2014-11-30"] - [8 93 #inst "2014-09-20"] - [14 44 #inst "2014-01-21"] - [8 68 #inst "2014-06-05"] - [5 94 #inst "2013-05-20"] - [3 7 #inst "2015-05-29"] - [7 49 #inst "2013-09-10"] - [7 49 #inst "2013-07-26"] - [15 74 #inst "2015-10-26"] - [7 66 #inst "2015-07-29"] - [8 93 #inst "2015-07-07"] - [13 79 #inst "2014-11-12"] - [6 7 #inst "2014-12-27"] - [3 80 #inst "2015-06-22"] - [13 6 #inst "2014-09-09"] - [3 82 #inst "2015-06-27"] - [12 13 #inst "2013-06-29"] - [14 86 #inst "2014-01-07"] - [5 66 #inst "2014-05-26"] - [14 62 #inst "2013-08-18"] - [10 97 #inst "2013-11-19"] - [6 94 #inst "2013-04-19"] - [2 41 #inst "2014-03-03"] - [13 74 #inst "2014-05-26"] - [7 63 #inst "2014-05-28"] - [14 31 #inst "2013-12-04"] - [13 41 #inst "2013-06-15"] - [12 51 #inst "2015-12-26"] - [4 65 #inst "2015-12-18"] - [5 64 #inst "2013-08-02"] - [12 18 #inst "2013-10-24"] - [4 38 #inst "2014-04-26"] - [7 30 #inst "2014-09-18"] - [5 17 #inst "2014-05-18"] - [2 76 #inst "2015-09-04"] - [13 42 #inst "2015-05-26"] - [9 74 #inst "2014-08-01"] - [7 42 #inst "2013-06-21"] - [3 26 #inst "2015-09-28"] - [4 27 #inst "2013-05-14"] - [12 21 #inst "2013-05-26"] - [13 20 #inst "2015-07-15"] - [2 85 #inst "2014-05-02"] - [7 52 #inst "2014-10-21"] - [5 3 #inst "2014-05-04"] - [5 79 #inst "2014-07-11"] - [3 10 #inst "2014-05-31"] - [9 2 #inst "2015-01-28"] - [3 85 #inst "2013-11-13"] - [5 40 #inst "2015-09-11"] - [11 70 #inst "2015-09-20"] - [5 86 #inst "2014-12-05"] - [3 86 #inst "2014-04-24"] - [5 52 #inst "2014-11-05"] - [9 72 #inst "2013-11-22"] - [8 27 #inst "2015-09-28"] - [8 48 #inst "2014-08-02"] - [1 35 #inst "2014-05-26"] - [11 6 #inst "2014-10-16"] - [1 58 #inst "2013-11-18"] - [8 90 #inst "2014-08-03"] - [5 47 #inst "2013-09-02"] - [11 88 #inst "2013-12-11"] - [3 71 #inst "2014-09-26"] - [14 66 #inst "2015-06-13"] - [6 27 #inst "2015-08-16"] - [4 42 #inst "2015-01-30"] - [10 67 #inst "2014-12-09"] - [3 75 #inst "2015-10-08"] - [9 68 #inst "2013-11-09"] - [9 87 #inst "2014-11-08"] - [5 12 #inst "2014-02-05"] - [13 87 #inst "2013-04-23"] - [3 72 #inst "2015-05-25"] - [3 95 #inst "2015-12-18"] - [4 43 #inst "2013-04-14"] - [6 17 #inst "2014-06-28"] - [12 32 #inst "2014-01-05"] - [14 96 #inst "2013-04-13"] - [1 76 #inst "2015-10-29"] - [5 93 #inst "2014-08-21"] - [14 53 #inst "2013-11-18"] - [14 20 #inst "2014-10-25"] - [3 91 #inst "2015-10-19"] - [8 8 #inst "2015-11-21"] - [13 34 #inst "2013-08-20"] - [2 54 #inst "2014-05-08"] - [3 66 #inst "2014-10-16"] - [3 57 #inst "2014-09-16"] - [10 12 #inst "2015-04-12"] - [10 93 #inst "2014-01-04"] - [6 20 #inst "2014-03-18"] - [14 50 #inst "2015-08-20"] - [7 35 #inst "2014-07-24"] - [9 25 #inst "2014-07-08"] - [13 43 #inst "2014-12-23"] - [3 43 #inst "2014-10-06"] - [3 58 #inst "2014-06-10"] - [8 59 #inst "2013-07-05"] - [8 9 #inst "2014-03-02"] - [12 11 #inst "2013-11-12"] - [8 82 #inst "2014-12-19"] - [3 88 #inst "2014-03-23"] - [10 81 #inst "2015-07-01"] - [4 31 #inst "2014-05-01"] - [1 10 #inst "2013-03-12"] - [7 98 #inst "2015-04-21"] - [10 69 #inst "2013-05-03"] - [4 7 #inst "2014-11-09"] - [11 57 #inst "2014-06-05"] - [4 75 #inst "2013-08-20"] - [10 8 #inst "2014-10-06"] - [9 48 #inst "2015-10-06"] - [14 38 #inst "2013-04-14"] - [6 41 #inst "2014-10-25"] - [5 14 #inst "2013-05-07"] - [11 38 #inst "2015-05-13"] - [3 33 #inst "2014-11-08"] - [1 72 #inst "2013-07-25"] - [10 84 #inst "2013-04-07"] - [10 24 #inst "2014-06-25"] - [3 50 #inst "2013-02-06"] - [14 18 #inst "2015-10-28"] - [7 95 #inst "2014-10-15"] - [13 86 #inst "2014-05-05"] - [14 72 #inst "2015-08-05"] - [13 24 #inst "2015-10-22"] - [10 19 #inst "2014-07-06"] - [1 26 #inst "2014-12-31"] - [9 12 #inst "2014-06-29"] - [8 32 #inst "2013-08-04"] - [3 28 #inst "2015-09-19"] - [15 37 #inst "2014-10-23"] - [8 8 #inst "2014-09-16"] - [7 100 #inst "2014-01-19"] - [8 85 #inst "2014-03-31"] - [8 23 #inst "2014-02-18"] - [4 95 #inst "2015-03-03"] - [11 93 #inst "2013-10-28"] - [6 75 #inst "2014-07-25"] - [10 18 #inst "2013-08-27"] - [14 68 #inst "2013-02-20"] - [12 13 #inst "2015-02-14"] - [4 2 #inst "2013-02-27"] - [7 81 #inst "2013-04-16"] - [3 21 #inst "2013-04-07"] - [6 43 #inst "2014-09-30"] - [5 73 #inst "2014-11-29"] - [2 38 #inst "2014-08-09"] - [14 60 #inst "2014-04-29"] - [10 90 #inst "2015-12-29"] - [7 3 #inst "2015-06-27"] - [2 18 #inst "2014-10-14"] - [4 95 #inst "2013-05-27"] - [4 65 #inst "2014-06-24"] - [10 32 #inst "2014-08-02"] - [13 72 #inst "2013-02-22"] - [4 9 #inst "2014-02-07"] - [12 49 #inst "2014-11-18"] - [11 99 #inst "2014-06-29"] - [10 30 #inst "2014-04-21"] - [12 5 #inst "2014-03-26"] - [7 56 #inst "2014-01-04"] - [9 16 #inst "2013-10-11"] - [6 44 #inst "2013-11-11"] - [2 27 #inst "2015-03-18"] - [12 25 #inst "2014-11-08"] - [1 7 #inst "2015-05-29"] - [7 91 #inst "2015-06-18"] - [6 89 #inst "2015-11-16"] - [8 12 #inst "2013-10-01"] - [5 9 #inst "2013-04-18"] - [3 81 #inst "2014-05-01"] - [7 53 #inst "2013-03-26"] - [6 45 #inst "2014-02-13"] - [8 84 #inst "2015-04-20"] - [5 2 #inst "2013-10-02"] - [8 7 #inst "2014-09-10"] - [15 41 #inst "2013-07-19"] - [13 18 #inst "2014-07-24"] - [14 54 #inst "2015-09-18"] - [11 84 #inst "2014-08-13"] - [7 56 #inst "2014-03-29"] - [13 37 #inst "2014-05-21"] - [4 96 #inst "2014-04-30"] - [6 76 #inst "2014-09-16"] - [5 21 #inst "2014-07-08"] - [8 61 #inst "2014-03-10"] - [5 26 #inst "2014-09-05"] - [8 100 #inst "2013-05-29"] - [3 47 #inst "2014-05-08"] - [7 46 #inst "2015-10-04"] - [5 73 #inst "2014-02-10"] - [1 54 #inst "2014-02-08"] - [12 46 #inst "2014-06-29"] - [14 46 #inst "2014-10-16"] - [10 69 #inst "2015-10-29"] - [1 39 #inst "2013-06-03"] - [3 23 #inst "2014-03-09"] - [10 43 #inst "2014-07-13"] - [14 95 #inst "2014-04-17"] - [10 75 #inst "2014-03-17"] - [4 50 #inst "2013-02-18"] - [12 43 #inst "2013-11-01"] - [9 33 #inst "2015-07-02"] - [4 91 #inst "2013-04-02"] - [15 16 #inst "2014-04-12"] - [3 42 #inst "2014-02-10"] - [12 65 #inst "2014-03-20"] - [13 72 #inst "2015-07-22"] - [13 86 #inst "2015-05-01"] - [13 93 #inst "2013-03-19"] - [10 49 #inst "2013-12-19"] - [13 8 #inst "2014-12-05"] - [15 52 #inst "2015-08-09"] - [7 95 #inst "2013-12-11"] - [9 90 #inst "2014-10-10"] - [8 50 #inst "2015-03-05"] - [6 11 #inst "2014-01-12"] - [13 26 #inst "2014-08-25"] - [3 39 #inst "2014-10-14"] - [8 36 #inst "2015-11-13"] - [5 97 #inst "2014-05-20"] - [10 35 #inst "2014-05-07"] - [11 74 #inst "2015-04-06"] - [15 75 #inst "2013-04-28"] - [2 88 #inst "2014-01-18"] - [9 58 #inst "2014-04-16"] - [6 41 #inst "2014-11-05"] - [10 44 #inst "2015-04-11"] - [10 64 #inst "2013-07-20"] - [10 19 #inst "2014-02-12"] - [4 13 #inst "2014-03-01"] - [13 27 #inst "2014-04-02"] - [15 33 #inst "2013-03-28"] - [3 6 #inst "2015-09-05"] - [7 63 #inst "2014-03-08"] - [12 94 #inst "2014-09-23"] - [7 38 #inst "2014-04-03"] - [11 85 #inst "2014-02-17"] - [9 76 #inst "2014-07-13"] - [8 83 #inst "2014-05-28"] - [14 42 #inst "2015-02-03"] - [4 35 #inst "2014-03-25"] - [7 58 #inst "2014-03-25"] - [3 54 #inst "2014-02-25"] - [5 60 #inst "2014-12-16"] - [9 100 #inst "2014-05-20"] - [12 6 #inst "2014-04-09"] - [3 76 #inst "2013-07-29"] - [8 73 #inst "2013-04-26"] - [13 33 #inst "2014-11-03"] - [6 45 #inst "2014-05-17"] - [5 87 #inst "2014-10-07"] - [5 90 #inst "2015-07-21"] - [9 36 #inst "2015-08-26"] - [7 57 #inst "2015-05-21"] - [9 20 #inst "2013-10-03"] - [4 13 #inst "2013-05-18"] - [13 63 #inst "2014-03-22"] - [5 42 #inst "2015-08-22"] - [9 49 #inst "2015-03-02"] - [6 15 #inst "2014-10-02"] - [7 17 #inst "2013-07-18"] - [11 63 #inst "2014-02-17"] - [3 90 #inst "2013-02-26"] - [13 90 #inst "2013-06-08"] - [6 46 #inst "2014-03-24"] - [15 91 #inst "2014-02-19"] - [10 65 #inst "2014-10-10"] - [3 76 #inst "2014-05-08"] - [13 43 #inst "2014-02-11"] - [7 15 #inst "2015-07-09"] - [1 36 #inst "2014-03-03"] - [9 59 #inst "2014-08-03"] - [5 86 #inst "2015-04-02"] - [14 63 #inst "2014-07-11"] - [5 94 #inst "2013-11-24"] - [14 54 #inst "2014-08-03"] - [2 37 #inst "2014-08-02"] - [4 62 #inst "2015-11-08"] - [7 17 #inst "2013-10-01"] - [13 59 #inst "2014-01-03"] - [4 22 #inst "2013-03-14"] - [3 94 #inst "2015-12-16"] - [14 89 #inst "2014-06-06"] - [15 23 #inst "2015-08-19"] - [8 12 #inst "2015-03-17"] - [8 93 #inst "2015-05-29"] - [3 20 #inst "2013-05-20"] - [9 2 #inst "2013-04-03"] - [13 73 #inst "2014-06-30"] - [10 5 #inst "2015-05-04"] - [4 98 #inst "2014-08-29"] - [5 38 #inst "2015-04-15"] - [3 41 #inst "2014-10-19"] - [2 53 #inst "2013-06-21"] - [12 97 #inst "2015-11-03"] - [15 68 #inst "2013-05-06"] - [15 22 #inst "2013-08-16"] - [11 57 #inst "2013-05-01"] - [6 91 #inst "2015-02-22"] - [2 63 #inst "2014-04-22"] - [13 70 #inst "2013-03-06"] - [11 86 #inst "2013-11-02"] - [13 23 #inst "2015-05-26"] - [12 5 #inst "2013-11-17"] - [5 43 #inst "2015-12-02"] - [11 96 #inst "2014-03-26"] - [2 90 #inst "2013-12-03"] - [10 21 #inst "2014-08-24"] - [11 20 #inst "2014-10-28"] - [13 44 #inst "2015-09-11"] - [11 57 #inst "2014-08-02"] - [6 45 #inst "2014-09-29"] - [13 68 #inst "2014-08-03"] - [9 75 #inst "2015-07-24"] - [7 37 #inst "2014-10-06"] - [6 21 #inst "2014-11-06"] - [14 49 #inst "2013-11-22"] - [7 67 #inst "2014-08-03"] - [4 75 #inst "2014-10-20"] - [13 13 #inst "2015-08-26"] - [2 58 #inst "2014-09-01"] - [2 23 #inst "2013-03-19"] - [4 38 #inst "2014-10-03"] - [7 26 #inst "2015-10-06"] - [2 93 #inst "2014-10-23"] - [2 41 #inst "2014-07-02"] - [7 99 #inst "2014-10-18"] - [14 64 #inst "2014-09-10"] - [10 9 #inst "2014-10-25"] - [6 48 #inst "2014-12-25"] - [8 58 #inst "2014-02-18"] - [3 35 #inst "2014-08-25"] - [6 98 #inst "2014-07-01"] - [8 97 #inst "2013-09-16"] - [13 26 #inst "2014-09-22"] - [2 91 #inst "2014-04-15"] - [6 20 #inst "2015-06-30"] - [15 74 #inst "2014-06-13"] - [7 62 #inst "2014-10-13"] - [7 95 #inst "2014-06-03"] - [1 96 #inst "2014-10-16"] - [9 84 #inst "2013-10-20"] - [4 55 #inst "2014-09-24"] - [13 86 #inst "2014-02-16"] - [14 9 #inst "2015-02-05"] - [9 37 #inst "2014-06-19"] - [3 12 #inst "2015-11-13"] - [10 91 #inst "2014-06-10"] - [1 13 #inst "2013-10-29"] - [4 57 #inst "2013-05-10"] - [5 57 #inst "2014-05-28"] - [14 31 #inst "2013-06-18"] - [3 29 #inst "2014-06-16"] - [7 93 #inst "2015-06-07"] - [7 87 #inst "2015-11-21"] - [9 53 #inst "2015-09-26"] - [14 93 #inst "2014-10-20"] - [14 37 #inst "2014-08-14"] - [3 30 #inst "2013-03-21"] - [10 82 #inst "2013-06-05"] - [4 40 #inst "2015-07-17"] - [8 45 #inst "2014-09-08"] - [6 84 #inst "2013-02-15"] - [11 87 #inst "2015-11-06"] - [10 93 #inst "2014-12-24"] - [2 54 #inst "2014-08-02"] - [3 34 #inst "2014-05-07"] - [13 48 #inst "2014-10-01"] - [4 48 #inst "2014-10-24"] - [1 46 #inst "2015-04-25"] - [14 85 #inst "2015-03-15"] - [4 37 #inst "2014-03-05"] - [6 62 #inst "2014-02-20"] - [2 73 #inst "2014-08-20"] - [2 14 #inst "2013-09-29"] - [6 83 #inst "2013-09-01"] - [11 89 #inst "2013-10-16"] - [3 58 #inst "2013-12-04"] - [3 36 #inst "2014-06-22"] - [5 96 #inst "2015-06-26"] - [5 18 #inst "2014-04-22"] - [4 54 #inst "2014-10-29"] - [9 31 #inst "2013-09-29"] - [12 49 #inst "2015-04-19"] - [3 38 #inst "2013-01-26"] - [4 88 #inst "2013-01-03"] - [12 58 #inst "2015-11-25"] - [12 58 #inst "2015-08-24"] - [15 3 #inst "2015-05-22"] - [10 17 #inst "2013-05-04"] - [6 85 #inst "2013-08-10"] - [7 18 #inst "2015-07-09"] - [12 67 #inst "2015-06-15"] - [8 96 #inst "2015-02-22"] - [15 88 #inst "2015-02-13"] - [8 70 #inst "2015-12-22"] - [8 48 #inst "2014-10-04"] - [3 91 #inst "2013-06-05"] - [8 83 #inst "2014-11-06"] - [12 5 #inst "2013-11-28"] - [13 88 #inst "2014-03-29"] - [2 73 #inst "2014-11-02"] - [7 13 #inst "2013-10-22"] - [13 17 #inst "2015-06-16"] - [7 11 #inst "2014-03-09"] - [2 84 #inst "2014-03-06"] - [8 79 #inst "2014-06-13"] - [2 77 #inst "2014-04-10"] - [3 40 #inst "2014-05-11"] - [8 30 #inst "2013-03-06"] - [1 47 #inst "2014-12-07"] - [11 49 #inst "2014-12-21"] - [5 39 #inst "2014-10-31"] - [3 98 #inst "2014-10-22"] - [9 20 #inst "2015-04-09"] - [13 66 #inst "2013-07-23"] - [15 18 #inst "2013-04-26"] - [9 37 #inst "2013-02-06"] - [12 79 #inst "2014-09-07"] - [8 49 #inst "2014-04-26"] - [6 87 #inst "2015-07-01"] - [2 70 #inst "2015-09-27"] - [7 44 #inst "2014-11-05"] - [6 65 #inst "2014-11-27"] - [8 51 #inst "2015-09-07"] - [6 11 #inst "2015-08-21"] - [11 76 #inst "2014-05-21"] - [5 94 #inst "2014-09-20"] - [1 97 #inst "2015-04-05"] - [2 20 #inst "2014-11-21"] - [9 25 #inst "2014-06-03"] - [4 10 #inst "2013-09-21"] - [14 78 #inst "2013-09-14"] - [6 34 #inst "2014-05-30"] - [1 16 #inst "2014-03-30"] - [15 36 #inst "2014-09-23"] - [8 5 #inst "2013-08-21"] - [11 39 #inst "2014-10-10"] - [4 66 #inst "2014-03-16"] - [12 74 #inst "2014-10-07"] - [6 76 #inst "2015-08-09"] - [14 62 #inst "2015-07-22"] - [14 98 #inst "2015-08-13"] - [8 40 #inst "2014-04-03"] - [3 33 #inst "2014-11-13"] - [12 42 #inst "2014-05-09"] - [8 77 #inst "2015-09-24"] - [2 16 #inst "2014-12-09"] - [4 29 #inst "2015-05-29"] - [11 49 #inst "2014-03-05"] - [13 58 #inst "2014-04-29"] - [9 34 #inst "2014-05-04"] - [12 5 #inst "2015-04-16"] - [7 67 #inst "2015-02-07"] - [2 92 #inst "2014-06-03"]]]] + [[5 12 #t "2014-04-07"] + [1 31 #t "2014-09-18"] + [8 56 #t "2014-09-15"] + [5 4 #t "2014-03-11"] + [3 49 #t "2013-05-05"] + [3 35 #t "2015-07-04"] + [12 6 #t "2014-04-11"] + [11 16 #t "2014-05-13"] + [3 79 #t "2014-05-26"] + [3 55 #t "2015-08-22"] + [15 23 #t "2013-03-25"] + [5 25 #t "2014-11-16"] + [6 80 #t "2014-05-17"] + [9 93 #t "2015-09-07"] + [5 61 #t "2015-02-19"] + [11 34 #t "2015-02-19"] + [8 69 #t "2014-08-31"] + [3 27 #t "2015-08-05"] + [11 70 #t "2014-07-31"] + [11 81 #t "2014-09-14"] + [4 73 #t "2015-12-10"] + [8 18 #t "2015-02-17"] + [8 71 #t "2014-04-02"] + [12 45 #t "2014-04-04"] + [12 31 #t "2014-07-05"] + [8 67 #t "2014-05-17"] + [11 57 #t "2015-02-15"] + [10 100 #t "2015-05-02"] + [15 7 #t "2014-09-27"] + [5 48 #t "2014-07-20"] + [8 27 #t "2013-05-12"] + [14 31 #t "2014-02-17"] + [5 6 #t "2015-10-07"] + [14 28 #t "2014-09-26"] + [10 56 #t "2014-07-19"] + [8 19 #t "2015-09-29"] + [4 48 #t "2015-11-19"] + [10 11 #t "2015-11-15"] + [11 65 #t "2015-04-30"] + [6 6 #t "2014-09-14"] + [10 62 #t "2013-07-05"] + [11 88 #t "2015-03-05"] + [5 51 #t "2015-11-30"] + [2 61 #t "2013-11-19"] + [9 59 #t "2013-08-24"] + [9 66 #t "2015-06-26"] + [14 67 #t "2014-07-19"] + [12 15 #t "2015-07-18"] + [5 12 #t "2015-04-07"] + [8 13 #t "2013-08-02"] + [13 30 #t "2014-06-28"] + [4 8 #t "2014-10-13"] + [6 65 #t "2014-05-05"] + [4 93 #t "2015-05-08"] + [15 14 #t "2014-12-22"] + [3 99 #t "2014-07-24"] + [2 15 #t "2015-03-06"] + [4 40 #t "2015-11-09"] + [13 24 #t "2014-06-11"] + [10 69 #t "2014-03-24"] + [3 15 #t "2013-11-01"] + [10 3 #t "2013-05-28"] + [5 15 #t "2015-12-24"] + [6 34 #t "2014-08-18"] + [7 29 #t "2014-04-13"] + [6 86 #t "2015-02-21"] + [3 28 #t "2014-05-25"] + [5 29 #t "2014-09-16"] + [8 85 #t "2014-03-14"] + [11 65 #t "2014-11-20"] + [14 93 #t "2014-01-07"] + [1 1 #t "2015-04-18"] + [11 75 #t "2013-08-07"] + [11 91 #t "2015-11-14"] + [7 97 #t "2015-09-11"] + [9 9 #t "2014-03-28"] + [14 33 #t "2014-03-03"] + [4 3 #t "2015-03-02"] + [8 19 #t "2014-05-07"] + [1 99 #t "2013-12-27"] + [7 18 #t "2013-07-23"] + [13 30 #t "2014-06-28"] + [11 17 #t "2015-02-19"] + [12 58 #t "2015-12-02"] + [13 82 #t "2014-11-15"] + [8 69 #t "2015-07-01"] + [14 95 #t "2014-08-18"] + [6 75 #t "2015-05-29"] + [14 83 #t "2013-10-29"] + [7 66 #t "2014-02-10"] + [11 73 #t "2015-04-09"] + [4 93 #t "2014-08-02"] + [2 18 #t "2013-07-02"] + [10 17 #t "2015-02-09"] + [8 60 #t "2013-10-27"] + [13 24 #t "2014-02-11"] + [2 71 #t "2014-11-25"] + [11 29 #t "2014-01-04"] + [13 91 #t "2015-11-27"] + [9 21 #t "2014-07-26"] + [11 99 #t "2015-09-04"] + [5 44 #t "2013-12-02"] + [8 51 #t "2015-04-10"] + [8 9 #t "2015-09-26"] + [11 19 #t "2014-12-01"] + [2 38 #t "2014-02-10"] + [10 12 #t "2014-07-14"] + [10 30 #t "2013-12-15"] + [8 33 #t "2013-03-16"] + [9 49 #t "2015-09-17"] + [6 38 #t "2013-05-19"] + [15 93 #t "2014-03-12"] + [2 36 #t "2013-01-27"] + [7 98 #t "2015-09-17"] + [4 6 #t "2015-09-18"] + [6 34 #t "2013-09-16"] + [11 73 #t "2014-02-20"] + [14 46 #t "2014-07-05"] + [1 44 #t "2014-10-18"] + [10 83 #t "2013-12-22"] + [3 21 #t "2014-11-05"] + [12 57 #t "2014-12-19"] + [10 77 #t "2015-07-25"] + [10 97 #t "2013-08-05"] + [14 8 #t "2015-04-16"] + [12 13 #t "2015-09-11"] + [15 81 #t "2015-10-29"] + [13 17 #t "2014-08-18"] + [15 2 #t "2014-08-25"] + [8 74 #t "2014-08-11"] + [7 90 #t "2013-02-13"] + [4 84 #t "2014-08-26"] + [10 87 #t "2014-01-09"] + [8 88 #t "2013-08-21"] + [6 85 #t "2015-12-26"] + [8 62 #t "2014-05-21"] + [4 97 #t "2015-02-15"] + [4 65 #t "2014-02-11"] + [9 1 #t "2015-10-08"] + [13 96 #t "2014-10-10"] + [10 83 #t "2015-11-22"] + [15 24 #t "2013-07-24"] + [10 38 #t "2014-09-14"] + [12 3 #t "2015-11-13"] + [4 78 #t "2014-10-13"] + [14 12 #t "2014-07-17"] + [3 18 #t "2014-05-31"] + [11 10 #t "2013-10-19"] + [11 81 #t "2013-03-13"] + [5 61 #t "2014-11-21"] + [13 81 #t "2014-12-17"] + [13 24 #t "2014-09-04"] + [8 54 #t "2013-02-21"] + [10 42 #t "2014-07-08"] + [7 97 #t "2014-09-23"] + [3 14 #t "2013-03-08"] + [12 58 #t "2014-01-31"] + [11 100 #t "2015-09-04"] + [8 90 #t "2014-03-06"] + [12 20 #t "2015-05-05"] + [3 47 #t "2014-06-30"] + [5 44 #t "2015-01-04"] + [1 47 #t "2013-09-10"] + [7 11 #t "2015-05-22"] + [15 87 #t "2013-12-29"] + [2 66 #t "2014-07-17"] + [2 52 #t "2014-07-09"] + [11 3 #t "2015-06-29"] + [9 12 #t "2013-09-16"] + [2 39 #t "2014-07-17"] + [11 3 #t "2014-03-13"] + [10 47 #t "2015-03-04"] + [15 78 #t "2015-08-21"] + [12 3 #t "2014-04-19"] + [11 45 #t "2014-11-07"] + [2 75 #t "2013-05-03"] + [10 9 #t "2013-03-08"] + [2 51 #t "2013-10-04"] + [4 4 #t "2014-07-10"] + [8 57 #t "2014-07-16"] + [8 38 #t "2014-08-15"] + [5 31 #t "2014-01-06"] + [3 54 #t "2015-05-27"] + [10 84 #t "2015-07-05"] + [5 54 #t "2013-03-01"] + [3 43 #t "2015-08-06"] + [8 70 #t "2014-11-09"] + [2 59 #t "2014-07-30"] + [11 18 #t "2015-01-14"] + [9 75 #t "2013-06-30"] + [13 41 #t "2015-08-01"] + [7 87 #t "2014-02-06"] + [6 91 #t "2013-03-19"] + [7 90 #t "2013-06-23"] + [8 61 #t "2014-04-11"] + [5 35 #t "2014-10-28"] + [2 82 #t "2014-06-09"] + [9 35 #t "2013-10-23"] + [6 52 #t "2014-09-28"] + [6 96 #t "2015-09-04"] + [11 59 #t "2015-09-18"] + [12 34 #t "2015-08-09"] + [10 80 #t "2015-04-08"] + [4 78 #t "2015-03-01"] + [6 4 #t "2015-09-01"] + [4 35 #t "2014-07-07"] + [13 50 #t "2013-06-23"] + [11 69 #t "2014-03-17"] + [10 62 #t "2013-03-15"] + [13 31 #t "2015-03-27"] + [13 42 #t "2014-10-02"] + [14 86 #t "2013-05-14"] + [4 83 #t "2014-08-13"] + [9 21 #t "2015-04-18"] + [14 90 #t "2014-06-15"] + [12 65 #t "2015-05-05"] + [7 57 #t "2013-03-08"] + [12 70 #t "2014-09-06"] + [11 16 #t "2014-02-09"] + [7 38 #t "2013-10-12"] + [2 40 #t "2014-03-09"] + [8 52 #t "2015-06-22"] + [7 84 #t "2013-01-22"] + [9 4 #t "2014-08-20"] + [2 4 #t "2014-03-04"] + [8 56 #t "2014-02-03"] + [6 23 #t "2013-10-29"] + [7 87 #t "2013-10-02"] + [5 28 #t "2014-02-14"] + [5 19 #t "2013-09-08"] + [2 13 #t "2014-06-30"] + [12 65 #t "2013-07-25"] + [4 73 #t "2015-11-06"] + [7 56 #t "2013-07-14"] + [1 46 #t "2014-03-09"] + [13 58 #t "2013-07-10"] + [4 68 #t "2013-04-12"] + [14 86 #t "2014-03-09"] + [7 89 #t "2014-11-22"] + [4 42 #t "2014-04-13"] + [13 83 #t "2014-10-19"] + [10 66 #t "2014-07-07"] + [11 69 #t "2013-08-19"] + [2 18 #t "2014-11-28"] + [12 7 #t "2015-08-16"] + [7 45 #t "2014-03-20"] + [8 85 #t "2014-10-09"] + [13 27 #t "2014-05-16"] + [8 6 #t "2014-08-24"] + [9 52 #t "2013-04-11"] + [2 75 #t "2015-02-26"] + [11 65 #t "2014-05-29"] + [7 30 #t "2013-06-03"] + [11 14 #t "2013-06-26"] + [11 61 #t "2014-11-09"] + [8 81 #t "2013-06-27"] + [10 92 #t "2014-05-07"] + [3 52 #t "2014-01-26"] + [5 56 #t "2014-11-14"] + [11 75 #t "2014-04-02"] + [9 13 #t "2014-10-22"] + [4 25 #t "2015-05-18"] + [10 70 #t "2015-05-04"] + [2 48 #t "2014-06-21"] + [6 78 #t "2014-03-28"] + [12 68 #t "2014-10-24"] + [10 8 #t "2014-02-26"] + [5 63 #t "2015-10-12"] + [14 66 #t "2015-08-06"] + [2 3 #t "2014-05-14"] + [3 36 #t "2014-04-27"] + [11 71 #t "2015-04-24"] + [1 85 #t "2015-03-02"] + [13 68 #t "2015-06-22"] + [5 34 #t "2014-09-25"] + [2 75 #t "2014-07-29"] + [7 13 #t "2014-10-03"] + [12 86 #t "2014-01-10"] + [13 100 #t "2015-07-17"] + [8 59 #t "2014-10-15"] + [15 27 #t "2014-05-17"] + [13 83 #t "2013-10-11"] + [2 68 #t "2014-06-03"] + [10 23 #t "2013-04-08"] + [12 17 #t "2013-01-10"] + [8 89 #t "2014-05-01"] + [4 11 #t "2013-06-12"] + [3 97 #t "2015-05-22"] + [14 77 #t "2013-10-19"] + [10 69 #t "2014-10-10"] + [13 79 #t "2014-11-11"] + [5 95 #t "2014-07-22"] + [14 33 #t "2015-08-26"] + [2 75 #t "2014-07-10"] + [7 97 #t "2014-03-01"] + [6 88 #t "2014-08-04"] + [12 73 #t "2013-11-16"] + [14 61 #t "2013-05-21"] + [9 43 #t "2015-03-07"] + [4 44 #t "2013-08-20"] + [15 61 #t "2015-07-18"] + [11 98 #t "2014-09-29"] + [11 32 #t "2013-08-02"] + [3 94 #t "2014-12-06"] + [4 48 #t "2015-08-20"] + [11 59 #t "2014-07-21"] + [9 77 #t "2014-06-05"] + [7 10 #t "2015-04-23"] + [7 17 #t "2013-04-01"] + [9 45 #t "2015-02-13"] + [3 2 #t "2014-12-23"] + [9 85 #t "2014-12-11"] + [6 22 #t "2015-04-24"] + [12 96 #t "2013-06-11"] + [1 78 #t "2014-06-09"] + [13 29 #t "2014-02-10"] + [3 54 #t "2013-01-19"] + [11 60 #t "2014-08-30"] + [2 16 #t "2013-11-27"] + [9 41 #t "2014-05-14"] + [10 98 #t "2014-01-26"] + [13 98 #t "2015-07-01"] + [12 4 #t "2015-10-04"] + [1 63 #t "2014-03-14"] + [11 2 #t "2015-10-23"] + [14 64 #t "2014-05-27"] + [6 42 #t "2014-05-01"] + [2 44 #t "2014-09-26"] + [5 42 #t "2013-08-15"] + [5 39 #t "2013-04-26"] + [11 94 #t "2014-07-14"] + [4 17 #t "2015-08-18"] + [9 3 #t "2014-02-19"] + [3 75 #t "2014-05-18"] + [10 38 #t "2015-09-22"] + [10 74 #t "2013-03-28"] + [11 25 #t "2014-01-04"] + [7 20 #t "2014-09-14"] + [7 33 #t "2014-05-18"] + [2 40 #t "2013-02-19"] + [9 62 #t "2013-06-16"] + [6 5 #t "2014-11-25"] + [14 13 #t "2014-07-19"] + [4 82 #t "2013-04-24"] + [6 86 #t "2014-04-10"] + [15 66 #t "2013-05-31"] + [10 63 #t "2014-09-03"] + [13 46 #t "2014-06-25"] + [13 44 #t "2015-02-24"] + [5 82 #t "2014-06-19"] + [12 57 #t "2014-09-12"] + [5 96 #t "2015-03-16"] + [12 36 #t "2015-05-11"] + [6 100 #t "2015-11-28"] + [9 44 #t "2014-10-24"] + [13 70 #t "2014-04-03"] + [10 77 #t "2014-04-12"] + [13 42 #t "2015-07-23"] + [6 99 #t "2013-06-02"] + [9 22 #t "2015-07-06"] + [13 83 #t "2014-12-16"] + [13 27 #t "2014-07-20"] + [10 94 #t "2015-11-05"] + [13 70 #t "2015-01-23"] + [5 59 #t "2014-05-20"] + [12 61 #t "2013-01-25"] + [1 5 #t "2015-07-23"] + [5 95 #t "2013-08-19"] + [6 88 #t "2014-07-25"] + [3 54 #t "2013-11-07"] + [11 57 #t "2015-07-20"] + [7 27 #t "2014-08-26"] + [2 62 #t "2015-05-03"] + [4 36 #t "2014-04-14"] + [12 1 #t "2013-11-09"] + [4 27 #t "2013-07-14"] + [10 63 #t "2013-11-15"] + [6 31 #t "2014-05-22"] + [2 90 #t "2015-10-04"] + [8 2 #t "2013-12-03"] + [1 86 #t "2015-09-23"] + [7 46 #t "2014-09-05"] + [9 8 #t "2015-07-29"] + [1 51 #t "2014-05-30"] + [7 68 #t "2014-03-25"] + [14 74 #t "2015-02-23"] + [8 63 #t "2015-05-12"] + [1 68 #t "2013-04-11"] + [7 20 #t "2015-03-28"] + [14 28 #t "2014-07-24"] + [13 8 #t "2014-02-03"] + [3 40 #t "2013-09-27"] + [9 72 #t "2014-01-19"] + [11 15 #t "2013-05-14"] + [9 11 #t "2014-03-30"] + [4 10 #t "2014-12-03"] + [4 79 #t "2014-11-07"] + [4 74 #t "2013-05-09"] + [5 78 #t "2015-12-08"] + [12 74 #t "2015-06-04"] + [6 89 #t "2014-06-14"] + [2 87 #t "2013-01-23"] + [15 84 #t "2015-07-18"] + [4 65 #t "2015-03-11"] + [7 66 #t "2013-07-25"] + [10 14 #t "2013-11-29"] + [5 77 #t "2014-06-02"] + [8 74 #t "2013-04-30"] + [14 7 #t "2014-03-05"] + [4 45 #t "2013-11-05"] + [15 96 #t "2013-11-26"] + [4 45 #t "2015-01-15"] + [15 52 #t "2015-05-01"] + [6 46 #t "2014-02-25"] + [12 42 #t "2014-11-10"] + [13 17 #t "2014-05-20"] + [6 44 #t "2015-03-27"] + [3 71 #t "2014-04-14"] + [2 35 #t "2013-10-01"] + [9 74 #t "2015-03-03"] + [4 68 #t "2014-12-01"] + [6 40 #t "2013-11-25"] + [4 63 #t "2014-06-14"] + [11 12 #t "2013-08-05"] + [13 41 #t "2015-02-03"] + [11 13 #t "2014-10-05"] + [10 18 #t "2015-03-20"] + [5 20 #t "2014-05-11"] + [5 79 #t "2014-02-22"] + [7 15 #t "2013-04-15"] + [6 25 #t "2014-03-28"] + [14 9 #t "2014-08-12"] + [8 53 #t "2014-04-24"] + [9 78 #t "2014-07-02"] + [3 4 #t "2014-06-26"] + [7 3 #t "2015-10-29"] + [6 56 #t "2015-10-28"] + [4 65 #t "2014-08-12"] + [15 35 #t "2014-07-28"] + [8 49 #t "2014-09-01"] + [11 80 #t "2014-07-31"] + [10 51 #t "2015-03-01"] + [14 70 #t "2013-07-15"] + [12 18 #t "2013-10-06"] + [8 80 #t "2013-10-31"] + [15 91 #t "2013-11-16"] + [9 78 #t "2014-09-06"] + [9 88 #t "2013-06-04"] + [12 88 #t "2014-05-29"] + [7 22 #t "2013-06-07"] + [2 38 #t "2014-06-21"] + [4 7 #t "2014-05-07"] + [2 49 #t "2013-04-18"] + [13 56 #t "2014-07-19"] + [9 66 #t "2013-06-14"] + [9 57 #t "2014-07-29"] + [5 91 #t "2014-04-04"] + [10 46 #t "2015-06-08"] + [10 97 #t "2014-08-01"] + [2 53 #t "2014-07-04"] + [14 54 #t "2015-07-27"] + [2 81 #t "2013-08-17"] + [11 77 #t "2015-07-12"] + [13 39 #t "2013-08-03"] + [7 86 #t "2014-01-16"] + [14 68 #t "2014-05-07"] + [13 61 #t "2014-05-29"] + [6 90 #t "2015-09-16"] + [11 59 #t "2014-10-13"] + [11 41 #t "2015-11-07"] + [12 2 #t "2015-04-23"] + [10 76 #t "2013-10-18"] + [14 77 #t "2014-02-04"] + [2 80 #t "2014-01-04"] + [3 65 #t "2015-08-15"] + [9 59 #t "2013-04-03"] + [11 6 #t "2015-11-10"] + [9 29 #t "2013-06-30"] + [10 37 #t "2014-06-27"] + [2 26 #t "2013-12-11"] + [3 28 #t "2013-03-05"] + [2 94 #t "2015-03-13"] + [11 72 #t "2015-10-05"] + [7 39 #t "2014-08-15"] + [9 6 #t "2014-05-18"] + [10 98 #t "2013-04-26"] + [9 92 #t "2014-02-18"] + [13 39 #t "2014-08-09"] + [9 21 #t "2014-08-12"] + [2 60 #t "2014-01-27"] + [6 58 #t "2013-07-22"] + [8 41 #t "2014-05-16"] + [6 15 #t "2014-08-30"] + [12 7 #t "2015-04-21"] + [7 14 #t "2014-09-01"] + [10 43 #t "2014-11-27"] + [14 22 #t "2014-05-22"] + [2 48 #t "2015-11-22"] + [9 92 #t "2014-02-12"] + [8 48 #t "2015-10-26"] + [13 97 #t "2015-05-09"] + [6 12 #t "2014-07-14"] + [11 22 #t "2013-06-17"] + [4 23 #t "2013-03-23"] + [10 68 #t "2014-06-22"] + [5 78 #t "2014-07-16"] + [4 32 #t "2015-03-01"] + [10 33 #t "2014-05-23"] + [10 6 #t "2013-07-07"] + [7 98 #t "2015-04-04"] + [14 29 #t "2015-02-03"] + [2 53 #t "2014-09-08"] + [9 43 #t "2014-07-30"] + [14 74 #t "2015-11-01"] + [3 94 #t "2014-09-27"] + [11 86 #t "2015-09-27"] + [1 50 #t "2014-11-07"] + [4 43 #t "2013-06-19"] + [2 85 #t "2015-07-28"] + [5 24 #t "2014-11-09"] + [14 88 #t "2014-08-26"] + [6 61 #t "2014-08-09"] + [2 83 #t "2015-12-19"] + [1 38 #t "2015-07-25"] + [6 49 #t "2015-01-25"] + [12 31 #t "2015-02-09"] + [6 61 #t "2014-11-28"] + [5 50 #t "2013-06-12"] + [7 81 #t "2014-11-03"] + [9 48 #t "2014-03-27"] + [6 72 #t "2014-09-24"] + [4 59 #t "2013-10-06"] + [8 48 #t "2014-04-18"] + [11 88 #t "2015-04-10"] + [10 67 #t "2014-02-28"] + [2 74 #t "2014-01-18"] + [10 70 #t "2014-12-07"] + [4 53 #t "2014-11-07"] + [8 81 #t "2015-02-18"] + [3 72 #t "2014-05-05"] + [15 72 #t "2014-06-17"] + [4 8 #t "2015-06-13"] + [8 73 #t "2014-11-30"] + [8 93 #t "2014-09-20"] + [14 44 #t "2014-01-21"] + [8 68 #t "2014-06-05"] + [5 94 #t "2013-05-20"] + [3 7 #t "2015-05-29"] + [7 49 #t "2013-09-10"] + [7 49 #t "2013-07-26"] + [15 74 #t "2015-10-26"] + [7 66 #t "2015-07-29"] + [8 93 #t "2015-07-07"] + [13 79 #t "2014-11-12"] + [6 7 #t "2014-12-27"] + [3 80 #t "2015-06-22"] + [13 6 #t "2014-09-09"] + [3 82 #t "2015-06-27"] + [12 13 #t "2013-06-29"] + [14 86 #t "2014-01-07"] + [5 66 #t "2014-05-26"] + [14 62 #t "2013-08-18"] + [10 97 #t "2013-11-19"] + [6 94 #t "2013-04-19"] + [2 41 #t "2014-03-03"] + [13 74 #t "2014-05-26"] + [7 63 #t "2014-05-28"] + [14 31 #t "2013-12-04"] + [13 41 #t "2013-06-15"] + [12 51 #t "2015-12-26"] + [4 65 #t "2015-12-18"] + [5 64 #t "2013-08-02"] + [12 18 #t "2013-10-24"] + [4 38 #t "2014-04-26"] + [7 30 #t "2014-09-18"] + [5 17 #t "2014-05-18"] + [2 76 #t "2015-09-04"] + [13 42 #t "2015-05-26"] + [9 74 #t "2014-08-01"] + [7 42 #t "2013-06-21"] + [3 26 #t "2015-09-28"] + [4 27 #t "2013-05-14"] + [12 21 #t "2013-05-26"] + [13 20 #t "2015-07-15"] + [2 85 #t "2014-05-02"] + [7 52 #t "2014-10-21"] + [5 3 #t "2014-05-04"] + [5 79 #t "2014-07-11"] + [3 10 #t "2014-05-31"] + [9 2 #t "2015-01-28"] + [3 85 #t "2013-11-13"] + [5 40 #t "2015-09-11"] + [11 70 #t "2015-09-20"] + [5 86 #t "2014-12-05"] + [3 86 #t "2014-04-24"] + [5 52 #t "2014-11-05"] + [9 72 #t "2013-11-22"] + [8 27 #t "2015-09-28"] + [8 48 #t "2014-08-02"] + [1 35 #t "2014-05-26"] + [11 6 #t "2014-10-16"] + [1 58 #t "2013-11-18"] + [8 90 #t "2014-08-03"] + [5 47 #t "2013-09-02"] + [11 88 #t "2013-12-11"] + [3 71 #t "2014-09-26"] + [14 66 #t "2015-06-13"] + [6 27 #t "2015-08-16"] + [4 42 #t "2015-01-30"] + [10 67 #t "2014-12-09"] + [3 75 #t "2015-10-08"] + [9 68 #t "2013-11-09"] + [9 87 #t "2014-11-08"] + [5 12 #t "2014-02-05"] + [13 87 #t "2013-04-23"] + [3 72 #t "2015-05-25"] + [3 95 #t "2015-12-18"] + [4 43 #t "2013-04-14"] + [6 17 #t "2014-06-28"] + [12 32 #t "2014-01-05"] + [14 96 #t "2013-04-13"] + [1 76 #t "2015-10-29"] + [5 93 #t "2014-08-21"] + [14 53 #t "2013-11-18"] + [14 20 #t "2014-10-25"] + [3 91 #t "2015-10-19"] + [8 8 #t "2015-11-21"] + [13 34 #t "2013-08-20"] + [2 54 #t "2014-05-08"] + [3 66 #t "2014-10-16"] + [3 57 #t "2014-09-16"] + [10 12 #t "2015-04-12"] + [10 93 #t "2014-01-04"] + [6 20 #t "2014-03-18"] + [14 50 #t "2015-08-20"] + [7 35 #t "2014-07-24"] + [9 25 #t "2014-07-08"] + [13 43 #t "2014-12-23"] + [3 43 #t "2014-10-06"] + [3 58 #t "2014-06-10"] + [8 59 #t "2013-07-05"] + [8 9 #t "2014-03-02"] + [12 11 #t "2013-11-12"] + [8 82 #t "2014-12-19"] + [3 88 #t "2014-03-23"] + [10 81 #t "2015-07-01"] + [4 31 #t "2014-05-01"] + [1 10 #t "2013-03-12"] + [7 98 #t "2015-04-21"] + [10 69 #t "2013-05-03"] + [4 7 #t "2014-11-09"] + [11 57 #t "2014-06-05"] + [4 75 #t "2013-08-20"] + [10 8 #t "2014-10-06"] + [9 48 #t "2015-10-06"] + [14 38 #t "2013-04-14"] + [6 41 #t "2014-10-25"] + [5 14 #t "2013-05-07"] + [11 38 #t "2015-05-13"] + [3 33 #t "2014-11-08"] + [1 72 #t "2013-07-25"] + [10 84 #t "2013-04-07"] + [10 24 #t "2014-06-25"] + [3 50 #t "2013-02-06"] + [14 18 #t "2015-10-28"] + [7 95 #t "2014-10-15"] + [13 86 #t "2014-05-05"] + [14 72 #t "2015-08-05"] + [13 24 #t "2015-10-22"] + [10 19 #t "2014-07-06"] + [1 26 #t "2014-12-31"] + [9 12 #t "2014-06-29"] + [8 32 #t "2013-08-04"] + [3 28 #t "2015-09-19"] + [15 37 #t "2014-10-23"] + [8 8 #t "2014-09-16"] + [7 100 #t "2014-01-19"] + [8 85 #t "2014-03-31"] + [8 23 #t "2014-02-18"] + [4 95 #t "2015-03-03"] + [11 93 #t "2013-10-28"] + [6 75 #t "2014-07-25"] + [10 18 #t "2013-08-27"] + [14 68 #t "2013-02-20"] + [12 13 #t "2015-02-14"] + [4 2 #t "2013-02-27"] + [7 81 #t "2013-04-16"] + [3 21 #t "2013-04-07"] + [6 43 #t "2014-09-30"] + [5 73 #t "2014-11-29"] + [2 38 #t "2014-08-09"] + [14 60 #t "2014-04-29"] + [10 90 #t "2015-12-29"] + [7 3 #t "2015-06-27"] + [2 18 #t "2014-10-14"] + [4 95 #t "2013-05-27"] + [4 65 #t "2014-06-24"] + [10 32 #t "2014-08-02"] + [13 72 #t "2013-02-22"] + [4 9 #t "2014-02-07"] + [12 49 #t "2014-11-18"] + [11 99 #t "2014-06-29"] + [10 30 #t "2014-04-21"] + [12 5 #t "2014-03-26"] + [7 56 #t "2014-01-04"] + [9 16 #t "2013-10-11"] + [6 44 #t "2013-11-11"] + [2 27 #t "2015-03-18"] + [12 25 #t "2014-11-08"] + [1 7 #t "2015-05-29"] + [7 91 #t "2015-06-18"] + [6 89 #t "2015-11-16"] + [8 12 #t "2013-10-01"] + [5 9 #t "2013-04-18"] + [3 81 #t "2014-05-01"] + [7 53 #t "2013-03-26"] + [6 45 #t "2014-02-13"] + [8 84 #t "2015-04-20"] + [5 2 #t "2013-10-02"] + [8 7 #t "2014-09-10"] + [15 41 #t "2013-07-19"] + [13 18 #t "2014-07-24"] + [14 54 #t "2015-09-18"] + [11 84 #t "2014-08-13"] + [7 56 #t "2014-03-29"] + [13 37 #t "2014-05-21"] + [4 96 #t "2014-04-30"] + [6 76 #t "2014-09-16"] + [5 21 #t "2014-07-08"] + [8 61 #t "2014-03-10"] + [5 26 #t "2014-09-05"] + [8 100 #t "2013-05-29"] + [3 47 #t "2014-05-08"] + [7 46 #t "2015-10-04"] + [5 73 #t "2014-02-10"] + [1 54 #t "2014-02-08"] + [12 46 #t "2014-06-29"] + [14 46 #t "2014-10-16"] + [10 69 #t "2015-10-29"] + [1 39 #t "2013-06-03"] + [3 23 #t "2014-03-09"] + [10 43 #t "2014-07-13"] + [14 95 #t "2014-04-17"] + [10 75 #t "2014-03-17"] + [4 50 #t "2013-02-18"] + [12 43 #t "2013-11-01"] + [9 33 #t "2015-07-02"] + [4 91 #t "2013-04-02"] + [15 16 #t "2014-04-12"] + [3 42 #t "2014-02-10"] + [12 65 #t "2014-03-20"] + [13 72 #t "2015-07-22"] + [13 86 #t "2015-05-01"] + [13 93 #t "2013-03-19"] + [10 49 #t "2013-12-19"] + [13 8 #t "2014-12-05"] + [15 52 #t "2015-08-09"] + [7 95 #t "2013-12-11"] + [9 90 #t "2014-10-10"] + [8 50 #t "2015-03-05"] + [6 11 #t "2014-01-12"] + [13 26 #t "2014-08-25"] + [3 39 #t "2014-10-14"] + [8 36 #t "2015-11-13"] + [5 97 #t "2014-05-20"] + [10 35 #t "2014-05-07"] + [11 74 #t "2015-04-06"] + [15 75 #t "2013-04-28"] + [2 88 #t "2014-01-18"] + [9 58 #t "2014-04-16"] + [6 41 #t "2014-11-05"] + [10 44 #t "2015-04-11"] + [10 64 #t "2013-07-20"] + [10 19 #t "2014-02-12"] + [4 13 #t "2014-03-01"] + [13 27 #t "2014-04-02"] + [15 33 #t "2013-03-28"] + [3 6 #t "2015-09-05"] + [7 63 #t "2014-03-08"] + [12 94 #t "2014-09-23"] + [7 38 #t "2014-04-03"] + [11 85 #t "2014-02-17"] + [9 76 #t "2014-07-13"] + [8 83 #t "2014-05-28"] + [14 42 #t "2015-02-03"] + [4 35 #t "2014-03-25"] + [7 58 #t "2014-03-25"] + [3 54 #t "2014-02-25"] + [5 60 #t "2014-12-16"] + [9 100 #t "2014-05-20"] + [12 6 #t "2014-04-09"] + [3 76 #t "2013-07-29"] + [8 73 #t "2013-04-26"] + [13 33 #t "2014-11-03"] + [6 45 #t "2014-05-17"] + [5 87 #t "2014-10-07"] + [5 90 #t "2015-07-21"] + [9 36 #t "2015-08-26"] + [7 57 #t "2015-05-21"] + [9 20 #t "2013-10-03"] + [4 13 #t "2013-05-18"] + [13 63 #t "2014-03-22"] + [5 42 #t "2015-08-22"] + [9 49 #t "2015-03-02"] + [6 15 #t "2014-10-02"] + [7 17 #t "2013-07-18"] + [11 63 #t "2014-02-17"] + [3 90 #t "2013-02-26"] + [13 90 #t "2013-06-08"] + [6 46 #t "2014-03-24"] + [15 91 #t "2014-02-19"] + [10 65 #t "2014-10-10"] + [3 76 #t "2014-05-08"] + [13 43 #t "2014-02-11"] + [7 15 #t "2015-07-09"] + [1 36 #t "2014-03-03"] + [9 59 #t "2014-08-03"] + [5 86 #t "2015-04-02"] + [14 63 #t "2014-07-11"] + [5 94 #t "2013-11-24"] + [14 54 #t "2014-08-03"] + [2 37 #t "2014-08-02"] + [4 62 #t "2015-11-08"] + [7 17 #t "2013-10-01"] + [13 59 #t "2014-01-03"] + [4 22 #t "2013-03-14"] + [3 94 #t "2015-12-16"] + [14 89 #t "2014-06-06"] + [15 23 #t "2015-08-19"] + [8 12 #t "2015-03-17"] + [8 93 #t "2015-05-29"] + [3 20 #t "2013-05-20"] + [9 2 #t "2013-04-03"] + [13 73 #t "2014-06-30"] + [10 5 #t "2015-05-04"] + [4 98 #t "2014-08-29"] + [5 38 #t "2015-04-15"] + [3 41 #t "2014-10-19"] + [2 53 #t "2013-06-21"] + [12 97 #t "2015-11-03"] + [15 68 #t "2013-05-06"] + [15 22 #t "2013-08-16"] + [11 57 #t "2013-05-01"] + [6 91 #t "2015-02-22"] + [2 63 #t "2014-04-22"] + [13 70 #t "2013-03-06"] + [11 86 #t "2013-11-02"] + [13 23 #t "2015-05-26"] + [12 5 #t "2013-11-17"] + [5 43 #t "2015-12-02"] + [11 96 #t "2014-03-26"] + [2 90 #t "2013-12-03"] + [10 21 #t "2014-08-24"] + [11 20 #t "2014-10-28"] + [13 44 #t "2015-09-11"] + [11 57 #t "2014-08-02"] + [6 45 #t "2014-09-29"] + [13 68 #t "2014-08-03"] + [9 75 #t "2015-07-24"] + [7 37 #t "2014-10-06"] + [6 21 #t "2014-11-06"] + [14 49 #t "2013-11-22"] + [7 67 #t "2014-08-03"] + [4 75 #t "2014-10-20"] + [13 13 #t "2015-08-26"] + [2 58 #t "2014-09-01"] + [2 23 #t "2013-03-19"] + [4 38 #t "2014-10-03"] + [7 26 #t "2015-10-06"] + [2 93 #t "2014-10-23"] + [2 41 #t "2014-07-02"] + [7 99 #t "2014-10-18"] + [14 64 #t "2014-09-10"] + [10 9 #t "2014-10-25"] + [6 48 #t "2014-12-25"] + [8 58 #t "2014-02-18"] + [3 35 #t "2014-08-25"] + [6 98 #t "2014-07-01"] + [8 97 #t "2013-09-16"] + [13 26 #t "2014-09-22"] + [2 91 #t "2014-04-15"] + [6 20 #t "2015-06-30"] + [15 74 #t "2014-06-13"] + [7 62 #t "2014-10-13"] + [7 95 #t "2014-06-03"] + [1 96 #t "2014-10-16"] + [9 84 #t "2013-10-20"] + [4 55 #t "2014-09-24"] + [13 86 #t "2014-02-16"] + [14 9 #t "2015-02-05"] + [9 37 #t "2014-06-19"] + [3 12 #t "2015-11-13"] + [10 91 #t "2014-06-10"] + [1 13 #t "2013-10-29"] + [4 57 #t "2013-05-10"] + [5 57 #t "2014-05-28"] + [14 31 #t "2013-06-18"] + [3 29 #t "2014-06-16"] + [7 93 #t "2015-06-07"] + [7 87 #t "2015-11-21"] + [9 53 #t "2015-09-26"] + [14 93 #t "2014-10-20"] + [14 37 #t "2014-08-14"] + [3 30 #t "2013-03-21"] + [10 82 #t "2013-06-05"] + [4 40 #t "2015-07-17"] + [8 45 #t "2014-09-08"] + [6 84 #t "2013-02-15"] + [11 87 #t "2015-11-06"] + [10 93 #t "2014-12-24"] + [2 54 #t "2014-08-02"] + [3 34 #t "2014-05-07"] + [13 48 #t "2014-10-01"] + [4 48 #t "2014-10-24"] + [1 46 #t "2015-04-25"] + [14 85 #t "2015-03-15"] + [4 37 #t "2014-03-05"] + [6 62 #t "2014-02-20"] + [2 73 #t "2014-08-20"] + [2 14 #t "2013-09-29"] + [6 83 #t "2013-09-01"] + [11 89 #t "2013-10-16"] + [3 58 #t "2013-12-04"] + [3 36 #t "2014-06-22"] + [5 96 #t "2015-06-26"] + [5 18 #t "2014-04-22"] + [4 54 #t "2014-10-29"] + [9 31 #t "2013-09-29"] + [12 49 #t "2015-04-19"] + [3 38 #t "2013-01-26"] + [4 88 #t "2013-01-03"] + [12 58 #t "2015-11-25"] + [12 58 #t "2015-08-24"] + [15 3 #t "2015-05-22"] + [10 17 #t "2013-05-04"] + [6 85 #t "2013-08-10"] + [7 18 #t "2015-07-09"] + [12 67 #t "2015-06-15"] + [8 96 #t "2015-02-22"] + [15 88 #t "2015-02-13"] + [8 70 #t "2015-12-22"] + [8 48 #t "2014-10-04"] + [3 91 #t "2013-06-05"] + [8 83 #t "2014-11-06"] + [12 5 #t "2013-11-28"] + [13 88 #t "2014-03-29"] + [2 73 #t "2014-11-02"] + [7 13 #t "2013-10-22"] + [13 17 #t "2015-06-16"] + [7 11 #t "2014-03-09"] + [2 84 #t "2014-03-06"] + [8 79 #t "2014-06-13"] + [2 77 #t "2014-04-10"] + [3 40 #t "2014-05-11"] + [8 30 #t "2013-03-06"] + [1 47 #t "2014-12-07"] + [11 49 #t "2014-12-21"] + [5 39 #t "2014-10-31"] + [3 98 #t "2014-10-22"] + [9 20 #t "2015-04-09"] + [13 66 #t "2013-07-23"] + [15 18 #t "2013-04-26"] + [9 37 #t "2013-02-06"] + [12 79 #t "2014-09-07"] + [8 49 #t "2014-04-26"] + [6 87 #t "2015-07-01"] + [2 70 #t "2015-09-27"] + [7 44 #t "2014-11-05"] + [6 65 #t "2014-11-27"] + [8 51 #t "2015-09-07"] + [6 11 #t "2015-08-21"] + [11 76 #t "2014-05-21"] + [5 94 #t "2014-09-20"] + [1 97 #t "2015-04-05"] + [2 20 #t "2014-11-21"] + [9 25 #t "2014-06-03"] + [4 10 #t "2013-09-21"] + [14 78 #t "2013-09-14"] + [6 34 #t "2014-05-30"] + [1 16 #t "2014-03-30"] + [15 36 #t "2014-09-23"] + [8 5 #t "2013-08-21"] + [11 39 #t "2014-10-10"] + [4 66 #t "2014-03-16"] + [12 74 #t "2014-10-07"] + [6 76 #t "2015-08-09"] + [14 62 #t "2015-07-22"] + [14 98 #t "2015-08-13"] + [8 40 #t "2014-04-03"] + [3 33 #t "2014-11-13"] + [12 42 #t "2014-05-09"] + [8 77 #t "2015-09-24"] + [2 16 #t "2014-12-09"] + [4 29 #t "2015-05-29"] + [11 49 #t "2014-03-05"] + [13 58 #t "2014-04-29"] + [9 34 #t "2014-05-04"] + [12 5 #t "2015-04-16"] + [7 67 #t "2015-02-07"] + [2 92 #t "2014-06-03"]]]] diff --git a/test/metabase/test/data/datasets.clj b/test/metabase/test/data/datasets.clj index 0af36371fc39cc207245966d164d02cd6e81a1d1..2c5216a143f2170f18d1d7a13aab9b44fa4b0d25 100644 --- a/test/metabase/test/data/datasets.clj +++ b/test/metabase/test/data/datasets.clj @@ -26,7 +26,7 @@ (This does NOT bind `*driver*`; use `driver/with-driver` if you want to do that.)" {:style/indent 1} [driver f] - (when (contains? @tx.env/test-drivers driver) + (when (contains? (tx.env/test-drivers) driver) (f))) (defmacro when-testing-driver @@ -51,7 +51,7 @@ {:style/indent 1} [driver & body] `(with-driver-when-testing ~driver - (t/testing (colorize/cyan ~driver) + (t/testing (str "\n" (colorize/cyan ~driver)) ~@body))) (defmacro test-drivers @@ -78,7 +78,7 @@ ;; speeds up loading of metabase.driver.query-processor-test significantly (let [symb (symbol (str "expect-with-drivers-" (hash &form)))] `(t/deftest ~symb - (t/testing (format ~(str (name (ns-name *ns*)) ":%d") (:line (meta #'~symb))) + (t/testing (str "\n" (format ~(str (name (ns-name *ns*)) ":%d") (:line (meta #'~symb)))) (test-drivers ~drivers (t/is (~'expect= ~expected ~actual))))))) @@ -99,7 +99,7 @@ "Execute body (presumably containing tests) against all drivers we're currently testing against." {:style/indent 0} [& body] - `(test-drivers @tx.env/test-drivers ~@body)) + `(test-drivers (tx.env/test-drivers) ~@body)) (defmacro ^:deprecated expect-with-all-drivers "Generate unit tests for all drivers specified in env var `DRIVERS`. `*driver*` is bound to the current driver inside @@ -112,4 +112,4 @@ (is (= ...))))" {:style/indent 0} [expected actual] - `(expect-with-drivers @tx.env/test-drivers ~expected ~actual)) + `(expect-with-drivers (tx.env/test-drivers) ~expected ~actual)) diff --git a/test/metabase/test/data/env.clj b/test/metabase/test/data/env.clj index 8c94e1cc11229cf634c677815b78c8aee6b2cb58..cabfe8cd5ecc28da805f71153017f72e6a660068 100644 --- a/test/metabase/test/data/env.clj +++ b/test/metabase/test/data/env.clj @@ -14,12 +14,70 @@ [metabase.test.data.env.impl :as impl] [metabase.test.initialize :as initialize])) -(defonce ^{:doc "Set of names of drivers we should run tests against. By default, this only contains `:h2` but can be - overriden by setting env var `DRIVERS`."} - test-drivers +(defonce ^:private env-test-drivers (delay (let [drivers (impl/get-test-drivers)] (log/info (color/cyan "Running QP tests against these drivers: " drivers)) (when-not (= drivers #{:h2}) (initialize/initialize-if-needed! :plugins)) drivers))) + +(defonce ^:private default-test-drivers + (atom nil)) + +(defn set-test-drivers! + "Change the set of drivers that driver-based tests run against. Intended for REPL usage." + [drivers] + {:pre [((some-fn sequential? set?) drivers)]} + (reset! default-test-drivers (set drivers))) + +(def ^:private ^:dynamic *test-drivers* + (fn [] + (or @default-test-drivers + @env-test-drivers))) + +(defn do-with-test-drivers [drivers thunk] + {:pre [((some-fn sequential? set?) drivers)]} + (binding [*test-drivers* (constantly (set drivers))] + (thunk))) + +(defmacro with-test-drivers + "Temporarily change the set of drivers that driver-based tests run against. Intended for REPL usage." + [drivers & body] + `(do-with-test-drivers ~drivers (fn [] ~@body))) + +(def ^{:arglists '([])} test-drivers + "Set of keyword names of drivers we should run tests against. By default, this is `#{:h2}` but it can be + overriden + + * by setting env var `DRIVERS` when running tests from the command line or CI. + + DRIVERS=h2,mongo lein test + + * temporarily from the REPL, by using the `with-test-drivers-macro` + + (with-test-drivers #{:postgres} + (some-test)) + + * for the duration of a REPL session, by calling `set-test-drivers!` + + (set-test-drivers! #{:mysql :postgres}) + + Note that this is merely the set of drivers test *can* run against; tests actually run against the union of the + 'test drivers' set and the set of drivers listed in the test itself. e.g. + + (deftest my-test + ;; this will run against H2 if `(test-drivers)` contains `:h2`, and Postgres if `(test-drivers)` contains + ;; `:postgres` + (datasets/test-drivers #{:h2 :postgres} + ..)) + + NOTE - For historic reasons `test-drivers` can be dereffed a if it were a delay, even tho it is not. Using it this + way should be considered deprecated — please invoke it as a function call instead." + (reify + clojure.lang.IDeref + (deref [_] + (*test-drivers*)) + clojure.lang.IFn + (invoke [_] + (*test-drivers*)))) diff --git a/test/metabase/test/data/impl.clj b/test/metabase/test/data/impl.clj index 9fe9a419f6769a8715614d2f3545ac762c66ebff..3c9147adeda05f3359cd1042092977d5816bc109 100644 --- a/test/metabase/test/data/impl.clj +++ b/test/metabase/test/data/impl.clj @@ -16,7 +16,6 @@ [interface :as tx]] [metabase.test.initialize :as initialize] [metabase.test.util.timezone :as tu.tz] - [metabase.util.date :as du] [toucan.db :as db])) ;;; +----------------------------------------------------------------------------------------------------------------+ @@ -72,11 +71,11 @@ (def ^:private create-database-timeout-ms "Max amount of time to wait for driver text extensions to create a DB and load test data." - (du/minutes->ms 4)) ; 4 minutes + (u/minutes->ms 4)) ; 4 minutes (def ^:private sync-timeout-ms "Max amount of time to wait for sync to complete." - (du/minutes->ms 5)) ; five minutes + (u/minutes->ms 5)) ; five minutes (defn- create-database! [driver {:keys [database-name], :as database-definition}] {:pre [(seq database-name)]} @@ -84,7 +83,7 @@ ;; Create the database and load its data ;; ALWAYS CREATE DATABASE AND LOAD DATA AS UTC! Unless you like broken tests (u/with-timeout create-database-timeout-ms - (tu.tz/with-jvm-tz "UTC" + (tu.tz/with-system-timezone-id "UTC" (tx/create-db! driver database-definition))) ;; Add DB object to Metabase DB (let [db (db/insert! Database @@ -93,7 +92,7 @@ :details (tx/dbdef->connection-details driver :db database-definition))] ;; sync newly added DB (u/with-timeout sync-timeout-ms - (du/profile (format "Sync %s Database %s" driver database-name) + (u/profile (format "Sync %s Database %s" driver database-name) (sync/sync-database! db) ;; add extra metadata for fields (try diff --git a/test/metabase/test/data/interface.clj b/test/metabase/test/data/interface.clj index cff615fab80a2a04645319f60a77d2bdf8bc288b..4425a21fefb01d19657398e453f776dc4c1a800b 100644 --- a/test/metabase/test/data/interface.clj +++ b/test/metabase/test/data/interface.clj @@ -22,7 +22,7 @@ [metabase.query-processor.store :as qp.store] [metabase.test.initialize :as initialize] [metabase.util - [date :as du] + [date-2 :as u.date] [schema :as su]] [potemkin.types :as p.types] [pretty.core :as pretty] @@ -65,6 +65,7 @@ :table-definitions [ValidTableDefinition]} (partial instance? DatabaseDefinition))) +;; TODO - this should probably be a protocol instead (defmulti ^DatabaseDefinition get-dataset-definition "Return a definition of a dataset, so a test database can be created from it." {:arglists '([this])} @@ -112,17 +113,12 @@ (swap! has-done-before-run conj driver))))) -(defonce ^:private require-lock (Object.)) - (defn- require-driver-test-extensions-ns [driver & require-options] (let [expected-ns (symbol (or (namespace driver) (str "metabase.test.data." (name driver))))] - ;; ...and lock to make sure that multithreaded driver test-extension loading (on the off chance that it happens - ;; in tests) doesn't make Clojure explode - (locking require-lock - (println (format "Loading driver %s test extensions %s" - (u/format-color 'blue driver) (apply list 'require expected-ns require-options))) - (apply classloader/require expected-ns require-options)))) + (println (format "Loading driver %s test extensions %s" + (u/format-color 'blue driver) (apply list 'require expected-ns require-options))) + (apply classloader/require expected-ns require-options))) (defonce ^:private has-loaded-extensions (atom #{})) @@ -130,7 +126,7 @@ (when-not (contains? @has-loaded-extensions driver) (locking has-loaded-extensions (when-not (contains? @has-loaded-extensions driver) - (du/profile (format "Load %s test extensions" driver) + (u/profile (format "Load %s test extensions" driver) (require-driver-test-extensions-ns driver) ;; if it doesn't have test extensions yet, it may be because it's relying on a parent driver to add them (e.g. ;; Redshift uses Postgres' test extensions). Load parents as appropriate and try again @@ -357,8 +353,8 @@ :source :aggregation :field_ref [:aggregation 0]}) - ([driver aggregation-type {field-id :id, :keys [base_type special_type table_id]}] - {:pre [base_type special_type]} + ([driver aggregation-type {field-id :id, :keys [table_id]}] + {:pre [table_id]} (driver/with-driver driver (qp.store/with-store (qp.store/fetch-and-store-database! (db/select-one-field :db_id Table :id table_id)) @@ -420,7 +416,22 @@ (dataset-table-definition table))}))) (defmacro defdataset - "Define a new dataset to test against." + "Define a new dataset to test against. Definition should be of the format + + [table-def+] + + Where each table-def is of the format + + [table-name [field-def+] [row+]] + + e.g. + + [[\"bird_species\" + [{:field-name \"name\", :base-type :type/Text}] + [[\"House Finch\"] + [\"Mourning Dove\"]]]] + + Refer to the EDN definitions (e.g. `test-data.edn`) for more examples." ([dataset-name definition] `(defdataset ~dataset-name nil ~definition)) @@ -450,7 +461,9 @@ directory. (Filename should be `dataset-name` + `.edn`.)" [dataset-name :- su/NonBlankString] (let [get-def (delay - (let [file-contents (edn/read-string (slurp (str edn-definitions-dir dataset-name ".edn")))] + (let [file-contents (edn/read-string + {:eof nil, :readers {'t #'u.date/parse}} + (slurp (str edn-definitions-dir dataset-name ".edn")))] (apply dataset-definition dataset-name file-contents)))] (EDNDatasetDefinition. dataset-name get-def))) @@ -627,6 +640,7 @@ "Same as `db-test-env-var` but will throw an exception if the variable is `nil`." ([driver env-var] (db-test-env-var-or-throw driver env-var nil)) + ([driver env-var default] (or (db-test-env-var driver env-var default) (throw (Exception. (format "In order to test %s, you must specify the env var MB_%s_TEST_%s." diff --git a/test/metabase/test/data/mysql.clj b/test/metabase/test/data/mysql.clj index 7fff9e18dae6f01debfa98c5f0127ff1794250a9..63c4f3a5ab1bf07246709a6bf888418e34176af1 100644 --- a/test/metabase/test/data/mysql.clj +++ b/test/metabase/test/data/mysql.clj @@ -13,13 +13,19 @@ (doseq [[base-type database-type] {:type/BigInteger "BIGINT" :type/Boolean "BOOLEAN" :type/Date "DATE" - :type/DateTime "TIMESTAMP" - :type/DateTimeWithTZ "TIMESTAMP" + ;; (3) is fractional seconds precision, i.e. millisecond precision + :type/DateTime "DATETIME(3)" + ;; MySQL is extra dumb and can't have two `TIMESTAMP` columns without default + ;; values — see + ;; https://stackoverflow.com/questions/11601034/unable-to-create-2-timestamp-columns-in-1-mysql-table. + ;; They also have to have non-zero values. See also + ;; https://dba.stackexchange.com/questions/6171/invalid-default-value-for-datetime-when-changing-to-utf8-general-ci + :type/DateTimeWithTZ "TIMESTAMP(3) DEFAULT '1970-01-01 00:00:01'" :type/Decimal "DECIMAL" :type/Float "DOUBLE" :type/Integer "INTEGER" :type/Text "TEXT" - :type/Time "TIME"}] + :type/Time "TIME(3)"}] (defmethod sql.tx/field-base-type->sql-type [:mysql base-type] [_ _] database-type)) (defmethod tx/dbdef->connection-details :mysql @@ -42,4 +48,9 @@ [& args] (apply load-data/load-data-all-at-once! args)) +#_(defmethod load-data/do-insert! :mysql + [driver spec table-identifier row-or-rows] + (jdbc/execute! spec "SET @@session.time_zone = 'UTC'"); + ((get-method load-data/do-insert! :sql-jdbc/test-extensions) driver spec table-identifier row-or-rows)) + (defmethod sql.tx/pk-sql-type :mysql [_] "INTEGER NOT NULL AUTO_INCREMENT") diff --git a/test/metabase/test/data/postgres.clj b/test/metabase/test/data/postgres.clj index da562031baf6aa7e25806e7e277d6500d994c10e..f8e0298c280292f35c6753dc4b4ac708462bf68a 100644 --- a/test/metabase/test/data/postgres.clj +++ b/test/metabase/test/data/postgres.clj @@ -26,6 +26,7 @@ :type/IPAddress "INET" :type/Text "TEXT" :type/Time "TIME" + :type/TimeWithTZ "TIME WITH TIME ZONE" :type/UUID "UUID"}] (defmethod sql.tx/field-base-type->sql-type [:postgres base-type] [_ _] db-type)) diff --git a/test/metabase/test/data/sql.clj b/test/metabase/test/data/sql.clj index 0824cbdd83a8e5e0b6c2f4ec08d9c3293386b278..badd0ba702e26e330d9dbdcbcc3839d592d5cb7a 100644 --- a/test/metabase/test/data/sql.clj +++ b/test/metabase/test/data/sql.clj @@ -1,6 +1,7 @@ (ns metabase.test.data.sql "Common test extension functionality for all SQL drivers." (:require [clojure.string :as str] + [clojure.tools.logging :as log] [metabase.driver :as driver] [metabase.driver.sql.util :as sql.u] [metabase.test.data.interface :as tx]) @@ -142,11 +143,26 @@ ;;; +----------------------------------------------------------------------------------------------------------------+ (defmulti field-base-type->sql-type - "Return a native SQL type that should be used for fields of BASE-TYPE." + "Return a native SQL type that should be used for fields of `base-type`." {:arglists '([driver base-type])} (fn [driver base-type] [(tx/dispatch-on-driver-with-test-extensions driver) base-type]) :hierarchy #'driver/hierarchy) +(defmethod field-base-type->sql-type :default + [driver base-type] + (or (some + (fn [ancestor-type] + (when-not (= ancestor-type :type/*) + (when-let [method (get (methods field-base-type->sql-type) [driver ancestor-type])] + (log/infof "No test data type mapping for driver %s for base type %s, falling back to ancestor base type %s" + driver base-type ancestor-type) + (method driver base-type)))) + (ancestors base-type)) + (throw + (Exception. + (format "No test data type mapping for driver %s for base type %s; add an impl for field-base-type->sql-type." + driver base-type))))) + (defmulti pk-sql-type "SQL type of a primary key field." diff --git a/test/metabase/test/data/sql_jdbc/load_data.clj b/test/metabase/test/data/sql_jdbc/load_data.clj index 8c07696f0d448bb9f6b5d66c750f078caa65abce..0b406a06d5e94daeb1233509047c0df766ab73b7 100644 --- a/test/metabase/test/data/sql_jdbc/load_data.clj +++ b/test/metabase/test/data/sql_jdbc/load_data.clj @@ -1,10 +1,13 @@ (ns metabase.test.data.sql-jdbc.load-data (:require [clojure.java.jdbc :as jdbc] [clojure.string :as str] + [clojure.tools.logging :as log] [medley.core :as m] [metabase [driver :as driver] + [test :as mt] [util :as u]] + [metabase.driver.sql-jdbc.execute :as sql-jdbc.execute] [metabase.driver.sql.query-processor :as sql.qp] [metabase.test.data [interface :as tx] @@ -13,9 +16,7 @@ [execute :as execute] [spec :as spec]] [metabase.test.data.sql.ddl :as ddl] - [metabase.util - [date :as du] - [honeysql-extensions :as hx]]) + [metabase.util.honeysql-extensions :as hx]) (:import java.sql.SQLException)) (defmulti load-data! @@ -99,12 +100,9 @@ [driver dbdef tabledef] (let [fields-for-insert (mapv (comp keyword :field-name) (:field-definitions tabledef))] + ;; TIMEZONE FIXME (for [row (:rows tabledef)] - (zipmap fields-for-insert (for [v row] - (if (and (not (instance? java.sql.Time v)) - (instance? java.util.Date v)) - (du/->Timestamp v du/utc) - v)))))) + (zipmap fields-for-insert row)))) (defn- make-insert! "Used by `make-load-data-fn`; creates the actual `insert!` function that gets passed to the `insert-middleware-fns` @@ -125,6 +123,7 @@ (.setAutoCommit (jdbc/get-connection conn) false) (let [insert! (insert-middleware (make-insert! driver conn dbdef tabledef)) rows (load-data-get-rows driver dbdef tabledef)] + (log/tracef "Inserting rows like: %s" (first rows)) (insert! rows)))))) @@ -177,14 +176,21 @@ (defmethod do-insert! :sql-jdbc/test-extensions [driver spec table-identifier row-or-rows] (let [statements (ddl/insert-rows-ddl-statements driver table-identifier row-or-rows)] - (try - ;; TODO - why don't we use `execute/execute-sql!` here like we do below? - (doseq [sql+args statements] - (jdbc/execute! spec sql+args)) - (catch SQLException e - (println (u/format-color 'red "INSERT FAILED: \n%s\n" statements)) - (jdbc/print-sql-exception-chain e) - (throw e))))) + ;; `set-parameters` might try to look at DB timezone; we don't want to do that while loading the data because the + ;; DB hasn't been synced yet + (when-let [set-timezone-format-string (sql-jdbc.execute/set-timezone-sql driver)] + (let [set-timezone-sql (format set-timezone-format-string "'UTC'")] + (log/debugf "Setting timezone to UTC before inserting data with SQL \"%s\"" set-timezone-sql) + (jdbc/execute! spec [set-timezone-sql]))) + (mt/with-database-timezone-id nil + (try + ;; TODO - why don't we use `execute/execute-sql!` here like we do below? + (doseq [sql+args statements] + (jdbc/execute! spec sql+args {:set-parameters (partial sql-jdbc.execute/set-parameters driver)})) + (catch SQLException e + (println (u/format-color 'red "INSERT FAILED: \n%s\n" statements)) + (jdbc/print-sql-exception-chain e) + (throw e)))))) (defn create-db! "Default implementation of `create-db!` for SQL drivers." @@ -199,5 +205,5 @@ (execute/execute-sql! driver :db dbdef (str/join ";\n" statements))) ;; Now load the data for each Table (doseq [tabledef table-definitions] - (du/profile (format "load-data for %s %s %s" (name driver) (:database-name dbdef) (:table-name tabledef)) + (u/profile (format "load-data for %s %s %s" (name driver) (:database-name dbdef) (:table-name tabledef)) (load-data! driver dbdef tabledef)))) diff --git a/test/metabase/test/initialize.clj b/test/metabase/test/initialize.clj index 8b585d9bb061fc65e93b7aefd906c3cbe5b40708..8bd75ffcf847d7cdfc93ad71ba928630eb30406b 100644 --- a/test/metabase/test/initialize.clj +++ b/test/metabase/test/initialize.clj @@ -2,8 +2,27 @@ "Logic for initializing different components that need to be initialized when running tests." (:require [clojure.string :as str] [colorize.core :as colorize] + [metabase + [config :as config] + [util :as u]] [metabase.plugins.classloader :as classloader])) + +;; (def ^:private ^:dynamic *require-chain* nil) + +;; (defonce new-require +;; (let [orig-require (var-get #'clojure.core/require)] +;; (orig-require 'clojure.pprint) +;; (fn [& args] +;; (binding [*require-chain* (conj (vec *require-chain*) (ns-name *ns*))] +;; (let [require-chain-description (apply str (interpose " -> " *require-chain*))] +;; (println "\nin" require-chain-description) +;; ((resolve 'clojure.pprint/pprint) (cons 'require args)) +;; (apply orig-require args) +;; (println "finished" require-chain-description)))))) + +;; (intern 'clojure.core 'require new-require) + (defmulti initialize-if-needed! "Initialize one or more components. @@ -12,6 +31,17 @@ ([k] (keyword k)) ([k & more] :many))) +(defonce ^:private initialized (atom #{})) + +(defn initialized? + "Has this component been initialized?" + ([k] + (contains? @initialized k)) + + ([k & more] + (and (initialized? k) + (apply initialized? more)))) + (defmethod initialize-if-needed! :many [& args] (doseq [k args] @@ -26,18 +56,38 @@ (str/join "\n" [border body border]) "\n"))))) +(def ^:private init-timeout-ms (* 30 1000)) + +(def ^:private ^:dynamic *initializing* []) + +(defn- deref-init-delay [task-name a-delay] + (try + (when (contains? (set *initializing*) task-name) + (throw (Exception. (format "Circular initialization dependencies! %s" + (str/join " -> " (conj *initializing* task-name)))))) + (binding [*initializing* (conj *initializing* task-name)] + (u/with-timeout init-timeout-ms + @a-delay)) + (catch Throwable e + (println "Error initializing" task-name) + (println e) + (when config/is-test? + (System/exit -1)) + (throw e)))) + (defmacro ^:private define-initialization [task-name & body] - (let [delay-symb (vary-meta (symbol (format "init-%s-%d" (name task-name) (hash &form))) - assoc :private true)] + (let [delay-symb (-> (symbol (format "init-%s-%d" (name task-name) (hash &form))) + (with-meta {:private true}))] `(do (defonce ~delay-symb (delay (log-init-message ~(keyword task-name)) + (swap! initialized conj ~(keyword task-name)) ~@body - nil)) + ~(keyword task-name))) (defmethod initialize-if-needed! ~(keyword task-name) [~'_] - @~delay-symb)))) + (deref-init-delay ~(keyword task-name) ~delay-symb))))) (define-initialization :plugins (classloader/require 'metabase.test.initialize.plugins) diff --git a/test/metabase/test/initialize/web_server.clj b/test/metabase/test/initialize/web_server.clj index d04a890093bc3a48a3f34c122fdc7337f3f094bc..c4efd7dd601a76d20a6a211e32175e38473669a7 100644 --- a/test/metabase/test/initialize/web_server.clj +++ b/test/metabase/test/initialize/web_server.clj @@ -1,16 +1,40 @@ (ns metabase.test.initialize.web-server - (:require [clojure.tools.logging :as log] - [metabase + (:require [metabase + [config :as config] [handler :as handler] [server :as server]] [metabase.core.initialization-status :as init-status] [metabase.models.setting :as setting])) +(defn- test-handler + ([request] + (try + (#'handler/app request) + (catch Throwable e + (println "ERROR HANDLING REQUEST! <sync>" request) + (println e) + (throw e)))) + + ([request respond raise] + (letfn [(raise' [e] + (println "ERROR HANDLING REQUEST! <async raise>" request) + (println e) + (raise e))] + (try + (#'handler/app request respond raise') + (catch Throwable e + (println "ERROR HANDLING REQUEST! <async thrown>" request) + (println e) + (throw e)))))) + (defn init! [] (try - (server/start-web-server! #'handler/app) + (server/start-web-server! test-handler) + (printf "Started test server on port %d\n" (config/config-int :mb-jetty-port)) (catch Throwable e - (log/error e "Web server failed to start") - (System/exit -2))) + (println "Web server failed to start") + (println e) + (when config/is-test? + (System/exit -2)))) (init-status/set-complete!) (setting/set! :site-name "Metabase Test")) diff --git a/test/metabase/test/util.clj b/test/metabase/test/util.clj index 909cf62a18cc75d69af2c2c345d6f3317bf4b19e..ce35d72c8cbed36cb22d1098e6a9d9c4e04fd593 100644 --- a/test/metabase/test/util.clj +++ b/test/metabase/test/util.clj @@ -1,14 +1,14 @@ (ns metabase.test.util "Helper functions and macros for writing unit tests." (:require [cheshire.core :as json] - [clj-time.core :as time] [clojure [string :as str] - [test :as t] + [test :refer :all] [walk :as walk]] [clojure.tools.logging :as log] [clojurewerkz.quartzite.scheduler :as qs] [colorize.core :as colorize] + [java-time :as t] [metabase [driver :as driver] [task :as task] @@ -37,7 +37,6 @@ [metabase.test [data :as data] [initialize :as initialize]] - [metabase.util.date :as du] [schema.core :as s] [toucan.db :as db] [toucan.util.test :as tt]) @@ -45,26 +44,28 @@ org.apache.log4j.Logger [org.quartz CronTrigger JobDetail JobKey Scheduler Trigger])) -(defmethod t/assert-expr 'schema= +(defmethod assert-expr 'schema= [message form] (let [[_ schema actual] form] `(let [schema# ~schema actual# ~actual pass?# (nil? (s/check schema# actual#))] - (t/do-report + (do-report {:type (if pass?# :pass :fail) :message ~message :expected (s/explain schema#) :actual actual# :diffs (when-not pass?# - [(s/check schema# actual#)])})))) + [[actual# [(s/check schema# actual#) nil]]])})))) (defmacro ^:deprecated expect-schema "Like `expect`, but checks that results match a schema." {:style/indent 0} [expected actual] - `(t/deftest ~(symbol (format "expect-schema-%d" (hash &form))) - (t/is (~'schema= ~expected ~actual)))) + (let [symb (symbol (format "expect-schema-%d" (hash &form)))] + `(deftest ~symb + (testing (format ~(str (ns-name *ns*) ":%s") (:line (meta (var ~symb)))) + (is (~'schema= ~expected ~actual)))))) (defn- random-uppercase-letter [] (char (+ (int \A) (rand-int 26)))) @@ -205,13 +206,13 @@ (u/strict-extend (class TaskHistory) tt/WithTempDefaults {:with-temp-defaults (fn [_] - (let [started (time/now) - ended (time/plus started (time/millis 10))] + (let [started (t/zoned-date-time) + ended (t/plus started (t/millis 10))] {:db_id (data/id) :task (random-name) - :started_at (du/->Timestamp started) - :ended_at (du/->Timestamp ended) - :duration (du/calculate-duration started ended)}))}) + :started_at started + :ended_at ended + :duration (.toMillis (t/duration started ended))}))}) (u/strict-extend (class User) tt/WithTempDefaults @@ -267,7 +268,7 @@ (setting/get setting-k))] (try (setting/set! setting-k value) - (t/testing (colorize/blue (format "Setting %s = %s" (keyword setting-k) value)) + (testing (colorize/blue (format "Setting %s = %s" (keyword setting-k) value)) (f)) (finally (setting/set! setting-k original-value))))) @@ -287,6 +288,15 @@ `(with-temporary-setting-values ~more ~body) body)))) +(defn do-with-discarded-setting-changes [settings thunk] + (initialize/initialize-if-needed! :db :plugins) + ((reduce + (fn [thunk setting-k] + (fn [] + (do-with-temporary-setting-value setting-k (setting/get setting-k) thunk))) + thunk + settings))) + (defmacro discard-setting-changes "Execute `body` in a try-finally block, restoring any changes to listed `settings` to their original values at its conclusion. @@ -295,8 +305,7 @@ ...)" {:style/indent 1} [settings & body] - `(with-temporary-setting-values ~(vec (mapcat (juxt identity #(list `setting/get (keyword %))) settings)) - ~@body)) + `(do-with-discarded-setting-changes ~(mapv keyword settings) (fn [] ~@body))) (defn do-with-temp-vals-in-db @@ -358,7 +367,7 @@ (def level-kwd->level "Conversion from a keyword log level to the Log4J constance mapped to that log level. - Not intended for use outside of the `with-mb-log-messages-at-level` macro." + Not intended for use outside of the `with-log-messages-for-level` macro." {:error org.apache.log4j.Level/ERROR :warn org.apache.log4j.Level/WARN :info org.apache.log4j.Level/INFO @@ -367,25 +376,40 @@ (defn ^Logger metabase-logger "Gets the root logger for all metabase namespaces. Not intended for use outside of the - `with-mb-log-messages-at-level` macro." + `with-log-messages-for-level` macro." [] (Logger/getLogger "metabase")) -(defmacro with-mb-log-messages-at-level - "Executes `body` with the metabase logging level set to `level-kwd`. This is needed when the logging level is set at - a higher threshold than the log messages you're wanting to example. As an example if the metabase logging level is - set to `ERROR` in the log4j.properties file and you are looking for a `WARN` message, it won't show up in the +(defn do-with-log-messages-for-level [level thunk] + (let [original-mb-log-level (.getLevel (metabase-logger)) + new-level (get level-kwd->level (keyword level))] + (try + (.setLevel (metabase-logger) new-level) + (thunk) + (finally + (.setLevel (metabase-logger) original-mb-log-level))))) + +(defmacro with-log-level + "Sets the log level (e.g. `:debug` or `:trace`) while executing `body`. Not thread safe! But good for debugging from + the REPL or for tests. + + (with-log-level :debug + (do-something))" + [level & body] + `(do-with-log-messages-for-level ~level (fn [] ~@body))) + +(defmacro with-log-messages-for-level + "Executes `body` with the metabase logging level set to `level-kwd`. This is needed when the logging level is set at a + higher threshold than the log messages you're wanting to example. As an example if the metabase logging level is set + to `ERROR` in the log4j.properties file and you are looking for a `WARN` message, it won't show up in the `with-log-messages` call as there's a guard around the log invocation, if it's not enabled (it is set to `ERROR`) the log function will never be invoked. This macro will temporarily set the logging level to `level-kwd`, then invoke `with-log-messages`, then set the level back to what it was before the invocation. This allows testing log messages even if the threshold is higher than the message you are looking for." [level-kwd & body] - `(let [orig-log-level# (.getLevel (metabase-logger))] - (try - (.setLevel (metabase-logger) (get level-kwd->level ~level-kwd)) - (with-log-messages ~@body) - (finally - (.setLevel (metabase-logger) orig-log-level#))))) + `(with-log-level ~level-kwd + (with-log-messages + ~@body))) (defn- update-in-if-present "If the path `KS` is found in `M`, call update-in with the original @@ -406,15 +430,17 @@ (defn ^:deprecated round-fingerprint "Rounds the numerical fields of a fingerprint to 2 decimal places - DEPRECATED -- this should no longer be needed; use `qp.tt/col` to get the actual real-life fingerprint of the - column instead." + DEPRECATED -- this should no longer be needed; use `metabase.query-processor-test/col` to get the actual real-life + fingerprint of the column instead." [field] (-> field (update-in-if-present [:fingerprint :type :type/Number] round-fingerprint-fields 2 [:min :max :avg :sd]) ;; quartal estimation is order dependent and the ordering is not stable across different DB engines, hence more ;; aggressive trimming (update-in-if-present [:fingerprint :type :type/Number] round-fingerprint-fields 0 [:q1 :q3]) - (update-in-if-present [:fingerprint :type :type/Text] round-fingerprint-fields 2 [:percent-json :percent-url :percent-email :average-length]))) + (update-in-if-present [:fingerprint :type :type/Text] + round-fingerprint-fields 2 + [:percent-json :percent-url :percent-email :average-length]))) (defn ^:deprecated round-fingerprint-cols "Round fingerprints to a few digits, so it can be included directly in 'expected' parts of tests. @@ -428,6 +454,7 @@ [:cols])] (round-fingerprint-cols maybe-data-cols query-results)) (map round-fingerprint query-results))) + ([k query-results] (update-in query-results k #(map round-fingerprint %)))) @@ -455,12 +482,12 @@ ;; Various functions for letting us check that things get scheduled properly. Use these to put a temporary scheduler ;; in place and then check the tasks that get scheduled -(defn do-with-scheduler [scheduler f] - (with-redefs [metabase.task/scheduler (constantly scheduler)] - (f))) +(defn do-with-scheduler [scheduler thunk] + (with-redefs [task/scheduler (constantly scheduler)] + (thunk))) (defmacro with-scheduler - "Temporarily bind the Metabase Quartzite scheduler to SCHEULDER and run BODY." + "Temporarily bind the Metabase Quartzite scheduler to `scheulder` and run `body`." {:style/indent 1} [scheduler & body] `(do-with-scheduler ~scheduler (fn [] ~@body))) @@ -476,7 +503,7 @@ (qs/shutdown temp-scheduler)))))) (defmacro with-temp-scheduler - "Execute BODY with a temporary scheduler in place. + "Execute `body` with a temporary scheduler in place. (with-temp-scheduler (do-something-to-schedule-tasks) @@ -508,8 +535,9 @@ {:cron-schedule (.getCronExpression ^CronTrigger trigger) :data (into {} (.getJobDataMap trigger))}))))})))))) -(defn db-timezone-id - "Return the timezone id from the test database. Must be called with `*driver*` bound,such as via `driver/with-driver`" +(defn ^:deprecated db-timezone-id + "Return the timezone id from the test database. Must be called with `*driver*` bound,such as via `driver/with-driver`. + DEPRECATED — just call `metabase.driver/db-default-timezone` instead directly." [] (assert driver/*driver*) (let [db (data/db)] @@ -519,10 +547,12 @@ ;; determine the database's timezone. (driver/notify-database-updated driver/*driver* db) (data/dataset test-data - (-> (driver/current-db-time driver/*driver* db) - .getChronology - .getZone - .getID)))) + (or + (driver/db-default-timezone driver/*driver* db) + (-> (driver/current-db-time driver/*driver* db) + .getChronology + .getZone + .getID))))) (defmulti ^:private do-model-cleanup! class) diff --git a/test/metabase/test/util/timezone.clj b/test/metabase/test/util/timezone.clj index b4f3b0cb19aa2ce9648232bf290d07e175546185..2c0473ac7b54ace3ea9fd7685263fc28b4f49eab 100644 --- a/test/metabase/test/util/timezone.clj +++ b/test/metabase/test/util/timezone.clj @@ -1,51 +1,38 @@ (ns metabase.test.util.timezone - (:require [clj-time.core :as time] + (:require [clojure.test :as t] [metabase.driver :as driver] - [metabase.test.initialize :as initialize] - [metabase.util.date :as du]) - (:import java.util.TimeZone - org.joda.time.DateTimeZone)) + [metabase.test.initialize :as initialize]) + (:import java.util.TimeZone)) -(defn- ->datetimezone ^DateTimeZone [timezone] - (cond - (instance? DateTimeZone timezone) - timezone - - (string? timezone) - (DateTimeZone/forID timezone) - - (instance? TimeZone) - (DateTimeZone/forTimeZone timezone))) - -(defn call-with-jvm-tz - "Invokes the thunk `F` with the JVM timezone set to `DTZ` (String or instance of TimeZone or DateTimeZone), puts the - various timezone settings back the way it found it when it exits." - [dtz thunk] - (initialize/initialize-if-needed! :db :plugins) - (let [dtz (->datetimezone dtz) - orig-tz (TimeZone/getDefault) - orig-dtz (time/default-time-zone) - orig-tz-prop (System/getProperty "user.timezone")] +(defn do-with-system-timezone-id [^String timezone-id thunk] + ;; only if the app DB is already set up, we need to make sure plugins are loaded and kill any connection pools that + ;; might exist + (when (initialize/initialized? :db) + (initialize/initialize-if-needed! :plugins) + (#'driver/notify-all-databases-updated)) + (let [original-time-zone (TimeZone/getDefault) + original-system-property (System/getProperty "user.timezone")] (try - ;; It looks like some DB drivers cache the timezone information when instantiated, this clears those to force - ;; them to reread that timezone value - (#'driver/notify-all-databases-updated) - ;; Used by JDBC, and most JVM things - (TimeZone/setDefault (.toTimeZone dtz)) - ;; Needed as Joda time has a different default TZ - (DateTimeZone/setDefault dtz) - ;; We read the system property directly when formatting results, so this needs to be changed - (System/setProperty "user.timezone" (.getID dtz)) - (with-redefs [du/jvm-timezone (delay (.toTimeZone dtz))] + (TimeZone/setDefault (TimeZone/getTimeZone timezone-id)) + (System/setProperty "user.timezone" timezone-id) + (t/testing (format "JVM timezone set to %s" timezone-id) (thunk)) (finally - ;; We need to ensure we always put the timezones back the way - ;; we found them as it will cause test failures - (TimeZone/setDefault orig-tz) - (DateTimeZone/setDefault orig-dtz) - (System/setProperty "user.timezone" orig-tz-prop))))) + (TimeZone/setDefault original-time-zone) + (System/setProperty "user.timezone" original-system-property))))) + +(defmacro with-system-timezone-id + "Execute `body` with the system time zone temporarily changed to the time zone named by `timezone-id`. + + TODO — consider deprecating this as well. You can do something like + + (t/with-clock (t/mock-clock (t/instant (t/zoned-date-time + (t/local-date \"2019-11-18\") + (t/local-time 0) + (t/zone-id \"US/Pacific\"))) + (t/zone-id \"US/Pacific\")) + ...) -(defmacro with-jvm-tz - "Invokes `BODY` with the JVM timezone set to `DTZ`" - [^DateTimeZone dtz & body] - `(call-with-jvm-tz ~dtz (fn [] ~@body))) + almost everywhere you'd use this." + [timezone-id & body] + `(do-with-system-timezone-id ~timezone-id (fn [] ~@body))) diff --git a/test/metabase/timeseries_query_processor_test.clj b/test/metabase/timeseries_query_processor_test.clj index 30b9beaa31265e40ff90be1fb6dda41e3b1c84fd..da32f209ae2ed824f5552ef071fd3834f2794d4f 100644 --- a/test/metabase/timeseries_query_processor_test.clj +++ b/test/metabase/timeseries_query_processor_test.clj @@ -19,8 +19,8 @@ "venue_longitude" "venue_name" "venue_price"] - :rows [["931", "2013-01-03T08:00:00.000Z", 1, "2014-01-01T08:30:00.000Z", "Simcha Yan", "Thai", "34.094", "-118.344", "Kinaree Thai Bistro", "1"] - ["285", "2013-01-10T08:00:00.000Z", 1, "2014-07-03T01:30:00.000Z", "Kfir Caj", "Thai", "34.1021", "-118.306", "Ruen Pair Thai Restaurant", "2"]]} + :rows [["931", "2013-01-03T08:00:00Z", 1, "2014-01-01T08:30:00.000Z", "Simcha Yan", "Thai", "34.094", "-118.344", "Kinaree Thai Bistro", "1"] + ["285", "2013-01-10T08:00:00Z", 1, "2014-07-03T01:30:00.000Z", "Kfir Caj", "Thai", "34.1021", "-118.306", "Ruen Pair Thai Restaurant", "2"]]} (qp.test/rows+column-names (data/run-mbql-query checkins {:limit 2}))) @@ -37,8 +37,8 @@ "venue_longitude" "venue_name" "venue_price"] - :rows [["693", "2015-12-29T08:00:00.000Z", 1, "2014-07-03T19:30:00.000Z", "Frans Hevel", "Mexican", "34.0489", "-118.238", "Señor Fish", "2"] - ["570", "2015-12-26T08:00:00.000Z", 1, "2014-07-03T01:30:00.000Z", "Kfir Caj", "Chinese", "37.7949", "-122.406", "Empress of China", "3"]]} + :rows [["693", "2015-12-29T08:00:00Z", 1, "2014-07-03T19:30:00.000Z", "Frans Hevel", "Mexican", "34.0489", "-118.238", "Señor Fish", "2"] + ["570", "2015-12-26T08:00:00Z", 1, "2014-07-03T01:30:00.000Z", "Kfir Caj", "Chinese", "37.7949", "-122.406", "Empress of China", "3"]]} (qp.test/rows+column-names (data/run-mbql-query checkins {:order-by [[:desc $timestamp]] @@ -56,8 +56,8 @@ "venue_longitude" "venue_name" "venue_price"] - :rows [["931", "2013-01-03T08:00:00.000Z", 1, "2014-01-01T08:30:00.000Z", "Simcha Yan", "Thai", "34.094", "-118.344", "Kinaree Thai Bistro", "1"] - ["285", "2013-01-10T08:00:00.000Z", 1, "2014-07-03T01:30:00.000Z", "Kfir Caj", "Thai", "34.1021", "-118.306", "Ruen Pair Thai Restaurant", "2"]]} + :rows [["931", "2013-01-03T08:00:00Z", 1, "2014-01-01T08:30:00.000Z", "Simcha Yan", "Thai", "34.094", "-118.344", "Kinaree Thai Bistro", "1"] + ["285", "2013-01-10T08:00:00Z", 1, "2014-07-03T01:30:00.000Z", "Kfir Caj", "Thai", "34.1021", "-118.306", "Ruen Pair Thai Restaurant", "2"]]} (qp.test/rows+column-names (data/run-mbql-query checkins {:order-by [[:asc $timestamp]] @@ -68,8 +68,8 @@ ;;; fields clause (tqp.test/expect-with-timeseries-dbs {:columns ["venue_name" "venue_category_name" "timestamp"], - :rows [["Kinaree Thai Bistro" "Thai" "2013-01-03T08:00:00.000Z"] - ["Ruen Pair Thai Restaurant" "Thai" "2013-01-10T08:00:00.000Z"]]} + :rows [["Kinaree Thai Bistro" "Thai" "2013-01-03T08:00:00Z"] + ["Ruen Pair Thai Restaurant" "Thai" "2013-01-10T08:00:00Z"]]} (qp.test/rows+column-names (data/run-mbql-query checkins {:fields [$venue_name $venue_category_name $timestamp] @@ -78,8 +78,8 @@ ;;; fields clause, order by timestamp asc (tqp.test/expect-with-timeseries-dbs {:columns ["venue_name" "venue_category_name" "timestamp"], - :rows [["Kinaree Thai Bistro" "Thai" "2013-01-03T08:00:00.000Z"] - ["Ruen Pair Thai Restaurant" "Thai" "2013-01-10T08:00:00.000Z"]]} + :rows [["Kinaree Thai Bistro" "Thai" "2013-01-03T08:00:00Z"] + ["Ruen Pair Thai Restaurant" "Thai" "2013-01-10T08:00:00Z"]]} (qp.test/rows+column-names (data/run-mbql-query checkins {:fields [$venue_name $venue_category_name $timestamp] @@ -89,8 +89,8 @@ ;;; fields clause, order by timestamp desc (tqp.test/expect-with-timeseries-dbs {:columns ["venue_name" "venue_category_name" "timestamp"], - :rows [["Señor Fish" "Mexican" "2015-12-29T08:00:00.000Z"] - ["Empress of China" "Chinese" "2015-12-26T08:00:00.000Z"]]} + :rows [["Señor Fish" "Mexican" "2015-12-29T08:00:00Z"] + ["Empress of China" "Chinese" "2015-12-26T08:00:00Z"]]} (qp.test/rows+column-names (data/run-mbql-query checkins {:fields [$venue_name $venue_category_name $timestamp] @@ -301,11 +301,11 @@ ;;; filter = (tqp.test/expect-with-timeseries-dbs {:columns ["user_name" "venue_name" "venue_category_name" "timestamp"] - :rows [["Plato Yeshua" "Fred 62" "Diner" "2013-03-12T07:00:00.000Z"] - ["Plato Yeshua" "Dimples" "Karaoke" "2013-04-11T07:00:00.000Z"] - ["Plato Yeshua" "Baby Blues BBQ" "BBQ" "2013-06-03T07:00:00.000Z"] - ["Plato Yeshua" "The Daily Pint" "Bar" "2013-07-25T07:00:00.000Z"] - ["Plato Yeshua" "Marlowe" "American" "2013-09-10T07:00:00.000Z"]]} + :rows [["Plato Yeshua" "Fred 62" "Diner" "2013-03-12T07:00:00Z"] + ["Plato Yeshua" "Dimples" "Karaoke" "2013-04-11T07:00:00Z"] + ["Plato Yeshua" "Baby Blues BBQ" "BBQ" "2013-06-03T07:00:00Z"] + ["Plato Yeshua" "The Daily Pint" "Bar" "2013-07-25T07:00:00Z"] + ["Plato Yeshua" "Marlowe" "American" "2013-09-10T07:00:00Z"]]} (qp.test/rows+column-names (data/run-mbql-query checkins {:fields [$user_name $venue_name $venue_category_name $timestamp] @@ -323,7 +323,7 @@ ;;; filter AND (tqp.test/expect-with-timeseries-dbs {:columns ["user_name" "venue_name" "timestamp"] - :rows [["Plato Yeshua" "The Daily Pint" "2013-07-25T07:00:00.000Z"]]} + :rows [["Plato Yeshua" "The Daily Pint" "2013-07-25T07:00:00Z"]]} (qp.test/rows+column-names (data/run-mbql-query checkins {:fields [$user_name $venue_name $timestamp] diff --git a/test/metabase/util/date_2_test.clj b/test/metabase/util/date_2_test.clj new file mode 100644 index 0000000000000000000000000000000000000000..fcae323a068ea3b050314afa1592dd4aecad9a9f --- /dev/null +++ b/test/metabase/util/date_2_test.clj @@ -0,0 +1,394 @@ +(ns metabase.util.date-2-test + (:require [clojure + [string :as str] + [test :refer :all]] + [java-time :as t] + [metabase.test.util.timezone :as tu.timezone] + [metabase.util.date-2 :as u.date])) + +(deftest parse-test + ;; system timezone should not affect the way strings are parsed + (doseq [system-timezone-id ["UTC" "US/Pacific"]] + (tu.timezone/with-system-timezone-id system-timezone-id + (letfn [(message [expected s default-timezone-id] + (if default-timezone-id + (format "parsing '%s' with default timezone id '%s' should give you %s" s default-timezone-id (pr-str expected)) + (format "parsing '%s' should give you %s" s (pr-str expected)))) + (is-parsed? [expected s default-timezone-id] + {:pre [(string? s)]} + (testing "ISO-8601-style literal" + (is (= expected + (u.date/parse s default-timezone-id)) + (message expected s default-timezone-id))) + (when (str/includes? s "T") + (testing "SQL-style literal" + (let [s (str/replace s #"T" " ")] + (is (= expected + (u.date/parse s default-timezone-id)) + (message expected s default-timezone-id)) + (when-let [[_ before-offset offset] (re-find #"(.*)((?:(?:[+-]\d{2}:\d{2})|Z).*$)" s)] + (let [s (format "%s %s" before-offset offset)] + (testing "w/ space before offset" + (is (= expected + (u.date/parse s default-timezone-id)) + (message expected s default-timezone-id)))))))))] + (testing "literals without timezone" + (doseq [[s expected] + {"2019" (t/local-date 2019 1 1) + "2019-10" (t/local-date 2019 10 1) + "2019-10-28" (t/local-date 2019 10 28) + "2019-10-28T13" (t/local-date-time 2019 10 28 13) + "2019-10-28T13:14" (t/local-date-time 2019 10 28 13 14) + "2019-10-28T13:14:15" (t/local-date-time 2019 10 28 13 14 15) + "2019-10-28T13:14:15.555" (t/local-date-time 2019 10 28 13 14 15 (* 555 1000 1000)) + "13:30" (t/local-time 13 30) + "13:30:20" (t/local-time 13 30 20) + "13:30:20.555" (t/local-time 13 30 20 (* 555 1000 1000))}] + (is-parsed? expected s nil))) + (testing "literals without timezone, but default timezone provided" + (doseq [[s expected] + {"2019" (t/zoned-date-time 2019 1 1 0 0 0 0 (t/zone-id "America/Los_Angeles")) + "2019-10" (t/zoned-date-time 2019 10 1 0 0 0 0 (t/zone-id "America/Los_Angeles")) + "2019-10-28" (t/zoned-date-time 2019 10 28 0 0 0 0 (t/zone-id "America/Los_Angeles")) + "2019-10-28T13" (t/zoned-date-time 2019 10 28 13 0 0 0 (t/zone-id "America/Los_Angeles")) + "2019-10-28T13:14" (t/zoned-date-time 2019 10 28 13 14 0 0 (t/zone-id "America/Los_Angeles")) + "2019-10-28T13:14:15" (t/zoned-date-time 2019 10 28 13 14 15 0 (t/zone-id "America/Los_Angeles")) + "2019-10-28T13:14:15.555" (t/zoned-date-time 2019 10 28 13 14 15 (* 555 1000000) (t/zone-id "America/Los_Angeles")) + ;; Times without timezone info should always be parsed as `LocalTime` regardless of whether a default + ;; timezone if provided. That's because we can't convert the zone to an offset because the offset is up + ;; in the air because of daylight savings. + "13:30" (t/local-time 13 30 0 0) + "13:30:20" (t/local-time 13 30 20 0) + "13:30:20.555" (t/local-time 13 30 20 (* 555 1000000))}] + (is-parsed? expected s "America/Los_Angeles"))) + (testing "literals with a timezone offset" + (doseq [[s expected] + {"2019-10-28-07:00" (t/offset-date-time 2019 10 28 0 0 0 0 (t/zone-offset -7)) + "2019-10-28T13-07:00" (t/offset-date-time 2019 10 28 13 0 0 0 (t/zone-offset -7)) + "2019-10-28T13:14-07:00" (t/offset-date-time 2019 10 28 13 14 0 0 (t/zone-offset -7)) + "2019-10-28T13:14:15-07:00" (t/offset-date-time 2019 10 28 13 14 15 0 (t/zone-offset -7)) + "2019-10-28T13:14:15.555-07:00" (t/offset-date-time 2019 10 28 13 14 15 (* 555 1000000) (t/zone-offset -7)) + "13:30-07:00" (t/offset-time 13 30 0 0 (t/zone-offset -7)) + "13:30:20-07:00" (t/offset-time 13 30 20 0 (t/zone-offset -7)) + "13:30:20.555-07:00" (t/offset-time 13 30 20 (* 555 1000000) (t/zone-offset -7))}] + ;; The 'UTC' default timezone ID should be ignored entirely since all these literals specify their offset + (is-parsed? expected s "UTC"))) + (testing "literals with a timezone id" + (doseq [[s expected] {"2019-10-28-07:00[America/Los_Angeles]" (t/zoned-date-time 2019 10 28 0 0 0 0 (t/zone-id "America/Los_Angeles")) + "2019-10-28T13-07:00[America/Los_Angeles]" (t/zoned-date-time 2019 10 28 13 0 0 0 (t/zone-id "America/Los_Angeles")) + "2019-10-28T13:14-07:00[America/Los_Angeles]" (t/zoned-date-time 2019 10 28 13 14 0 0 (t/zone-id "America/Los_Angeles")) + "2019-10-28T13:14:15-07:00[America/Los_Angeles]" (t/zoned-date-time 2019 10 28 13 14 15 0 (t/zone-id "America/Los_Angeles")) + "2019-10-28T13:14:15.555-07:00[America/Los_Angeles]" (t/zoned-date-time 2019 10 28 13 14 15 (* 555 1000000) (t/zone-id "America/Los_Angeles")) + "13:30-07:00[America/Los_Angeles]" (t/offset-time 13 30 0 0 (t/zone-offset -7)) + "13:30:20-07:00[America/Los_Angeles]" (t/offset-time 13 30 20 0 (t/zone-offset -7)) + "13:30:20.555-07:00[America/Los_Angeles]" (t/offset-time 13 30 20 (* 555 1000000) (t/zone-offset -7))}] + ;; The 'UTC' default timezone ID should be ignored entirely since all these literals specify their zone ID + (is-parsed? expected s "UTC"))) + (testing "literals with UTC offset 'Z'" + (doseq [[s expected] {"2019Z" (t/zoned-date-time 2019 1 1 0 0 0 0 (t/zone-id "UTC")) + "2019-10Z" (t/zoned-date-time 2019 10 1 0 0 0 0 (t/zone-id "UTC")) + "2019-10-28Z" (t/zoned-date-time 2019 10 28 0 0 0 0 (t/zone-id "UTC")) + "2019-10-28T13Z" (t/zoned-date-time 2019 10 28 13 0 0 0 (t/zone-id "UTC")) + "2019-10-28T13:14Z" (t/zoned-date-time 2019 10 28 13 14 0 0 (t/zone-id "UTC")) + "2019-10-28T13:14:15Z" (t/zoned-date-time 2019 10 28 13 14 15 0 (t/zone-id "UTC")) + "2019-10-28T13:14:15.555Z" (t/zoned-date-time 2019 10 28 13 14 15 (* 555 1000000) (t/zone-id "UTC")) + "13:30Z" (t/offset-time 13 30 0 0 (t/zone-offset 0)) + "13:30:20Z" (t/offset-time 13 30 20 0 (t/zone-offset 0)) + "13:30:20.555Z" (t/offset-time 13 30 20 (* 555 1000000) (t/zone-offset 0))}] + ;; default timezone ID should be ignored; because `Z` means UTC we should return ZonedDateTimes instead of + ;; OffsetDateTime + (is-parsed? expected s "US/Pacific")))) + (testing "Weird formats" + (testing "Should be able to parse SQL-style literals where Zone offset is separated by a space, with no colons between hour and minute" + (is (= (t/offset-date-time "2014-08-01T10:00-07:00") + (u.date/parse "2014-08-01 10:00:00.000 -0700"))) + (is (= (t/offset-date-time "2014-08-01T10:00-07:00") + (u.date/parse "2014-08-01 10:00:00 -0700"))) + (is (= (t/offset-date-time "2014-08-01T10:00-07:00") + (u.date/parse "2014-08-01 10:00 -0700")))) + (testing "Should be able to parse SQL-style literals where Zone ID is separated by a space, without brackets" + (is (= (t/zoned-date-time "2014-08-01T10:00Z[UTC]") + (u.date/parse "2014-08-01 10:00:00.000 UTC"))) + (is (= (t/zoned-date-time "2014-08-02T00:00+08:00[Asia/Hong_Kong]") + (u.date/parse "2014-08-02 00:00:00.000 Asia/Hong_Kong")))) + (testing "Should be able to parse strings with hour-only offsets e.g. '+00'" + (is (= (t/offset-time "07:23:18.331Z") + (u.date/parse "07:23:18.331-00"))) + (is (= (t/offset-time "07:23:18.000Z") + (u.date/parse "07:23:18-00"))) + (is (= (t/offset-time "07:23:00.000Z") + (u.date/parse "07:23-00"))) + (is (= (t/offset-time "07:23:18.331-08:00") + (u.date/parse "07:23:18.331-08"))) + (is (= (t/offset-time "07:23:18.000-08:00") + (u.date/parse "07:23:18-08"))) + (is (= (t/offset-time "07:23:00.000-08:00") + (u.date/parse "07:23-08"))))) + (testing "nil" + (is (= nil + (u.date/parse nil)) + "Passing `nil` should return `nil`")) + (testing "blank strings" + (is (= nil + (u.date/parse "")) + (= nil + (u.date/parse " "))))))) + +;; TODO - more tests! +(deftest format-test + (testing "ZonedDateTime" + (is (= "2019-11-01T18:39:00-07:00" + (u.date/format (t/zoned-date-time "2019-11-01T18:39:00-07:00[US/Pacific]"))) + "should get formatted as the same way as an OffsetDateTime")) + (testing "Instant" + (is (= "1970-01-01T00:00:00Z" + (u.date/format (t/instant "1970-01-01T00:00:00Z")))))) + +(deftest format-sql-test + (testing "LocalDateTime" + (is (= "2019-11-05 19:27:00" + (u.date/format-sql (t/local-date-time "2019-11-05T19:27"))))) + (testing "ZonedDateTime" + (is (= "2019-11-01 18:39:00-07:00" + (u.date/format-sql (t/zoned-date-time "2019-11-01T18:39:00-07:00[US/Pacific]"))) + "should get formatted as the same way as an OffsetDateTime"))) + +(deftest adjuster-test + (let [now (t/zoned-date-time "2019-12-10T17:17:00-08:00[US/Pacific]")] + (testing "adjust temporal value to first day of week (Sunday)" + (is (= (t/zoned-date-time "2019-12-08T17:17-08:00[US/Pacific]") + (t/adjust now (u.date/adjuster :first-day-of-week))))) + (testing "adjust temporal value to first day of ISO week (Monday)" + (is (= (t/zoned-date-time "2019-12-09T17:17-08:00[US/Pacific]") + (t/adjust now (u.date/adjuster :first-day-of-iso-week))))) + (testing "adjust temporal value to first day of first week of year (previous or same Sunday as first day of year)" + (is (= (t/zoned-date-time "2018-12-30T17:17-08:00[US/Pacific]") + (t/adjust now (u.date/adjuster :first-week-of-year)) + (t/adjust now (u.date/adjuster :week-of-year 1))))) + (testing "adjust temporal value to the 50th week of the year" + (is (= (t/zoned-date-time "2019-12-08T17:17-08:00[US/Pacific]") + (t/adjust now (u.date/adjuster :week-of-year 50))))))) + +(deftest extract-test + (testing "u.date/extract with 2 args" + ;; everything is at `Sunday October 27th 2019 2:03:40.555 PM` or subset thereof + (let [temporal-category->sample-values {:dates [(t/local-date 2019 10 27)] + :times [(t/local-time 14 3 40 (* 555 1000000)) + (t/offset-time 14 3 40 (* 555 1000000) (t/zone-offset -7))] + :datetimes [(t/offset-date-time 2019 10 27 14 3 40 (* 555 1000000) (t/zone-offset -7)) + (t/zoned-date-time 2019 10 27 14 3 40 (* 555 1000000) (t/zone-id "America/Los_Angeles"))]}] + (doseq [[categories unit->expected] {#{:times :datetimes} {:minute-of-hour 3 + :hour-of-day 14} + #{:dates :datetimes} {:day-of-week 1 + :iso-day-of-week 7 + :day-of-month 27 + :day-of-year 300 + :week-of-year 44 + :iso-week-of-year 43 + :month-of-year 10 + :quarter-of-year 4 + :year 2019}} + category categories + t (get temporal-category->sample-values category) + [unit expected] unit->expected] + (is (= expected + (u.date/extract t unit)) + (format "Extract %s from %s %s should be %s" unit (class t) t expected))))) + (testing "u.date/extract with 1 arg (extract from now)" + (is (= 2 + (t/with-clock (t/mock-clock (t/instant "2019-11-18T22:31:00Z")) + (u.date/extract :day-of-week)))))) + +(deftest truncate-test + (testing "u.date/truncate with 2 args" + (let [t->unit->expected + {(t/local-date 2019 10 27) + {:second (t/local-date 2019 10 27) + :minute (t/local-date 2019 10 27) + :hour (t/local-date 2019 10 27) + :day (t/local-date 2019 10 27) + :week (t/local-date 2019 10 27) + :iso-week (t/local-date 2019 10 21) + :month (t/local-date 2019 10 1) + :quarter (t/local-date 2019 10 1) + :year (t/local-date 2019 1 1)} + + (t/local-time 14 3 40 (* 555 1000000)) + {:second (t/local-time 14 3 40) + :minute (t/local-time 14 3) + :hour (t/local-time 14)} + + (t/offset-time 14 3 40 (* 555 1000000) (t/zone-offset -7)) + {:second (t/offset-time 14 3 40 0 (t/zone-offset -7)) + :minute (t/offset-time 14 3 0 0 (t/zone-offset -7)) + :hour (t/offset-time 14 0 0 0 (t/zone-offset -7))} + + (t/offset-date-time 2019 10 27 14 3 40 (* 555 1000000) (t/zone-offset -7)) + {:second (t/offset-date-time 2019 10 27 14 3 40 0 (t/zone-offset -7)) + :minute (t/offset-date-time 2019 10 27 14 3 0 0 (t/zone-offset -7)) + :hour (t/offset-date-time 2019 10 27 14 0 0 0 (t/zone-offset -7)) + :day (t/offset-date-time 2019 10 27 0 0 0 0 (t/zone-offset -7)) + :week (t/offset-date-time 2019 10 27 0 0 0 0 (t/zone-offset -7)) + :iso-week (t/offset-date-time 2019 10 21 0 0 0 0 (t/zone-offset -7)) + :month (t/offset-date-time 2019 10 1 0 0 0 0 (t/zone-offset -7)) + :quarter (t/offset-date-time 2019 10 1 0 0 0 0 (t/zone-offset -7)) + :year (t/offset-date-time 2019 1 1 0 0 0 0 (t/zone-offset -7))} + + (t/zoned-date-time 2019 10 27 14 3 40 (* 555 1000000) (t/zone-id "America/Los_Angeles")) + {:second (t/zoned-date-time 2019 10 27 14 3 40 0 (t/zone-id "America/Los_Angeles")) + :minute (t/zoned-date-time 2019 10 27 14 3 0 0 (t/zone-id "America/Los_Angeles")) + :hour (t/zoned-date-time 2019 10 27 14 0 0 0 (t/zone-id "America/Los_Angeles")) + :day (t/zoned-date-time 2019 10 27 0 0 0 0 (t/zone-id "America/Los_Angeles")) + :week (t/zoned-date-time 2019 10 27 0 0 0 0 (t/zone-id "America/Los_Angeles")) + :iso-week (t/zoned-date-time 2019 10 21 0 0 0 0 (t/zone-id "America/Los_Angeles")) + :month (t/zoned-date-time 2019 10 1 0 0 0 0 (t/zone-id "America/Los_Angeles")) + :quarter (t/zoned-date-time 2019 10 1 0 0 0 0 (t/zone-id "America/Los_Angeles")) + :year (t/zoned-date-time 2019 1 1 0 0 0 0 (t/zone-id "America/Los_Angeles"))}}] + (doseq [[t unit->expected] t->unit->expected + [unit expected] unit->expected] + (is (= expected + (u.date/truncate t unit)) + (format "Truncate %s %s to %s should be %s" (class t) t unit expected))))) + (testing "u.date/truncate with 1 arg (truncate now)" + (is (= (t/zoned-date-time "2019-11-18T00:00Z[UTC]") + (t/with-clock (t/mock-clock (t/instant "2019-11-18T22:31:00Z")) + (u.date/truncate :day)))))) + +(deftest add-test + (testing "with 2 args (datetime relative to now)" + (is (= (t/zoned-date-time "2019-11-20T22:31Z[UTC]") + (t/with-clock (t/mock-clock (t/instant "2019-11-18T22:31:00Z")) + (u.date/add :day 2))))) + (testing "with 3 args" + (let [t (t/zoned-date-time "2019-06-14T00:00:00.000Z[UTC]")] + (doseq [[unit n expected] [[:second 5 "2019-06-14T00:00:05Z[UTC]"] + [:minute 5 "2019-06-14T00:05:00Z[UTC]"] + [:hour 5 "2019-06-14T05:00:00Z[UTC]"] + [:day 5 "2019-06-19T00:00:00Z[UTC]"] + [:week 5 "2019-07-19T00:00:00Z[UTC]"] + [:month 5 "2019-11-14T00:00:00Z[UTC]"] + [:quarter 5 "2020-09-14T00:00:00Z[UTC]"] + [:year 5 "2024-06-14T00:00:00Z[UTC]"]]] + (is (= (t/zoned-date-time expected) + (u.date/add t unit n)) + (format "%s plus %d %ss should be %s" t n unit expected)))))) + +(deftest range-test + (testing "with 1 arg (range relative to now)" + (is (= {:start (t/zoned-date-time "2019-11-17T00:00Z[UTC]") + :end (t/zoned-date-time "2019-11-24T00:00Z[UTC]")} + (t/with-clock (t/mock-clock (t/instant "2019-11-18T22:31:00Z")) + (u.date/range :week))))) + (testing "with 2 args" + (is (= {:start (t/zoned-date-time "2019-10-27T00:00Z[UTC]") + :end (t/zoned-date-time "2019-11-03T00:00Z[UTC]")} + (u.date/range (t/zoned-date-time "2019-11-01T15:29:00Z[UTC]") :week)))) + (testing "with 3 args (start/end inclusitivity options)" + (testing "exclusive start" + (is (= {:start (t/local-date-time "2019-10-31T23:59:59.999"), :end (t/local-date-time "2019-12-01T00:00")} + (u.date/range (t/local-date-time "2019-11-18T00:00") :month {:start :exclusive})))) + (testing "inclusive end" + (is (= {:start (t/local-date-time "2019-11-01T00:00"), :end (t/local-date-time "2019-11-30T23:59:59.999")} + (u.date/range (t/local-date-time "2019-11-18T00:00") :month {:end :inclusive})))) + (testing ":day resolution + inclusive end" + (is (= {:start (t/local-date "2019-11-01"), :end (t/local-date "2019-11-30")} + (u.date/range (t/local-date "2019-11-18") :month {:end :inclusive, :resolution :day})))))) + +(deftest comparison-range-test + (testing "Comparing MONTH" + (letfn [(comparison-range [comparison-type options] + (u.date/comparison-range (t/local-date "2019-11-18") :month comparison-type (merge {:resolution :day} options)))] + (testing "Month = November" + (is (= {:start (t/local-date "2019-11-01"), :end (t/local-date "2019-12-01")} + (comparison-range := nil))) + (testing "inclusive end" + (is (= {:start (t/local-date "2019-11-01"), :end (t/local-date "2019-11-30")} + (comparison-range := {:end :inclusive})))) + (testing "exclusive start" + (is (= {:start (t/local-date "2019-10-31"), :end (t/local-date "2019-12-01")} + (comparison-range := {:start :exclusive}))))) + (testing "month < November" + (is (= {:end (t/local-date "2019-11-01")} + (comparison-range :< nil))) + (testing "inclusive end" + (is (= {:end (t/local-date "2019-10-31")} + (comparison-range :< {:end :inclusive}))))) + (testing "month <= November" + (is (= {:end (t/local-date "2019-12-01")} + (comparison-range :<= nil))) + (testing "inclusive end" + (is (= {:end (t/local-date "2019-11-30")} + (comparison-range :<= {:end :inclusive}))))) + (testing "month > November" + (is (= {:start (t/local-date "2019-12-01")} + (comparison-range :> nil))) + (testing "exclusive start" + (is (= {:start (t/local-date "2019-11-30")} + (comparison-range :> {:start :exclusive}))))) + (testing "month >= November" + (is (= {:start (t/local-date "2019-11-01")} + (comparison-range :>= nil))) + (testing "exclusive start" + (is (= {:start (t/local-date "2019-10-31")} + (comparison-range :>= {:start :exclusive}))))))) + (testing "Comparing DAY" + (letfn [(comparison-range [comparison-type options] + (u.date/comparison-range (t/local-date-time "2019-11-18T12:00") :day comparison-type (merge {:resolution :minute} options)))] + (testing "Day = November 18th" + (is (= {:start (t/local-date-time "2019-11-18T00:00"), :end (t/local-date-time "2019-11-19T00:00")} + (comparison-range := nil))) + (testing "inclusive end" + (is (= {:start (t/local-date-time "2019-11-18T00:00"), :end (t/local-date-time "2019-11-18T23:59")} + (comparison-range := {:end :inclusive})))) + (testing "exclusive start" + (is (= {:start (t/local-date-time "2019-11-17T23:59"), :end (t/local-date-time "2019-11-19T00:00")} + (comparison-range := {:start :exclusive}))))) + (testing "Day < November 18th" + (is (= {:end (t/local-date-time "2019-11-18T00:00")} + (comparison-range :< nil))) + (testing "inclusive end" + (is (= {:end (t/local-date-time "2019-11-17T23:59")} + (comparison-range :< {:end :inclusive}))))) + (testing "Day <= November 18th" + (is (= {:end (t/local-date-time "2019-11-19T00:00")} + (comparison-range :<= nil))) + (testing "inclusive end" + (is (= {:end (t/local-date-time "2019-11-18T23:59")} + (comparison-range :<= {:end :inclusive}))))) + (testing "Day > November 18th" + (is (= {:start (t/local-date-time "2019-11-19T00:00")} + (comparison-range :> nil))) + (testing "exclusive start" + (is (= {:start (t/local-date-time "2019-11-18T23:59")} + (comparison-range :> {:start :exclusive}))))) + (testing "Day >= November 18th" + (is (= {:start (t/local-date-time "2019-11-18T00:00")} + (comparison-range :>= nil))) + (testing "exclusive start" + (is (= {:start (t/local-date-time "2019-11-17T23:59")} + (comparison-range :>= {:start :exclusive})))))))) + +(deftest period-duration-test + (testing "Creating a period duration from a string" + (is (= (org.threeten.extra.PeriodDuration/of (t/duration "PT59S")) + (u.date/period-duration "PT59S")))) + (testing "Creating a period duration out of two temporal types of the same class" + (is (= (u.date/period-duration "PT1S") + (u.date/period-duration (t/offset-date-time "2019-12-03T02:30:05Z") (t/offset-date-time "2019-12-03T02:30:06Z"))))) + (testing "Creating a period duration out of two different temporal types" + (is (= (u.date/period-duration "PT59S") + (u.date/period-duration (t/instant "2019-12-03T02:30:27Z") (t/offset-date-time "2019-12-03T02:31:26Z")))))) + +(deftest older-than-test + (let [now (t/instant "2019-12-04T00:45:00Z")] + (t/with-clock (t/mock-clock (t/zone-id "America/Los_Angeles")) + (testing (str "now = " now) + (doseq [t ((juxt t/instant t/local-date t/local-date-time t/offset-date-time identity) + (t/zoned-date-time "2019-11-01T00:00-08:00[US/Pacific]"))] + (testing (format "t = %s" (pr-str t)) + (is (= true + (u.date/older-than? t (t/weeks 2))) + (format "%s happened before 2019-11-19" (pr-str t))) + (is (= false + (u.date/older-than? t (t/months 2))) + (format "%s did not happen before 2019-10-03" (pr-str t))))))))) diff --git a/test/metabase/util/date_test.clj b/test/metabase/util/date_test.clj deleted file mode 100644 index 181ea85b319543353ffe82955e0a31b8c0dba8cb..0000000000000000000000000000000000000000 --- a/test/metabase/util/date_test.clj +++ /dev/null @@ -1,111 +0,0 @@ -(ns metabase.util.date-test - (:require [clojure.test :refer :all] - [metabase.util.date :as du])) - -(def ^:private saturday-the-31st #inst "2005-12-31T19:05:55") -(def ^:private sunday-the-1st #inst "2006-01-01T04:18:26") -(def ^:private with-milliseconds #inst "2019-09-24T15:07:30.555") - -(deftest is-temporal-test - (are [expected arg] (= expected - (du/is-temporal? arg)) - false nil - false 123 - false "abc" - false [1 2 3] - false {:a "b"} - true saturday-the-31st)) - -(deftest ->Timestamp-test - (are [actual] (= saturday-the-31st - actual) - (du/->Timestamp (du/->Date saturday-the-31st)) - (du/->Timestamp (du/->Calendar saturday-the-31st)) - (du/->Timestamp (du/->Calendar (.getTime saturday-the-31st))) - (du/->Timestamp (.getTime saturday-the-31st)) - (du/->Timestamp "2005-12-31T19:05:55+00:00" du/utc))) - -(deftest ->iso-8601-datetime-test - (are [expected inst timezone] (= expected - (du/->iso-8601-datetime inst timezone)) - nil nil nil - "2005-12-31T19:05:55.000Z" saturday-the-31st nil - "2005-12-31T11:05:55.000-08:00" saturday-the-31st "US/Pacific" - "2006-01-01T04:05:55.000+09:00" saturday-the-31st "Asia/Tokyo")) - - -(deftest date-extract-test - (testing "UTC timezone" - (are [expected unit inst] (= expected - (du/date-extract unit inst "UTC")) - 5 :minute-of-hour saturday-the-31st - 19 :hour-of-day saturday-the-31st - 7 :day-of-week saturday-the-31st - 1 :day-of-week sunday-the-1st - 31 :day-of-month saturday-the-31st - 365 :day-of-year saturday-the-31st - 53 :week-of-year saturday-the-31st - 12 :month-of-year saturday-the-31st - 4 :quarter-of-year saturday-the-31st - 2005 :year saturday-the-31st)) - (testing "US/Pacific timezone" - (are [expected unit inst] (= expected - (du/date-extract unit inst "US/Pacific")) - 5 :minute-of-hour saturday-the-31st - 11 :hour-of-day saturday-the-31st - 7 :day-of-week saturday-the-31st - 7 :day-of-week sunday-the-1st - 31 :day-of-month saturday-the-31st - 365 :day-of-year saturday-the-31st - 53 :week-of-year saturday-the-31st - 12 :month-of-year saturday-the-31st - 4 :quarter-of-year saturday-the-31st - 2005 :year saturday-the-31st)) - (testing "Asia/Tokyo timezone" - (are [expected unit inst] (= expected - (du/date-extract unit inst "Asia/Tokyo")) - 5 :minute-of-hour saturday-the-31st - 4 :hour-of-day saturday-the-31st - 1 :day-of-week saturday-the-31st - 1 :day-of-week sunday-the-1st - 1 :day-of-month saturday-the-31st - 1 :day-of-year saturday-the-31st - 1 :week-of-year saturday-the-31st - 1 :month-of-year saturday-the-31st - 1 :quarter-of-year saturday-the-31st - 2006 :year saturday-the-31st))) - -(deftest date-trunc-test - (testing "UTC timezone" - (are [expected unit inst] (= expected - (du/date-trunc unit inst "UTC")) - #inst "2019-09-24T15:07:30" :second with-milliseconds - #inst "2005-12-31T19:05" :minute saturday-the-31st - #inst "2005-12-31T19:00" :hour saturday-the-31st - #inst "2005-12-31" :day saturday-the-31st - #inst "2005-12-25" :week saturday-the-31st - #inst "2006-01-01" :week sunday-the-1st - #inst "2005-12-01" :month saturday-the-31st - #inst "2005-10-01" :quarter saturday-the-31st)) - (testing "US/Pacific timezone" - (are [expected unit inst] (= expected - (du/date-trunc unit inst "US/Pacific")) - #inst "2019-09-24T15:07:30" :second with-milliseconds - #inst "2005-12-31T19:05" :minute saturday-the-31st - #inst "2005-12-31T19:00" :hour saturday-the-31st - #inst "2005-12-31-08:00" :day saturday-the-31st - #inst "2005-12-25-08:00" :week saturday-the-31st - #inst "2005-12-25-08:00" :week sunday-the-1st - #inst "2005-12-01-08:00" :month saturday-the-31st - #inst "2005-10-01-08:00" :quarter saturday-the-31st)) - (testing "Asia/Tokyo timezone" - (are [expected unit inst] (= expected - (du/date-trunc unit inst "Asia/Tokyo")) - #inst "2019-09-24T15:07:30" :second with-milliseconds - #inst "2005-12-31T19:05" :minute saturday-the-31st - #inst "2005-12-31T19:00" :hour saturday-the-31st - #inst "2006-01-01+09:00" :day saturday-the-31st - #inst "2006-01-01+09:00" :week saturday-the-31st - #inst "2006-01-01+09:00" :week sunday-the-1st - #inst "2006-01-01+09:00" :month saturday-the-31st - #inst "2006-01-01+09:00" :quarter saturday-the-31st))) diff --git a/test/metabase/util/encryption_test.clj b/test/metabase/util/encryption_test.clj index 4783db6a989a5258c436eb9702f6523394f2ac0f..2d79b345d6e9f17b7aed7e88cb6adb26a1d29c60 100644 --- a/test/metabase/util/encryption_test.clj +++ b/test/metabase/util/encryption_test.clj @@ -69,13 +69,13 @@ (expect (includes-encryption-warning? - (tu/with-mb-log-messages-at-level :warn + (tu/with-log-messages-for-level :warn (encryption/maybe-decrypt secret-2 (encryption/encrypt secret "WOW"))))) ;; Something obviously not encrypted should avoiding trying to decrypt it (and thus not log an error) (expect [] - (tu/with-mb-log-messages-at-level :warn + (tu/with-log-messages-for-level :warn (encryption/maybe-decrypt secret "abc"))) ;; Something obviously not encrypted should return the original string @@ -93,7 +93,7 @@ ;; to decrypt it, log a warning. (expect (includes-encryption-warning? - (tu/with-mb-log-messages-at-level :warn + (tu/with-log-messages-for-level :warn (encryption/maybe-decrypt secret fake-ciphertext)))) ;; Something that is not encrypted, but might be should return the original text diff --git a/test/metabase/util_test.clj b/test/metabase/util_test.clj index fc4e673e9c6c1ccdfea48fd22f06ecf7c2fe2488..e02b03e14c661b75e6d1e1a1b0463430fe0ae630 100644 --- a/test/metabase/util_test.clj +++ b/test/metabase/util_test.clj @@ -1,6 +1,7 @@ (ns metabase.util-test "Tests for functions in `metabase.util`." - (:require [expectations :refer [expect]] + (:require [clojure.test :refer :all] + [expectations :refer [expect]] [flatland.ordered.map :refer [ordered-map]] [metabase.util :as u]) (:import java.util.Locale)) @@ -85,25 +86,36 @@ (u/key-by :id [{:id 1, :name "Rasta"} {:id 2, :name "Lucky"}])) - -;; `remove-diacritical-marks` -(expect "uuuu" (u/remove-diacritical-marks "üuuü")) -(expect "aeiu" (u/remove-diacritical-marks "åéîü")) -(expect "acnx" (u/remove-diacritical-marks "åçñx")) -(expect nil (u/remove-diacritical-marks "")) -(expect nil (u/remove-diacritical-marks nil)) +(deftest remove-diacritical-marks-test + (doseq [[s expected] {"üuuü" "uuuu" + "åéîü" "aeiu" + "åçñx" "acnx" + "" nil + nil nil}] + (testing (list 'u/remove-diacritical-marks s) + (is (= expected + (u/remove-diacritical-marks s)))))) ;;; `slugify` -(expect "toucanfest_2017" (u/slugify "ToucanFest 2017")) -(expect "cam_s_awesome_toucan_emporium" (u/slugify "Cam's awesome toucan emporium")) -(expect "frequently_used_cards" (u/slugify "Frequently-Used Cards")) -;; check that diactrics get removed -(expect "cam_saul_s_toucannery" (u/slugify "Cam Saul's Toucannery")) -(expect "toucans_dislike_pinatas___" (u/slugify "toucans dislike piñatas :(")) -;; check that non-ASCII characters get URL-encoded (so we can support non-Latin alphabet languages; see #3818) -(expect "%E5%8B%87%E5%A3%AB" (u/slugify "勇士")) ; go dubs - +(deftest slugify-test + (doseq [[group s->expected] + {nil + {"ToucanFest 2017" "toucanfest_2017" + "Cam's awesome toucan emporium" "cam_s_awesome_toucan_emporium" + "Frequently-Used Cards" "frequently_used_cards"} + + "check that diactrics get removed" + {"Cam Saul's Toucannery" "cam_saul_s_toucannery" + "toucans dislike piñatas :(" "toucans_dislike_pinatas___" } + + "check that non-ASCII characters get URL-encoded (so we can support non-Latin alphabet languages; see #3818)" + {"勇士" "%E5%8B%87%E5%A3%AB"}}] + (testing group + (doseq [[s expected] s->expected] + (testing (list 'u/slugify s) + (is (= expected + (u/slugify s)))))))) ;;; `select-nested-keys` (expect diff --git a/test_resources/ldap.ldif b/test_resources/ldap.ldif index 9d86c6f417da87d19368da755fdc2b3f303445a0..f2a2b8fcc21a10b4e9202f3273bd0a1e612332b0 100644 --- a/test_resources/ldap.ldif +++ b/test_resources/ldap.ldif @@ -34,6 +34,18 @@ uid: sbrown20 mail: sally.brown@metabase.com userPassword: 1234 +dn: cn=Fred Taylor,ou=People,dc=metabase,dc=com +objectClass: top +objectClass: person +objectClass: organizationalPerson +objectClass: inetOrgPerson +cn: Fred Taylor +sN: Taylor +givenname: Fred +uid: ftaylor300 +mAiL: fred.taylor@metabase.com +userpassword: unh4ck4bl3 + dn: ou=Birds,dc=metabase,dc=com objectClass: top objectClass: organizationalUnit diff --git a/yarn.lock b/yarn.lock index 88422ad65f79ce125ef44e804619f0c5b3a8c78b..7c21ba81103356644a503e243debb0d0f4eb23c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,33 @@ dependencies: "@babel/highlight" "^7.0.0" +"@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/core@^7.0.1": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.2.tgz#ea5b99693bcfc058116f42fa1dd54da412b29d91" + integrity sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.7.2" + "@babel/helpers" "^7.7.0" + "@babel/parser" "^7.7.2" + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.7.2" + convert-source-map "^1.7.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.