@gooddata/sdk-ui-dashboard 10.33.0-alpha.78 → 10.33.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. package/NOTICE +2342 -3859
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.d.ts.map +1 -1
  4. package/esm/__version.js +1 -1
  5. package/esm/__version.js.map +1 -1
  6. package/esm/_staging/dashboard/flexibleLayout/config.d.ts +0 -1
  7. package/esm/_staging/dashboard/flexibleLayout/config.d.ts.map +1 -1
  8. package/esm/_staging/dashboard/flexibleLayout/config.js +1 -2
  9. package/esm/_staging/dashboard/flexibleLayout/config.js.map +1 -1
  10. package/esm/_staging/layout/sizing.d.ts.map +1 -1
  11. package/esm/_staging/layout/sizing.js +5 -7
  12. package/esm/_staging/layout/sizing.js.map +1 -1
  13. package/esm/model/commandHandlers/layout/containerHeightSanitization.d.ts +0 -10
  14. package/esm/model/commandHandlers/layout/containerHeightSanitization.d.ts.map +1 -1
  15. package/esm/model/commandHandlers/layout/containerHeightSanitization.js +60 -142
  16. package/esm/model/commandHandlers/layout/containerHeightSanitization.js.map +1 -1
  17. package/esm/model/commandHandlers/layout/containerWidthSanitization.d.ts +4 -9
  18. package/esm/model/commandHandlers/layout/containerWidthSanitization.d.ts.map +1 -1
  19. package/esm/model/commandHandlers/layout/containerWidthSanitization.js +12 -21
  20. package/esm/model/commandHandlers/layout/containerWidthSanitization.js.map +1 -1
  21. package/esm/model/commandHandlers/layout/moveSectionItemHandler.d.ts.map +1 -1
  22. package/esm/model/commandHandlers/layout/moveSectionItemHandler.js +7 -10
  23. package/esm/model/commandHandlers/layout/moveSectionItemHandler.js.map +1 -1
  24. package/esm/model/commandHandlers/layout/moveSectionItemToNewSectionHandler.d.ts.map +1 -1
  25. package/esm/model/commandHandlers/layout/moveSectionItemToNewSectionHandler.js +10 -14
  26. package/esm/model/commandHandlers/layout/moveSectionItemToNewSectionHandler.js.map +1 -1
  27. package/esm/model/commandHandlers/layout/toggleLayoutDirectionHandler.d.ts.map +1 -1
  28. package/esm/model/commandHandlers/layout/toggleLayoutDirectionHandler.js +1 -1
  29. package/esm/model/commandHandlers/layout/toggleLayoutDirectionHandler.js.map +1 -1
  30. package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js +1 -3
  31. package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js.map +1 -1
  32. package/esm/model/headlessDashboard/HeadlessDashboard.d.ts.map +1 -1
  33. package/esm/model/headlessDashboard/HeadlessDashboard.js +3 -4
  34. package/esm/model/headlessDashboard/HeadlessDashboard.js.map +1 -1
  35. package/esm/model/index.d.ts +3 -1
  36. package/esm/model/index.d.ts.map +1 -1
  37. package/esm/model/index.js +3 -1
  38. package/esm/model/index.js.map +1 -1
  39. package/esm/model/queryServices/index.d.ts +0 -3
  40. package/esm/model/queryServices/index.d.ts.map +1 -1
  41. package/esm/model/queryServices/index.js +0 -3
  42. package/esm/model/queryServices/index.js.map +1 -1
  43. package/esm/model/queryServices/queryInsightAttributesMeta.d.ts +2 -9
  44. package/esm/model/queryServices/queryInsightAttributesMeta.d.ts.map +1 -1
  45. package/esm/model/queryServices/queryInsightAttributesMeta.js.map +1 -1
  46. package/esm/model/queryServices/queryInsightDateDatasets.d.ts +2 -9
  47. package/esm/model/queryServices/queryInsightDateDatasets.d.ts.map +1 -1
  48. package/esm/model/queryServices/queryInsightDateDatasets.js.map +1 -1
  49. package/esm/model/queryServices/queryMeasureDateDatasets.d.ts +2 -9
  50. package/esm/model/queryServices/queryMeasureDateDatasets.d.ts.map +1 -1
  51. package/esm/model/queryServices/queryMeasureDateDatasets.js.map +1 -1
  52. package/esm/model/react/DashboardStoreProvider.d.ts +2 -2
  53. package/esm/model/react/DashboardStoreProvider.d.ts.map +1 -1
  54. package/esm/model/react/DashboardStoreProvider.js +1 -1
  55. package/esm/model/react/DashboardStoreProvider.js.map +1 -1
  56. package/esm/model/react/filtering/selectors.js +1 -1
  57. package/esm/model/react/filtering/selectors.js.map +1 -1
  58. package/esm/model/react/useInitializeDashboardStore.d.ts.map +1 -1
  59. package/esm/model/react/useInitializeDashboardStore.js.map +1 -1
  60. package/esm/model/store/_infra/queryProcessing.d.ts +2 -2
  61. package/esm/model/store/_infra/queryProcessing.d.ts.map +1 -1
  62. package/esm/model/store/_infra/queryProcessing.js +1 -1
  63. package/esm/model/store/_infra/queryProcessing.js.map +1 -1
  64. package/esm/model/store/_infra/queryService.d.ts +2 -2
  65. package/esm/model/store/_infra/queryService.d.ts.map +1 -1
  66. package/esm/model/store/_infra/queryService.js +1 -1
  67. package/esm/model/store/_infra/queryService.js.map +1 -1
  68. package/esm/model/store/_infra/undoEnhancer.d.ts +3 -0
  69. package/esm/model/store/_infra/undoEnhancer.d.ts.map +1 -1
  70. package/esm/model/store/accessibleDashboards/accessibleDashboardsEntityAdapter.d.ts +1 -2
  71. package/esm/model/store/accessibleDashboards/accessibleDashboardsEntityAdapter.d.ts.map +1 -1
  72. package/esm/model/store/accessibleDashboards/accessibleDashboardsEntityAdapter.js +1 -1
  73. package/esm/model/store/accessibleDashboards/accessibleDashboardsEntityAdapter.js.map +1 -1
  74. package/esm/model/store/accessibleDashboards/accessibleDashboardsSelectors.js +1 -1
  75. package/esm/model/store/accessibleDashboards/accessibleDashboardsSelectors.js.map +1 -1
  76. package/esm/model/store/accessibleDashboards/index.d.ts +9 -7
  77. package/esm/model/store/accessibleDashboards/index.d.ts.map +1 -1
  78. package/esm/model/store/accessibleDashboards/index.js +2 -3
  79. package/esm/model/store/accessibleDashboards/index.js.map +1 -1
  80. package/esm/model/store/attributeFilterConfigs/attributeFilterConfigsSelectors.js +1 -1
  81. package/esm/model/store/attributeFilterConfigs/attributeFilterConfigsSelectors.js.map +1 -1
  82. package/esm/model/store/attributeFilterConfigs/index.d.ts +19 -9
  83. package/esm/model/store/attributeFilterConfigs/index.d.ts.map +1 -1
  84. package/esm/model/store/attributeFilterConfigs/index.js +3 -4
  85. package/esm/model/store/attributeFilterConfigs/index.js.map +1 -1
  86. package/esm/model/store/automations/automationsReducers.d.ts +1 -1
  87. package/esm/model/store/automations/automationsSelectors.js +1 -1
  88. package/esm/model/store/automations/automationsSelectors.js.map +1 -1
  89. package/esm/model/store/automations/index.d.ts +20 -10
  90. package/esm/model/store/automations/index.d.ts.map +1 -1
  91. package/esm/model/store/automations/index.js +2 -3
  92. package/esm/model/store/automations/index.js.map +1 -1
  93. package/esm/model/store/backendCapabilities/backendCapabilitiesSelectors.js +1 -1
  94. package/esm/model/store/backendCapabilities/backendCapabilitiesSelectors.js.map +1 -1
  95. package/esm/model/store/backendCapabilities/index.d.ts +7 -6
  96. package/esm/model/store/backendCapabilities/index.d.ts.map +1 -1
  97. package/esm/model/store/backendCapabilities/index.js +2 -3
  98. package/esm/model/store/backendCapabilities/index.js.map +1 -1
  99. package/esm/model/store/catalog/catalogSelectors.js +1 -1
  100. package/esm/model/store/catalog/catalogSelectors.js.map +1 -1
  101. package/esm/model/store/catalog/index.d.ts +23 -10
  102. package/esm/model/store/catalog/index.d.ts.map +1 -1
  103. package/esm/model/store/catalog/index.js +2 -3
  104. package/esm/model/store/catalog/index.js.map +1 -1
  105. package/esm/model/store/config/configSelectors.d.ts +2 -2
  106. package/esm/model/store/config/configSelectors.d.ts.map +1 -1
  107. package/esm/model/store/config/configSelectors.js +4 -4
  108. package/esm/model/store/config/configSelectors.js.map +1 -1
  109. package/esm/model/store/config/index.d.ts +7 -6
  110. package/esm/model/store/config/index.d.ts.map +1 -1
  111. package/esm/model/store/config/index.js +2 -3
  112. package/esm/model/store/config/index.js.map +1 -1
  113. package/esm/model/store/dashboardPermissions/dashboardPermissionsSelectors.js +1 -1
  114. package/esm/model/store/dashboardPermissions/dashboardPermissionsSelectors.js.map +1 -1
  115. package/esm/model/store/dashboardPermissions/index.d.ts +7 -6
  116. package/esm/model/store/dashboardPermissions/index.d.ts.map +1 -1
  117. package/esm/model/store/dashboardPermissions/index.js +2 -3
  118. package/esm/model/store/dashboardPermissions/index.js.map +1 -1
  119. package/esm/model/store/dashboardStore.d.ts.map +1 -1
  120. package/esm/model/store/dashboardStore.js +1 -1
  121. package/esm/model/store/dashboardStore.js.map +1 -1
  122. package/esm/model/store/dateFilterConfig/dateFilterConfigSelectors.js +1 -1
  123. package/esm/model/store/dateFilterConfig/dateFilterConfigSelectors.js.map +1 -1
  124. package/esm/model/store/dateFilterConfig/index.d.ts +31 -15
  125. package/esm/model/store/dateFilterConfig/index.d.ts.map +1 -1
  126. package/esm/model/store/dateFilterConfig/index.js +2 -3
  127. package/esm/model/store/dateFilterConfig/index.js.map +1 -1
  128. package/esm/model/store/dateFilterConfigs/dateFilterConfigsSelectors.js +1 -1
  129. package/esm/model/store/dateFilterConfigs/dateFilterConfigsSelectors.js.map +1 -1
  130. package/esm/model/store/dateFilterConfigs/index.d.ts +19 -9
  131. package/esm/model/store/dateFilterConfigs/index.d.ts.map +1 -1
  132. package/esm/model/store/dateFilterConfigs/index.js +2 -3
  133. package/esm/model/store/dateFilterConfigs/index.js.map +1 -1
  134. package/esm/model/store/drill/drillReducers.d.ts +1 -1
  135. package/esm/model/store/drill/drillSelectors.js +1 -1
  136. package/esm/model/store/drill/drillSelectors.js.map +1 -1
  137. package/esm/model/store/drill/index.d.ts +12 -8
  138. package/esm/model/store/drill/index.d.ts.map +1 -1
  139. package/esm/model/store/drill/index.js +2 -2
  140. package/esm/model/store/drill/index.js.map +1 -1
  141. package/esm/model/store/drillTargets/drillTargetsEntityAdapter.d.ts +1 -2
  142. package/esm/model/store/drillTargets/drillTargetsEntityAdapter.d.ts.map +1 -1
  143. package/esm/model/store/drillTargets/drillTargetsEntityAdapter.js +1 -1
  144. package/esm/model/store/drillTargets/drillTargetsEntityAdapter.js.map +1 -1
  145. package/esm/model/store/drillTargets/drillTargetsSelectors.js +1 -1
  146. package/esm/model/store/drillTargets/drillTargetsSelectors.js.map +1 -1
  147. package/esm/model/store/drillTargets/index.d.ts +10 -7
  148. package/esm/model/store/drillTargets/index.d.ts.map +1 -1
  149. package/esm/model/store/drillTargets/index.js +2 -3
  150. package/esm/model/store/drillTargets/index.js.map +1 -1
  151. package/esm/model/store/entitlements/entitlementsSelectors.js +1 -1
  152. package/esm/model/store/entitlements/entitlementsSelectors.js.map +1 -1
  153. package/esm/model/store/entitlements/index.d.ts +7 -6
  154. package/esm/model/store/entitlements/index.d.ts.map +1 -1
  155. package/esm/model/store/entitlements/index.js +2 -3
  156. package/esm/model/store/entitlements/index.js.map +1 -1
  157. package/esm/model/store/executed/executedSelectors.js +1 -1
  158. package/esm/model/store/executed/executedSelectors.js.map +1 -1
  159. package/esm/model/store/executed/index.d.ts +5 -7
  160. package/esm/model/store/executed/index.d.ts.map +1 -1
  161. package/esm/model/store/executed/index.js +2 -3
  162. package/esm/model/store/executed/index.js.map +1 -1
  163. package/esm/model/store/executionResults/executionResultsEntityAdapter.d.ts +1 -2
  164. package/esm/model/store/executionResults/executionResultsEntityAdapter.d.ts.map +1 -1
  165. package/esm/model/store/executionResults/executionResultsEntityAdapter.js +1 -1
  166. package/esm/model/store/executionResults/executionResultsEntityAdapter.js.map +1 -1
  167. package/esm/model/store/executionResults/executionResultsSelectors.d.ts +1 -7
  168. package/esm/model/store/executionResults/executionResultsSelectors.d.ts.map +1 -1
  169. package/esm/model/store/executionResults/executionResultsSelectors.js +1 -1
  170. package/esm/model/store/executionResults/executionResultsSelectors.js.map +1 -1
  171. package/esm/model/store/executionResults/index.d.ts +11 -8
  172. package/esm/model/store/executionResults/index.d.ts.map +1 -1
  173. package/esm/model/store/executionResults/index.js +2 -3
  174. package/esm/model/store/executionResults/index.js.map +1 -1
  175. package/esm/model/store/filterContext/filterContextSelectors.js +1 -1
  176. package/esm/model/store/filterContext/filterContextSelectors.js.map +1 -1
  177. package/esm/model/store/filterContext/index.d.ts +102 -35
  178. package/esm/model/store/filterContext/index.d.ts.map +1 -1
  179. package/esm/model/store/filterContext/index.js +2 -3
  180. package/esm/model/store/filterContext/index.js.map +1 -1
  181. package/esm/model/store/filterViews/filterViewsReducersSelectors.js +1 -1
  182. package/esm/model/store/filterViews/filterViewsReducersSelectors.js.map +1 -1
  183. package/esm/model/store/filterViews/index.d.ts +11 -7
  184. package/esm/model/store/filterViews/index.d.ts.map +1 -1
  185. package/esm/model/store/filterViews/index.js +2 -3
  186. package/esm/model/store/filterViews/index.js.map +1 -1
  187. package/esm/model/store/inaccessibleDashboards/inaccessibleDashboardsEntityAdapter.d.ts +1 -2
  188. package/esm/model/store/inaccessibleDashboards/inaccessibleDashboardsEntityAdapter.d.ts.map +1 -1
  189. package/esm/model/store/inaccessibleDashboards/inaccessibleDashboardsEntityAdapter.js +1 -1
  190. package/esm/model/store/inaccessibleDashboards/inaccessibleDashboardsEntityAdapter.js.map +1 -1
  191. package/esm/model/store/inaccessibleDashboards/inaccessibleDashboardsSelectors.js +1 -1
  192. package/esm/model/store/inaccessibleDashboards/inaccessibleDashboardsSelectors.js.map +1 -1
  193. package/esm/model/store/inaccessibleDashboards/index.d.ts +10 -7
  194. package/esm/model/store/inaccessibleDashboards/index.d.ts.map +1 -1
  195. package/esm/model/store/inaccessibleDashboards/index.js +2 -3
  196. package/esm/model/store/inaccessibleDashboards/index.js.map +1 -1
  197. package/esm/model/store/index.d.ts +1 -1
  198. package/esm/model/store/index.d.ts.map +1 -1
  199. package/esm/model/store/index.js +1 -1
  200. package/esm/model/store/index.js.map +1 -1
  201. package/esm/model/store/insights/index.d.ts +24 -9
  202. package/esm/model/store/insights/index.d.ts.map +1 -1
  203. package/esm/model/store/insights/index.js +2 -3
  204. package/esm/model/store/insights/index.js.map +1 -1
  205. package/esm/model/store/insights/insightsEntityAdapter.d.ts +1 -2
  206. package/esm/model/store/insights/insightsEntityAdapter.d.ts.map +1 -1
  207. package/esm/model/store/insights/insightsEntityAdapter.js +1 -1
  208. package/esm/model/store/insights/insightsEntityAdapter.js.map +1 -1
  209. package/esm/model/store/insights/insightsSelectors.js +1 -1
  210. package/esm/model/store/insights/insightsSelectors.js.map +1 -1
  211. package/esm/model/store/layout/index.d.ts +133 -99
  212. package/esm/model/store/layout/index.d.ts.map +1 -1
  213. package/esm/model/store/layout/index.js +2 -3
  214. package/esm/model/store/layout/index.js.map +1 -1
  215. package/esm/model/store/layout/layoutSelectors.js +1 -1
  216. package/esm/model/store/layout/layoutSelectors.js.map +1 -1
  217. package/esm/model/store/listedDashboards/index.d.ts +17 -8
  218. package/esm/model/store/listedDashboards/index.d.ts.map +1 -1
  219. package/esm/model/store/listedDashboards/index.js +2 -3
  220. package/esm/model/store/listedDashboards/index.js.map +1 -1
  221. package/esm/model/store/listedDashboards/listedDashboardsEntityAdapter.d.ts +1 -2
  222. package/esm/model/store/listedDashboards/listedDashboardsEntityAdapter.d.ts.map +1 -1
  223. package/esm/model/store/listedDashboards/listedDashboardsEntityAdapter.js +1 -1
  224. package/esm/model/store/listedDashboards/listedDashboardsEntityAdapter.js.map +1 -1
  225. package/esm/model/store/listedDashboards/listedDashboardsSelectors.js +1 -1
  226. package/esm/model/store/listedDashboards/listedDashboardsSelectors.js.map +1 -1
  227. package/esm/model/store/loading/index.d.ts +9 -8
  228. package/esm/model/store/loading/index.d.ts.map +1 -1
  229. package/esm/model/store/loading/index.js +2 -3
  230. package/esm/model/store/loading/index.js.map +1 -1
  231. package/esm/model/store/loading/loadingSelectors.js +1 -1
  232. package/esm/model/store/loading/loadingSelectors.js.map +1 -1
  233. package/esm/model/store/meta/index.d.ts +36 -15
  234. package/esm/model/store/meta/index.d.ts.map +1 -1
  235. package/esm/model/store/meta/index.js +4 -3
  236. package/esm/model/store/meta/index.js.map +1 -1
  237. package/esm/model/store/meta/metaSelectors.js +1 -1
  238. package/esm/model/store/meta/metaSelectors.js.map +1 -1
  239. package/esm/model/store/notificationChannels/index.d.ts +11 -7
  240. package/esm/model/store/notificationChannels/index.d.ts.map +1 -1
  241. package/esm/model/store/notificationChannels/index.js +2 -3
  242. package/esm/model/store/notificationChannels/index.js.map +1 -1
  243. package/esm/model/store/notificationChannels/notificationChannelsSelectors.js +1 -1
  244. package/esm/model/store/notificationChannels/notificationChannelsSelectors.js.map +1 -1
  245. package/esm/model/store/permissions/index.d.ts +7 -6
  246. package/esm/model/store/permissions/index.d.ts.map +1 -1
  247. package/esm/model/store/permissions/index.js +2 -3
  248. package/esm/model/store/permissions/index.js.map +1 -1
  249. package/esm/model/store/permissions/permissionsSelectors.js +1 -1
  250. package/esm/model/store/permissions/permissionsSelectors.js.map +1 -1
  251. package/esm/model/store/renderMode/index.d.ts +10 -9
  252. package/esm/model/store/renderMode/index.d.ts.map +1 -1
  253. package/esm/model/store/renderMode/index.js +2 -3
  254. package/esm/model/store/renderMode/index.js.map +1 -1
  255. package/esm/model/store/renderMode/renderModeSelectors.js +1 -1
  256. package/esm/model/store/renderMode/renderModeSelectors.js.map +1 -1
  257. package/esm/model/store/saving/index.d.ts +9 -8
  258. package/esm/model/store/saving/index.d.ts.map +1 -1
  259. package/esm/model/store/saving/index.js +2 -3
  260. package/esm/model/store/saving/index.js.map +1 -1
  261. package/esm/model/store/saving/savingSelectors.js +1 -1
  262. package/esm/model/store/saving/savingSelectors.js.map +1 -1
  263. package/esm/model/store/showWidgetAsTable/index.d.ts +1 -3
  264. package/esm/model/store/showWidgetAsTable/index.d.ts.map +1 -1
  265. package/esm/model/store/showWidgetAsTable/index.js +1 -1
  266. package/esm/model/store/showWidgetAsTable/index.js.map +1 -1
  267. package/esm/model/store/topBar/topBarSelectors.js +1 -1
  268. package/esm/model/store/topBar/topBarSelectors.js.map +1 -1
  269. package/esm/model/store/types.d.ts +6 -6
  270. package/esm/model/store/types.d.ts.map +1 -1
  271. package/esm/model/store/ui/index.d.ts +168 -77
  272. package/esm/model/store/ui/index.d.ts.map +1 -1
  273. package/esm/model/store/ui/index.js +2 -3
  274. package/esm/model/store/ui/index.js.map +1 -1
  275. package/esm/model/store/ui/uiSelectors.js +1 -1
  276. package/esm/model/store/ui/uiSelectors.js.map +1 -1
  277. package/esm/model/store/user/index.d.ts +7 -6
  278. package/esm/model/store/user/index.d.ts.map +1 -1
  279. package/esm/model/store/user/index.js +2 -3
  280. package/esm/model/store/user/index.js.map +1 -1
  281. package/esm/model/store/user/userSelectors.js +1 -1
  282. package/esm/model/store/user/userSelectors.js.map +1 -1
  283. package/esm/model/store/users/index.d.ts +15 -8
  284. package/esm/model/store/users/index.d.ts.map +1 -1
  285. package/esm/model/store/users/index.js +2 -3
  286. package/esm/model/store/users/index.js.map +1 -1
  287. package/esm/model/store/users/usersSelectors.js +1 -1
  288. package/esm/model/store/users/usersSelectors.js.map +1 -1
  289. package/esm/model/store/widgetDrills/widgetDrillSelectors.js +1 -1
  290. package/esm/model/store/widgetDrills/widgetDrillSelectors.js.map +1 -1
  291. package/esm/model/store/widgetExports/widgetExportsSelectors.js +1 -1
  292. package/esm/model/store/widgetExports/widgetExportsSelectors.js.map +1 -1
  293. package/esm/presentation/dashboard/DefaultDashboardContent/DefaultDashboardMainContent.d.ts.map +1 -1
  294. package/esm/presentation/dashboard/DefaultDashboardContent/DefaultDashboardMainContent.js +0 -1
  295. package/esm/presentation/dashboard/DefaultDashboardContent/DefaultDashboardMainContent.js.map +1 -1
  296. package/esm/presentation/dashboard/components/DateFilterConfigWarnings.js +1 -1
  297. package/esm/presentation/dashboard/components/DateFilterConfigWarnings.js.map +1 -1
  298. package/esm/presentation/dragAndDrop/LayoutResizeContext.d.ts +1 -3
  299. package/esm/presentation/dragAndDrop/LayoutResizeContext.d.ts.map +1 -1
  300. package/esm/presentation/dragAndDrop/LayoutResizeContext.js +2 -6
  301. package/esm/presentation/dragAndDrop/LayoutResizeContext.js.map +1 -1
  302. package/esm/presentation/dragAndDrop/draggableAttributeFilter/DefaultAttributeFilterDraggingComponent.js +1 -1
  303. package/esm/presentation/dragAndDrop/draggableAttributeFilter/DefaultAttributeFilterDraggingComponent.js.map +1 -1
  304. package/esm/presentation/dragAndDrop/draggableWidget/AddDashboardLayoutWidgetButton.d.ts.map +1 -1
  305. package/esm/presentation/dragAndDrop/draggableWidget/AddDashboardLayoutWidgetButton.js +11 -7
  306. package/esm/presentation/dragAndDrop/draggableWidget/AddDashboardLayoutWidgetButton.js.map +1 -1
  307. package/esm/presentation/dragAndDrop/useDashboardDragScroll.d.ts.map +1 -1
  308. package/esm/presentation/dragAndDrop/useDashboardDragScroll.js +2 -1
  309. package/esm/presentation/dragAndDrop/useDashboardDragScroll.js.map +1 -1
  310. package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.d.ts.map +1 -1
  311. package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.js +3 -2
  312. package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.js.map +1 -1
  313. package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.js +1 -1
  314. package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.js.map +1 -1
  315. package/esm/presentation/flexibleLayout/DashboardLayoutWidget.d.ts.map +1 -1
  316. package/esm/presentation/flexibleLayout/DashboardLayoutWidget.js +7 -6
  317. package/esm/presentation/flexibleLayout/DashboardLayoutWidget.js.map +1 -1
  318. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/GridLayoutElement.d.ts.map +1 -1
  319. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/GridLayoutElement.js +3 -3
  320. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/GridLayoutElement.js.map +1 -1
  321. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutUtils.d.ts +2 -2
  322. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutUtils.d.ts.map +1 -1
  323. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutUtils.js +5 -5
  324. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutUtils.js.map +1 -1
  325. package/esm/presentation/flexibleLayout/DefaultFlexibleDashboardLayout.d.ts.map +1 -1
  326. package/esm/presentation/flexibleLayout/DefaultFlexibleDashboardLayout.js +3 -12
  327. package/esm/presentation/flexibleLayout/DefaultFlexibleDashboardLayout.js.map +1 -1
  328. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/BulletsBar/Bullet.d.ts +9 -0
  329. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/BulletsBar/Bullet.d.ts.map +1 -0
  330. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/BulletsBar/Bullet.js +16 -0
  331. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/BulletsBar/Bullet.js.map +1 -0
  332. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/BulletsBar/BulletsBar.d.ts +3 -0
  333. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/BulletsBar/BulletsBar.d.ts.map +1 -0
  334. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/BulletsBar/BulletsBar.js +20 -0
  335. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/BulletsBar/BulletsBar.js.map +1 -0
  336. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.d.ts.map +1 -1
  337. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.js +1 -2
  338. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.js.map +1 -1
  339. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/WidthResizerHotspot.d.ts.map +1 -1
  340. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/WidthResizerHotspot.js +5 -6
  341. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/WidthResizerHotspot.js.map +1 -1
  342. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/EmptyNestedLayoutDropZone.js +1 -1
  343. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/EmptyNestedLayoutDropZone.js.map +1 -1
  344. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/Hotspot.d.ts +2 -5
  345. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/Hotspot.d.ts.map +1 -1
  346. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/Hotspot.js +17 -29
  347. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/Hotspot.js.map +1 -1
  348. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/RowEndHotspot.d.ts +2 -4
  349. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/RowEndHotspot.d.ts.map +1 -1
  350. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/RowEndHotspot.js +18 -36
  351. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/RowEndHotspot.js.map +1 -1
  352. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/WidgetDropZoneColumn.d.ts +1 -2
  353. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/WidgetDropZoneColumn.d.ts.map +1 -1
  354. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/WidgetDropZoneColumn.js +9 -15
  355. package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/WidgetDropZoneColumn.js.map +1 -1
  356. package/esm/presentation/flexibleLayout/rowEndHotspotHelper.d.ts +0 -2
  357. package/esm/presentation/flexibleLayout/rowEndHotspotHelper.d.ts.map +1 -1
  358. package/esm/presentation/flexibleLayout/rowEndHotspotHelper.js +0 -22
  359. package/esm/presentation/flexibleLayout/rowEndHotspotHelper.js.map +1 -1
  360. package/esm/presentation/layout/dragAndDrop/Resize/HeightResizerHotspot.js +1 -1
  361. package/esm/presentation/layout/dragAndDrop/Resize/HeightResizerHotspot.js.map +1 -1
  362. package/esm/presentation/layout/dragAndDrop/Resize/WidthResizerHotspot.js +1 -1
  363. package/esm/presentation/layout/dragAndDrop/Resize/WidthResizerHotspot.js.map +1 -1
  364. package/esm/presentation/localization/bundles/de-DE.json +1 -22
  365. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +0 -21
  366. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
  367. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +2 -23
  368. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js.map +1 -1
  369. package/esm/presentation/localization/bundles/en-AU.json +1 -22
  370. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +0 -21
  371. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
  372. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +2 -23
  373. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js.map +1 -1
  374. package/esm/presentation/localization/bundles/en-GB.json +1 -22
  375. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +0 -21
  376. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
  377. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +2 -23
  378. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js.map +1 -1
  379. package/esm/presentation/localization/bundles/en-US.json +473 -538
  380. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +3393 -685
  381. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  382. package/esm/presentation/localization/bundles/en-US.localization-bundle.js +3394 -686
  383. package/esm/presentation/localization/bundles/en-US.localization-bundle.js.map +1 -1
  384. package/esm/presentation/localization/bundles/es-419.json +1 -22
  385. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +0 -21
  386. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
  387. package/esm/presentation/localization/bundles/es-419.localization-bundle.js +2 -23
  388. package/esm/presentation/localization/bundles/es-419.localization-bundle.js.map +1 -1
  389. package/esm/presentation/localization/bundles/es-ES.json +1 -22
  390. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +0 -21
  391. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
  392. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +2 -23
  393. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js.map +1 -1
  394. package/esm/presentation/localization/bundles/fi-FI.json +1 -22
  395. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +0 -21
  396. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
  397. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +2 -23
  398. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js.map +1 -1
  399. package/esm/presentation/localization/bundles/fr-CA.json +1 -22
  400. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +0 -21
  401. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
  402. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +2 -23
  403. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js.map +1 -1
  404. package/esm/presentation/localization/bundles/fr-FR.json +1 -22
  405. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +0 -21
  406. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
  407. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +2 -23
  408. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js.map +1 -1
  409. package/esm/presentation/localization/bundles/it-IT.json +1 -22
  410. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +0 -21
  411. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
  412. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +2 -23
  413. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js.map +1 -1
  414. package/esm/presentation/localization/bundles/ja-JP.json +1 -22
  415. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +0 -21
  416. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
  417. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +2 -23
  418. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js.map +1 -1
  419. package/esm/presentation/localization/bundles/ko-KR.json +1 -22
  420. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +0 -21
  421. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
  422. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +2 -23
  423. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js.map +1 -1
  424. package/esm/presentation/localization/bundles/nl-NL.json +1 -22
  425. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +0 -21
  426. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
  427. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +2 -23
  428. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js.map +1 -1
  429. package/esm/presentation/localization/bundles/pl-PL.json +1 -22
  430. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +0 -21
  431. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
  432. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +2 -23
  433. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js.map +1 -1
  434. package/esm/presentation/localization/bundles/pt-BR.json +1 -22
  435. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +0 -21
  436. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
  437. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +2 -23
  438. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js.map +1 -1
  439. package/esm/presentation/localization/bundles/pt-PT.json +1 -22
  440. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +0 -21
  441. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
  442. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +2 -23
  443. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js.map +1 -1
  444. package/esm/presentation/localization/bundles/ru-RU.json +1 -22
  445. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +0 -21
  446. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
  447. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +2 -23
  448. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js.map +1 -1
  449. package/esm/presentation/localization/bundles/tr-TR.json +1 -22
  450. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +0 -21
  451. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
  452. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +2 -23
  453. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js.map +1 -1
  454. package/esm/presentation/localization/bundles/zh-HK.json +1 -22
  455. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +0 -21
  456. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
  457. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +2 -23
  458. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js.map +1 -1
  459. package/esm/presentation/localization/bundles/zh-Hans.json +1 -22
  460. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +0 -21
  461. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
  462. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +2 -23
  463. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js.map +1 -1
  464. package/esm/presentation/localization/bundles/zh-Hant.json +1 -22
  465. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +0 -21
  466. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
  467. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +2 -23
  468. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js.map +1 -1
  469. package/esm/presentation/presentationComponents/DashboardItems/DashboardItem.d.ts.map +1 -1
  470. package/esm/presentation/presentationComponents/DashboardItems/DashboardItem.js +1 -5
  471. package/esm/presentation/presentationComponents/DashboardItems/DashboardItem.js.map +1 -1
  472. package/esm/presentation/presentationComponents/DashboardItems/DashboardItemHeadline.d.ts.map +1 -1
  473. package/esm/presentation/presentationComponents/DashboardItems/DashboardItemHeadline.js +2 -13
  474. package/esm/presentation/presentationComponents/DashboardItems/DashboardItemHeadline.js.map +1 -1
  475. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  476. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +5 -12
  477. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js.map +1 -1
  478. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentFilters.d.ts.map +1 -0
  479. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentFilters.js.map +1 -0
  480. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentFiltersList.d.ts.map +1 -0
  481. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/{AttachmentsOld → Attachments}/AttachmentFiltersList.js +1 -1
  482. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentFiltersList.js.map +1 -0
  483. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/{AttachmentsOld → Attachments}/AttachmentItems.d.ts +2 -2
  484. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentItems.d.ts.map +1 -0
  485. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentItems.js.map +1 -0
  486. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.d.ts +11 -6
  487. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.d.ts.map +1 -1
  488. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.js +37 -31
  489. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.js.map +1 -1
  490. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts +16 -6
  491. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts.map +1 -1
  492. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.js +27 -30
  493. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.js.map +1 -1
  494. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +5 -10
  495. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
  496. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +19 -76
  497. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js.map +1 -1
  498. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/types.d.ts +2 -2
  499. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/types.d.ts.map +1 -1
  500. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/types.js +1 -1
  501. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/types.js.map +1 -1
  502. package/esm/presentation/widget/common/useWidgetHighlighting.js +1 -1
  503. package/esm/presentation/widget/common/useWidgetHighlighting.js.map +1 -1
  504. package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsight.d.ts.map +1 -1
  505. package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsight.js +4 -13
  506. package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsight.js.map +1 -1
  507. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogInsight.js +1 -1
  508. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogInsight.js.map +1 -1
  509. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/PoweredByGDLogo.js +1 -1
  510. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/PoweredByGDLogo.js.map +1 -1
  511. package/esm/presentation/widget/widget/DashboardNestedLayoutWidget/EditableDashboardNestedLayoutWidget.d.ts.map +1 -1
  512. package/esm/presentation/widget/widget/DashboardNestedLayoutWidget/EditableDashboardNestedLayoutWidget.js +4 -0
  513. package/esm/presentation/widget/widget/DashboardNestedLayoutWidget/EditableDashboardNestedLayoutWidget.js.map +1 -1
  514. package/esm/presentation/widget/widget/DashboardNestedLayoutWidget/LayoutDirectionConfigurationDialog.js +7 -7
  515. package/esm/presentation/widget/widget/DashboardNestedLayoutWidget/LayoutDirectionConfigurationDialog.js.map +1 -1
  516. package/esm/presentation/widget/widget/DashboardNestedLayoutWidget/Toolbar.d.ts.map +1 -1
  517. package/esm/presentation/widget/widget/DashboardNestedLayoutWidget/Toolbar.js +3 -3
  518. package/esm/presentation/widget/widget/DashboardNestedLayoutWidget/Toolbar.js.map +1 -1
  519. package/esm/sdk-ui-dashboard.d.ts +270 -149
  520. package/package.json +23 -22
  521. package/styles/css/attributeFilterConfig.css +1 -1
  522. package/styles/css/dashboard.css +5 -100
  523. package/styles/css/dashboard.css.map +1 -1
  524. package/styles/css/dashboardNestedLayoutWidget.css +49 -88
  525. package/styles/css/dashboardNestedLayoutWidget.css.map +1 -1
  526. package/styles/css/dragAndDrop.css +20 -27
  527. package/styles/css/dragAndDrop.css.map +1 -1
  528. package/styles/css/drillConfigPanel.css +14 -14
  529. package/styles/css/icons.css +24 -32
  530. package/styles/css/icons.css.map +1 -1
  531. package/styles/css/main.css +147 -351
  532. package/styles/css/main.css.map +1 -1
  533. package/styles/css/notifications_channels_dialog.css +2 -88
  534. package/styles/css/notifications_channels_dialog.css.map +1 -1
  535. package/styles/css/poweredByGDLogo.css +2 -2
  536. package/styles/css/resizing.css +15 -68
  537. package/styles/css/resizing.css.map +1 -1
  538. package/styles/css/sidebar.css +4 -6
  539. package/styles/css/sidebar.css.map +1 -1
  540. package/styles/scss/attributeFilterConfig.scss +1 -1
  541. package/styles/scss/dashboard.scss +3 -15
  542. package/styles/scss/dashboardNestedLayoutWidget.scss +77 -142
  543. package/styles/scss/dragAndDrop.scss +48 -63
  544. package/styles/scss/drillConfigPanel.scss +14 -14
  545. package/styles/scss/icons.scss +79 -77
  546. package/styles/scss/notifications_channels_dialog.scss +1 -89
  547. package/styles/scss/poweredByGDLogo.scss +3 -3
  548. package/styles/scss/resizing.scss +13 -82
  549. package/styles/scss/sidebar.scss +4 -6
  550. package/esm/assets/flexible-layouts-tooltip.gif +0 -0
  551. package/esm/model/commandHandlers/layout/rowContainerSanitization.d.ts +0 -15
  552. package/esm/model/commandHandlers/layout/rowContainerSanitization.d.ts.map +0 -1
  553. package/esm/model/commandHandlers/layout/rowContainerSanitization.js +0 -82
  554. package/esm/model/commandHandlers/layout/rowContainerSanitization.js.map +0 -1
  555. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/BulletsBar.d.ts +0 -8
  556. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/BulletsBar.d.ts.map +0 -1
  557. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/BulletsBar.js +0 -23
  558. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/BulletsBar.js.map +0 -1
  559. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.d.ts +0 -10
  560. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.d.ts.map +0 -1
  561. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.js +0 -71
  562. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.js.map +0 -1
  563. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsSelect.d.ts +0 -17
  564. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsSelect.d.ts.map +0 -1
  565. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsSelect.js +0 -100
  566. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsSelect.js.map +0 -1
  567. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentFilters.d.ts.map +0 -1
  568. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentFilters.js.map +0 -1
  569. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentFiltersList.d.ts.map +0 -1
  570. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentFiltersList.js.map +0 -1
  571. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentItems.d.ts.map +0 -1
  572. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentItems.js.map +0 -1
  573. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentsWrapper.d.ts +0 -5
  574. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentsWrapper.d.ts.map +0 -1
  575. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentsWrapper.js +0 -10
  576. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentsWrapper.js.map +0 -1
  577. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/DashboardAttachments.d.ts +0 -17
  578. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/DashboardAttachments.d.ts.map +0 -1
  579. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/DashboardAttachments.js +0 -47
  580. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/DashboardAttachments.js.map +0 -1
  581. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/WidgetAttachments.d.ts +0 -20
  582. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/WidgetAttachments.d.ts.map +0 -1
  583. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/WidgetAttachments.js +0 -33
  584. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/WidgetAttachments.js.map +0 -1
  585. /package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/{AttachmentsOld → Attachments}/AttachmentFilters.d.ts +0 -0
  586. /package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/{AttachmentsOld → Attachments}/AttachmentFilters.js +0 -0
  587. /package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/{AttachmentsOld → Attachments}/AttachmentFiltersList.d.ts +0 -0
  588. /package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/{AttachmentsOld → Attachments}/AttachmentItems.js +0 -0
@@ -1,52 +1,52 @@
1
1
  {
2
2
  "loading": {
3
3
  "value": "Loading…",
4
- "comment": "Text shown during content loading operations",
4
+ "comment": "Use '…' as one character, not 3 dots ('...').",
5
5
  "limit": 0
6
6
  },
7
7
  "untitled": {
8
8
  "value": "Untitled",
9
- "comment": "Default title for untitled dashboards or widgets",
9
+ "comment": "",
10
10
  "limit": 0
11
11
  },
12
12
  "empty_value": {
13
13
  "value": "empty value",
14
- "comment": "Display text when a value is empty or not available",
14
+ "comment": "",
15
15
  "limit": 0
16
16
  },
17
17
  "gs.list.cancel": {
18
18
  "value": "Cancel",
19
- "comment": "Button label to cancel the current action",
19
+ "comment": "",
20
20
  "limit": 0
21
21
  },
22
22
  "gs.list.apply": {
23
23
  "value": "Apply",
24
- "comment": "Button label to apply the current selection or changes",
24
+ "comment": "",
25
25
  "limit": 0
26
26
  },
27
27
  "messages.dashboardSaveSuccess": {
28
28
  "value": "Great. We saved your dashboard.",
29
- "comment": "Success notification shown after successfully saving a dashboard",
29
+ "comment": "",
30
30
  "limit": 0
31
31
  },
32
32
  "options.menu.save.as": {
33
33
  "value": "Save as new",
34
- "comment": "Menu option to save the current dashboard as a new dashboard",
34
+ "comment": "Save As New Dashboard",
35
35
  "limit": 0
36
36
  },
37
37
  "options.menu.save.as.tooltip": {
38
38
  "value": "Empty dashboard cannot be saved.",
39
- "comment": "Tooltip shown when trying to save an empty dashboard",
39
+ "comment": "Empty dashboard cannot be saved.",
40
40
  "limit": 0
41
41
  },
42
42
  "options.menu.settings": {
43
43
  "value": "Settings",
44
- "comment": "Menu option to open the dashboard settings dialog",
44
+ "comment": "Settings of the dashboard",
45
45
  "limit": 0
46
46
  },
47
47
  "messages.dashboardSaveFailed": {
48
48
  "value": "Dashboard save failed. Remove any unavailable visualizations, then try again, or contact your administrator.",
49
- "comment": "Error notification shown when saving a dashboard fails",
49
+ "comment": "",
50
50
  "limit": 0
51
51
  },
52
52
  "messages.dashboard.incompatibleDefaultFilters.title": {
@@ -56,28 +56,28 @@
56
56
  },
57
57
  "messages.dashboard.invalidDrills.title": {
58
58
  "value": "<b>Some interactions were removed</b>",
59
- "comment": "Warning notification title when dashboard interactions were removed due to changes in data",
59
+ "comment": "Title of the warning message shown while editing KPI dashboard with some invalid drills.",
60
60
  "limit": 0
61
61
  },
62
62
  "messages.dashboard.invalidDrills.body.modern._measure|insight": {
63
63
  "value": "One or more dashboard/visualization/measure/attribute has been changed or deleted causing some interactions to be removed from following widgets: <b>{listOfWidgetTitles}</b>",
64
- "comment": "Warning message details for invalid drill interactions with list of affected widgets",
64
+ "comment": "Expanded text of the warning message shown while editing KPI dashboard with some invalid drills. Don't translate placeholder '{listOfWidgetTitles}'.",
65
65
  "limit": 0
66
66
  },
67
67
  "messages.dashboard.invalidDrills.body.modern._metric|insight": {
68
68
  "value": "One or more dashboard/visualization/metric/attribute has been changed or deleted causing some interactions to be removed from following widgets: <b>{listOfWidgetTitles}</b>",
69
- "comment": "Warning message details for invalid drill interactions using metrics with list of affected widgets",
69
+ "comment": "Expanded text of the warning message shown while editing KPI dashboard with some invalid drills. Don't translate placeholder '{listOfWidgetTitles}'.",
70
70
  "limit": 0
71
71
  },
72
72
  "messages.dashboard.invalidDrills.body.modern._measure|report": {
73
73
  "value": "One or more dashboard/report/measure/attribute has been changed or deleted causing some interactions to be removed from following widgets: <b>{listOfWidgetTitles}</b>",
74
- "comment": "Warning message details for invalid drill interactions with measures in reports",
74
+ "comment": "Expanded text of the warning message shown while editing KPI dashboard with some invalid drills. Don't translate placeholder '{listOfWidgetTitles}'.",
75
75
  "translate": false,
76
76
  "limit": 0
77
77
  },
78
78
  "messages.dashboard.invalidDrills.body.modern._metric|report": {
79
79
  "value": "One or more dashboard/report/metric/attribute has been changed or deleted causing some interactions to be removed from following widgets: <b>{listOfWidgetTitles}</b>",
80
- "comment": "Warning message details for invalid drill interactions with metrics in reports",
80
+ "comment": "Expanded text of the warning message shown while editing KPI dashboard with some invalid drills. Don't translate placeholder '{listOfWidgetTitles}'.",
81
81
  "translate": false,
82
82
  "limit": 0
83
83
  },
@@ -88,12 +88,12 @@
88
88
  },
89
89
  "messages.dashboard.invalidCustomUrlDrills.body.modern|insight": {
90
90
  "value": "Invalid URL parameters in your custom URLs are causing drill-into-URL interactions to fail on these widgets: <b>{listOfWidgetTitles}</b>",
91
- "comment": "Warning message explaining URL drill failures with list of affected widgets",
91
+ "comment": "Expanded text of the warning message shown while editing KPI dashboard with some invalid drills. Don't translate placeholder '{listOfWidgetTitles}'.",
92
92
  "limit": 0
93
93
  },
94
94
  "messages.dashboard.invalidCustomUrlDrills.body.modern|report": {
95
95
  "value": "Invalid URL parameters in your custom URLs are causing drill-into-URL interactions to fail on these widgets: <b>{listOfWidgetTitles}</b>",
96
- "comment": "Warning message explaining URL drill failures in report widgets",
96
+ "comment": "Expanded text of the warning message shown while editing KPI dashboard with some invalid drills. Don't translate placeholder '{listOfWidgetTitles}'.",
97
97
  "translate": false,
98
98
  "limit": 0
99
99
  },
@@ -109,97 +109,97 @@
109
109
  },
110
110
  "messages.drill.InteractionConfiguredSuccess": {
111
111
  "value": "Interaction configured.",
112
- "comment": "Success message shown after creating a new drill interaction",
112
+ "comment": "Dialog. Configure of drill interaction is created.",
113
113
  "limit": 0
114
114
  },
115
115
  "messages.drill.InteractionUpdatedSuccess": {
116
116
  "value": "Interaction updated.",
117
- "comment": "Success message shown after modifying an existing drill interaction",
117
+ "comment": "Dialog. Configure of drill interaction is updated.",
118
118
  "limit": 0
119
119
  },
120
120
  "filterBar.label": {
121
121
  "value": "Filters",
122
- "comment": "Label for the filter bar section",
122
+ "comment": "",
123
123
  "limit": 0
124
124
  },
125
125
  "filterBar.showAll": {
126
126
  "value": "Show all",
127
- "comment": "Link text to expand and show all available filters",
127
+ "comment": "",
128
128
  "limit": 0
129
129
  },
130
130
  "filterBar.showLess": {
131
131
  "value": "Show less",
132
- "comment": "Link text to collapse the expanded filter list",
132
+ "comment": "",
133
133
  "limit": 0
134
134
  },
135
135
  "filterBar.unappliedFiltersNotification": {
136
136
  "value": "<link>Apply filters</link> to see updated data.",
137
- "comment": "Message banner shown when filters are changed but not yet applied. The <link> tags create a clickable action to apply the filters.",
137
+ "comment": "Message banner. Some filters are changed by user but not applied yet. Do not translate HTML markup enclosed in <>.",
138
138
  "limit": 0
139
139
  },
140
140
  "filterBar.executionTimestampNotificationMessage": {
141
141
  "value": "<bold>Note.</bold> You're viewing up-to-date data, but for any relative date filters the dashboard treats {date} as “today.”",
142
- "comment": "Message banner describing dashboard with specific data timestamp. Placeholder {date} is replaced with the current date.",
142
+ "comment": "Message banner describing dashboard with specific data timestamp. Don't translate placeholders enclosed in '{}'.",
143
143
  "limit": 0
144
144
  },
145
145
  "filterBar.executionTimestampNotificationAction": {
146
146
  "value": "<link>Reset to today</link>",
147
- "comment": "Action button to reset timestamp to current date. The <link> tags create a clickable action.",
147
+ "comment": "Do not translate HTML markup enclosed in <>.",
148
148
  "limit": 0
149
149
  },
150
150
  "options.menu.export": {
151
151
  "value": "Export",
152
- "comment": "Main export menu option in the dashboard",
152
+ "comment": "Export submenu",
153
153
  "limit": 0
154
154
  },
155
155
  "options.menu.export.header.data": {
156
156
  "value": "Data",
157
- "comment": "Header for data export options in the export submenu",
157
+ "comment": "Export submenu for data",
158
158
  "limit": 0
159
159
  },
160
160
  "options.menu.export_to_pdf": {
161
161
  "value": "Export to PDF",
162
- "comment": "Menu option to export the entire dashboard as a PDF document",
162
+ "comment": "Export whole KPI dashboard to PDF",
163
163
  "limit": 0
164
164
  },
165
165
  "options.menu.export.PDF": {
166
166
  "value": "Snapshot (.pdf)",
167
- "comment": "Export option for saving a visual snapshot of the dashboard as a PDF file",
167
+ "comment": "Export whole KPI dashboard to PDF",
168
168
  "limit": 0
169
169
  },
170
170
  "options.menu.export.dialog.EXCEL": {
171
171
  "value": "Export data (.xlsx)",
172
- "comment": "Dialog title when exporting the entire dashboard's data to Excel",
172
+ "comment": "Dialog title to export whole KPI dashboard to EXCEL",
173
173
  "limit": 0
174
174
  },
175
175
  "options.menu.export.dialog.widget.EXCEL": {
176
176
  "value": "Export formatted data (.xlsx)",
177
- "comment": "Dialog title when exporting a single widget's data to Excel with formatting preserved",
177
+ "comment": "Dialog title to export widget to EXCEL",
178
178
  "limit": 0
179
179
  },
180
180
  "options.menu.export.dialog.includeExportInfo": {
181
181
  "value": "Include sheet with export info",
182
- "comment": "Checkbox option to include metadata about the export in a separate Excel sheet",
182
+ "comment": "Dialog checkbox to include sheet with export info",
183
183
  "limit": 0
184
184
  },
185
185
  "options.menu.export.EXCEL": {
186
186
  "value": "Data (.xlsx)",
187
- "comment": "Export option for saving dashboard data as an Excel file",
187
+ "comment": "Export whole KPI dashboard to EXCEL",
188
188
  "limit": 0
189
189
  },
190
190
  "options.menu.export.presentation.PPTX": {
191
191
  "value": "Slide Deck (.pptx)",
192
- "comment": "Export option for saving dashboard as a PowerPoint presentation",
192
+ "comment": "Export whole KPI dashboard to PowerPoint",
193
193
  "limit": 0
194
194
  },
195
195
  "options.menu.export.presentation.PDF": {
196
196
  "value": "Slide Deck (.pdf)",
197
- "comment": "Export option for saving dashboard as a PDF file with slide layout",
197
+ "comment": "Export whole KPI dashboard to PowerPoint",
198
198
  "limit": 0
199
199
  },
200
200
  "options.menu.export.image.PNG": {
201
201
  "value": "Snapshot (.png)",
202
- "comment": "Export option for saving dashboard as a PNG image",
202
+ "comment": "Export to image in png format",
203
203
  "limit": 0
204
204
  },
205
205
  "options.menu.export.presentation.unsupported.oldWidget": {
@@ -209,57 +209,57 @@
209
209
  },
210
210
  "options.menu.export.in.progress": {
211
211
  "value": "Export is in progress. Wait until it is finished before exporting again.",
212
- "comment": "Message shown when trying to start a new export while another is still in progress",
212
+ "comment": "Export whole KPI dashboard to PowerPoint",
213
213
  "limit": 0
214
214
  },
215
215
  "options.menu.schedule.email": {
216
216
  "value": "Schedule export",
217
- "comment": "Menu option to set up recurring automated exports of the dashboard",
217
+ "comment": "Translate as imperative. Schedule emailing whole KPI dashboard",
218
218
  "limit": 0
219
219
  },
220
220
  "options.menu.schedule.email.tooltip": {
221
221
  "value": "No destination available. To schedule an export, <a>create destination</a>.",
222
- "comment": "Tooltip shown when no export destinations are available for scheduled exports",
222
+ "comment": "Do not translate html tags <a>, </a>",
223
223
  "limit": 0
224
224
  },
225
225
  "options.menu.schedule.email.edit": {
226
226
  "value": "Show schedules",
227
- "comment": "Menu option to view or edit existing scheduled dashboard exports",
227
+ "comment": "Translate as imperative. Schedule emailing edit whole KPI dashboard",
228
228
  "limit": 0
229
229
  },
230
230
  "options.menu.schedule.email.edit.noCreatePermissions": {
231
231
  "value": "Scheduled exports",
232
- "comment": "Menu option to view existing scheduled exports when user doesn't have permission to create new ones",
232
+ "comment": "Translate as imperative. Schedule emailing edit whole KPI dashboard, without create permissions.",
233
233
  "limit": 0
234
234
  },
235
235
  "options.menu.alerts.edit": {
236
236
  "value": "Show alerts",
237
- "comment": "Menu option to view or edit existing metric alerts for the dashboard or widget",
237
+ "comment": "Translate as imperative. Schedule alerts for dashboard or widget",
238
238
  "limit": 0
239
239
  },
240
240
  "options.menu.alerts.edit.noCreatePermissions": {
241
241
  "value": "Alerts",
242
- "comment": "Menu option to view existing alerts when user doesn't have permission to create new ones",
242
+ "comment": "Translate as imperative. Schedule alerts for dashboard or widget, without create permissions.",
243
243
  "limit": 0
244
244
  },
245
245
  "options.menu.data.too.large": {
246
246
  "value": "Export unavailable due to too many data points in the result.",
247
- "comment": "Error message shown when trying to export data that exceeds size limitations",
247
+ "comment": "",
248
248
  "limit": 0
249
249
  },
250
250
  "options.menu.unsupported.raw.error": {
251
251
  "value": "Export unavailable due to too many data points or error in the result",
252
- "comment": "Error message shown when visualization export fails due to data size or errors",
252
+ "comment": "Error popup. Visualization cannot be exported to the file.",
253
253
  "limit": 0
254
254
  },
255
255
  "options.menu.delete": {
256
256
  "value": "Delete",
257
- "comment": "Menu option to delete the current dashboard",
257
+ "comment": "Delete Dashboard",
258
258
  "limit": 0
259
259
  },
260
260
  "options.menu.addFilterViews": {
261
261
  "value": "Create view",
262
- "comment": "Menu option to create a new dashboard filter view",
262
+ "comment": "Open menu with dialog with form to create a new filter view.",
263
263
  "limit": 0
264
264
  },
265
265
  "options.menu.listFilterViews": {
@@ -305,217 +305,217 @@
305
305
  },
306
306
  "dialogs.schedule.email.accessibilityTitle": {
307
307
  "value": "Scheduled emails",
308
- "comment": "Accessibility title for scheduled emails dialog",
308
+ "comment": "",
309
309
  "limit": 0
310
310
  },
311
311
  "dialogs.schedule.email.delete.success": {
312
312
  "value": "Success! Your scheduled email was deleted.",
313
- "comment": "Success message shown after successfully deleting a schedule",
313
+ "comment": "",
314
314
  "limit": 0
315
315
  },
316
316
  "dialogs.schedule.email.submit.success": {
317
317
  "value": "Success! Your dashboard is scheduled for emailing.",
318
- "comment": "Success message shown after successfully scheduling an export",
318
+ "comment": "",
319
319
  "limit": 0
320
320
  },
321
321
  "dialogs.schedule.email.submit.error": {
322
322
  "value": "Failed to schedule the dashboard. Try again later.",
323
- "comment": "Error message shown when scheduling an export fails",
323
+ "comment": "",
324
324
  "limit": 0
325
325
  },
326
326
  "dialogs.schedule.email.save.success": {
327
327
  "value": "Success! Your schedule has been saved.",
328
- "comment": "Success message shown after successfully saving an export schedule",
328
+ "comment": "",
329
329
  "limit": 0
330
330
  },
331
331
  "dialogs.schedule.email.save.error": {
332
332
  "value": "Failed to save the schedule. Try again later.",
333
- "comment": "Error message shown when saving an export schedule fails",
333
+ "comment": "",
334
334
  "limit": 0
335
335
  },
336
336
  "dialogs.schedule.error.too_long": {
337
337
  "value": "Error: Text too long — reduce to {value} characters or fewer.",
338
- "comment": "Error message shown when schedule text exceeds character limit. {value} is the maximum allowed length.",
338
+ "comment": "",
339
339
  "limit": 0
340
340
  },
341
341
  "dialogs.alert.error.too_long": {
342
342
  "value": "Error: Text too long — reduce to {value} characters or fewer.",
343
- "comment": "Error message shown when alert text exceeds character limit. {value} is the maximum allowed length.",
343
+ "comment": "",
344
344
  "limit": 0
345
345
  },
346
346
  "dialogs.save.as.new.title": {
347
347
  "value": "Save dashboard as new",
348
- "comment": "Dialog title when creating a copy of an existing dashboard",
348
+ "comment": "",
349
349
  "limit": 0
350
350
  },
351
351
  "dialogs.save.as.new.desc": {
352
352
  "value": "Give your new dashboard a new descriptive name, so it's easier to find it later on.",
353
- "comment": "Instructions shown in the Save As New dashboard dialog",
353
+ "comment": "",
354
354
  "limit": 0
355
355
  },
356
356
  "dialogs.save.as.new.default.title": {
357
357
  "value": "Copy of {title}",
358
- "comment": "Default title format when creating a copy of a dashboard. {title} is the original dashboard title.",
358
+ "comment": "",
359
359
  "limit": 0
360
360
  },
361
361
  "dialogs.save.as.new.alertsAndEmailsMessage": {
362
362
  "value": "Alerts and email schedules will not be duplicated",
363
- "comment": "Warning message shown when saving a dashboard as new, indicating that alerts and email schedules won't be copied",
363
+ "comment": "",
364
364
  "limit": 0
365
365
  },
366
366
  "dialogs.save.as.new.alertsMessage": {
367
367
  "value": "Alerts will not be duplicated",
368
- "comment": "Warning message in Save As dialog about alerts not being copied",
368
+ "comment": "",
369
369
  "limit": 0
370
370
  },
371
371
  "dialogs.save.as.new.emailsMessage": {
372
372
  "value": "Email schedules will not be duplicated",
373
- "comment": "Warning message in Save As dialog about email schedules not being copied",
373
+ "comment": "",
374
374
  "limit": 0
375
375
  },
376
376
  "cancelConfirmationDialog.headline": {
377
377
  "value": "Discard changes?",
378
- "comment": "Confirmation dialog title when canceling changes",
378
+ "comment": "",
379
379
  "limit": 0
380
380
  },
381
381
  "cancelConfirmationDialog.message": {
382
382
  "value": "All changes will be lost",
383
- "comment": "Warning message shown in confirmation dialog when discarding changes",
383
+ "comment": "",
384
384
  "limit": 0
385
385
  },
386
386
  "cancelConfirmationDialog.submitButtonText": {
387
387
  "value": "Discard changes",
388
- "comment": "Button label to confirm discarding changes",
388
+ "comment": "",
389
389
  "limit": 0
390
390
  },
391
391
  "settingsDashboardDialog.headline": {
392
392
  "value": "Dashboard settings",
393
- "comment": "Title of the dashboard settings dialog",
393
+ "comment": "",
394
394
  "limit": 0
395
395
  },
396
396
  "settingsDashboardDialog.section.alert": {
397
397
  "value": "Alerts",
398
- "comment": "Section title for alert settings in the dashboard settings dialog",
398
+ "comment": "",
399
399
  "limit": 0
400
400
  },
401
401
  "settingsDashboardDialog.section.alert.inherit": {
402
402
  "value": "Use the default evaluation frequency set by your organization.",
403
- "comment": "Label for option to use organization's default alert evaluation frequency",
403
+ "comment": "",
404
404
  "limit": 0
405
405
  },
406
406
  "settingsDashboardDialog.section.alert.note": {
407
407
  "value": "<strong>Note:</strong> Applies to new alerts only — use the API to update existing ones.",
408
- "comment": "Note about alert settings applying only to new alerts",
408
+ "comment": "",
409
409
  "limit": 0
410
410
  },
411
411
  "settingsDashboardDialog.section.alert.label": {
412
412
  "value": "Evaluation Frequency",
413
- "comment": "Label for alert evaluation frequency setting",
413
+ "comment": "",
414
414
  "limit": 0
415
415
  },
416
416
  "deleteDashboardDialog.headline": {
417
417
  "value": "Delete dashboard?",
418
- "comment": "Confirmation dialog for deleting a dashboard",
418
+ "comment": "",
419
419
  "limit": 0
420
420
  },
421
421
  "deleteDashboardDialog.submitButtonText": {
422
422
  "value": "Delete",
423
- "comment": "Label for the confirmation button in the delete dashboard dialog",
423
+ "comment": "",
424
424
  "limit": 0
425
425
  },
426
426
  "deleteDashboardDialog.defaultMessage": {
427
427
  "value": "Are you sure you want to delete dashboard {title}?",
428
- "comment": "Confirmation dialog for deleting a dashboard. The {title} placeholder shows the specific dashboard name.",
428
+ "comment": "Do not translate placeholder {title}",
429
429
  "limit": 0
430
430
  },
431
431
  "deleteDashboardDialog.objectsMessage": {
432
432
  "value": "Following objects associated with the dashboard {title} will be permanently deleted:",
433
- "comment": "Warning message listing objects to be deleted with the dashboard. The {title} placeholder shows the specific dashboard name.",
433
+ "comment": "Do not translate placeholder {title}",
434
434
  "limit": 0
435
435
  },
436
436
  "deleteDashboardDialog.alerts": {
437
437
  "value": "alerts",
438
- "comment": "Label for alerts that will be deleted with the dashboard",
438
+ "comment": "",
439
439
  "limit": 0
440
440
  },
441
441
  "deleteDashboardDialog.schedules": {
442
442
  "value": "scheduled exports",
443
- "comment": "Label for scheduled exports that will be deleted with the dashboard",
443
+ "comment": "",
444
444
  "limit": 0
445
445
  },
446
446
  "deleteDashboardDialog.drills": {
447
447
  "value": "drilling",
448
- "comment": "Label for drill configurations that will be removed with the dashboard",
448
+ "comment": "",
449
449
  "limit": 0
450
450
  },
451
451
  "deleteWidgetDialog.headline": {
452
452
  "value": "Remove widget?",
453
- "comment": "Confirmation dialog title when removing a widget from a dashboard",
453
+ "comment": "",
454
454
  "limit": 0
455
455
  },
456
456
  "deleteWidgetDialog.objectsMessage": {
457
457
  "value": "Following types objects associated with the widget {title} will no longer work:",
458
- "comment": "Warning message about objects that will be affected when deleting a widget. The {title} placeholder shows the specific widget name.",
458
+ "comment": "Do not translate placeholder {title}",
459
459
  "limit": 0
460
460
  },
461
461
  "deleteWidgetDialog.alerts": {
462
462
  "value": "alerts",
463
- "comment": "Label for alerts that will be affected by widget removal",
463
+ "comment": "",
464
464
  "limit": 0
465
465
  },
466
466
  "deleteWidgetDialog.schedules": {
467
467
  "value": "scheduled exports",
468
- "comment": "Label for scheduled exports that will be affected by widget removal",
468
+ "comment": "",
469
469
  "limit": 0
470
470
  },
471
471
  "create.dashboard": {
472
472
  "value": "Create dashboard",
473
- "comment": "Button label or menu item for creating a new dashboard",
473
+ "comment": "",
474
474
  "limit": 0
475
475
  },
476
476
  "drill_modal_picker.drill-down": {
477
477
  "value": "Drill down",
478
- "comment": "Label for the drill down interaction in the drill configuration modal",
478
+ "comment": "Title of widget interactions",
479
479
  "limit": 0
480
480
  },
481
481
  "drill_modal_picker.drill-into": {
482
482
  "value": "Drill into",
483
- "comment": "Label for the drill into interaction in the drill configuration modal",
483
+ "comment": "Title of widget interactions",
484
484
  "limit": 0
485
485
  },
486
486
  "drill_modal_picker.cross-filter": {
487
487
  "value": "Cross-filter",
488
- "comment": "Label for the cross-filter interaction in the drill configuration modal",
488
+ "comment": "Title of widget interactions",
489
489
  "limit": 0
490
490
  },
491
491
  "drill_modal_picker.more.details": {
492
492
  "value": "More details",
493
- "comment": "Label for viewing more details about drill interactions",
493
+ "comment": "",
494
494
  "limit": 0
495
495
  },
496
496
  "drill_modal_picker.label": {
497
497
  "value": "Choose drill action",
498
- "comment": "Instruction text in the drill modal for selecting a drill action",
498
+ "comment": "",
499
499
  "limit": 0
500
500
  },
501
501
  "drillModal.backToTop": {
502
502
  "value": "Back to top",
503
- "comment": "Navigation button label to return to the top level in the drill modal",
503
+ "comment": "",
504
504
  "limit": 0
505
505
  },
506
506
  "filters.alertMessage.relativePreset": {
507
507
  "value": "in {calendarIcon} {range}",
508
- "comment": "Message displayed in filter alert showing a relative date range with calendar icon. Example: 'in (calendar icon) last 7 days'.",
508
+ "comment": "Don't translate placeholders '{calendarIcon}', '{range}'.",
509
509
  "limit": 0
510
510
  },
511
511
  "filters.alertMessage.relativePreset.inPeriod": {
512
512
  "value": "in period {calendarIcon} {range}",
513
- "comment": "Message displayed in filter alert showing a relative date range with period specification. Example: 'in period (calendar icon) from 2 months ago to 2 months ahead'.",
513
+ "comment": "Don't translate placeholders '{calendarIcon}', '{range}'. Example text: 'in period (calendar) from 2 months ago to 2 months ahead'",
514
514
  "limit": 0
515
515
  },
516
516
  "filters.config.warning.multipleProjectConfigs": {
517
517
  "value": "There is more than one project date filter configuration associated with this project. The first one was used.",
518
- "comment": "Warning shown when multiple date filter configurations are found for a project, and the system automatically selects the first one",
518
+ "comment": "Displayed if there is more than one project date filter configuration associated with the project.",
519
519
  "limit": 0
520
520
  },
521
521
  "filters.config.warning.multipleWorkspacesConfigs": {
@@ -550,47 +550,47 @@
550
550
  },
551
551
  "filters.configurationPanel.header": {
552
552
  "value": "Filters",
553
- "comment": "Header for the filter configuration panel in dashboard settings",
553
+ "comment": "Filtering configuration panel - header.",
554
554
  "limit": 0
555
555
  },
556
556
  "filters.configurationPanel.crossFiltering.toggle": {
557
557
  "value": "Cross-filtering",
558
- "comment": "Label for toggle that enables or disables cross-filtering in the filter configuration panel",
558
+ "comment": "Filters Configuration - label for toggle that disables or enables cross-filtering.",
559
559
  "limit": 0
560
560
  },
561
561
  "filters.configurationPanel.crossFiltering.toggle.tooltip": {
562
562
  "value": "Allow users to filter the dashboard by clicking data points in visualizations.",
563
- "comment": "Tooltip explaining cross-filtering functionality when hovering over the toggle",
563
+ "comment": "Filters Configuration - tooltip for toggle that disables or enables cross-filtering.",
564
564
  "limit": 0
565
565
  },
566
566
  "filters.configurationPanel.userFilterReset.toggle": {
567
567
  "value": "Reset",
568
- "comment": "Label for toggle that enables or disables filter reset functionality in dashboard",
568
+ "comment": "Filters Configuration - label for toggle that disables or enables user reset of filters.",
569
569
  "limit": 0
570
570
  },
571
571
  "filters.configurationPanel.userFilterReset.toggle.tooltip": {
572
572
  "value": "Allow users to reset all filters to default.",
573
- "comment": "Tooltip explaining what the reset toggle does when enabled",
573
+ "comment": "Filters Configuration - tooltip for toggle that disables or enables user reset of filters.",
574
574
  "limit": 0
575
575
  },
576
576
  "filters.configurationPanel.userFilterSave.toggle": {
577
577
  "value": "Auto-save last state",
578
- "comment": "Label for toggle that enables or disables automatic saving of filter state",
578
+ "comment": "Filters Configuration - label for toggle that disables or enables user save of filters.",
579
579
  "limit": 0
580
580
  },
581
581
  "filters.configurationPanel.userFilterSave.toggle.tooltip": {
582
582
  "value": "Allow auto-save of the filters' last state. When users return, their filters will remain as they left them.",
583
- "comment": "Tooltip explaining the auto-save filter functionality when hovering over the toggle",
583
+ "comment": "Filters Configuration - tooltip for toggle that disables or enables user save of filters.",
584
584
  "limit": 0
585
585
  },
586
586
  "filters.configurationPanel.filterViews.toggle": {
587
587
  "value": "Saved views",
588
- "comment": "Label for toggle that enables or disables saving custom filter views",
588
+ "comment": "Filters Configuration - label for toggle that disables or enables filter views.",
589
589
  "limit": 0
590
590
  },
591
591
  "filters.configurationPanel.filterViews.toggle.tooltip": {
592
592
  "value": "<p>Allows users to save filters state as a personal views they can return to later.</p><p>Only the user who saved the view can access it and set it as their default view.</p>",
593
- "comment": "Tooltip explaining saved views functionality when hovering over the toggle",
593
+ "comment": "Filters Configuration - tooltip for toggle that disables or enables filter views. Do not translate <p> and </p> tags.",
594
594
  "limit": 0
595
595
  },
596
596
  "dialogs.schedule.email.attachments.label": {
@@ -600,7 +600,7 @@
600
600
  },
601
601
  "dialogs.schedule.email.title.placeholder": {
602
602
  "value": "Untitled schedule",
603
- "comment": "Placeholder text shown in the schedule title input field when no title has been entered",
603
+ "comment": "Placeholder for schedule title input",
604
604
  "limit": 0
605
605
  },
606
606
  "dialogs.alert.title.placeholder": {
@@ -610,12 +610,12 @@
610
610
  },
611
611
  "dialogs.alert.accessibility.label.title": {
612
612
  "value": "Alert name",
613
- "comment": "Accessibility label for alert name input field",
613
+ "comment": "",
614
614
  "limit": 0
615
615
  },
616
616
  "dialogs.schedule.accessibility.label.email.title": {
617
617
  "value": "Schedule name",
618
- "comment": "Accessibility label for schedule name input field",
618
+ "comment": "",
619
619
  "limit": 0
620
620
  },
621
621
  "dialogs.schedule.email.message.label": {
@@ -685,7 +685,7 @@
685
685
  },
686
686
  "dialogs.schedule.email.user.noMatch": {
687
687
  "value": "No matching users or groups.",
688
- "comment": "Message shown when searching for recipients and no users or groups match the search criteria",
688
+ "comment": "",
689
689
  "limit": 0
690
690
  },
691
691
  "dialogs.schedule.email.user.notMe": {
@@ -705,22 +705,22 @@
705
705
  },
706
706
  "dialogs.schedule.email.subject.label": {
707
707
  "value": "Subject",
708
- "comment": "Label for the subject field in scheduled email form",
708
+ "comment": "Subject of the schedule email.",
709
709
  "limit": 0
710
710
  },
711
711
  "dialogs.schedule.email.recipients.label": {
712
712
  "value": "Recipients",
713
- "comment": "Label for recipients field in scheduled email form",
713
+ "comment": "Emails of the schedule email.",
714
714
  "limit": 0
715
715
  },
716
716
  "dialogs.schedule.email.filters": {
717
717
  "value": "Filters ({count})",
718
- "comment": "Label for filters selection in scheduled email form, with count of active filters",
718
+ "comment": "Pick filters for automated schedule. Do not translate variable enclosed in {}.",
719
719
  "limit": 0
720
720
  },
721
721
  "dialogs.schedule.email.destination": {
722
722
  "value": "Destination",
723
- "comment": "Label for selecting destination method for scheduled email delivery",
723
+ "comment": "Way how to send automated schedule",
724
724
  "limit": 0
725
725
  },
726
726
  "dialogs.schedule.email.destination.missing": {
@@ -735,7 +735,7 @@
735
735
  },
736
736
  "dialogs.schedule.email.message.placeholder": {
737
737
  "value": "Hello,\n\nYour scheduled email is ready. You can download the dashboard in attachments.",
738
- "comment": "Default message text shown in scheduled email message field",
738
+ "comment": "Don't translate '\n\n' which adds 2 new lines to the text.",
739
739
  "limit": 0
740
740
  },
741
741
  "dialogs.schedule.email.create": {
@@ -780,82 +780,82 @@
780
780
  },
781
781
  "dialogs.schedule.email.save.executionTimestampMode": {
782
782
  "value": "To create or edit scheduled exports, reset the dashboard date to today.",
783
- "comment": "Error message shown when trying to schedule exports with non-current date filters applied",
783
+ "comment": "",
784
784
  "limit": 0
785
785
  },
786
786
  "dialogs.alert.save.executionTimestampMode": {
787
787
  "value": "To create or edit alerts, reset the dashboard date to today.",
788
- "comment": "Error message shown when trying to create alerts with non-current date filters applied",
788
+ "comment": "",
789
789
  "limit": 0
790
790
  },
791
791
  "dialogs.schedule.email.widgetError": {
792
792
  "value": "The alert is not working because the source widget was deleted. Delete the alert or contact your administrator.",
793
- "comment": "Error message shown when alert configuration references a deleted widget",
793
+ "comment": "Invalid schedule error message",
794
794
  "limit": 0
795
795
  },
796
796
  "dialogs.schedule.email.destinationWarning": {
797
797
  "value": "The selected destination only supports sending the export to yourself.",
798
- "comment": "Warning shown when selected export destination restricts recipients to the current user only",
798
+ "comment": "Schedule warning message",
799
799
  "limit": 0
800
800
  },
801
801
  "dialogs.automation.filters.showAll": {
802
802
  "value": "Show all",
803
- "comment": "Button label to expand and show the complete list of filters",
803
+ "comment": "Show full list of all filters",
804
804
  "limit": 0
805
805
  },
806
806
  "dialogs.automation.filters.showAll.ariaLabel": {
807
807
  "value": "Expand to show all applied filters",
808
- "comment": "Accessibility label for the button that shows all filters",
808
+ "comment": "Show full list of all filters - aria label",
809
809
  "limit": 0
810
810
  },
811
811
  "dialogs.automation.filters.showLess": {
812
812
  "value": "Show less",
813
- "comment": "Button label to collapse and show fewer filters in the list",
813
+ "comment": "Show shortened list of all filters",
814
814
  "limit": 0
815
815
  },
816
816
  "dialogs.automation.filters.showLess.ariaLabel": {
817
817
  "value": "Collapse to show less applied filters",
818
- "comment": "Accessibility label for the button that collapses the filter list",
818
+ "comment": "Show shortened list of all filters - aria label",
819
819
  "limit": 0
820
820
  },
821
821
  "dialogs.automation.filters.add": {
822
822
  "value": "Add filter",
823
- "comment": "Button label to add a new filter in the automation dialog",
823
+ "comment": "Label of add filter button in scheduling",
824
824
  "limit": 0
825
825
  },
826
826
  "dialogs.automation.filters.title": {
827
827
  "value": "Add filters",
828
- "comment": "Title of the dialog for adding filters to automation",
828
+ "comment": "Schedule filters dialog title",
829
829
  "limit": 0
830
830
  },
831
831
  "dialogs.automation.filters.noFilters": {
832
832
  "value": "No more filters available",
833
- "comment": "Message shown when there are no additional filters that can be added",
833
+ "comment": "Schedule filters selection message",
834
834
  "limit": 0
835
835
  },
836
836
  "dialogs.automation.filters.attachment": {
837
837
  "value": "Use filters in automation",
838
- "comment": "Label for checkbox to enable filter usage in automated exports",
838
+ "comment": "Label of a checkbox field for dashboard automation.",
839
839
  "limit": 0
840
840
  },
841
841
  "dialogs.automation.filters.useFiltersMessage": {
842
842
  "value": "Always use these filters for future exports",
843
- "comment": "Message explaining that selected filters will be applied to all future exports",
843
+ "comment": "",
844
844
  "limit": 0
845
845
  },
846
846
  "dialogs.automation.filters.useFiltersMessage.tooltip": {
847
847
  "value": "Check to keep these filters for every export. If unchecked, the export will use the latest default filters from the dashboard. <a>Learn more</a>",
848
- "comment": "Tooltip explaining filter persistence options for scheduled exports",
848
+ "comment": "Do not translate html tags <a>, </a>",
849
849
  "limit": 0
850
850
  },
851
851
  "dialogs.automation.filters.activeFilters": {
852
852
  "value": "Note: These filters will always be used for future exports.",
853
- "comment": "Informational message about filters being permanently applied to exports",
853
+ "comment": "",
854
854
  "limit": 0
855
855
  },
856
856
  "dialogs.automation.filters.missing": {
857
857
  "value": "<b>Warning:</b> Some filters couldn't be applied — they're no longer available on the dashboard.",
858
- "comment": "Warning message when saved filters are no longer available on the dashboard",
858
+ "comment": "",
859
859
  "limit": 0
860
860
  },
861
861
  "dialogs.automation.applyCurrentFilters.confirm.title": {
@@ -870,247 +870,177 @@
870
870
  },
871
871
  "dialogs.automation.applyCurrentFilters.alert.confirm": {
872
872
  "value": "<b>Warning</b>: Some filters used when this alert was created are no longer available or valid. Editing will apply the current dashboard filters.",
873
- "comment": "Warning message when editing an alert with outdated filters",
873
+ "comment": "Do not translate html tags <b>, </b>. Message of the dialog, that confirms that the user wants to edit the alert with the current dashboard filters.",
874
874
  "limit": 0
875
875
  },
876
876
  "dialogs.automation.applyCurrentFilters.schedule.confirm": {
877
877
  "value": "<b>Warning</b>: Some filters used when this schedule was created are no longer available or valid. Editing will apply the current dashboard filters.",
878
- "comment": "Warning message when editing a schedule with outdated filters",
878
+ "comment": "Do not translate html tags <b>, </b>. Message of the dialog, that confirms that the user wants to edit the schedule with the current dashboard filters.",
879
879
  "limit": 0
880
880
  },
881
881
  "dialogs.schedule.management.title": {
882
882
  "value": "Scheduled exports",
883
- "comment": "Title of the scheduled exports management dialog",
883
+ "comment": "",
884
884
  "limit": 0
885
885
  },
886
886
  "dialogs.schedule.management.delete": {
887
887
  "value": "Delete the schedule.",
888
- "comment": "Button tooltip for deleting a scheduled export",
888
+ "comment": "",
889
889
  "limit": 0
890
890
  },
891
891
  "dialogs.schedule.management.delete.dialog": {
892
892
  "value": "Delete schedule?",
893
- "comment": "Title of the confirmation dialog when deleting a scheduled export",
893
+ "comment": "",
894
894
  "limit": 0
895
895
  },
896
896
  "dialogs.schedule.management.delete.dialog.confirm": {
897
897
  "value": "<b>The schedule</b> will be permanently deleted.",
898
- "comment": "Confirmation message when deleting a scheduled export",
898
+ "comment": "Do not translate html tags <b>, </b>",
899
899
  "limit": 0
900
900
  },
901
901
  "dialogs.schedule.management.list.title": {
902
902
  "value": "Your scheduled exports",
903
- "comment": "Title for the list of user's scheduled exports",
903
+ "comment": "",
904
904
  "limit": 0
905
905
  },
906
906
  "dialogs.schedule.management.create": {
907
907
  "value": "Create",
908
- "comment": "Button label to create a new scheduled export",
908
+ "comment": "",
909
909
  "limit": 0
910
910
  },
911
911
  "dialogs.schedule.management.create.tooManyMessage": {
912
912
  "value": "Your organization has reached the limit of scheduled exports. Contact your administrator to create more.",
913
- "comment": "Error message shown when organization has reached maximum scheduled exports limit",
913
+ "comment": "",
914
914
  "limit": 0
915
915
  },
916
916
  "dialogs.schedule.management.noSchedules": {
917
917
  "value": "There are no scheduled exports.{br}Create new.",
918
- "comment": "Message shown when no scheduled exports exist, with line break placeholder",
918
+ "comment": "",
919
919
  "limit": 0
920
920
  },
921
921
  "dialogs.schedule.management.attachments.attachment": {
922
922
  "value": "Attach as a {format} file",
923
- "comment": "File format checkbox label in scheduled export settings. {format} is the file format, e.g. PDF, CSV, XLSX.",
923
+ "comment": "Label of a checkbox field for different format types, eg. PDF, CSV, XLSX. Do not translate format placeholder.",
924
924
  "limit": 0
925
925
  },
926
926
  "dialogs.schedule.management.attachments.xlsx.settings": {
927
927
  "value": "XLSX options",
928
- "comment": "Section header for Excel export format configuration. XLSX is the file format.",
928
+ "comment": "Do not translate format 'XLSX'",
929
929
  "limit": 0
930
930
  },
931
931
  "dialogs.schedule.management.attachments.cells.merged": {
932
932
  "value": "Keep attribute cells merged",
933
- "comment": "Label for checkbox option in Excel export settings to keep attribute cells merged",
934
- "limit": 0
935
- },
936
- "dialogs.schedule.management.attachments.exportInfo": {
937
- "value": "Include sheet with export info",
938
933
  "comment": "Label of a checkbox field",
939
934
  "limit": 0
940
935
  },
941
936
  "dialogs.schedule.management.attachments.filters.title": {
942
937
  "value": "Dashboard filters",
943
- "comment": "Section title for filter settings in scheduled export configuration",
938
+ "comment": "Title of dropdown for selected type of dashboard filters for attachment",
944
939
  "limit": 0
945
940
  },
946
941
  "dialogs.schedule.management.attachments.filters.using": {
947
942
  "value": "using",
948
- "comment": "Conjunction word connecting the export action with the filter selection",
943
+ "comment": "Describes which filters will be used in the attachment",
949
944
  "limit": 0
950
945
  },
951
946
  "dialogs.schedule.management.attachments.filters.default": {
952
947
  "value": "default dashboard filters",
953
- "comment": "Label indicating that default dashboard filters will be used in export",
948
+ "comment": "Attachment filters type title",
954
949
  "limit": 0
955
950
  },
956
951
  "dialogs.schedule.management.attachments.filters.edited": {
957
952
  "value": "edited dashboard filters",
958
- "comment": "Label indicating that custom edited filters will be used in export",
953
+ "comment": "Attachment filters type title",
959
954
  "limit": 0
960
955
  },
961
956
  "dialogs.schedule.management.attachments.filters.item.default": {
962
957
  "value": "Use default filters",
963
- "comment": "Dropdown option to use default dashboard filters in scheduled export",
958
+ "comment": "Attachment filters type item",
964
959
  "limit": 0
965
960
  },
966
961
  "dialogs.schedule.management.attachments.filters.item.edited": {
967
962
  "value": "Use edited filters",
968
- "comment": "Dropdown option to use custom edited filters in scheduled export",
963
+ "comment": "Attachment filters type item",
969
964
  "limit": 0
970
965
  },
971
966
  "dialogs.schedule.management.attachments.filters.item.tooltip": {
972
967
  "value": "Default state of dashboard filters will be used in the scheduled export, even if the default values change in the future.",
973
- "comment": "Tooltip explaining how default filters work in scheduled exports",
968
+ "comment": "Attachment filters type tooltip",
974
969
  "limit": 0
975
970
  },
976
971
  "dialogs.schedule.management.attachments.filters.item.tooltip.disabled": {
977
972
  "value": "To schedule an export with default filters, create a new scheduled export.",
978
- "comment": "Tooltip explaining why default filter option is disabled and how to use it",
973
+ "comment": "Attachment filters type tooltip when filter option is disabled",
979
974
  "limit": 0
980
975
  },
981
976
  "dialogs.schedule.management.attachments.message": {
982
977
  "value": "<strong>Note</strong>. Cross-filtering will not be applied in the scheduled export.",
983
- "comment": "Important notice about scheduled exports. The <strong> tags emphasize that cross-filtering won't apply to exported data.",
984
- "limit": 0
985
- },
986
- "dialogs.schedule.management.attachments.title": {
987
- "value": "Attachments",
988
- "comment": "Header for attachments section in scheduled export dialog",
989
- "limit": 0
990
- },
991
- "scheduledEmail.attachmentFormat.widget.png": {
992
- "value": "Snapshot (.png)",
993
- "comment": "Attachment format for widget snapshot in scheduled export",
994
- "limit": 0
995
- },
996
- "scheduledEmail.attachmentFormat.widget.pptx": {
997
- "value": "Single Slide (.pptx)",
998
- "comment": "Attachment format for single slide in scheduled export",
999
- "limit": 0
1000
- },
1001
- "scheduledEmail.attachmentFormat.widget.pdf": {
1002
- "value": "Single Slide (.pdf)",
1003
- "comment": "Attachment format for single slide in scheduled export",
1004
- "limit": 0
1005
- },
1006
- "scheduledEmail.attachmentFormat.widget.formattedXLSX": {
1007
- "value": "Formatted data (.xlsx)",
1008
- "comment": "Attachment format for formatted data in scheduled export",
1009
- "limit": 0
1010
- },
1011
- "scheduledEmail.attachmentFormat.widget.formattedCSV": {
1012
- "value": "Formatted data (.csv)",
1013
- "comment": "Attachment format for formatted data in scheduled export",
1014
- "limit": 0
1015
- },
1016
- "scheduledEmail.attachmentFormat.widget.rawCSV": {
1017
- "value": "Raw data (.csv)",
1018
- "comment": "Attachment format for raw data in scheduled export",
1019
- "limit": 0
1020
- },
1021
- "scheduledEmail.attachmentFormat.dashboard.pptx": {
1022
- "value": "Slide Deck (.pptx)",
1023
- "comment": "Attachment format for slide deck in scheduled export",
1024
- "limit": 0
1025
- },
1026
- "scheduledEmail.attachmentFormat.dashboard.pdf": {
1027
- "value": "Snapshot (.pdf)",
1028
- "comment": "Attachment format for snapshot in scheduled export",
1029
- "limit": 0
1030
- },
1031
- "scheduledEmail.attachmentFormat.dashboard.formattedXLSX": {
1032
- "value": "Data (.xlsx)",
1033
- "comment": "Attachment format for data in scheduled export",
1034
- "limit": 0
1035
- },
1036
- "scheduledEmail.attachmentFormat.dashboard.pdfSlides": {
1037
- "value": "Slide Deck (.pdf)",
1038
- "comment": "Attachment format for slide deck in scheduled export",
1039
- "limit": 0
1040
- },
1041
- "scheduledEmail.attachments.warning.noAttachmentsSelected": {
1042
- "value": "<strong>Warning:</strong> Scheduled exports require at least one attachment — select an option to continue.",
1043
- "comment": "Do not translate HTML tags.",
1044
- "limit": 0
1045
- },
1046
- "scheduledEmail.attachments.error.noAttachmentsSelected": {
1047
- "value": "Error: No attachments selected — select at least one attachment to schedule an export.",
1048
- "comment": "Error message shown when no attachments are selected in scheduled export dialog",
978
+ "comment": "Message about used filters. Do not translate HTML tags.",
1049
979
  "limit": 0
1050
980
  },
1051
981
  "dialogs.schedule.management.load.error": {
1052
982
  "value": "Failed to load. Try again later.",
1053
- "comment": "Error message shown when schedule management data fails to load",
983
+ "comment": "",
1054
984
  "limit": 0
1055
985
  },
1056
986
  "dialogs.schedule.management.delete.error": {
1057
987
  "value": "Failed to delete schedule. Try again later.",
1058
- "comment": "Error message shown when schedule deletion fails",
988
+ "comment": "",
1059
989
  "limit": 0
1060
990
  },
1061
991
  "dialogs.alerting.management.title": {
1062
992
  "value": "Alerts",
1063
- "comment": "Title of the alerts management dialog",
993
+ "comment": "",
1064
994
  "limit": 0
1065
995
  },
1066
996
  "dialogs.alerting.management.load.error": {
1067
997
  "value": "Failed to load. Try again later.",
1068
- "comment": "Error message shown when alerts fail to load",
998
+ "comment": "",
1069
999
  "limit": 0
1070
1000
  },
1071
1001
  "dialogs.alerting.create.error": {
1072
1002
  "value": "Failed to create alert. Try again later.",
1073
- "comment": "Error message shown when alert creation fails",
1003
+ "comment": "",
1074
1004
  "limit": 0
1075
1005
  },
1076
1006
  "dialogs.alerting.create.success": {
1077
1007
  "value": "Alert created successfully.",
1078
- "comment": "Success message after alert is created",
1008
+ "comment": "",
1079
1009
  "limit": 0
1080
1010
  },
1081
1011
  "dialogs.alerting.update.error": {
1082
1012
  "value": "Failed to update alert. Try again later.",
1083
- "comment": "Error message shown when alert update fails",
1013
+ "comment": "",
1084
1014
  "limit": 0
1085
1015
  },
1086
1016
  "dialogs.alerting.update.success": {
1087
1017
  "value": "Alert updated successfully.",
1088
- "comment": "Success message after alert is updated",
1018
+ "comment": "",
1089
1019
  "limit": 0
1090
1020
  },
1091
1021
  "dialogs.alerting.management.delete.error": {
1092
1022
  "value": "Failed to delete alert. Try again later.",
1093
- "comment": "Error message shown when alert deletion fails",
1023
+ "comment": "",
1094
1024
  "limit": 0
1095
1025
  },
1096
1026
  "dialogs.alerting.management.pause.error": {
1097
1027
  "value": "Failed to pause alert. Try again later.",
1098
- "comment": "Error message shown when pausing an alert fails",
1028
+ "comment": "",
1099
1029
  "limit": 0
1100
1030
  },
1101
1031
  "dialogs.alerting.management.pause.success": {
1102
1032
  "value": "Your alert has been paused.",
1103
- "comment": "Success message after alert is paused",
1033
+ "comment": "",
1104
1034
  "limit": 0
1105
1035
  },
1106
1036
  "dialogs.alerting.management.activate.error": {
1107
1037
  "value": "Failed to un-pause alert. Try again later.",
1108
- "comment": "Error message shown when reactivating a paused alert fails",
1038
+ "comment": "",
1109
1039
  "limit": 0
1110
1040
  },
1111
1041
  "dialogs.alerting.management.activate.success": {
1112
1042
  "value": "Your alert has been un-paused.",
1113
- "comment": "Success message after alert is reactivated",
1043
+ "comment": "",
1114
1044
  "limit": 0
1115
1045
  },
1116
1046
  "dialogs.alerting.footer.title": {
@@ -1125,12 +1055,12 @@
1125
1055
  },
1126
1056
  "dialogs.alerting.management.list.title": {
1127
1057
  "value": "Your alerts",
1128
- "comment": "Title for the list of user's alerts",
1058
+ "comment": "",
1129
1059
  "limit": 0
1130
1060
  },
1131
1061
  "dialogs.alerting.management.noAlerts": {
1132
1062
  "value": "There are no alerts.",
1133
- "comment": "Message shown when the user has no alerts",
1063
+ "comment": "",
1134
1064
  "limit": 0
1135
1065
  },
1136
1066
  "dialogs.alerting.title.placeholder": {
@@ -1140,42 +1070,42 @@
1140
1070
  },
1141
1071
  "dialogs.alerting.management.delete.dialog": {
1142
1072
  "value": "Delete alert?",
1143
- "comment": "Title of the confirmation dialog when deleting an alert",
1073
+ "comment": "",
1144
1074
  "limit": 0
1145
1075
  },
1146
1076
  "dialogs.alerting.management.delete.dialog.confirm": {
1147
1077
  "value": "<b>The alert</b> will be permanently deleted, along with all its notifications.",
1148
- "comment": "Confirmation message shown when deleting an alert",
1078
+ "comment": "Do not translate html tags <b>, </b>",
1149
1079
  "limit": 0
1150
1080
  },
1151
1081
  "dialogs.alerting.delete.success": {
1152
1082
  "value": "Success! Your alert was deleted.",
1153
- "comment": "Success message after alert is deleted",
1083
+ "comment": "",
1154
1084
  "limit": 0
1155
1085
  },
1156
1086
  "alerting.alert.menu.delete": {
1157
1087
  "value": "Delete",
1158
- "comment": "Menu option to delete an alert",
1088
+ "comment": "",
1159
1089
  "limit": 0
1160
1090
  },
1161
1091
  "alerting.alert.menu.pause": {
1162
1092
  "value": "Pause",
1163
- "comment": "Menu option to pause an active alert",
1093
+ "comment": "",
1164
1094
  "limit": 0
1165
1095
  },
1166
1096
  "alerting.alert.menu.resume": {
1167
1097
  "value": "Unpause",
1168
- "comment": "Menu option to resume a paused alert",
1098
+ "comment": "",
1169
1099
  "limit": 0
1170
1100
  },
1171
1101
  "alerting.alert.menu.edit": {
1172
1102
  "value": "Edit",
1173
- "comment": "Menu option to edit an existing alert",
1103
+ "comment": "",
1174
1104
  "limit": 0
1175
1105
  },
1176
1106
  "delete": {
1177
1107
  "value": "Delete",
1178
- "comment": "Action button label to remove or delete an item",
1108
+ "comment": "",
1179
1109
  "limit": 0
1180
1110
  },
1181
1111
  "close": {
@@ -1185,37 +1115,37 @@
1185
1115
  },
1186
1116
  "cancel": {
1187
1117
  "value": "Cancel",
1188
- "comment": "Label for a button that cancels an action and closes a dialog without saving changes",
1118
+ "comment": "",
1189
1119
  "limit": 0
1190
1120
  },
1191
1121
  "save": {
1192
1122
  "value": "Save",
1193
- "comment": "Label for a button that saves changes and completes an action",
1123
+ "comment": "",
1194
1124
  "limit": 0
1195
1125
  },
1196
1126
  "create": {
1197
1127
  "value": "Create",
1198
- "comment": "Label for a button that creates a new item or completes a creation flow",
1128
+ "comment": "",
1199
1129
  "limit": 0
1200
1130
  },
1201
1131
  "apply": {
1202
1132
  "value": "Apply",
1203
- "comment": "Label for a button that applies changes without closing a dialog or panel",
1133
+ "comment": "",
1204
1134
  "limit": 0
1205
1135
  },
1206
1136
  "gs.date.today": {
1207
1137
  "value": "Today",
1208
- "comment": "Label for the current day in date filters and selectors",
1138
+ "comment": "",
1209
1139
  "limit": 0
1210
1140
  },
1211
1141
  "gs.date.tomorrow": {
1212
1142
  "value": "Tomorrow",
1213
- "comment": "Label for the day after today in date filters and selectors",
1143
+ "comment": "",
1214
1144
  "limit": 0
1215
1145
  },
1216
1146
  "gs.date.yesterday": {
1217
1147
  "value": "Yesterday",
1218
- "comment": "Label for the day before today in date filters and selectors",
1148
+ "comment": "",
1219
1149
  "limit": 0
1220
1150
  },
1221
1151
  "messages.exportResultError": {
@@ -1271,48 +1201,48 @@
1271
1201
  },
1272
1202
  "visualization.dataTooLarge.headline": {
1273
1203
  "value": "Too many data points to display",
1274
- "comment": "Error message headline when visualization has too much data to render",
1204
+ "comment": "",
1275
1205
  "limit": 0
1276
1206
  },
1277
1207
  "visualization.dataTooLarge.text": {
1278
1208
  "value": "Try applying one or more filters to your dashboard.",
1279
- "comment": "Suggested action when visualization has too much data to render",
1209
+ "comment": "",
1280
1210
  "limit": 0
1281
1211
  },
1282
1212
  "visualization.execute_protected_report.headline": {
1283
1213
  "value": "You are not authorized to see this report",
1284
- "comment": "Error message headline when user lacks permission to view a report",
1214
+ "comment": "",
1285
1215
  "limit": 0
1286
1216
  },
1287
1217
  "visualization.execute_protected_report.text": {
1288
1218
  "value": "Contact your administrator.",
1289
- "comment": "Suggested action when user lacks permission to view a report",
1219
+ "comment": "",
1290
1220
  "limit": 0
1291
1221
  },
1292
1222
  "visualization.empty.headline": {
1293
1223
  "value": "No data for your filter selection",
1294
- "comment": "Message shown when a visualization has no data to display due to the current filter settings",
1224
+ "comment": "",
1295
1225
  "limit": 0
1296
1226
  },
1297
1227
  "visualization.error.headline|insight": {
1298
1228
  "value": "Sorry, we can't display this visualization",
1299
- "comment": "Error message header when a visualization fails to load or render",
1229
+ "comment": "",
1300
1230
  "limit": 0
1301
1231
  },
1302
1232
  "visualization.error.headline|report": {
1303
1233
  "value": "Sorry, we can't display this report",
1304
- "comment": "Error message header when a report fails to load or render",
1234
+ "comment": "",
1305
1235
  "limit": 0,
1306
1236
  "translate": false
1307
1237
  },
1308
1238
  "visualization.error.text": {
1309
1239
  "value": "Contact your administrator.",
1310
- "comment": "Instructional text shown below an error message, guiding users to contact support",
1240
+ "comment": "",
1311
1241
  "limit": 0
1312
1242
  },
1313
1243
  "visualization.warning.export.too_small": {
1314
1244
  "value": "Not enough space for visualization",
1315
- "comment": "Warning shown when there is insufficient space to properly display a visualization during export",
1245
+ "comment": "",
1316
1246
  "limit": 0
1317
1247
  },
1318
1248
  "options.menu.unsupported.error._measure|insight": {
@@ -1350,12 +1280,12 @@
1350
1280
  },
1351
1281
  "options.menu.unsupported.incompatibleWidget": {
1352
1282
  "value": "Unable to schedule the export on custom widget.",
1353
- "comment": "Error message shown when attempting to schedule an export for an unsupported custom widget type",
1283
+ "comment": "",
1354
1284
  "limit": 0
1355
1285
  },
1356
1286
  "options.menu.unsupported.schedulingForInsightNotEnabled": {
1357
1287
  "value": "You cannot schedule an export for this widget.",
1358
- "comment": "Error message shown when scheduling exports is not enabled for the current insight or visualization. Tooltip for the widget that does not support scheduling, because it's disabled on the insight.",
1288
+ "comment": "Tooltip for the widget that does not support scheduling, because it's disabled on the insight.",
1359
1289
  "limit": 0
1360
1290
  },
1361
1291
  "options.menu.unsupported.alertingForInsightNotEnabled": {
@@ -1365,17 +1295,17 @@
1365
1295
  },
1366
1296
  "options.menu.unsupported.oldWidget": {
1367
1297
  "value": "Unable to schedule the export. Please resave the dashboard or contact your administrator.",
1368
- "comment": "Error message shown when attempting to schedule an export for a widget that needs to be resaved due to compatibility issues",
1298
+ "comment": "",
1369
1299
  "limit": 0
1370
1300
  },
1371
1301
  "options.menu.unsupported.xlsxOldWidget": {
1372
1302
  "value": "Unable to export. Please resave the dashboard or contact your administrator.",
1373
- "comment": "Error message shown when unable to export to XLSX due to widget compatibility issues, suggesting to resave the dashboard",
1303
+ "comment": "",
1374
1304
  "limit": 0
1375
1305
  },
1376
1306
  "options.menu.unsupported.alertingOldWidget": {
1377
1307
  "value": "Unable to create an alert. Please resave the dashboard or contact your administrator.",
1378
- "comment": "Error message shown when unable to create an alert due to widget compatibility issues, suggesting to resave the dashboard",
1308
+ "comment": "",
1379
1309
  "limit": 0
1380
1310
  },
1381
1311
  "export.defaultTitle|insight": {
@@ -1396,12 +1326,12 @@
1396
1326
  },
1397
1327
  "widget.options.description": {
1398
1328
  "value": "Description",
1399
- "comment": "Label for the widget description field in widget options",
1329
+ "comment": "",
1400
1330
  "limit": 0
1401
1331
  },
1402
1332
  "widget.options.menu": {
1403
1333
  "value": "Options",
1404
- "comment": "Title for the widget options menu that appears when clicking the options button on a widget",
1334
+ "comment": "",
1405
1335
  "limit": 0
1406
1336
  },
1407
1337
  "widget.options.menu.exportToCSV": {
@@ -1421,12 +1351,12 @@
1421
1351
  },
1422
1352
  "widget.options.menu.scheduleExport": {
1423
1353
  "value": "Schedule export",
1424
- "comment": "Menu item for scheduling regular exports of widget data",
1354
+ "comment": "",
1425
1355
  "limit": 0
1426
1356
  },
1427
1357
  "widget.options.menu.scheduleExport.edit": {
1428
1358
  "value": "Show schedules",
1429
- "comment": "Menu item to view and manage existing export schedules for the widget",
1359
+ "comment": "",
1430
1360
  "limit": 0
1431
1361
  },
1432
1362
  "widget.options.menu.XLSX": {
@@ -1446,27 +1376,27 @@
1446
1376
  },
1447
1377
  "widget.error.missing_insight.message": {
1448
1378
  "value": "No visualization available",
1449
- "comment": "Error message shown when a widget's visualization cannot be loaded or is missing",
1379
+ "comment": "",
1450
1380
  "limit": 0
1451
1381
  },
1452
1382
  "widget.error.missing_insight.description": {
1453
1383
  "value": "This visualization has been removed or is no longer accessible. Please contact your administrator or remove it from the dashboard.",
1454
- "comment": "Detailed error message explaining that a visualization is missing and suggesting actions to resolve the issue",
1384
+ "comment": "",
1455
1385
  "limit": 0
1456
1386
  },
1457
1387
  "widget.drill.dialog.exportToXLSX": {
1458
1388
  "value": "Export to XLSX",
1459
- "comment": "Button label for exporting widget data to XLSX format from the drill dialog",
1389
+ "comment": "",
1460
1390
  "limit": 0
1461
1391
  },
1462
1392
  "widget.drill.dialog.exportToCSV.formatted": {
1463
1393
  "value": "Export to CSV (formatted)",
1464
- "comment": "Button label for exporting formatted widget data to CSV format from the drill dialog",
1394
+ "comment": "",
1465
1395
  "limit": 0
1466
1396
  },
1467
1397
  "widget.drill.dialog.exportToCSV.raw": {
1468
1398
  "value": "Export to CSV (raw)",
1469
- "comment": "Button label for exporting raw widget data to CSV format from the drill dialog, without any formatting applied",
1399
+ "comment": "",
1470
1400
  "limit": 0
1471
1401
  },
1472
1402
  "share.button.text": {
@@ -1481,53 +1411,53 @@
1481
1411
  },
1482
1412
  "dashboard.error.empty.heading": {
1483
1413
  "value": "This dashboard is empty",
1484
- "comment": "Heading shown when a dashboard contains no widgets or visualizations",
1414
+ "comment": "The user has a dashboard that contains no widgets.",
1485
1415
  "limit": 0
1486
1416
  },
1487
1417
  "dashboard.error.empty.text|insight": {
1488
1418
  "value": "All visualizations were removed.",
1489
- "comment": "Message shown when all visualizations have been removed from the dashboard",
1419
+ "comment": "The user has a dashboard that contains no widgets.",
1490
1420
  "limit": 0
1491
1421
  },
1492
1422
  "dashboard.error.empty.text|report": {
1493
1423
  "value": "All reports were removed.",
1494
- "comment": "Message shown when all reports have been removed from the dashboard",
1424
+ "comment": "The user has a dashboard that contains no widgets.",
1495
1425
  "translate": false,
1496
1426
  "limit": 0
1497
1427
  },
1498
1428
  "dashboard.shareDialog.underLenientControl.label": {
1499
1429
  "value": "Other users can access this dashboard if they drill to it",
1500
- "comment": "Label for the checkbox that controls whether users can access this dashboard by drilling into it from another dashboard, even if they're not explicitly granted access",
1430
+ "comment": "Label of checkbox that sets if other users than the ones in the list above the checkbox will be able to access the dashboard if they drill into it from another dashboard.",
1501
1431
  "limit": 0
1502
1432
  },
1503
1433
  "dashboard.shareDialog.lock.label": {
1504
1434
  "value": "Only admins can edit this dashboard",
1505
- "comment": "Label for the checkbox that restricts dashboard editing to administrators only",
1435
+ "comment": "Label of checkbox that sets edit right for the dashboard",
1506
1436
  "limit": 0
1507
1437
  },
1508
1438
  "header.lockStatus.tooltip": {
1509
1439
  "value": "<b>This dashboard is locked.</b> Only administrators can edit this dashboard.",
1510
- "comment": "Tooltip shown when hovering over the dashboard lock icon, with emphasis on the locked status",
1440
+ "comment": "Shown when hovering over lock indicator. Dont translate html tags <b>, </b>",
1511
1441
  "limit": 0
1512
1442
  },
1513
1443
  "header.shareStatus.private.text": {
1514
1444
  "value": "Private",
1515
- "comment": "Text shown in the share status indicator when the dashboard is set to private visibility",
1445
+ "comment": "Share indicator text when dashboard is private",
1516
1446
  "limit": 0
1517
1447
  },
1518
1448
  "header.shareStatus.private.strict.tooltip": {
1519
1449
  "value": "Only you can view and edit this dashboard.",
1520
- "comment": "Tooltip shown when hovering over the private share status indicator with strict access enabled, indicating restricted access",
1450
+ "comment": "Shown when hovering over share indicator of private dashboard and strict access.",
1521
1451
  "limit": 0
1522
1452
  },
1523
1453
  "header.shareStatus.private.not.strict.tooltip": {
1524
1454
  "value": "The creator can edit this dashboard. Other users with appropriate user roles can edit this dashboard when they drill to it.",
1525
- "comment": "Tooltip explaining that while the dashboard is private, users with proper roles can edit it when accessing through drill navigation",
1455
+ "comment": "Shown when hovering over share indicator of private dashboard and not strict access.",
1526
1456
  "limit": 0
1527
1457
  },
1528
1458
  "dashboard.shareDialog.removeAccessGranteeTooltip": {
1529
1459
  "value": "Remove access to this dashboard.",
1530
- "comment": "Tooltip for the button that revokes a user's or group's access to the dashboard",
1460
+ "comment": "Text of the tooltip shown above button that removes user or group dashboard access right.",
1531
1461
  "limit": 0
1532
1462
  },
1533
1463
  "dashboard.shareDialog.removeAccessCreatorTooltip": {
@@ -1537,7 +1467,7 @@
1537
1467
  },
1538
1468
  "attributesDropdown.placeholder": {
1539
1469
  "value": "Search…",
1540
- "comment": "Placeholder text in attribute filter search input",
1470
+ "comment": "Use '…' as one character, not 3 dots ('...').",
1541
1471
  "limit": 0
1542
1472
  },
1543
1473
  "attributesDropdown.configuration": {
@@ -1557,37 +1487,37 @@
1557
1487
  },
1558
1488
  "attributesDropdown.displayValuesAs": {
1559
1489
  "value": "Display values as",
1560
- "comment": "Label for display format selection in attribute filter configuration",
1490
+ "comment": "Filter section label in attribute filter dropdown configuration. Displayed before dropdown button that changes form of the attribute used in visualization. For example 'Display as: Shortened name'.",
1561
1491
  "limit": 0
1562
1492
  },
1563
1493
  "attributesDropdown.title": {
1564
1494
  "value": "Title",
1565
- "comment": "Label for the title field in attribute dropdown components",
1495
+ "comment": "",
1566
1496
  "limit": 0
1567
1497
  },
1568
1498
  "attributesDropdown.title.reset": {
1569
1499
  "value": "Reset",
1570
- "comment": "Button label to reset the attribute title to its default value",
1500
+ "comment": "",
1571
1501
  "limit": 0
1572
1502
  },
1573
1503
  "attributesDropdown.selectionMode": {
1574
1504
  "value": "Selection",
1575
- "comment": "Label for the selection mode dropdown in attribute filter configuration",
1505
+ "comment": "Dropdown subsection title.",
1576
1506
  "limit": 0
1577
1507
  },
1578
1508
  "attributesDropdown.selectionMode.multi": {
1579
1509
  "value": "Multiple values",
1580
- "comment": "Option to allow selecting multiple values in the attribute filter",
1510
+ "comment": "Input selection choice.",
1581
1511
  "limit": 0
1582
1512
  },
1583
1513
  "attributesDropdown.selectionMode.single": {
1584
1514
  "value": "Single value",
1585
- "comment": "Option to allow selecting only one value in the attribute filter",
1515
+ "comment": "Input selection choice.",
1586
1516
  "limit": 0
1587
1517
  },
1588
1518
  "attributesDropdown.selectionMode.disabled.tooltip": {
1589
1519
  "value": "Single value selection is not allowed if any filters are selected in Filter by.To use the Single value selection, disable all filters in Filter by.",
1590
- "comment": "Tooltip explaining why single value selection is disabled when filters are applied",
1520
+ "comment": "Tooltip describing why selection value is disabled.",
1591
1521
  "limit": 0
1592
1522
  },
1593
1523
  "attributesDropdown.parentFilter.disabled.tooltip": {
@@ -1597,22 +1527,22 @@
1597
1527
  },
1598
1528
  "attributesDropdown.noConnectionMessage": {
1599
1529
  "value": "<strong>{childTitle}</strong> cannot be filtered by <strong>{parentTitle}</strong>. There is no connection between the filter attributes in the data model.",
1600
- "comment": "Error message when attributes cannot be filtered together. The <strong> tags emphasize attribute names, and {childTitle}/{parentTitle} show the specific attribute names.",
1530
+ "comment": "Do not translate HTML markup enclosed in <> and placeholders enclosed in {}.",
1601
1531
  "limit": 0
1602
1532
  },
1603
1533
  "attributesDropdown.details.dataset": {
1604
1534
  "value": "Dataset",
1605
- "comment": "Label for the dataset information section in attribute filter details",
1535
+ "comment": "",
1606
1536
  "limit": 0
1607
1537
  },
1608
1538
  "attributesDropdown.details.values": {
1609
1539
  "value": "Values",
1610
- "comment": "Label for the values section in attribute filter details",
1540
+ "comment": "",
1611
1541
  "limit": 0
1612
1542
  },
1613
1543
  "attributesDropdown.details.shortening_decoration": {
1614
1544
  "value": "…and {count} more",
1615
- "comment": "Text shown when a list of attribute values is truncated. Placeholder {count} shows the number of additional attribute filter values. Example: '…and 5 more'.",
1545
+ "comment": "Don't translate placeholder '{count}'. Use '…' as one character, not 3 dots ('...').",
1616
1546
  "limit": 0
1617
1547
  },
1618
1548
  "attributesDropdown.removeTooltip": {
@@ -1622,7 +1552,7 @@
1622
1552
  },
1623
1553
  "layout.header.characters.left": {
1624
1554
  "value": "{currentCharactersCount} / {maximumCharactersCount} characters left",
1625
- "comment": "Label showing the number of characters remaining in the input field (e.g., '4 / 20 characters left')",
1555
+ "comment": "Number of characters that can be written e.g. : 4 /20 characters left",
1626
1556
  "limit": 0
1627
1557
  },
1628
1558
  "layout.header.add.title.placeholder": {
@@ -1637,243 +1567,248 @@
1637
1567
  },
1638
1568
  "controlButtons.options.tooltip": {
1639
1569
  "value": "More actions",
1640
- "comment": "Tooltip shown when hovering over the options menu button",
1570
+ "comment": "",
1641
1571
  "limit": 0
1642
1572
  },
1643
1573
  "controlButtons.options.back": {
1644
1574
  "value": "Back to previous step",
1645
- "comment": "Button text for returning to the previous screen or action",
1575
+ "comment": "",
1646
1576
  "limit": 0
1647
1577
  },
1648
1578
  "controlButtons.options.closeMenu": {
1649
1579
  "value": "Close menu",
1650
- "comment": "Button text for closing the options menu",
1580
+ "comment": "",
1651
1581
  "limit": 0
1652
1582
  },
1653
1583
  "controlButtons.edit.value": {
1654
1584
  "value": "Edit",
1655
- "comment": "Button text for entering dashboard edit mode",
1585
+ "comment": "",
1656
1586
  "limit": 0
1657
1587
  },
1658
1588
  "controlButtons.edit.tooltip": {
1659
1589
  "value": "Edit dashboard",
1660
- "comment": "Tooltip shown when hovering over the edit dashboard button",
1590
+ "comment": "",
1661
1591
  "limit": 0
1662
1592
  },
1663
1593
  "controlButtons.edit.executionTimestampMode.tooltip": {
1664
1594
  "value": "To edit the dashboard, reset the date to today.",
1665
- "comment": "Tooltip explaining that historical dashboard view must be reset before editing",
1595
+ "comment": "",
1666
1596
  "limit": 0
1667
1597
  },
1668
1598
  "controlButtons.setting.value": {
1669
1599
  "value": "Settings",
1670
- "comment": "Button text for accessing dashboard settings",
1600
+ "comment": "",
1671
1601
  "limit": 0
1672
1602
  },
1673
1603
  "controlButtons.setting.title": {
1674
1604
  "value": "All settings related to this dashboard. You can change the dashboard description cross-filtering, saved filters allowed, and alerts evaluation frequency.",
1675
- "comment": "Extended tooltip describing available dashboard settings options",
1605
+ "comment": "",
1676
1606
  "limit": 0
1677
1607
  },
1678
1608
  "controlButtons.saveAndPublish.value": {
1679
1609
  "value": "Save & Publish",
1680
- "comment": "Button text for saving changes and publishing them to all users",
1610
+ "comment": "",
1681
1611
  "limit": 0
1682
1612
  },
1683
1613
  "controlButtons.save.value": {
1684
1614
  "value": "Save",
1685
- "comment": "Button text for saving dashboard changes",
1615
+ "comment": "",
1686
1616
  "limit": 0
1687
1617
  },
1688
1618
  "controlButtons.saveAndPublish.title": {
1689
1619
  "value": "All changes will be immediately visible to everyone who can access this dashboard.",
1690
- "comment": "Tooltip explaining the effect of saving and publishing dashboard changes",
1620
+ "comment": "",
1691
1621
  "limit": 0
1692
1622
  },
1693
1623
  "controlButtons.saveAsPrivate.title": {
1694
1624
  "value": "All changes will be saved.",
1695
- "comment": "Tooltip explaining private save action effect",
1625
+ "comment": "",
1696
1626
  "limit": 0
1697
1627
  },
1698
1628
  "controlButtons.saveAndPublish.disable.empty.title": {
1699
1629
  "value": "Empty dashboard cannot be saved",
1700
- "comment": "Tooltip shown when save button is disabled because dashboard has no content",
1630
+ "comment": "",
1701
1631
  "limit": 0
1702
1632
  },
1703
1633
  "controlButtons.saveAndPublish.disable.noChanges.title": {
1704
1634
  "value": "There are no changes to save",
1705
- "comment": "Tooltip shown when save button is disabled because there are no unsaved changes",
1635
+ "comment": "",
1706
1636
  "limit": 0
1707
1637
  },
1708
1638
  "controlButtons.saving.value": {
1709
1639
  "value": "Saving…",
1710
- "comment": "Text shown while dashboard changes are being saved",
1640
+ "comment": "Use '…' as one character, not 3 dots ('...').",
1711
1641
  "limit": 0
1712
1642
  },
1713
1643
  "gs.visualizationsList.tabs.all": {
1714
1644
  "value": "all",
1715
- "comment": "Tab label for showing all visualizations regardless of creator",
1645
+ "comment": "",
1716
1646
  "limit": 0
1717
1647
  },
1718
1648
  "gs.visualizationsList.tabs.my": {
1719
1649
  "value": "created by me",
1720
- "comment": "Tab label for filtering visualizations to show only those created by current user",
1650
+ "comment": "",
1721
1651
  "limit": 0
1722
1652
  },
1723
1653
  "visualizationsList.noInsights|insight": {
1724
1654
  "value": "This workspace contains no visualizations.",
1725
- "comment": "Message shown when no visualizations exist in the workspace",
1655
+ "comment": "",
1726
1656
  "limit": 0
1727
1657
  },
1728
1658
  "visualizationsList.noInsights|report": {
1729
1659
  "value": "This workspace contains no reports.",
1730
- "comment": "Message shown when no reports exist in the workspace",
1660
+ "comment": "",
1731
1661
  "limit": 0,
1732
1662
  "translate": false
1733
1663
  },
1734
1664
  "visualizationsList.create|insight": {
1735
1665
  "value": "Create visualization",
1736
- "comment": "Button text for creating a new visualization",
1666
+ "comment": "",
1737
1667
  "limit": 0
1738
1668
  },
1739
1669
  "visualizationsList.create|report": {
1740
1670
  "value": "Create report",
1741
- "comment": "Button text for creating a new report",
1671
+ "comment": "",
1742
1672
  "translate": false,
1743
1673
  "limit": 0
1744
1674
  },
1745
1675
  "visualizationsList.noUserInsights|insight": {
1746
1676
  "value": "No visualizations created.",
1747
- "comment": "Message shown when user has not created any visualizations",
1677
+ "comment": "",
1748
1678
  "limit": 0
1749
1679
  },
1750
1680
  "visualizationsList.noUserInsights|report": {
1751
1681
  "value": "No reports created.",
1752
- "comment": "Message shown when user has not created any reports",
1682
+ "comment": "",
1753
1683
  "limit": 0,
1754
1684
  "translate": false
1755
1685
  },
1756
1686
  "visualizationsList.noVisualizationsFound|insight": {
1757
1687
  "value": "No visualization matched.",
1758
- "comment": "Message shown when search returns no visualizations",
1688
+ "comment": "",
1759
1689
  "limit": 0
1760
1690
  },
1761
1691
  "visualizationsList.noVisualizationsFound|report": {
1762
1692
  "value": "No report matched.",
1763
- "comment": "Message shown when search returns no reports",
1693
+ "comment": "",
1764
1694
  "limit": 0,
1765
1695
  "translate": false
1766
1696
  },
1767
1697
  "search_insights|insight": {
1768
1698
  "value": "Search all visualizations…",
1769
- "comment": "Placeholder text in visualization search input field",
1699
+ "comment": "Use '…' as one character, not 3 dots ('...').",
1770
1700
  "limit": 0
1771
1701
  },
1772
1702
  "search_insights|report": {
1773
1703
  "value": "Search all reports…",
1774
- "comment": "Placeholder text in report search input field",
1704
+ "comment": "Use '…' as one character, not 3 dots ('...').",
1775
1705
  "limit": 0,
1776
1706
  "translate": false
1777
1707
  },
1778
1708
  "save.as.new": {
1779
1709
  "value": "Save as new",
1780
- "comment": "Button text for saving current item as a new copy",
1710
+ "comment": "",
1781
1711
  "limit": 0
1782
1712
  },
1783
1713
  "addPanel.deleteItem": {
1784
1714
  "value": "Drop to remove",
1785
- "comment": "Instructions shown in deletion target area during drag and drop",
1715
+ "comment": "",
1786
1716
  "limit": 0
1787
1717
  },
1788
1718
  "addPanel.newItem": {
1789
1719
  "value": "New item",
1790
- "comment": "Generic label for a new dashboard item being added",
1720
+ "comment": "",
1791
1721
  "limit": 0
1792
1722
  },
1793
1723
  "addPanel.attributeFilter": {
1794
1724
  "value": "Attribute Filter",
1795
- "comment": "Label for attribute filter component in add panel",
1725
+ "comment": "",
1796
1726
  "limit": 0
1797
1727
  },
1798
1728
  "addPanel.filter": {
1799
1729
  "value": "Filter",
1800
- "comment": "Label for generic filter component in add panel",
1730
+ "comment": "",
1801
1731
  "limit": 0
1802
1732
  },
1803
1733
  "addPanel.attributeFilter.tooltip.no_attributes": {
1804
1734
  "value": "The attribute filter requires an attribute.",
1805
- "comment": "Error message shown when attempting to create filter without selecting attribute",
1735
+ "comment": "",
1806
1736
  "limit": 0
1807
1737
  },
1808
1738
  "addPanel.attributeFilter.tooltip.no_items": {
1809
1739
  "value": "The filter requires an attribute or a date dataset.",
1810
- "comment": "Error message shown when filter has no data items selected",
1740
+ "comment": "",
1811
1741
  "limit": 0
1812
1742
  },
1813
1743
  "addPanel.attributeFilter.tooltip.no_attributes.link": {
1814
1744
  "value": "Learn more",
1815
- "comment": "Link text for documentation about attribute filters",
1745
+ "comment": "",
1816
1746
  "limit": 0
1817
1747
  },
1818
1748
  "addPanel.kpi": {
1819
1749
  "value": "Key Performance Indicator",
1820
- "comment": "Label for KPI component in add panel",
1750
+ "comment": "",
1821
1751
  "limit": 0
1822
1752
  },
1823
1753
  "addPanel.richText": {
1824
1754
  "value": "Rich Text",
1825
- "comment": "Label for rich text editor component in add panel",
1755
+ "comment": "",
1826
1756
  "limit": 0
1827
1757
  },
1828
1758
  "addPanel.visualizationSwitcher": {
1829
1759
  "value": "Visualization switcher",
1830
- "comment": "Label for visualization switcher component in add panel",
1760
+ "comment": "",
1831
1761
  "limit": 0
1832
1762
  },
1833
1763
  "addPanel.visualizationSwitcher.tooltip": {
1834
1764
  "value": "Combine multiple visualizations into a single element with a navigation dropdown for switching between them.",
1835
- "comment": "Tooltip describing the purpose of the visualization switcher component",
1765
+ "comment": "",
1836
1766
  "limit": 0
1837
1767
  },
1838
1768
  "addPanel.dashboardLayout": {
1839
1769
  "value": "Column container",
1840
- "comment": "Label for container component that can group widgets in add panel",
1770
+ "comment": "",
1841
1771
  "limit": 0
1842
1772
  },
1843
1773
  "addPanel.dashboardLayout.tooltip": {
1844
1774
  "value": "Create a vertical group of widgets placed in a single column inside your section. Ideal for stacking multiple items.",
1845
- "comment": "Tooltip describing the purpose of the container component",
1775
+ "comment": "",
1846
1776
  "limit": 0
1847
1777
  },
1848
1778
  "addPanel.dashboardLayout.tooltip.learnMore": {
1849
1779
  "value": "Learn more",
1850
- "comment": "Link text for documentation about container component",
1780
+ "comment": "",
1781
+ "limit": 0
1782
+ },
1783
+ "addPanel.dashboardLayout.tooltip.button": {
1784
+ "value": "Got it",
1785
+ "comment": "",
1851
1786
  "limit": 0
1852
1787
  },
1853
1788
  "visualizationsList.dragToAdd": {
1854
1789
  "value": "Drag to add",
1855
- "comment": "Instruction to drag visualization to dashboard",
1790
+ "comment": "",
1856
1791
  "limit": 0
1857
1792
  },
1858
1793
  "visualizationsList.savedVisualizations|insight": {
1859
1794
  "value": "Saved visualizations",
1860
- "comment": "Header for the list of saved visualizations",
1795
+ "comment": "",
1861
1796
  "limit": 0
1862
1797
  },
1863
1798
  "visualizationsList.savedVisualizations|report": {
1864
1799
  "value": "Saved reports",
1865
- "comment": "Header for the list of saved reports",
1800
+ "comment": "",
1866
1801
  "translate": false,
1867
1802
  "limit": 0
1868
1803
  },
1869
1804
  "configurationPanel.drillConfig.selectDashboard": {
1870
1805
  "value": "Choose dashboard…",
1871
- "comment": "Placeholder text in dashboard selector for drill configuration",
1806
+ "comment": "Hint guiding users that drill target dashboard in select box has to be selected. Use '…' as one character, not 3 dots ('...').",
1872
1807
  "limit": 0
1873
1808
  },
1874
1809
  "configurationPanel.drillConfig.drillIntoDashboard.searchPlaceholder": {
1875
1810
  "value": "Search all dashboards…",
1876
- "comment": "Placeholder text in search field for finding dashboards to drill into",
1811
+ "comment": "Use '…' as one character, not 3 dots ('...').",
1877
1812
  "limit": 0
1878
1813
  },
1879
1814
  "configurationPanel.drillConfig.forbiddenDashboard": {
@@ -1893,27 +1828,27 @@
1893
1828
  },
1894
1829
  "configurationPanel.remove.form.dashboard": {
1895
1830
  "value": "Remove from dashboard",
1896
- "comment": "Button text for removing a widget from the dashboard",
1831
+ "comment": "",
1897
1832
  "limit": 0
1898
1833
  },
1899
1834
  "filterBar.filter.drop": {
1900
1835
  "value": "drop to add",
1901
- "comment": "Instruction shown in filter bar drop zone during drag operation",
1836
+ "comment": "",
1902
1837
  "limit": 0
1903
1838
  },
1904
1839
  "filterBar.filter.addFilterPlaceholder": {
1905
1840
  "value": "Drag {icon} here",
1906
- "comment": "Instruction indicating where to drag filters with icon placeholder",
1841
+ "comment": "Do not translate variable enclosed in {}.",
1907
1842
  "limit": 0
1908
1843
  },
1909
1844
  "filterBar.filter.dropzone.tooltip": {
1910
1845
  "value": "Drag the attribute filter here.",
1911
- "comment": "Tooltip for attribute filter drop zone in filter bar",
1846
+ "comment": "",
1912
1847
  "limit": 0
1913
1848
  },
1914
1849
  "filterBar.filter.dropzone.tooltip.generic": {
1915
1850
  "value": "Drag the filter here.",
1916
- "comment": "Tooltip for generic filter drop zone in filter bar",
1851
+ "comment": "",
1917
1852
  "limit": 0
1918
1853
  },
1919
1854
  "configurationPanel.title": {
@@ -1923,336 +1858,336 @@
1923
1858
  },
1924
1859
  "configurationPanel.filterBy": {
1925
1860
  "value": "Filter by",
1926
- "comment": "Label for filter selection in widget configuration panel",
1861
+ "comment": "",
1927
1862
  "limit": 0
1928
1863
  },
1929
1864
  "configurationPanel.dateAs": {
1930
1865
  "value": "as",
1931
- "comment": "Conjunction word used in date granularity selection",
1866
+ "comment": "",
1932
1867
  "limit": 0
1933
1868
  },
1934
1869
  "configurationPanel.vizCantBeFilteredByAttribute|insight": {
1935
1870
  "value": "The visualization cannot be filtered by {attributeName}. Unselect the check box.",
1936
- "comment": "Warning message when attempting to apply incompatible attribute filter to visualization",
1871
+ "comment": "Don't translate placeholder '{attributeName}'.",
1937
1872
  "limit": 0
1938
1873
  },
1939
1874
  "configurationPanel.vizCantBeFilteredByAttribute|report": {
1940
1875
  "value": "The report cannot be filtered by {attributeName}. Unselect the check box.",
1941
- "comment": "Warning message when attempting to apply incompatible attribute filter to report",
1876
+ "comment": "Don't translate placeholder '{attributeName}'.",
1942
1877
  "translate": false,
1943
1878
  "limit": 0
1944
1879
  },
1945
1880
  "configurationPanel.kpiCantBeFilteredByAttribute": {
1946
1881
  "value": "The kpi cannot be filtered by {attributeName}. Unselect the check box.",
1947
- "comment": "Warning message when attempting to apply incompatible attribute filter to KPI",
1882
+ "comment": "Don't translate placeholder '{attributeName}'.",
1948
1883
  "limit": 0
1949
1884
  },
1950
1885
  "configurationPanel.vizCantBeFilteredByDate|insight": {
1951
1886
  "value": "The visualization cannot be filtered by Date. Unselect the check box.",
1952
- "comment": "Warning message when attempting to apply date filter to incompatible visualization",
1887
+ "comment": "",
1953
1888
  "limit": 0
1954
1889
  },
1955
1890
  "configurationPanel.vizCantBeFilteredByDate|report": {
1956
1891
  "value": "The report cannot be filtered by Date. Unselect the check box.",
1957
- "comment": "Warning message when attempting to apply date filter to incompatible report",
1892
+ "comment": "",
1958
1893
  "translate": false,
1959
1894
  "limit": 0
1960
1895
  },
1961
1896
  "configurationPanel.kpiCantBeFilteredByDate": {
1962
1897
  "value": "The kpi cannot be filtered by Date. Unselect the check box.",
1963
- "comment": "Warning message when attempting to apply date filter to incompatible KPI",
1898
+ "comment": "",
1964
1899
  "limit": 0
1965
1900
  },
1966
1901
  "configurationPanel.unrelatedVizDateInfo|insight": {
1967
1902
  "value": "\"{dateDataSet}\" can no longer be applied to the visualization. Select a different dimension or edit the visualization.",
1968
- "comment": "Error message when selected date dimension is no longer compatible with the visualization",
1903
+ "comment": "Don't translate placeholder '{dateDataSet}' and keep '\"' characters as are.",
1969
1904
  "limit": 0
1970
1905
  },
1971
1906
  "configurationPanel.unrelatedVizDateInfo|report": {
1972
1907
  "value": "\"{dateDataSet}\" can no longer be applied to the report. Select a different dimension or edit the report.",
1973
- "comment": "Error message when selected date dimension is no longer compatible with the report",
1908
+ "comment": "Don't translate placeholder '{dateDataSet}' and keep '\"' characters as are.",
1974
1909
  "translate": false,
1975
1910
  "limit": 0
1976
1911
  },
1977
1912
  "configurationPanel.unrelatedKpiDateInfo": {
1978
1913
  "value": "\"{dateDataSet}\" can no longer be applied to the kpi. Select a different dimension or edit the kpi.",
1979
- "comment": "Error message when selected date dimension is no longer compatible with the KPI",
1914
+ "comment": "Don't translate placeholder '{dateDataSet}' and keep '\"' characters as are.",
1980
1915
  "limit": 0
1981
1916
  },
1982
1917
  "configurationPanel.interactions": {
1983
1918
  "value": "Interactions",
1984
- "comment": "Header for the section configuring widget interaction options",
1919
+ "comment": "",
1985
1920
  "limit": 0
1986
1921
  },
1987
1922
  "configurationPanel.drillConfig.interactions": {
1988
1923
  "value": "Drill interactions",
1989
- "comment": "Header of a section for configuring data drilling capabilities",
1924
+ "comment": "Header of a section where user can set drilling for some visualization widget containing some visualization (chart, table, etc). Interactions here stands for user interactions.",
1990
1925
  "limit": 0
1991
1926
  },
1992
1927
  "configurationPanel.drillConfig.addInteraction": {
1993
1928
  "value": "Add interaction",
1994
- "comment": "Button label for creating a new drill interaction in widget configuration",
1929
+ "comment": "Use imperative. Button label that is related to \"Interactions\" section. This button adds some drilling to a widget.",
1995
1930
  "limit": 30
1996
1931
  },
1997
1932
  "configurationPanel.drillConfig.clickHint": {
1998
1933
  "value": "When I click on",
1999
- "comment": "First part of the drill interaction configuration sentence. Example in sentence: \"WHEN I CLICK ON on value of measure 'Number of user accounts', drill into detail.\"",
1934
+ "comment": "Hint guiding users how to understand interaction (drilling) setting. Example in sentence: \"WHEN I CLICK ON on value of measure 'Number of user accounts', drill into detail.\"",
2000
1935
  "limit": 0
2001
1936
  },
2002
1937
  "configurationPanel.drillConfig.measureValue._measure": {
2003
1938
  "value": "Value of measure",
2004
- "comment": "Label for selecting measure value as drill target in configuration. Example in sentence: \"When I click on VALUE OF MEASURE 'Number of user accounts', drill into detail.\"",
1939
+ "comment": "Hint guiding users how to understand interaction (drilling) setting. Example in sentence: \"When I click on VALUE OF MEASURE 'Number of user accounts', drill into detail.\"",
2005
1940
  "limit": 0
2006
1941
  },
2007
1942
  "configurationPanel.drillConfig.measureValue._metric": {
2008
1943
  "value": "Value of metric",
2009
- "comment": "Label for selecting metric value as drill target in configuration. Example in sentence: \"When I click on VALUE OF METRIC 'Number of user accounts', drill into detail.\"",
1944
+ "comment": "Hint guiding users how to understand interaction (drilling) setting. Example in sentence: \"When I click on VALUE OF METRIC 'Number of user accounts', drill into detail.\"",
2010
1945
  "limit": 0
2011
1946
  },
2012
1947
  "configurationPanel.drillConfig.attributeValue": {
2013
1948
  "value": "Value of attribute",
2014
- "comment": "Label for selecting attribute value as drill target in configuration. Example in sentence: \"When I click on VALUE OF ATTRIBUTE 'Account', drill into detail.\"",
1949
+ "comment": "Hint guiding users how to understand interaction (drilling) setting. Example in sentence: \"When I click on VALUE OF ATTRIBUTE 'Account', drill into detail.\"",
2015
1950
  "limit": 0
2016
1951
  },
2017
1952
  "configurationPanel.drillConfig.selectTarget": {
2018
1953
  "value": "I want to",
2019
- "comment": "Middle part of the drill interaction configuration sentence",
1954
+ "comment": "",
2020
1955
  "limit": 0
2021
1956
  },
2022
1957
  "configurationPanel.drillConfig.clickHintItem": {
2023
1958
  "value": "When I click on <addon>(value of)</addon>",
2024
- "comment": "First part of drill interaction configuration with addon markup",
1959
+ "comment": "Do not translate <addon...> and </addon>, but translate (value of)",
2025
1960
  "limit": 0
2026
1961
  },
2027
1962
  "configurationPanel.drillConfig.drillIntoDashboard": {
2028
1963
  "value": "Drill into dashboard",
2029
- "comment": "Option for drilling into another dashboard in data interaction",
1964
+ "comment": "",
2030
1965
  "limit": 0
2031
1966
  },
2032
1967
  "configurationPanel.drillConfig.drillIntoInsight|insight": {
2033
1968
  "value": "Drill into visualization",
2034
- "comment": "Option for drilling into detailed visualization in data interaction",
1969
+ "comment": "",
2035
1970
  "limit": 0
2036
1971
  },
2037
1972
  "configurationPanel.drillConfig.drillIntoInsight|report": {
2038
1973
  "value": "Drill into report",
2039
- "comment": "Option for drilling into detailed report in data interaction",
1974
+ "comment": "",
2040
1975
  "translate": false,
2041
1976
  "limit": 0
2042
1977
  },
2043
1978
  "configurationPanel.drillConfig.drillDown": {
2044
1979
  "value": "Drill down",
2045
- "comment": "Option for navigating to next level of detail in data hierarchy",
1980
+ "comment": "Name of an option in dropdown that is used to select drill down type of dashboard drill.",
2046
1981
  "limit": 0
2047
1982
  },
2048
1983
  "configurationPanel.drillConfig.disableDrillDownTooltip": {
2049
1984
  "value": "Drill down is turned off in this visualization's configuration.",
2050
- "comment": "Tooltip explaining why drill down option is disabled",
1985
+ "comment": "The disable tooltip message for the Drill down item",
2051
1986
  "limit": 0
2052
1987
  },
2053
1988
  "configurationPanel.drillConfig.drillIntoUrl": {
2054
1989
  "value": "Drill into URL",
2055
- "comment": "Option for creating external URL link from data point",
1990
+ "comment": "Name of an option in dropdown that is used to select type of dashboard drill.",
2056
1991
  "limit": 0
2057
1992
  },
2058
1993
  "configurationPanel.drillConfig.drillIntoUrl.invalidCustomUrl": {
2059
1994
  "value": "Invalid URL parameters",
2060
- "comment": "Error message shown when URL drill target has invalid parameters",
1995
+ "comment": "Warning displayed in drill config when drill into URL has invalid parameters of custom URL.",
2061
1996
  "limit": 0
2062
1997
  },
2063
1998
  "configurationPanel.drillConfig.select": {
2064
1999
  "value": "Choose action…",
2065
- "comment": "Placeholder text in drill action dropdown menu",
2000
+ "comment": "Hint guiding users that drill actions in select box has to be selected. Use '…' as one character, not 3 dots ('...').",
2066
2001
  "limit": 0
2067
2002
  },
2068
2003
  "configurationPanel.drillConfig.drillIntoDashboard.dateFilterWarning|insight": {
2069
2004
  "value": "The date attribute value from the visualization will not be transferred to filter the target dashboard.",
2070
- "comment": "Warning about limitations when drilling with date attributes",
2005
+ "comment": "Warning displayed in drill config when drill into dashboard has date attribute as source or in intersection",
2071
2006
  "limit": 0
2072
2007
  },
2073
2008
  "configurationPanel.drillConfig.drillIntoDashboard.dateFilterWarning|report": {
2074
2009
  "value": "The date attribute value from the report will not be transferred to filter the target dashboard.",
2075
- "comment": "Warning about limitations when drilling with date attributes from reports",
2010
+ "comment": "Warning displayed in drill config when drill into dashboard has date attribute as source or in intersection",
2076
2011
  "translate": false,
2077
2012
  "limit": 0
2078
2013
  },
2079
2014
  "configurationPanel.drillConfig.drillIntersectionIgnoredAttributes.label": {
2080
2015
  "value": "Pass as filter:",
2081
- "comment": "Label for selecting which attributes to pass as filters during drill",
2016
+ "comment": "Label of the dropdown to select drill intersection ignored attributes.",
2082
2017
  "limit": 0
2083
2018
  },
2084
2019
  "configurationPanel.drillConfig.drillIntersectionIgnoredAttributes.dropdown.title": {
2085
2020
  "value": "Pass as filters",
2086
- "comment": "Title of the attribute filter selection dropdown",
2021
+ "comment": "Title of the dropdown to select drill intersection ignored attributes.",
2087
2022
  "limit": 0
2088
2023
  },
2089
2024
  "configurationPanel.drillConfig.drillIntersectionIgnoredAttributes.dropdown.tooltip": {
2090
2025
  "value": "Disable the attribute or date to exclude its value from being passed as a filter to the drill destination.",
2091
- "comment": "Tooltip explaining how to exclude attributes from drill filters",
2026
+ "comment": "Tooltip of the dropdown to select drill intersection ignored attributes.",
2092
2027
  "limit": 0
2093
2028
  },
2094
2029
  "configurationPanel.drillConfig.drillIntersectionIgnoredAttributes.dropdown.all": {
2095
2030
  "value": "All",
2096
- "comment": "Option to pass all attributes as filters during drill",
2031
+ "comment": "Title of the dropdown, when all values are selected and none attribute is ignored.",
2097
2032
  "limit": 0
2098
2033
  },
2099
2034
  "configurationPanel.drillConfig.drillIntersectionIgnoredAttributes.dropdown.none": {
2100
2035
  "value": "None",
2101
- "comment": "Option to not pass any attributes as filters during drill",
2036
+ "comment": "Title of the dropdown, when no values are selected and all attributes are ignored.",
2102
2037
  "limit": 0
2103
2038
  },
2104
2039
  "configurationPanel.visualprops.sectionTitle": {
2105
2040
  "value": "Title",
2106
- "comment": "Section header for widget title configuration",
2041
+ "comment": "",
2107
2042
  "limit": 0
2108
2043
  },
2109
2044
  "configurationPanel.visualprops.hideTitle": {
2110
2045
  "value": "Hide title",
2111
- "comment": "Checkbox label to hide widget title",
2046
+ "comment": "",
2112
2047
  "limit": 0
2113
2048
  },
2114
2049
  "configurationPanel.visualprops.sectionDescription": {
2115
2050
  "value": "Description",
2116
- "comment": "Section header for widget description configuration",
2051
+ "comment": "",
2117
2052
  "limit": 0
2118
2053
  },
2119
2054
  "configurationPanel.visualprops.inheritDescription": {
2120
2055
  "value": "Inherit",
2121
- "comment": "Option to use the original description from the source item",
2056
+ "comment": "",
2122
2057
  "limit": 0
2123
2058
  },
2124
2059
  "configurationPanel.visualprops.inheritDescriptionHelp|insight": {
2125
2060
  "value": "Inherit the description from the visualization.",
2126
- "comment": "Help text explaining the inherit description option for visualizations",
2061
+ "comment": "",
2127
2062
  "limit": 0
2128
2063
  },
2129
2064
  "configurationPanel.visualprops.inheritDescriptionHelp|report": {
2130
2065
  "value": "Inherit the description from the report.",
2131
- "comment": "Help text explaining the inherit description option for reports",
2066
+ "comment": "",
2132
2067
  "translate": false,
2133
2068
  "limit": 0
2134
2069
  },
2135
2070
  "configurationPanel.visualprops.customDescription": {
2136
2071
  "value": "Custom",
2137
- "comment": "Option to create a custom description rather than using default",
2072
+ "comment": "",
2138
2073
  "limit": 0
2139
2074
  },
2140
2075
  "configurationPanel.visualprops.customDescriptionHelp|insight": {
2141
2076
  "value": "Add a custom description for this instance of the visualization.",
2142
- "comment": "Help text explaining the custom description option for visualizations",
2077
+ "comment": "",
2143
2078
  "limit": 0
2144
2079
  },
2145
2080
  "configurationPanel.visualprops.customDescriptionHelp|report": {
2146
2081
  "value": "Add a custom description for this instance of the report.",
2147
- "comment": "Help text explaining the custom description option for reports",
2082
+ "comment": "",
2148
2083
  "translate": false,
2149
2084
  "limit": 0
2150
2085
  },
2151
2086
  "configurationPanel.visualprops.noneDescription": {
2152
2087
  "value": "None",
2153
- "comment": "Option to hide description completely",
2088
+ "comment": "",
2154
2089
  "limit": 0
2155
2090
  },
2156
2091
  "configurationPanel.visualprops.includeMetrics._measure": {
2157
2092
  "value": "Include measure descriptions",
2158
- "comment": "Checkbox label for option to show measure descriptions",
2093
+ "comment": "",
2159
2094
  "limit": 0
2160
2095
  },
2161
2096
  "configurationPanel.visualprops.includeMetrics._metric": {
2162
2097
  "value": "Include metric descriptions",
2163
- "comment": "Checkbox label for option to show metric descriptions",
2098
+ "comment": "",
2164
2099
  "limit": 0
2165
2100
  },
2166
2101
  "configurationPanel.visualprops.includeMetricsHelp._measure|insight": {
2167
2102
  "value": "Display section with list of visualization’s measures and their description.",
2168
- "comment": "Help text explaining the option to show measure descriptions in visualization",
2103
+ "comment": "",
2169
2104
  "limit": 0
2170
2105
  },
2171
2106
  "configurationPanel.visualprops.includeMetricsHelp._metric|insight": {
2172
2107
  "value": "Display section with list of visualization’s metrics and their description.",
2173
- "comment": "Help text explaining the option to show metric descriptions in visualization",
2108
+ "comment": "",
2174
2109
  "limit": 0
2175
2110
  },
2176
2111
  "configurationPanel.visualprops.includeMetricsHelp._measure|report": {
2177
2112
  "value": "Display section with list of report’s measures and their description.",
2178
- "comment": "Help text explaining the option to show measure descriptions in report",
2113
+ "comment": "",
2179
2114
  "translate": false,
2180
2115
  "limit": 0
2181
2116
  },
2182
2117
  "configurationPanel.visualprops.includeMetricsHelp._metric|report": {
2183
2118
  "value": "Display section with list of report’s metrics and their description.",
2184
- "comment": "Help text explaining the option to show metric descriptions in report",
2119
+ "comment": "",
2185
2120
  "translate": false,
2186
2121
  "limit": 0
2187
2122
  },
2188
2123
  "configurationPanel.visualprops.descriptionPlaceholder": {
2189
2124
  "value": "Add description…",
2190
- "comment": "Placeholder text in description input field",
2125
+ "comment": "",
2191
2126
  "limit": 0
2192
2127
  },
2193
2128
  "configurationPanel.drillIntoUrl.defaultButtonValue": {
2194
2129
  "value": "Choose URL",
2195
- "comment": "Default text in URL drill target selection dropdown",
2130
+ "comment": "Default value of 'Drill into URL' dropdown button before a value is selected.",
2196
2131
  "limit": 0
2197
2132
  },
2198
2133
  "configurationPanel.drillIntoUrl.attributeUrlSectionTitle": {
2199
2134
  "value": "Hyperlink in attribute label",
2200
- "comment": "Section title for attribute hyperlink configuration",
2135
+ "comment": "Title of 'Drill into URL' dropdown section.",
2201
2136
  "limit": 0
2202
2137
  },
2203
2138
  "configurationPanel.drillIntoUrl.customUrlSectionTitle": {
2204
2139
  "value": "Custom URL",
2205
- "comment": "Section title for custom URL configuration",
2140
+ "comment": "Title of 'Drill into URL' dropdown section.",
2206
2141
  "limit": 0
2207
2142
  },
2208
2143
  "configurationPanel.drillIntoUrl.editor.addUrlTitle": {
2209
2144
  "value": "Add custom URL",
2210
- "comment": "Dialog title when creating a new custom URL",
2145
+ "comment": "Title of Drill to URL 'Custom URL' editor when URL is not defined.",
2211
2146
  "limit": 0
2212
2147
  },
2213
2148
  "configurationPanel.drillIntoUrl.editor.editUrlTitle": {
2214
2149
  "value": "Edit custom URL",
2215
- "comment": "Dialog title when modifying an existing custom URL",
2150
+ "comment": "Title of Drill to URL 'Custom URL' editor when URL is defined.",
2216
2151
  "limit": 0
2217
2152
  },
2218
2153
  "configurationPanel.drillIntoUrl.editor.textAreaLabel": {
2219
2154
  "value": "URL",
2220
- "comment": "Label for URL input field in the URL editor",
2155
+ "comment": "Label of the textarea in Drill to URL 'Custom URL' editor.",
2221
2156
  "limit": 0
2222
2157
  },
2223
2158
  "configurationPanel.drillIntoUrl.editor.parametersPanelLabel": {
2224
2159
  "value": "Parameters",
2225
- "comment": "Section header for URL parameters configuration",
2160
+ "comment": "Label of the panel in Drill to URL 'Custom URL' editor.",
2226
2161
  "limit": 0
2227
2162
  },
2228
2163
  "configurationPanel.drillIntoUrl.editor.parametersPanelTooltip": {
2229
2164
  "value": "Parameters are placeholders that are replaced by dynamic values during drilling.",
2230
- "comment": "Tooltip explaining URL parameters functionality",
2165
+ "comment": "Tooltip displayed when user hovers over question mark icon next to label of the parameters panel in Drill to URL 'Custom URL' editor.",
2231
2166
  "limit": 0
2232
2167
  },
2233
2168
  "configurationPanel.drillIntoUrl.editor.addParameterButtonLabel": {
2234
2169
  "value": "Add",
2235
- "comment": "Button text for adding a new URL parameter",
2170
+ "comment": "Label of the button that adds a parameter to URL in Drill to URL 'Custom URL' editor.",
2236
2171
  "limit": 0
2237
2172
  },
2238
2173
  "configurationPanel.drillIntoUrl.editor.parameterDetailType": {
2239
2174
  "value": "Type",
2240
- "comment": "Label for parameter type selector in URL editor",
2175
+ "comment": "Title of type section in parameter detail in 'Custom URL' editor.",
2241
2176
  "limit": 0
2242
2177
  },
2243
2178
  "configurationPanel.drillIntoUrl.editor.parameterDetailLabel": {
2244
2179
  "value": "Label",
2245
- "comment": "Label for parameter name field in URL editor",
2180
+ "comment": "Title of label section in parameter detail in 'Custom URL' editor.",
2246
2181
  "limit": 0
2247
2182
  },
2248
2183
  "configurationPanel.drillIntoUrl.editor.parameterDetailValues": {
2249
2184
  "value": "{numberOfValues, plural, one {Value} other {Values}}",
2250
- "comment": "Title of values section in parameter detail in 'Custom URL' editor. Uses pluralization based on the number of values. Examples: When there is 1 value, it will show 'Value'. When there are multiple values, it will show 'Values'.",
2185
+ "comment": "Translate only uppercase words in '{numberOfValues, plural, one {VALUE} other {VALUES}}'. Title of values section in parameter detail in 'Custom URL' editor.",
2251
2186
  "limit": 0
2252
2187
  },
2253
2188
  "configurationPanel.drillIntoUrl.editor.parameterDetailMoreValues": {
2254
2189
  "value": "...and {count} more",
2255
- "comment": "Info about number of additional values not shown in parameter detail in 'Custom URL' editor. The placeholder {count} will be replaced with a number. Example: '...and 5 more' when there are 5 additional values not displayed.",
2190
+ "comment": "Translate only uppercase words In '...AND {count} MORE'. Info about number of other values not shown in parameter detail in 'Custom URL' editor.",
2256
2191
  "limit": 0
2257
2192
  },
2258
2193
  "configurationPanel.drillIntoUrl.editor.insightIdParameterLabel|insight": {
@@ -2298,68 +2233,68 @@
2298
2233
  },
2299
2234
  "configurationPanel.drillIntoUrl.editor.identifierTypeLabel": {
2300
2235
  "value": "Identifier",
2301
- "comment": "Type label of identifier in parameter detail",
2236
+ "comment": "Type label of identifier in parameter detail in 'Custom URL' editor.",
2302
2237
  "limit": 0
2303
2238
  },
2304
2239
  "configurationPanel.drillIntoUrl.editor.insightParametersSectionLabel|insight": {
2305
2240
  "value": "Visualization",
2306
- "comment": "Section header for insight parameters",
2241
+ "comment": "Label of the parameters section that contains attributes and measures in Drill to URL 'Custom URL' editor.",
2307
2242
  "limit": 0
2308
2243
  },
2309
2244
  "configurationPanel.drillIntoUrl.editor.insightParametersSectionLabel|report": {
2310
2245
  "value": "Report",
2311
- "comment": "Section header for report parameters",
2246
+ "comment": "Label of the parameters section that contains attributes and measures in Drill to URL 'Custom URL' editor.",
2312
2247
  "translate": false,
2313
2248
  "limit": 0
2314
2249
  },
2315
2250
  "configurationPanel.drillIntoUrl.editor.identifierParametersSectionLabel": {
2316
2251
  "value": "Identifiers",
2317
- "comment": "Section header for identifier parameters in URL drill editor",
2252
+ "comment": "Label of the parameters section that contains identifiers in Drill to URL 'Custom URL' editor.",
2318
2253
  "limit": 0
2319
2254
  },
2320
2255
  "configurationPanel.drillIntoUrl.editor.dashboardParametersSectionLabel": {
2321
2256
  "value": "Dashboard",
2322
- "comment": "Section header for dashboard filter parameters in URL drill editor",
2257
+ "comment": "Label of the parameters section that contains dashboard filters in Drill to URL 'Custom URL' editor.",
2323
2258
  "limit": 0
2324
2259
  },
2325
2260
  "configurationPanel.drillIntoUrl.editor.applyButtonLabel": {
2326
2261
  "value": "Apply",
2327
- "comment": "Button to confirm and save URL drill configuration",
2262
+ "comment": "Label of the button that applies changes in Drill to URL 'Custom URL' editor.",
2328
2263
  "limit": 0
2329
2264
  },
2330
2265
  "configurationPanel.drillIntoUrl.editor.cancelButtonLabel": {
2331
2266
  "value": "Cancel",
2332
- "comment": "Button to discard URL drill configuration changes",
2267
+ "comment": "Label of the button that cancels changes in Drill to URL 'Custom URL' editor.",
2333
2268
  "limit": 0
2334
2269
  },
2335
2270
  "configurationPanel.drillIntoUrl.editor.textAreaPlaceholder": {
2336
2271
  "value": "Enter URL and add parameters from the right panel.",
2337
- "comment": "Placeholder text in URL input field",
2272
+ "comment": "Placeholder of textarea in Drill to URL 'Custom URL' editor.",
2338
2273
  "limit": 0
2339
2274
  },
2340
2275
  "configurationPanel.drillIntoUrl.editor.helpButtonLabel": {
2341
2276
  "value": "How to create custom URLs?",
2342
- "comment": "Help link text for URL drill configuration",
2277
+ "comment": "Help button label in Drill to URL 'Custom URL' editor.",
2343
2278
  "limit": 0
2344
2279
  },
2345
2280
  "configurationPanel.drillIntoUrl.editor.invalidAttributeDisplayForms": {
2346
2281
  "value": "Invalid parameters: {invalidParameters}",
2347
- "comment": "Error message shown when URL contains invalid parameters",
2282
+ "comment": "Help button label in Drill to URL 'Custom URL' editor. Do not translate '{invalidParameters}' placeholder.",
2348
2283
  "limit": 0
2349
2284
  },
2350
2285
  "configurationPanel.drillIntoUrl.customUrlAddButtonLabel": {
2351
2286
  "value": "Add custom URL",
2352
- "comment": "Button to create a new custom URL for drilling",
2287
+ "comment": "Label of the button in 'Drill into URL' dropdown that is used for adding of the custom URL.",
2353
2288
  "limit": 0
2354
2289
  },
2355
2290
  "configurationPanel.drillIntoUrl.customUrlEditButtonLabel": {
2356
2291
  "value": "Edit custom URL",
2357
- "comment": "Button to modify an existing custom URL",
2292
+ "comment": "Label of the button in 'Drill into URL' dropdown that is used for editing of the custom URL.",
2358
2293
  "limit": 0
2359
2294
  },
2360
2295
  "configurationPanel.drillIntoUrl.editor.defaultDisplayFormTypeLabel": {
2361
2296
  "value": "Attribute label value",
2362
- "comment": "Display type option for showing attribute labels in URL parameters",
2297
+ "comment": "Type label of default display form in parameter detail in 'Custom URL' editor.",
2363
2298
  "limit": 0
2364
2299
  },
2365
2300
  "configurationPanel.drillIntoUrl.editor.geoDisplayFormTypeLabel": {
@@ -2379,160 +2314,160 @@
2379
2314
  },
2380
2315
  "configurationPanel.zoomInsight|insight": {
2381
2316
  "value": "Zoomable visualization",
2382
- "comment": "Label for zoomable visualization option in configuration panel",
2317
+ "comment": "",
2383
2318
  "limit": 0
2384
2319
  },
2385
2320
  "configurationPanel.zoomInsight|report": {
2386
2321
  "value": "Zoomable report",
2387
- "comment": "Label for zoomable report option in configuration panel",
2322
+ "comment": "",
2388
2323
  "translate": false,
2389
2324
  "limit": 0
2390
2325
  },
2391
2326
  "configurationPanel.zoomInsight.help|insight": {
2392
2327
  "value": "Enable to zoom the visualization to display a detailed view. Hold the shift key to pan the zoomed area.",
2393
- "comment": "Tooltip for zoomable visualization option in configuration panel",
2328
+ "comment": "",
2394
2329
  "limit": 0
2395
2330
  },
2396
2331
  "configurationPanel.zoomInsight.help|report": {
2397
2332
  "value": "Enable to zoom the report to display a detailed view. Hold the shift key to pan the zoomed area.",
2398
- "comment": "Tooltip for zoomable report option in configuration panel",
2333
+ "comment": "",
2399
2334
  "translate": false,
2400
2335
  "limit": 0
2401
2336
  },
2402
2337
  "configurationPanel.zoomInsight.notice": {
2403
2338
  "value": "Zoom will not be applied to exported dashboards",
2404
- "comment": "Notice about zoom limitations in exported dashboard content",
2339
+ "comment": "",
2405
2340
  "limit": 0
2406
2341
  },
2407
2342
  "configurationPanel.drillConfig.selectInsight|insight": {
2408
2343
  "value": "Choose visualization…",
2409
- "comment": "Placeholder text in dropdown for selecting drill target visualization",
2344
+ "comment": "Hint guiding users that drill target visualization in select box has to be selected. Use '…' as one character, not 3 dots ('...').",
2410
2345
  "limit": 0
2411
2346
  },
2412
2347
  "configurationPanel.drillConfig.selectInsight|report": {
2413
2348
  "value": "Choose report…",
2414
- "comment": "Hint guiding users that drill target report in select box has to be selected.",
2349
+ "comment": "Hint guiding users that drill target report in select box has to be selected. Use '…' as one character, not 3 dots ('...').",
2415
2350
  "translate": false,
2416
2351
  "limit": 0
2417
2352
  },
2418
2353
  "gs.date.date-dataset.recommended": {
2419
2354
  "value": "Recommended",
2420
- "comment": "Label for recommended date datasets section",
2355
+ "comment": "",
2421
2356
  "limit": 0
2422
2357
  },
2423
2358
  "gs.date.date-dataset.other": {
2424
2359
  "value": "Other",
2425
- "comment": "Label for section containing additional date datasets",
2360
+ "comment": "",
2426
2361
  "limit": 0
2427
2362
  },
2428
2363
  "gs.date.date-dataset.related": {
2429
2364
  "value": "Related",
2430
- "comment": "Label for section containing related date datasets",
2365
+ "comment": "",
2431
2366
  "limit": 0
2432
2367
  },
2433
2368
  "gs.date.date-dataset.unrelated": {
2434
2369
  "value": "Unrelated",
2435
- "comment": "Label for section containing unrelated date datasets",
2370
+ "comment": "",
2436
2371
  "limit": 0
2437
2372
  },
2438
2373
  "gs.date.date-dataset.unrelated_hidden": {
2439
2374
  "value": "{count} unrelated {count, plural, one {date} other {dates}} {isShow, select, true {visible} other {hidden}}.",
2440
- "comment": "Status message showing count of unrelated dates that are visible or hidden",
2375
+ "comment": "Don't translate placeholder '{count}'. In '{count, plural, one {DATE} other {DATES}} and {isShow, select, true {VISIBLE} other {HIDDEN}}' translate only uppercase words.",
2441
2376
  "limit": 0
2442
2377
  },
2443
2378
  "gs.date.date-dataset.unrelated.show": {
2444
2379
  "value": "Show",
2445
- "comment": "Button to display unrelated date items",
2380
+ "comment": "The unrelated items button",
2446
2381
  "limit": 0
2447
2382
  },
2448
2383
  "gs.date.date-dataset.unrelated.hide": {
2449
2384
  "value": "Hide",
2450
- "comment": "Button to hide unrelated date items",
2385
+ "comment": "The unrelated items button",
2451
2386
  "limit": 0
2452
2387
  },
2453
2388
  "gs.date.date-dataset.duplicityWarning": {
2454
2389
  "value": "Another filter is using the same date dataset. Disable this filter or set a different date.",
2455
- "comment": "Warning shown when multiple filters are using the same date dataset",
2390
+ "comment": "",
2456
2391
  "limit": 0
2457
2392
  },
2458
2393
  "layout.widget.width.min": {
2459
2394
  "value": "Widget is at the minimal width",
2460
- "comment": "Warning shown when widget cannot be resized smaller",
2395
+ "comment": "Shown as red text inside of widget if resized under min limit.",
2461
2396
  "limit": 0
2462
2397
  },
2463
2398
  "layout.widget.width.max": {
2464
2399
  "value": "Widget is at the maximal width",
2465
- "comment": "Warning shown when widget cannot be resized wider",
2400
+ "comment": "Shown as red text inside of widget if resized under max limit.",
2466
2401
  "limit": 0
2467
2402
  },
2468
2403
  "layout.widget.height.min": {
2469
2404
  "value": "Widget is at the minimal height",
2470
- "comment": "Warning shown when widget cannot be resized shorter",
2405
+ "comment": "Shown as red text inside of widget if resized under min limit.",
2471
2406
  "limit": 0
2472
2407
  },
2473
2408
  "layout.widget.height.max": {
2474
2409
  "value": "Widget is at the maximal height",
2475
- "comment": "Warning shown when widget cannot be resized taller",
2410
+ "comment": "Shown as red text inside of widget if resized under max limit.",
2476
2411
  "limit": 0
2477
2412
  },
2478
2413
  "layout.widget.addedByPlugin": {
2479
2414
  "value": "Added by plugin",
2480
- "comment": "Indicator that widget was added by a plugin extension",
2415
+ "comment": "",
2481
2416
  "limit": 0
2482
2417
  },
2483
2418
  "layout.widget.modifiedByPlugin": {
2484
2419
  "value": "Modified by plugin",
2485
- "comment": "Indicator that widget was modified by a plugin extension",
2420
+ "comment": "",
2486
2421
  "limit": 0
2487
2422
  },
2488
2423
  "layout.widget.hideOverlay": {
2489
2424
  "value": "Hide overlay",
2490
- "comment": "Button to hide informational overlay on widget",
2425
+ "comment": "",
2491
2426
  "limit": 0
2492
2427
  },
2493
2428
  "dropzone.new.row.desc": {
2494
2429
  "value": "Drop to create a{nbsp}<b>new section</b>",
2495
- "comment": "Instruction shown when dragging a widget to create a new dashboard section",
2430
+ "comment": "Used as placeholder when user drags some widget and tries to drop it on dashboard. Dropping the widget over such placeholder creates new section of a dashboard. Do not translate HTML markup enclosed in <>. Translate words 'new section'.",
2496
2431
  "limit": 0
2497
2432
  },
2498
2433
  "dropzone.widget.desc": {
2499
2434
  "value": "Drop <b>here</b>",
2500
- "comment": "Instruction shown in highlighted dropzone when dragging a widget",
2435
+ "comment": "Do not translate HTML markup enclosed in <>. Translate word 'here'.",
2501
2436
  "limit": 0
2502
2437
  },
2503
2438
  "dropzone.widget.last.in.row.desc": {
2504
2439
  "value": "Drop to the <b>existing section</b>",
2505
- "comment": "Instruction shown when dragging a widget to add to an existing dashboard section",
2440
+ "comment": "Used as placeholder when user drags some widget and tries to drop it on dashboard. Dropping the widget over such placeholder will cause adding the widget to an existing section of a dashboard. Do not translate HTML markup enclosed in <>. Translate words 'existing section'.",
2506
2441
  "limit": 0
2507
2442
  },
2508
2443
  "dropzone.widget.last.in.container.row.desc": {
2509
2444
  "value": "Drop to the <b>existing container</b>",
2510
- "comment": "Instruction shown when dragging a widget to add to an existing container",
2445
+ "comment": "Used as placeholder when user drags some widget and tries to drop it on dashboard. Dropping the widget over such placeholder will cause adding the widget to an existing container of a dashboard. Do not translate HTML markup enclosed in <>. Translate words 'existing container'.",
2511
2446
  "limit": 0
2512
2447
  },
2513
2448
  "deleteKpiConfirmationDialog.headline": {
2514
2449
  "value": "Delete KPI",
2515
- "comment": "Confirmation dialog title when deleting a KPI widget",
2450
+ "comment": "",
2516
2451
  "limit": 0
2517
2452
  },
2518
2453
  "deleteKpiConfirmationDialog.message": {
2519
2454
  "value": "All alerts set up for this KPI will also be deleted.",
2520
- "comment": "Warning message about alerts being deleted when removing a KPI widget",
2455
+ "comment": "",
2521
2456
  "limit": 0
2522
2457
  },
2523
2458
  "deleteKpiConfirmationDialog.submitButtonText": {
2524
2459
  "value": "Delete",
2525
- "comment": "Button label to confirm KPI deletion",
2460
+ "comment": "",
2526
2461
  "limit": 0
2527
2462
  },
2528
2463
  "newDashboard.title|insight": {
2529
2464
  "value": "Drag visualization here",
2530
- "comment": "Instruction shown on empty dashboard prompting to add visualizations",
2465
+ "comment": "",
2531
2466
  "limit": 0
2532
2467
  },
2533
2468
  "newDashboard.title|report": {
2534
2469
  "value": "Drag report here",
2535
- "comment": "Instruction shown on empty dashboard prompting to add reports",
2470
+ "comment": "",
2536
2471
  "translate": false,
2537
2472
  "limit": 0
2538
2473
  },
@@ -2549,7 +2484,7 @@
2549
2484
  },
2550
2485
  "attributesDropdown.filterConfiguredMessage": {
2551
2486
  "value": "<strong>{parentTitle}</strong> is already filtered by <strong>{childTitle}</strong> filter directly or through other filters.",
2552
- "comment": "Message explaining filter configuration status. The <strong> tags emphasize attribute names, and {parentTitle}/{childTitle} show the specific filter names.",
2487
+ "comment": "Do not translate HTML markup enclosed in <> and placeholders enclosed in {}.",
2553
2488
  "limit": 0
2554
2489
  },
2555
2490
  "attributesDropdown.attributeNameWithData": {
@@ -2594,7 +2529,7 @@
2594
2529
  },
2595
2530
  "dateFilterDropdown.title": {
2596
2531
  "value": "Date range",
2597
- "comment": "Header for date filter dropdown selector",
2532
+ "comment": "",
2598
2533
  "limit": 0
2599
2534
  },
2600
2535
  "filter.configuration.mode.title": {
@@ -2634,12 +2569,12 @@
2634
2569
  },
2635
2570
  "filter.dependency.icon.tooltip": {
2636
2571
  "value": "Values for <strong>{filterTitle}</strong> are filtered by selection in another filter.",
2637
- "comment": "Tooltip explaining that filter values are affected by another filter selection",
2572
+ "comment": "Do not translate HTML markup enclosed in <> and placeholders enclosed in {}.",
2638
2573
  "limit": 0
2639
2574
  },
2640
2575
  "configurationPanel.drillConfig.alreadyUsedTooltip": {
2641
2576
  "value": "This <strong>hierarchy</strong> is already used for <strong>the same</strong> drill down.",
2642
- "comment": "Warning tooltip when attempting to use an already selected hierarchy for drill down",
2577
+ "comment": "Tooltip displayed when hierarchy object cannot be used again for drill down functionality.",
2643
2578
  "limit": 0
2644
2579
  },
2645
2580
  "configurationPanel.respectCrossFiltering": {
@@ -2654,142 +2589,142 @@
2654
2589
  },
2655
2590
  "richText.formattingOptions": {
2656
2591
  "value": "Formatting options",
2657
- "comment": "Label for rich text formatting toolbar options",
2592
+ "comment": "",
2658
2593
  "limit": 0
2659
2594
  },
2660
2595
  "richText.deleteDialog.header": {
2661
2596
  "value": "Delete rich text?",
2662
- "comment": "Title of confirmation dialog when deleting a rich text component",
2597
+ "comment": "",
2663
2598
  "limit": 0
2664
2599
  },
2665
2600
  "richText.deleteDialog.message": {
2666
2601
  "value": "The rich text and all of its content will be irreversibly deleted.",
2667
- "comment": "Warning message when deleting a rich text component",
2602
+ "comment": "",
2668
2603
  "limit": 0
2669
2604
  },
2670
2605
  "richText.emptyContent": {
2671
2606
  "value": "No rich text content",
2672
- "comment": "Message shown when rich text component has no content",
2607
+ "comment": "",
2673
2608
  "limit": 0
2674
2609
  },
2675
2610
  "visualizationSwitcher.emptyContent": {
2676
2611
  "value": "No visualization in switcher",
2677
- "comment": "Message shown when visualization switcher has no visualizations",
2612
+ "comment": "",
2678
2613
  "limit": 0
2679
2614
  },
2680
2615
  "visualizationSwitcherToolbar.visualizationsList.header": {
2681
2616
  "value": "Visualizations",
2682
- "comment": "Title of visualizations list in the switcher toolbar",
2617
+ "comment": "",
2683
2618
  "limit": 0
2684
2619
  },
2685
2620
  "visualizationSwitcherToolbar.visualizationsList.tooltip": {
2686
2621
  "value": "Visualizations",
2687
- "comment": "Tooltip shown when hovering over the visualizations list button",
2622
+ "comment": "",
2688
2623
  "limit": 0
2689
2624
  },
2690
2625
  "visualizationSwitcherToolbar.visualizationsList.prev": {
2691
2626
  "value": "Previous",
2692
- "comment": "Button label to show previous visualization in switcher",
2627
+ "comment": "",
2693
2628
  "limit": 0
2694
2629
  },
2695
2630
  "visualizationSwitcherToolbar.visualizationsList.next": {
2696
2631
  "value": "Next",
2697
- "comment": "Button label to show next visualization in switcher",
2632
+ "comment": "",
2698
2633
  "limit": 0
2699
2634
  },
2700
2635
  "visualizationSwitcherToolbar.visualizationsList.empty": {
2701
2636
  "value": "No visualization in switcher, add one to continue.",
2702
- "comment": "Message shown when no visualizations are available in the switcher",
2637
+ "comment": "",
2703
2638
  "limit": 0
2704
2639
  },
2705
2640
  "visualizationSwitcherToolbar.visualizationsList.add": {
2706
2641
  "value": "Add visualization",
2707
- "comment": "Button label to add a new visualization to the switcher",
2642
+ "comment": "",
2708
2643
  "limit": 0
2709
2644
  },
2710
2645
  "visualizationSwitcherToolbar.remove": {
2711
2646
  "value": "Remove switcher",
2712
- "comment": "Button label to remove the visualization switcher",
2647
+ "comment": "",
2713
2648
  "limit": 0
2714
2649
  },
2715
2650
  "visualizationSwitcher.configurationPanel.remove.from.switcher": {
2716
2651
  "value": "Remove from switcher",
2717
- "comment": "Button label to remove a visualization from the switcher",
2652
+ "comment": "",
2718
2653
  "limit": 0
2719
2654
  },
2720
2655
  "visualizationSwitcher.list.menu.move.up": {
2721
2656
  "value": "Move up",
2722
- "comment": "Menu option to move visualization up in the list of switcher",
2657
+ "comment": "",
2723
2658
  "limit": 0
2724
2659
  },
2725
2660
  "visualizationSwitcher.list.menu.move.down": {
2726
2661
  "value": "Move down",
2727
- "comment": "Menu option to move visualization down in the list of switcher",
2662
+ "comment": "",
2728
2663
  "limit": 0
2729
2664
  },
2730
2665
  "visualizationSwitcher.list.menu.remove": {
2731
2666
  "value": "Remove",
2732
- "comment": "Menu option to remove visualization from the switcher list",
2667
+ "comment": "",
2733
2668
  "limit": 0
2734
2669
  },
2735
2670
  "nestedLayoutToolbar.hideHeader": {
2736
2671
  "value": "Hide title and description.",
2737
- "comment": "Button tooltip for hiding container title and description",
2672
+ "comment": "",
2738
2673
  "limit": 0
2739
2674
  },
2740
2675
  "nestedLayoutToolbar.showHeader": {
2741
2676
  "value": "Show title and description.",
2742
- "comment": "Button tooltip for showing container title and description",
2677
+ "comment": "",
2743
2678
  "limit": 0
2744
2679
  },
2745
2680
  "nestedLayoutToolbar.remove": {
2746
2681
  "value": "Remove from dashboard.",
2747
- "comment": "Button tooltip for removing container from dashboard",
2682
+ "comment": "",
2748
2683
  "limit": 0
2749
2684
  },
2750
2685
  "nestedLayoutToolbar.direction.title": {
2751
2686
  "value": "Layout direction",
2752
- "comment": "Title for the layout direction selector in the nested layout toolbar",
2687
+ "comment": "",
2753
2688
  "limit": 0
2754
2689
  },
2755
2690
  "nestedLayoutToolbar.direction.row": {
2756
- "value": "Wrapped Row",
2757
- "comment": "Option for horizontal layout direction with wrapping in the nested layout toolbar",
2691
+ "value": "Horizontal with wrap",
2692
+ "comment": "",
2758
2693
  "limit": 0
2759
2694
  },
2760
2695
  "nestedLayoutToolbar.direction.row.tooltip": {
2761
- "value": "Layout direction: Wrapped Row",
2762
- "comment": "Tooltip explaining the wrapped row layout direction option",
2696
+ "value": "Horizontal layout with wrap.",
2697
+ "comment": "",
2763
2698
  "limit": 0
2764
2699
  },
2765
2700
  "nestedLayoutToolbar.direction.column": {
2766
- "value": "Column",
2767
- "comment": "Option for vertical layout direction in the nested layout toolbar",
2701
+ "value": "Vertical",
2702
+ "comment": "",
2768
2703
  "limit": 0
2769
2704
  },
2770
2705
  "nestedLayoutToolbar.direction.column.tooltip": {
2771
- "value": "Layout direction: Column",
2772
- "comment": "Tooltip explaining the column layout direction option",
2706
+ "value": "Vertical layout.",
2707
+ "comment": "",
2773
2708
  "limit": 0
2774
2709
  },
2775
2710
  "nestedLayoutToolbar.direction.column.disabledTooltip": {
2776
2711
  "value": "Direction cannot be changed to a vertical if the container contains nested containers with a horizontal direction.",
2777
- "comment": "Tooltip explaining why vertical layout option is disabled in certain scenarios",
2712
+ "comment": "",
2778
2713
  "limit": 0
2779
2714
  },
2780
2715
  "nestedLayout.tab.title": {
2781
2716
  "value": "Container",
2782
- "comment": "Tab title for container configuration panel",
2717
+ "comment": "",
2783
2718
  "limit": 0
2784
2719
  },
2785
2720
  "nestedLayout.emptyDropZone.message": {
2786
2721
  "value": "<b>Drag here</b>{br}to add to the container",
2787
- "comment": "Message shown in empty container drop zone",
2722
+ "comment": "<b>, </b> and {br} are HTML tags. Do not translate them.",
2788
2723
  "limit": 0
2789
2724
  },
2790
2725
  "nestedLayout.emptyDropZone.active.message": {
2791
2726
  "value": "<b>Drop here</b>{br}to add to the container",
2792
- "comment": "Message shown when dragging an item over empty container",
2727
+ "comment": "<b>, </b> and {br} are HTML tags. Do not translate them.",
2793
2728
  "limit": 0
2794
2729
  },
2795
2730
  "attributesDropdown.valuesLimiting.title": {
@@ -2824,17 +2759,17 @@
2824
2759
  },
2825
2760
  "attributesDropdown.valuesLimiting.searchPlaceholder": {
2826
2761
  "value": "Search…",
2827
- "comment": "Search field placeholder in the attribute values filter selection",
2762
+ "comment": "Placeholder in a search field. Use '…' as one character, not 3 dots ('...').",
2828
2763
  "limit": 0
2829
2764
  },
2830
2765
  "attributesDropdown.valuesLimiting.sumFact": {
2831
2766
  "value": "Sum of {fact}",
2832
- "comment": "Label for sum aggregation of a fact in metric selection dropdown",
2767
+ "comment": "List item that represents filtering metric which is a sum aggregation of particular data fact. Do not translate placeholder {fact}. It will be replaced with the name of the selected fact in the runtime.",
2833
2768
  "limit": 0
2834
2769
  },
2835
2770
  "attributesDropdown.valuesLimiting.countAttribute": {
2836
2771
  "value": "Count of {attribute}",
2837
- "comment": "Label for count aggregation of an attribute in metric selection dropdown",
2772
+ "comment": "List item that represents filtering metric which is a sum aggregation of particular data attribute. Do not translate placeholder {attribute}. It will be replaced with the name of the selected attribute in the runtime.",
2838
2773
  "limit": 0
2839
2774
  },
2840
2775
  "attributesDropdown.valuesLimiting.metricsEmpty": {
@@ -2874,27 +2809,27 @@
2874
2809
  },
2875
2810
  "attributesDropdown.valuesLimiting.addLimitingItem.description": {
2876
2811
  "value": "Use a metric to hide irrelevant values. Only values with non-null results for the metric are shown. <a>Learn more</a>",
2877
- "comment": "Description of using metrics to filter attribute values, with a learn more link",
2812
+ "comment": "Description of section that describe the action user can choose. The action selects an existing dashboard filter to be used as a validation items to hide attribute filter elements. Do not translate <a> and </a> placeholders. They will be replaced with HTML tags in the runtime.",
2878
2813
  "limit": 0
2879
2814
  },
2880
2815
  "attributesDropdown.valuesLimiting.commonDateFilterTitle": {
2881
2816
  "value": "{dateFilterTitle} as {dataSetTitle}",
2882
- "comment": "Format for displaying a date filter and its dataset in the filter selection",
2817
+ "comment": "Do not translate variables enclosed in {}.",
2883
2818
  "limit": 0
2884
2819
  },
2885
2820
  "attributesDropdown.valuesLimiting.addDateTitle": {
2886
2821
  "value": "Choose date",
2887
- "comment": "Dialog title for selecting date filters to limit attribute values",
2822
+ "comment": "Title of popup with selection of date filters will available date datasets values.",
2888
2823
  "limit": 0
2889
2824
  },
2890
2825
  "attributesDropdown.valuesLimiting.disableDateFilter": {
2891
2826
  "value": "Filter not available: The <strong>{dateFilterTitle}</strong> filter is already using this date dataset.",
2892
- "comment": "Error message shown when a date filter is already in use elsewhere",
2827
+ "comment": "Do not translate variable enclosed in {}.",
2893
2828
  "limit": 0
2894
2829
  },
2895
2830
  "attributesDropdown.valuesLimiting.disableDataSet": {
2896
2831
  "value": "Date dataset not available: The <strong>{dateFilterTitle}</strong> filter is already using this date dataset.",
2897
- "comment": "Error message shown when a date dataset is already in use by another filter",
2832
+ "comment": "Do not translate variable enclosed in {}.",
2898
2833
  "limit": 0
2899
2834
  },
2900
2835
  "filters.filterViews.dropdown.buttonEmpty": {
@@ -2904,7 +2839,7 @@
2904
2839
  },
2905
2840
  "filters.filterViews.dropdown.button": {
2906
2841
  "value": "My views ({count})",
2907
- "comment": "Dropdown button label showing number of saved filter views",
2842
+ "comment": "Title of the dropdown button that opens list of filter views (saved values) saved by the user. Do not translate {count} placeholder.",
2908
2843
  "limit": 0
2909
2844
  },
2910
2845
  "filters.filterViews.dropdown.title": {
@@ -2929,7 +2864,7 @@
2929
2864
  },
2930
2865
  "filters.filterViews.dropdown.tooltip": {
2931
2866
  "value": "<p>Views are saved sets of filters that let you quickly return to a specific filter state.</p><p>If you set a view as the default, it will apply automatically every time you open the dashboard.</p>",
2932
- "comment": "Tooltip explaining the purpose and behavior of saved filter views",
2867
+ "comment": "Tooltip of saved views dropdown. Do not translate <p> and </p> tags.",
2933
2868
  "limit": 0
2934
2869
  },
2935
2870
  "filters.filterViews.dropdown.newButton": {
@@ -3039,7 +2974,7 @@
3039
2974
  },
3040
2975
  "filters.filterViews.delete.body": {
3041
2976
  "value": "Your view <b>{view}</b> will be permanently deleted.",
3042
- "comment": "Confirmation dialog for deleting a filter view. The <b> tags emphasize the view name, and {view} placeholder shows the specific filter view being deleted.",
2977
+ "comment": "The text shown in the body of the dialog that confirms deletion of the filter view entity. Do not translate tags <b> and </b> and placeholder {view} that will be replaced with the name of the deleted filter view in the runtime.",
3043
2978
  "limit": 0
3044
2979
  },
3045
2980
  "filters.filterViews.delete.deleteButton": {
@@ -3094,52 +3029,52 @@
3094
3029
  },
3095
3030
  "insightAlert.config.changeOperator.header": {
3096
3031
  "value": "CHANGE %",
3097
- "comment": "Header label for the percentage change operator in alert configuration",
3032
+ "comment": "",
3098
3033
  "limit": 0
3099
3034
  },
3100
3035
  "insightAlert.config.changeOperator.header.info": {
3101
3036
  "value": "Change{spacer}Calculates the relative change between primary (current time period) and secondary (previous time period) metric values.{spacer}FORMULA{spacer}(Primary - Secondary) / Secondary",
3102
- "comment": "Description and formula for the percentage change calculation in alert configuration. {spacer} is a placeholder for line breaks.",
3037
+ "comment": "",
3103
3038
  "limit": 0
3104
3039
  },
3105
3040
  "insightAlert.config.differenceOperator.header": {
3106
3041
  "value": "DIFFERENCE #",
3107
- "comment": "Header label for the numeric difference operator in alert configuration",
3042
+ "comment": "",
3108
3043
  "limit": 0
3109
3044
  },
3110
3045
  "insightAlert.config.differenceOperator.header.info": {
3111
3046
  "value": "Difference{spacer}Calculates the net difference between primary (current time period) and secondary (previous time period) metric values.{spacer}FORMULA{spacer}Primary - Secondary",
3112
- "comment": "Description and formula for the numeric difference calculation in alert configuration. {spacer} is a placeholder for line breaks.",
3047
+ "comment": "",
3113
3048
  "limit": 0
3114
3049
  },
3115
3050
  "insightAlert.config.changeOperator.increasesBy": {
3116
3051
  "value": "Increases by",
3117
- "comment": "Alert condition for when a metric's percentage change increases by a specified amount",
3052
+ "comment": "",
3118
3053
  "limit": 0
3119
3054
  },
3120
3055
  "insightAlert.config.changeOperator.decreasesBy": {
3121
3056
  "value": "Decreases by",
3122
- "comment": "Alert condition for when a metric's percentage change decreases by a specified amount",
3057
+ "comment": "",
3123
3058
  "limit": 0
3124
3059
  },
3125
3060
  "insightAlert.config.changeOperator.changesBy": {
3126
3061
  "value": "Changes by",
3127
- "comment": "Alert condition for when a metric's percentage change (either increase or decrease) exceeds a specified amount",
3062
+ "comment": "",
3128
3063
  "limit": 0
3129
3064
  },
3130
3065
  "insightAlert.config.differenceOperator.increasesBy": {
3131
3066
  "value": "Increases by",
3132
- "comment": "Alert condition for when a metric's numeric value increases by a specified amount",
3067
+ "comment": "",
3133
3068
  "limit": 0
3134
3069
  },
3135
3070
  "insightAlert.config.differenceOperator.decreasesBy": {
3136
3071
  "value": "Decreases by",
3137
- "comment": "Alert condition for when a metric's numeric value decreases by a specified amount",
3072
+ "comment": "",
3138
3073
  "limit": 0
3139
3074
  },
3140
3075
  "insightAlert.config.differenceOperator.changesBy": {
3141
3076
  "value": "Changes by",
3142
- "comment": "Alert condition for when a metric's numeric value changes (either increases or decreases) by a specified amount",
3077
+ "comment": "",
3143
3078
  "limit": 0
3144
3079
  },
3145
3080
  "insightAlert.config.alerts": {
@@ -3159,12 +3094,12 @@
3159
3094
  },
3160
3095
  "insightAlert.config.noAlertMeasures.title": {
3161
3096
  "value": "No metrics available for alerting.",
3162
- "comment": "Message shown when a visualization has no metrics that can be used for alert configuration",
3097
+ "comment": "",
3163
3098
  "limit": 0
3164
3099
  },
3165
3100
  "insightAlert.config.noAlertMeasures.description": {
3166
3101
  "value": "Please add a metric to enable alerting.",
3167
- "comment": "Instruction shown when alerts cannot be created due to missing metrics",
3102
+ "comment": "",
3168
3103
  "limit": 0
3169
3104
  },
3170
3105
  "insightAlert.config.createAlert": {
@@ -3249,7 +3184,7 @@
3249
3184
  },
3250
3185
  "insightAlert.config.filters": {
3251
3186
  "value": "using {n} {n, plural, one {filter} other {filters}}",
3252
- "comment": "Text showing how many filters are being used in an alert configuration. The placeholder {n} will be replaced with a number and the word 'filter' will be pluralized accordingly. Examples: 'using 1 filter', 'using 3 filters'.",
3187
+ "comment": "In 'USING {n} {n, plural, one {FILTER} other {FILTERS}}' translate only uppercase word.",
3253
3188
  "limit": 0
3254
3189
  },
3255
3190
  "insightAlert.config.and": {
@@ -3264,107 +3199,107 @@
3264
3199
  },
3265
3200
  "insightAlert.config.filters.info": {
3266
3201
  "value": "Alerts respect the dashboard filters as set at the time of their creation.{spacer}To modify the time period used for comparison, adjust the date filter.",
3267
- "comment": "Alerts configuration info message",
3202
+ "comment": "",
3268
3203
  "limit": 0
3269
3204
  },
3270
3205
  "insightAlert.config.compare_with_sp": {
3271
3206
  "value": "same period previous year",
3272
- "comment": "Comparison option for alerts to compare with the same period in the previous year",
3207
+ "comment": "",
3273
3208
  "limit": 0
3274
3209
  },
3275
3210
  "insightAlert.config.compare_with_pp": {
3276
3211
  "value": "previous period",
3277
- "comment": "Comparison option for alerts to compare with the immediately preceding time period",
3212
+ "comment": "",
3278
3213
  "limit": 0
3279
3214
  },
3280
3215
  "insightAlert.config.compare_with_sp_granularity": {
3281
3216
  "value": "same {period} previous year",
3282
- "comment": "Comparison option with dynamic time period. The {period} placeholder shows the specific time comparison (e.g., 'same month previous year').",
3217
+ "comment": "Do not translate placeholder {period}. It will be replaced with the name of the selected period in the runtime.",
3283
3218
  "limit": 0
3284
3219
  },
3285
3220
  "insightAlert.config.compare_with_pp_granularity": {
3286
3221
  "value": "previous {period}",
3287
- "comment": "Comparison option with dynamic time period. The {period} placeholder shows the specific time comparison (e.g., 'previous month').",
3222
+ "comment": "Do not translate placeholder {period}. It will be replaced with the name of the selected period in the runtime.",
3288
3223
  "limit": 0
3289
3224
  },
3290
3225
  "insightAlert.config.addAlert": {
3291
3226
  "value": "Add alert",
3292
- "comment": "Button label for creating a new alert on a visualization",
3227
+ "comment": "Action to create new alert",
3293
3228
  "limit": 0
3294
3229
  },
3295
3230
  "insightAlert.config.triggerMode.always": {
3296
3231
  "value": "Every time",
3297
- "comment": "Alert trigger option to send notification every time the condition is met",
3232
+ "comment": "How many times alert should be triggered",
3298
3233
  "limit": 0
3299
3234
  },
3300
3235
  "insightAlert.config.triggerMode.once": {
3301
3236
  "value": "Once, then pause",
3302
- "comment": "Alert trigger option to send notification only once when condition is met, then automatically pause",
3237
+ "comment": "How many times alert should be triggered",
3303
3238
  "limit": 0
3304
3239
  },
3305
3240
  "insightAlert.config.delete.success": {
3306
3241
  "value": "Success. The alert has been deleted.",
3307
- "comment": "Success notification shown after deleting an alert",
3242
+ "comment": "Alert action success message",
3308
3243
  "limit": 0
3309
3244
  },
3310
3245
  "insightAlert.config.resume.success": {
3311
3246
  "value": "Success. The alert has been resumed.",
3312
- "comment": "Success notification shown after resuming a paused alert",
3247
+ "comment": "Alert action success message",
3313
3248
  "limit": 0
3314
3249
  },
3315
3250
  "insightAlert.config.pause.success": {
3316
3251
  "value": "Success. The alert has been paused.",
3317
- "comment": "Success notification shown after pausing an active alert",
3252
+ "comment": "Alert action success message",
3318
3253
  "limit": 0
3319
3254
  },
3320
3255
  "insightAlert.config.update.success": {
3321
3256
  "value": "Success. The alert has been updated.",
3322
- "comment": "Success notification shown after modifying an existing alert",
3257
+ "comment": "Alert action success message",
3323
3258
  "limit": 0
3324
3259
  },
3325
3260
  "insightAlert.config.add.success": {
3326
3261
  "value": "Success. The alert has been added.",
3327
- "comment": "Success notification shown after creating a new alert",
3262
+ "comment": "Alert action success message",
3328
3263
  "limit": 0
3329
3264
  },
3330
3265
  "insightAlert.config.delete.title": {
3331
3266
  "value": "Delete alert?",
3332
- "comment": "Confirmation dialog title when deleting an alert",
3267
+ "comment": "Alert action title",
3333
3268
  "limit": 0
3334
3269
  },
3335
3270
  "insightAlert.config.delete.message": {
3336
3271
  "value": "The alert for <b>{title}</b> will be permanently deleted, along with all its notifications.",
3337
- "comment": "Warning message shown when deleting an alert, with the alert name emphasized",
3272
+ "comment": "Do not translate html tags <b>, </b> or {title} placeholder",
3338
3273
  "limit": 0
3339
3274
  },
3340
3275
  "insightAlert.noDestination.tooltip": {
3341
3276
  "value": "No destination available. <a>Create a destination</a> to set up an alert.",
3342
- "comment": "Tooltip shown when no alert destinations are configured, with a clickable link",
3277
+ "comment": "Do not translate html tags <a>, </a>",
3343
3278
  "limit": 0
3344
3279
  },
3345
3280
  "insightAlert.maxAlertsReached": {
3346
3281
  "value": "Your organization has reached the limit of alerts. Contact your administrator to create more.",
3347
- "comment": "Error message shown when organization has reached maximum number of alerts",
3282
+ "comment": "",
3348
3283
  "limit": 0
3349
3284
  },
3350
3285
  "insightAlert.executionTimestampMode": {
3351
3286
  "value": "To create or edit alerts, reset the dashboard date to today.",
3352
- "comment": "Warning shown when trying to configure alerts with a historical date selected",
3287
+ "comment": "",
3353
3288
  "limit": 0
3354
3289
  },
3355
3290
  "insightAlert.config.loading.error": {
3356
3291
  "value": "Failed to load necessary information. Try again later.",
3357
- "comment": "Error message shown when alert configuration data cannot be loaded",
3292
+ "comment": "",
3358
3293
  "limit": 0
3359
3294
  },
3360
3295
  "insightAlert.config.save.error": {
3361
3296
  "value": "Failed to save alert. Try again later.",
3362
- "comment": "Error message shown when alert cannot be saved",
3297
+ "comment": "",
3363
3298
  "limit": 0
3364
3299
  },
3365
3300
  "insightAlert.config.delete.error": {
3366
3301
  "value": "Failed to delete alert. Try again later.",
3367
- "comment": "Error message shown when alert cannot be deleted",
3302
+ "comment": "",
3368
3303
  "limit": 0
3369
3304
  },
3370
3305
  "insightAlert.config.invalid": {
@@ -3389,12 +3324,12 @@
3389
3324
  },
3390
3325
  "insightAlert.config.accessbility.input": {
3391
3326
  "value": "Condition value",
3392
- "comment": "Accessibility label for alert threshold input field",
3327
+ "comment": "",
3393
3328
  "limit": 0
3394
3329
  },
3395
3330
  "alert.accessibility.destination.label": {
3396
3331
  "value": "Select how to send the alert",
3397
- "comment": "Accessibility label for alert destination dropdown",
3332
+ "comment": "",
3398
3333
  "limit": 0
3399
3334
  },
3400
3335
  "granularity.this_keyword": {
@@ -3444,17 +3379,17 @@
3444
3379
  },
3445
3380
  "menu.close": {
3446
3381
  "value": "Close menu",
3447
- "comment": "Button label to close a menu",
3382
+ "comment": "",
3448
3383
  "limit": 0
3449
3384
  },
3450
3385
  "controlButtons.asTable": {
3451
3386
  "value": "Show as table",
3452
- "comment": "Message displayed in filter alert showing a relative date range with calendar icon. Example: 'in (calendar icon) last 7 days'.",
3387
+ "comment": "",
3453
3388
  "limit": 0
3454
3389
  },
3455
3390
  "controlButtons.asOriginal": {
3456
3391
  "value": "Show original visualization",
3457
- "comment": "Message displayed in filter alert showing a relative date range with calendar icon. Example: 'in (calendar icon) last 7 days'.",
3392
+ "comment": "",
3458
3393
  "limit": 0
3459
3394
  }
3460
3395
  }